Commit graph

9,932 commits

Author SHA1 Message Date
Kiran Kumar Lokere
2cfc1dab45 qcacmn: Update the security check mask for 6GHz AP
Update the security check mask value for 6GHz AP.

Change-Id: I8d9637a95c6191124372a7bdba119837e6553ed4
CRs-Fixed: 2930941
2021-04-28 22:31:44 -07:00
Manikanta Pubbisetty
aef0eadb39 qcacmn: assert on IPA SMMU map/unmap failures
The status of the IPA SMMU MAP/UNMAP operation is stored in the
result field of the mem info structure that is passed to the
IPA driver. Currently, this field is not checked for MAP/UNMAP
failures; when IPA HW accesses such a buffer for which
mapping is not correctly setup, it will lead to SMMU faults.
Check the result and assert(on failures) to avoid such issues.

Also, check if the physical address passed to the IPA driver is
non zero value.

Change-Id: Iec0702bdf4a07ea37e1213a33dc970028da654df
CRs-Fixed: 2928744
2021-04-28 11:30:07 -07:00
Yeshwanth Sriram Guntuka
0abcbd537a qcacmn: Set IPA WBM2SW ring HP to DDR addr on disable pipes
WLAN HW can still access the IPA tx doorbell address post
disable pipes if there are any pending tx completions which
could result in a NOC error.

Fix is to reset the WBM2SW ring HP addr to shadow addr in
DDR before pipes are disabled.

Change-Id: I52900eb34530388487923a887354ef8839d8c728
CRs-Fixed: 2846421
2021-04-28 11:30:03 -07:00
Karthik Kantamneni
f8a355b0f6 qcacmn: Add history for REO queue descriptor events
Add history to log REO queue desc update and free events.

Change-Id: If2992ff1256fad49ea4ea6bd90b6dfe4a63d2bc4
CRs-Fixed: 2926919
2021-04-28 11:29:59 -07:00
Jingxiang Ge
570e8e9dcb qcacmn: trigger recovery in hif_check_detection_latency
Replace as qdf_trigger_self_recovery here, so it can trigger
fw dump firstly.

Change-Id: I39e3bc11829a1969ac60bd3bbd71f3e2d1fa4f43
CRs-Fixed: 2928096
2021-04-26 19:01:07 -07:00
Jingxiang Ge
1226299545 qcacmn: Add vendor hang reason code for tasklet/credit latency
Define a new reason code in enum qca_wlan_vendor_hang_reason,
QCA_WLAN_TASKLET_CREDIT_LATENCY_DETECT, for tasklet/credit latency
detection.

Change-Id: I4852fc22f57d14d6eac30ddfd8361f2a63326981
CRs-Fixed: 2929164
2021-04-26 14:04:19 -07:00
Lincoln Tran
fb2e1367d9 qcacmn: Update interface mangager event data
Add fields to the validate bss data struct to pass more information
to the interface manager when validating a candidate.

Change-Id: I82536585517da87ec0883c6010461d7ee929bd18
CRs-fixed: 2836749
2021-04-26 10:55:00 -07:00
Deeksha Gupta
6b92b4b6fd qcacmn: Avoid excessive kmsg log in target_spectral
Sometimes firmware sends spectral events repeatedly with
wrong vdev. This causes continuous error logs are
written to kmsg.

Replace info prints in target_if_consume_spectral_report_gen3()
with debug level prints.

Change-Id: I2ca4be7d0d13e841a6dbd4efbc02ecd2b12893f8
CRs-Fixed: 2926759
2021-04-26 00:50:41 -07:00
Ananya Gupta
913b621b96 qcacmn: Add enum for FISA flow table
Moving FISA flow table to prealloc.
Create a context type for FISA Flow table.

Change-Id: Iaf3f4bd66c2c73a5ba38ae6baf914ff2a1b900ac
CRs-Fixed: 2928697
2021-04-23 16:58:06 -07:00
Deeksha Gupta
66b8d9336d qcacmn: Convert WMI status code for TWT get_stats
Convert firmware enum WMI_GET_STATS_TWT_STATUS_T status code
into host enum WMI_HOST_GET_STATS_TWT_STATUS.

