Gráfico de commits

19909 Commits

Autor SHA1 Mensagem Data
KARTHIK KUMAR T
39bb6afc38 qcacmn: added MLO MCAST packet stats
added MLO MCAST packet stats in tx stats

Change-Id: I46ad1a94bf986d21a9b865d7531298e805abcda8
CRs-Fixed: 3582328
2023-08-16 13:36:26 -07:00
Mukul Dhiman
0ad05f4a1a qcacmn: aggregate vdev stats in to mlo ctxt at vdev detach
aggregate vdev stats in to mlo ctxt at vdev detach

Change-Id: I002e48e4b95a32a0ff58e3e1cc26ea97d94f7a5d
CRs-Fixed: 3572527
2023-08-16 02:17:17 -07:00
Namita Nair
f06f5e0791 qcacmn: Fix TX completion configurations
Currently when OPT_WIFI_DP is enabled, dp_tx_get_queue()
sets the ring_id always to one ring. This could potentially
affect the Tx data rates. This change is to ensure
all the Tx data rings are used.

Change-Id: Ib1ecf7f36f6967c0edf947d6310d6ae7caf43e5b
CRs-Fixed: 3577829
2023-08-16 02:17:06 -07:00
Adwait Nayak
9c55f0cc3c qcacmn: Add pdev_id for word mask subscription
Add missing argument pdev_id in dp_mon_rx_wmask_subscribe
to avoid compilation issue.

Change-Id: I3a13163d062c93f67ba0101b881f48ab239a585f
CRs-Fixed: 3551975
2023-08-15 17:52:55 -07:00
Adwait Nayak
7ce350b5a0 qcacmn: Do not enable word compaction for pktlog
Recently, Word compaction is by default enabled as part
of all monitor mode realated features. Due to which, while
parsing the pktlog data, multiple TLV parsing errors are seen.
Hence, with this change word compaction is disabled if pktlog
is enabled.

Change-Id: I35153f74da2de5978b225ced7f8c1112f3aff3b2
CRs-Fixed: 3551975
2023-08-15 17:52:45 -07:00
Nandha Kishore Easwaran
15812b8137 qcacmn: Optimize tx completion processing in fast path
Optimize tx completion processing in fastpath by adding the list of
tx descs to the free list directly instead of individually accessing
each descriptor and adding it to free list. This gives advantages of
not taking descriptor pool lock for each descriptor and rather takes
the lock only once when appending the whole list of descs to the
free list.

Also removed unused member shinfo_addr from tx_desc structure. Removal
of this member enables increase of flags type from u16 to u32 without
increasing the size of tx_desc structure. These changes improved peak
KPI by 2% in SFE mode.

Change-Id: I995de9cc08c866ad6e1cd1efc76ac2a35d40fb7c
CRs-Fixed: 3584578
2023-08-15 15:09:54 -07:00
Prakash Manjunathappa
fb7d334b7c qcacmn: Mitigate the slab allocation failures with __GFP_DIRECT_RECLAIM
__qdf_nbuf_frag_alloc fallback allocation using alloc_skb slab
allocation, use GFP_KERNEL flag which is inclusive of
__GFP_DIRECT_RECLAIM. This will mitigate the allocation failures.

Change-Id: Ib852bf0f812839f0a99093855cebc928d0c79fd1
CRs-Fixed: 3585716
2023-08-15 00:44:52 -07:00
Amit Mehta
b7b5ec0c8a qcacmn: Do not set ref count as 1 for MLD peer
During dp_vdev_flush_peers after peer unamp ref_cnt
for peer is set to 1. Which in case if peer unamp
for MLD peer is called before link peers from dp_vdev_flush_peers,
it will result in MLD peer delete before link peer.

To avoid MLD peer delete before Link peer, after peer unmap
in dp_vdev_flush_peers do not explicitly set ref_cnt as 1
for MLD peer.

