Commit Graph

17335 Commits

Author SHA1 Message Date
Yu Tian
fe9866276b qcacmn: Add HW descriptor check before RX TID update
RX TID HW descriptor is first allocated in setup stage. When
failure case happens, it is got freed. This change adds a
check to make sure it's valid before updating RX TIDs.

Change-Id: I1326315b2eca4c50ef9ff5fa887386de4a796eb0
CRs-Fixed: 3227483
2022-06-28 22:30:12 -07:00
Pragaspathi Thilagaraj
3f34e08581 qcacmn: Add QCA vendor interface for PASN offload to userspace
Define QCA vendor interface for PASN offload to userspace from the driver.

The driver can send this command as an event to a userspace component to
perform PASN authentication with a list of peers with which the driver
needs to do ranging. The userspace component, if capable of performing
PASN handshake, can perform PASN handshake with all the peer devices and
set the relevant keys by sending the
QCA_NL80211_VENDOR_SUBCMD_SECURE_RANGING_CONTEXT command for each peer
to the driver.

Once PASN handshake is completed with all requested peers, the userspace
component sends consolidated status for all the peers to the driver. The
consolidated report is required for the driver to understand that the
PASN handshake process is complete and whether it succeeded/failed for
each of the peers it was requested for. The secure ranging context is
configured only for the peers with which the PASN handshake succeeded.

When the driver requests PASN keys, the userspace component can set the
keys from its cache if those keys have not already expired and were
derived with the same source MAC address that is requested by the driver
instead of doing the full PASN handshake again.

If the driver detects that current keys of a peer are not valid anymore,
it sends a notification to userspace using the
QCA_NL80211_VENDOR_SUBCMD_PASN command and setting the action to
QCA_WLAN_VENDOR_PASN_ACTION_DELETE_SECURE_RANGING_CONTEXT. The userspace
component should delete the corresponding keys from its cache.

Change-Id: Ib6e2c7baf7728dacf0303513c5a41412dae40b8b
CRs-Fixed: 3224160
2022-06-28 15:37:55 -07:00
Kiran Kumar Lokere
c485929259 qcacmn: QCA vendor command support to get WLAN radio combinations
Vendor command to get the WLAN radio combinations matrix supported by
the device which provides the device simultaneous radio configurations
such as standalone, dual band simultaneous, and single band
simultaneous.

Change-Id: Ic3fb07ede1b716a08c476292446dae3d6ad73ee5
CRs-Fixed: 3214052
2022-06-28 15:37:48 -07:00
Chaithanya Garrepalli
bd0375c2de qcacmn: Remove unnecessary checks in Tx path
1. Remove prints in per packet path
2. Add prefecth for skb shinfo
3. Avoid qdf_get_cpu() in DP tx

Change-Id: I86d196cc7865a2d5b3a5a6098f6f7d84397a60d0
CRs-Fixed: 3227568
2022-06-28 14:00:52 -07:00
Surabhi Vishnoi
29073d2cf5 qcacmn: Add QCA vendor attribute for DO_ACS to allow using existing scan entries
Add a new QCA vendor attribute
QCA_WLAN_VENDOR_ATTR_ACS_LAST_SCAN_AGEOUT_TIME to
QCA_NL80211_VENDOR_SUBCMD_DO_ACS and opportunistically optimize time
taken for ACS scan. Avoid scanning the channels which were scanned
within last QCA_WLAN_VENDOR_ATTR_ACS_LAST_SCAN_AGEOUT_TIME milliseconds
and use scan results from scan results cache for ACS scoring. For other
channels, perform ACS scan and use the received scan results.

Change-Id: I5f57002566870fea7444358711205392e5e84053
CRs-Fixed: 3226134
2022-06-28 14:00:46 -07:00
Pragaspathi Thilagaraj
3d47ea8e15 qcacmn: Track PASN peers only in I-STA mode
Track PASN peers only in I-STA mode and not in R-STA mode, as
there is no external authentication request needs to be
triggered in R-STA mode.

Change-Id: I26e107f5db4c923784a3da32649ddadf67a7f901
CRs-Fixed: 3154523
2022-06-28 12:18:03 -07:00
Pragaspathi Thilagaraj
957b6d2307 qcacmn: Add support to initiate PASN authentication request
Register OSIF callbacks with Wifi_pos module to initiate PASN
authentication request.

