FISA RX aggregation is not necessary for non-regular RX delivery
as it requires extra FISA flush and also may impact regular
dp_rx_process() RX FISA aggregation.
Add exception frame flag for non-regular RX delivery, so that
FISA path can identify this frame and bypass FISA RX.
Change-Id: Ic06cb72b516221754b124a673ab6c4f392947897
CRs-Fixed: 2680255
MPDU start TLV structure is different across pine and hk/cyp. The
access to individual members of this structure is already taken care
in HAL APIs.
Tha addition of offset is redundant and wrongly defined offset values
led to wrong interpretation of mpdu start tlv fields like RSSI in
QCN9000.
Change-Id: I3c0daa1c9117eecd1566a1d52d794e92dc292fa4
CRs-Fixed: 2682570
Add debug info support for rx descriptors to log
the caller func name and timestamp in replenish
and free scenario.
Change-Id: I1d9b855d14f705094f241bae653f33a94d0e39b7
CRs-Fixed: 2677288
make sure both PCIe and device are force woken for the register
writes for hsp, or write may fail.
Earlier WAR is not required as we have root caused it.
Change-Id: I350b810a6cef8eec46428e57f5b779f888552c1b
CRs-Fixed: 2677342
Added support to configure TSO and REO descriptors as part
of new datapath init-deint enhancement for ipq5018 target.
Change-Id: Ic6878dafa99cb09d6e45cf2d69de76cac0fe35c1
With the current implementation of wmi init command,
there is no provision for the host driver to provide mem
chunks addresses with more than 32-bit, to the firmware.
WCN3990 is a 35-bit target and can accept mem chunks addresses
which are above 32-bit.
If firmware supports address range more than 32 bit, it
advertises the support by setting the WMI_SERVICE_EXTEND_ADDRESS
service. Based on this service fill the upper bits of paddr while
providing the mem chunks in the wmi init command.
Change-Id: Id65eb03d8f5cec5b9f16e24287a45a86433ab970
CRs-Fixed: 2678069
Soc level exception descriptors limit is sent from FW in WMI service
ready TLV. Using that to check for exception packets limit
Change-Id: I99d20ecbb6a5bfd61b5a8a205775d34749eae880
In dp_peer_teardown avoid setting the delete in progress
flag only for AP bss peer
For STA bss peer as CP always allocated new peer for peer_create
set delete in progress in teardown
Change-Id: Id769678895a0953e731ce040399af7bddd4c373d
Add support for processing the start scan response
WMI event. FW provides the necessary information to
segregate FFT bins to pri80, 5 MHz and sec80 in
160/165 MHz. Also, cfreq2 and the channel width is
provided to FW via WMI command.
CRs-Fixed: 2672081
Change-Id: I666b6c18a63d5d01117aa9cbd611691c6f8b2793
Added unique irq name per pci slot so that affinity settings
can be altered as needed. Pci id will be read from dts, and
when there is no entry in dts, default value 0 will be used.
Also for all other target types except qcn9000, default value
0 will be used.
If WLAN_MAX_PDEVS is defined to 1, then always return pci id as
0 since there is only one pdev present
Change-Id: I8159ec8d8daecae687fcc286d620bfe9861dff98
Currently when supplicant sends set_pmkid_cache (Either after
initial connection or after session timeout with AP) to host to
set the new pmkid derived after the EAP is done. Host deletes
PMK entry only if bssid/ssid matches.
For OKC, the PMK derived from the initially associated AP will
be used for deriving PMKID for all APs. In case of connection with OKC
supported APs, If STA receive session timeout from AP, HOST should
delete older PMK of all APs which have the same PMK. Else While
roaming HOST could send older PMK to OKC supported AP and this
results PMK flush in FW and leads to full EAP.
Change-Id: I83e8d4c0c8b3ad503aa5894ffdc4a14bc3aeec7a
CRs-Fixed: 2679749
Add an API wlan_reg_get_phybitmap, to retrieve the phybitmap from the
regulatory pdev_priv_obj->phybitmap.
Change-Id: Ie03ab69b2378f7243bbacc15c71007cdf0386ef6
CRs-Fixed: 2675030
When Host receives the WMI_REG_CHAN_LIST_CC_EVENT from the target,
the regulatory phymode bitmap is of the type WMI_REGULATORY_PHYBITMAP.
Convert WMI_REGULATORY_PHYBITMAP values to REGULATORY_PHYMODE values
in extract_reg_chan_list_update_event_tlv, to use it internally in
the Host.
Change-Id: Id2e37989e13007f60cf92d02c282c84407501d5f
CRs-Fixed: 2679640
Update regdb with QCA regulatory database version 31 with following
changes:
1) Map Andorra to ETSI1_WORLD for WIN and DSRC, and ETSI13_WORLD for MCC.
2) Map Armenia to APL4_WORLD for WIN, and ETSI4_WORLD for DSRC and MCC.
3) Enable 40, 80 and 160 MHz BW support for Armenia.
4) Enable 40, 80 and 160 MHz BW support for Bahrain.
5) Add Indoor flag in lower bands for APL15.
6) Map Bolivia to FCC8_WORLD for WIN and FCC3_WORLD for MCC.
7) Map Brunei to FCC8_WORLD for WIN and FCC3_WORLD for MCC.
8) Map Ecuador to FCC3_FCCA for WIN and MCC.
9) Enable 40, 80 and 160 MHz BW support for Ecuador.
10) Map El Salvador to FCC3_WORLD for WIN and MCC.
11) Enable 40, 80 and 160 MHz BW support for El Salvador.
12) Map Japan to MKK17_MKKC for MCC and DSRC.
13) Map Kuwait to ETSI1_WORLD for WIN and ETSI13_WORLD for MCC and DSRC.
14) Map Sri Lanka to FCC3_ETSIC for WIN, MCC and DSRC.
15) Enable 40, 80 and 160 MHz BW support for Sri Lanka.
16) Map Yemen to ETSI1_WORLD for WIN, MCC and DSRC.
17) Enable 40, 80 and 160 MHz BW support for Yemen.
18) Remove 40/80/160 MHz channels support in ETSI11.
Change-Id: Ieba86cb99f6963432777cd6aaa6ffb6b3e72b657
CRs-Fixed: 2662186
On disabling debugfs, there are various compilation issues
involving missing stub functions and incorrect declarations.
In this change, resolve those issues.
Change-Id: I7b3047dac2aaf4eb68c64505186ca51e22ab0928
CRs-Fixed: 2670460
Check HE 6GHz duplicate beacon in scan results and do not
drop the beacon due to channel mismatch.
Change-Id: If095c18e4ad377a5909c9460fceaa47a2a768ce0
CRs-Fixed: 2654483
With the init/de-init FR we set the minimum buffers
needed in monitor buffer ring to be 8, because the low
threshold by FW is set to 32 the MPDU TLVs are not DMA'd
to monitor status ring, this resulted in NAC feature
regressed. hence changing it from 8 to 64
Change-Id: Id39dce59686b7416bdc6156798ff7f948dff8da6
CRs-Fixed: 2683633
If the country code is present, from the country code get the country
index in g_all_countries. Then get the maximum 5G bandwidth supported
by the country. Otherwise, from the regdomain pair value, get the max
5G bandwidth that is supported by that regdomain.
One of the applications of the maximum 5Ghz bandwidth is the following:
Build the 80P80 channels only if 160 MHz bandwidth is supported by the
country
Change-Id: I9e09fdc3a9a276c75f3fc709ee041a47ec812516
CRs-Fixed: 2673083
The channel array is being over indexed by 1. Update the for loop
to stay within the array bounds, and make it more resilient in case
of future changes to the array size.
Change-Id: I09f140fdb6a25283db5d34d405bf030a67caefd5
CRs-Fixed: 2668363
Adding support for action frame to identify category code and
action type and adding these rule to action frame specific data
structure
Change-Id: Ic1ca4e3d2f3d53502b3c9cca59b310b919a1f713
CRs-Fixed: 2669950
Adding tgt API call from debugfs write handler
to add or delete content change rule in fw.
Change-Id: Ia77e008c4fa8f1b93bf3b93e0953bd29544a7d5c
CRs-Fixed: 2665476
Following changes were done:
1. Adding debugfs functionality for iot_sim module
2. Changing the iot_sim context from psoc to pdev
3. Currently iot_sim support only bcast peer
4. Adding write handler to store user configured rules.
Change-Id: I4319bae3986874434f2a2e2397b1a8698c48d936
CRs-Fixed: 2657929
Add support for HW version soc id and HW name string
for Hastings and HastingsPrime platform.
Change-Id: I1ba57339b2f9afd425e1ecc9f312ad484340d226
CRs-Fixed: 2681134
Currently, the kernel APIs wakeup_source_register are used for kernel
version 4.19.110 and higher in sync with the upstream kernel. But in
downstream kernel, the same has been introduced from 4.19.80.
To accommodate compatibility with both, use a downstream compiler flag to
indicate when to use the kernel APIs.
Change-Id: I7c2d439aa8c859d92b4bbdbdd5034861c0c98e75
CRs-Fixed: 2679523
In the process of dcs disable delay, do restart(start/stop) SAP
operation, when SAP is started, it will send dcs cmd to enable
dcs wlan im again, but dcs_disable_timer is still running and
disable_delay_process is still true, dcs interference detection won't
work in time, after dcs_disable_timer timeout, it will set
disable_delay_process to false and dcs interference detection will
work again, but it will delay for some time from SAP started.
Fix is to reset im stats and freq ctrl params when enable dcs
wlan im.
Change-Id: I5be96b65037088c2797135a2b4c685c2826b2b57
CRs-Fixed: 2676033
Currently, burst duration is configured as 240ms when NDI has
active NDPs. Firmware can go off-channel for scanning for this
duration which blocks data transfer. But some NDP based
applications(e.g. audio transfer) can tolerate a latency of
a maximum 120ms. So firmware can't go off-channel for
more than 120ms.
Configure burst duration as 0 when an NDP is active
to make sure firmware does non-burst scan and returns to NDP
channel within 120ms after scanning.
Change-Id: I33ca3a9d11c54b1173a3abd3ed7aa19c9c5662e5
CRs-Fixed: 2679038
Use appropriate size value MAX_NUM_LMAC_HW to make sure
that we have right size for hw_macid_pdev_id_map.
Change-Id: I3cbb1f83be54252c995e777392bb1c86a95239c1
Match the type of the first parameter of the function
definition with the type of the first argument of function call.
CRs-Fixed: 2670065
Change-Id: Ifd9bd138caf5b3e0a547bc9a8bd2da38f0f8f675
Currently as part of runtime PM, only the active
tasklets are being drained. For chips eg. QCA6390,
QCA6490 etc, there are grp_tasklets and delayed reg
write work which has to be drained before entering
runtime PM.
Add the logic to drain all the possible tasks
before entering runtime PM.
Change-Id: Ieb486f00fffd7346dcdc1faea6fed5850ef6daf7
CRs-Fixed: 2676000
Move the ppdu_user_desc assignments in all tx capture
before peer checks. FW sends the peer_id which is not
valid in host, so this check is needed to not
miss the sequence number in this scenario.
Change-Id: I24305ae8f8f1964157ca61b8687fe72e76cde5ca
CRs-Fixed: 2626247
In case of driver unload, there can be a race condition
since the timer for processing monitor status ring can run
in parallel to the unload time wow ack response handler,
which is also flushing all the monitor status ring entries.
To avoid this race condition, stop the monitor reap timer
as a part of target suspend, and process all the outstanding
entries in the montior status ring.
This will make sure that the monitor status ring is
processed from only one context at any given time.
Change-Id: If61327c73fdddc414b3957b69ae986f2a26bb803
CRs-Fixed: 2677812
Add a dispatcher API ucfg_dfs_is_agile_rcac_enabled() to determine
if RCAC is supported for the given pdev.
Change the prototype of dfs_get_rcac_enable() to store rcac
config in a bool datatype.
Also, do a structure copy of ch_params of RCAC channel in
utils_dfs_get_rcac_channel().
CRs-Fixed: 2679975
Change-Id: I4b033463fc8111144bfffd3bb7e7d2bef6568c46
The current value of WMI_BEACON_TX_BUFFER_SIZE imposes a limita-
tion on the size of the probe-response template that host can
send to target. This limit is good for offloading probe response
to target in case of soft-ap
WIN AP requires to support up to 16 VAPs in a single WIFI radio.
Also, 20TU probe response requirement for 6Ghz AP now requires
WIN AP to offload probe response
The current limit of 500 bytes is sufficient for soft-ap but does
not fulfill 16 6Ghz WIN AP requirement
Define WMI_BEACON_TX_BUFFER_SIZE for WIN AP as 1500 bytes
CRs-fixed: 2681235
Change-Id: I6251ee049451aa0c4a0482d772842a4f688b2f89
In some scenarios, where cfr data is being captured
for maximum supported bandwidth case, memory allocated
in case of streamfs for all 255 buffers is not enough.
Corrections are made for maximum capture length.
Maximum capture length for a single CFR capture should be
(max bandwidth case) 16240B (112 bytes(csi header)
+ 64 bytes(cfr header) + 16064 bytes(cfr payload))
Remove debug logs under spin lock
Change-Id: I7cdc25350f3d85ecb7d0d69431c3c66dbc9b2bed
CRs-Fixed: 2678750
It uses point to 16 bits variable as 32 bits pointer when setting ta
ra configurations to default. This causes memory access out of
bounds.
Change-Id: Ifa7adb0249cb23fdf71e53f04b92b62c1b215632
CRs-Fixed: 2677422
Suspicious dereference of pointer 'pdev' by passing argument
to function 'dp_find_peer_by_addr' in dp_register_peer.
Add NULL check before dereference of pointer 'pdev'.
Change-Id: Ibe2db784287ff1557aec983829781378578016c0
CRs-Fixed: 2668253
To be able to configure SRG BSS Color Bitmap and SRG Partial BSSID Bitmaps,
add the required WMI support.
CRs-Fixed: 2665817
Change-Id: I141abe24dd34cab92f45b230b385500902d01416
The stale value of this field blocks driver from sending
FW_HANG wmi messages to target after recovery
Change-Id: Ib44388c5c95c2574c96117b77fdabda26f5890bd
Usage of %p instead of %pK can lead to info leak, so use %pK uppercase
K instead of k.
Change-Id: Ie4f51e053ed28045b9920f274baebef0233f070e
CRs-Fixed: 2677374