Change-Id: I8fbb497bff11a3629689d6d8e2be5b8c9835b2de
CRs-Fixed: 2923085
2021-04-23 00:04:21 -07:00
Manikanta Pubbisetty
96ebf151b4 qcacmn: add runtime PM stats for HTC layer
Runtime PM for HTC layer has multiple cases of GET/PUT operations.
Adding runtime PM stats for HTC layer, this helps in debugging
RTPM GET/PUT out of sync issues.

Change-Id: Ib27efd73dce0bb5bd3ff030bd7ae1bc833f29610
CRs-Fixed: 2923250
2021-04-21 22:12:05 -07:00
Manikanta Pubbisetty
2b8d9d9b94 qcacmn: do a dummy read to flush pending writes
Currently before suspending the device, we are draining
out the TX/RX SRNGs. The HP/TP updates which are done as
part of this will be posted writes(there won't be any link
levelccompletions for write transactions), there are chances
that we might end up updating HP/TP after the device enters
low power mode leading to system crashes.

In order to avoid this scenario, do a dummy read before
device is suspended; this will ensure all pendings writes are
flushed before read returns.

CRs-Fixed: 2919459

Change-Id: I5ab77f91fe14c506444bdea1587acfb34224fc69
2021-04-21 05:13:36 -07:00
Srinivas Girigowda
cc14ff656c qcacmn: Add debug logs in cp_stats event path
In the issue reported, the clear stats request from the
user space is timing out because event id from firmware is not received.
From the logs it is not clear whether host driver received it or dropped
it in the error path.

Add debug logs, to make sure cp_stats event id is received in the host
driver and also in error cases.

Change-Id: I634714281db4a82826791725ec38fd589334cde8
CRs-Fixed: 2926978
2021-04-20 20:48:36 -07:00
Kiran Kumar Lokere
88691d0f34 qcacmn: Fix the issue with OWE AP scan in 6GHz
Check the RSNXE IE presence only for SAP key mgmt type.

Change-Id: I3c9df627589e351a30dc9899ccaa7f24e9516965
CRs-Fixed: 2924842
2021-04-20 20:48:31 -07:00
Nisha Menon
63a1982b3a qcacmn: Dump the rx reo queue descs in ddr
Add iwpriv option 34 to dump the reo rx h/w descs
in DDR for debugging. This cmd will first send cache
flush cmd to REO for all rx tids and invalidate the h/w
cache. Henceforth ensuring that the reo status tlvs and
the DDR values are in sync.
iwpriv wlan0 txrx_stats 34 0
Add fix to ensure bar frame with 2k jump err code is
processed correctly using the REO error code instead of the
REO push reason.

Change-Id: Ia05be668343f3a5d4b3262b8d6a367a50875add5
CRs-Fixed: 2895965
2021-04-20 00:36:40 -07:00
Srikanth Marepalli
201ae1378b qcacmn: Do not delete/update old PMK entries if new PMK is same
Currently the PMKSA entries are deleted only if the BSSID matches
and will delete all the matching PMK cache entries even though
the new PMK is same as the existing PMK for the matched BSSID.
This results in unnecessary deletion/updation of PMKSA entries.

This change allows to check PMK as well along with BSSID. And if
the PMK doesn't match with existing matched BSSID entry then only
we delete the PMKSA entries.
This change fixes the below OKC scenario and avoids Full EAP:
Connect to AP1 -> Roam to AP2 -> Disconnect and Reconnect AP2 ->
Disconnect and Reconnect AP1.

Change-Id: Ic41c2044e70f8d375130ef9e0af9fe4b83027c26
CRs-Fixed: 2913686
2021-04-19 15:46:40 -07:00
Himanshu Batra
ca2afe2898 qcacmn: Update queue size from pending queue after command activation
As part of activaiton of serialization command from pending to
active queue, the lock is released. In the activation API, the
same API to move non scan cmds from pending to active queue can
be called if activation fails. This reentrant API may modify the
pending queue even before the control is given back to the caller
API leading to random behavior when accesing the next cmd from pending
queue via local variables.

