Commit graph

10,041 commits

Author SHA1 Message Date
sheenam monga
ddeb8d8cf5 qcacmn: Add QCA vendor interface to query usable channels
Add QCA vendor interface for userspace to get information of usable
channels for different interface types from the driver/firmware.

Change-Id: Ice662b9f14e95f32f853637e73bccd686678f278
CRs-Fixed: 2939047
2021-07-14 14:33:13 +05:30
Yeshwanth Sriram Guntuka
89e05224f0 qcacmn: Assert only when unmapped is true in rx_desc
The existing assertions for unmapped variable in
rx descriptor results in an undesired bug_on since
the unmapped value is 0 for active descriptors.

The fix is to modify this assertion so that bug_on will
be triggered only if the unmapped value is 1 in rx
desc.

Change-Id: I03b27e0e42ce3c42b9fa148da9258063b0209b08
CRs-Fixed: 2985248
2021-07-08 16:28:00 +05:30
Vevek Venkatesan
a702452515 qcacmn: abort system suspend_noirq if wake-IRQ received
Wake-IRQ can be received just before Kernel issuing
suspend_noirq callback, such wake-IRQ would not be
handled by Kernel. So check if any tasklet most likely
CE2 is pending and abort suspend_noirq if true.

Change-Id: Ie3d6de97179aa0d8f383a086f4f8df27d3fc5254
CRs-Fixed: 2981882
2021-07-07 01:41:42 -07:00
Vevek Venkatesan
6cb2c3095c qcacmn: add CDP reason code support for send_delba
Add CDP reason code support for sending DELBA request,
so protocol layer can make decisions for special cases.

Change-Id: I4e4b2e7f7232a8ab12d4c7838f97908f481dc787
CRs-Fixed: 2983553
2021-07-06 15:02:46 -07:00
Utkarsh Bhatnagar
7751915898 qcacmn: Handle non-inhertance IE scanning
The earlier logic for scanning non-inheritance IE fails if
non transmitted bssid profile has any extension element
such as MU EDCA before the extension element with
non-inheritance IE.
Since MU EDCA is also an extension element and it does not
have noninheritance element id in it, the logic used to fail
as the driver does not check further for any other extension
element ID in non transmitted bssid profile. Because of this
the IEs part of non-inheritance list used to get inherited,
causing disconnection issue.
With current fix, the scanning for non-inheritance IE has been
taken care properly. Driver will go through the non transmitted
bssid profile until it finds the extension element with
non-inheritance element ID in it.

Change-Id: Ib4346600a880a8390c6d023cf403ed18c62406d2
CRs-Fixed: 2935065
2021-07-05 13:52:14 -07:00
Vevek Venkatesan
cba89b9bc3 qcacmn: add support to clear the consumed HW descriptors
Add support to clear/reset the consumed HW descriptors
to zero.

Change-Id: Idccb120afa448c4f958a3177f27cab9b1197ac3e
CRs-Fixed: 2978850
2021-07-05 04:45:10 -07:00
Utkarsh Bhatnagar
00ac04113c qcacmn: Add support for TDLS 11ax
Add support for TDLS 11ax

Change-Id: Iec8d9d7356390c6012269ae2840ff2185f61f9da
CRs-Fixed: 2925247
2021-07-05 11:37:00 +05:30
Abhishek Singh
8ef52729fa qcacmn: Add new reason code in qdf_hang_reason
Add new reason code QDF_VDEV_SM_OUT_OF_SYNC, in qdf_hang_reason.

Change-Id: I528fa1d2dc32ff8d8e4b7e38f16bce04cda48b5b
CRs-Fixed: 2982366
2021-07-02 21:01:08 -07:00
Karthik Kantamneni
e6c70c2340 qcacmn: Skip sending WMI REORDER_QUEUE_SETUP for BAR frames
When host receives BAR frames with OOR/2K jump in sequence
number it updates REO HW with new starting sequence number
and requests F.W to setup peer reorder queue. But REORDER_QUEUE_SETUP
is already requested to F.W as part of initial add BA in host.

So while handling OOR/2K jump BAR frames don't send
REORDER_QUEUE_SETUP to F.W

