Commit graph

10,196 commits

Author SHA1 Message Date
Sai Pavan Akhil Remella
7700a1544e qcacmn: Add mode based flags to channels in PNO request
Currently 6 GHz channel flags are not set for channels
present in the list from PNO scan request but are set for
all other 6 GHz channels which are added when either of the
two below conditions are satisfied
1. Userspace sets NL80211_SCAN_FLAG_COLOCATED_6GHZ flag
in PNO scan request.
2. At least one 6 GHz channel is present in the PNO scan req.

Add flags for channels in the PNO scan request based on the
scan_mode_6g ini configured similar to active scan request.

Add changes to remove the RNR flag for the channel if the
corresponding short SSID entry is present in the RNR db
Cache since if colocated SSID is different userspace doesn't
include corresponding 2.4/5 GHz channel information in PNO
request.

Change-Id: I22c4f7ecf65d4ab09dfbbe126aefe02f9145de42
CRs-Fixed: 3119113
2022-05-15 23:29:35 -07:00
Gururaj Pandurangi
e19169dc46 qcacmn: Reduce logging in get 6G power type for country API
Optimize the checks in reg_get_6g_power_type_for_ctry API to
reduce logging. Logs will appear only during initial connection
and not after parsing each beacon.

Change-Id: I4c4904c4825cd822d119e4ee9b2c69e96612be31
CRs-Fixed: 3094366
2022-05-14 09:12:32 +05:30
Aravind Kishore Sukla
b925919305 qcacmn: Replace kmsg logs to debug logs
Change kernel log level to debug level

Change-Id: Ib2736aff0f653d046d502d460f204bba2247246f
CRs-Fixed: 3182588
2022-05-13 17:01:16 -07:00
Gururaj Pandurangi
b8894c96e2 qcacmn: Allow STA in LPI mode if AP ctry US and advertises LPI
The existing logic is if STA and AP have different ctry code,
and STA is in ETSI, then it operates in VLP mode irrespective
of AP ctry.
New logic would be if AP ctry is US and if it advertises LPI
power type in HE ops IE via beacon, then STA can advance to
LPI mode.

Change-Id: Ifbee7052854277c3d21ccd21b65b79edb5e89f46
CRs-Fixed: 3084589
2022-05-13 12:05:08 -07:00
Gururaj Pandurangi
0b62d7f8ac qcacmn: Allow scan/connection if RF test mode/Safe mode enabled
Currently if AP and STA have different ctry codes, STA should
operate in VLP mode. And if STA ctry code is US, then scan and
connection are not allowed as US VLP is not supported yet.
However, if RF test mode or Wi-Fi Safe Mode is enabled, allow
scan and connection on this AP and STA can operate in LPI mode.

Change-Id: I513657b8e274ef07eb9e9b5fc265722cb01525de
CRs-Fixed: 3079537
2022-05-13 12:05:01 -07:00
Jia Ding
5a4270c914 qcacmn: Add support to calculate uplink delay
Add support to calculate uplink delay on a per vdev basis.
The delay calculated excludes bus delays, where packet
enqueueing time and complete time are fetched from HW release
ring.

Change-Id: I4bbcbf28b197f7a87cb822a841f1f957ebcf063b
CRs-Fixed: 2958833
2022-04-26 16:15:45 -07:00
Jia Ding
80e3b667eb qcacmn: Get buffer_timestamp from wbm release ring
Upon TX completion, get buffer_timestamp from wbm release
ring descriptor.

Change-Id: I0203b51c52a265711e62afc3a940392674ac014a
CRs-Fixed: 2978492
2022-04-26 16:15:37 -07:00
Jia Ding
d7b2a52591 qcacmn: Extend QCA vendor command for TSF to enable and disable auto report
Add TSF cmd to enable and disable automatic TSF report from the target
to the host.

