Commit graph

9,879 commits

Author SHA1 Message Date
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
Srinivas Girigowda
722d3da7a5 qcacmn: TWT: Add support for not in range and IE validation fail status code
Add support for TWT AP params not in range and IE validation failed
status code.
Presence of num_additional_twt_params is enough to extract the additional
params sent by the firmware, there is no need for extra status check.

Change-Id: I9fa6afd22aa4de1b2a5b75fa98a00f89768dd8cf
CRs-Fixed: 2890682
2021-03-03 21:17:30 -08:00
Karthik Kantamneni
57beef405f qcacmn: Rate limit tid not setup DP error log
There is possiblity of receiving fragmented packets just before
tid setup is done, so rate limit the tid not setup error log
to avoid excessive cosole logging.

Change-Id: I372d3904650fcbf2ad11313da1087da52a0d3dc6
CRs-Fixed: 2884897
2021-03-03 01:56:44 -08:00
Srinivas Girigowda
ea6656488e qcacmn: Move ctrl_path_twt_stats functions to appropriate files
Move ctrl_path_twt_stats related functions to appropriate source
and header files.

CRs-Fixed:  2871393
Change-Id: I7043259c102e5aee6cbb13260ce2bb0c53c17853
2021-03-02 15:27:12 -08:00
Karthik Kantamneni
192d08ac1f qcacmn: Avoid per packet Rx refill buffer pool lock
Avoid per packet Rx refill buff pool lock, instead
acquire/release lock for burst of nbuf's replenishment.

Change-Id: I778cb9702d31d4b8911cca4e7f06f12c50ef6df9
CRs-Fixed: 2884208
2021-02-26 16:06:28 -08:00
Jingxiang Ge
bc5baf5ca6 qcacmn: Add lock protection for prevent_suspend_list
Need to protect prevent_suspend_list by runtime_lock.
Issue happens when
1 printing lock0 of prevent_suspend_list in thread0
2 thread0 scheduled out and lock0 is released.
3 return back to thread0, it will using lock0 pointer
  to check next lock, then issue happens.

Fix is adding runtime_lock to protect.

Change-Id: I7182651e445cf5008dba73e15b2c261cc125577f
CRs-Fixed: 2883052
2021-02-25 22:40:26 -08:00
Gururaj Pandurangi
1eb33580f7 qcacmn: Add service bit to support backward compatibility
The host will send TPC power to FW via the new WMI cmd
WMI_VDEV_SET_TPC_POWER_CMDID going forward instead of
WMI_VDEV_PARAM_TX_PWRLIMIT to accommodate 6GHz channels.
But, to support backward compatibility for New Host+old FW
the TPC power will be sent to FW via legacy WMI cmds
WMI_VDEV_SET_PARAM_CMDID (during initial connection) or
WMI_VDEV_PARAM_TX_PWRLIMIT (power value change during RRM
req/bcn processing from connected AP) with the help of a
service bit WMI_SERVICE_EXT_TPC_REG_SUPPORT.

Change-Id: Iea1ecb62841c539c13a804ae9c475831b2d4c89c
CRs-Fixed: 2874250
2021-02-25 20:23:48 -08:00
Gururaj Pandurangi
e4bc45cf24 qcacmn: Add service bit to support backward compatibility
The host will send TPC power to FW via the new WMI cmd
WMI_VDEV_SET_TPC_POWER_CMDID going forward instead of
WMI_VDEV_PARAM_TX_PWRLIMIT to accommodate 6GHz channels.
But, to support backward compatibility for New Host+old FW
the TPC power will be sent to FW via legacy WMI cmds
WMI_VDEV_SET_PARAM_CMDID (during initial connection) or
WMI_VDEV_PARAM_TX_PWRLIMIT (power value change during RRM
req/bcn processing from connected AP) with the help of a
service bit WMI_SERVICE_EXT_TPC_REG_SUPPORT.

Change-Id: I22e11ff847cd384fac8ea0061e5df42cea0c8de8
CRs-Fixed: 2874245
2021-02-25 20:23:43 -08:00
Gururaj Pandurangi
18c61c06b8 qcacmn: Add service bit to support backward compatibility
The host will send TPC power to FW via the new WMI cmd
WMI_VDEV_SET_TPC_POWER_CMDID going forward instead of
WMI_VDEV_PARAM_TX_PWRLIMIT to accommodate 6GHz channels.
But, to support backward compatibility for New Host+old FW
the TPC power will be sent to FW via legacy WMI cmds
WMI_VDEV_SET_PARAM_CMDID (during initial connection) or
WMI_VDEV_PARAM_TX_PWRLIMIT (power value change during RRM
req/bcn processing from connected AP) with the help of a
service bit WMI_SERVICE_EXT_TPC_REG_SUPPORT.

