Grafico dei commit

19752 Commit

Autore SHA1 Messaggio Data
Karthik Kantamneni
a671ff2ee1 qcacmn: Modify refill buff pool enqueue to use max_bufq_len
Currently Refill buffer pool enqueue is using POOL_SIZE
macro, but there is possibility of dynamically configuring
max pool size less than that. So use max_bufq_len which will
be configured dynamically during refill pool init instead of
POOL_SIZE macro.

Change-Id: I610b5dff71861254aa8b6d30e2c562bd7316e120
CRs-Fixed: 3575599
2023-08-01 20:29:01 -07:00
Liangwei Dong
adb0ec3b16 qcacmn: Fix duplicate process of link set event
Add flag in event response struct to indicate event processed
or not.
Use scheduler thread to process set link active event same as
other link switch and vdev event to avoid race condition.

Change-Id: I963f9106e296a59cff5078c85a4accf63c7026dc
CRs-Fixed: 3572868
2023-08-01 09:38:15 -07:00
Karthik Kantamneni
838ed5edf5 qcacmn: Mark nbuf cb for offloads handled frames in Rhine
Mark nbuf cb if Rx packet is routed via offloads, this gives the
info whether particular packet rx ring routing info is correct or
whether packet has entered offloads layer and rerouted back.

Change-Id: Ib3ad71216c514381d0bce1fb4744550d91880254
CRs-Fixed: 3540537
2023-08-01 09:38:01 -07:00
Liangwei Dong
5a23527cfd qcacmn: Extract current active/inactive link bitmap
FW will report current active/inactive link bitmap for
each set link command. Extract them and save to respone
data struct.

Change-Id: I8513391fbf3b181c6182d6568d0ce8e83c627bc6
CRs-Fixed: 3564785
2023-07-31 23:55:45 -07:00
Vinod Kumar Pirla
af6cf93a07 qcacmn: FW Link switch request event handler and cnf resp
Once the FW sends the link switch request to host handle
the request from scheduler thread and send confirmation
back on completion of link switch process with status of
link switch (success/failure).

Add new serialization command type for link switch.

Introduce flags to get the current state of link switch
request, set the state to idle when no link switch in
progress or once the current link switch is completed.
Access to state is protected with MLO dev context lock.
Implement various helper API to:
    a) Transition link switch to next state.
    b) Get current state of link switch.
    c) To check whether any link switch is in progress.
    c) To check whether link switch is happening
       on assoc VDEV or not.

Introduce a new VDEV flag to suggest the VDEV is in
link switch process and also implement helper APIs to
set/get/clear this VDEV flag.
   a) The flag is set at start of link switch, once
      the FW request params are validated and before
      proceeding for link switch disconnect on VDEV.
   b) Clear the flag once the Link switch confirmation
      is sent to FW.

Validate the link switch request params:
     a) IEEE link ID's received.
     b) Check if new connection is part of MLO connection.
     c) Check if VDEV is MLO STA VDEV or not.
     d) Is VDEV in connected state or not, that means
        VDEV is not in transitioning state due to disconnect.
     e) Check if any link switch in progress on this MLD
     f) Current link ID of VDEV equals the FW params.

If validation is successful, serialize the link switch
command and in the serialization activation start the
actual link switch process.

Change-Id: Ie582650541054c8cf39aaa8316e86a7a40256a15
CRs-Fixed: 3556422
2023-07-31 19:38:48 -07:00
Shashikala Prabhu
10448e6108 qcacmn: Update channel list size to accommodate all the channels
A few RDPs can have 2 GHz + 6 GHz + Scan radio (2 GHz + 5 GHz + 6 GHz)
radios. In this case, the total number of channels are greater than
NUM_CHANNELS.

Hence, increase the channel array size by twice. And filter out  the
duplicate channels before sending the channel list to LOWI application.

Change-Id: If9d1676dab24b8e46f5303d5992aaa59ba1e67ce
CRs-Fixed: 3554676
2023-07-31 19:38:37 -07:00
Santosh Anbu
d8509c4df7 qcacmn: Remove hex dump in monitor tlv processing
Hex dump in monitor descriptor processing is causing high
CPU utilization. Since it is not advisable to add prints/debug
in per packet processing, remove hex dump debug log.