Change-Id: I17b255299f55b8e78968d951824726d533a7c6e9
CRs-Fixed: 2991909
2022-04-26 10:40:22 -07:00
Jia Ding
0c4768e17a qcacmn: Add channel load percentage attribute into QCA vendor command
Add channel load percentage attribute in enum ll_stats_results.

Change-Id: Ib3603730e93d70ab1adc384b0c438f198fc889e9
CRs-Fixed: 2990868
2022-04-26 10:40:16 -07:00
Jia Ding
abc88bbfd1 qcacmn: Add uplink delay attribute in QCA vendor command get_sta_info responses
Add uplink delay attribute in responses of
QCA_NL80211_VENDOR_SUBCMD_GET_STA_INFO vendor command.

Change-Id: I9f1d6f1a8e9135ed18949759a837c866005b43c5
CRs-Fixed: 2990880
2022-04-26 10:46:17 +08:00
Surabhi Vishnoi
b0f7e54d28 qcacmn: Change the log level from info to info_high
Change the log level of addba request from info to info_high.
This is done to reduce the delay due to console logging in
roaming path.

Change-Id: I2f6021bfeca78d5f5ab58d2b3659a0082737ae16
CRs-Fixed: 3132069
2022-04-21 07:13:19 -07:00
Jingxiang Ge
c756f29ff0 qcacmn: Change ce desc history from dynamic to static
As dynamic allocation occupy cnss prealloc memory, which may
cause this prealloc pool to be exhausted.

Move dynamic memory to static.

Change-Id: Ia3500868cbcdbd9676f72a3588462ab0d6a21088
CRs-Fixed: 3171015
2022-04-20 17:51:58 -07:00
Balaji Pothunoori
69fc398887 qcacmn: Add QCA vendor attribute to enable/disable FT over DS
Add QCA vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_FT_OVER_DS
to configure FT over DS to the driver/firmware.

Change-Id: I0745c27c6bc0a8d1075d753f1d898870479105f8
CRs-Fixed: 2968681
2022-04-19 06:17:03 -07:00
Balaji Pothunoori
153cfbb210 qcacmn: Vendor command to config concurrent STA connection policies
Introduce a QCA vendor command to configure the concurrent connection
policies when multiple STA interfaces are (getting) active.

Change-Id: I574880e526e4aa8e179b417fbcba6d7e9e9fcfb1
CRs-Fixed: 2915545
2022-04-19 06:16:35 -07:00
Prateek Patil
0c9c3f05b1 qcacmn: Return if pld_is_pci_ep_awake is not supported
Add check for verifying pld_is_pci_ep_awake support before waiting till
EP vote reset is done after reg completion

Change-Id: I9061c212c115d158aec63464eedcf6ca98e11a56
CRs-Fixed: 3038992
2022-04-14 01:46:31 -07:00
Sai Pavan Akhil Remella
b3decce9b5 qcacmn: Add API to get min_dwell_time_6g configured ini
Added API support to get min_dwell_time_6g configured value
from the ini.

Change-Id: I214871afdde26bd4d7ca9796e264ed9699f5dd58
CRs-Fixed: 3143107
2022-04-12 01:38:31 +05:30
Yu Wang
94ae7751bc qcacmn: skip MBSSID processing if it's not supported
The Multiple BSSID field (Bit 22) in Extended Capabilities indicates
whether MBSSID is supported or not. Skip MBSSID processing if the
field is NOT set in beacon.

Change-Id: Id18318587cb9d26fa6315202b5bbe98ef8870fdd
CRs-Fixed: 3160715
2022-04-11 07:42:48 -07:00
Naman Padhiar
a19907c7ac qcacmn: Use a max of 5 WBM2SW rings for whunt failure
The maximum WBM2SW rings in whunt for MSL is 5 and
the same could be 4 in wlan code which will result
in wcov failure for MSL. Use a maximum of 5 WBM2SW
rings for HSP based on FW_SIM config flag to address
this failure.