Change-Id: If7ab63eb213dc482205f3847f0b32e246ca76d51
CRs-Fixed: 3585860
2023-08-15 00:44:40 -07:00
Namita Nair
aa4f14ce5a qcacmn: Add check to find IPA iface_ctx based on vdev_id
IPA APIs currently depend on the net_dev value to distinguish
between the IPA iface_contexts, during setup and cleanup calls.
Due to single net_dev multi vdev change, this check is not
valid anymore and causes overwrite of the IPA iface contexts.
This change adds a check to also compare the vdev_id along with
net_dev to properly distinguish between the iface contexts.

Change-Id: Ifa9bad267d26957f61f9c82644753278d2be1cd0
CRs-Fixed: 3576347
2023-08-14 21:57:59 -07:00
Surya Prakash Raajen
6aa15982ae qcacmn: Do mlo register only for mlo capable soc
Do mlo register only for mlo capable soc, since non mlo
chips also could be part of mlo capable target

Change-Id: Ibef1899257f60a00ba3933af44efdb736550b9e4
CRs-Fixed: 3582269
2023-08-14 18:57:18 -07:00
Shiva Krishna Pittala
f796368068 qcacmn: Remove the assumption of assoc link's presence post connection
With MLO link removal, AP can remove a link that happens to be the assoc
link for a given Non-AP MLD. So far, the Non-AP MLD has been using the
assoc link to interact with other layers and make various decisions.
Change those behaviors on a case-by-case basis.

CRs-Fixed: 3577559
Change-Id: Iaa001bdd2571bce424a953caa3197a99a6f84180
2023-08-14 18:57:08 -07:00
Amit Mehta
2c0fb4ffc6 qcacmn: Set enable_rpm earlier in hdd_wlan_start_modules
Currently enable_rpm is being set in hif_rtpm_start
which is called later in hdd_wlan_start_modules,
this can result in race between hif_rtpm_start
and hif_rtpm_put.

To fix the issue set enable_rpm earlier to avoid
race condition.

Change-Id: Iaa4ffda4eef3050f43ff5ca2bdba555abb8a0b47
CRs-Fixed: 3581962
2023-08-14 15:22:33 -07:00
Rahul Gusain
94ce1bb20d qcacmn: Exchange CSID cap and GTK param
To support group NDP security, WiFi-HAL and firmware introduces
two new parameters (csid_cap and gtk_required) in NDP initiator
request, responder requestor and NDP indication event.

Host driver will retrieve the CSID capabilities and GTK parameter
and parse it to firmware in NDP Initiator and Responder request
TLV. Also, driver extract these parameters from NDP indication TLV
and will pass to Wifi-HAL in vendor event.

Change-Id: I23483141219e4224bb76ed209aee46e131eaa747
CRs-Fixed: 3583154
2023-08-14 15:22:21 -07:00
Rahul Gusain
56ee84d4e4 qcacmn: Add QCA vendor attributes for NDP setup
QCA vendor extension is used for NDP setup. This defines the new
attributes QCA_WLAN_VENDOR_ATTR_NDP_CSIA_CAPABILITIES and
QCA_WLAN_VENDOR_ATTR_NDP_GTK_REQUIRED to support GTKSA, IGTKSA,
and BIGTKSA for NDP setup.

Change-Id: Iddd9d0f88d1d5d66fd72dc158801ad16c14f39e2
CRs-Fixed: 3583158
2023-08-14 15:22:09 -07:00
Jianmin Zhu
a36af132e6 qcacmn: Fix assert when send ll_stats during suspending
When WoW enable cmd has been sent to F/W, but no ack from F/W yet,
UNIFIED_LINK_STATS_GET_STA is sent over WMI, assert will happens.

To fix it, once WoW enable cmd has been sent to F/W, don't allow
UNIFIED_LINK_STATS_GET_STA sent over WMI.

Change-Id: I13271e88310bc510a9c7668d193f6e776554a442
CRs-Fixed: 3585971
2023-08-14 03:17:35 -07:00
Sachin Kohli
689990d5df qcacmn: Increasing PPE2TCL ring size
Increasing PPE2TCL ring size from 2K to 8K

Change-Id: I6b76a341ba99e522a86477ff48d50b2682c5974f
CRs-Fixed: 3576181
2023-08-14 03:17:24 -07:00
Jinwei Chen
dcad508db8 qcacmn: remove QDF_ASSERT warning for htc packets sending
If WMI cmd sending and runtime PM suspending happened at same time,
there is chance get_htc_send_packets_credit_based() report warning
to dmesg, this warning info is not much helpful.

