Wykres commitów

16576 Commity

Autor SHA1 Wiadomość Data
Chaithanya Garrepalli
f2ff4d40b6 qcacmn: Fix Klockwok issue
Fix OOB issue reported in KW in
hal_reo_ring_remap_value_get_be API

Change-Id: I576340aad735dd7d968d623ff131ef0f7773be3b
2022-02-23 12:28:46 -08:00
Bapiraju Alla
6bb2ad7c5b qcacmn: Get partner vdev using vdev ID instead of link ID
While notifying the ML connection status to the supplicant, partner vdev
information will be filled in the connect response. This partner vdev info
is populated using partner link IDs. This may cause issues since it is
not guaranteed that link id information in the partner vdev is valid while
notifying the connection status to the supplicant.

To address this, get partner vdev information using vdev ID instead of
link ID.

Change-Id: I5e45b038b1fe5b6ab9c6bbb514eefb0ad4c39e66
CRs-Fixed: 3117702
2022-02-23 11:10:35 -08:00
Mohit Khanna
21f6f3ad8f qcacmn: Donot do PN-Check for open mode OOR frames
Currently pn-check logic for OOR frames does not take into account
the security mode. For open mode case, BE hardware does not populate
current and previous pn_numbers. Hence a PN-check comparison may yield
incorrect results.

Check for secure mode, before checking for PN numbers.

Change-Id: I398872d467058bc1ee1d04c811818ea20c5aec7e
CRs-Fixed: 3129986
2022-02-23 11:10:29 -08:00
Chaithanya Garrepalli
be02a2d44f qcacmn: Add stats for new TQM release reason on BE
Add Tx completion stats for TQM release reason added
for BE

Change-Id: I7d28cbfacd1378982c5cf9a3f2cf3cffa070ee87
2022-02-23 08:37:16 -08:00
Hariharan Basuthkar
3901980153 qcacmn: Add debug prints in the WMI_VDEV_SET_TPC_POWER_CMDID path
Add debug prints to display the parameters of
WMI_VDEV_SET_TPC_POWER_CMDID sent to the target.

Change-Id: I4759d04d2b9293d7f5f61c173679f8fb2b7ff941
CRs-Fixed: 3130926
2022-02-23 07:18:26 -08:00
Vinay Adella
381d67a7a2 qcacmn: Add support to get reo qdesc size for li & be platforms
Bifurcate the hal_get_reo_qdesc_size to corresponding lithium
or Berillium platforms.
This can handle difference, if any between them and later enhance
to set the qdesc size based on peer negotiation.
Currently for NON_QOS_TID, the BA window size is hardcoded as
256 for Li and 1024 for Be.

Also modify hal_reo_cmd_update_queue_params to accommodate higher
Block-Ack Window size. For this steal bits from pn_size and use
pn_size values as macros PN_SIZE_XX which is only 3 bits,
instead of 8bits.

Change-Id: If310175da579aa3a47a8b031a1774c6c8982d4b2
CRs-Fixed: 3125986
2022-02-22 16:04:01 -08:00
chunquan
fae0e38eb4 qcacmn: Disable monitor mode on sdxlemur
Disable monitor mode on sdx65,it will save 5MB buf,
and improve iperf performance.

Dp_rx_buffer_pool_refill is used monitor mode in
MCC, and rxdma1_enalbe=0, we don't need this logic.
But in WIN side, only monitor mode need this logic,
and rxdma1_enable will set true.

Add func dp_monitor_pktlog_reap_pending_frames and
dp_monitor_pktlog_start_reap_timer in dp_internal.h
for compile issue.

Change-Id: I43fee6d7a1836063a7539c3bd4745eef15a4e4b2
CRs-Fixed: 3129542
2022-02-22 04:54:49 -08:00
Ripan Deuri
351c175a02 qcacmn: Define CDP ops and DP context for SAWF
- Add CDP ops for SAWF default queue mapping.
- Initialize DP context per peer.

