Commit graph

8,465 commits

Author SHA1 Message Date
Manoj Ekbote
1c1ef8c2bd qcacmn: Print re-queue message based on threshold
When packet tx fails at transport layer, packet is re-queued and given to
HIF layer again. In this change, print the warning message about re-queue
only when tx fails for 5 consecutive attempts due to no resources
available at HIF layer.
Since re-queuing is not fatal, it need not be printed on every attempt.

Change-Id: I00082470420e29dfe4fb7a745ac709a682ba032e
CRs-Fixed: 2621763
2020-03-26 20:18:56 -07:00
Naga
c6e9bd033c qcacmn: Remove redundant data structure for wmi response extraction
Remove redundant data structure at wmi for vdev delete all peer
response extraction, instead use mlme host data structure.

Change-Id: Ice91f55e0bf8a23ea1a639a74f6a8ac3b2779a7b
CRs-Fixed: 2641261
2020-03-26 14:26:57 -07:00
sheenam monga
06869dc028 qcacmn: Send oce_ap_tx_pwr_weightage_pcnt to firmware
In struct weight_config, "oce_ap_tx_pwr_weightage" added newly.
Station uses "oce_ap_tx_pwr_weightage" as one of the parameter for
selecting AP candidate during initial connection. Host sends
"oce_ap_tx_pwr_weightage" ini value to firmware over WMI command
WMI_ROAM_AP_PROFILE.

Add oce_ap_tx_pwr_weightage in scan object scoring param to calculate
weightage based on AP tx power and select candidate accordingly.

Change-Id: I7f717e9cc398e8b9307f2f464f972b095c06364b
CRs-Fixed: 2647116
2020-03-26 07:13:13 -07:00
aloksing
d201c0e789 qcacmn: Add NULL check for regulatory psoc
reg_get_psoc_obj may return NULL.
Add check if regulatory psoc is NULL and return QDF_STATUS_FAILURE.

CR-Fixed:2648152
Change-Id: I9637fa367873cd62fa18d1f5ecd80f6fe454558b
2020-03-26 07:12:59 -07:00
Wu Gao
8940e61395 qcacmn: Use qdf streamfs APIs to replace qal streamfs APIs
Use qdf streamfs APIs to indicate data to user space. This is part of
moving CFR component to hostmn.

Change-Id: I2abc46fdfb36d24eef201ab21f5744d951595ea1
CRs-Fixed: 2637128
2020-03-26 05:26:21 -07:00
Nisha Menon
df7fb3627f qcacmn: Disable the PCIE scratch reg write for wake req handshake
Disable the PCIE scratch reg read/write to wake up PCI bus.
This fixes the PCNOC error seen during boot up on writing to
the PCIE scratch register.
Enable DEVICE_FORCE_WAKE_ENABLE feature flag to enable
PCIE sracth reg read/write.

Change-Id: If4efd0afbddf97462bf9d0f06d0085c0a5b37a64
CRs-Fixed: 2636160
2020-03-25 22:30:43 -07:00
Ashish Kumar Dhanotiya
ec326a7ae8 qcacmn: Address synchronization issue in 11d state machine
Currently whenever host gets an indication for the cc event
list, it starts 11d machine and inside 11d state machine,
it decides that whether host needs to send start 11d scan
command to fw or stop 11d scan command to fw, based on that it
updates the enable_11d_supp variable of regulatory psoc private
object and posts the message to scheduler.
FW expects that host should not send back to back 11d start
scan command, there should be one 11d stop scan command before
next 11d start scan command is sent if already one 11d start
scan command is sent.
Host 11d state machine takes care of the above sequence
of 11d scan command by using enable_11d_supp. 11d state machine
sets enable_11d_supp whenever 11d scan start command needs to
be sent and resets enable_11d_supp whenever 11d scan stop
command needs to be sent and posts the message in the scheduler.
There is a case where if host receives the 11d cc event from FW
it sends the set country command to FW and at the same time if
user command comes to set the country, host again sends the set
country command to FW. FW processes both of these commands and
sends the cc list event to host. when host receives cc events
it starts the 11d machine. For the first cc event which is for
11d country which is processed as user country because of
incorrect logic in reg process master channel list where it is
assumed that at a time only one type of country set command can
be pending and first priority is given to the user country pending,
host resets enable_11d_supp and post the command to scheduler.
When host receives the cc list event for the user country it is
processed as 11d country and inside 11d state machine it sets
enable_11d_supp and posts the command to scheduler.
Now if scheduler schedules these commands it treats both the
commands as start 11d scan commands as enable_11d_supp is set
and sends start 11d scan command back to back.
To avoid above issue, add enable_11d_supp also as part of
the scheduler msg body pointer along with the psoc, in she
scheduler callback use this local variable to decide whether
11d start scan needs to be sent or 11d stop scan needs to be
sent.

