Commit graph

9,837 commits

Author SHA1 Message Date
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
Yeshwanth Sriram Guntuka
80ef09350a qcacmn: Add iova to nbuf map history event
Record iova address in the nbuf map history
events.

Change-Id: I1bb415537ffe68c839c4c2f69901394ad047022b
CRs-Fixed: 2856038
2021-02-03 00:57:49 -08:00
Lincoln Tran
6a80e3c5d3 qcacmn: Append 6g reg rules to main list
Currently, there are separate list for 2g/5g and 6g reg rules. Only one
list is sent north from pdev, so append the corresponding rules to the
existing list in the pdev only.

Change-Id: I28e68f345ae6faad3ac2d929dac3922e9389d53e
CRs-fixed: 2860702
2021-02-02 17:04:37 -08:00
Rajeev Kumar
8fb8585221 qcacmn: Add SAP and P2P GO d3 wow support feature config
Add SAP and P2P GO d3wow feature support config to send it down
to FW during WMI INIT such that FW is aware when SAP and GO with
client connected mode d3 wow feature is enabled.

Change-Id: I04b398f71727112ce5c536bbf2bfcfd4eefe2752
CRs-Fixed: 2866604
2021-02-01 19:06:44 -08:00
Bapiraju Alla
f38f27b10e qcacmn: Fix compilation issues when WLAN_DEBUGFS feature is disabled
Fix compilation issue when WLAN_DEBUGFS feature is disabled.

Change-Id: Ifb186212e4d50f79f3492e194bbe82e3ed735ff7
CRs-Fixed: 2865197
2021-01-31 23:06:24 -08:00
Abdul Muqtadeer Ahmed
3d1b656b67 qcacmn: Add pci gen switch in wmi resource config
Add a pci gen switch flag in the wmi resource config to send
to FW in the init command.

Change-Id: If3a50d80103387a8f1f77ecb43a16c7b41ce5a11
CRs-Fixed: 2865866
2021-01-30 21:32:29 +05:30
Jingxiang Ge
e46dcc86b4 qcacmn: check wrap around in BEFORE_UNLOCK
1 Add protection for wrap around of jiffies.
2 fix assign issue from uint32_t to uint64_t.

Change-Id: Idbd3604d0cb985d08aa82e3b1d7f32fa6be8c3ef
CRs-Fixed: 2864737
2021-01-29 21:17:02 -08:00
Jianmin Zhu
a43b7f3992 qcacmn: Fix delay when request dp stats when RTPM suspended
When RTPM suspended, wlan_hdd_cfg80211_stats_ext_request and
dp_peer_rxtid_stats are called to get tx rx status, dp and ring
spin_lock_bh is held, if RTPM suspended, printk happens in
hif_pm_runtime_get which consumes 1 ms. In dp_peer_rxtid_stats,
REO cmd CMD_GET_QUEUE_STATS and CMD_FLUSH_CACHE are called for each of
17 tid, so total 34 printk delayed 34 ms.

To fix it, disable prink in hif_pm_runtime_get when called in
dp_peer_rxtid_stats.

Change-Id: If043d6772e337e42a5478de17480253f45d779c6
CRs-Fixed: 2858534
2021-01-28 23:56:24 -08:00
Surabhi Vishnoi
b3e551f380 qcacmn: Add support for RX offload packets in packet capture mode
Add support to process RX offload packets in packet capture mode.
To distinguish rx offload packets from normal rx packets,
DP_PEER_METADATA_OFFLOAD bit is set in peer metadata, based on value
of this bit rx packet is delivered to stack or packet capture
component.

Change-Id: Ice656a0bc14efd0382c4949d695daa8e926ce41e
CRs-Fixed: 2856792
2021-01-27 21:25:19 -08:00
Deeksha Gupta
172669bc0a qcacmn: Fix out of bound read issue in FILS Indication IE parse
When parsing FILS Indication IE, the data pointer is not
validated while moving the pointer which may cause
out of bound issue.

Validate data pointer before moving pointer.

