To support shutdown WLAN when system goes into suspend, add idle shutdown
in cfg80211 suspend function.
Before suspend/shutdown, user space should stop adapter. And after resume,
user space should restart adapter. This can ensure user and kernel space
to sync adapter state.
Idle shutdown must be processed in system active, so schedule delayed
work to execute it. After calling schedule, retrun EAGAIN directly to PM.
Change-Id: I08818517d05e7866d50e3f92cfdc9fa1a4d0e63f
CRs-Fixed: 3081480
When host resume, check arp offload status wrongly, so arp offload
disable cmd isn't sent to F/W. when next suspend comes, arp offload
enable cmd isn't sent too.
Change-Id: I06ea617df49287ee87e7b5bf8b20971b581dedf1
CRs-Fixed: 3106172
As per the current implementation, the ADDBA_REQ bitmap setting
overwrites DROP_SPEC_MGMT_ACTION_FRAME_BITMAP. Hence, to avoid it,
remove the ADDBA_REQ bitmap setting.
Change-Id: I1135a64de99248b67e477d3276b217c128c1a721
CRs-Fixed: 3081291
Add the support for the feature of Full Power Down while
in low power mode.
For this feature, it need to power down wlan chip when
suspend, and power up wlan chip when resume, so need to
change to call wlan driver shutdown and then power off the
wlan chip instead of calling wlan driver suspend when do
suspend, and changing to do power on wlan chip, download
wlan firmware, and calling wlan driver reinit instead of
calling wlan driver resume when do resume.
Change-Id: I293647175c151da0fd6628345f98ea65c83b1bb3
CRs-Fixed: 3061366
In some scenario, it is required to receive every ARP/NS packet even
it is not to solicit address itself. So add this vendor attribute
configuration to enable/disable ARP/NS offload on fly.
On some platform, if target suspend to WoW mode, APF filter will drop
such ARP/NS packet in the front, so prevent runtime suspend happen
if disable ARP/NS offload. System suspend still allow in consideration
of potential power impact.
It only support on STA/P2P-Client mode device, and this configure is
optional, while default behavior is ARP/NS offload enable. It will
restore to default behavior if interface being closed.
Change-Id: Icd49e230024bc1ce51519cd9fafee9bc9f79f382
CRs-Fixed: 3058494
INI item enable_dynamic_pcie_gen_speed_switch is no longer. Hence,
delete all uses cases of it.
Change-Id: I1082620c4354bda48ebc54aae7e72e5a81c4aa94
CRs-Fixed: 3068122
The ini gEnableWoW was designed to enable or disable both magic
pattern match and pattern byte match, but now host ignore the
magic pattern setting from the ini, always enable the magic
pattern instead.
configure magic pattern in line with ini gEnableWoW setting.
Change-Id: I309aff03de9bdbd36fe391784ba54cbfa0cad67b
CRs-Fixed: 3047199
Add support to offload icmp feature to fw in case of
suspended state to avoid high power consumption.
Change-Id: I3ff19d71eac530c75be57e6b52b975e755ff2a53
CRs-Fixed: 3042452
gSuspendMode is for system suspend to choose between WoW and pdev
suspend. For RTPM suspend, should always enable WoW.
Change-Id: Ibf95ca79ded73f9c68e14b8dac4ec68d979f9db6
CRs-Fixed: 3047812
Currently, the bitmap of action frames that can wake up the
host during suspend is sent via the wmi command
WMI_WOW_SET_ACTION_WAKE_UP_CMDID. This bitmap doesn't include
DSCP action frames so currently the host doesn't wake up for
DSCP action frames when in suspend mode.
Enable wake up for DSCP action frame for runtime PM as well
as for wow mode.
Change-Id: I51ba3e8ef52755af25ed922161028dfbaccaa250
CRs-Fixed: 3046595
By default INI item igmp_version_support has value 0x7. Fix the comment
to match with the correct default value.
Change-Id: Iab0caf41b3f3a57873b8cae1188d475adcfe9cc5
CRs-Fixed: 3042427
Add new ini item gEnableIcmpOffload to enable/disable
ICMP offload to firmware.
Change-Id: I107aeec4c75ae18fbe37d373e48339a5b76797aa
CRs-Fixed: 3025650
SAP/GO D3 WoW feature is not supported when IPA is enabled and hence
disable SAP/GO D3 WoW features when IPA is enabled.
Change-Id: Ia3da37087a0ca79c81c546f43a0893e46cf08c3c
CRs-Fixed: 3015104
Currently driver has only one name for an INI, with
this change add second name as well for few INIs based on
new requirement.
Change-Id: I6eee13935d1c5c74794027b88d94cbb572339e9e
CRs-Fixed: 3007209
Currently intermediate EP vote access is set without checking
for previous state and reg work handler completion.
In some of the error scenarios when resume is triggered from
suspend path, EP vote access is still enabled and work handler
will be scheduled for register updates.
So make sure reg work is completed before setting intermediate access.
Change-Id: I7a1e55c188b9a9e85309dd44ac03651181499674
CRs-Fixed: 2994039
SAP/GO clients connected D3 Wow feature is only supported when IPA
is disabled and hence add dependency note to display the dependency
between SAP/GO client connected D3 WoW feature and IPA.
Change-Id: Icca4de1082090f5d740acf3b2b449b425b19ffce
CRs-Fixed: 2996992
Add new ini item enable_dynamic_pcie_gen_speed_switch for enabling
dynamic PCIe gen speed change.
Change-Id: I7dde4e40e56bf894c7edd0805d09425444648e6b
CRs-Fixed: 2977079
Due to the limitation on third party platform, add ini to take
special care of the below wow case to avoid fw crash.
The sap/p2p_go shall kick out all the connected sta/p2p_gc and
then go to suspend if d0wow/d3wow is not supported.
Although there is wakelock try to prevent suspend after tdls link
setup, it won't take effect because auto sleep mechanism is not
supported on some third party platform, so teardown tdls link
by force before suspend.
Change-Id: I14bfe32f04cfc34d4f55a09820e42e65a1d9f925
CRs-Fixed: 2935295
Extend hdd_config_modulated_dtim() to configure moddtim
dynamically in the both non li offload and li offload mode.
Change-Id: I8669ec618d4aa9cd87c4c234972ca500c98119b6
CRs-Fixed: 2970090
Currently ucfg_pmo_enable_igmp_offload is conditionally compiled
with feature flag WLAN_FEATURE_BIG_DATA_STATS which may introduce
compilation issue when WLAN_FEATURE_BIG_DATA_STATS is disabled
but WLAN_FEATURE_IGMP_OFFLOAD is enabled.
Fix is to use WLAN_FEATURE_IGMP_OFFLOAD feature flag for
pmo_enable_igmp_offload.
Change-Id: I647ad960f5c0abc14449f0af9430f867ddcdf1e3
CRs-Fixed: 2981344
Add debug log to print more details about the link vote id when
PCIe link suspend is not allowed.
Change-Id: I5069202436e0da37b8ae22f84e28ac06d35002b5
CRs-Fixed: 2964957
Set intermediate EP vote access before host
wake up indication smp2p is sent to F.W,
this helps to avoid smp2p override.
Change-Id: I4b998ee5ea6b26921855bfbae434869fb93accf9
CRs-Fixed: 2953883
Sometimes we need PDEV suspend mode, WMI_PDEV_SUSPEND_CMDID and
WMI_PDEV_RESUME_CMDID. But currently design, only support WoW
suspend or not support two choices. And, there are two confused
ini configuration, gDisableWow and gEnableWoW.
1. Add new ini gSuspendMode to set suspend mode. Default 2.
0, does not support suspend
1, legency pdev suspend mode
2, WoW suspend mode
2. Clean gDisableWow. It is replaced by gSuspendMode=0.
HDD suspend/resume function get the value by new API
ucfg_pmo_get_suspend_mode().
Change-Id: Icbeef3df6879ca2054f64e0292e9b9469c4936d4
CRs-fixed: 2940788
HIF PM link state is used to indicate bus is alive or not. This
indicates RING HP/TP updating directly or using async method.In
RTPM suspend failure flow, CLD reject RTPM suspent request, but
state is not resumed correctly.
Change-Id: I3b96dc1fb34e2810d721e1fcb4db609a3d1d684d
CRs-Fixed: 2919930
Currently in the WoW design of Moselle, EXT GRP IRQs are
enabled before sending SMP2P power save exit message is
sent to the FW. Because of this, any pending IRQs in the
GIC will immediately fire and could race with the SMP2P
power save exit logic. Any access to the registers done
before power save exit would result in system errors.
Enable the EXT GRP IRQs after sending power save exit
command will fix the problem.
Change-Id: I16f580279b5aa24861ab5111b9c13db3e38063f4
CRs-Fixed: 2925554
psoc_cfg is pointing to the address of a structure variable,
which will never be NULL.
To address this remove the NULL check.
Change-Id: I12f539ce2feace550c403ffc996fa315994470a7
CRs-Fixed: 2911862
There is a compilation error due to use of PMO_ACTION_BLKACK, which
is not defined. Change PMO_ACTION_BLKACK to PMO_MAC_ACTION_BLKACK to
resolve this issue.
Change-Id: I011c4c323bfa7d104c6a6879aba93085a35fed3d
CRs-Fixed: 2923577
offload igmp feature to fw in case of suspended state
to avoid high power consumption.
Change-Id: I05fbf23dc2836f8f5dc6e2f45b35bf2d30c39790
CRs-Fixed: 2907644
Currently runtime resume is marked as success after kicking
HTC queues, due to this non PM marked WMI commands are not
sent out properly.
Fix this by marking runtime resume as success before kicking
HTC queues, since resume is set as success as part of HTC kick
queues WMI commands will be sent out properly.
Change-Id: I5e3f98cbc5888bdf83f760b055c9b706c18737ef
CRs-Fixed: 2899609
Set system state in hif ctx to suspend or resume on
system suspend and resume respectively.
Change-Id: If1904a4fe5c861deed1b35071be10cb8cc8d6407
CRs-Fixed: 2899520
As part of WiFi ini clean-up FR, the ini parameter
gDataInactivityTimeout, is identified as it is no longer used
and hence it can be deprecated.
Change-Id: Ic01ba8934058cf2fb3bec042f11b01ea70ef7a3f
CRs-Fixed: 2896042
This is to enable feature for detection CE tasklet
scheduling delay and credit response delay issue.
Change-Id: I659aa23eabaa28bfb11051bf15e0343c94061b86
CRs-Fixed: 2874867
Any update to the SRNG TP/HP when the device is in low power
state would result in system errors. While in D3 WoW mode,
disable EXT grp irqs and drain TXRX before sending enter
power save mode to the FW. This will ensure that no interrupts
are received while in WoW mode and as a result there wont be any
HP/TP updates.
Change-Id: Ic1fb7fdd45096b458abf5d243fa652c3da878dc0
CRs-Fixed: 2890568
Add vendor command interface/feature through which the user
or vendor can set the dtim count as per their requirement.
Change-Id: I26010948c4ed7e3c49bfe0453119235d4f438c6f
CRs-Fixed: 2894349
Possible wmi cmd is queued in suspend, if no more
htc_try_send comes from credit response or new wmi
cmd, wmi cmd will pending.
Fix is always kick htc queue if suspend failure.
Change-Id: I05e0cd6983e1d27de5bf109c3ddf05e4bdc12fd8
CRs-Fixed: 2895808
Currently when TWT commands are sent to firmware, the host driver
doesn't acquire wake lock. So the wlan can got to wow mode before
receiving the TWT command response and the response will get
dropped since host is in wow mode.
To avoid this make the TWT events as wakeable so firmware can
wake up host if host is suspended.
Change-Id: I2750049f9173de564e24114731d3fdd8ec8d6d86
CRs-Fixed: 2869865
Add WMI service FW capability check before enabling D0 and D3
WoW for SAP and GO clients connected mode.
Change-Id: I878e4ee33807804e049bf1e8b8078d28fc1d4834
CRs-Fixed: 2869072
Rename existing INI to enable_bus_suspend_in_sap_mode and define a
new enable_bus_suspend_in_go_mode. Also define new APIs
wma_is_vdev_in_sap_mode and wma_is_vdev_in_go_mode.
Change-Id: If38c4db7b3d1f7323df45d9a7d80a02a44e7ca41
CRs-Fixed: 2864596
By default, PCIe bus suspend is not allowed in beaconing modes
(SAP/P2PGO/NDP) with one or more clients connected. Some OEMs need
PCIe bus suspend in this mode. Hence, add a config item to serve
both types of requests.
Change-Id: Ia2d990f17f605036d43db75ecd4df57701b4ba1f
CRs-Fixed: 2860495
With Change-Id: I7f38b3dc6975fcc208ad85e913564dfef5cc1cb7,
Tx register write is permitted after hif bus resume during runtime pm
resume, don't wait WMI_WOW_WAKEUP_HOST_EVENTID.
In F/W, there is an race condition when exit from WOW, both
WAL_TX_TID_TQM and WAL_TX_TID_TRANSITION_TO_TQM_ONGOING are not set yet,
data frame is received from host, assert will hapen.
To fix it, host tx register write shouldn't be permitted to update hp
until receive the WMI_WOW_WAKEUP_HOST_EVENTID.
Change-Id: Ic397652a9a0c4bc81667aed11805b2ce8070ee8d
CRs-Fixed: 2858115