提交線圖

17929 次程式碼提交

作者 SHA1 備註 日期
Yu Tian
aa6032dba5 qcacmn: Use rate limit print for BAR frames
Use rate limit print for BAR frames to in avoid of
slow processing when BAR flood happens.

Change-Id: I92063787501c8f6467a211bd2695108a9fe42724
CRs-Fixed: 3325043
2022-11-07 13:10:30 -08:00
Nanda Krishnan
72592f40f8 qcacmn: Updating the correct vdev_id for multivap
When Multivaps are configured in a radio, the vdev_id's are
not updated as expected.
With the changes, the vdev_id are properly updated in the registers

Change-Id: I7d987e96bd0f8a91f13025fa6975415ea235ce12
CRs-Fixed: 3318563
2022-11-07 13:10:24 -08:00
Paul Zhang
47c7d6990d qcacmn: resolve race between vdev create and wifi_pos_get_vdev_count
In function wifi_pos_process_app_reg_req(), it uses function
wifi_pos_get_vdev_count to get vdev_count;
Then wifi_pos_process_app_reg_req->
     wifi_pos_get_vdev_list-> wlan_objmgr_iterate_obj_list,
it uses wlan_psoc_get_max_vdev_count to get max_vdev_cnt,
if vdev is not NULL, it invokes function wifi_pos_vdev_iterator
to fill the vdev_info.

For the failure scenario:
In wifi_pos_process_app_reg_req, it gets 2 for vdev_count
from function wifi_pos_get_vdev_count; Then the process is
interrupted and vdev 2 is created in another process; Now
since there are vdev 0, 1, 2, wifi_pos_vdev_iterator is
called 3 times and memory corruption happens since it writes
two more bytes with op mode and vdev id in vdev_info.

Change-Id: I5222836a1448bfaa7df31c919419d448eaa20895
CRs-Fixed: 3320183
2022-11-07 13:10:18 -08:00
Kannan Saravanan
9456298da5 qcacmn: New ini config for scan radio
For scan radio add new section
SCAN-RADIO for parsing the ini config.

Change-Id: I41de46b3f5b9a3e1ddc2d529f90b21a7c7fb8a3d
CRs-Fixed: 3317082
2022-11-07 13:09:30 -08:00
Linux Build Service Account
1f462776a5 Merge "qcacmn: Enable monitor mode flag for special vap" 2022-11-07 08:21:27 -08:00
Linux Build Service Account
4bb3b90e65 Merge "qcacmn: Changes to enable CFR on special vap" 2022-11-07 08:21:26 -08:00
Nidhi Jain
d340e5bc02 qcacmn: Enable monitor mode flag for special vap
This change is to enable monitor mode flag is special vap is up.

Change-Id: Id7f169406e25f8f121f5e32074ac3c8049870e01
CRs-Fixed: 3326413
2022-11-07 00:45:03 -08:00
Nidhi Jain
2e2003d54f qcacmn: Changes to enable CFR on special vap
This change enables CFR captures on special vap.

Change-Id: Ifdaeccf7cc2211af5a2b82feae3a0b3ee45b617a
CRs-Fixed: 3308460
2022-11-07 00:44:52 -08:00
Sai Rupesh Chevuru
692be85e20 qcacmn: Forward 4 addr eapol frames to hostapd
Forward the 4 addr eapol packets received in
dp_rx_process_rxdma_err() to osif stack instead of network stack.

Change-Id: I1d8ff065096844ebe61974329754e54fc9d28640
CRs-Fixed: 3323480
2022-11-04 15:24:21 +05:30
Rakesh Pillai
559514f2b7 qcacmn: Code cleanup for one MPDU drop in monitor mode
Cleanup up duplicate code for one MPDU drop in
monitor mode.

Change-Id: Ic2f06192ec0ac27c78b5161f1d2c20b757f3b6be
CRs-Fixed: 3323287
2022-11-02 11:32:29 -07:00
Hariharan Basuthkar
7da66639f7 qcacmn: Add mapping for wmi_service_eirp_preferred_support
Map wmi_service_eirp_preferred_support to
WMI_SERVICE_EIRP_PREFERRED_SUPPORT in populate_tlv_service.

Change-Id: Ibbf3d6fbd5b257f5562a0a51f11dec7e2bcf07bd
CRs-Fixed: 3322363
2022-11-02 11:32:22 -07:00
Edayilliam Jayadev
d36d1c8c2a qcacmn: Log time stamp of multi vdev restart response
Log the time stamp corresponding to the start of processing
of multi vdev restart response event.

