Commit Graph

18145 Commits

Author SHA1 Message Date
Srinivas Dasari
75dd9dfa21 qcacmn: Add link beacon also to connect resp structure
When firmware attempts roaming to an MLO AP, it tries to find
the complete ML info(all links info) either through ML probe
response or beacons from all the links. It forwards all link
beacons(or ML probe response) to host as part of roam sync
indication through roam sync frame event. The link beacon frame
needs to be fetched from roam sync indication and cache it in
connect resp to use it while link connect in roaming cases.

Add a new param in connect response structure to facilitate this.

Change-Id: Ib015728c8ee880337c4d1fdadc373c9e52247b55
CRs-Fixed: 3342433
2022-11-25 08:18:14 -08:00
Devender Kumar
ef32f35aed qcacmn: Fix for Header File inclusion
Compilation is failing due to Missing definition
of KERNEL_VERSION as the Header file is added
before including <linux/version.h>.

Fix is to move the Header file at the end.

CRs-Fixed: 3338337
Change-Id: I83fc448becc4af81df9b4c7b3fe9193875c7f6f1
2022-11-25 00:08:34 -08:00
Pavankumar Nandeshwar
a2ddd8956b qcacmn: Retain ds ring indices across wifi restart
Retain ds ring indices across wifi restart to avoid
edma hang. Fetch the indices from ds module and set
the corresponding ds ring indices.

Change-Id: Ia299a7006166aef096c7d2c1f65f6bef65415a37
CRs-Fixed: 3332152
2022-11-25 00:08:26 -08:00
Asutosh Mohapatra
4f77d1f3c1 qcacmn: Optimize log prints
Optimize log prints in extract_reg_chan_list_ext_update_event_tlv.

Change-Id: I3a4242873486d914e15a9f3940e9e4fb59814cf8
CRs-Fixed: 3338254
2022-11-24 01:22:55 -08:00
Surya Prakash Raajen
572d9ff24e qcacmn: CFG section defines for 6 GHz low & high bands
CFG section definitions for 6 GHz low & high band for
ini configurations. These new definitions enables us to
configure the unique INI parameters for 6 GHz low and 
6 GHz high band, for new solution of Split-phy in 6 GHz.


Change-Id: I1417dee90f0aebe31f24a64017d9203b74dfc886
CRs-Fixed: 3332719
2022-11-24 01:22:46 -08:00
jinbaoliu
161650dffa qcacmn: Fix failing to distinguish between EAPOL M2 and M4
Currently we distinguish EAPOL frames by taking the secure bit in key
information field into account. This is sometimes error because for WPA
handshake M3/M4 secure bit is 0 (GTK is not included in M3) whereas for
WPA2 handshake M3/M4 secure bit is 1 for WPA2 handshake. This change uses
the ack bit in key information field to differentiate M1/M3 from M2/M4,
then uses the key data length as well as Key Mic and Encrypted Key Data
in key information field together to identify EAPOL M2 and M4 frames.

Change-Id: Iac88bc5b942415edee08dc4a98dbd4e811cb8604
CRs-Fixed: 3327876
2022-11-23 23:40:03 -08:00
Nidhi Jain
be0e54e189 qcacmn: Update T2LM negotiation values for wlan_t2lm_enable
This change updates the T2LM negotiation values for wlan_t2lm_enable.

Change-Id: I17e2d0e99eb383f072f5595c524156265274a194
CRs-Fixed: 3306992
2022-11-23 21:52:12 -08:00
Amir Patel
af0472aa08 qcacmn: Update PPDU drop counter
Update PPDU drop counter from monitor ring

CRs-Fixed: 3341905
Change-Id: I63f5b4d6a3e1e0155cf0558bea18704df073e2a9
2022-11-23 21:52:03 -08:00
Yeshwanth Sriram Guntuka
2a525d7545 qcacmn: Add id for QMI component
Add QMI component entry in object manager debug id
and umac component id.

Change-Id: Ib2531ee9cc91f721214f9e30b6b25cb7f3e89a42
CRs-Fixed: 3338296
2022-11-23 13:55:08 -08:00
Amit Mehta
46a5d43615 qcacmn: Vendor attribute to configure QoS/AC upgrade for UDP frames
Introduce a new attribute to configure access category
override for UDP frames of BE/BK category. Unlike, the
earlier attribute QCA_WLAN_VENDOR_ATTR_CONFIG_UDP_QOS_UPGRADE
which will override for all UDP frames, this attribute is
for overriding only for BE/BK based UDP frames.