Change-Id: I16770566710efeeea7acbb51f6710e7a996b5cac
CRs-Fixed: 3167050
2022-04-05 11:54:23 +05:30
Yu Tian
cf865a8b53 qcacmn: Add an ini control to disable Dynamic GRO feature
Dynamic GRO feature is enabled by default and aimed for specific
customers. Add an ini control to allow other customers to config
this feature enable/disable.

Change-Id: I7f505599327ac131b3cdac9b4d9e038861b1aeb6
CRs-Fixed: 3074689
2022-03-24 14:11:46 +08:00
Amit Mehta
1fc8c2abd1 qcacmn: Set default value for REO dest ctrl register
Currently in some case we are receiving non error packets on REO2TCL
ring, which is causing issue.

Fix is to set DEST_RING_MAPPING_0 to SW1 for REO dest ctrl
register, So that non error packets with reo_destination_indication
with 0x0 in the reo entrance ring will be routed to SW1 ring.

Change-Id: I67f78f35e7dba899943307902d99d0325a60498f
CRs-Fixed: 3150186
2022-03-21 04:33:43 -07:00
Sai Pavan Akhil Remella
87b0fe29b4 qcacmn: Allow FW to pno scan 6G chan based on RNR flag only
First host checks below two things in PNO scan request:
1. Userspace sets NL80211_SCAN_FLAG_COLOCATED_6GHZ flag
in pno scan request.
2. At least one 6G channel is present in the pno scan req.

If any of above conditions satisfy, Host fills all remaining
(other than channel(s) present in pno scan req) valid 6 GHz
channel(s) to pno scan requests and set the flag
FLAG_SCAN_ONLY_IF_RNR_FOUND for each remaining channel(s).
Host sends this updated channel list via WMI command
WMI_START_SCAN_CMDID_param_tlvs->channel_list for pno scan
to firmware.

By this driver allows Firmware to scan 6G channels based on
RNR IEs only (for colocated APs reported by 2.4/5 GHz APs).

Change-Id: Ib6118c4525e9fbe233eb6a7e07a4a3345d486e8a
CRs-Fixed: 3103923
2022-03-21 01:27:46 -07:00
Sai Pavan Akhil Remella
6f09bf189f qcacmn: Get per channel pno scan config service capability
Firmware advertises the service capability bit
WMI_SERVICE_PNO_SCAN_CONFIG_PER_CHANNEL when it supports per
channel scan config flags. Get this and cache in psoc.

If firmware supports WMI_SERVICE_PNO_SCAN_CONFIG_PER_CHANNEL,
it uses the upper-12 bits(bit-20 to bit 32) of channel_list
for flags and lower 20-bits(bit-0 to bit-19) for frequency.
If firmware doesn't support it, then channel_list holds the
frequency value only. Fill the flags and frequency accordingly.

Change-Id: I30d36a3c164e23cf0395129e5b93d186b81aa8a6
CRs-Fixed: 3103921
2022-03-21 01:27:41 -07:00
Sai Pavan Akhil Remella
49caf6db99 qcacmn: Allow FW to scan 6G chan based on RNR flag only
First host checks below two things in host scan request:
1. Userspace sets NL80211_SCAN_FLAG_COLOCATED_6GHZ flag
in host scan request.
2. At least one 6G channel is present in the host scan req.

If any of the above conditions satisfies, Host fills all
remaining (other than channel(s) present in host scan req)
valid 6 GHz channel(s) to scan requests and set the flag
FLAG_SCAN_ONLY_IF_RNR_FOUND for each remaining channel(s).

Host sends this updated channel list via WMI command
WMI_START_SCAN_CMDID_param_tlvs->channel_list for host scan
to firmware.

With this change, driver allows Firmware to scan 6G channels
based on RNR IEs only (for colocated APs reported by 2.4/5
GHz APs).

Change-Id: I2d9d2aac58bbc521b2476756d5919647bdc265cc
CRs-Fixed: 3103873
2022-03-21 01:27:36 -07:00
Wu Gao
6377820a27 qcacmn: Check cookie and avoid to read out of bound
Read out of bound due to invalid cookie and cause device broken. This
change checks cookie before using it as index of DBR buffer pool.