Call cfg80211_pasn_auth_request() to initiate PASN authentication
from wpa_supplicant for the list of secure peers.

Change-Id: I52b9518526f1b04ad520f2f19c7a4caa9b62b6b0
CRs-Fixed: 3149968
2022-06-28 12:17:57 -07:00
Amir Patel
debe4c7ecf qcacmn: Fix issues from monitor path
a. Fix memleak issue due to RX_HDR not received for a MPDU
b. Compute appropriate packet offset for non-decapped packets
c. Add correct DMA_LEN while adding a frag to SKB.
d. Add debug stats

Change-Id: Ie946f79df94df05789220b97c159c60d608bf1b2
CRs-Fixed: 3213698
2022-06-28 12:17:51 -07:00
Jithender Miryala
823d493a71 qcacmn: Update Regulatory Database to 40th version
1. Change/Add the following country mapping for all(WIN,Linux Android,DSRC)
i) Add new country "BOTSWANA" and map to ETSI13_WORLD.
ii) Add new country "BURUNDI" and map to ETSI13_WORLD.
iii) Add new country "FIJI" and map to APL1_WORLD.
iv) Add new country "GABON" and map to ETSI3_WORLD.
v) Add new country "LAO PEOPLES DEMOCRATIC REPUBLIC" and map to
ETSI13_WORLD.
vi) Add new country "LIBYA" and map to ETSI12_WORLD.
vii) Add new country "ZAMBIA" and map to ETSI13_WORLD.
viii) Change the mapping of  RWANDA to ETSI13_WORLD.
ix) Change the mapping of SENEGAL to ETSI1_WORLD.
x) Change the mapping of "VIET NAM" to ETSI15_WORLD and remove 160MHz
disable flag
xi) Change the mapping of "SAUDI ARABIA" to ETSI13_WORLD.

2. Change the following country mapping only for Linux Android
i) Change the mapping of "UNITED KINGDOM" to ETSI18_WORLD.

3. Change (or) Add the following country mapping to Regdomain for 6GHz.
i) Create new Full 6GHz reg domain Hex code 0x0C and map Full 6GHz domain
Hex code 0x0C to countries: AUSTRALIA, CHRISTMAS ISLAND,
HEARD ISLAND AND MCDONALD ISLANDS, NORFOLK ISLAND.
iii) Map full 6GHz reg domain Hex code 02 to countries:BULGARIA, HUNGARY,
JORDAN, QATAR.
iii) Map full 6GHz reg domain Hex code 03 to Hong Kong.
iv) Map Full 6GHz Hex code 05 to LAO PEOPLE'S DEMOCRATIC REPUBLIC.

4. Add the following regulatory database for 2.4/5GHz.
i) Add APL14 "indoor flag" to UNII-1 5150-5250MHz and UNII-2a 5250-5350MHz
ii) Updated APL12 per JORDAN new 5GHz band rule and reserve for
customer use.
iii) For ETSI13, update Max. BW from 320MHz to 160MHz and remove straddle
channels CH144(5720MHz), CH142(5710MHz), CH138(5690MHz) and also 5650
Punctured 1111_1111_1111_0000 channel.
iv) Create new 5GHz Regdomain ETSI18(Hex 0x0E44) and Full 2 & 5GHz
Regdomain ETSI18_WORLD(Hex 0x6E).
v) For Israel, remove straddle channels CH144(5720MHz), CH142(5710MHz),
CH138(5690MHz) from ETSI17.

Change-Id: I7fa7f1e9f3e6fcd6aa6ecd5aa21bd4e82aeb19a0
CRs-Fixed: 3209514
2022-06-28 12:17:43 -07:00
Ananya Gupta
e52231c86e qcacmn: Set bandwidth, MPDU retry threshold at peer register
Currently, bandwidth and corresponding MPDU retry threshold was
taken from tx packet status in per packet to update peer stats.
With this change, set bandwidth and MPDU retry threshold
during peer registration.