CRs-Fixed: 3332609
Change-Id: Ife6104b97bca83653fdcac31f2c91007d1aa6f2a
2022-11-23 10:52:49 -08:00
Srikanth Marepalli
7c94f932be qcacmn: A vendor roam control configuration for delaying hand off for RX
Introduce a run time roam configuration for "hand off delay for RX".
This value, in milliseconds, will delay the hand off for the specified
time to receive pending RX frames from the current BSS.

Change-Id: I961109a2f9287a611ae8f4b38e2ea824ecf9c559
CRs-Fixed: 3329952
2022-11-23 04:42:57 -08:00
Adwait Nayak
8775c73843 qcacmn: Enable hybrid mode for QCN9224
Enable hybrid mode specific handlers

Change-Id: I764c56c217b951424d699d6861ef8771496dd592
CRs-Fixed: 3339154
2022-11-23 04:42:49 -08:00
Pavankumar Nandeshwar
ab2bd061c2 qcacmn: Enable wbm2sw_release ring for ppe2tcl ring
Enable wbm2sw_release ring for ppe2tcl ring to
handle tx completions

Change-Id: I38e81bb46e376e3f059f321454aa4d241e6aadb7
CRs-Fixed: 3309444
2022-11-23 02:15:55 -08:00
Abhishek Singh
84e3277bc8 qcacmn: Limit join timeout try to 1 for MCC concurrency
Currently join timeout is retried 2 extra time which can lead
to unsuccessful connect time of about 9+ sec, this lead to
beacon miss on the MCC concurrency.

So reduce it to 1 try to limit connect time to around 3+ sec in
case of candidate freq can lead to MCC concurrency.

Change-Id: I642a7acd1e2a49308836bd1bb6c77ab1aeb110e4
CRs-Fixed: 3328642
2022-11-22 20:34:40 -08:00
Amruta Kulkarni
b6ca1b3ff2 qcacmn: Add null check in osif roam api
Add null check in osif_roam_auth_mlo_links api.

Change-Id: Ia3290fe3b51d8913f212c732a6c53b0a159adfc3
CRs-Fixed: 3337588
2022-11-22 20:34:32 -08:00
Mohammed Ahmed
2f2d0e141c qcacmn: Add break in case statement
Case statement is missing a break between cases.

Change-Id: Iedba605d2fdd0f111730bc2f9f02bb89bdb6c834
CRs-Fixed: 3343781
2022-11-22 18:45:12 -08:00
Himanshu Batra
d729483efc qcacmn: Add fix to avoid deadlock in back to back connect
Add fix to avoid deadlock in back to back connect handling

Change-Id: I831a64f14270dceb9e7cfae2f9d4b05fec99d8d2
CRs-Fixed: 3342240
2022-11-22 15:51:02 -08:00
Deeksha Gupta
4ff65dc760 qcacmn: Parse 11be capable beacons if DUT is not 11be enabled
Currently, in driver, if DUT fw does not support 11be,
11be capable beacons will not be parsed in the scan result.
But driver can have 11be capable parsing even when target
is not capable of 11be. This may be helpful in understanding
OBSS and ACS kind of scenarios.

To fix, driver will parse 11be capable beacon in the scan result.

Change-Id: I1eb4d60c8a7513a01126575dd9c4fc4f1a4ee6e0
CRs-Fixed: 3296848
2022-11-22 15:50:55 -08:00
Jianmin Zhu
1aaeca79da qcacmn: Fix link peer is deleted before assoc peer
When vdev1 connected, if find vdev0 isn't connected, disconnect vdev1 in
async way by sending msg to scheduler thread, and disconnect vdev0 cmd is
enqueued to serialization before disconnect vdev1 cmd, so vdev0 assoc peer
delete happens before vdev1 link peer, F/W assert happens.

To fix it, when vdev1 connected, if find vdev0 isn't connected, disconnect
vdev1 in sync way, and let disconnect vdev1 cmd enqueue to serialization
queue header instead of tail, make sure it is activated befored disconnect
vdev0 cmd.

Change-Id: I80b1c8f6528bdd58e953851e164e5bfce2b3bd4a
CRs-Fixed: 3339030
2022-11-22 13:51:30 -08:00
Nanda Krishnan
dce586be60 qcacmn: Using pdev_wmi_handle instead of wmi_handl
Using pdev_wmi_handle instead of wmi_handle in
target_if_peer_set_ppe_default_routing