Add fix to update queue size from pending queue after command activation

Change-Id: I8082e2a9dd3410369967ab20196853ddfa0639a7
CRs-Fixed: 2801956
2021-04-19 05:02:18 -07:00
Deeksha Gupta
1c0e26420a qcacmn: Add vendor reason codes for TWT setup reject on roaming/channel switch
The firmware rejects the TWT setup request when roaming and channel
switch is in progress. Extend enum qca_wlan_vendor_twt_status to
represent new reason codes for these cases.

Change-Id: I4446ebf2e096873ab641029447f8fba9153216aa
CRs-Fixed: 2908446
2021-04-19 00:33:32 -07:00
Gururaj Pandurangi
4790975a59 qcacmn: Add a feature flag for 4.9 GHz channels
Condition 4.9 GHz channels under a macro CONFIG_49GHZ_CHAN
since only WIN uses these channels and not MCC.
This reduces kmalloc memory allocation in regulatory
component.

Change-Id: Ie9241dd68909f68fa70012b664c7bc7cf050c1a5
CRs-Fixed: 2766046
2021-04-19 00:33:28 -07:00
Ashish Kumar Dhanotiya
6fcbbe3f59 qcacmn: Use feature flag based api for 4_9GHz channels population
Currently reg fill master channel list api directly uses 4_9GHz
channel macros to populate band channels. Since 4_9Ghz channels
are featurized if feature flag is disable 4_9GHz channels might
be invalid which may lead to out of bound access in reg populate
band channels api.

To address above issue, use feature flag based api to populate
4_9GHz channels.

Change-Id: Ied9a43301451faf2741188e4a98d4c8e47af9f38
CRs-Fixed: 2913703
2021-04-16 10:49:46 -07:00
Mohit Khanna
5616aa6f41 qcacmn: Set LRO hash keys based on PDEV flag
Currently dp_lro_hash_setup is being done in dp_vdev_attach_wifi3 when
pdev->vdev_count==1. However, this counter is not getting decremented and
may overflow on repeated VDEV attach/detach calls. This may result in
LRO keys being programmed again.
Use a PDEV flag to determine whether to configure LRO or not. Fix
pdev->vdev_count by decrementing it during VDEV detach.

Change-Id: I03cba0d95c30831fbe8047828f7bb2cf4a869213
CRs-Fixed: 2906871
2021-04-12 12:57:39 -07:00
Mohit Khanna
2b9742f811 qcacmn: Add structures for FISA pkt history
Add DP data structures to add history in FISA aggregation path.

Change-Id: I2feb2d9fdef8f78f6cbfaf847c199580ceab9887
CRs-Fixed: 2912971
2021-04-12 12:57:35 -07:00
Deeksha Gupta
3c23682fbb qcacmn: Add new reason codes for TWT session
The firmware sends new reason codes due to roaming in
progress and channel switch. Add new reason code for
TWT session.

Change-Id: I3820ac74910e382f5a029de85f8e0915220bb996
CRs-Fixed: 2908384
2021-04-11 22:54:39 -07:00
sheenam monga
e59e0c03ce qcacmn: Add support to offload igmp feature to fw
Send command with required params to offload igmp
feature to fw.

Change-Id: I8b34b3f465c85db6b6cccd5fba439bee1c5640f4
CRs-Fixed: 2908041
2021-04-08 22:12:49 -07:00
Srinivas Dasari
b7b3709a7f qcacmn: Don't optimize 6g channels in case of RRM scan request
Currently, scan requests are optimized to trim 6g channels based
on the ini params scan_mode_6ghz and scan_mode_6ghz_duty_cycle.
But RRM scan request comes to host driver with a fixed set of
channels and the expectation is to scan all supported channels
out of these.

Don't consider scan_mode_6ghz_duty_cycle to optimize the
channels in case of RRM scan request. Thereby no 6g channels
would be trimmed.
Ini param "scan_mode_6ghz" is still honored if it's set to
"SCAN_MODE_6G_NO_CHANNEL", which filters out all 6g
channels from the scan request.

