Add support to get the TWT self and peer capabilities via the
QCA_WLAN_TWT_GET_CAPABILTIES vendor command.
High 16 bits - self capabilities,
Low 16 bits : peer device’s capabilities
The meaning of each bit is below:
Bit 0: Requester Support
Bit 1: Responder Support
Bit 2: Broadcast TWT Support
Bit 3: Flexible TWT Support
Bit 4: TWT Required
Change-Id: I78b0c5902c89fe3a8eec1697fa513aac3c2b7a36
CRs-Fixed: 2847177
Add support for below TWT commands to be sent as asynchronous
commands from userspace:
1. TWT teardown
2. TWT pause
3. TWT resume
Change-Id: I1989fe153cc8a482a9616a7f6879de3b92ef82fb
CRs-Fixed: 2847143
This is the new OP for vendor sub command
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT to set twt
suspend/resume parameters.
Change-Id: If4ec03364f41ca4960673fb7a13b91a929cfe567
CRs-Fixed: 2797664
Introduce wma_validate_handle() with the caller function name
embedded in it to validate the WMA handle and log incase
of error. Calling functions can avoid logging in case
wma_validate_handle() returns -EINVAL. This reduces logging and
thereby memory foot print.
Change-Id: If38436a590d8b950509bde40468b9ddc3cf33e8d
CRs-Fixed: 2833040
TWT HDD callbacks are registered dynamically when each TWT
command is received from userspace and unregistered while
sending response. This design was in place considering the
existing TWT commands are synchronous and multiple back to
back TWT commands will not be received. But now the TWT
commands from userspace can be received asynchronously.
So register the TWT callbacks statically during start modules in
wlan_hdd_twt_init().
Change-Id: I7dd9333c330a90fca421a2cc2574b2db76536e96
CRs-Fixed: 2830644
Add support for below TWT setup additional parameters:
Minimum TWT wake interval
Maximum TWT wake interval
Minimum TWT wake duration
Maximum TWT wake duration
Make the TWT setup command handling as asynchronous.
Send QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT event to
userspace when add dialog complete event is received
from firmware.
Change-Id: Ia56bbecd04e0c02a55dc1a7f43ee533a85f82f1d
CRs-Fixed: 2842895
Currently, ongoing STA connection is not aborted when a
stop_adapter is received on SAP. This results in a peer leak in
the below scenario,
1. Turn on SAP.
2. Initiate STA connection to an SSID which has multiple BSSIDs in
dense environment. Connection gets retried to next BSSID when
it fails to connect to the current BSSID.
3. Turn off SAP while connection is happening. stop_bss command
doesn't get processed and waits in queue as the STA connection
is going on.
4. If stop_bss timer(10 seconds) expires while STA connection is
in progress, SAP vdev is destroyed without cleaning up self
peer. So, there would be a peer leak.
Abort the ongoing sta when SAP goes down, so that stop_bss gets
processed cleanly and self peer is also cleaned up.
Same is applicable for P2P_GO as well.
Change-Id: I888a602cd27a9bbec54fb356ed1488cd9fc2847c
CRs-Fixed: 2852023
Incorrect dialog id can cause add dialog request to target to fail.
Validate the id from user before sending it to the target.
Change-Id: Ib40b2554a1a420e9b799aab80a991fbab484667f
CRs-Fixed: 2827838
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
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
In beacon, if STA Channel Width is 1, indicate 40M width is supported,
but Secondary Channel Offset is 0, indicate 40M channel is disabled,
20M width should be set instead of 40M.
Refer 802.11-2016 Table 9-168 HT Operation element fields and
subfields.
Change-Id: Ifb130b3447e4f10723295b93e505df929a16486d
CRs-Fixed: 2854933
TDLS pkts statistics API cost 10% CPU cycle of whole RX
thread. The code logic show it may not be caclulated when
bus vote larger than medium. But checking routine always
return false of which may lead more power cost. Fix bus
vote checking routine to return correct vote status in
stead of always false value.
Change-Id: I003c9943ef3a4bbc83db6caaf893408e40e4962b
CRs-Fixed: 2842119
During the driver unload whenever the recovery is triggered in
the current implementation the request is silently dropped, this
is resulting issues in other areas during the driver which is making
it harder to debug the issue.
Trigger system panic to debug the reason for recovery during the
driver unload.
Change-Id: I67c6c7e8b19dcc3371cd6691c0e3f19be4c33c46
CRs-Fixed: 2850591
Record station connect/disconnect event for debug connectivity
issues. Dump the latest 20 records for unexpected disconnect case.
Change-Id: Ibf04b98a0124b84b77e3b5647e4d4234189b0ab2
CRs-Fixed: 2849471
Update the validation for SA Query Request/Response to fix the
issue that these frames are dropped unexpectedly when OCI IE
is not present.
Change-Id: I57acd699fd5c7eba23551133e3439fe23c1949a4
CRs-Fixed: 2846717
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
HW assist is a FW feature and it is enabled by default. But there is
no provision to disable/enable this feature based on requirement.
To address this, add INI param to enable/disable HW assist feature
in FW.
Change-Id: Icdc4a842be4d5c6991a785ee270f61ba87fcfe79
CRs-Fixed: 2841346
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
Print is logged on rx packet deliver failure with
no relevant info since the skb is already freed.
Fix is to not log info on packet deliver to stack
failure.
Change-Id: I8f91a14030c76907d60e95ccbd19b600938ace90
CRs-Fixed: 2849093
Reduce excessive logging for roaming path to reduce latency.
Also remove function and line prints in roam debug related
logging.
Change-Id: Ida6fc55886c944126720f8bdd4b944765426ccc6
CRs-Fixed: 2847773
Subscribe for Tx data wdi event and process Rx data packets
and post into mon thread for packet capture mode
Change-Id: I1a2930110bebc152db32cb2c1f1bc1120fc29755
CRs-Fixed: 2845597
Subscribe for Tx data wdi event and process Tx data packets
and post into mon thread for packet capture mode
Change-Id: Id4c231ce8f32c45f579289b37cb810581c6ab31b
CRs-Fixed: 2845593
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
Configure TWT SAP PDEV count using CONFIG_WLAN_TWT_SAP_PDEV_COUNT
and SAP STA count CONFIG_WLAN_TWT_SAP_STA_COUNT for QCA6490
Change-Id: I74ef054d9cb64ccf66d7e1e788a8cc75aec70cb9
CRs-Fixed: 2843660
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