Change-Id: I60150da1475251a1c22778a0f924bdfbe1bb1140
CRs-Fixed: 2641803
2020-03-25 22:30:17 -07:00
sumedh baikady
e7e15e5d88 qcacmn: Convert GI and LTF to radiotap defined values
The HE GI and HE LTF values are obtained from phy
TLVs in monitor path. The stats used in host have an
enum defined used by other upper layer code.

The radiotap spec defines different set of enums.

Add translation function to convert host stats enum
to radiotap defined enum for sniffer capture purpose.

Change-Id: I8c76adb42b0623e83958f7a37147b74e72b1ce74
CRs-Fixed: 2636051
2020-03-25 22:29:56 -07:00
Srinivas Dasari
04e3179b45 qcacmn: Add NAN and TDLS cases for qdf_opmode_str
Add cases for NAN and TDLS in qdf_opmode_str to return the mode
in string format.

Change-Id: Ibdc22a337005d56485e5ee3b392f4d5d0089304a
CRs-Fixed: 2648590
2020-03-25 19:11:14 -07:00
Qun Zhang
4bc614dd0c qcacmn: Replace QDF_MAX_NUM_CHAN with NUM_CHANNELS to aviod OOB access
Currently QDF_MAX_NUM_CHAN and NUM_CHANNELS aren't aligned, this unalignment
may cause many potential OOB access. So replace QDF_MAX_NUM_CHAN with
NUM_CHANNELS to keep unified.

Change-Id: I7bf7829d776f7caf5b2afbd2c9fd0c20d608e630
CRs-Fixed: 2644073
2020-03-25 07:09:34 -07:00
Padma Raghunathan
cd48f1cca3 qcacmn: DBR: Fix macros used to get/set entries in DBR ring
Fix incorrect usage of WMI_HOST_F_MS and WMI_HOST_F_RMW APIs
in DBR layer.

Change-Id: Ia0f8ebd2d24ca9648b34440f0197473243441951
CRs-Fixed: 2643586
2020-03-25 02:05:56 -07:00
Padma Raghunathan
cf4f404f0f qcacmn: Add new file to hold CFR specific configuration
Add new file to exchange CFR config with userspace

Change-Id: Ia66dfdcd1f121699f04b579c9867a9f78286a4f8
CRs-Fixed: 2639069
2020-03-24 23:58:08 -07:00
Naga
c0cb57c6fc qcacmn: Remove redundant data structure for wmi response extraction
Remove redundant data structure at wmi for vdev start
response extraction, instead use mlme host data structure.

Change-Id: Ie0d3e6fa0acb1fea8bc0f50095491dbe803f6810
CRs-Fixed: 2641085
2020-03-24 21:38:47 -07:00
Jinwei Chen
b3e587db52 qcacmn: Support RX 2K jump/OOR frame handling from REO2TCL ring
Support RX 2K jump/OOR frame handling from REO2TCL ring.
(a) configure REO error destination ring register to route 2K jump
/OOR frame to REO2TCL ring.
(b) for 2K jump RX frame, only accept ARP frame and drop others,
meanwhile, send delba action frame to remote peer once receive first
2K jump data.
(c) for OOR RX frame, accept ARP/EAPOL/DHCP/IPV6_DHCP frame, otherwise
drop it.