Use one line print instead to avoid confusion.

Change-Id: Ia71657876b25cb180abba28b107553a99d015358
CRs-Fixed: 3583473
2023-08-13 23:59:46 -07:00
Aasir Rasheed
0cd3985fb6 qcacmn: Register pmo handler for twt
Register pmo handler for twt to prevent WMI from
crashing due to concurrent WMI_WOW_ENABLE_CMDID
and twt requester enable commands during suspend.

Change-Id: Ifeef52f7a758020e8599a056f9b3f03455e96def
CRs-Fixed: 3580088
2023-08-13 23:59:34 -07:00
Kenvish Butani
6939ceceb0 qcacmn: CDP API's to support MLO Dev context
Add support of CDP API's to create, attach,
detach and destroy MLO device context
structure in Datapath

Change-Id: I0c2019b70f12639de949ebe5bec44f1f202cff6b
CRs-Fixed: 3566879
2023-08-13 23:59:24 -07:00
Kenvish Butani
8e969e5393 qcacmn: Add Support for MLO device Context Struct
Add support for below operations for MLO device
context structure.
1) Allocate MLO device structure
2) Attach vdev to MLO device structure
3) Detach vdev from MLO device structure
4) Free MLO device structure

Change-Id: Ifc282a5a04657aa618e0dac6a64d118aa8a8f422
CRs-Fixed: 3566880
2023-08-13 23:59:12 -07:00
Kenvish Butani
ea4ddc65ed qcacmn: CP hooks to support MLO device Context Structure
Control Path hooks to create, attach, detach and destroy
DP MLO device context structure

Change-Id: Ib3fe459dfabb8b8971b92c0529e9df0093bf5342
CRs-Fixed: 3567004
2023-08-13 23:59:00 -07:00
Asutosh Mohapatra
b1ca37af64 qcacmn: Keep bonded channels enabled for SET_FCC_CHANNEL 0/2
Currently host disables all 6 GHz channels and keeps only
STA connected channel enabled. If STA bandwidth is greater
than 20 MHz kernel send disconnect as the bonded channels
are disabled.
Similarly for STA + SAP SCC case, if STA bandwidth is
20 MHz and SAP bandwidth is greater than 20 MHz kernel
sends stop_ap as the bonded channels are disabled.

To address above scenarios, for standalone STA case
keep the bonded channels enabled and for STA + SAP
SCC case keep the bonded channels enabled for STA and
SAP.

Change-Id: I1c4f7fea139ca36f5a61cc514eff779801db57ae
CRs-Fixed: 3580015
2023-08-13 23:58:49 -07:00
Aasir Rasheed
6d13d93bc8 qcacmn: Add api to check if vdev is tdls
Currently we are defining tdls vdev check only
for 11BE MLO defined macro, However there is a
need to return false if 11BE MLO is not defined.

This change is to check if vdev is tdls.

Change-Id: Ic44c66fcc585f3d091d21d40c106913db29b0a1e
CRs-Fixed: 3586960
2023-08-13 23:58:38 -07:00
Sheenam Monga
cdcfc4efcc qcacmn: Add support to send CP stats req
Add support to send CP stats request for
type TYPE_REQ_CTRL_PATH_RRM_STA_STAT.

Change-Id: Ibf83c71e9a81cfb127ddc187e6f8960f6d04fddb
CRs-Fixed: 3583928
2023-08-13 23:58:27 -07:00
Sheenam Monga
2ba3bfc4f7 qcacmn: Add support to extract RRM sta stats
Add support to extarct sta stats from WMI_CTRL_PATH_STATS_EVENTID
by extracting wmi_ctrl_path_sta_rrm_stats_struct data

Change-Id: I7235b8cb0237d828b0fe5e5eab0feadc016d9269
CRs-Fixed: 3583920
2023-08-13 23:58:15 -07:00
Shwetha G K
03f89b0b85 qcacmn: Return error when aoa_caps tlv is NULL
Return error status when FW does not share aoa_caps