Change-Id: I1abc7d771cc62a7dd2dfe98784bf8ef2710f26ca
CRs-Fixed: 3144133
2022-03-14 08:58:32 +08:00
Vulupala Shashank Reddy
557abe1426 qcacmn: Fix TWT rx frames capture in packet capture mode
Currently the TWT rx frames are dropped in
tgt_mgmt_txrx_rx_frame_handler considering them as unspecified
packets as action category for TWT is not defined.

Define TWT action category so that the TWT frames will not be
considered as unspecified frames and dropped while processing.

Change-Id: I2d9c01e89029bcbb379a5a9c77a7d101de155d6a
CRs-Fixed: 3087275
2022-03-08 01:20:15 -08:00
chunquan
e2e7af2eaf qcacmn: Fetch thermal_stats in array range
Since lvl_idx maybe get value large than
param_buf->num_temp_range_stats, then out
of bounds will happen when read array of
wmi_tt_stats.

Change-Id: I85b29216272952102dca41792c290baf285a8e31
CRs-Fixed: 3136333
2022-03-07 22:54:53 -08:00
Vulupala Shashank Reddy
48de2db910 qcacmn: Add support for tx flags for packet capture mode
Fill tx flags in radiotap header based on tx status for
tx packets capture in packet capture component.

Change-Id: I52da01a2c0677d32bfb05a1f3095a0e6df084fca
CRs-Fixed: 3132140
2022-03-07 22:54:48 -08:00
Paul Zhang
8e8bcdca64 qcacmn: fetch profile_data from right position
Since structure wmi_wlan_profile_t includes tlv header, it has
to consider the tlv header in each iteration.

Change-Id: I2928f89a14646fceb93729f508b817c173eff1a2
CRs-Fixed: 3136679
2022-03-07 09:54:27 +08:00
Sai Pavan Akhil Remella
8570f5c3f5 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-22 00:08:05 +05:30
Arun Kumar Khandavalli
8c4a382b14 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 00:27:19 -08:00
Surabhi Vishnoi
a64c052bb2 qcacmn: Reduce the log level from error to info
Reduce the log level of tx flow control threshold pool size
from error to info. This is done to reduce the delay due to
console logging in connection/roaming path.

Change-Id: I5332bd179edc92006976a6421121cfce38b89b70
CRs-Fixed: 3119430
2022-02-09 21:32:14 -08:00
Wu Gao
34a825e043 qcacmn: Populate additional params to CFR info for QCA6750
HAL changes to populate agc gain, CFO, rx_start_ts, mcs_rate and
gi_type to CFR info for QCA6750.

Change-Id: I164324b1e929399a8dacf88f3012970c65d5d653
CRs-Fixed: 3115256
2022-02-07 12:01:01 +08:00
Amit Mehta
0d93cddae4 qcacmn: Increase WMI CE buffer size to 3520 Bytes
As part of new change  to support large management frame
the buffer size of CE2 has been increased to 3520 Bytes.

Since CE2 & CE3 shares common EP in Fw because of which any changes
in buffer size in CE2 need to have similar changes on CE3 as well.
So to accommodate change increase CE3 buffer size.

Change-Id: I8e558f11b1c44934cf6d64d1f3027f016d34f526
CRs-Fixed: 3118928
2022-02-01 14:15:09 +05:30
Karthik Kantamneni
da801d399a qcacmn: Check for EP vote access during prevent l1 state
By the time driver reaches prevent l1 call there is chance
of EP vote access getting disabled in-flight, to handle
this skip vote request if EP vote access disabled in-flight.

Change-Id: I91e1cdfc08492188ad8614339d5918c294bf10e4
CRs-Fixed: 3113786
2022-01-30 09:50:00 -08:00
Jingxiang Ge
db78182166 qcacmn: Always enable ce debug history for ce2/ce3
Current there is no ce debug history when testing
perf build, so it is hard to debug some issue.