Change-Id: Ic98c3608a468cf4665ea94b1ebee725ca7121545
CRs-Fixed: 3571491
2023-07-31 19:38:27 -07:00
Santosh Anbu
3f3d1f352c qcacmn: Remove debug logs in monitor TLV processing
Debug logs in per packet tlv processing is causing high CPU utilization.
Remove these debug logs.

Change-Id: I520b3a83c7a5cafefe6f2d25d14ea5c1b9816b11
CRs-Fixed: 3571491
2023-07-31 19:38:19 -07:00
Priyadarshnee Srinivasan
ede405d4f8 qcacmn: Modify the debug levels of WMI prints
Modify the WMI debug level prints to reduce the
prints during bootup time.

Change-Id: Ia6d5b45d982280e572d28d1766a796b1e7ce1c60
CRs-Fixed: 3570322
2023-07-31 19:38:09 -07:00
Pragaspathi Thilagaraj
3efd94838f qcacmn: Add crypto changes to support roam sync key event
Change few static crypto API's to global.
Add support to add new crypto entry based on passing the entire
entry structure itself.

Change-Id: Id2e0a46bb8b44a834d17d2a04b0dc28fc881b4e3
CRs-Fixed: 3571796
2023-07-31 19:37:59 -07:00
Nandha Kishore Easwaran
72a6ff4b6e qcacmn: Fix tlv processing for Big endian mode
Fix tlv processing code for monitor mode in Big endian mode.
Changed all the 64bit tlv extraction apis and used 32 bit extraction apis.
This is needed in big endian mode since HW supports word swap option and
TLV has to be intepretted using 32bit extraction APIs.

TLV tag, userid and TLV len falls on the first 32 bit and hence using
both 32bit or 64 bit extraction APIs give same result.

Change-Id: I9b9ff78c79f21888964d405016c58c3b5988b254
CRs-Fixed: 3551002
2023-07-31 19:37:48 -07:00
Vinod Kumar Pirla
2ec28965cf qcacmn: Clear copied connect request IEs on disconnect
If non-ML type connection fails, then the connection IEs
copied in sta ctx are not cleared as VDEV is not ML VDEV.

Clear the IEs if connection fails irrespective of VDEV type.

Change-Id: I2a2ca155aadeb408e9a4a425d3f1f03f4dbfb867
CRs-Fixed: 3572185
2023-07-31 15:51:23 -07:00
Shiva Krishna Pittala
97684a103f qcacmn: Handle unmigrated clients during MLO AP removal
At the end of the link removal procedure, issue full disconnect of only
those ML peers that still have the removed link as primary TQM and there is
no ongoing PTQM migration of those peers.

Change-Id: I1a4c34313eb2cb49187c1d9b47e5918ada32ccf7
CRs-Fixed: 3550142
2023-07-31 12:20:26 -07:00
Vijay Raj
38f6a7af8d qcacmn: Add conversion for new twt notification and twt status codes
Introduce new twt statusconversion
HOST_ADD_TWT_STATUS_LINK_SWITCH_IN_PROGRESS and
HOST_ADD_TWT_STATUS_UNSUPPORTED_MODE_MLMR for
individual twt in 11be.

Change-Id: I76194ec0172d06c1b176e3afd3a5e66efdd12f4a
CRs-Fixed: 3568732
2023-07-31 05:43:23 -07:00
Sai Rupesh Chevuru
7157add22c qcacmn: Avoid wdi events for bss peer
As the bss peer is closely tied with the vdev creation
and deletion, listeners might be uninitialized and result
race conditions. send an event only to the connected peers.

Change-Id: Ia0ae063c92bba38d2fb67fe4eae84f5562991fa2
CRs-Fixed: 3574176
2023-07-31 02:12:38 -07:00
jingxiang ge
f8d1f8ac6f qcacmn: Extract aux device capability
Extract aux device capability from service ready ext2
event, and report such info to wma/mlme/hdd.