Change-Id: Iffd06968246d0b86b26716ae6672e2cd23360c67
CRs-Fixed: 3225479
2022-06-28 04:11:54 -07:00
Amit Mehta
721afd10ab qcacmn: Move tcl_data_cmd function attribute to common file
Move the function attribute to common file so that the
parsing issue due to unreferenced tcl_data_cmd can be
fixed on other targets also.

Change-Id: I40a7196926061e8d232f0f070c0ed045dafd97e2
CRs-Fixed: 3228562
2022-06-28 01:13:01 -07:00
Shwetha G K
e36320f58f qcacmn: Update streamfs buf size for waikiki
Update streamfs buffer size for waikiki

CRs-Fixed: 3224877
Change-Id: I86a622ca8ea938915bcec00320918b87b2a4a74e
2022-06-27 23:30:19 -07:00
Srinivas Pitla
c6edce51c0 qcacmn: Fix max aid assignment
Current max aid assignment doesn't consider start aid
which is causing start aid greater than max aid in
MBSSID MLO case.

This change accounts start aid while updating max aid

Change-Id: Ic6af28cd2599090538393082032932ba416b4c66
CRs-Fixed: 3220059
2022-06-27 19:35:43 -07:00
Paul Zhang
9cd1e26ce6 qcacmn: Update EHT OP/CAP IE per draft 2.0
Update EHT OP/CAP IE per draft 2.0

Change-Id: I5fed019f3a1d5817123084a475e0940a653fe419
CRs-Fixed: 3221670
2022-06-27 12:17:33 -07:00
Venkateswara Swamy Bandaru
b9dedfd780 qcacmn: Add 11be Draft 2.0 support
Add EHT capability and EHT Operation changes to
support 11be Draft 2.0.

Change-Id: I3ab259be8a78c7504d22d3d1210f90f0dcb658d8
CRs-Fixed: 3220063
2022-06-27 12:17:27 -07:00
Vinod Kumar Myadam
b721690039 qcacmn: Add flag CONNECTIVITY_PKTLOG
Add new flag CONNECTIVITY_PKTLOG to make independent of
FEATURE_PKTLOG and REMOVE_PKT_LOG for packet logging.

This is because 32 tx/rx pkt logging is connection related
and this feature is independent of pkt log feature. Here
driver will send first 32 tx/rx pkts consisting of mgmt
and data pkts to userspace which can be used for debugging

Change-Id: I006a040546c9709f46e76dcd8630da8569c691c6
CRs-Fixed: 3222971
2022-06-27 12:17:21 -07:00
Edayilliam Jayadev
9f75a857b7 qcacmn: Do book keeping for frames which doesn't require REO
Management frames originating from links which doesn't require
reordering are not passed through mgmt Rx REO module. This may result in
delayed delivery of frames in the reorder list. Fix this by allowing
such frames to enter mgmt Rx REO module.

CRs-Fixed: 3224128
Change-Id: I94f7bc902acaac959b6bed475413925c266d5557
2022-06-27 08:26:33 -07:00
Shiva Krishna Pittala
f853241025 qcacmn: Interrupt assignment for UMAC HW reset feature
UMAC HW reset feature will be using the last interrupt context in each
DP interrupt combination i.e., on a system with more than 8 MSIs for DP,
UMAC HW reset will be assigned a dedicated interrupt context.
Add the necessary support for the same.

CRs-Fixed: 3163900
Change-Id: I26abd01e4261661ed95e1aa3cb2a774e78b50d9f
2022-06-27 05:29:10 -07:00
Vinay Adella
0e54add2cb qcacmn: Utility functions to parse Probe Request Variant of Multi-Link IE
These utility functions help to parse the Probe Request Variant of
Multi-Link IE.
It implements 11BE draft 2.0 spec

Change-Id: I09dcf47ef481278f5c74082002f83d9c8e2155a4
CRs-Fixed: 3213367
2022-06-27 02:10:23 -07:00
Hariharan Basuthkar
29ad2238f7 qcacmn: Add a null function for reg_modify_chan_list_for_indoor_channels
Add a null function for reg_modify_chan_list_for_indoor_channels
as it is not required for AP software.