CRs-Fixed: 3308918
Change-Id: Ia00923b3a1033097429d3856047a4b639408aab8
2022-11-02 01:48:08 -07:00
Yeshwanth Sriram Guntuka
94c2176709 qcacmn: Add qdf_get_ipa_smmu_enabled stub API
Add qdf_get_ipa_smmu_enabled stub API when IPA_OFFLOAD
config flag is disabled and SMMU S1 translation config
flag is enabled to avoid compilation issue.

Change-Id: Ic7291aacf2ca0008bfe112e689fc39d14d99b16c
CRs-Fixed: 3317536
2022-11-01 22:39:44 -07:00
Divyajyothi Goparaju
28aa42540e qcacmn: Replace wlan_reg_set_channel_params_for_freq
Replace all occurrences of
wlan_reg_set_channel_params_for_freq  API with new API
wlan_reg_set_channel_params_for_pwrmode.

Change-Id: Id751558b32f2b61bd356e1ebce3238598fbd16c1
CRs-Fixed: 3144794
2022-11-01 09:18:51 -07:00
Amith A
0f5cd03b90 qcacmn: Modify wlan_reg_get_eirp_pwr to get client EIRP
Modify wlan_reg_get_eirp_pwr and its sub functions to to get client
EIRP.

Change-Id: Icbc33833ac0fef1d150a491e5398b913e18f3fac
CRs-Fixed: 3316710
2022-11-01 03:39:59 -07:00
Amith A
60e23f8e3b qcacmn: Add an API to check if given 6 GHz freq is Tx-able
Add an API to check if the given input 6 GHz frequency is Tx-able
in the given power mode.

Change-Id: I9e94c1c3ec7c4c31d18bde6e88905a9239636f00
CRs-Fixed: 3305006
2022-10-31 23:18:46 -07:00
Surya Prakash Sivaraj
049bb88ab0 qcacmn: Change err to debug print in roaming path
Change the peer retrieval error message to debug in
wlan_twt_set_peer_capabilities().

The peer twt capability will be set later after peer
is created. Because of this error print, there is a
delay of around 10-20msec in the roaming path.

Change-Id: I5267a61df5726b67ff727101bd553fd4ce07fa5f
CRs-Fixed: 3314202
2022-10-31 23:18:39 -07:00
Ripan Deuri
11ccd80f56 qcacmn: Add HAL APIs to read tsf2 and tqm scratch register
Add support to read TSF2 and TQM scratch regitser in the HAL layer
for WKK v1 and v2 board.

Change-Id: I0ef5e8cf4e06c0b5c98169252a81f70989285d2d
CRs-Fixed: 3321782
2022-10-31 13:38:15 -07:00
Santosh Anbu
938ddb0956 qcacmn: Add mon dp ops to set monitor filter
As part of mac address filtering feature for scan radio in special
vap mode, on addition of first NAC entry or deletion of last NAC entry
the corresponding monitor filter needs to be set or reset

Add change to support ops callback function required to set or reset
monitor filter settings are runtime.

Change-Id: I916c0b246bb180363f1a181ef49618af763b261d
CRs-Fixed: 3317409
2022-10-31 13:38:08 -07:00
Deeksha Gupta
433dee00be qcacmn: Rename multi_link into multi_link_bv
In struct ie_list, rename multi_link variable into
multi_link_bv.

Change-Id: Icfa26f20f9004c6e342add97a34505f45372c636
CRs-Fixed: 3313417
2022-10-31 04:09:16 -07:00
Abhishek Singh
d59c9453d6 qcacmn: Remove unused API wlan_serialization_non_scan_cmd_status
Remove unused API wlan_serialization_non_scan_cmd_status from
serialization.

Change-Id: I8bcd22445489ad4d7f02d9e6bb118ef626491fde
CRs-Fixed: 3313124
2022-10-30 23:51:42 -07:00
Liangwei Dong
942fb70e22 qcacmn: Clear Chan freq in wlan_cm_connect_req of partner link
Partner link connect request is copied from primary link.
The upper layer may include BSS channel freq preference in
OS connect req. We have to clear it for partner link connecting,
otherwise the scm_filter_match will filter out the mlo partner
candidate and cause partner connect failed.

Change-Id: I9ca8f2baf5f7e660ed0b72c1dffa886f1c1e8f11
CRs-Fixed: 3320085
2022-10-30 21:42:38 -07:00
Himanshu Batra
f72f76ba4c qcacmn: Update pdev telemetry stats to per AC level
Update pdev telemetry stats to per AC level

Change-Id: I0f3680875d28b6c4a7e671941373e42ee886cb16
CRs-Fixed: 3316937
2022-10-29 13:02:13 -07:00
Jianmin Zhu
c877314ca8 qcacmn: Detach ml peer before free
In special case, link peer is failed to attach, then mlo peer is deleted
without detaching from ml peer list. When access peer list, assert will
happen for use after free.