Change-Id: Idc3657e901dc792f699b53c45e4ae5133d286891
CRs-Fixed: 2981280
2021-07-02 07:16:14 -07:00
Utkarsh Bhatnagar
2471eee1fc qcacmn: Add Non-inheritance IE support on STA
If there is any non-inheritance element present as part of the
nontransmitted BSSID profile then while generating scan entry
for that profile, driver need not inherit those list of
element IDs and list of element ID extensions from the
transmitted BSSID profile.
Since non-inheritance element is an element ID extension, it
should be part of extension element. So the logic we use over
here is to find if there are any extension element present in
the nontransmitted BSSID profile. if yes, then only go ahead
with below logic or else go with the normal flow.
Logic:
Mark and store the start of the list of element IDs and
list of Element ID extension.
While generating the new ie for the non transmitted BSSID
profile, do not inherit the IEs present in the above
mentioned lists.

Change-Id: I466afa8273e841b6f7656b1dc59342bc2d4f13bc
CRs-Fixed: 2883389
2021-07-02 05:21:29 -07:00
Utkarsh Bhatnagar
9b0e46bbbf qcacmn: Add support for split profile BSSID in MBSSIE
If any nontransmitted BSSID profile is fragmented across
multiple MBSSID elements, then it is called split profile.
For a split profile to exist we need to have at least two
MBSSID elements as part of the RX beacon or probe response
Hence, first we need to identify the next MBSSID element
and check for the 5th bit from the starting of next
MBSSID IE and if it does not have Nontransmitted BSSID
capability element, then it's a split profile case.
This change is responsible in accumulating the non
transmitted BSSID profile, fragmented across multiple
MBSSIDs, so that the scan entry will not miss any
information.

Change-Id: Ia78cc47d1ffd03ada659d257b83741e7ab921fa2
CRs-Fixed: 2883389
2021-07-02 05:21:24 -07:00
Manikanta Pubbisetty
0b1e51e947 qcacmn: increase force wake timeout
Increase force wake timeout to 500ms for perf builds.

Change-Id: Ib665418b5de63048f02d7093d12813f4babdbf72
CRs-Fixed: 2979062
2021-07-02 03:43:58 -07:00
Arun Kumar Khandavalli
0130039eba qcacmn: Add the api to set smmu fault state
There is a time involved between the smmu fault initiated
and the eventual system panic. In this time there is a
possibility of the nbuf history being overwritten losing
the information on the nbuf which might has actually caused
the SMMU fault.

Set the ssmu state and dont track the nbuf's when the smmu
fault is detected.

Change-Id: I579da332766618161567764656005ef13667270e
CRs-Fixed: 2960070
2021-07-02 02:10:15 -07:00
Vevek Venkatesan
e61e102db3 qcacmn: rate limit error log in dp_2k_jump_handle
Error log peer not found is coming spurious in
dp_2k_jump_handle on continuous error pkts, so
rate limit the same.

Change-Id: If4b577a7759136ea824ca62b63ef91d102b8decb
CRs-Fixed: 2978939
2021-07-01 16:45:45 -07:00
Yeshwanth Sriram Guntuka
5ec748e3b9 qcacmn: Check for msdu len err only when msdu cont bit is 0
If an MSDU is scattered across multiple nbufs, rx
attention tlvs are only valid for the last nbuf for
this MSDU. MSDU len err field is fetched from rx
attention tlvs for all the nbufs which could result
in an incorrect drop of packets.

Fix is to check for msdu len err for nbufs with msdu
continuation bit set to 0.

Change-Id: I0ed5cbb37a2ba34a39328618e3f5e66d419d7cca
CRs-Fixed: 2982308
2021-07-01 08:55:36 -07:00
Karthik Kantamneni
8327d7ec92 qcacmn: Remove affinity hint for CE irqs in QCA6750 target
CE irqs affinity is set to gold cores, but affinity
hint is not removed while freeing irqs.

So remove CE irq affinity before freeing them.

