mbox series

[RFC,v2,0/8] wifi: ath11k: hibernation support

Message ID 20231127162022.518834-1-kvalo@kernel.org (mailing list archive)
Headers show
Series wifi: ath11k: hibernation support | expand

Message

Kalle Valo Nov. 27, 2023, 4:20 p.m. UTC
From: Kalle Valo <quic_kvalo@quicinc.com>

Currently in ath11k we keep the firmware running on the WLAN device when the
network interface (wlan0) is down. The problem is that this will break
hibernation, obviously the firmware can't be running after the whole system is
powered off. To power down the ath11k firmware for suspend/hibernation some
changes both in MHI subsystem and ath11k is needed.

This patchset fixes a longstanding bug report about broken hibernation support:

https://bugzilla.kernel.org/show_bug.cgi?id=214649

This patchset is marked as RFC as it requires changes in MHI subsystem. Also
this has been tested only on WCN6855, need to test also on more AP based
chipsets like IPQ8074 and QCN9074.

The patches are also available at:

https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/log/?h=ath11k-hibernation-support

Earlier versions of this patchset have been tested by multiple users with
positive results.

v2:

* rebase to ath-202311221826 (6.7.0-rc2-wt-ath+)

* 'bus: mhi: host: add mhi_power_down_no_destroy()': fix null state string for
   DEV_ST_TRANSITION_DISABLE_DESTROY_DEVICE

* 'bus: mhi: host: add new interfaces to handle MHI channels
  directly': fix typos in comments

* 'bus: mhi: host: add new interfaces to handle MHI channels directly': honour
   initial autoqueue configuration

* 'bus: mhi: host: add new interfaces to handle MHI channels
   directly': don't prepare/unprepare MHI devices that don't match
   with a MHI client driver

* 'wifi: ath11k: remove MHI LOOPBACK channels': remove LOOPBACK channels for QCN9074 as well

v1: https://lore.kernel.org/mhi/20231110102202.3168243-1-kvalo@kernel.org/

Baochen Qiang (7):
  bus: mhi: host: add mhi_power_down_no_destroy()
  bus: mhi: host: add new interfaces to handle MHI channels directly
  wifi: ath11k: handle irq enable/disable in several code path
  wifi: ath11k: remove MHI LOOPBACK channels
  wifi: ath11k: do not dump SRNG statistics during resume
  wifi: ath11k: fix warning on DMA ring capabilities event
  wifi: ath11k: support hibernation

Kalle Valo (1):
  wifi: ath11k: thermal: don't try to register multiple times

 drivers/bus/mhi/host/init.c               |   1 +
 drivers/bus/mhi/host/internal.h           |   1 +
 drivers/bus/mhi/host/main.c               | 107 ++++++++++++++++++++++
 drivers/bus/mhi/host/pm.c                 |  26 ++++--
 drivers/net/wireless/ath/ath11k/ahb.c     |   8 +-
 drivers/net/wireless/ath/ath11k/core.c    |  44 +++++----
 drivers/net/wireless/ath/ath11k/core.h    |   2 +
 drivers/net/wireless/ath/ath11k/hif.h     |  12 +--
 drivers/net/wireless/ath/ath11k/mhi.c     |  77 ++++------------
 drivers/net/wireless/ath/ath11k/mhi.h     |   4 +-
 drivers/net/wireless/ath/ath11k/pci.c     |  55 +++++++++--
 drivers/net/wireless/ath/ath11k/qmi.c     |   7 +-
 drivers/net/wireless/ath/ath11k/thermal.c |   3 +
 drivers/net/wireless/ath/ath11k/wmi.c     |   1 +
 include/linux/mhi.h                       |  47 +++++++++-
 15 files changed, 285 insertions(+), 110 deletions(-)


base-commit: 16a212b4f33c4edd9ce9a9e0953b5389216e8ed9

Comments