Change-Id: Ic9c4e7d197aeeaa4ed19376ec4007711e86cbe5f
CRs-Fixed: 3128801
2022-02-22 00:57:27 -08:00
Pavankumar Nandeshwar
1bf15a02b7 qcacmn: Ignore peer if it is missing txrx_peer in reinject path
Ignore peer if it is missing txrx_peer in reinject path while
going through the peer_list. This condition can hit when the
peer_setup call from the control path is not yet received for
the peer.

Change-Id: Ie57d07353f33749a439415d808fc010702c3c884
CRs-Fixed: 3130821
2022-02-21 22:41:41 -08:00
Venkateswara Swamy Bandaru
804b9e2382 qcacmn: Add EHT PPE threshold support
Add support for EHT PPE threshold's. Store 2G and 5G thresholds received
in service ready. Fill peer PPE thresholds for EHT peer.

Change-Id: Id5c8310cbf34c59a3d88072b37ce3f871354ed17
CRs-Fixed: 3128586
2022-02-21 22:41:33 -08:00
aloksing
0de5f8943a qcacmn: filter setup for enhanced statistics
setup/reset filter to enable/disable enhanced statistics for WKK.

CRs-Fixed: 3121252
Change-Id: Ib6d7653144b0f962e5f0f3330ab1a0ff25cf1802
2022-02-21 06:41:28 -08:00
Sai Pavan Akhil Remella
bc1866e129 qcacmn: Use global OC table for lookup while updating RNR db
Operating class field used in RNR IE is of global operating
class. When getting frequency from RNR IE region specific
operating class is used for lookup instead of global.

Added changes to search operating class from global OC
table.

Change-Id: I200ab46187fed91cc66cd954b062c8d8ac44f631
CRs-Fixed: 3131600
2022-02-21 04:55:54 -08:00
Krishna Rao
3f38db23d4 qcacmn: Add APIs to defragment elem/subelem fragment sequence
Add APIs to defragment a sequence of 802.11 element/subelement
fragments. Add an inline mode to carry out the defragmentation within
the source buffer in order to reduce buffer requirements and to
eliminate memory copies/moves for the lead element/sublement.
Conversely, add a non-inline mode to copy the defragmented payload to
a separate buffer.

Add common helper functionality shared between these APIs.

CRs-Fixed: 3124132
Change-Id: Ia68584e918ddcf626b748f2b0c3a5da6492b40b6
2022-02-19 10:54:58 -08:00
Lincoln Tran
94df448341 qcacmn: Return from function if pointers are NULL
In some MLO functions, there are NULL pointer checks, but the logic
continues even if it is NULL. Return from the function in this case so
there is no potential NULL pointer dereference. This also addresses
a static analysis issue.

Change-Id: I22c4a47d724d8576a2ce78059dec219cbc3de91e
CRs-fixed: 3127461
2022-02-19 06:25:14 -08:00
Srinivas Dasari
f8921a74b9 qcacmn: Wait for RSO stop response from firmware
Firmware doesn't expect any vdev commands from host while RSO stop
is happening. It sends a response to the RSO_STOP command once
it's done with cleanup. Host needs to run a timer and wait for a
maximum of 6 seconds for the response. Host can stop the timer and
allow the commands to firmware in the below cases,
1. RSO_STOP response with success status
2. RSO_STOP response with HO_FAIL status followed by
   HO_FAIL event: Host needs to wait till HO_FAIL event is
   received

If firmware doesn't send any response in the 6 seconds wait, issue
a recovery to help to check the firmware state.

Change-Id: I4577f9b0aac71c0c86bd32b59e69d9527bf107b9
CRs-Fixed: 3106032
2022-02-18 23:21:21 -08:00
Surya Prakash Raajen
e7074b084e qcacmn: Add section defines and new dp ini parameters
Add section defines parameters and add the required new dp
ini parameters

Change-Id: I6a93c621565207970e35f1aa153283f7a6535bea
CRs-Fixed: 3107545
2022-02-18 16:39:28 -08:00
Srinivas Pitla
e8ea09fe28 qcacmn: Fix static analysis issue in ML AID free
This change handles the scenario,if the caller passes invalid
link ix during AID free