Change-Id: If3822422f823cb3caa6e291387a2beadc62049b7
CRs-Fixed: 2975529
2021-07-01 08:55:32 -07:00
Surabhi Vishnoi
77fde7b9cb qcacmn: Add support to handle wmi smart monitor event
Add functions to parse and extract wmi smart monitor
event received from target.

Change-Id: Ic18e3134b684c5f8e12839e997d628909a7e27c9
CRs-Fixed: 2969247
2021-07-01 04:51:20 -07:00
Lincoln Tran
b85c788909 qcacmn: Update Japan operating class table
For operating class 128 and 130, a new center channel was added to list.
Update the table to reflect the new channels.

Change-Id: I6157f02089f7b4f16231a6bb35d829343bbc968f
CRs-fixed: 2975890
2021-06-30 08:23:48 -07:00
Liangwei Dong
78cb3c0c54 qcacmn: Fix incorrect channel state for NOL channel
For 2G and 5G, the secondary channel list is coming from
master channel list which is not filtered by NOL.
Fix by using cur_chan_list to fill the secondary channel
list for 2G and 5G part.

Change-Id: I5e9ede6e39a66ad1a2f0e6c32c151ef175be6dab
CRs-Fixed: 2976916
2021-06-30 00:41:49 -07:00
abhinav kumar
999bdb6b11 qcacmn: Add support to print candidate rssi in kmsg
First Requirement:
In case of WTC_BTM roam trigger reason, if FW reports rssi
threshold for 5G and 6G AP via wmi_roam_trigger_reason,
Host should print it in kmsg.

If wtc_candi_rssi_ext_present is set (1), It means fw
reports 5g and 6g candidate rssi (new firmware case).
If wtc_candi_rssi_ext_present is clear (0), It means fw
doesn’t report 5g and 6g candidate rssi (old firmware case).

Host use flag "wtc_candi_rssi_ext_present" to keep backward
compatibility.

Second requirement:
As per user space, value for scan mode in WTC command, is
like below:
0: no Scan, 1: partial scan and 2: full scan.

For NO scan case, FW sends value
ROAM_TRIGGER_SCAN_MODE_NO_SCAN_DISCONNECTION (3)
in wmi_roam_trigger_reason-> wtc_scan_mode. When driver receives
WTC scan mode as ROAM_TRIGGER_SCAN_MODE_NO_SCAN_DISCONNECTION,
it should print value as 0 instead of 3.

Convert WTC scan mode comes from FW to
wmi_configure_roam_trigger_parameters->scan_mode to make it
compatible to WTC command.

Change-Id: I8266460aac1272d345e4349c2ca52b4f9a745d4c
CRs-Fixed: 2965362
2021-06-29 11:34:15 -07:00
Wu Gao
11cc53360f qcacmn: Add wakelock for enhanced CFR
There is potential risk when starting CFR and resume happens at same
time, so this change adds wake lock for enhanced CFR.

Change-Id: Ifbde12cb73092b7fc4ef517e57051af4ffe7a79f
CRs-Fixed: 2974733
2021-06-29 10:11:47 -07:00
Yeshwanth Sriram Guntuka
9599a65f8b qcacmn: Modify ret variable check in hif_pm_runtime_get
Runtime put should be done in hif_pm_runtime_get when
return value of __hif_pm_runtime_get is negative. In
the issue scenario, the ret value will be set to 0 when
the return value of __hif_pm_runtime_get is positive.
The store operation for ret variable somehow did not take
effect and the if check for non-zero ret value to do
runtime put did go through. The return value to
dp_tx_hw_enqueue from hif_pm_runtime_get is the updated
ret value of 0. This will result in double runtime put
for a single runtime get.

Fix is to modify the ret variable check to negative
instead of non-zero to ensure runtime put happens
correctly.

Change-Id: Idc380a11c82b6d1acf7c750e7b93776ac9d6b4f2
CRs-Fixed: 2969879
2021-06-28 16:44:44 -07:00
Gururaj Pandurangi
06043e1d00 qcacmn: Add new API to update ap power type for 6G roam
Add a new API reg_get_6g_power_type to update ap power
type when STA roams in/out of 6GHz channel. It is invoked
from CSR during initial connection and sch beacon process
during roaming.