Jeff Johnson Nov. 27, 2023, 6:49 p.m. UTC | #1
On 11/27/2023 8:20 AM, Kalle Valo wrote:
> From: Kalle Valo <quic_kvalo@quicinc.com>
> 
> Currently in ath11k we keep the firmware running on the WLAN device when the
> network interface (wlan0) is down. The problem is that this will break
> hibernation, obviously the firmware can't be running after the whole system is
> powered off. To power down the ath11k firmware for suspend/hibernation some
> changes both in MHI subsystem and ath11k is needed.
> 
> This patchset fixes a longstanding bug report about broken hibernation support:
> 
> https://bugzilla.kernel.org/show_bug.cgi?id=214649
> 
> This patchset is marked as RFC as it requires changes in MHI subsystem. Also
> this has been tested only on WCN6855, need to test also on more AP based
> chipsets like IPQ8074 and QCN9074.
> 
> The patches are also available at:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/log/?h=ath11k-hibernation-support
> 
> Earlier versions of this patchset have been tested by multiple users with
> positive results.
> 
> v2:
> 
> * rebase to ath-202311221826 (6.7.0-rc2-wt-ath+)
> 
> * 'bus: mhi: host: add mhi_power_down_no_destroy()': fix null state string for
>    DEV_ST_TRANSITION_DISABLE_DESTROY_DEVICE
> 
> * 'bus: mhi: host: add new interfaces to handle MHI channels
>   directly': fix typos in comments
> 
> * 'bus: mhi: host: add new interfaces to handle MHI channels directly': honour
>    initial autoqueue configuration
> 
> * 'bus: mhi: host: add new interfaces to handle MHI channels
>    directly': don't prepare/unprepare MHI devices that don't match
>    with a MHI client driver
> 
> * 'wifi: ath11k: remove MHI LOOPBACK channels': remove LOOPBACK channels for QCN9074 as well
> 
> v1: https://lore.kernel.org/mhi/20231110102202.3168243-1-kvalo@kernel.org/
> 
> Baochen Qiang (7):
>   bus: mhi: host: add mhi_power_down_no_destroy()
>   bus: mhi: host: add new interfaces to handle MHI channels directly
>   wifi: ath11k: handle irq enable/disable in several code path
>   wifi: ath11k: remove MHI LOOPBACK channels
>   wifi: ath11k: do not dump SRNG statistics during resume
>   wifi: ath11k: fix warning on DMA ring capabilities event
>   wifi: ath11k: support hibernation
> 
> Kalle Valo (1):
>   wifi: ath11k: thermal: don't try to register multiple times
> 
>  drivers/bus/mhi/host/init.c               |   1 +
>  drivers/bus/mhi/host/internal.h           |   1 +
>  drivers/bus/mhi/host/main.c               | 107 ++++++++++++++++++++++
>  drivers/bus/mhi/host/pm.c                 |  26 ++++--
>  drivers/net/wireless/ath/ath11k/ahb.c     |   8 +-
>  drivers/net/wireless/ath/ath11k/core.c    |  44 +++++----
>  drivers/net/wireless/ath/ath11k/core.h    |   2 +
>  drivers/net/wireless/ath/ath11k/hif.h     |  12 +--
>  drivers/net/wireless/ath/ath11k/mhi.c     |  77 ++++------------
>  drivers/net/wireless/ath/ath11k/mhi.h     |   4 +-
>  drivers/net/wireless/ath/ath11k/pci.c     |  55 +++++++++--
>  drivers/net/wireless/ath/ath11k/qmi.c     |   7 +-
>  drivers/net/wireless/ath/ath11k/thermal.c |   3 +
>  drivers/net/wireless/ath/ath11k/wmi.c     |   1 +
>  include/linux/mhi.h                       |  47 +++++++++-
>  15 files changed, 285 insertions(+), 110 deletions(-)
> 
> 
> base-commit: 16a212b4f33c4edd9ce9a9e0953b5389216e8ed9

Series LGTM. Will add appropriate tags when this is no longer RFC