CRs-Fixed: 3586316
Change-Id: Iea7c49e9332a969286ff612ed8c2b527b9a29c85
2023-08-11 14:59:56 -07:00
Priyadarshnee Srinivasan
bdf7db0a32 qcacmn: Modify wmi_nofl_info_high definition
Modify wmi_nofl_info_high definition to print only if
QDF_TRACE_INFO_HIGH_NO_FL debug level is set.

CRs-Fixed: 3570322
Change-Id: I879a9d917ff698aeb6b3e53a85c765a74a902b36
2023-08-11 14:59:45 -07:00
Guru Pratap Sharma
84562049b6 qcacmn: Adding lock in epcs info structure
Adding lock in epcs info structure to achieve synchronization
in epcs state etc

Change-Id: I76b35075f2ecdfba64d4df5ea06c898f5be059e8
CRs-Fixed: 3583860
2023-08-11 14:59:35 -07:00
Amruta Kulkarni
712aff4786 qcacmn: Add check for frame boundary check in t2lm api
While parsing t2lm ie pass the frame length and add
check for frame boundary.

Change-Id: Iebb2cb5f0756785e4698613b80bfb31d60a2ed80
CRs-Fixed: 3577156
2023-08-11 04:36:05 -07:00
Manikanta Pubbisetty
bb3b798604 qcacmn: Fix compilation issues with NAPI stats on WCN6450
Fix compilation issues with NAPI stats on WCN6450

Change-Id: I0339a510c715009255bc00841d44bd06357b252b
CRs-Fixed: 3583455
2023-08-11 04:35:54 -07:00
Manikanta Pubbisetty
3ed7d8972c qcacmn: Update TX completion status parsing for WCN6450
Update TX completion status parsing for WCN6450 based on the latest
firmware interface.

Change-Id: I008631ee23990c7209af075b618bea6c1d602eb8
CRs-Fixed: 3583696
2023-08-11 04:35:44 -07:00
Manoj Ekbote
b9322f12bd qcacmn: Support for RF path selection
Includes changes:
1. Save frequency values from EXT and EXT2 events to psoc object
- wireless_modes, low/high 2 GHz chan and low/high 5 GHz chan from EXT event
- wireless_modes_ext, similar frequency range fields with _ext from EXT2
event. Frequency range fields with _ext are non-zero when a radio supports
overlapping frequency. Eg.Radio that supports 5 GHz full and 5 GHz high band will
have low/high 5 GHz fields populated with primary band values in EXT event and
low/high 5 GHz fields are populated in EXT2 event with secondary band
values. These values are stored in tgt info for later use.
2. Modify regulatory APIs to get and set the wireless modes in reg
component
3. Retrieve frequency fields from EXT2 event

Change-Id: I49ebcc7ee7b26bd115f37abc8cb5b6fa5a415eda
CRs-Fixed: 3576551
2023-08-11 01:24:54 -07:00
Chaithanya Garrepalli
d1d1770bd9 qcacmn: Add API to get phy_ppdu_id in RX pkt tlv enabled
In case of WORD MASK subscribtion enabled, get phy_ppdu_id
from RX pkt hdr tlv in case PKT_TLV_HDR is subscribed.

Change-Id: I40e1b01c2f52404872c39df6d9faa57a95dad5c2
CRs-Fixed: 3582126
2023-08-11 01:24:43 -07:00
Pragaspathi Thilagaraj
5a0e761ce4 qcacmn: Reset Roam state for link vdev after link switch
After link switch, the assoc vdev and link vdev could change.
So once the link switch is complete, change the roam state to
DEINIT for the link vdevs

Change-Id: I3e583fc1cb5be8d17d8680dab96461b058740c0a
CRs-Fixed: 3581730
2023-08-11 01:24:31 -07:00
Himanshu Batra
f86703892d qcacmn: Add qdf API for dev_hold
Add qdf API for dev_hold

Change-Id: I585e6781718fd55e8359906e5355f068376406c2
CRs-Fixed: 3579431
2023-08-11 01:24:21 -07:00
Rakesh Pillai
d97cfce6b4 qcacmn: Move REO_CMD desc field set to structure dereference
Currently for beryllium targets, 64-bit field shift/mask
is used to set REO_CMD entry values.