Change-Id: I0d20d4d7f291ec608b27a1611c8877c33f4b45b1
CRs-Fixed: 2968243
2021-06-28 13:01:13 -07:00
Balaji Pothunoori
357bf19f20 qcacmn: add wmi service for tx aggregation support
Add wmi service to differentiate max tx aggr support
from firmware.

Change-Id: I2f9a4101815b06b41d4a75d888e30ee42b9307ec
CRs-Fixed: 2959207
2021-06-28 10:54:20 -07:00
Yeshwanth Sriram Guntuka
a2e7d18f2e qcacmn: Invoke hal_reg_write_need_delay before the register write
hal_reg_write_need_delay is invoked immediately after
q_elem->valid check. The first two instructions in
hal_reg_write_need_delay could be in the CPU instruction
pipeline which could result in possible loading and
dereferencing of NULL srng from an invalid q_elem.

Fix is to invoke hal_reg_write_need_delay just before
hal_process_reg_write_q_elem and also add NULL checks
to avoid the srng NULL pointer dereference.

Change-Id: I2de50b1e78782e3c91a9cb4477f28d91f9c29439
CRs-Fixed: 2973257
2021-06-25 06:23:12 -07:00
Rakesh Pillai
3612885fe8 qcacmn: Delay 50us when update same shadow reg
Add 50us delay if srng's shadow reg write again within 5us.

Change-Id: I8d48496814e063ebd441db3520e3a5406c5db13e
CRs-Fixed: 2965371
2021-06-25 04:25:39 -07:00
Lincoln Tran
b043b5da0e qcacmn: Change the 6G reg rules when appending
Currently, when appending the 6G reg rules to the reg rules list, the
index is decided by the current AP power type. However, the reg rules
sent to user space should not be influenced by what mode the SAP is
operating in. Update the logic to always use LPI reg rules.

Change-Id: Iac4cddb2dc1d73ce35bdbe6365ea14af26656bbf
CRs-fixed: 2969456
2021-06-24 17:20:25 -07:00
Yeshwanth Sriram Guntuka
2b10eb6175 qcacmn: Drop msdu with len err in rx attn tlvs
Drop msdus received with len err set to 1 in
rx attention tlvs.

Change-Id: I8e754a6023874262406c050047ebf013e8b1d589
CRs-Fixed: 2941873
2021-06-24 15:44:24 -07:00
Abdul Muqtadeer Ahmed
56065de771 qcacmn: Vendor specific feature capability for dbs
Add feature capability indication for dbs for the
drivers to advertize support for this.

Change-Id: Ic6941e58a30d6aa6a867a12ddd7a8db5abbb1673
CRs-Fixed: 2821654
2021-06-23 08:19:48 -07:00
Yeshwanth Sriram Guntuka
7a22df3b9b qcacmn: Add support for GCMP in rx de-fragmentation
GCMP header and MIC are not removed for received
fragments which will result in incorrect ethertype
and presence of LLC hdr in the data when the frames
are sent to network stack.

Fix is to add support for GCMP in rx de-fragmentation
path.

Change-Id: I83ed29a766e40e32f4b712342ebd40d08a2c65e0
CRs-Fixed: 2941879
2021-06-22 23:47:10 -07:00
Alan Chen
2e780566b1 qcacmn: Add debug log for prevent suspend
Add debug log to get more detail when PCIe link suspend is not allowed.

Change-Id: Ia16f34a88d2d264c703d4fa068bec8b954466cf7
CRs-Fixed: 2963989
2021-06-21 20:52:49 -07:00
Kiran Kumar Lokere
f64ab454a8 qcacmn: Fix the channel validity check for beacon/probe response
Fix the channel validity check for DS param IE in beacon or probe
response frames in scan.

Change-Id: I17132d3d406b2953ad31dc6ab40b0158e21bc5c4
CRs-Fixed: 2960334
2021-06-21 18:55:46 -07:00
Srinivas Dasari
0cbfc58454 qcacmn: Allow PMKID only entries also to pmksa cache
In SAP case, external authentication(offloaded SAE authentication
to userspace) status event carries only PMKID to allow/disallow
peers to do PMKID+open auth based connection once the peers are
already SAE authenticated.
A check is added on the PMK length with the below change,
change: Ic41c2044e70f8d375130ef9e0af9fe4b83027c26. It rejects the
PMKID update to the pmk cache if the PMK length is 0. It's not
allowing to cache PMKID derived as part of SAE authentication.

