PMO returns failure codes for enable/disable of NS and MC List offloads
when their respective configurations are disabled. As this is expected
behavior, return success instead.
Change-Id: I91b00da9b4026f5975c14f5889cd913b13e1347b
CRs-Fixed: 2323312
Based on cfg component, define PMO configures and add APIs to get or
set configures.
Change-Id: I9b9ff1f8701168787985cbcb219361a3f63c787f
CRs-Fixed: 2322176
This change Removes legacy APIs to modify vdev state machine and
add use new API to get vdev state.
Change-Id: I48aa3744dafc6d13a43a14e48de821c7dadf3a37
CRs-Fixed: 2314730
Add debugfs entry to get offload info (mc addr list, arp, ns etc.,)
for STA interface.
Change-Id: I8bf4491929b5ef04ed5ce19f4b0030945f0eb0c0
CRs-Fixed: 2203786
Update driver to use NAN config params based converged CFG
component. Cleanup hdd config references to nan ini params.
Change-Id: I5af85d68ee53ad557e64523f7a1719e328536926
CRs-fixed: 2290360
Add per module logging macros without function/line info
to avoid adding function/line info where it is not required.
Change-Id: Id808fef623b82cec38fc31071ef384f3ff0c92da
CRs-Fixed: 2278874
Map all enter/exit log macros to enter/exit QDF TRACE macro
to provide option to compile out enter/exit logs if required.
Change-Id: I0c6cd633705e820fcfeb47e3f81a3522c9ef1974
CRs-Fixed: 2274850
Currently, errors are logged if a given offload feature is disabled
while suspending the wlan driver. Instead, simply return success for the
configuration of those features which are disabled, since nothing needs
to be done. This also has the side effect of avoiding meaningless error
logs for situations which are not error conditions.
Change-Id: I1d897d8db066e642e1cc6e77daff0f44172cefe8
CRs-Fixed: 2282040
Multicast address filtering only makes sense if the interface is
connected and capable of receiving traffic. Avoid enabling/disabling
the multicast address filter list on an interface that is disconnected.
Change-Id: Id8aff136e920bb726b8c7dd539d477ff44f080d4
CRs-Fixed: 2282003
Currently the host sends the fixed gtk offload params
and the FILS TLV params, even when the FILS feature is disabled
in the host, which force firmware to pick the KEK from the
FILS TLV structure rather than from the fixed param structure,
which further leads to GTK re-keying feature fail.
Fix is to send only the fixed params in case when host doesnt
supports FILS.
Change-Id: I5b3b3fd503c7cb9c4d7933074fd483086b113204
CRs-Fixed: 2244725
QDF_DEBUG_PANIC has recently gained a reason parameter. Move instance of
logging followed immediately by QDF_DEBUG_PANIC to single calls.
Change-Id: I6633296fb1c82a3945cedc967de222410b9f5d9b
CRs-Fixed: 2274413
User can override the Listen Interval value set during association
by using wifi config set vendor command. Since there is no limit
check in host, a very high value causes an assert in the Firmware.
Add an upper limit check on the user Listen Interval value.
Change-Id: I8128ccbb875adf57c95a15d0391fb442d3dbbbc3
CRs-Fixed: 2256334
Currently while going to suspend, dtim parameters are not
correctly getting configured. Some other parameters to config
like the inactivity timeout are completely skipped as well.
Cleanly port the setting of dtim and other parameters during
suspend and resume.
Change-Id: Ic41a8ace3f5650e53f2dcaa416bfe241b87aa88d
CRs-Fixed: 2248160
The tSirRetStatus definitions are obsolete, so replace them with
QDF_STATUS definitions in the pmo component.
Change-Id: Ia23e1d0eed5a88b0cb1caf4feebd535d36ca2690
CRs-Fixed: 2261705
Before wow enable or pdev suspend host sets hardware filter bitmap
and enables the filter via a command. But after resuming it sends
bitmap as zero with filter disable. This is interpreted by Firmware
as disable the modes set in the bitmap, so none of the modes are
disabled. With this host will not receive bc/mc packets after
disabling the hw filter, which it is expecting.
Send the same bitmap after resume that was used before suspend.
Change-Id: Ic7425274c9197e907404c3ca9ba0d5269ee51690
CRs-Fixed: 2194964
In implementation of Android Packet Filter, functions, variables,
definitions are named after BPF, which stands for Berkely Packet
Filter. The term was more appropriate for Link Layer packet
filters implemented in the Linux kernel, known as Linux Socket
Filters.
The term BPF is obsolete now, so rename it with the
appropriate acronym, APF.
Change-Id: I9e02edbc580ffb2c559c8e864f54d255fc2d51a3
CRs-Fixed: 2191530
PMO should not know about vdev data path handle, but
pmo_unpause_all_vdev() need it, so register a wma callback to retrieve
the vdev dp handle instead of keep a copy in pmo vdev private context.
Refine current code to retrieve vdev dp handle using a wma callback
Change-Id: I1f668fff633a5e5cdfc478e7f619e9600930b333
CRs-Fixed: 2227384
There are several logs in PMO that log debugging related information
at the INFO level. Reduce the logging level of these debug logs to
avoid spamming the console.
Change-Id: Ib1bb9279d5d8104104b58bd2c83869f72c0bde4a
CRs-Fixed: 2260190
Add support for getting cfg integer from PMO. Register callbacks
during pe_open/close so that PMO can query CFG int values for
calculating parameters like listen interval etc.
Change-Id: I52d165586576e547e175ba276e6b7225db5b27e0
CRs-Fixed: 2252661
Currently while sending wmi command when target is suspend, it will
check whether command is WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID/
WMI_PDEV_RESUME_CMDID, but D0WOW command is an exception, to keep align
with legacy code so don't set wmi_handle->is_target_suspended if it is
D0WOW enable command.
Move out logic of checking D0WOW status from PMO tgt to core layer.
Change-Id: I164f24ea733e54e5e0dbdb77344917df5d039e53
CRs-Fixed: 2254047
There are several logs along the suspend/resume code paths that log
debugging related information at the INFO level. Reduce the logging
level of these debug logs to avoid spamming the console.
Change-Id: I0e81901e4a053038392c1012600ae125a1ad27a3
CRs-Fixed: 2258093
Total 16 number of WoW filters are PoRed for Genoa.
Define CONFIG_PMO_WOW_FILTERS in genoa defconfigs with value 16.
Change-Id: Iba3d9875c954b32a3f22cfd639f4508beb36a5d5
CRs-Fixed: 2257033
Current ucfg API's that disables wow events accept a u32 bitmap
variable. A pointer to that variable is passed to core API where
it assumes it as a u32 array of 4 bytes. This will lead to out of
bound memory access.
Change wow enable/disable API's to accept wow event type as the
parameter.
Change-Id: I220aaddfea62ab96f121014d0d65a1406988c946
CRs-Fixed: 2233108
Add fallthrough comment in pmo_register_wow_wakeup_events
as per linux checkpatch script. Fallthrough required to set
interface type and to set sta wow bitmask.
Change-Id: I6931371e9a2d4421354c19c12e552c75e50cb798
CRs-Fixed: 2233187
wma_is_service_enabled can't get valid service bitmap if call in
hdd_update_pmo_config, use psoc_ctx->caps.unified_wow instead to check
pattern id per vdev and legacy d0 wow capability.
Change-Id: If7bf316f482c49253fc4b95b94e172727b27ffd1
CRs-Fixed: 2225847
The following PMO functions have been identified as having off-by-one
logic errors. Address these errors.
* pmo_register_resume_handler
* pmo_register_suspend_handler
* pmo_unregister_resume_handler
* pmo_suspend_all_components
Change-Id: I6a328fc24ae6a575ef56cf9532133eb666e0dc8c
CRs-Fixed: 2232388
Add feature flag for PMO component such that for high latency
and IoT devices power management and offload component can be
compiled out.
Change-Id: Iaccda7d9e895cdb4610f0ec984add3aeb7ef9926
CRs-Fixed: 2227330
Add feature flag for PMO component such that for high latency
and IoT devices power management and offload component can be
compiled out.
Change-Id: I2c88b6af33e8f10f1837263f157c1f6892a2c2fb
CRs-Fixed: 2227326
Historically, recovery was triggered if PDEV suspend failed, but the
logic was lost during componentization. Restore the previous logic of
triggering recovery on PDEV suspend timeout.
Change-Id: I6e193e98c5ef45fd7ab4b6595ea85d986fa84131
CRs-Fixed: 2215588
Change Ie062ada403f8a31aebcde691396987ad9e5352b5 introduced level-
specific logging wrappers to support compiling out entire levels of
logging messages. Migrate the PMO logging wrappers to consumer these
new APIs instead of QDF_TRACE.
Change-Id: I3f46450e76cc6422a0877e95785bfd41e4c0af0c
CRs-Fixed: 2208536
In order to better align with the other PMO logging wrappers, and the
rest of the driver, rename the following macros:
* PMO_ENTER -> pmo_enter
* PMO_EXIT -> pmo_exit
Change-Id: I9186c1425f22c5a8d4fc98f048a9d487b6095797
CRs-Fixed: 2206650
In order to conserve firmware memory when various filtering features are
not in use, update the target configuration provided to firmware based
on the intersection of various filtering features and host
configuration.
Part 1
num_wow_filters = ARP/NS offload enabled ? 2 : 5
bpf_instruction_size - BPF enabled ? 0 (auto) : 0xffffffff
Part 2
num_packet_filter = Packet Filter enabled ? 12 : 0xffffffff
Change-Id: Ie8cb4ae44c83b115b249e22ebd7146278ed70612
CRs-Fixed: 2199297
Building CLD3.2 with a performance configuration results in several
"potentially uninitialized" warnings. Initialize the relevant variables
to avoid the warnings.
Change-Id: I6a4324cb313dfb9d3b4c82294bc2fc8ce357fd0b
CRs-Fixed: 2202533
Recent changes in Power Management and Offload (PMO) have removed the
need for a configurable maximum number of WoW filters. Remove the
following relevant fields:
* maxWoWFilters
* CFG_MAX_WOW_FILTERS_MAX
* WMA_STA_WOW_DEFAULT_PTRN_MAX
* max_wow_filters
* ol_ini_info
Change-Id: I99cc74731d6373258dc65473a8342bda0ab2786b
CRs-Fixed: 2199452
In order to conserve firmware memory when various filtering features are
not in use, update the target configuration provided to firmware based
on the intersection of various filtering features and host
configuration.
Part 1
num_wow_filters = ARP/NS offload enabled ? 2 : 5
bpf_instruction_size - BPF enabled ? 0 (auto) : 0xffffffff
Part 2 (pending firmware support)
pkt_filter_num = Packet Filter enabled ? 12 : 0 (disabled)
Change-Id: Ic6624ff04598b53d8321e4864618b12b9702780f
CRs-Fixed: 2196997
Building CLD3.2 with a performance configuration results in several
"potentially uninitialized" warnings. Initialize the relevant variables
to avoid the warnings.
Change-Id: If97b67d50ebe2b7465fd2cc5a6a44488e4cb25a7
CRs-Fixed: 2200294
Provide PMO-specific device capabilities to PMO. This allows PMO to do
intersections between configuration and device capabilities.
Change-Id: If0a199f9be466d16cef900a29b14b73a2a4e52d0
CRs-Fixed: 2197828
pmo_core_wow_enter(), pmo_core_wow_exit() and struct
pmo_wow_enter_params are all dead code. Remove them.
Change-Id: I254a0bad794ffc1170a2799918e1627a3e01e340
CRs-Fixed: 2199462
It is really common to want to update or read from the PMO private
context, but doing so requires several lines boilerplate code. Because
this boilerplate is in so many places, mistakes like using the wrong
lock operation, or forgetting to use locks at all, are a always a
danger. Add pmo_psoc_with_ctx() to address this deficiency, which
retrieves the private context pointer, locks on entry, and unlocks on
exit. Usage is like so:
struct pmo_psoc_prov_obj *psoc_ctx;
pmo_psoc_with_ctx(psoc, psoc_ctx) {
/* use psoc_ctx */
}
Which is equivalent to:
struct pmo_psoc_prov_obj *psoc_ctx;
psoc_ctx = pmo_psoc_get_priv(psoc);
qdf_spin_lock_bh(&psoc_ctx->lock);
/* use psoc_ctx */
qdf_spin_unlock_bh(&psoc_ctx->lock);
Change-Id: I6a3ccbfbfb57c589d44c7eae57e2ed8272dae3ee
CRs-Fixed: 2197722
Under unregistering of PMO handlers, incoming component id is sanity
checked. In the logic, WLAN_UMAC_MAX_COMPONENTS as id will not cause
failure even though it is an id beyond the acceptable bound.
Correct the logic so that WLAN_UMAC_MAX_COMPONENTS ends up in failure.
Change-Id: I6935f34c6d91a4217c3f7f73cd5539af2741ed2b
CRs-Fixed: 2091831
In function pmo_core_send_lphb_enable check index before accessing array.
In function pmo_core_is_wow_applicable initialize vaiable before access.
Change-Id: Iadba3175d10da3e4e311d8ab9e8a850053d3da24
CRs-Fixed: 2162257
Rename pmo_ucfg_* API to ucfg_pmo_* to match existing
naming convention for component ucfg APIs.
Change-Id: I59491eff038709a883efb527168159a7e9e2ba2a
CRs-Fixed: 2145088
Measurement pilot public action frame (Action Id = 7) is not
handled in the driver, if the AP is sending this action frame
it ends up waking up the APPS and burn battery.
Since anyway host is not handling this action frame, configure
the firmware to drop this action frame.
Change-Id: I15327f9af8cccaa7324e4e39f1e6336225740b75
CRs-Fixed: 2146506
Enable FEATURE_WLAN_DOWOW for pcie.
This is for backward compatible with rome fw.
Change-Id: Ia2107ff6939666b4a0bd19d57149d17814f2dfb5
CRs-Fixed: 2070426
With current implementation in case of an SSR/PDR threads that are
waiting on events will only get purged after the wait timeout has
occurred, increasing the recovery time for the driver. Utilize new
APIs that maintain a list of events. In case of an SSR/PDR
forcefully set these events.
Change-Id: I83b4f576a65f8da5762288ac8dfccdef7d05d82a
CRs-Fixed: 2045156
Change "qcacmn: Rename enum tQDF_ADAPTER_MODE" (qca-wifi-host-cmn
Change-Id I20f1b6d1a0ab4b8fe6a85cefdff96a49e2f4652c) renamed enum
tQDF_ADAPTER_MODE to QDF_OPMODE. Update all references to use the
new name.
Change-Id: Ic6f663dac11a100f168b2626c7c0fbcaccbfca4f
CRs-Fixed: 2141065
Rename pmo_ucfg_* APIs to ucfg_pmo_* to match existing
naming convention for component ucfg APIs.
Change-Id: I9fba71ee5d5cf6428f043c7d7782ef585951e059
CRs-Fixed: 2140474
Rename pmo_ucfg_is_vdev_connected to ucfg_pmo_is_vdev_connected
to match existing naming convention for component ucfg APIs.
Change-Id: Idd04103664135f226881b07263365d70df5790e0
CRs-Fixed: 2135888
Rename pmo_ucfg_is_ap_mode_supports_arp_ns to ucfg_pmo_*
to match existing naming convention for component ucfg APIs.
Change-Id: I6877e1ebbc8a89d9b2cfb08f7af46e3f3b6606f3
CRs-Fixed: 2135193
PMO resume timeout is 25 seconds which is too large
hence reduce PMO resume timeout to 6 seconds.
Change-Id: I9f29e136bc091ddd3ae2ca38a495edcbff6c1cb8
CRs-Fixed: 2128481
Checkpatch reported multiple instances of block comments not aligning
on "*" so fix them.
Change-Id: I082f62f59fe16d84ba013adbbfcd2e9bf1985e3c
CRs-Fixed: 2122901
This is a qcacld-2.0 to qcacld-3.0 propagation.
If the device connects to 11k enabled AP and enter WoW mode, then
the AP is keep sending RRM beacon reports (Action frames) which are
waking up the APPS and leading to battery drain.
The fix is to configure the firmware to not to wake up APPS
for RRM action frame.
Change-Id: I2368be4f641b8b8684a458daea52a81fa671200b
CRs-Fixed: 1115560
Add support for WMI_SET_MULTIPLE_MCAST_FILTER_CMDID command
that can add/delete multiple mcast filters.
CRs-Fixed: 2096595
Change-Id: I3dc93c603a5a6676d97b5911a716277c7bef0ef8
Update ini param g_auto_detect_power_failure_mode to incorporate below
values,
0 - Don't register wow wakeup event and FW crashes on power failure
1 - Register wow wakeup event and FW sends failure event to host on
power failure
2 - Don't register wow wakeup event and FW silently rejuvenate on
power failure
3 - Don't register wow wakeup event and the auto power failure detect
feature is disabled in FW.
Change-Id: I8a704954ecbacadbc035c1523fa41a18b6300f66
CRs-Fixed: 2087144
Add new kek_len param used for FILS in the pmo_gtk_req structure under
PMO GTK public structures
Change-Id: I4fc25026d9fc004f267b9461d1671f8b1ac57f53
CRs-Fixed: 2081252
Info level logs are logged on console, hence change PMO
logs in wlan_pmo_suspend_resume.c to debug log level to avoid
excessive console logging.
Change-Id: Ie9852ef5ea8fefaa33a82f0b287224271ada003b
CRs-Fixed: 2121361
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_gtk.c to debug log level to avoid excessive console
logging.
Change-Id: I3aa1eef2476827157adfa51e37b0054b10ba58c1
CRs-Fixed: 2118712
The Wow pattern id should be identified unique for different vdevs of
legacy firmware, and latest firmware accept same Wow pattern id on
different vdevs.
This change is to differentiate this behavior using
WMI_SERVICE_UNIFIED_WOW_CAPABILITY flag, and supply a set of APIs to
manipulate pattern id.
Change-Id: I5fe7623a309a0c3baa14fb7312107c057e994462
CRs-Fixed: 2103017
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_tgt_gtk.c to debug log level to avoid excessive console
logging.
Change-Id: I8f19e8651927a7c3cae9ee1e1118f983c063b3ed
CRs-Fixed: 2116340
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_ns.c to debug log level to avoid excessive console logging.
Change-Id: I60620f6a3ce4fe708f026a554a5295c1f708f485
CRs-Fixed: 2116335
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_arp.c to debug log level to avoid excessive console logging.
Change-Id: I4eef5203f612b3ddaace30d4da43c13103dd60c7
CRs-Fixed: 2116328
Info level logs are logged on console, hence change PMO logs in
wlan_pmo_suspend_resume.h to debug log level to avoid excessive
console logging.
Change-Id: I77edb26ce3eb61573bba830787fe0ffb32eb6281
CRs-Fixed: 2116321
Info level logs are logged on console, hence change PMO
logs in wlan_pmo_main.c to debug log level to avoid excessive
console logging.
Change-Id: I1f3c00537ce850079a06aaf479bdb917e7ea55e2
CRs-Fixed: 2116314
Enable rx of NDP data packets in WOW mode by enabling
WOW_PATTERN_MATCH_EVENT for NDI vdev.
Change-Id: I4d5edfc91c23fd8cc277c005da7803690b5fe054
CRs-Fixed: 2069493
Currently, host driver sets bitmap of allowed action frames to fw.
For a particular action category, there are certain action id
frames which are not processed. This causes host wakeup and leads
to power drain.
Set action id along with action category to fw for action frames
to be allowed to host driver.
Change-Id: Ifa0b40b290fcabb9ce5e48f69bd462aebb9017ac
CRs-Fixed: 2072123
Currently, a hard-coded enhanced multicast filter configuration is being
sent to firmware. Instead, create a set of enable/disable APIs, and
configure enhanced multicast filter based on advertised firmware
capability.
Change-Id: I488b4a921612e1081266be8831be098d755375f9
CRs-Fixed: 2078615
In the suspend path, the code waits for all active/pending scans to be
cancelled before continuing the suspend. Instead, for better power
savings, abort all active/pending scans during suspend and immediately
continue the suspend process.
Change-Id: I16a5429c00034fe58fb4c70a8dacda666ac54227
CRs-Fixed: 2073229