Change-Id: I727fd5a055e4e400ebc174cfb504d60e3335c3c4
CRs-Fixed: 2872244
2021-02-25 20:23:39 -08:00
Lincoln Tran
40f177fad4 qcacmn: Add logic to decide AP pwr mode when starting
Add logic to decide which power mode the AP should start in

Change-Id: I59b64e6ca26d47e395575ab129f35b97ddcc6737
CRs-fixed: 2863552
2021-02-25 20:23:35 -08:00
Hariharan Basuthkar
800ca290a5 qcacmn: Update Host Regdb to accommodate the new 6G regdomains
Make the following changes to update Host Regdb to accommodate the
new 6G regdomains:

1) Add a macro COMPILE_REGDB_6G, to prevent compilation of
   the new 6G regdomains in the host.
2) Add new 6G super domains, 6G sub domains, and 6G reg rules (add a new
   structure regulatory_rule_ext) and place them under
   COMPILE_REGDB_6G.
3) Add 2 new fields to the
   struct country_code_to_reg_domain - reg_6ghz_super_dmn_id and
   max_bw_6g. If COMPILE_REGDB_6G and CONFIG_BAND_GHZ are defined then,
   reg_6ghz_super_dmn_id and max_bw_6g are part of the
   country_code_to_reg_domain table for a country entry. If
   COMPILE_REGDB_6G or CONFIG_BAND_GHZ, is not defined then they are
   absent.

Change-Id: I72ba7b8f6fb4761205fbde51bbc8570bac531e87
CRs-Fixed: 2794085
2021-02-25 18:02:16 -08:00
Lincoln Tran
22ea6837e1 qcacmn: Expose freq validation API
Create a wrapper for the reg_is_freq_present_in_cur_chan_list API so
other modules can invoke it.

Change-Id: I0e21b15f1e08bb4301329b6b1a3c3c40edc09060
CRs-fixed: 2884768
2021-02-25 09:23:37 -08:00
Hariharan Basuthkar
f59463a106 Revert "qcacmn: Fix reg rule parsing order"
This reverts commit I5bb22a1dcd3f1c95d8f4498b03d6cc6eedcfe44c.

Change-Id: Ib7bf273a53f382da36106eab0a1b26af33d35a65
CRs-Fixed: 2880944
2021-02-24 13:26:45 -08:00
Karthik Kantamneni
5b0eee9c36 qcacmn: Use msleep instead of mdelay in hif_force_wake_request
When hif_force_wake_request is called from non interrupt context
use msleep to avoid mdelay since it is busy wait function.

Change-Id: Icda50e9d18b64369128a4f669ca1259931e5194a
CRs-Fixed: 2883178
2021-02-23 18:20:15 -08:00
sheenam monga
40d817291a qcacmn: Add additional attributes for the QCA vendor command
QCA_NL80211_VENDOR_SUBCMD_GET_STA_INFO to get finer details on roaming
behavior, TSF out of sync count, and the latest TX rate, Rate Index used
for the transmission.

Change-Id: I34d112a263a587603f555069c0244f61dc44ec73
CRs-Fixed: 2876411
2021-02-21 22:03:06 -08:00
Bapiraju Alla
ff697723bb qcacmn: Update error if failed to read at least one INI parameter
INI parameters parsing can fail because of fail to read INI file or
failed to parse at least one parameter. In some scenarios, driver should
assert if parsing is failed for atleast one INI parameter.

To differentiate these two failures, return different error status
values.

Change-Id: I187d2b2e8f55af47a14561302d8b62e84de7da5a
CRs-Fixed: 2878966
2021-02-19 20:47:02 -08:00
Karthik Kantamneni
225dfe227c qcacmn: Enhance error signature in qdf_check_state_before_panic
Improve error signature in qdf_check_state_before_panic API.

Change-Id: I5774c07e9359b711f0863c40072962b802318f2f
CRs-Fixed: 2879026
2021-02-19 05:57:07 -08:00
Lincoln Tran
41218ea8f3 qcacmn: Register NDI tx beamform support bit
Add WMI service bit handling for NDI beamforming support.

Change-Id: Ib1a4dc0042510137412f3ad4ded61ea680596978
CRs-fixed: 2876723
2021-02-18 18:58:29 -08:00
Jyoti Kumari
640e7cbcbb qcacmn: Fix out of bound issue in util_scan_parse_mbssid()
During multiple BSSID scan ie parse, there is memory allocation
on new_ie variable of size 1024 which may create buffer overflow
in util_gen_new_ie() if ie length is greater than 1024.