For peach target, the HW header files provide only 32-bit
shift/mask macros, which does not work with the existing code.

Move the REO_CMD descriptor field set to structure field
dereference instead of bit field shift/mask.

Change-Id: Iec9a1618fc6c995aa0939badb4368a4c389fcbca
CRs-Fixed: 3584239
2023-08-10 18:23:01 -07:00
Uraj Sasan
082bbef13c qcacmn: WDS STATION send bridge partner details
Send bridge partner details during peer create and peer
assoc. The partner of bridge peer are saved which are used later
during bridge peer create and assoc. Also add bridge peer partner
details while sending peer create and assoc on actual links.

CRs-Fixed: 3574656
Change-Id: I755614a131f6552ac28377d2c7648db4fd87b8df
2023-08-10 18:22:50 -07:00
Ruben Columbus
ea44c5ab75 qcacmn: assign dump functions to per chip specific
1. add more function pointers for the remainder functions which are
generic
2. assign functions to per chip level
3. prevent using generic rx_pkt_tlv struct and using at a per soc
specific instead

Change-Id: I1cefb10c7a70f04dbf8b110fcfee6f1c9f4ab1a0
CRs-Fixed: 3533521
2023-08-10 18:22:40 -07:00
Manikanta Pubbisetty
7dab708812 qcacmn: Misc fixes in WBUFF module
Miscellaneous fixes in the WBUFF module.

1. Currently in wbuff_buff_put(), if the pool_id/module_id is out of
   bound, NULL is being returned which is wrong. In this case, buffer
   has to be freed by the caller function, therefore return SKB address.

2. Optimizations to wbuff_buff_put()/wbuff_buff_put() if the WBUFF pool
   is uninitialized.

Change-Id: I53264e45a23ac5d51b4b9830d95ef24ceb222072
CRs-Fixed: 3581659
2023-08-10 14:44:00 -07:00
Sai Rupesh Chevuru
98eff70aff qcacmn: skip WDI peer creation and deletion events in STA mode
In the case of STA mode, will be marking bss peer as part of
peer map events during the creation.
Due to this create event will be triggered during the peer creation
as bss flag is not set and there won't be any peer delete event
to bss peer resulting stale entries in mld hash.
Hence will be avoiding creation and deletion events.

Change-Id: I15a78ad0b8a90b34505880af94522abbe1de8fb5
CRs-Fixed: 3581548
2023-08-10 14:43:49 -07:00
Amit Mehta
63979604dd qcacmn: Add memory barrier to avoid inconsistent read for valid flag
Currently there is no memory barrier after valid flag read,
which can result in reading q_elem values in random order,
due to which host can read stale entried from the q_elem.

To fix the issue add memory barrier to avoid inconsistent
read for valid flag.

Change-Id: I9431d4f62188def37c2515e376a28f3985733f85
CRs-Fixed: 3577746
2023-08-10 14:43:39 -07:00
Manikanta Pubbisetty
882184c8f1 qcacmn: Increment TX enqueue stats on Rhine targets
Increment TX enqueue stats on Rhine targets.

Change-Id: I526ee8e1e1b2e8aa10e5c7a1c7dad2c45d236ba2
CRs-Fixed: 3574412
2023-08-10 14:43:28 -07:00
Deeksha Gupta
a2ccbeff4e qcacmn: Select best ML partner link info based on DBS or SBS mode
Select the best ML partner link based on DBS or SBS mode.

Change-Id: I5d7d9242b32fa4143e7bec5b9692689ac257ca4d
CRs-Fixed: 3530717
2023-08-10 14:43:18 -07:00
Thirusenthil Kumaran J
433eb772d1 qcacmn: Limit AFC maximum bandwidth in AFC list
Currently, maximum bandwidth in AFC channel list is set to 320 MHz.
Since 320 BW is supported only in 11BE mode, setting the maximum
bandwidth to 320 for devices that does not support 320 BW is not
correct.

Hence, to fix this issue, limit the Maximum AFC BW based on whether
the radio supports 11BE or not.