There is no need to cache the PMK in SAE case as it won't be
used internally by driver or won't even be sent to firmware.
So, don't add any check and allow PMKID only entries also to
facilitate PMK caching mechanism in SAE SAP.

Change-Id: Ibd72975e91d93af9665c392b4e7a708a5f9c336a
CRs-Fixed: 2967752
2021-06-20 11:55:08 -07:00
Yeshwanth Sriram Guntuka
13cf7adcae qcacmn: Add ini support to modify IPA tx and tx_comp ring sizes
Currently IPA tx buffers are fixed at 1007 buffers.
Adding INI support to change number of TX buffers at load time.

Change-Id: Ide0357554f34759198276b9699e0e6f4a3e20051
CRs-Fixed: 2957916
2021-06-17 07:11:26 -07:00
Wu Gao
833d79b53c qcacmn: Fix compilation issue about decimal constant
There is compilation error about decimal constant on 32 arch. Fix is
to add suffix "UL" and to mark as unsigned.

Change-Id: I68b70fbfca4da244fdd9a82b1e28046c0a3b9a3d
CRs-Fixed: 2798875
2021-06-11 07:10:30 -07:00
Kiran Kumar Lokere
ddd99fd78a qcacmn: Configure MBSSID info for Tx AP connection
Configure the MBSSID info to FW for Tx AP connection to enable
MBSSID functionality in FW.

Change-Id: Ida415a5c8f1dcb66e8890595b5f3038a611d62a5
CRs-Fixed: 2959158
2021-06-10 15:16:03 -07:00
sheenam monga
b503722801 qcacmn: Don't mark ie invalid based on HT IE
Currently, host comapres HT Ie with htcap_cmn_ie
structure size but returns err in case ie len
is different from structure len which may break
the iteration and can lead to scan entry creation
failure.

Fix is not to break the loop and perform action
based on other Ie to avoid Ie parse failure which
leads to scan entry creation failure.

Change-Id: I93f0d67ae0f7ea8bb5dbeabc895b5c3d1ae43a73
CRs-Fixed: 2965729
2021-06-10 07:57:01 -07:00
Mohit Khanna
be9f588e34 qcacmn: Handle BUF_ADDR ring desc in dp_rx_err
Currently dp_rx_err_process expects ring descriptor to be only
LINK_DESC_TYPE. In certain cases BUF_ADDR_TYPE ring descriptor is
observed in reo_exception ring. Add logic to handle the same.

Change-Id: I5baecc3f8eafc0830672b91bc9d9607b568a6cda
CRs-Fixed: 2954653
2021-06-10 06:37:40 -07:00
Jinwei Chen
5fb54e2ed1 qcacmn: Deliver EAP frames to stack from REO exception path
Revert "qcacmn: drop duplicated EAP frames from REO exception path",
allow all EAP frame delivering to stack including retried ones.

Change-Id: I73733841c1feb21d5b5fd160856a8fe9c21168fc
CRs-Fixed: 2959701
2021-06-09 16:46:07 -07:00
Srikanth Marepalli
01cf133ef4 qcacmn: Add the support for SAE EAPOL handshake offload
Set the SAE EAPOL offload support in resource config based on
WMI_SERVICE_SAE_EAPOL_OFFLOAD_SUPPORT bit received in service
bitmap from Firmware.

Change-Id: I878736105c070df514dfe8d989541227b3baad11
CRs-Fixed: 2957082
2021-06-08 18:13:44 -07:00
Vevek Venkatesan
ba014e1268 qcacmn: add debug logs around peer AST cleanup
Currently there are no sufficient debug logs during
AST cleanup of peers, to conclude in which context
the AST got freed up, hence adding more debug logs.