Here it only enable ce2/ce3 on perf build, which keep
only necessary log here.

Change-Id: I29b998939cfa25f0547a9871721c6daeb0fdd961
CRs-Fixed: 3058740
2022-01-27 21:33:23 -08:00
Amit Mehta
87dae55f0c qcacmn: WMI CE buffer size update to 3520 Bytes
Update WMI CE buffer size to 3520 Bytes to support
large frame size on QCA6490.

Change-Id: I1f3326f40bf18dda6010def57ea7f2e0961bc725
CRs-Fixed: 3036932
2022-01-27 07:04:17 -08:00
Ananya Gupta
5c6b2ee5bf qcacmn: Send EAPOL pkt to stack in rx_err path
Send only eapol packets to stack and drop other packets
when found in rx err path when either REO or RXDMA push
reason is set to ROUTE type.

Change-Id: If1f43426adf21f7d00f17d369cd7fde7f7f85866
CRs-Fixed: 3114312
2022-01-26 22:51:57 -08:00
Rajeev Kumar
339a6e5c3b qcacmn: Clear num stats over QMI once WoW enter/exit
Num stats over QMI indicates how many stats requests are fetched
without triggering RTPM resume. If RTPM resume/suspend happens in
the middle then num stats over QMI counter should reset. Add logic
to reset num stats over QMI counter during WoW enter/exit.

Change-Id: I34fe93759bf8a7a2a6c0d4b389ad96b8e1ba4d6c
CRs-Fixed: 3110590
2022-01-25 02:18:41 -08:00
Rajeev Kumar
879b75a05a qcacmn: Add log message for RTPM prevent API triggered resume
Add a log message to indicate RTPM resume is requested by RTPM
prevent runtime suspend API.

Change-Id: Ifb90493d1ea48601bb40708b1a2d7a821144a9b2
CRs-Fixed: 3110580
2022-01-25 02:18:36 -08:00
Karthik Kantamneni
9a52a4d304 qcacmn: Fix deleting unused timer in QCA6750 target
In QCA6750 target hif sleep timer is not used but timer
delete is performed during deinit path.

Fix this so that hif sleep timer delete operation is not
performed in QCA6750 target.

Change-Id: I54790f3b20af4f4b265ab37b593d300032f00fa5
CRs-Fixed: 3108047
2022-01-19 10:22:51 +05:30
Amit Mehta
0f8b6684b2 qcacmn: Remove csum_enabled flag and related changes
As part of code change we are removing csum_enabled flag check.
In that case, csum_enabled becomes redundant since we are not using it
in the code base, So remove redundant code as part of the cleanup.

Change-Id: Iac411b20f06436053b1969a1af9e3b3ee418c34c
CRs-Fixed: 3070858
2022-01-18 10:51:03 -08:00
Amit Mehta
9f3ed88982 qcacmn: Remove csum_enabled flag check
Currently, to set checksum enable flags in Tx descriptor
we are checking the csum_enabled flag along with stack checksum
offload request. In case of roaming from latency-critical connection
to non-latency critical connection we request stack to calculate
checksum and set csum_enabled flag to 0. For some packets which
are already queued where the stack has not calculated checksum and
csum_enabled flag is set to 0, we will not set the checksum enable
flags in Tx descriptors for those packets.

To fix the issue remove the csum_enabled flag check and directly
check if the stack has calculated checksum for those packets or not.

Change-Id: I8d7754afc3d0a33315b85b0113cd3062e5783e28
CRs-Fixed: 3070858
2022-01-18 10:50:54 -08:00
Ashish Kumar Dhanotiya
eec62c31a8 qcacmn: Add logs to print if nan is enabled or not for a freq
With this change add log with scan channels list dump to print
if NAN is enabled or not for any frequency.