As part of fix, allocate memory of size ie length in new_ie.
And also add check before copying to pos variable in
util_gen_new_ie().

Change-Id: I55e0819817b5a616684067170bf28a314a145fc2
CRs-Fixed: 2867353
2021-02-18 16:38:07 +05:30
Lincoln Tran
3195b9ac6c qcacmn: Add wrapper API for indoor channel check
Add the wrapper for the reg_is_freq_indoor API so other modules can
invoke it.

Change-Id: I8e5ec63b117b49a8bdd99d2afdee80b080694a4f
CRs-fixed: 2876035
2021-02-17 19:10:44 -08:00
Ashish Kumar Dhanotiya
a15a3481db qcacmn: Fix disable channel list command
Currently driver is using sap notify api of regulatory to
update channel list for disable channel list command
which is not the correct way as sap notify api is designed
to be used by sap releted operations.

To address above issue write a separate api for
disable channel list command.

Change-Id: I79ded748bd46ec4be431c1ff6ab64c6ac8bf46be
CRs-Fixed: 2875324
2021-02-17 04:42:17 -08:00
Lincoln Tran
c1cb73bf0e qcacmn: Fix reg rule parsing order
Currently, reg rules are processed in the order of LPI, SP, VLP. The
order from halphy is SP, LPI, VLP. Update the processing order so
correct reg rules are passed north.

Change-Id: I5bb22a1dcd3f1c95d8f4498b03d6cc6eedcfe44c
CRs-fixed: 2874752
2021-02-16 22:06:35 -08:00
Yeshwanth Sriram Guntuka
bb967d4ed1 qcacmn: Set authorize flag when peer state is updated to auth
Set authorize flag when peer state is update to
authenticated state.

Change-Id: I303bb9e32f72176e73bbdc2861468cf0fd1a43c6
CRs-Fixed: 2869537
2021-02-16 17:03:07 -08:00
Karthik Kantamneni
33bcf87d2d qcacmn: Add support to handle OOR error on WBM ring
Add support to handle regular OOR frame error received on WBM ring

Change-Id: Ib290c4911e969debbf482f9495cab83a744f69d7
CRs-Fixed: 2876270
2021-02-16 05:05:44 -08:00
Shashikala Prabhu
6582dcc671 qcacmn: Add length check in beacon IE parsing function
Add length check in scan beacon IE processing function for the below IEs to
avoid any possible memory corruption.

1. WLAN_ELEMID_COUNTRY
2. WLAN_ELEMID_WIDE_BAND_CHAN_SWITCH
3. WLAN_ELEMID_VHT_TX_PWR_ENVLP
4. WLAN_EXTN_ELEMID_MAX_CHAN_SWITCH_TIME

Change-Id: I860bee8633849215d46c2dfe60a1a98d7c80f510
CRs-Fixed: 2873039
2021-02-16 02:59:36 -08:00
Ashish Kumar Dhanotiya
99d7ca18ae qcacmn: Add an ini to ignore user configured sched scan params
Currently there is no mechanism in driver to decide whether
to consider the user configured number of sched scan plan or
to configure only 1 schad scan plan.
There is a requirement to configure only one sched scan plan,
add ini support to meet this requiremet.

Change-Id: Iea3bc3f18696837150ce6f4bd60416a8a45bd1d3
CRs-Fixed: 2868125
2021-02-16 00:30:15 -08:00
Vulupala Shashank Reddy
e54b564858 qcacmn: Refactor compilation flag of pkt capture mode
Refactor WLAN_FEATURE_PKT_CAPTURE_LITHIUM to WLAN_FEATURE_PKT_CAPTURE_V2
to remove hardware name from compilation flag.

Change-Id: I5a30b33d8bd6065d12e7c89c666c2f0cab66344e
CRs-Fixed: 2869827
2021-02-15 22:12:02 -08:00
Bapiraju Alla
ad4980ee9e qcacmn: Add bug_on incase of skb set packet length failure
Add bug_on incase of set packet length failure for debugging purpose

Change-Id: Ie91da71c2420c585b27625ec241e62a2706606c4
CRs-Fixed: 2849081
2021-02-15 01:05:03 -08:00
Vevek Venkatesan
f7cf811933 qcacmn: add dedicated workqueue for Tx ring delayed reg write
Add delayed SRNG register writes support for Tx Ring, also add
dedicated workqueue to do the delayed Tx SRNG register writes.

Change-Id: I8dd157d341f3035e988804eab50d1ca681ab789b
CRs-Fixed: 2868989
2021-02-13 03:31:40 +05:30