Change-Id: I494cb55573ea5d8ecd351aac454d3395710273c1
CRs-Fixed: 3127458
2022-02-18 16:39:23 -08:00
Pavankumar Nandeshwar
24c089c678 qcacmn: Add the missing tid value in rx_tid_defrag
Initialize the rx_tid_defrag with correct tid value
which was missing

Change-Id: Ib01d9692352e56f62d1338f353afac11b175d710
CRs-Fixed: 3130846
2022-02-18 15:32:08 -08:00
Pavankumar Nandeshwar
70bd47772e qcacmn: Sanity check for phy addr in cb against ring_desc
Check phy addr in cb against ring_desc for sanity
in wbm rx path

Change-Id: I40dd2949993129d1da548da45160f9eace094bff
2022-02-18 15:32:02 -08:00
sandhu
98f2bdc213 qcacmn: Add support to dump idle link ring hp tp
Add support to dump idle link ring hp tp.

Change-Id: Ia5fa1afd260a64c40133bf52368e93163b80c3ab
CRs-Fixed: 3128366
2022-02-18 14:08:22 -08:00
Sajini R
1ec23ade38 qcacmn: Increase max number of socs to 5
For Quad-band IPQ9574 + 3 QCN9000 RDP, max number of SOCs
needs to be increased to 4 and another IPQ9574 RDP with QCN9224
might mostly have upto 4 PCI devices, hence increase the number
of max SOCs to 5.

Change-Id: Ie8a121c630bc41f084ca772a84503c816ed86514
2022-02-18 05:56:22 -08:00
Basamma Yakkanahalli
3498dbc3a6 qcacmn: Add support to configure phy error mask
The monitor status ring is configured for filtering
in undecoded phy error packets. Each phy error can
be controlled using a specific error mask configuration.

Added below cfg80211tool command to configure phy error
mask for filtering undecoded phy error packets.

cfg80211tool wifix set_phyrx_error_mask mask_0to31 mask_32to63
cfg80211tool wifix get_phyrx_error_mask

Change-Id: I5e4f6a49458cc534d6d1d0f7f2a7424f3cc747b4
2022-02-18 04:53:23 -08:00
Basamma Yakkanahalli
e85fbce095 qcacmn: change to configure and handle undecoded metadata capture
Added change:
1. Set/reset RXDMA MON STATUS ring filter setting and send HTT
   message to capture undecoded frame
2. Handle undecoded frame to update cdp_rx_indication_ppdu structure
   from hal ppdu_info rx status and generate WDI event to deliver it
   to upper layer

Change-Id: I14485f28333b113b5a2fab639611551c2b08af2b
2022-02-18 04:53:18 -08:00
Krishna Rao
8b712ebbaf qcacmn: Add APIs to get info about elem/subelem fragment sequence
Add an API to get the following information for a first 802.11 element
present in the beginning of a given buffer, and a series of elements
after it in the given buffer: a) Whether a contiguous subset of these
elements starting with the first element form an element fragment
sequence. b) If they form an element fragment sequence, then the total
length of this sequence inclusive of headers and payloads of all the
elements in the sequence. c) If they form an element fragment
sequence, then the total size of the payloads of all the elements in
the sequence (not including the element ID extension of the lead
element, if applicable).

Similarly, add an API to get the following information for a first
802.11 subelement present in the beginning of a given buffer, and a
series of subelements after it in the given buffer: a) Whether a
contiguous subset of these subelements starting with the first
subelement form a subelement fragment sequence. b) If they form a
subelement fragment sequence, then the total length of this sequence
inclusive of headers and payloads of all the subelements in the
sequence. c) If they form a subelement fragment sequence, then the
total size of the payloads of all the subelements in the sequence.

Add common helper functionality shared between these APIs.

CRs-Fixed: 3124120
Change-Id: I26d2d75670dbb99c927517181d58f4d816ae754b
2022-02-18 04:53:12 -08:00
nobelj
df4a101c0e qcacmn: process tx monitor per ppdu status buffer
Add skeleton code for handling tx monitor per ppdu status buffer.