Change-Id: I420521d66b332a9f2b01097092eeb94cd4301879
CRs-Fixed: 3221590
2022-06-27 02:10:16 -07:00
Amith A
98b8c53d08 qcacmn: Update super chan list with AFC_NOT_DONE flag for outdoor
Prior to receiving the power event, the super channel list is not getting
rightly updated with the REGULATORY_CHAN_AFC_NOT_DONE flag as it is filled
using afc_chan_list which is not filled until the power event is received.

To fix this issue, call reg_assign_afc_chan_entry_to_mas_chan in
reg_update_sup_ch_entry_for_mode only if AFC power event is received.

Now the super channel list is copied from mas_chan_list_6g_ap before the
power event and from afc_chan_list after the power event is received.
These lists have the REGULATORY_CHAN_AFC_NOT_DONE flag updated during
construction. So remove the  call to reg_update_6g_chan_for_outdoor as
it is redundant.

Remove the return statement after disabling the out of chip range channels
as it does not get reflected the super channel list. This disabling is
done on local data and it is copied to super chan list only towards the
end of the function.

Change-Id: I725cf41ec3dc68ba9a615752fd170fc7b574aa16
CRs-Fixed: 3216916
2022-06-26 23:10:33 -07:00
Hariharan Basuthkar
409d5044e2 qcacmn: Move reg_get_regd_rules to reg_services_common.c
reg_get_regd_rules is needed to fill the NL_REGDB_UPDATE_EVENT
in case of the 6 GHz outdoor AP.

Therefore, move reg_get_regd_rules from reg_utils.c to
reg_services_common.c.

Change-Id: Id99a8bc52ec24044845303fe3772082977962264
CRs-Fixed: 3158134
2022-06-26 08:20:05 -07:00
Utkarsh Bhatnagar
3031faee57 qcacmn: Add TDLS 6 GHz FW service capability
Add TDLS 6 GHz FW service capability

Change-Id: I8bf7b9b4fe2d57e5bd96018483c7eb128800ee68
CRs-Fixed: 3223678
2022-06-25 03:03:50 -07:00
Wu Gao
cd9a1b63a3 qcacmn: Fix compilation issue after enabled CONFIG_WDI_EVENT_ENABLE
This change fixed compilation issue when enabled two configures -
CONFIG_WDI_EVENT_ENABLE and CONFIG_REMOVE_PKT_LOG.

Change-Id: I121ea61bd3681b834a36c0bc8017b855897023a4
CRs-Fixed: 3223552
2022-06-25 03:03:44 -07:00
Rakesh Pillai
4b31289715 qcacmn: Skip sanity of sw_cookie in RX error for KIWI
Currently the sw_cookie is validated in RX error path
using the pool_id logic, which is not valid for KIWI target.
Kiwi target has a different logic to assign rx sw_cookie, as
compared to other legacy chipsets.

Hence this sanity of sw_cookie fails always for RX error
packets on KIWI target, and these corresponding buffers are
never released/replenished back. Eventually as more RX error
packets are received, the device runs out of buffers in the
refill ring and induces a backpressure.

Hence disable this sanity check for sw_cookie in rx error
path for KIWI target.

Change-Id: I320fcb268c1fe24695daeb4677af6cc0cbc445ed
CRs-Fixed: 3228792
2022-06-25 03:03:37 -07:00
abhinav kumar
edd1669c23 qcacmn: Handle vendor control command and event
WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID: Add support
for a new roam command to get vendor control parameters
from FW. Host needs to send proper param ID in command
(from enum WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID)
to get corresponding INI value from FW.

WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID:
Add support for a new roam event to get param value
from FW. FW sends this event upon receiving
WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID command.

Change-Id: Ic7b3badb14daff183dd36927b4dae6bbc036e6cd
CRs-Fixed: 3225166
2022-06-25 01:08:55 -07:00
Pragaspathi Thilagaraj
87136b1636 qcacmn: Add bt_coex active field in roam scan done info
Add bt_coex active field in roam scan done info as
part of roam stats event handler.

Change-Id: Ief31efe491bede5ae4571bf0f5ace284aa6ea0fe
CRs-Fixed: 3226707
2022-06-24 18:21:28 -07:00
Pooventhiran G
ea990338cf qcacmn: Add API to copy MLO vdev list
Add a new API to copy all partner vdev's from MLD vdev_list