Change-Id: Ic7a58fa0708ae6b920a69100e798c0aa8db7fe0d
CRs-Fixed: 3319376
2022-10-28 19:31:23 -07:00
Shubham Pawar
1ac8aa1bd9 qcacmn: Add support to process direct DMA event in the configured context
In the current implementation, the Direct DMA completion event is getting
processed in the tasklet context. When the Direct DMA events land on the
same processor core as the one used by the WLAN data path events, the
Direct DMA events can pre-empt the data path events as the datapath
events usually run in NAPI context. This could impact the data path
throughput when there is a high volume of frequent Direct DMA events. To
fix this, Direct DMA events can be run in work queue context based on
user configuration. Add support for the same.

Change-Id: I1a89b185c6765addc7ee725e9324025f0318d9ed
CRs-Fixed: 3276157
2022-10-28 11:52:21 -07:00
Rahul Gusain
8e01b67f81 qcacmn: Add support for NAN enable rsp in non-dbs platform
Currently, in non-dbs platforms, firmware controls NAN enable/disable.
To enable NAN in non-dbs platform, host driver sends NAN generic
request to firmware and firmware enables NAN and provides generic
response to that.
But for some legacy platforms, requires enable NAN in host.
For this, firmware adds new TLV for NAN enable response and
sends with NAN generic response. Host extracts the NAN enable
response parameters from NAN generic response packet.

Change-Id: I1f4460137913780d4c262b5e40342dbb0b9a87c7
CRs-Fixed: 3263746
2022-10-28 11:52:13 -07:00
Chaithanya Garrepalli
7c36d50fba qcacmn: Update replenish soc get for same SOC
In dp_replenish_soc_get() API return current
soc if chip_id of SOC matches

Change-Id: Iab7cc1809ab0e5daeb07dcfbd8f67a1d7ee9b12f
CRs-Fixed: 3297754
2022-10-28 04:59:12 -07:00
Azmath Mohammed
66a71fac21 qcacmn: Add pdev valid check
Add pdev valid check to avoid dereferencing of pointer

Change-Id: I5936797895e250cb6cea3087f273e7631223bc88
CRs-Fixed: 3320380
2022-10-28 04:59:04 -07:00
Rakesh Pillai
6271fe1a98 qcacmn: Fix the use of the incorrect rx pkt tlv length
Currently the monitor mode processing assumes the
rx pkt tlv to be consisting of RX_PACKET_HEADER tlv.
This assumption is incorrect in case of sta+monitor
mode, where the RX_PACKET_HDR tlv has not been subscribed.

Due to the above incorrect assumption, a certain portion
of the actual payload is being discarded, when the
rx_pkt_hdr tlvs are stripped off from the received buffer.

To mitigate this issue, use the rx_pkt_tlv length based
on the tlvs which are enabled, and configured to the
rxdma for reception.

Change-Id: I8f29db85bbd50316e3c2073ae9a2e79fd724be05
CRs-Fixed: 3318038
2022-10-28 04:58:54 -07:00
Srinivas Girigowda
31f0994955 qcacmn: Ignore flow pool unmap for inactive pool
If the flow pool status is inactive, then ignore flow pool unmap.

Change-Id: I53685d6031beb01bcc6f9368dc10f034cae56337
CRs-Fixed: 3322921
2022-10-28 04:58:45 -07:00
Ananya Gupta
b74658cb00 qcacmn: Increase timeout from 30s to 60s for freeing tx desc
Tx completions can be received after 30seconds, this is causing
race condition as there is a forceful freeing of tx descriptors
after 30seconds. This race condition corrupted tx desc pool's
freelist pointer which contains list of all free tx descriptors.
Increasing the threshold from 30seconds to 60seconds. Display
id for which tx descriptor is freed.

Change-Id: I5e0c78283747028de558f9c5db99f7089ffb7e97
CRs-Fixed: 3322566
2022-10-28 04:58:37 -07:00
Sreeramya Soratkal
a8f77e6e3f qcacmn: Assign appropriate RBM id corresponding to the chip
For Multi chip configuration, assign appropriate value for
Return Buffer Manager(RBM) idle link descriptors based on chip_id.

CRs-Fixed: 3314584
Change-Id: I1a2f9a09b04960aff01b4ec625110e0619a9850b
2022-10-28 01:52:34 -07:00
Jeff Johnson
40e6fd1cdf qcacmn: Fix misspelling of "conversion"
The following change introduced a misspelling of "conversion", so fix
it.
- Change-Id I9f8fa776c65cbad84fac5e8c2f65b3fce1386e20
  qcacmn: update RSSI specific parameters in mon pdev