Change-Id: Ib20f78fe58d7a4c8f9245e6b8d28212499cc6f50
CRs-Fixed: 2842475
2021-01-27 10:21:40 -08:00
Srinivas Dasari
d62a59d561 qcacmn: Get WAPI concurrency capability from firmware
Firmware advertises service capability WAPI_CONCURRENCY_SUPPORTED
if it supports other security modes when WAPI is active. Get the
same from service capabilities to decide whether to accept a
new concurrent connection or not.

Change-Id: I718503e52be2dda8ebd440f5a68b496d846b6ffc
CRs-Fixed: 2858770
2021-01-26 23:22:59 -08:00
Karthik Kantamneni
5cf48e8a96 qcacmn: Fix DBR srng undefined address passed to F.W
DBR srng details are not sent properly to F.W via WMI_DMA_CFG_REQ
msg, this leads to F.W accessing undefined address.
Fix this by passing DBR srng details properly.

Change-Id: I15b393ad809dc0757e3637558f0bddd05530149d
CRs-Fixed: 2861621
2021-01-25 19:17:15 -08:00
Bapiraju Alla
569da7e7f9 qcacmn: Remove duplicate set packet len for QMI event buffer
For QMI events qdf_nbuf_set_pktlen is invoked twice. Once in
wmi_buf_alloc and again in __wmi_process_qmi_fw_event. Remove
this duplicate set packet length.

Change-Id: I06c7e077fb1d554215a5ebc52f9d69a333a25a84
CRs-Fixed: 2859036
2021-01-25 12:06:25 -08:00
Aditya Kodukula
68cd463ca8 qcacmn: Use wmi_info level to log suspend type
Suspend type log is very critical for debugging wow related
issues, and hence log this using wmi_info level.

Change-Id: Icac658bdb10682bc02dd5aa7ad37d0a74d4a2bc0
CRs-Fixed: 2860518
2021-01-25 01:14:08 -08:00
Balaji Pothunoori
5dd21b7fc3 qcacmn: aggr ba enable set for firmware compatibility
firmware will honor ADDBA aggr size config from host if host
set aggr_ba_enable else default behavior intact.

Change-Id: Iaaf929a74b44ac94370f1d98b7aef7aaec308eff
CRs-Fixed: 2852999
2021-01-23 07:21:14 -08:00
Rajasekaran Kalidoss
255ea1cead qcacmn: Add wmi support for REQUEST_CTRL_PATH_STATS
Firmware has added support for control path stats
infrastructure. Add wmi support to prepare wmi tlv buffer
and send WMI_REQUEST_CTRL_PATH_STATS_CMDID. In the response
path, add support to handle WMI_CTRL_PATH_STATS_EVENTID and
extract the tlv.

Change-Id: I930a44187af29adfda8acd90d0e41cff5fc94603
CRs-Fixed: 2856370
2021-01-22 23:18:55 -08:00
Rajasekaran Kalidoss
6cd47a3867 qcacmn: Add handlers for wmi_pdev_cp_fwstats_eventid
Add common target_if event handler for wmi_pdev_cp_fwstats_eventid
from the control path stats infrastructure of firmware and register
with the wmi.

CRs-Fixed: 2856380
Change-Id: Ia16e34c4dc1e12b817258c5e6d617a8cb560cf5b
2021-01-22 23:18:51 -08:00
Rajasekaran Kalidoss
831364d650 qcacmn: Add Support for request control path stats
Add support in cp stats component for the control path
stats infrastructure provided by firmware via
WMI_REQUEST_CTRL_PATH_STATS_CMDID and
WMI_CTRL_PATH_STATS_EVENTID. Also add support for TWT
type operations over this infrastructure.

Change-Id: I154babff396ac39c11c7548ad91cc4dc0d0c52af
CRs-Fixed: 2847603
2021-01-22 23:18:47 -08:00
Lincoln Tran
51269e38f7 qcacmn: Initialize txpower to 0
In the API reg_find_txpower_from_6g_list, if the frequency is not found,
txpower is not touched and could cause undefined behavior. Initialize
it to 0.

Change-Id: Ic65c678144bf88959407ef28ab0d401278fa4738
CRs-fixed: 2855200
2021-01-21 08:17:51 -08:00
Vijay Krishnan
ee9bbf9dfc qcacmn: Check 80p80 mode while building channel
Per channel maximum regulatory bandwidth depends on country
bandwidth settings and the reg-domain bandwidth settings.
Therefore, take channel bandwidth into account in channel
bonding calculations. Here including condition to check for
80p80 mode.

