Commit graph

9,864 commits

Author SHA1 Message Date
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
Vevek Venkatesan
45276ec2b4 qcacmn: change the return type of qdf_queue_work to bool
Currently the return type of qdf_queue_work is void,
whereas queue_work return type is bool denoting the status,
so changing the return type of qdf_queue_work to bool,
helps to check the status of the function.

Change-Id: Ifd07923a18641790314b88d38a7eba2a73e498b3
CRs-Fixed: 2876197
2021-02-13 03:23:49 +05:30
sheenam monga
3045328bda 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 interface change to handle BIG_DATA_P2_EVENTID.

Change-Id: I906afb71eb7f6bf95cd967a69d56fa333ecae177
CRs-Fixed: 2848445
2021-02-10 13:45:34 -08:00
Karthik Kantamneni
c7608750a1 qcacmn: Add RX prealloc pool for replenishing RX buffers
Add and initialize a preallocated pool of buffers which can
be used to replenish RX buffers. During replenish, the buffers
from the pool are used instead of allocating/mapping a new buffer
in the softirq context. This preallocated pool will be refilled
in thread context.

Change-Id: Idf3bd7d25c5d57ddba105ccd8fab672c26a184f1
CRs-Fixed: 2869345
2021-02-10 11:33:31 -08:00
Karthik Kantamneni
875f1b485d qcacmn: Add ini configuation for RXDMA replenish buffer pool
Add ini configuration support for RXDMA replenish buffer pool feature

Change-Id: Ib1edf04a61a52bf24dcbc3269df5067b090ad207
CRS-Fixed: 2869350
2021-02-10 09:13:32 -08:00
Karthik Kantamneni
c6fc528ef6 qcacmn: Make rx desc debug API's independent of RX_DESC_DEBUG_CHECK feature
Currently rx descriptor debug info API's are under RX_DESC_DEBUG_CHECK
feature, making those API's independent will be enabled with new feature
flag RX_DESC_LOGGING.

Change-Id: Iadb087f1b3104311b06e161bdeae975a8772e0ee
CRs-Fixed: 2869335
2021-02-10 05:45:18 -08:00
Vevek Venkatesan
0148887367 qcacmn: add lockless SRNG access support for Rx Rings
Add lockless SRNG access support for Rx rings.

Change-Id: Ia44f612cc5f6e50255aafaaf895044dea7a88aa7
CRs-Fixed: 2868991
2021-02-10 05:18:13 -08:00
Karthik Kantamneni
2f1d00dde1 qcacmn: Redirect bar frames to REO exception ring in QCA6750
Redirect bar frames to REO exception ring and handle as normal
data packets.

Change-Id: Ibaa14af5bfe7bfcecc4560fec5bae218d6df7e7d
CRs-Fixed: 2869449
2021-02-09 18:46:00 -08:00
Ananya Gupta
2ecd8b8b97 qcacmn: Clear g_pktlog_pde after de-init pktlog
When switching from mission mode to FTM or Epping mode,
g_pktlog_pde is not cleared after de-init. When switching
back to mission mode, a warning is produced as the proc
directory is not found.
To fix this, g_pktlog_pde is cleared when pktlog is
de-initialized.

Change-Id: I1b9c9259c220a1981151dcb1e44a5621d7fd8204
CRs-Fixed: 2872045
2021-02-09 13:52:49 -08:00
Pragaspathi Thilagaraj
5c11775fb3 qcacmn: Add support for PMK validity time & reauth threshold
Add support for PMK validity time & reauth threshold

Change-Id: I31d8826ea79d6a7f8d60424130b352a98b445043
CRs-Fixed: 2869653
2021-02-09 04:12:45 -08:00
Manikanta Pubbisetty
174b538869 qcacmn: fix potential NULL pointer dereference issue
Fix potential NULL pointer dereference issue in
dp_rx_buffer_pool_refill().

Change-Id: I728077fac9f5062c68d92bb219b305b61fb1e9f0
CRs-Fixed: 2858208
2021-02-07 21:28:49 -08:00
Rajeev Kumar
a14e2e6bdd qcacmn: Set SAP and P2P GO D3 wow host WMI resource config
Set SAP and P2P GO D3 wow host WMI resource config such that
FW is aware of host capability and can allocate memory for
sufficient remote peers.

Change-Id: I05499f98bd6bc080a9aefb302be12873bf19ac35
CRs-Fixed: 2869055
2021-02-05 22:42:40 -08:00
Rajeev Kumar
64a11f7858 qcacmn: Add WMI service handling for SAP and GO D3 wow
Add WMI service bit handlign for SAP and GO D3 wow mode
feature support.

Change-Id: I88efbf51d4cb0005f81ad86068f3278457f4eb05
CRs-Fixed: 2869065
2021-02-05 11:06:02 -08:00
Aditya Sathish
b03c81a3b3 qcacmn: Avoid checking extcaps byte if equal to IE len
Reading extcaps from the scan entry currently checks if the byte
to be accessed is less than the length of the IE. Following this,
it will attempt to access the extcap IE using the requested byte
as the index.

Avoid accessing the extcap IE if the byte is greater than one less
than the ie_len (since indexing starts from zero).

CRs-Fixed: 2856212
Change-Id: Ie357edcd6095570c05871af657381c287e92504e
2021-02-04 07:44:21 -08:00
Deeksha Gupta
3752f117a6 qcacmn: Fix the FILS params set
Host updates proper FILS param set i.e. username, auth_type and
is_fils_connection in the FILS response.

Change-Id: I0c30325bc7d620aa286aae0dd299dec9b26219ff
CRs-Fixed: 2865060
2021-02-04 07:44:18 -08:00
Abhinav Kumar
df3b6c2d30 qcacmn: Extract roam message information
Extract btm response and initial roaming stats coming
from FW through WMI_ROAM_STATS_EVENTID event as
wmi_roam_msg_info_tlv_param.

Change-Id: I9a9b768d09a45ba70066cacb4aa420a90a39a76d
CRs-Fixed: 2826323
2021-02-03 05:22:12 -08:00