Change-Id: I34ab253f4939e2f1f607e971e38c245cad091037
CRs-Fixed: 3224259
2022-06-24 14:14:24 -07:00
Gerrit - the friendly Code Review server
9c3c815c25 Merge changes into wlan-cmn.driver.lnx.2.0 2022-06-24 11:06:49 -07:00
Aravind Kishore Sukla
e84ac077e5 qcacmn: Update connect request crypto parameters
Update the connect request crypto parameters based
on the new kernel changes to increase the size of the
akm_suites array in connect request

Change-Id: I6e9cecdb6fa02da5f2b2e238780d3f0fb389c8a2
CRs-Fixed: 3214567
2022-06-24 03:55:06 -07:00
Vignesh U
4b079efdfe qcacmn: Increment loop control variable
reg_freq_to_chan_for_chlist() is called in a loop for every power mode.
The loop control variable input_6g_pwr_mode is not incremented and will
become an infinite loop.

If the reg_freq_to_chan_for_chlist() is not able to find a chan, increment
the loop control variable input_6g_pwr_mode.

Change-Id: Ibcd095ab291b3c487cd31c2af0dd736e852d0918
CRs-Fixed: 3226433
2022-06-24 03:55:00 -07:00
Tiger Yu
89e38bb46b qcacmn: Remove unused local variable mon_soc to fix compiling issue
Remove unused local variable mon_soc in the dp_pktlogmod_exit to
address the compiling issue when PKT log enabled.

Change-Id: I5de03433603988e6f8125285a58c141551d7a149
CRs-Fixed: 3225370
2022-06-24 02:07:12 -07:00
Vinod Kumar Pirla
2c18eafe69 qcacmn: Add vendor event to indicate driver ready after SSR
Add QCA vendor event to indicate user space that the driver
recovery is completed after the internal failure.

Change-Id: Ib65c9773dd64fab36ba10493c27bd670c2bb6d08
CRs-Fixed: 3226415
2022-06-24 00:28:32 -07:00
nobelj
9ed0445e60 qcacmn: tx monitor add support for hw generated response
tx monitor add support for hw generated response

Change-Id: I5e2cd1420051e940f9276e07e7da6ca539dd0d5a
CRs-Fixed: 3205855
2022-06-23 18:01:14 -07:00
nobelj
8c3b9f7684 qcacmn: tx monitor populate block ack information from tlv
tx monitor populate block ack information from tlv

Change-Id: I500015e888a0984188bcee821262dee072dea7f9
CRs-Fixed: 3205304
2022-06-23 16:22:12 -07:00
nobelj
1113811c53 qcacmn: tx monitor populate SIG information from tlv
tx monitor populate SIG information from corresponding tlv.

Change-Id: I8b90c27e88574d4bb6610e500e33efd54a270c76
CRs-Fixed: 3204953
2022-06-23 16:22:06 -07:00
nobelj
69a8a9c767 qcacmn: tx monitor populate basic tlv
tx monitor populate basic tlv data.

Change-Id: I346b5da00b967fb9717009a153e8f8db239494ef
CRs-Fixed: 3204929
2022-06-23 16:21:59 -07:00
Huashan Qu
5ec471e872 qcacmn: Fix compile error for function wlan_reg_get_eirp_pwr()
When CONFIG_BAND_6GHZ is undefined, it will report missing-prototypes
compile error for function wlan_reg_get_eirp_pwr().

Add 'static inline' for function wlan_reg_get_eirp_pwr() to fix
compile error.

CRs-Fixed: 3227164
Change-Id: I9db007fee3aa0061aa9a8e030e45738c0953f36a
2022-06-23 12:58:19 -07:00
abhinav kumar
f55ec57e32 qcacmn: Support vendor handoff service bit info from FW
Add change to fetch and save the WMI service capability
bit of FW to support vendor handoff control feature
using service bit.

Change-Id: I6bc85f2807032bf84d391f34c814c91de906ab42
CRs-Fixed: 3225147
2022-06-23 08:51:02 -07:00
Amit Mehta
6e1dde7e43 qcacmn: Add QDF packet type enum
Add new QDF enum for packet type and make
changes to pass status and type to packetlog callback APIs as QDF type