Change-Id: I019f929c09ad4e1de21ed9c7ac485a14f82d786c
CRs-Fixed: 3319342
2022-10-28 01:52:27 -07:00
Rakesh Pillai
f533809136 qcacmn: Drop mpdus received on non-monitor PMAC
Currently the monitor mode filter settings are set
for both the PMAC. Hence it is possible that the
non-monitor PMAC (the PMAC on which monitor vdev
is not running), can receive packets and forward them
to the monitor destination ring.

The above scenario will lead to a ppdu_id mismatch
when reaping the monitor status ring and comparing
the ppdu_id in status ring with the one in monitor
destination ring, since monitor status ring will
have ppdu_id from the PMAC on which monitor vdev is
running, whereas monitor destination ring will have
packets from both the PMAC.

In order to mitigate the above issue, detect the
packets in the monitor destination ring, which are
not from the PMAC where monitor vdev is running, and
drop them.

Change-Id: I32392ceeadffd9cb7a4dd76336004a9dcbb99404
CRs-Fixed: 3318036
2022-10-27 21:11:35 -07:00
Paul Zhang
2158048410 qcacmn: add __packed for bit mapping structures
Currently, structure tbtt_information_header and
rnr_mld_info don't have attribute __packed. When
fetching the value of bss_param_change_cnt, it
tries to align with byte and causes wrong value.

And these are OTA structures which should be moved
to file wlan_cmn_ieee80211.h.

Change-Id: I326e62e6f513c2b43fe08c278aa4b5a245d2d35c
CRs-Fixed: 3313710
2022-10-27 17:49:38 -07:00
Chaithanya Garrepalli
a34dd02dd0 qcacmn: Add skb fast recycler check in rx replenish
In ethernet TX fast recycle bit is set to buffer after
invalidate.

In Rx replenish API do not invalidate buffer if fast
recycle bit is set as it is already done

Change-Id: Ic74a96033a659baac381c921aff75296d155f169
CRs-Fixed: 3321142
2022-10-27 13:25:44 -07:00
Namita Nair
5fb7638690 qcacmn: Ignore flow pool unmap for inactive pool
This change will prevent flow pool unmap and delete
if pool status is inactive.

Change-Id: I071b84c6d99360af8aba97297efacb0a8682f343
CRs-Fixed: 3306110
2022-10-27 13:25:37 -07:00
Srinivas Pitla
40aac77ac2 qcacmn: Initiate disconnect for MLO SAE clients
When SAE station is trying to associate to MLO AP.
If this station was connected to other link vap of same MLD,
then if same station is trying to connecting with link VAP,
ML peer entry is found with MLD MAC address.

For SAE stations, initial understanding to handle disconnect
from hostapd, but as hostapd initiates SA query for the connected
link peers only, in this case, hostapd can't initiate SA query
as it was connected to other link VAP.

The fix is to allow initiating deauth of the current ML peer entry.

Change-Id: Iddb53f0156b460a2ede2197a74acf254c83b7b37
CRs-Fixed: 3313785
2022-10-27 11:30:57 -07:00
Jeff Johnson
3765f7b63c qcacmn: Fix misspelling of "disable"
The following change introduced a misspelling of "disable", so fix it.

- Change-Id Ifeb6935e2309be1f974c4da30b33a5caca308569
  qcacmn: Add dp ini param for sawf stats

Change-Id: I46249a0a32eabf3198d2634a4775c05089647b1b
CRs-Fixed: 3319332
2022-10-27 09:45:33 -07:00
Jeff Johnson
7747be1e7b qcacmn: Fix new misspellings of "address"
The following change introduced new misspellings of "address", so fix
them.
- Change-Id Idc9eec559b71ebb2dc39ea1d648a384ea0eb9559
  qcacmn: Fetch the reo qdesc from the peer

Change-Id: I29c71972d46a06c24fef2ed90d2a4226cc2ac654
CRs-Fixed: 3319356
2022-10-27 09:45:22 -07:00
Devender Kumar
8c9cc20350 qcacmn: Fix for peer unref
Reference taken on peer with wrong MODULE_ID, hence
while unref on peer is failing.

Change-Id: Ifd4360ad8db877cfbf67fb6d80fdfb41aee4ff56
CRs-Fixed: 3317145
2022-10-27 08:01:16 -07:00
Ananya Gupta
683ffb600f qcacmn: Force free leaking tx buffers in defconfig build
Currently, when tx completions are pending for more than 60
seconds, assert is generated in defconfig builds.
Force free leaking tx buffers in defconfig builds so system
can go to suspend in defconfig builds.

