Commit graph

9,907 commits

Author SHA1 Message Date
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
Kiran Kumar Lokere
d3c75b46e3 qcacmn: QCA vendor attribute to configure RU 242 tone for data Tx
Add a QCA vendor attribute to configure the driver/firmware to
use only RU 242 tone for data frame transmission.
This attribute is used for testing purposes.

Change-Id: I32af9b34b335887279a41f64d7e93b14d6f44f41
CRs-Fixed: 2884735
2021-03-22 17:50:33 -07:00
Kiran Kumar Lokere
25d132824b qcacmn: QCA vendor attribute to configure BSS max idle period
Add a QCA vendor attribute to configure the driver with a specific BSS
max idle period value to advertise in (Re)Association Request frames.
This attribute is used for testing purposes.

Change-Id: Ibe98ab7947b759d9dcd3f963629de4dd6a86b543
CRs-Fixed: 2884705
2021-03-22 17:50:20 -07:00
Paul Zhang
17b5a5b57a qcacmn: QCA vendor attr to enable/disable full BW UL MU-MIMO
Define a QCA vendor attribute
QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_FULL_BW_UL_MU_MIMO to
enable/disable full bandwidth UL MU-MIMO subfield in the HE PHY
capabilities information field for testing purposes.

Change-Id: I666abb2654603069140bd603ae0377ea01a720fa
CRs-Fixed: 2816951
2021-03-22 17:50:08 -07:00
Abhishek Ambure
61fb380f53 qcacmn: Add test config attr to start/stop transmitting FD frames
Define QCA vendor attribute
QCA_WLAN_VENDOR_ATTR_WIFI_TEST_CONFIG_FILS_DISCOVERY_FRAMES_TX to
dynamically start/stop transmitting FILS discovery frames.

Change-Id: If0b07567c8b9c1278b9a6fd7b2f2d574d7f233bc
CRs-fixed: 2800970
2021-03-22 17:49:53 -07:00
Karthik Kantamneni
5c990f7f54 qcacmn: Add CE delayed reg update support for QCA6750
Add support to update CE srngs HP/TP in delayed manner
for QCA6750 target. This avoids busy wait in register update.

Change-Id: Id825a6fdf709187765ff823cb3015db21a024af3
CRs-Fixed: 2894094
2021-03-22 11:51:21 +05:30
Deeksha Gupta
6b2203c0cb qcacmn: Add new TWT attribute to configure wake mantissa in us
Add support for below TWT setup additional parameters:
Mantissa in Microsecond

Change-Id: I4d60393892477ac63e28a5df5274e04334bcfe42
CRs-Fixed: 2892933
2021-03-18 21:38:54 -07:00
sheenam monga
a2539d532b qcacmn: Add support to send WMI_VDEV_GET_BIG_DATA_P2_CMDID to fw
Send WMI_VDEV_GET_BIG_DATA_P2_CMDID to fw to get big data stats.

Change-Id: I40870a0d9106860f58272a200025870b41d4aef9
CRs-Fixed: 2861082
2021-03-18 11:23:26 -07:00
Gururaj Pandurangi
d9ce8a222a qcacmn: Add message to print off-channel timestamp
Add a log to print off-channel timestamp to verify
off-channel time.

Change-Id: I6b105a7114d372a9d8f9d6f78c601455180df775
CRs-Fixed: 2895189
2021-03-17 10:10:11 -07:00
Abhishek Ambure
d98a9c2055 qcacmn: Add host support for OCV service supported by FW
FW advertises WMI_SERVICE_OCV_SUPPORT bit in service ready event if
firmware supports Operating Channel Validation feature.

Change-Id: Ida1ee9874f9cd32a684ceee728e3323306137c64
CRs-Fixed: 2880794
2021-03-16 06:12:12 -07:00
Gururaj Pandurangi
130951bce8 qcacmn: Enable/Disable 6G edge channels ch2 and ch233
Enable lower 6G edge channel ch2 (5935MHz) for APL2 6G regdmn
using a service bit WMI_SERVICE_ENABLE_LOWER_6G_EDGE_CH_SUPP,
which is not enabled by default.
Also, disable upper 6G edge channel (7115MHz) using another
service bit WMI_SERVICE_DISABLE_UPPER_6G_EDGE_CH_SUPP, that
is enabled by default.

