mbox series

[v5,0/3] wifi: ath11k: Enable low power mode when WLAN is not active on WCN6750

Message ID 20230417054145.12359-1-quic_mpubbise@quicinc.com (mailing list archive)
Headers show
Series wifi: ath11k: Enable low power mode when WLAN is not active on WCN6750 | expand

Message

Manikanta Pubbisetty April 17, 2023, 5:41 a.m. UTC
Currently, WLAN chip is powered once during driver probe and is kept
ON (powered) always even when WLAN is not active; keeping the chip
powered ON all the time will consume extra power which is not
desirable for battery operated devices. Same is the case with non-WoW
suspend, chip will not be put into low power mode when the system is
suspended resulting in higher battery drain.

Send QMI MODE OFF command to firmware during WiFi OFF to put WCN6750
into low power mode.

Following command is used to suspend the device,
echo mem > /sys/power/state

On WCN6750, it has been verified that the power from the firmware is
complete turned off when the device is suspended.

Although the changes are specific to WCN6750, these changes act as a
framework and can be used to bring in the support on other ath11k
devices with a future patch.

Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-1
Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.16
Tested-on: IPQ5018 hw1.0 AHB WLAN.HK.2.6.0.1-00861-QCAHKSWPL_SILICONZ-1
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1

Manikanta Pubbisetty (3):
  wifi: ath11k: Fix double free issue during SRNG deinit
  wifi: ath11k: Move hardware initialization logic to start()
  wifi: ath11k: Enable low power mode when WLAN is not active
---
V5:
 - Thorough testing of the changes on other supported ath11k hardware
 - rmmod path of other supported devices is kept unchanged; only WCN6750
   will make use of the changes
 - Code has been refactored in a way so that the changes are easier to review
 - Commit message changes to include the command used for testing

V4:
 - Code changes in ath11k_core_stop_device()

V3:
 - Removed patch "ath11k: Fix failed to parse regulatory event print" as it is not needed anymore
 - Fixed a potential deadlock scenario reported by lockdep around ab->core_lock with V2 changes
 - Fixed other minor issues that were found during code review
 - Spelling corrections in the commit messages

V2:
 - "Enable low power mode when WLAN is not active" has been enabled only for WCN6750
   as the device shutdown and turn-on changes are not same for all chipsets in ath11k.
   A future patch will be sent to enable the logic for other devices.
 - Rebased on ToT

 drivers/net/wireless/ath/ath11k/ahb.c  |  42 +++
 drivers/net/wireless/ath/ath11k/core.c | 497 +++++++++++++++++--------
 drivers/net/wireless/ath/ath11k/core.h |  10 +-
 drivers/net/wireless/ath/ath11k/hal.c  |   1 +
 drivers/net/wireless/ath/ath11k/hif.h  |  11 +
 drivers/net/wireless/ath/ath11k/mac.c  |  33 +-
 drivers/net/wireless/ath/ath11k/pci.c  |  23 ++
 drivers/net/wireless/ath/ath11k/qmi.c  |   3 +-
 8 files changed, 429 insertions(+), 191 deletions(-)


base-commit: 177555b57ca0a0519c12a2bdb64309ddbb363e11