Change-Id: I960ac2c68f8d291209acc1c59d2f5b9076f042d7
CRs-Fixed: 2913913
2021-04-08 09:04:22 -07:00
Kiran Kumar Lokere
89fb2883be qcacmn: Drop the invalid 6GHz security beacon from scan result
Validate the 6GHz AP beacon in the scan result for valid security
if user enables the 6GHz security checks.
Drop the beacon from scan result if valid security is not found.

Change-Id: I6e02e77cc996b4f4fb7dc7a1678990419a51c79e
CRs-Fixed: 2904741
2021-04-07 20:42:02 -07:00
Lincoln Tran
cbb9c27507 qcacmn: Remove option LPI as option for AP pwr type
For devices operating in SAP mode, they must operate in VLP mode only,
unless in the countries which does not yet support VLP. In US and PR,
they currently operate in LPI, which will be updated when VLP support
comes. Remove the condition that allows the power type to be set to
LPI. Also, update the current channel list when the power type
changes.

Change-Id: I999862e44f213026ed11da2c08766d9bd77e3b7a
CRs-fixed: 2909703
2021-04-07 18:36:10 -07:00
Yeshwanth Sriram Guntuka
ab2ed0374c qcacmn: Create IPA SMMU maps for host replenished bufs
Buffers replenished post processing entries in the
REO2TCL ring do not have ipa smmu mappings created
when RX_PREALLOC_BUFFER_POOL feature is disabled.
This will result in SMMU fault when IPA HW accesses
such replenished buffers.

Fix is to create IPA SMMU mapping for replenished buffers
when RX_PREALLOC_BUFFER_POOL feature is disabled as well.

Change-Id: I0fe611a1279b91a3e45bc269348e05de9015d596
CRs-Fixed: 2915686
2021-04-07 16:36:48 -07:00
Yeshwanth Sriram Guntuka
3c74f3edd6 qcacmn: Check for equal case in nbuf len sanity
MSDU with len 1654 is received in the REO2SW ring and
the total len of the pkt would be 1654 + 392 (pkt tlvs)
+ 2 (l2 hdr padding) = 2048bytes. The nbuf len sanity
checks for strictly less than 2048 bytes which results
in the assertion failure.

Fix is to add the equal case when validating the
nbuf len.

Change-Id: I7e5d1df10339c8d7908a12001c2322028965a8fe
CRs-Fixed: 2916351
2021-04-07 11:48:24 -07:00
Yeshwanth Sriram Guntuka
beaff57e55 qcacmn: Reset the inv bit in ring desc cookie for jumbo pkts
When a msdu scattered across multiple nbufs is received
in REO2SW ring and the remaining nbufs are not yet
available in the ring, loop in dp_rx_process is exited
without resetting the invalid bit in the ring desc cookie.
This will result in an incorrect assertion failure when
the same entry is processed the next time.

Fix is to reset the invalid bit in ring desc cookie
when the loop is exited in the above msdu scattered
scenario.

Change-Id: Ie5cfa1fb8ea1db4b7a0a4837545ecbfdfbb8719a
CRs-Fixed: 2916296
2021-04-07 11:48:20 -07:00
Karthik Kantamneni
26292e6873 qcacmn: Rate limit excessive logs in WBM error path
Rate limit excessive logging prints in WBM error path

Change-Id: Ifb69959b78740bf4a0fca7b7611a2da0ef740413
CRs-Fixed: 2908240
2021-04-07 09:22:54 -07:00
sheenam monga
49a7e3c273 qcacmn: Read fw capability to offload igmp
Read fw capability to support igmp offload

Change-Id: I87ff7b07a5add99d8e9f8234912b656e5b866569
CRs-Fixed: 2904971
2021-04-05 15:44:42 -07:00
Rajeev Kumar
f79c724f8b qcacmn: Replace request_firmware by firmware_request_nowarn
Replace request_firmware by firmware_request_nowarn to avoid warning
message when the file is not found and sysfs fallback mechanism is
enabled if direct filesystem lookup fails.