Change-Id: I7eb94d2b92078c55f2c03f4ccd57d124d3229053
CRs-Fixed: 3341573
2022-11-22 12:12:15 -08:00
Will Huang
ed050b6f1a qcacmn: Populate pdev secondary_cur_chan_list for mobile device SAP
secondary_cur_chan_list channel list is for mobile device SAP, which
by default cannot enable on LPI channels, and cannot enable on SP
channel until AFC server response received.

Populate 6 GHz channels to secondary_cur_chan_list based on 6 GHz
regulatory rules of current country, LPI channel will not be added
in because it is not allowed for mobile SAP. And update 6 GHz SP
channel attributions if received AFC response.

Also add APIs to populate power attributions of secondary_cur_chan_list
and decide proper 6 GHz power attributions if 6 GHz channel frequency
and bandwidth being selected.

Change-Id: I6aa0228f18f7e31fc3cdd63a98483d02afb0579a
CRs-Fixed: 3204156
2022-11-22 10:22:28 -08:00
Jia Ding
160d6306ea qcacmn: Correct rx_msdu_end_tlv and rx_mpdu_start_tlv len
With CONFIG_NO_TLV_TAGS=n, seeing below values showing in dump.
sizeof(struct rx_msdu_end_tlv) = 136
sizeof(struct rx_mpdu_start_tlv) = 128

Indeed these values match current comments for CONFIG_NO_TLV_TAGS=y.

Therefore correct the comments for rx_msdu_end_tlv and
rx_mpdu_start_tlv length for better readability.

Change-Id: I655f8fb9df09f5f7bb63f4bb2e3f297725354fbe
CRs-Fixed: 3340399
2022-11-22 10:22:20 -08:00
Santosh Anbu
53d2d231fc qcacmn: Add callback to notify if vdev is in mlo_sync_wait
Add vdev callback to notify once the vdev has entered into
MLO_SYNC_WAIT state.

Change-Id: I655bfa68d666807468cacf1a0a052ac6ddf0b8d6
CRs-Fixed: 3338519
2022-11-22 10:22:12 -08:00
Jingxiang Ge
7d007034fb qcacmn: Add debug timestamp for wlan_logging_thread
Add more log for wlan_logging_thread to monitor
thread start/exit.
and also add memory barrier wmb to make sure exit
flag/shutdown_comp have been set done.

Change-Id: I6549f344f50bdd9df3a29c4ab724ea67213670de
CRs-Fixed: 3320274
2022-11-22 07:49:45 -08:00
Divya R
4960c64911 qcacmn: Assign value for ADFS 320 MHz support capability bit
Assign value for ADFS 320 MHz support chain mask capability bit
extracted from WMI event.

Change-Id: I9d96fe9072a390da4d57585358bac516007f9620
CRs-Fixed: 3333937
2022-11-22 04:13:05 -08:00
Shashikala Prabhu
5c88babc02 qcacmn: Define structures for T2LM changes
Add IEEE802.11be specific T2LM structure definition

Change-Id: Ia29ff6dfed1edca60e294c8455c8acef09b3fada
CRs-Fixed: 3333876
2022-11-22 00:41:28 -08:00
Shashikala Prabhu
fc8fedf6df qcacmn: Fix T2LM compilation errors
- Renamed t2lm_provisioned_links as hw_link_map_tid in the T2LM
  data structures.
- Renamed wlan_t2lm_of_tids structure as wlan_t2lm_info.

Hence, added this change to fix the compilation errors.

Change-Id: I969202137adbd5bfb5e910d45514ea9074e9b1b1
CRs-Fixed: 3337530
2022-11-22 00:41:21 -08:00
Shashikala Prabhu
97295e0441 qcacmn: APIs to add and parse TID-to-link mapping action frame
Add APIs to add and parse TID-to-link mapping request, response and
teardown action frames.

Change-Id: Ia1d2c9d28f0dfa11441d5a77d023a8dde2d68db5
CRs-Fixed: 3332736
2022-11-22 00:41:12 -08:00
Shashikala Prabhu
da59d95884 qcacmn: APIs to add and parse TID-to-link mapping IEs
Create wlan_mlo_t2lm.h and wlan_mlo_t2lm.c files for T2LM.
Add APIs to add and parse TID-to-link mapping IEs.

Change-Id: I6ae23a35662185040ad9f5a4d983a16782e3fc35
CRs-Fixed: 3329887
2022-11-22 00:41:03 -08:00
Tiger Yu
8e2032cc6a qcacmn: Ensure the grp_id is not greater than MAX_TA_RA_ENTRIES
Ensure the grp_id is not greater than MAX_TA_RA_ENTRIES to avoid
potential out of array illegal memory access.