Change-Id: Idfb4e038007e0a45cb1a4805270453cc01cd986e
2022-02-18 01:27:43 -08:00
nobelj
eb6d660139 qcacmn: Add HAL specific api to support tx monitor
Added HAL specific api to support tx monitor,
	1. to get buffer address
	2. get number of users
	3. get corresponding structure to handle tx monitor and
	4. parse limited TLV tag.

Change-Id: Ic354c76b3bcf5fa454db973c2aa4ee5f9c1b4208
2022-02-18 01:27:37 -08:00
Bing Sun
091c383271 qcacmn: Get pdev for dfs if pdev id is not 0
MCL host only has one pdev with pdev id as 0. If pdev id indicated
from FW is bigger than 0, MCL will not get pdev. Get pdev with pdev
id 0 in this case.

Change-Id: Ie43fc2d78d31ebaa3f32076704d81439f1d46830
2022-02-17 15:42:29 -08:00
Kiran Venkatappa
19ceffca9d qcacmn: Use WMI_MULTI_MAC_SVC and remove target defs
Remove target type #ifdefs for multi WMI svc by setting
WMI_MULTI_MAC_SVC in makefile.

Change-Id: I46d968328825ff8f6578cf3ba4454f559d5a7315
CRs-Fixed: 3131513
2022-02-17 09:40:44 -08:00
Pavankumar Nandeshwar
e157e0df4e qcacmn: Flush dp cached frames only for mld peer
Flush dp cached frames only for mld peers and legacy peers, as
link peers don't need it.

Change-Id: I19a27c5810a1fec6a62bfe5a6377073dc382fb4c
CRs-Fixed: 3131405
2022-02-17 09:40:38 -08:00
Prakash Manjunathappa
0447218ad2 qcacmn: KIWI V2: take care changed WBM completion release source
KIWI V2 WBM completion release reason codes are changed to match legacy
lithium release codes. Takecare to enable translation only for KIWI V1.

Change-Id: I094f40440b290ae424b47a7ba176b81ffea6c592
CRs-Fixed: 3132359
2022-02-17 07:45:22 -08:00
Liangwei Dong
a0fa276d5a qcacmn: Add MCC quota Vendor command and event index
Add enum QCA_NL80211_VENDOR_SUBCMD_MCC_QUOTA_INDEX for
new vendor command QCA_NL80211_VENDOR_SUBCMD_MCC_QUOTA.

Change-Id: Ib09d5a6ad59b625e2d5d458a01e8f6c82cee4762
CRs-Fixed: 3101808
2022-02-17 07:45:17 -08:00
Liangwei Dong
e157d2f8f1 qcacmn: Add QCA vendor MCC channel quota command and event
Add QCA_NL80211_VENDOR_SUBCMD_MCC_QUOTA. When two or more interfaces are
active on the same band and two different home channels (MCC), the
target may allocate quota of "on channel" time for each home channel.
The target will indicate the quota information to application layer with
this event. Application may do TX bitrate control based on the
information. The user may also set the MCC quota for an interface by
using this command.

Change-Id: Ic8d8c5a5f2a6f0c55fd46394fa8e2062a37abefc
CRs-Fixed: 3101791
2022-02-17 07:45:11 -08:00
Ripan Deuri
831995f9ca qcacmn: Add default queue map config message handler
Add default queue map config msg handler. This msg is sent by the target
in response to a default queue map request.

Change-Id: Id08e0b175172614514b9fb2dcabcc5f7f068896f
CRs-Fixed: 3126854
2022-02-17 06:25:05 -08:00
narayan subramhanyan
893d63c744 qcacmn: Legacy Qwrap RE code cleanup
Remove Legacy Qwrap max client mode code as part of Legacy
RE code cleanup. Old change (same code changes as new) was
reverted as some PF checks were missing/skipped before merge
due to an IT issue

Safe to merge now as IT issue has been resolved and all PF
checks are enabled again before merge.

Change-Id: I2f6ae57a27d50c31115d89e57281dc1f7094d71d
CRs-Fixed: 3125196
2022-02-17 06:24:59 -08:00
Jinwei Chen
7a60675260 qcacmn: Support TX completion and RX delay tracing for KIWI
Support TX completion and RX delay tracing by Ftrace for KIWI,
Add generic IP protocol packt tracing like ICMP packet.