Change-Id: Ia7cb7f7d3165375178adbe70adb19b8671496b6d
CRs-Fixed: 2885623
2021-03-15 19:08:06 -07:00
Karthik Kantamneni
b2d534cc4c qcacmn: Fix memleaks in Rx refill buffer pool
Rx refill lock is not in sync during deinit path causing
mem leak of refill buffers. Set the Rx refill lock during deinit path.

Change-Id: Ic7d07c0fcaae26f6a269afcba4d593be1d5eacad
CRs-Fixed: 2898006
2021-03-15 17:16:24 -07:00
gaolez
b07b656387 qcacmn: Optimize congestion calculation logic
In current code logic, in case of channel utilization value is 0, the
congestion value treated as “not present” and give it a medium score.
This will cause a very clean channel get a medium score.
To fix the issue, need calculated congestion score from 1-100 and
not 0-100.

Change-Id: Iff030cf4a682d6e585d6f812a522cb8b6683cc44
CRs-Fixed: 2812978
2021-03-15 15:13:24 -07:00
gaolez
963a3c1d67 qcacmn: Optimize congestion score calculation
In current code logic, in case of channel utilization value less
than 3, the congestion value treated as “not present” and give
it a medium score. This will cause a very clean channel get a medium
score.

To fix the issue, need calculated congestion score from 1-100 and
not 0-100.

Change-Id: I6abb257e8298e4db3104fdc20351bbadaa7c2ec5
CRs-Fixed: 2812978
2021-03-15 15:13:20 -07:00
Priyadarshnee Srinivasan
1983e5407a qcacmn: FW-Host Handshake for REG_CHAN_LIST_CC_EVENT
In order to support different power levels of 6G AP and client,
the channel list event from FW namely "REG_CHAN_LIST_CC_EVENTID"
is modified to add few parameters specific to 6GHZ devices.
Hence the existing event is replaced by REG_CHAN_LIST_CC_EVENT_EXT for
all 2G/5G/6G pdevs in FW. Therefore, after the service ready event, FW
sends the channel list for the configured country/regdomain via
REG_CHAN_LIST_CC_EVENT_EXT. This mandates that all host software need
to have the processing capability of REG_CHAN_LIST_CC_EVENT_EXT to bring
up the AP.

As there can be host software which has not yet implemented the
version of "REG_CHAN_LIST_CC_EVENT_EXT", backward compatibility is lost
if "ONLY REG_CHAN_LIST_CC_EVENT_EXT" is sent by FW.
Hence a 3 way handshake between host and FW is established.

1. FW advertises its capability of processing REG_CHAN_LIST_CC_EVENT_EXT
id via wmi service bit 'wmi_service_reg_cc_ext_event_support'.
2. If the host is capable of processing the "REG_CHAN_LIST_CC_EVENT_EXT"
event id (which is done based on registration of this event), host
sends the capability in WMI_INIT_CMDID setting a bit in host_service_flags.
3. Based on host capability advertised in WMI_INIT_CMDID, FW decides to
send the old event ("REG_CHAN_LIST_CC_EVENTID") or the new event
("REG_CHAN_LIST_CC_EVENT_EXT").
4. If there is no flag indicated by host to FW in WMI_INIT_CMDID, FW
by default sends the old event ("REG_CHAN_LIST_CC_EVENTID").

CRs-Fixed: 2876360
Change-Id: Ibe95f414ad9fff0e5641bcc6e60450ef9afe245b
2021-03-15 15:13:15 -07:00
sheenam monga
b5b0469063 qcacmn: Add support to extract big data params
Add wmi support to extract params from
WMI_VDEV_SEND_BIG_DATA_P2_EVENTID.

Change-Id: Ifee6f5e94dc533af54c9333c434cdf9778eae3ca
CRs-Fixed: 2875576
2021-03-15 05:41:49 -07:00
sheenam monga
8cbdca9d91 qcacmn: Add support to handle BIG_DATA_P2_EVENTID
Fw advertise big data stats in response of host
command WMI_VDEV_GET_BIG_DATA_P2_CMDID.
Add support to handle BIG_DATA_P2_EVENTID.