Change-Id: Ie66506d58e85176320c7aa35d49059f808be0054
CRs-Fixed: 3318409
2022-10-26 23:28:56 -07:00
Rajeev Kumar
cd265b572e qcacmn: Log vdev param id with 0x(hex) prefix
VDEV param id is logged in hex without 0x(hex) prefix
which creates confusion. And hence log WMI vdev param id
with 0x(hex) prefix for easy correlation.

Change-Id: Ib8a868fa43a911817c8e5540a07562dde08e0818
CRs-Fixed: 3320943
2022-10-26 20:15:41 -07:00
sandhu
901120c066 qcacmn: Fix incompatible function pointer assignment
Fix incompatible function pointer assignment.
Define a wrapper around mc timer callbacks to
make them compatible with standard scheduler
message callback function signatures.

Change-Id: I07829680d1758ccbd53e8b1fe10b0e30e100a2c6
CRs-Fixed: 3305719
2022-10-26 18:47:58 -07:00
Jeff Johnson
db19d5296d qcacmn: qdf: Remove obsolete suppressed logging macros
The original implementation of suppressed logging used identifiers
with a misspelling of "suppressed."

Change [1] renamed the identifiers, but for 2 public functions it
defined macros for the original names to keep from breaking existing
clients.

Change [2] updated the only existing client to use the new names.

Now that the old names are no longer used, remove the macros.

[1] Change-Id I0107b157374046ab8f3467801563c02f0f2651fa
    qcacmn: qdf: Rename misspelled "suppressed" variables/functions

[2] Change-Id I4fcd506b39cedd6f094f93ee900cf9ce8be759c1
    qcacmn: Use renamed QDF suppressed logging APIs

Change-Id: I78f3b245b355ba937b15fdfa5b4834fb58a62a62
CRs-Fixed: 3313687
2022-10-26 11:37:12 -07:00
Amit Mehta
ea172ef154 qcacmn: Do RTPM put during cleanup in case of WMI Tx completion failure
For WMI messages RTPM get is done during HTC message send and the
corresponding put is done in Tx failure or in Tx completion handler
for Tx success case. In the case where Tx completion is not received
for WMI messages RTPM put is not done as part of the cleanup which
results in RTPM Get and PUT call out of sync issues.

To fix the issue as part of HTC cleanup do RTPM put for WMI messages
for which tx completion is not received.

Change-Id: If92f4bd8a6c104d7ccef1e33b31aa765ea6100bd
CRs-Fixed: 3315404
2022-10-26 07:29:49 -07:00
Jeff Johnson
6487fc4371 qcacmn: Fix misspellings of "whether"
The following change introduced misspellings of "whether", so fix
them.
- Change-Id I50b747710eb3c49eab60c81bbc61e75e2f8650ed
  qcacmn: Handling of IGMP packets in MLO Multipass

Change-Id: I09891388e45a210457d46fb3528efdd5a32905dd
CRs-Fixed: 3319323
2022-10-26 02:53:22 -07:00
Amruta Kulkarni
ebeaf9b564 qcacmn: Define T2LM control parameters
Define TID to link mapping control field parameters.

Change-Id: I450debf709e89146e440e314ea997461de4e956b
CRs-Fixed: 3245435
2022-10-26 01:17:34 -07:00
Kannan Saravanan
234fb9ad6c qcacmn: Initial changes for york (qcn9160) bring-up in HIF Layer
Add device Id and target type checks for qcn9160 target
compilation.

Change-Id: I43fcd4df7a279e92fc545ced3dcee5408da97ac4
CRs-Fixed: 3282629
2022-10-26 01:17:12 -07:00
Priyadarshnee Srinivasan
f5324ff1ce qcacmn: Add best power mode changes for punctured channels
AFC request or response does not consider punctured channels/BW as an
input. Hence the SP EIRP/PSD power for punctured channels cannot be
derived directly from AFC response data.
Add punc_pattern as an input to the APIs reg_get_best_pwr_mode() and
reg_get_eirp_pwr() (and its dispatchers).
Compute SP EIRP for the punctured channels in
reg_get_sp_eirp_for_punc_chans() using the following formula:
MIN_PSD + 10log10 (Non-punctured BW)
Fetch min_psd from the AFC server response data for the input freq
and BW combination.
Use the total BW and puncture pattern to fetch the
non-punctured BW.

CRs-Fixed: 3306932
Change-Id: Id5c4c404a3155474a01a0dacb3bcf289e92e65ac
2022-10-26 01:16:52 -07:00