CRs-Fixed: 2781127
Change-Id: I5f9a5960f4df8170d39fa8d6ea195700db741f51
2021-01-21 03:32:20 -08:00
Deeksha Gupta
43f7f24d24 qcacmn: Send AKM in peer assoc command to firmware
Initially, Host updates the AKM only after the EAPOL
handshake. Due to this, Enterprise auth is not detected
for initial connection.

Add AKM in peer assoc command(WMI_PEER_ASSOC_COMMAND)
to the firmware. In firmware, this will help to detect
Enterprise auth as part of connection and prioritize
the WLAN connection over BT traffic accordingly.

Change-Id: I6463dacbba098c76e6c3b7f4722915797bee1a99
CRs-Fixed: 2848392
2021-01-21 01:32:24 -08:00
Ashish Kumar Dhanotiya
862654e901 qcacmn: Set WMI_CHAN_FLAG_DFS flag only in ap mode
Currently on vdev start WMI_CHAN_FLAG_DFS flag is being set
irrespective of the device mode which may lead to unexpected
behavior in FW.

To address above issue set WMI_CHAN_FLAG_DFS flag in vdev
start only if vdev is operating in ap mode.

Change-Id: I96b291ad137b96e40c6620c86f50860670595ae0
CRs-Fixed: 2808013
2021-01-20 20:52:36 -08:00
Ananya Gupta
ba87a142fc qcacmn: Add DP event history in non debug mode
Enable DP event history for perf mode.

Change-Id: I1b8863928f956aa39488ea357d56e182613aad8d
CRs-Fixed: 2846844
2021-01-20 11:56:51 -08:00
Rakesh Pillai
459c7976f0 qcacmn: Avoid logging in packet transmission path
Currently if the driver is in runtime suspend/suspending
state, any packet transmission will request for resume
via hif_pm_runtime_get.

Unfortunately there is a logging in the above API which
will lead to more time consumption in the NET_TX softirq
context. This can lead to other delay in processing other
softirqs in the system.

Fix this by skipping the logging in the packet transmission
path.

Change-Id: Icc9f5b67794f7666243eb059f2e07a06a987002e
CRs-Fixed: 2844126
2021-01-20 11:56:46 -08:00
Liangwei Dong
ec258e718b qcacmn: export wlan_get_connected_vdev_by_bssid API
Export wlan_get_connected_vdev_by_bssid API as utility API.

Change-Id: Ia412d324aaf5b47ab7bece63d9a6e6cbc5c2e06a
CRs-Fixed: 2855501
2021-01-20 03:30:24 -08:00
Manikanta Pubbisetty
dc3a249d52 qcacmn: clean up inactive peers/vdevs during driver unload
DP references of the peer will be removed once we receive PEER
unmap message from the firmware. If the firmware has failed to
send the peer unmap message (due to an assert in FW), then the
peer entries will remain the inactive peer list and will trigger
a explicit QDF_BUG() during driver unload.

Force clean the inactive peer/vdev list during driver unload in such
cases.

Change-Id: Ib8a5f8179ce51378a825034e411f89ff024017e1
CRs-Fixed: 2847742
2021-01-19 21:26:09 -08:00
Lincoln Tran
f3fe75e001 qcacmn: Expose WMI command in tgt_if
Expose the API to send WMI_SET_TPC_POWER_CMDID within the target_if
module. Register the callback under tx_ops.

Change-Id: I1d075df717cff997e7ac85884fe587ed298cbb28
CRs-fixed: 2849695
2021-01-19 13:15:59 -08:00
Lincoln Tran
fb82cffd3a qcacmn: Add API to send set TPC power command
Add new API to handle the logic of sending the WMI command,
WMI_SET_TPC_POWER_CMDID. Create the struct to hold this new
transmit power information.

Change-Id: Ibc7c6109176577f56d149baf87022de557e84445
CRs-fixed: 2841781
2021-01-19 13:15:55 -08:00