Change-Id: Ib55d257aa01c52523b1f1137165c842e139ce614
CRs-Fixed: 2912039
2021-04-05 07:07:41 -07:00
Gururaj Pandurangi
8dcedb26a2 qcacmn: Add dispatcher to reg_get_cur_6g_ap_pwr_type
Add dispatcher API wlan_reg_get_cur_6g_ap_pwr_type to call
reg_get_cur_6g_ap_pwr_type from legacy TPC power calculation
API to obtain AP power type for SAP.

Change-Id: I7b135561af6f1cfaa14bbb724eb984e972a4a19a
CRs-Fixed: 2912227
2021-04-05 07:07:37 -07:00
Vevek Venkatesan
df1e3e114b qcacmn: add qdf wrapper API for is_driver_state_module_stop
Add qdf wrapper API support for is_driver_state_module_stop.

Change-Id: I6965b4049aebcbe9ec612cf3d70398eb269450e4
CRs-Fixed: 2912016
2021-04-02 04:34:34 -07:00
Manikanta Pubbisetty
e40743bbf2 qcacmn: use disable_irq for EXT GRP IRQs
Currently, as part of device suspend, EXT GRP IRQs are disabled.
disable_irq_nosync() which is currently being used to disable
interrupts will not wait for pending IRQs to completion. With this
API, there is a chance where IRQ handler can be executed after the
device suspend. Use disable_irq() instead so that pending IRQs will
be completed before returing from disable_irq().

CRs-Fixed: 2904518
Change-Id: Ib9acabe89b0337add82918be24b4782a6b125d05
2021-04-01 04:24:59 -07:00
Hariharan Basuthkar
cf6160e872 qcacmn: Copy 6G super domain code to the pdev_priv_obj
cfg80211tool wifiX getRegdomain does not display the current 6G super
domain code. This is because, when the WMI_REG_CHAN_LIST_CC_EXT_EVENT_ID
is received from the target, the 6G super domain code is not copied to
the pdev_priv_obj. Therefore, copy the 6G super domain code to the
pdev_priv_obj to display the current 6G super domain code.

Change-Id: If2e0bfc69cad3a4c47e73fdb35ad08eecb0cb48d
CRs-Fixed: 2856074
2021-03-31 15:32:41 -07:00
Yeshwanth Sriram Guntuka
c68765dc99 qcacmn: Trigger sys wakeup for WMI command when WOW is enabled
DHCP packet is received in the IPA exception path when
system is suspending. As part of DHCP packet processing,
WMI_PEER_SET_PARAM_CMDID is sent to FW after WOW is
enabled resulting in self recovery getting triggered by
host.

Fix is to do an explicit system wakeup if a WMI command
has to be sent post WOW enablement.

Change-Id: If1904a4fe5c861deed1b35071be10cb8cc8d6407
CRs-Fixed: 2890913
2021-03-31 09:47:54 -07:00
Lincoln Tran
1d6bab1b0b qcacmn: Drop ch avoid event if list is empty
Add check to drop the avoid channel list event if the range count is 0
since it would not affect the channel list anyways.
Also, add the rate limited debug print for the target_if module.

Change-Id: I176b9c09106cc0d7f5cfbc474912e4a48d633ff2
CRs-fixed: 2909614
2021-03-30 22:36:29 -07:00
Kiran Kumar Lokere
bc4677d1c8 qcacmn: Vendor attribute for 6GHz connection with all security types
Add a QCA vendor attribute to configure the driver to allow the
6GHz connection with all security types. This attribute is used for
testing  purposes.

Change-Id: Icbd493a9a28bef77d8a31f12082a37a1bacdfd35
CRs-Fixed: 2900829
2021-03-30 11:53:49 -07:00
Kiran Kumar Lokere
6d8c5ae73b qcacmn: QCA vendor attribute to ignore SAE H2E requirement mismatch
Add a QCA vendor attribute to ignore SAE H2E requirement mismatch
for 6GHz connection. This attribute is used for testing purposes.

Change-Id: I9d1a5680d3949da1a8009f4689d0c2859f15989f
CRs-Fixed: 2900813
2021-03-30 11:53:45 -07:00
Pragaspathi Thilagaraj
9b4bbfc115 qcacmn: Add new TWT teardown status code
Add new TWT teardown status code to indicate firmware teared
down the TWT session due to concurrent connection established.