Change-Id: I423839e42b316ce43feaae34e297d3d8f0dee7ba
CRs-Fixed: 3224881
2022-06-23 07:04:02 -07:00
Amit Mehta
6b576c65bb qcacmn: Add packet logging support for initial 32 packets
Add packet logging support by registering
Rx and Tx callback functions for packet logging of
initial 32 Tx and Rx packets.

Change-Id: I91b59b7c5f65f505e3ee730c497347be28955128
CRs-Fixed: 3224881
2022-06-23 07:03:56 -07:00
Rakesh Pillai
06c5d97195 qcacmn: Increase the max rx descriptors to 16K
Currently the max number of rx descriptors, via INI,
is 4096, which is not sufficient if the number of
entries in rx buffer refill ring is increased.

Hence the set the max allowed number of rx descriptors
to 16K, which is also the max allowed entries in the
rx buffers refill ring.

Change-Id: I287a3f47525179ebf8de65e2f8310a961881916b
CRs-Fixed: 3224590
2022-06-23 05:17:32 -07:00
Himanshu Batra
b11cdd3210 qcacmn: Resolve static analysis issue in BE monitor path
Resolve static analysis issue in BE monitor path

Change-Id: I8db589de1a8b80ec35e6135a5c84c9d45785741d
CRs-Fixed: 3214297
2022-06-23 05:17:25 -07:00
Pragaspathi Thilagaraj
27b99a6947 qcacmn: Introduce new vendor diag events to indicate reassoc req/res
Add attributes to indicate reassociation request and response events from
driver/firmware.
Introduce new attribute for Association ID.
Add support to listen for BT Coex for SCAN DONE diag event.

Change-Id: Ieedd0d154cd3287aca23c03ca573b87e8127726e
CRs-Fixed: 3221625
2022-06-23 01:59:14 -07:00
Priyadarshnee Srinivasan
94a8e47bd9 qcacmn: Add 6gpwr_type as an input to get_channel_state API
Add 6 GHz power type as an input to
reg_get_20mhz_channel_state_based_on_nol API. This is to
ensure that the state of the bonded channel is retrieved based
on the input 6 GHz power mode instead of the current power mode.

CRs-Fixed: 3226230
Change-Id: If2791653c79b347d0cbfb59544a166c9f60b5ab7
2022-06-23 01:59:07 -07:00
Ripan Deuri
26dff6988a qcacmn: Handle PPDU ID format message
This is a generic T2H message in which a target can specify bits and
offsets to extract a parameter from PPDU-id. Use link-id bit and offset
present in T2H message to extract hw link-id from PPDU-id on Tx completion.

Change-Id: I64b7559e88b037e30f52ba0b75ab62349e469d20
CRs-Fixed: 3195432
2022-06-23 01:59:01 -07:00
Gururaj Pandurangi
83d3a9032e qcacmn: Add set/get APIs to update eMLSR capability
Add set/get APIs to update the eMLSR capability bit.
This flag is used to determine if the current MLO
connection is eMLSR.

Change-Id: Ib72131e4740387918addca551dc11b349cd79bba
CRs-Fixed: 3220952
2022-06-22 22:00:36 -07:00
Priyadarshnee Srinivasan
47812b3daa qcacmn: Add a dispatcher API for reg_get_eirp_pwr
Add a dispatcher API for reg_get_eirp_pwr().
Also export dispatcher APIs that are invoked by other modules.

CRs-Fixed: 3220143
Change-Id: I40459352046285a04142dc57e1f643b10ac59150
2022-06-22 16:43:01 -07:00
Wu Gao
e46707f810 qcacmn: Correct registers when populate CFR elements from tlv
This is requirement change about correcting the registers when
populate CFR elements from tlv.

Change-Id: I424a0d3ae569dae3378137b84067a30b0fa28413
CRs-Fixed: 3218220
2022-06-22 16:42:55 -07:00
Ananya Gupta
025b889ef6 qcacmn: Check client count below HIF_RTPM_ID_MAX
While registering a client, HIF_RTPM_ID_MAX is also being
checked for registering.
Fix is to exclude HIF_RTPM_ID_MAX id.

Change-Id: I57e572abc22a27586cf350af423293a8b455af1c
CRs-Fixed: 3223394
2022-06-22 09:01:20 -07:00