Change-Id: I888624fd3443118ba66fadd7a40fcce4f4b5d521
CRs-Fixed: 3549753
2023-07-30 22:45:25 -07:00
Shreedhar Parande
b4db727551 qcacmn: Add API for bridge vdev handing
Add APIs to populate, destroy and get bridge vdev count.

Also send bridge VDEV details in partner link info via
VDEV START command to target.

Change-Id: Iea155b09051b6724d07cf2b6052a07c1d3beb7e8
CRs-Fixed: 3567098
2023-07-30 22:45:14 -07:00
Mukul Dhiman
59ec56d44f qcacmn: add partner vdev debug prints in TXRX_AST_STATS
add partner vdev debug prints in TXRX_AST_STATS

Change-Id: Icf3cc557572519e43e3135e2b22ff457982a8d32
CRs-Fixed: 3571207
2023-07-30 19:08:19 -07:00
Ananya Gupta
3ef9a59299 qcacmn: Add enum for xpan in link vote user IDs
Add enum for xpan in  link vote user IDs

Change-Id: I5a1e33d853c0f8937b6e1a6c3acd169207296e58
CRs-Fixed: 3559119
2023-07-30 19:08:08 -07:00
Uraj Sasan
329a080940 qcacmn: Add bridge sta link id
Store linkid used by vdev in bridge sta ctx

CRs-Fixed: 3562149
Change-Id: Ib6550b65abfaae71c7f021640fa3f93bc1ad967c
2023-07-30 19:07:56 -07:00
Uraj Sasan
2fce323cb6 qcacmn: API's to check topology and total links
1. APIs to check topology to see if the bridge vap/peer will be used.
2. API to check the max number of links supported.

Also check if we can have the primary and assoc links to be different
for WDS STATION. Based on the topology allow/block
connection to a particular AP.

CRs-Fixed: 3562149
Change-Id: Icf3b32036199f39b0d567ac88795dc07760ac1a5
2023-07-30 19:07:45 -07:00
Prakash Manjunathappa
a57c1c99b5 qcacmn: Fallback to 4k slab allocation on page_frag alloc fail
In low memory conditions 32K page frag allocations via
qdf_nbuf_frag_alloc will fail, fallback and try 4k slab allocations.

Change-Id: I3c9b08af8b1cc3aa881a91338a88b736589fb4dd
CRs-Fixed: 3571487
2023-07-30 15:08:50 -07:00
Chunquan Luo
41a1814948 qcacmn: Fix cur_Rssi threshold not logged for PERIODIC roam
When roam reason is periodic, host driver ignore the rssi
threshold in wmi event parsing.

Change-Id: I66c72576c7a2994d88e4c83bee726d8ec92c4189
CRs-Fixed: 3566441
2023-07-30 15:08:40 -07:00
Amit Mehta
8a052c3b88 qcacmn: Get correct peer id in htt tx completion
Currently in htt tx completion for MLO connection
host is not converting peer id into ml peer id.

Due to wrong peer_id host is not able to find txrx_peer
due to which stats are not getting updated.

To fix the issue in case of MLO connection convert
received peer_id into MLO peer_id.

Change-Id: I2e90104053d59a319d46a2628c4e9cdcb32832a0
CRs-Fixed: 3574182
2023-07-28 23:43:08 -07:00
Lin Bai
09432f7ace qcacmn: Compute pages required by SPT properly
Compute the required pages properly, when num_descs is not
multiple of DP_CC_SPT_PAGE_MAX_ENTRIES(512).
For example, if num_descs less than DP_CC_SPT_PAGE_MAX_ENTRIES,
then 1 page needed rather than 0.

Change-Id: I1c4b12cfebef6a9b315baf9044355caab1b112de
CRs-Fixed: 3571562
2023-07-28 23:42:57 -07:00
Asutosh Mohapatra
db94a99add qcacmn: Correct API names and use helper function to get value
Change name of reg_is_6ghz_chan_connected to reg_is_chan_connected
as this API can be used to check if channel is connected for all
bands.
Use reg_is_6ghz_band_set helper function to check if 6 GHz band
is set and reg_get_keep_6ghz_sta_cli_connection to check if
keep_6ghz_sta_cli_connection flag is set.