Change-Id: I9b0fb5c5179355f34bd07e91a996da3ade1c9ce8
CRs-Fixed: 2899575
2021-03-30 02:14:03 -07:00
Pragaspathi Thilagaraj
f584ea6455 qcacmn: Introduce reason code for TWT teardown due to concurrency
The firmware sends new reason codes to indicate TWT teardown due to
single channel and multi channel concurrency. Update the enum
qca_wlan_vendor_twt_status to represent new reason code.

Change-Id: I49b35ca9570a4faf73f6c93eb957c357576efd1e
CRs-Fixed: 2904365
2021-03-30 02:13:58 -07:00
Pragaspathi Thilagaraj
a59ed198cb qcacmn: Use correct format specifier to dump ini/cfg values
Currently the driver uses %u format specifier to dump the
ini/cfg values with the command:
iwpriv wlan0 getConfig.
This causes the negative values to be printed as large positive
values.

Use %d format specifier to dump the ini/cfg values.

Change-Id: I93dd469f7c367e889cb67ec38a2e06ddc36c7c99
CRs-Fixed: 2901248
2021-03-29 15:19:37 -07:00
Jingxiang Ge
311c80d9a8 qcacmn: Add detection for tasklet delay
This feature is used to detect CE tasklet scheduling delay
and credit response delay issues.

Change-Id: I9a8fcb425edd5cf96fae5f6cd3bfc7f51172c814
CRs-Fixed: 2874874
2021-03-26 03:43:07 -07:00
Manikanta Pubbisetty
9d6e778d7b qcacmn: assert on processing invalid RX ring descriptors
Currently, we break the dp_rx_process() reap loop when we encounter
a ring descriptor with invalid bit set in SW cookie. If the HW
has copied old/stale entries in the ring, then we will end up
processing the same entry every time we try to reap the ring.
Instead, assert on processing such invalid entries so that
we can obtain useful debug information.

CRs-Fixed: 2904509
Change-Id: Iddde959a573ddf4ca364e1fb7a54ed0eaf4dc169
2021-03-25 23:29:20 -07:00
Ananya Gupta
3455eeae57 qcacmn: rx desc sanity for reo error entry
Same cookie was provided in REO srng and REO exception
ring. As a result, NULL pointer dereference occurred in
dp_rx_reo_err_entry_process.
To fix this, adding nbuf paddr sanity check in
function dp_rx_reo_err_entry_process.

CRs-Fixed: 2892345
Change-Id: Ie359921d8a270a3428b8286792941e84b0c68425
2021-03-24 21:40:07 -07:00
Karthik Kantamneni
883d041de6 qcacmn: Fix IPA SMMU mapping issue for RX buffers from refill pool
Refill pool buffer IPA mapping is done during allocation time,
but in some cases where IPA pipes enable/disable happens in between
previous mapping is not valid which is causing SMMU fault from IPA module.

Fix this by moving IPA mapping before replenishing buffers to RXDMA ring.

Change-Id: Ie6c5eb791b6f832f311a6e89489aebef37094d8f
CRS-Fixed: 2901819
2021-03-24 00:29:49 -07:00
Kiran Kumar Lokere
a0a432b35b qcacmn: QCA vendor attribute to configure Punctured Preamble Rx in HE cap
Add a QCA vendor attribute to enable/disable the Punctured Preamble Rx
support in HE PHY capabilities.
This attribute is used for testing purposes.

Change-Id: I5d0089ddc95beb334c73538431dde3a034a1bc21
CRs-Fixed: 2886737
2021-03-22 17:51:00 -07:00
Kiran Kumar Lokere
ac5aca9be3 qcacmn: QCA vendor attribute to disable data and management frame Tx
Add a QCA vendor attribute to configure the driver to disable data
and management response frame transmission to test the BSS max
idle period feature.
This attribute is used for testing purposes.

Change-Id: I106da43f9044bd15727152e04a233376e79e034a
CRs-Fixed: 2886732
2021-03-22 17:50:47 -07:00