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
Host moves hlp info from csr session to mlme priv object. Modules need
hlp info now use hlp info from mlme priv object
Change-Id: Ieffa749635239f72337af685707acccfd666a58a
CRs-Fixed: 2862315
Currently, host driver rejects any concurrent session with other
security modes(e.g. NAN) when WAPI is present. This is due to a
limitation on older platforms. But newer platforms(e.g. Lithium
architecture) support WAPI+other security modes concurrently.
Firmware advertises service capability WAPI_CONCURRENCY_SUPPORTED if it
supports other security modes when WAPI is active. Get the capability
and accept/reject concurrent sessions.
Change-Id: I0e004e1220afd9c42869589364606c9f729798f7
CRs-Fixed: 2844799
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
Once 1 roaming happened, ipa_ctx->sta_connected increased 1, and its
type was uint8_t, once increased to 256, overflow happened.
ipa_ctx->sta_connected became 0. then wlan_ipa_cleanup_iface couldn’t be
called to free old iface, but wlan_ipa_setup_iface was called to add new
iface, then there were 2 sta ipa interfaces with same session id 2.
When sta disconnected, only 1 ipa interface was freed, the other ipa
interface with session id 2 was left, but vdev 2 was deleted.
If 1st client connected DUT SAP, sta vdev 2 was found by mistake,
WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID was sent to F/W to enable IPA path
for vdev 2, but vdev 2 wasn't existed, assert happened.
To fix it, when LFR3 roaming happens, when wlan_ipa_cleanup_iface is
called to free old iface, ipa_ctx->sta_connected is decreased by 1
first, when wlan_ipa_setup_iface is called to add new iface,
ipa_ctx->sta_connected is increased by 1, then
ipa_ctx->sta_connected reflects real STA number on DUT.
Change-Id: I5c91b3402dcfe8b1828d8d1f0701f66ca3c15d50
CRs-Fixed: 2859438
cm id is not passed to policy manager in case of DBS donwgrade
when NSS is modified, pass the cm id to fix it.
Change-Id: Ie038b30929c2fcddb6828f1f89765d3004ff3285
CRs-Fixed: 2860061
Implement support for sending new control path stats
infrastructure via WMI_REQUEST_CTRL_PATH_STATS_CMDID and
WMI_CTRL_PATH_STATS_EVENTID in cp stats component. Also add
support for TWT Get statistics through this new method.
Change-Id: I62b3a525cde797cd5b809ca9e8e6c91d5651c6b4
CRs-Fixed: 2851016
As per specification sequence numbers of action frames also needs
to be randomized when the source MAC address is randomized. Currently
this feature is not implemented in the driver as a result corresponding
test case is failing.
To address this, add support to sequence number randomization in the
driver. Also add a INI param to control this feature.
Change-Id: Icd7b6fd55b324a8d6b1226d89f19be0ad9385e0a
CRs-Fixed: 2829032
Currently user configured tx aggr size "0-64" is not honored in
firmware, By default firmware expects as 256 and its hardcoded.
In order to make user controllable, host has to send default max
tx aggr size as 256 for lithium and 64 for other targets.
Change-Id: I7a69f09d048f79da4c770e71b4d1c8726fa02faa
CRs-Fixed: 2846803
Use wlan_reg_legacy_chan_to_freq api for channel to
frequency conversion instead of wlan_reg_chan_to_freq.
Change-Id: I06a2638a1e402dc6a750c672ed803e8dbfa254fc
CRs-Fixed: 2853575
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
Add ini 'cfg_tx_iot_aggr', it gives an option to
configure Tx aggregation size in no. of MPDUs/MSDUs
for specified OUI. This can be useful for IOT issues.
Format of the configuration:
cfg_tx_iot_aggr=<OUI-1>,<MSDU-1>,<MPDU-1>,<OUI-2>,<MSDU-2>,<MPDU-2>...
MSDU/MPDU means the max tx aggregation size in no. of MSDUs/MPDUs,
0 means not specified.
For example:
cfg_tx_iot_aggr=112233,2,0,445566,3,32,778899,0,64
If vendor OUI-1("\x11\x22\x33") is found in assoc resp,
set tx amsdu size to 2;
If vendor OUI-2("\x44\x55\x66") is found in assoc resp,
set tx amsdu size to 3, set tx ampdu size to 32;
If vendor OUI-3("\x77\x88\x99") is found in assoc resp,
set tx ampdu size to 64.
Change-Id: Idcf370a4bf93ca299ce1126eaba4394be1ab5b9d
CRs-Fixed: 2849203
Update reject ap type to string from int value while
dumping blacklisted bssid for debugging purpose.
Change-Id: I2a12949e9e46f6fad32cc54ac975dfbfbdba88ab
CRs-Fixed: 2857907
Change TWT nudge command to be asynchronous. Handle wake
time tsf field in the nudge command response.
Change-Id: I22c75a42bf60f52f52d7d7fe19f408ebb55f360a
CRs-Fixed: 2847173
Add support to include the session state in TWT status query
response. Session state is set to active once setup is
complete and when resume response event is received from
firmware. Session state is suspend when suspend response
event is received from firmware.
Change-Id: I1f47947c05f80bd85199fd81b951dc54deacdc09
CRs-Fixed: 2854500
Add support to get the following TWT target capabilities
1) Nudge 2) all twt and 3) statistics
Change-Id: If74e99b0ff920481bcabb0300129b9067082d113
CRs-Fixed: 2854927
When unit test WoW is executed, system suspend case is currently being
executed. Add a new case for handling unit test WoW suspend mode.
Change-Id: I9defa7175a638363a1dd736018d17a42d8afe6b3
CRs-Fixed: 2855437
When a new connection is about to come up, host checks if current
concurrency combination including the new connection is allowed or
not based on the HW capability.
Firmware manages NAN + NDI by dividing up slots. Connection on NDI
is re-negotiable and therefore a 3rd connection with the same MAC
is possible.
Change-Id: I63e39c5cd4945cd308e475c1e03f676336c4e7c1
CRs-Fixed: 2841457
Don't allow TWT commands back to back till response for
existing command is not received.
Reject the new command till the existing command completion
event is received from firmware. Allow TWT teardown when
any other command is in progress after TWT setup is complete.
Change-Id: I9282230c7cb24691b44ddfd273972272fd80f44b
CRs-Fixed: 2853515
Create TWT context in peer object to store the TWT session
related parameters. Introduce mlme api to get/set various
twt session parameters for the peer.
Block the below commands till TWT setup is complete.
TWT GET
TWT Pause
TWT resume
TWT terminate
Add new files for TWT specific functionality in MLME component:
components/mlme/core/inc/wlan_mlme_twt_api.h
components/mlme/dispatcher/inc/wlan_mlme_twt_public_struct.h
components/mlme/dispatcher/inc/wlan_mlme_twt_ucfg_api.h
components/mlme/core/src/wlan_mlme_twt_api.c
components/mlme/dispatcher/src/wlan_mlme_twt_ucfg_api.c
Also return error to userspace if back to back TWT setup
command is received before TWT setup response is received from
firmware or already TWT setup is complete for given dialog id
Change-Id: I61e24dd41dc9dcb78fdfe33ef8fa0ecb374a4a72
CRs-Fixed: 2847213
Issue1: Driver RTPM state is ON/NONE, Kernel state is RESUMING.
cdp_runtime_resume is already complete,
hif_pm_runtime_get return -E_INPROGRESS,
dp_tx_hw_enqueue will set the flush event,
but cdp_runtime_resume is already done,
this flush event will be handled only on next pkt tx.
Issue2: Driver RTPM state: Resuming
hif_pm_runtime_get returns -EBUSY,
dp_tx_hw_enqueue is interrupted by any IRQ,
cdp_runtime_resume is completed,
dp_tx_hw_enqueue will set the flush event,
This flush event will be handled only on next pkt tx.
Fix:
Introduce a link_state_up atomic variable in hif to track the link state
change by pld_cb.
Set atomic variable link_state_up=1 in pmo_core_psoc_bus_runtime_resume
just after pld_cb. pld_cb brings the PCIe bus out of suspend state.
Set atomic variable link_state_up=0 in pmo_core_psoc_bus_runtime_suspend
just before pld_cb. pld_cb puts the PCIe bus into suspend state.
Introduce dp_runtime_get and dp_runtime_put.
dp_runtime_get get refcount with increment of an atomic variable.
dp_runtime_put return refcount with decrement of this atomic variable.
If hif_pm_runtime_get returns -EBUSY or -EINPROGRESS,
take the dp runtime refcount using dp_runtime_get,
check if the link state is up, write TX ring HP,
return the dp runtime refcount using dp_runtime_put.
cdp_runtime_suspend should reject the suspend, if dp_runtime_get is non
zero.
cdp_runtime_resume should wait until dp_runtime_get becomes zero or time
out, then flush pending tx for runtime suspend.
Change-Id: I7f38b3dc6975fcc208ad85e913564dfef5cc1cb7
CRs-Fixed: 2849002
Support has been added in common code to register both
common tx ops and MC/WIN specific tx ops. Add support to
register and tx ops for MC specific stats.
Change-Id: I4e5263e4685a707008ec3c5e96f50c707b071fe9
CRs-Fixed: 2851256
Currently in SAP and STA mode the driver advertises TWT
capabilities in the HE capabilities IE based on the below ini
values irrespective of the master ini "enable_twt" to enable
the twt feature:
"he_twt_requestor","he_twt_responder", "he_bcast_twt",
"he_flex_twt_sched".
So even with the ini is disabled, twt capabilities are advertised
Advertise TWT capability only if "enable_twt" ini is true.
Change-Id: Iae3a98ee339f3859391e0deb64ddd354634b0cbf
CRs-Fixed: 2844516
In AP side power off/on case, AP security has been cleanup.
The STA side might still cache PMK ID in driver and it will always
use PMK cache to connect to AP and get continuously connect failure
in SAE security. This function is to detect AP off based on FW
reported BMISS event. Meanwhile judge FW reported last RSSI > roaming
Low rssi and not less than 20db of host cached RSSI to avoid
some false alarm such as normal DUT roll in/out roaming.
Change-Id: I5d8ec9e9d4f8a44178b113d370799fe2bc0373fb
CRs-Fixed: 2841481
Currently host checks mac number to indicate
MCC or DBS which may not be correct. Host
may print DBS in case of MCC.
Check DBS support and print concurrency
based on hw mode if hw mode is dbs capable
then print DBS else MCC.
Change-Id: I1578e6a7a6b73b5b6c409653b4dc276954f51c3d
CRs-Fixed: 2845634
wpa_supplicant/framework sends different vendor specific IEs in
connect request. Currently driver is parsing the IEs and appending
specific IEs to the assoc request frame. But all vendor specific
IEs are supposed to be sent in the assoc request. Extract all vendor
specific IEs and append at the end of the frame.
MBO IEs are expected to be present at the end of the frame.
So append rest of the vendor IEs just before MBO IE.
This is a followup change for the change
Ia6423bb43b2ac294541c2485f5ed45d14af6553d to ensure the
"appending vendor IEs to assoc request feature is still intact".
Change-Id: Id788153ceb30c67f7ca9de9f3feea2d610cb21cb
CRs-Fixed: 2851362
The change I3d49c72a31d142ef3b14b439af2ae4cd8be059ea adds support
to append the vendor IEs received from userspace to assoc request.
But this also fixes a memleak in mbo IE handling. It's better split
these two as the feature(appending vendor IEs to assoc request)
may not be needed on all branches but the memleak fix is needed on
all the builds which support MBO.
So, revert this change and raise these as two separate changes.
Change-Id: Ia6423bb43b2ac294541c2485f5ed45d14af6553d
CRs-Fixed: 2851356
In moselle, the runtime suspend and wow resume sync logic has
been added without any condition, since hastings is doing APPS
side PCI bus suspend which cannot be reverted on suspend failure,
so doing this sync logic only if wake irq type is CE interrupt.
Change-Id: I07dc5a99d0661fe1ef81e7a46e7053244edf8eb6
CRs-Fixed: 2851261
Acquire connection list lock in policy mgr before update the
entry. The "conn_index" maybe changed for a connection entry
if other connection is up or down.
Fix by acquire connection to protect the whole "update" operation.
Change-Id: I91e82e74884ef32e83e0c4105e88bafe8d99db3d
CRs-Fixed: 2848209
Subscribe for offload Tx data wdi event and process offload Tx
data packets and post into mon thread for packet capture mode
Change-Id: Ic61043b8461eed4be5e8dc8d41baca2574224a90
CRs-Fixed: 2845598
Cleanup the struct sCsrNeighborRoamControlInfo and move params in
vdev ext object.
Change-Id: If5a490c68137622838afc831a4da0e1da7fa49c4
CRs-Fixed: 2850991