Change-Id: I550eb1c99ee1d8c102f9ad673841c410ff0829ef
CRs-Fixed: 2868922
2021-03-15 05:41:45 -07:00
Karthik Kantamneni
1acc6619e7 qcacmn: Rate limit excess logs in Tx completion path
Rate limit excess logs in Tx descriptor completion path

Change-Id: I737e0e55c2032f89a002adb60fbb68932bef77e0
CRs-Fixed: 2893995
2021-03-15 10:50:55 +05:30
Manikanta Pubbisetty
90a054551e qcacmn: disable EXT grp irqs and drain TXRX during suspend
Any update to the SRNG TP/HP when the device is in low power
state would result in system errors. It is recommended to disable
EXT grp irqs and drain TXRX before sending power save enter command
to the FW. This will ensure that no interrupts are received while
in power save mode and as a result there wont be any HP/TP updates.

Change-Id: Ibf952bbc2c6d13fb3e4ca6b4845bc9cc887fa694
CRs-Fixed: 2883135
2021-03-14 10:37:36 +05:30
Yeshwanth Sriram Guntuka
cfc7fee00a qcacmn: Add support to reset SOC rx ext stats
Add CDP interface to support reset of soc rx ext stats.

Change-Id: I381f9b6b27d8d023b1932b7d8587df240c1ff4d0
CRs-Fixed: 2889565
2021-03-10 12:00:46 -08:00
Vevek Venkatesan
ab34f2aacb qcacmn: disable all apps CE irqs except wake_irq in bus suspend
In Moselle, currently CE interrupts are not disabled from apps
side during ipci bus suspend, so adding changes to disable all
the CE interrupts except wake_irq during bus suspend and do the
symmetric inverse operation during bus resume, also drain all
the pending FW diag logs from copy engine.

Change-Id: Ib54fc6660fd81aff18787b0b699f3a6cd2d7803d
CRs-Fixed: 2879752
2021-03-09 17:46:57 -08:00
hqu
aa43a1c01d qcacmn: Remove old rso path code [PART 1]
Since new rso ROAM_OFFLOAD_V1 path is enabled, remove
the old rso path code for wmi related files.

Change-Id: Ie519ca7fac2d721f87a4c9bd11507cd83ddfb504
CRs-Fixed: 2895184
2021-03-09 11:24:32 -08:00
Lincoln Tran
74fca17271 qcacmn: Update set country API to return failure
When country has not changed, reg_set_country will drop the request.
Return failure in this case so caller will know if no action is taken.

Change-Id: If6095887c6166edc626eab3bde312cc0aa8490b2
CRs-fixed: 2892356
2021-03-08 19:10:20 -08:00
Bapiraju Alla
23b0ad4fba qcacmn: Add service bit support for LL_GET_STA command over QMI
For some targets, FW expects WMI_REQUEST_UNIFIED_LL_GET_STA command
always over QMI irrespective of WOW state. FW will crash if this request
is sent over WMI on those targets. Currently there is no direct way for
the host to identify this requirement by FW. So FW may crash when this
WMI_REQUEST_UNIFIED_LL_GET_STA stats request is sent over WMI.

To resolve this, add service bit support for LL_GET_STA request over QMI.
With this change the INI parameter send_ll_and_get_station_stats_over_qmi
becomes obsolete and corresponding code will be removed.

Change-Id: I43f2827a0b1cae6e75f1224f452f8277d53736b2
CRs-Fixed: 2847483
2021-03-08 12:34:50 -08:00
Vevek Venkatesan
c66f230db1 qcacmn: assert if SMMU-S1 map/unmap of IPA doorbell addr failed
If the SMMU-S1 mapping/unmapping of IPA doorbell addresses
failed, do assert.

Change-Id: I41faba7002be37c442d306199876c2204120fe31
CRs-Fixed: 2892321
2021-03-07 21:57:15 -08:00
Karthik Kantamneni
8545efef80 qcacmn: Sanitize Rx buffer length received from H.W
Check if Rx single msdu length including padding and tlvs length
is greater than Rx buffer size allocated to H.W and raise error
to catch out of bound access.

Change-Id: I7c70b8a0b6828f7fd88a19141f9087430085c13a
CRs-Fixed: 2873933
2021-03-05 21:36:23 -08:00