Change-Id: I81f5017c7f146d2c7bd227601ae320d9cc67f82f
CRs-Fixed: 3042903
2022-01-17 18:22:15 -08:00
Jianmin Zhu
40395a8bda qcacmn: Add mpdu tx retries stats
Customer reported their HLOS LTE-WLAN transition algo sometimes go wrong
for wrong low layer stats, Txretry delta is bigger than Txtotal delta.
Txretry unit is msdu while Txtotal unit is mpdu.
Add vdev/peer stats for mpdu number of successfully transmitted after
more than one retransmission attempt, to align mpdu tx_packets, tx_failed.

CRs-Fixed: 3099490
Change-Id: Id4b9d8fd81af4bf0c141dad481bfd2b3f6c1db2a
2022-01-17 18:22:10 -08:00
Ashish
728901337e qcacmn: Move reg_get_6g_ap_master_chan_list out of AFC flag
Currently api wlan_reg_get_6g_ap_master_chan_list is declared
and defined under CONFIG_AFC_SUPPORT feature flag, since this is
a generic API and can be used by other functionalities as well.
With this change move wlan_reg_get_6g_ap_master_chan_list api
out of CONFIG_AFC_SUPPORT feature flag.

Change-Id: Ifa7b27895b4660bbf248fc2827472ba50c9df9a4
CRs-Fixed: 3090281
2022-01-17 15:57:21 -08:00
Ashish Kumar Dhanotiya
cb1aae14c4 qcacmn: Add new self recovery reason QDF_STATS_REQ_TIMEDOUT
Currently there is no recovery reason for stats request failure.
With this change add QDF_STATS_REQ_TIMEDOUT for stats request
failure.

Change-Id: Ie9ae8259fc20b4d8829b760e818b6a1f9194a9d0
CRs-Fixed: 3106570
2022-01-13 15:33:33 +05:30
Liangwei Dong
7bcd95e94a qcacmn: Add DEBUG_CONN_RSO log history
Add new DEBUG_CONN_RSO enum to record RSO state changing.

Change-Id: Ie46ab5d4b32d8b5632aa3c3eaed96d00afda22b3
CRs-Fixed: 3097076
2021-12-27 18:33:27 -08:00
Surya Prakash Sivaraj
dd25cb7b75 qcacmn: Fix MBSSID parsing for OUIs without subtype
Host splits MBSSID into individual scan entries. The IEs
added into the new scan entries should neither be in the
non-inheritance list nor a duplicate IE. Host checks duplicity
of Vendor specific IEs by comparing the OUI, type subtype of
the non-tx and tx BSSID IEs.

Adaptive 11r VS IEs doesn't have subtype, and host uses
IE data as subtype. In this case, even if both the IEs are
same, still both are added into the new scan entry. The
supplicant uses the capability from the first IE belonging
to the tx profile leading to connection failure.

In MBSSID parsing logic, add exception for OUI from this
specific vendor in the Vendor IE comparison logic.

Change-Id: I7bb6cc7ebe34a5f007b9b84c91d6db6c7fcf997b
CRs-Fixed: 3084721
2021-12-23 04:14:13 -08:00
Shwetha G K
2b97da9050 qcacmn: Fix invalid VAP instance error in RCC case
Fix the invalid VAP instance error seen when RCC is
enabled and ol_ath_stats (enhanced stats) feature is
disabled case.
Populate gI as well similar to other rate stats in
CFR handler where this information would not be
available if ol_ath_stats is disabled.

CRs-Fixed: 3056621
Change-Id: Id1af6359408cb977ba0becf298121ee10dd5ef72
2021-12-21 09:56:15 +08:00
Wu Gao
c4bd71be6c qcacmn: Populate additional params to CFR info for QCA6490
HAL changes to populate agc gain, CFO, rx_start_ts, mcs_rate and
gi_type to CFR info for QCA6490.

Change-Id: I6f6f47c87d40bd661162f764fb3a360230a56457
CRs-Fixed: 3086667
2021-12-17 19:29:36 -08:00