Change-Id: I5603d856aed8cc3860a78d24d51cd8b5386d38bb
CRs-Fixed: 2956910
2021-06-08 12:07:28 -07:00
Abhishek Ambure
c13214fd21 qcacmn: Add support for nl callback for cfr data
Host add support to send cfr data via nl events to userspace
applications. Host registers callback when user send vendor
command to set transport mode.

Change-Id: Ieed3b6e09d871639af58336074313120d51762e2
CRs-Fixed: 2952096
2021-06-08 12:07:23 -07:00
Abhishek Ambure
3946d9e969 qcacmn: Add support for cfr data transport mode
User sets CFR data transport mode using vendor command
QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG. By default
CFR data transport mode is relayfs, user uses vendor command
attr QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE to set
transport mode QCA_WLAN_VENDOR_CFR_DATA_RELAY_FS or
QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS.
If user sets QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_RECEIVER_PID
attr in QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG vendor
command then hosts uses RECEIVER_PID to send unicast NL events
for CFR data.

Change-Id: I40e896fad8af24e761fcbedeba761f4a3815f0b8
CRs-Fixed: 2952095
2021-06-08 12:07:18 -07:00
Gururaj Pandurangi
4a070e1f70 qcacmn: Exclude 6GHz APs in VLP from scan list for US
If STA country code is US and 6G AP country IE is other than
US, STA would use VLP mode. Since US VLP is not determined
we don't allow connection to go through. Additionally, don't
include such AP to scan result.

Change-Id: I41b0c7dbea681b2ef1bea7c0a572ee1d7248fa6e
CRs-Fixed: 2953248
2021-06-04 10:14:49 -07:00
Pragaspathi Thilagaraj
a34b539f5e qcacmn: Add QCA interface to configure band specific rssi thresholds for roaming
Add QCA interface to specify the RSSI thresholds separately for candidate
APs from different bands.

Change-Id: I51d2e7c4490fde3901a4e4e8ad31d9c18823637c
CRs-Fixed: 2951242
2021-06-03 16:09:35 -07:00
Yu Tian
21ca55caf9 qcacmn: use correct rx pool id for refill buffer
When handling RXDMA error marked frames that from MAC1,
wrong rx descriptor pool is referenced, so allocated
buffer length is incorrect and lead to skb crash. Make
changes to always uses mac0 rx descriptor pool for MCL
platform.

Change-Id: Ica01c3967d6248a23ea745da63149dae9cd56677
CRs-Fixed: 2945573
2021-06-03 14:09:00 -07:00
Karthik Kantamneni
75320ae878 qcacmn: Optimize refill buffer pool feature code
Optimize refill buffer pool feature code to be
light weight on CPU, so that refill thread will
consume less CPU resources and also replenishing
RX buffers will be done faster.

Change-Id: I849ca60558c6197003d95e7d54fdb5f837cdc217
CRs-Fixed: 2950166
2021-06-03 07:17:31 +05:30
Wu Gao
5c89b6db75 qcacmn: Set MAX_RESET_CFG_ENTRY to 0xF for QCA6490 and QCA6750
Host sets num_grp_tlvs based on modified_in_curr_session, which uses
default value - MAX_RESET_CFG_ENTRY. MAX ta ra entries changed from 16
to 4 for QCA6490 and QCA6750, so change MAX_RESET_CFG_ENTRY from
0xFFFF to 0xF here.

Change-Id: Ie057b8763c0126bd0cacab4fd21da9df0d5e71f2
CRs-Fixed: 2957324
2021-06-01 23:04:56 -07:00
Prateek Patil
734e4870e7 qcacmn: Compilation Error fix
Include Header file for fixing compilation error in HSP mode in WHUNT.

Change-Id: I2d1c4d6a5b089b9e0e5176fc7fa257748b90143e
2021-06-01 18:54:24 -07:00
Karthik Kantamneni
7e3469c539 qcacmn: Set EP vote only if feature is supported
Skip setting EP vote if EP voting feature is not supported

Change-Id: I1f21b13f14ec6e65fec5fdbdc952df05ee0f1c6e
CRs-Fixed: 2953425
2021-06-01 02:20:13 -07:00