Move the puncture bitmap validation for 320 MHz BW in the API
'reg_get_320_bonded_channel_state_for_pwrmode' to within the
CONFIG_REG_CLIENT compilation flag. This validation of puncture
bitmap is currently done only for 320 MHz BW. The API used for lower
BW does not consider puncturing. This causes inconsistency in the
behaviour between 320 MHz BW and lower BWs.

Since the validation of puncture pattern is done separately for WIN,
add a WIN specific empty stub function.

Change-Id: Icbbbcae3fef2336df02291c5218d89942f3f1b68
CRs-Fixed: 3560313
2023-08-10 14:43:07 -07:00
Pragaspathi Thilagaraj
cbefdcb9f0 qcacmn: Add support for WMI_ROAM_SYNCH_KEY_EVENTID
Add support to handle WMI_ROAM_SYNCH_KEY_EVENTID.
WMI_ROAM_SYNCH_KEY_EVENTID is received after roaming to 3 Link
MLO AP when standby link is supported.

Add changes to register handler function pointers and parse
the event.

Change-Id: Iee17560f9f1f3242ef512a550764a9c64319b67f
CRs-Fixed: 3571673
2023-08-10 14:42:56 -07:00
Karthik Kantamneni
6e1fe7f344 qcacmn: Reset nbuf data pointer properly in RX fast path handling
Currently RX nbuf data pointer is reset considering
headroom reserve size of NET_SKB_PAD. So while reattaching
buffer back to H.W always data pointer is reset back to head plus
NET_SKB_PAD offset. But if skb is not allocated with head room
reserve then we should not reset data pointer taking NET_SKB_PAD
as consideration.

Fix this by pushing nbuf data pointer back to the state when
nbuf entered the host.

Change-Id: Ie96f99fdd92deaa921619a45cd5993a42f7b8f6e
CRs-Fixed: 3582873
2023-08-10 14:42:45 -07:00
Paul Zhang
6ca876877a qcacmn: Ignore QDF_STATUS_E_ALREADY when vdev creating
Per PDT testing, when vdev creating, the variable rsp_timer_inuse
is set, it is abnormal and causes fw crash. Since the variable
rsp_timer_inuse will be initialized later in function
target_if_psoc_vdev_rsp_timer_init. So ignore status
QDF_STATUS_E_ALREADY in function mlme_vdev_obj_create_handler.

Change-Id: I48c622d99f1a0686dfa7725fb69116a5ab8a1e58
CRs-Fixed: 3574858
2023-08-10 05:13:55 -07:00
Nandha Kishore Easwaran
1f24545139 qcacmn: Suppress MLD print
Suppress MLD print since this print is unrelated for
non-mld platform.

Change-Id: I4cf04001d3f0e3c1c63b27adc5a71cc627a382fd
CRs-Fixed: 3582264
2023-08-10 05:13:44 -07:00
Vishal Miskin
9c509a66de qcacmn: Add QCA vendor attributes for user defined power save params
Extend QCA_WLAN_VENDOR_ATTR_CONFIG_OPTIMIZED_POWER_MANAGEMENT
attribute to support enum qca_wlan_vendor_opm_mode.

Add QCA vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_ITO and
QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_SPEC_WAKE to configure inactivity
timeout and speculative wake interval in User defined optimized
power save mode.

Change-Id: I726ca91638e07fd1efae4921519bb6affc8b9c21
CRs-Fixed: 3567041
2023-08-10 05:13:32 -07:00
Manikanta Pubbisetty
3ac14805dd qcacmn: Fix issue with IRQ re-enablement for CE IRQs
Currently on WCN6450 which is based on IPCI, there is a problem
in re-enabling the IRQs while firmware recovery is in progress.

While processing the CE IRQs, if there’s an active recovery
happening in the host (due to FW assert), we are leaving the IRQs
disabled in the kernel.

Fix this by refactoring the code such that hif_irq_disable() is
called only when there is no active recovery.

Change-Id: I4e3ccbb5f820645597feb724ddfe321e7d7d1a5f
CRs-Fixed: 3579429
2023-08-10 05:13:21 -07:00