Change-Id: Ie0c4b1764ce953fd2ed41fc5eea8aa28c8d427d9
CRs-Fixed: 3126080
2022-02-17 05:03:40 -08:00
Hariharan Basuthkar
9ae0959d63 qcacmn: Rectify compilation error when CONFIG_BAND_6GHZ is disabled
When CONFIG_BAND_6GHZ is disabled, compilation error is observed
due to the absence of the declaration of reg_convert_enum_to_6g_idx
and reg_get_reg_maschan_lst_frm_6g_pwr_mode.

To fix this issue, add static declarations for
reg_convert_enum_to_6g_idx and reg_get_reg_maschan_lst_frm_6g_pwr_mode
when CONFIG_BAND_6GHZ is disabled.

Change-Id: I616de6cd2630be1897da6cd87a29569e51bf058e
CRs-Fixed: 3131119
2022-02-17 05:03:35 -08:00
Jinwei Chen
a2f8cef72d qcacmn: Check DBS capable to determine max_mac_rings
For 1x1 DBS case, host also need to configure max_mac_rings
as 2 and initialize each RX ring, currently host only consider
2x2 DBS case.

Check DBS capable instead of 2x2 DBS capable only.

Change-Id: Ic2d4fda9be245a3d0448b6b87ba8676f41d9187e
CRs-Fixed: 3129165
2022-02-17 05:03:29 -08:00
Himanshu Batra
198acb4138 qcacmn: Increase the max ini value of RXDMA buf ring
Increase the max ini value of RXDMA buf ring.

Change-Id: Ia8ef1a3ac5347b5b136f0fb088ec000317406f87
2022-02-16 23:45:11 -08:00
Balaji Pothunoori
37411ce595 qcacmn: disable reg channels based on ini check
Disable ini channels based on coex_unsafe_chan_reg_disable
ini configuration.

Change-Id: Ia3acbc133cab4865d8ad69992e893be91439f837
CRs-Fixed: 3129049
2022-02-16 22:27:07 -08:00
Devender Kumar
3d525ae1ce qcacmn: Code change in IPA component for 2x_pdev
2x_pdev changes are included mainly related to IPA
init for second pdev/radio and pipe enablement for
second pdev/radio, code changes can support n number
of radio for IPA, add support for new IPA API's.

Change-Id: Iac67e05e0f0098bdc24626fdbe59b89d768154cd
2022-02-16 16:57:01 -08:00
Devender Kumar
e0934446af qcacmn: Modify QDF APIs to support multiple radios by IPA
The current WLAN driver only supports single radio for IPA, but with
2X_PINE product WLAN driver need to support multiple radio for IPA
driver, which can be done by adding the support for multiple radios
via QDF layer.

Change-Id: I8850e1df56690cfe704b8fb7487c141a8ed21412
2022-02-16 16:56:56 -08:00
Devender kumar
95ced9577d qcacmn: Add support in IPA datapath for 2X_PDEV
2x_pdev changes are include for support new IPA API's
and change the existing API's argument to support new
parameter which is ipa handle, create a new API to get
the IPA hdl from IPA component in DP

Change-Id: I3d2b378620dbd1e64d295623534126e0eebc2d28
2022-02-16 16:56:50 -08:00
Krishna Rao
b76c403d0e qcacmn: Add APIs to create elem/sublem fragment sequence
Add an API to create a sequence of 802.11 element fragments, and
similarly, add an API to create a sequence of 802.11 subelement
fragments. Add an inline mode for both these APIs to carry out the
fragmentation within the source buffer in order to reduce buffer
requirements and to eliminate memory copies/moves for the lead
element/subelement. Conversely, add a non-inline mode to create the
fragment sequence in a separate buffer.

Add common helper functionality shared between these APIs.

CRs-Fixed: 3124099
Change-Id: I48ef6e529360ea40d58320327a50884bc1638689
2022-02-16 15:11:43 -08:00
Krishna Rao
046cd79da6 qcacmn: Add APIs to get elem/subelem frag generation requirements
Add an API to get information on requirements related to generation of
802.11 element fragment sequence. Currently this includes an
indication of whether fragmentation is required or not for the given
element ID and payload length, and if fragmentation is appplicable,
the minimum required size of the buffer where the element fragment
sequence created would be written.