Change-Id: I343fffe6078b33d0ec618ea7b4abbfd17c4bb814
CRs-Fixed: 3340482
2022-11-21 02:59:31 -08:00
Ripan Deuri
85e7faff70 qcacmn: Add function to check WDS ext peer
Add function to check WDS ext peer.

Change-Id: Ic29cb04fc2830240854921fe3eeadd03e8171979
CRs-Fixed: 3340244
2022-11-21 00:03:45 -08:00
Tallapragada Kalyan
075b483358 qcacmn: wifi DP TX optimization for RMNET pkts
pkts from rmnet device are sent as SG, we see poor
throughput when transmitting these SG frames using
an MSDU extension descriptor. to resolve this issue
we identify if the frame is from RMNET device and if so
copy the headers from skb linear address to the frag
address and provide the frag address to HW for transmission

CRs-Fixed: 3337822
Change-Id: Ic1b7d9f861dcd4f838509772c45e47d3917fc59f
2022-11-21 00:03:36 -08:00
Nandha Kishore Easwaran
bb7ee725be qcacmn: Add txmon HP TP values in stats command
Add txmon buf and destination ring in HPTP dump command

Change-Id: Ic32d1b355d5fc309225dfc5649ee7f9568a8dca6
CRs-Fixed: 3331176
2022-11-21 00:03:26 -08:00
Karthik Kantamneni
6ef5d59bee qcacmn: Add Runtime PM last busy history support
Add support to record last busy events on RX CEs,
this helps to check how frequent CEs are marking busy.

Add support to display last busy history and runtimepm stats.

Change-Id: I856ce54a2f1c6b26722d27623343fc0a2c202c6f
CRs-Fixed: 3337902
2022-11-20 22:03:28 -08:00
Nidhi Jain
92cfe5ce89 qcacmn: Changes to enable CFR in monitor filter 2.0
This change enables CFR through dp_mon_filter_2_0 path.

Change-Id: Ic83d071dbc7c3dec28f025388753f07b7dba2fa5
CRs-Fixed: 3337540
2022-11-20 22:03:19 -08:00
Linux Build Service Account
aba8eb07d0 Merge "qcacmn: Avoid read access to IPA TX doorbell address" 2022-11-20 06:53:45 -08:00
Linux Build Service Account
b32b979e35 Merge "qcacmn: Add changes to support link_id param in cfg80211_disconnected" 2022-11-20 06:53:45 -08:00
Linux Build Service Account
9345e3e5b3 Merge "qcacmn: Array Indexing after validating 'ce_id'" 2022-11-20 06:53:44 -08:00
Jia Ding
a606a71b1e qcacmn: Avoid read access to IPA TX doorbell address
Below signature is seen on sdxpinn when HOST reads IPA TX
doorbell address, which leads to HLOS crash.

Internal error: synchronous external abort: 96000010

Indeed IPA TX doorbell address is write-only. Behaviors
on such read access violation is arch-dependent. On
certains platforms, such violation is ignored but read
returns 0.

Hence remove the read access to IPA TX doorbell address
in hal_srng_dst_init_hp() to avoid arch-dependent
behavior.

Change-Id: I3486cd81741922e697e2b3d307db3209b710aa6a
CRs-Fixed: 3339302
2022-11-19 21:55:01 -08:00
Himanshu Batra
80db72a890 qcacmn: Add changes to support link_id param in cfg80211_disconnected
As part of MLO dynamic link deletion handling, cfg80211_disconnected is
taking link_id as an argument.
Add changes to support link_id param in cfg80211_disconnected.

Change-Id: Ia312b5e5768ba9abb11675839e912d4819a2fa86
CRs-Fixed: 3315102
2022-11-19 20:11:05 -08:00
Yeshwanth Sriram Guntuka
1d310855fa qcacmn: Add QMI module id
Add module id for QMI.

Change-Id: I44f363b45a6e43ebdf9a43ca266694e6e832f87b
CRs-Fixed: 3338288
2022-11-19 05:48:08 -08:00
Pavankumar Nandeshwar
a7ec0b569c qcacmn: Enable ppe ds by default through ini
Enable ppe direct switch feature by default
through ini, and rename the ppe_enable parameter
to ppe_ds_enable

Change-Id: I574838394ab9edd0445f65f81f05566967208276
CRs-Fixed: 3339167
2022-11-19 03:54:54 -08:00
David Oladunjoye
3ccef6c0a6 qcacmn: Fix list iterators to match upstream discussion
List iterators should conform to upstream discussion. List iterators that
reach end of list do not point to NULL but rather they point to list_head.
Dereferencing the iterator in this case would break the list. The scope of
the list iterator should be confined to the loop. Solution is to use assign
ptr to iterator when condition is met, this ptr can be used outside of the
loop.