Change-Id: I106185bad72579e227f9042a40f77934a2cb81c1
CRs-Fixed: 3537696
2023-07-28 15:37:42 -07:00
Priyadarshnee Srinivasan
5a1d1aa1b2 qcacmn: Modify the DFS debug print level
Modify the DFS debug print level to reduce the prints during bootup
as per customer's requirement.

Change-Id: I9e2c07373ffe036d4dfa7599d49d589eefee5cff
CRs-Fixed: 3568927
2023-07-28 15:37:31 -07:00
Amith A
535c2cf1c1 qcacmn: Consider AFC response with 0 freq/channel objects as valid
With the current behavior, a NULL AFC response is treated to be invalid
and is not processed. Hence the AP continues to operate in its current
state. To resolve this, the NULL AFC response should be treated as if
there are no SP channels available in that geo-location and should be
processed as follows:
A) If there are no Tx channels available(in all power modes) then the AP
   must be brought down.
B) Else AP must choose the best channel in the best power mode.

To implement above cases, remove all the checks in the driver that tries
to block the NULL response and finally call upper layer functions
(hostapd/acs) so that they can decide whether to bring down the AP or
choose a channel from the available power modes. Modify
'reg_set_ap_pwr_and_update_chan_list' to bypass setting power type when
ap_pwr_type is REG_CURRENT_MAX_AP_TYPE. This allows the current channel
list to be updated and the upper layers to be informed about this update.

Change-Id: Id048fa9ee402d537f352e3caa2b53729518ea37e
CRs-Fixed: 3565567
2023-07-28 15:37:13 -07:00
Aasir Rasheed
8f15871d98 qcacmn: Use WLAN_MAX_ML_BSS_LINKS to check max number of links
Currently, We are using WLAN_MLO_MAX_VDEVS to check
max number of links, However with n link mlo we need
WLAN_MAX_ML_BSS_LINKS to check max number link.

Change-Id: Idd8a96ae80030c813bbdcebcdc4c76d2f93bea5d
CRs-Fixed: 3567342
2023-07-28 05:33:05 -07:00
Devender Kumar
a815fe5825 qcacmn: Fix iommu domain attributes compilation issue with IPA enable
When CONFIG_QCOM_IOMMU_UTIL is enable in vendor config, we have to
use new set of API's to get iommu domain attributes, and while using
__qdf_iommu_attr_to_os seeing compilation issue as some identifiers
like, QCOM_IOMMU_MAPPING_CONF_S1_BYPASS are not declare.

even when CONFIG_QCOM_IOMMU_UTIL is not enable we have dependency
on qcom-iommu-util.h file as it has some identfiers which are in use,
with or without CONFIG_QOM_IOMMU_UTIL.

Fix is to include the header file qcom-iommu-util.h which contains
the declaration of all the identifiers used in __qdf_iommu_attr_to_os
and this file is included if MSM_PLATFORM or QCA_IPA_LL_TX_FLOW_CONTROL
is defined.

Change-Id: I82b1c13717d377a5ec4bcb74ff94f4d15fa1f638
CRs-Fixed: 3487912
2023-07-27 22:25:06 -07:00
Chunquan Luo
2dab6c754c qcacmn: Change the minimum limit of dp_rx_sw_desc_num
Change minimum limit of dp_rx_sw_desc_num for memory optimization
on kuno.

Change-Id: I8f2d92286b94b4aba8b865dbc47e69e6b561ce90
CRs-Fixed: 3564817
2023-07-27 22:24:55 -07:00
Prasanna JS
ae88affbf8 qcacmn: Add 6 GHz check in ucfg_cm_get_connected_band
Add 6 GHz check in ucfg_cm_get_connected_band