Change-Id: I7cb33279a8ba543686da4eba547e40f86813e057
CRs-Fixed: 2631949
2020-03-24 19:58:16 -07:00
Aniruddha Paul
b869cb0dde qcacmn: Add jitter stats to per tid Object
Add average jitter, average delay, and total success
packet count stats to per TID object.

Change-Id: Ic3ae6d4c090a5fe82e09c085e92cd5eaea4d2056
2020-03-24 19:57:54 -07:00
Linux Build Service Account
546df98c1c Merge "qcacmn: Use right macro to enable delayed register writes" 2020-03-24 15:13:08 -07:00
Linux Build Service Account
1d3f03598b Merge "qcacmn: Confirm HP register init when enabling IPA pipes" 2020-03-24 15:13:07 -07:00
Gerrit - the friendly Code Review server
b406d8b014 Merge changes into wlan-cmn.driver.lnx.2.0 2020-03-24 14:39:44 -07:00
Mohit Khanna
db3f6a4b8c qcacmn: Use right macro to enable delayed register writes
Fix macro name to enable delayed register writes.
Donot use delayed register writes for non fastpath access.

Change-Id: I235116ab3df5cb26bbfbb72de4ac6ed4b363a13a
CRs-Fixed: 2645865
2020-03-24 14:39:10 -07:00
Rakesh Pillai
99e3c8b80e qcacmn: Confirm HP register init when enabling IPA pipes
As a part of enabling IPA pipes, the WBM2SW2 head
pointer register is written with the number of
buffers which have been allocated initially. This
register write is a critical one and failure in
writing this register can be fatal.

Confirm the written value, when initializing
the HP register for WBM2SW2 (for IPA).

Change-Id: Ib2da3a7aa6096375cf64857721619f47c50658de
CRs-Fixed: 2620750
2020-03-24 14:38:55 -07:00
Lihua Liu
286b038d12 qcacmn: Add workaround for TXDMA HW limitation
Per HW team's analysis, we find a TXDMA HW limitation:
ADDR0&0x1FFFFFFF8 should not equal ADDR1&0x1FFFFFFF8.
Otherwise, TXDMA will run into exception, which cause TX fail.
ADDR0: the address of last words in previous buffer;
ADDR1: the address of first words in next buffer;