Change-Id: I896b85bbd24b63e6b1562d35ffec8abc920f1b6d
CRs-Fixed: 3331681
2022-11-19 01:03:24 -08:00
Liangwei Dong
e3496e0420 qcacmn: Do not process MLO ie if no EHT ie
Some AP/GO includes MLO IE but no EHT IE, do not process
MLO IE if no EHT IE

Change-Id: Ia79fda0093f16acd0eff1f526c45e6cfd1d454dc
CRs-Fixed: 3323054
2022-11-18 17:25:44 -08:00
Krunalsinh Padhar
97ea3b37d1 qcacmn: Add QCA vendor subcommand to notify about primary netdev
Add a new vendor subcommand
QCA_NL80211_VENDOR_SUBCMD_MLO_PEER_PRIM_NETDEV_EVENT to send notification
to application layer about primary netdev of an MLO peer association.

Also define the attributes present in this subcommand.

Change-Id: I84ba177c5d7155f627d4d3fa86c64c4f9b24951c
CRs-Fixed: 3280634
2022-11-18 13:38:22 -08:00
Divyajyothi Goparaju
7a737732fe qcacmn: Define set params for no host to target conversion
Currently if ENABLE_HOST_TO_TARGET_CONVERSION is defined,
host pdev/vdev set params can be translated to
target pdev/vdev set params through APIs
convert_host_pdev_param_tlv,convert_host_vdev_param_tlv.
If ENABLE_HOST_TO_TARGET_CONVERSION is not defined,
host pdev/vdev set params in
common code is sent to firmware directly, which is incorrect.

Define pdev/vdev set params in such away they represents
host params on ENABLE_HOST_TO_TARGET_CONVERSION enabled and
target params on ENABLE_HOST_TO_TARGET_CONVERSION disabled.

Change-Id: I5718c76c351b2d7904d8bf8b603073ffcb0a039d
CRs-Fixed: 3321556
2022-11-18 11:52:27 -08:00
Basamma Yakkanahalli
c1bece57dd qcacmn: Handle CU and BPCC for probe and assoc response
Add changes to indicate ongoing critical update CU flags and
BPCC values in probe and assoc/reassoc response.

For beacon FW update the CU flags and BPCC values in impacted
and partner links and keeps the latest copy of BPCC for ML VDEV.
The similar CU indication needs to be considered for probe,
assoc/reassoc response.

FW indicate to host the ongoing CU flag within DTIM interval for
impacted, and latest BPCC values of AP MLDs in impacted
and partner link VDEVs as part of mgmt_rx_event.
Extract cu_vdev_bitmap and bpcc values CU information from
wmi_prb_tmpl_ml_info TLV for probe and assoc / reassoc request.

Pass these values to umac, mgmt and ol layer as part of rx status.
Refer these values to update CU flag in capability information,
and BPCC values to update BSS Parameter Change Count in RNR,
MLIE and per sta profile.

CRs-Fixed: 3301916
Change-Id: I92ededb6598f85f3ea21b9d5e69d182c6180e30d
2022-11-18 00:31:48 -08:00
Vinod Kumar Pirla
f6a2b48634 qcacmn: Add per VDEV dot11 mode in VDEV MLME proto struct
To check the allowed dot11 mode of the VDEV, add new member to
struct vdev_mlme_proto hold this value.

Change-Id: I5bfbff0ab3056013a997744b8e9ce0b4d0a3d43b
CRs-Fixed: 3314403
2022-11-18 00:31:40 -08:00
Vinod Kumar Myadam
238df32c0b qcacmn: Optimize log prints
Current log format has redundant info in wmi_log_cmd_id.
Ex: wmi_log_cmd_id: Send WMI command:WMI_INIT_CMDID command_id:1 htc_tag:0
Optimize the same by removing "Send WMI command" and "command_id"

Change-Id: I394a42033cdef2b5fb51343a1f6f9690a5a41fba
CRs-Fixed: 3328230
2022-11-17 20:22:33 -08:00
Alan Z. Chen
b589f319f9 qcacmn: Add void keyword to function definitions
Add void keyword to function definitions for
ce_service_srng() and target_if_get_ctx().

Change-Id: I4d74600da82a9f13285a496a2136589b698da017
CRs-Fixed: 3336700
2022-11-17 20:22:25 -08:00