Change-Id: I323d165c179ee4ce744bb9d06e6af9786f25ea31
CRs-Fixed: 3566304
2023-07-27 18:54:39 -07:00
Sai Rupesh Chevuru
227c8c9aaa qcacmn: In peer WDI events use the vdev id instead of osdev
In peer WDI events use the vdev id instead of osdev.

Change-Id: I1dd702acba2721712222a4985b4747050647b4e0
CRs-Fixed: 3571299
2023-07-27 08:32:32 -07:00
Jianmin Zhu
8ebdc0ccc9 qcacmn: Avoid mutex in soft irq
When handle wmi_mlo_link_disable_request_event in tasklet, mlo mutex is
acquired, assert will happen.
To fix it, let wmi_mlo_link_disable_request_event be handled in scheduler
thread instead of tasklet.

Change-Id: I65b84d0b6dc92a6649925d5844657fa44df1fada
CRs-Fixed: 3563195
2023-07-27 08:32:20 -07:00
Vignesh U
416c570033 qcacmn: Include opclass 80p80 in AFC request only if device supports
AFC request is sent for all the opclass supported in the global opclass
including 80p80. Not all the devices support 80p80 and so, it is
unnecessarily included in the AFC request.

Create a callback function in regulatory to check if 80p80 is supported by
the device. If the support is present then the AFC request can include
80p80 opclass (opclass number 135 in global operating class). If not, then
the AFC request excludes 80p80 opclass.

Include 80p80 opclass in the AFC request based on the devices' support.

Change-Id: I9e72c960fefe6fbdc106bb83fb240d84d8522b80
CRs-Fixed: 3538926
2023-07-27 08:32:09 -07:00
Himanshu Batra
80cdcc68dd qcacmn: Donot allow PTQM migration for unauthorized peers
Donot allow PTQM migration for unauthorized peers

Change-Id: I1d4d7b715793b976f6020ecc74b9443893d8073e
CRs-Fixed: 3568618
2023-07-27 08:31:58 -07:00
Santosh Anbu
22a0b8805b qcacmn: Print mon dst interrupt threshold
Add change to print monitor destination ring interrupt
threshold values.

Change-Id: I5750d7e491e4e8761b4dca61630c2f04355b0b59
CRs-Fixed: 3569507
2023-07-27 04:51:12 -07:00
Santosh Anbu
32d27588db qcacmn: Update mon dst interrupt from INI
Add change to update monitor destination ring interrupt handling
thresholds from INI.

Change-Id: Ibfced2b809ac2101171e8fe9f58e021a5a1f8ccf
CRs-Fixed: 3569507
2023-07-27 04:50:58 -07:00
Jianmin Zhu
830e468aa1 qcacmn: Add OUI config to send SMPS frame along with OMN for specified APs
Add gActionOUISendSMPSFrameWithOMN to send SMPS frame along with OMN for
specified IoT APs

Change-Id: Ida35779d11f9c6d6340afdbebeb788520fa7afdc
CRs-Fixed: 3568462
2023-07-27 04:50:43 -07:00
Santosh Anbu
ba59a82e83 qcacmn: Support INI cfg for mon dst interrupt
Monitor destination ring interrupt processing is configurable.
For improved CPU utilization the batch counter threshold and
timer threshold is updated and also an option is provided to make
this values configurable through INI.

Change-Id: Ibe671927f53f3e8fac7f17540c21a2c7edae427b
CRs-Fixed: 3569505
2023-07-27 04:50:29 -07:00
Santosh Anbu
436efcf19a qcacmn: Remove unused ini cfg for monitor
Removed unused cfg variable and related function specific to monitor
path.

Change-Id: I906d1a2a50779ac5cae287355a9acaf5b70e479b
CRs-Fixed: 3569504
2023-07-27 04:50:16 -07:00
Namita Nair
a8d48da111 qcacmn: Handle OPT_WIFI_DP during IPA pipedown
Currently if OPT_DP filter reserve or add request
is received during IPA pipe disconnect, the request is
not rejected. This could cause a race condition when
WIFI is disconnected while OPT_DP transfer is initiated.
This change handles this scenario by rejecting the
OPT_DP request when pipes are going down.