Similarly, add an API to get information on requirements related to
generation of 802.11 subelement fragment sequence. Currently this
includes an indication of whether fragmentation is required or not for
the given payload length, and if fragmentation is appplicable, the
minimum required size of the buffer where the subelement fragment
sequence created would be written.

Create common helper functionality shared between the above APIs.

CRs-Fixed: 3124090
Change-Id: I7047e2117aae1a8856ee49c460f333914aa19a8b
2022-02-16 15:11:37 -08:00
Arun Kumar Khandavalli
d4239b89f6 qcacmn: Dont add the wmi header size while allocating the wmi buff
Currently whenever the wmi message is allocated the wmi header
length is also added to check with against the max size supported
by the firmware, there is no need to add the extra wmi header size
as the max length shared by firmware has the wmi header size
included.

Below is the breakdown:

Max CE2 transfer size is 2048 bytes
HTC header is 8 bytes
WMI header is 4 bytes

Max payload can be (MAX CE2 Transfer size - (HTC header+ WMI header)
                   (2048 - (8 +4)) =  2036

During the htc handshake this max wmi length is recevied by the host as
2040 bytes which is including the  wmi header so host adding the extra
4 bytes is redundant and can be removed.
HTC buffer->actual_length = 2036 + WMI(4) = 2040 bytes

Change-Id: Ib958a938506c5c96347dec5304ca30aa8690d459
CRs-Fixed: 3130493
2022-02-16 12:50:12 -08:00
Surya Prakash Raajen
edf9fd0441 qcacmn: Add support for section parsing in ini
Add support for section parsing in ini, such that we could
read specific section of the file and update the ini values
instead of redundant values or updating the same in the
scripts based on the config

Change-Id: Ibdb08a04d709746c04c3e7c47ee3bb4a7ce85346
CRs-Fixed: 3107545
2022-02-16 10:26:33 -08:00
Jeevan Kukkalli
0101390bcd qcacmn: Update rxdma error code
Populate rxdma error code while reading sw monitor
ring descriptor

Change-Id: I4f95f7d2ccc16dd8178dd12d762bce7af4f57aff
CRs-Fixed: 3094251
2022-02-16 10:26:26 -08:00
Harsh Kumar Bijlani
cc4bde4708 qcacmn: Use atomic variant of qdf_mem_malloc for vdev stats
When kernel calls driver callback to get stats, dev_get_stats()->
ndo_get_stats64() .Host driver allocates memory using
kmalloc (size, GFP_KERNEL) routine,
but as ndo_get_stats is under RCU lock but not in interrupt
context(in_irq = 0, in_interrupt = 0, irq_disable = 1),
qdf_mem_malloc () uses ‘GFP_KERNEL’ to allocate memory,
leading to backtrace for sleeping function call from invalid
context.

As per kernel doc
(https://www.kernel.org/doc/Documentation/networking/statistics.rst),
while in ndo_get_stats64 () API, driver should not calling a routing
which can sleep. Use atomic variant of qdf_mem_malloc() to fix this.

Change-Id: I775f53dd1e8165e962321215e65d46142fb3b3cc
CRs-Fixed: 3128647
2022-02-16 10:26:20 -08:00
Nirav Shah
e1f64d3562 qcacmn: Rename moderate latency level to XR latency level
Currently the moderate latency level is not used. Rename the moderate
latency level to XR latency level to be used in XR (extended reality)
applications.

Change-Id: Ie5ca8983c17800131bb554dbb14f5cf94023aa1c
CRs-Fixed: 3128109
2022-02-15 18:50:38 -08:00
Vivek
afc1a46abd qcacmn: Define CDP ops and DP context for SAWF
Adding SAWF ops for CDP and adding SAWF context
to DP peeer.

Add calls to initialize DP SAWF peer context
when DP peer is created.

Change-Id: I7efb89ae18a28c8b070ad9fcee7754553caa7ff3
CRs-Fixed: 3118160
2022-02-15 18:50:33 -08:00