We hit this limitation in NAT forward TSO jumbo case whose buffer
address of two fragments like below:
tso_frags = (
(length = 0x42, vaddr = 0xFFFFFFD0F5FA2F82, paddr = 0x1F5FA2F82),
(length = 0x05A8, vaddr = 0xFFFFFFD0F5FA2FC4, paddr = 0x1F5FA2FC4)
In this case, ADDR0 = 0x1F5FA2F82 + 0x42 -2 = 0x1F5FA2FC2,
ADDR1 = 0x1F5FA2FC4, then
ADDR0&0x1FFFFFFF8 = ADDR1&0x1FFFFFFF8.
To avoid this, shift server bytes for ADDR0.

Change-Id: Ib09afd7e4c14a33bb5347c68b602b360a9e36619
CRs-Fixed: 2585868
2020-03-24 10:25:14 -07:00
Wu Gao
577bdfe20e qcacmn: Add dp interface to enable/disable reap timer
Enhanced channel frequency response (CFR) based on monitor status
ring, need to enable mon reap timer before starting CFR and disable
the timer after stopping CFR capture. This change adds interface to
enable/disable monitor status ring's reap timer.

Change-Id: I843433ac07c4d55e14b42855ee22779eb7ecb678
CRs-Fixed: 2639307
2020-03-24 10:24:50 -07:00
aloksing
c359013b26 qcacmn: fix oob array issue
Array oob due unsigned and signed compare.
Release ref only if vdev id is less than num vdev.

Change-Id: I9a48d7bb9f64539b4974a5323ab1df35d4bc0228
2020-03-24 06:43:22 -07:00
Wu Gao
6c92dfdcf0 qcacmn: Convert host pdev id to target
WMI commands for DBR and CFR are based on pdev id, so need to convert
host pdev id and target pdev id when tx wmi commands or rx wmi events.

Change-Id: I54bf4a28a285e5b4dfdd125aeaabb9968a6d052a
CRs-Fixed: 2634729
2020-03-24 04:57:44 -07:00
Vignesh U
6933f411c1 qcacmn: Add support to configure 165MHz Agile channel
The FW has updated the wmi command wmi_vdev_adfs_ch_cfg_cmd_fixed_param to
configure the Agile channel to enable the 165MHz channel as an Agile
channel by enabling 2 center frequencies.

For a 160MHz and 80MHz channel, the parameter center_freq1 will be the
center of the respective channels. For the 165MHz channel(restricted 80p80)
the parameter center_freq1 will be the center of the left 80MHz channel
(5690MHz) and the parameter center_freq2 will be the center of the right
80MHz channel (5775MHz)..

Update the ADFS parameters across UMAC, TARGET_IF and WMI layes to
update the Agile channel configuration command.

Change-Id: Ie480af9a6bb8dad87dd783ab06e17b449605b1c9
CRs-Fixed: 2642555
2020-03-24 02:42:43 -07:00
Vignesh U
2a82e71b65 qcacmn: Introduce constants for 160MHz precac tree
Introduce constants for building the 160MHz precac tree.

Add support to insert the 165MHz channel into the precac tree.

The precac entry is not restricted to be 80MHz bandwidth, it can be
20/40/80/160/165MHz, therefore introduce a new variable bw to
accommodate different bandwidths.

Change-Id: I57d1e2173712b54238f89079783f27ef591921d1
CRs-Fixed: 2647246
2020-03-24 02:42:26 -07:00
Radha Krishna Simha Jiguru
351cdfe15f qcacmn: Clean up dp_tx_desc_alloc and dp_tx_desc_free API
Clean up dp_tx_desc_alloc and dp_tx_desc_free API to avoid array
dereferencing multiple times.

Change-Id: If84721cb2c6fe023d8008a97859bc88421b58e94
2020-03-24 02:42:09 -07:00
Radha Krishna Simha Jiguru
403408b8c9 qcacmn: rearrange initializations in dp_tx_send
Avoid memzeo of seg_info and msdu_info removing from default standard path
qdf_ktime_to_msg(qdf_ktime_get());  -- moved under a flag
Eth_hdr access made inside the Mcast enhancement check.

Change-Id: I12b6cc397d7eb626abdcdae001e92ef0d980e8a6
2020-03-24 02:41:53 -07:00
Radha Krishna Simha Jiguru
c13c930a62 qcacmn: Rearrange dp_tx_send_single
Rearrange dp_tx_send_single to avoid code duplication.

Change-Id: I35d9f9c36ffecd00931d58b9f66ebc809320963f
2020-03-24 02:41:37 -07:00
Neha Bisht
3b0a0f19ce qcacmn: Disable packet trace by default in per packet path
Disable packet trace by default in per packet path..

Change-Id: I04e998a997edac33eaf1328b71fb6eba675e54c7
2020-03-24 02:41:23 -07:00
Radha Krishna Simha Jiguru
d78c96c67c qcacmn: Restrict lock hold time in tx path
Restrict lock hold time in transmit path to only ring access time.
Also store lmac_id in vdev to avoid multi indirection.
Arrange fields in data structure for better alignment in data path access.

Change-Id: I1d32880ed88be486171be46281ec180d2a4906bf
2020-03-24 02:41:07 -07:00
Vignesh Mohan
2b0ff06748 qcacmn: Add support for Bangradar with detector ID
Provide support for bangradar with detector ID as one of the parameters.
Add the parameter as part of the packed arguments to be sent to FW.

Also add APIs for basic sanity check of bangradar params and packing
bangradar params inside an 32 bit unsigned integer.

CRs-Fixed: 2646549
Change-Id: Ie781bc9421b7ac0d407eb01814c9242c7f988884
2020-03-23 23:13:52 -07:00
Nandha Kishore Easwaran
e6ffcdabce qcacmn: Increase CE2 count to 128 for QCN9000
Increase destination CE2 buffer count to 128 for
QCN9000.

Change-Id: I4b497c385e461d093da5fa5ed03e2aa299dfb1f9
2020-03-23 19:57:35 -07:00
Mainak Sen
aceafadc2e qcacmn: WBM msdu continuation for SG in QCN9000
In QCN9000, wbm release ring has msdu continuation bit
support for invld peer MPDUs. Host needs to form SG
buffer for packets with msdu continuation bit set

Change-Id: Ica03c78068d32d2c8dc609b9a50298b91dd48c0a
2020-03-23 16:07:47 -07:00
Priyadarshnee S
28216f27e4 qcacmn: Add HT40 channel 140 and 144 to us_op_class
According to Annex E of 802.11 specification (Table E-1—Operating classes
in the United States) add opclass support for HT40 channel 140 and
144 in us_op_class map. Currently for HT40 channels 140 and 144,
us_op_class map does not have a valid entry and hence opclass is
fetched as 0.

CRs-Fixed: 2626714
Change-Id: I848d6266c829c363f353de9911359349c379126b
2020-03-23 06:03:38 -07:00
Ashish Kumar Dhanotiya
dc6a3bab24 qcacmn: Allocate vdev private data along with vdev
Currently vdev private data osif_priv gets allocation
separately and requires to be de-alloc separately.
This de-alloc needs to be taken care at different places
based on the vdev create failure or whenever vdev is freed.
As vdev private data is associated to the vdev and needs to
be freed if vdev is not there, it is good to allocate this
private data along with vdev so that there is no need
to maintain allocation and de-allocation of vdev priv data
separately.
As part of this change alloc the vdev priv data along with
the vdev allocation as a single memory and free of the vdev priv
data will be taken care as part of vdev free.

Change-Id: Ib442958c2d8684706830782d339c589c5f5daddf
CRs-Fixed: 2636222
2020-03-23 04:10:40 -07:00
Wu Gao
63dd1b61be qcacmn: Process PPDU status TLVs and parse CFR information
Channel Frequency Response(CFR) feature requires PPDU information
for correlation with CFR data. Host subscribes for the relevant PPDU
status TLVs via the Host RX monitor status ring. During monitor status
ring reap, all information needed for CFR correlation is accumulated
in a HAL PPDU structure and delivered to WDI event subscribers. Add
this change for HSP.

Change-Id: If3060271cf2923171487d30f99f2ab5c55370601
CRs-Fixed: 2634766
2020-03-23 02:25:29 -07:00
Wu Gao
20380e9491 qcacmn: Set max rings of DIR_BUF_RX_DMA_SRC to 2
In HSP platform, ring index 0 is for spectral scan, and ring idex 1 is
for CFR capture. Extend max rings to 2 and support CFR capture.

Change-Id: I02b39dd626b67172123bc5e77173d50a132fc735
CRs-Fixed: 2634636
2020-03-23 02:25:14 -07:00
Rongjing Liao
2905808346 qcacmn: add argument '_len' sanity check before use
When argument '_len' is equal to 0 or less than 0, 'ascii'
array element will be used uninitialized. To fix this case,
add arguemnt sanity check before use.

Change-Id: I2e2a4c199fac72466f831bb4261a6a03ac116e11
CRs-Fixed: 2643354
2020-03-21 21:56:26 -07:00
Rongjing Liao
cff463564e qcacmn: fix null pointer 'err' reference issue
When 'err' is null pointer, QDF_ASSERT(0) will not return
directly, then null pointer reference will occur. To fix this
issue, return failure when 'err' is null pointer.

Change-Id: I5912571795ae55c6729ae06d5e06496598c21fbb
CRs-Fixed: 2642581
2020-03-21 21:56:10 -07:00
Vinay Gannevaram
7ccc84acb3 qcacmn: Add support for NLA type OEM_DATA REQ-RESP in LOWI
Host driver processes cld80211 vendor subcmd
CLD80211_VENDOR_SUB_CMD_OEM_DATA and send
response in NLA format. Peer status indication
is also sent in nla format

CRs-Fixed: 2597282
Change-Id: I94f1fb7939141952ef92dbb7d3a130ba20d31608
2020-03-21 12:35:42 -07:00
Vinay Gannevaram
8fd2d1abbf qcacmn: Add support for NLA type CH_INFO_RESP in LOWI
Host driver processes cld80211 vendor sub command
CLD80211_VENDOR_SUB_CMD_GET_CH_INFO and respond with
NLA type CH_INFO response

CRs-Fixed: 2595374
Change-Id: Ibe6f2431ac1cae6e4560ec11424434b4f1cf8b76
2020-03-21 12:35:24 -07:00
Vinay Gannevaram
23a3603951 qcacmn: Add support for NLA type CAP_RESP in LOWI
Host driver processes cld80211 vendor sub command
CLD80211_VENDOR_SUB_CMD_GET_CAPS and respond with
NLA type CAP response

CRs-Fixed: 2595140
Change-Id: I5a6aa1fac537ca618404520b81c541a20dafd6fb
2020-03-21 12:35:02 -07:00
gaurank kathpalia
644413b274 qcacmn: Do a full scan if no candidate found
Sometimes if the user changes his location in the
connected state it may happen that the scan does not
happen and thus the AP cache channel map would not be
updated.
Now if partial scan happens due to a roaming trigger then
the candidate would not be found and thus would effect
roaming.
To avoid this set a full scan in roam invoke if the APs
are not found in the partial scan.

Change-Id: I2d2fd94760de78eaf495effc9caf8cca66c50ff6
CRs-Fixed: 2636431
2020-03-21 05:32:23 -07:00
Wu Gao
51bac7676d qcacmn: Add stream file system support
Stream file system is wrapper for Relayfs - a Linux specific feature,
which provides efficient method to indicate data to user space. It
depends on qdf debugfs APIs. This feature is protected with
compilation flags WLAN_STREAMFS and WLAN_DEBUGFS.

Change-Id: I1401112ece290e6d0560623cf10faaf498ebb1b7
CRs-Fixed: 2635481
2020-03-21 03:55:27 -07:00
Edayilliam Jayadev
01106d6458 qcacmn: Enable 165 MHz Spectral scan
QCN9000 has the capability to Spectral scan in 165 MHz/
restricted 80p80 mode of operation. Host filters the FFT bins
corresponding to the additional 5 MHz and exports to the
user space via SMAP message.

CRs-Fixed: 2630960
Change-Id: I54ec36968cb0c8d5a68ff39029004b08936cb91e
2020-03-21 02:03:45 -07:00
Basamma Yakkanahalli
9def5df14a qcacmn: device ID and target type checks for ipq5018 target
Initial changes for ipq5018 compilation.
Added device ID and target type checks for ipq5018 traget.

Change-Id: Ib86a371fbe66749fcb6d114e7a4a9931b684e03d
2020-03-20 23:45:43 -07:00
Amir Patel
925a7d389c qcacmn: Add full monitor mode changes
Add following changes:
	a. Add CDP API to config full monitor mode
	b. HTT configuration changes
	c. Init/Deinit changes for full monitor mode resources

CRs-Fixed: 2632442
Change-Id: I06db5194031b3ea0f0c1e5deda20df4bc0faa0b9
2020-03-20 22:16:00 -07:00
Sravan Goud
35b8f761f9 qcacmn: Return correct rx refill buf ring
In dp_rxdma_get_mon_buf_ring returns mac id index of
rx_refill_buf_ring array. But for targets with only one
pdev only the zeroth index is initialized. This will lead
to replenish failures in case of monitor mode when mon dest
process of lmac ring with mac id 1. So return only index 0 of
rx refill buf ring.

Change-Id: I03a7e19ea8d976e19fe6482aff0080dfa4d5ec45
CRs-Fixed: 2638655
2020-03-20 20:37:05 -07:00
Srinivas Pitla
cd32eed2af qcacmn: Drop mgmt nbuf in tx_capture disabled case
If tx_capture is disabled, the frames notified to tx_capture
module needs to be freed.

This change frees mgmt frames in tx capture module, if the feature
is disabled

Change-Id: I5f9ced69246c2b712d76f2f3cc61b5c386b703ec
CRs-Fixed: 2644025
2020-03-20 20:36:47 -07:00