Change-Id: I8ec9e2e50917ef6ec3a07f9e1833303d94134c6c
CRs-Fixed: 3520707
2023-07-26 21:25:13 -07:00
Shreedhar Parande
10000aedc1 qcacmn: Add API to get primary VDEV from ML peer
Add API to get primary VDEV using primary link peer.

Change-Id: I309070bf33bdae017f174b00ae5eea3d34292a97
CRs-Fixed: 3570511
2023-07-26 21:25:03 -07:00
Jeff Johnson
9ce54cdba4 qcacmn: Fix dp_tx_tso_num_seg_pool_init_by_id() stub
The dp_tx_tso_num_seg_pool_init_by_id() stub implementation has an
incorrect semicolon, so remove it.

Change-Id: Ie70aafdb83116e3e3fb7bd96223b0c770e80eb7f
CRs-Fixed: 3500205
2023-07-26 21:24:51 -07:00
Vinod Kumar Pirla
160f06923c qcacmn: Call OSIF callback to update BSS info on each link
Notify OSIF about each connected link once assoc VDEV connection
is completed, call the ops callback registered while filling
kernel data structure for each link.

Earlier post connection each VDEV's OSIF callback is called to notify
individually, but this leaves the OSIF unaware of standby link details
as the standby link doesn't have VDEV associated with it.

Change-Id: I027b91d02bdc4412400a7e66f11911da149e672b
CRs-Fixed: 3556378
2023-07-26 10:53:07 -07:00
Vinod Kumar Pirla
1049b376f7 qcacmn: Introduce OSIF ops callback handler pointers
The ops are called on BSS info to be updated to OSIF and
to call for MAC address update on particular VDEV

Change-Id: Ib7b07e6ea2927c365298555ed6f24377127ddd4a
CRs-Fixed: 3556338
2023-07-26 10:52:56 -07:00
KARTHIK KUMAR T
63bf6f5d07 qcacmn: Added code to include rx packet tlv hdr
Added code to include rx_pkt_hdr_tlv in
rx packet tlvs header

Change-Id: I0609cf94e3b53cf625f7c347d86e42fe815e452e
CRs-Fixed: 3563009
2023-07-26 10:52:45 -07:00
Vinod Kumar Pirla
356ed4f407 qcacmn: Use ml dev context to deinit epcs ctx
The MLO dev context in VDEV is already made to NULL as
part of VDEV destroy and dereference of MLO dev ctx from
VDEV results in NULL pointer exception.

Change-Id: Idbbd625998aa09194ca533b0c8df2fd8e6d16d76
CRs-Fixed: 3570602
2023-07-26 10:52:34 -07:00
Deeksha Gupta
d47c717a77 qcacmn: Fill connect response MLO params from mlo_mgr
After mlo connection is completed driver send the connect resp event
to kernel. As of now, driver gets the ML param info from the assoc_rsp IE.
For stand_by link, driver don't have vdev. Due to this, driver can't send the
stand_by info to kernel.

Fix is, instead of assoc_rsp IE driver will use mlo_mgr to get the links
information.

Change-Id: I8da762bed94de4ad2b024183c09b3d0a0f1b7ca4
CRs-Fixed: 3530712
2023-07-26 04:40:24 -07:00
Priyadarshnee Srinivasan
eeeb952b15 qcacmn: Address incorrect radarfound frequency computation
In Pebble (11BE qcn6432 chip), the radar-found frequency is
incorrectly computed in the current implementation as
dfs_translate_radar_params is executed.
The translation function (dfs_translate_radar_params) which 
alters the frequency offset is needed for pre-11BE chipsets.
For 11BE chips where
wmi_service_radar_found_chan_freq_eq_center_freq
service is advertised by HALPHY, the frequency translation is not
needed as the offset sent by FW in wmi_dfs_radar_detection_event_id
can be directly used.

CRs-Fixed: 3562464
Change-Id: I824b94ca764d6bd62a67feb38ba3ccc966999e90
2023-07-26 04:40:12 -07:00