Revīziju grafs

8834 Revīzijas

Autors SHA1 Ziņojums Datums
Vignesh U
70eb719dfe qcacmn: Reduce the PRI threshold to detect w53 duplet pulses
So far the DFS algorithm detected only a train of single pulses and the
diff ts(PRI) which is the difference in time stamps between 2 consecutive
pulses, should be greater than a threshold DFS_INVALID_PRI_LIMIT of 100us.

When the diff ts is less than 100us, the radar queue gets reset. With the
updated w53 DFS specification for Japan country, new sets of duplets have
been introduced and the time interval between the 2 pulses in a single
duplet can be as low as 20us. Since, the diff ts threshold
DFS_INVALID_PRI_LIMIT is 100us, the duplets with a time interval less than
100us is not be detected.

Reduce the diff ts threshold DFS_INVALID_PRI_LIMIT to 15us for MKKN
DFS domain.

CRs-Fixed: 2656660
Change-Id: I67b8ebab80155a5bcefcaa33f5a8d75c30d2ef40
2020-04-30 14:50:36 -07:00
Linux Build Service Account
1bb533325c Merge "qcacmn: Enable Agile Spectral in single synth targets" 2020-04-30 10:20:44 -07:00
Gerrit - the friendly Code Review server
86b1c1a03f Merge changes into wlan-cmn.driver.lnx.2.0 2020-04-30 05:53:07 -07:00
Edayilliam Jayadev
1de47959b6 qcacmn: Enable Agile Spectral in single synth targets
Some targets have a single synthesizer and it allows
a single Spectral detector to scan in 160 MHz /165 MHz.
Enable Agile Spectral scanning in 160 MHz / 165 MHz for
such targets. Agile creq2 will be populated in the WMI
command after WMI interface changes are merged.

CRs-Fixed: 2648480
Change-Id: I8522cbeeab29ac41479e3041eea376b081c0758a
2020-04-30 01:51:14 -07:00
Manoj Ekbote
f87f43f8b2 qcacmn: Add function to get CFR capture status
This function is used to disallow HW mode change if
CFR capture is in progress.

CRs-fixed:2663183

Change-Id: Ib5939c1f5743a1aa3cf7594c98fe4bbcc6ced49f
2020-04-30 01:51:10 -07:00
Radha Krishna Simha Jiguru
41c0716617 qcacmn: Add a change to do fast transmit completion
Lot of checks in Tx completion path are for special handlings
such as when ol stats are enabled some protective debug checks etc..
Add a logic to fast free of buffer at transmit completion.
If extended stats not enabled(Typically needed for enterprise cases)
do the buffer free faster. This is controlled through a flag.

Change-Id: I04873b5e3643d8e93e5b248fcaf23504dcb7624f
2020-04-30 01:51:07 -07:00
Yu Wang
2bfeac4376 qcacmn: update BT coex config for all vdevs when setting BT coex mode
When setting BT coex mode, the config was not updated for all
when there are multiple vdevs.
Modify the code to update it for all vdevs.

CRs-Fixed: 2667933
Change-Id: Ibad3adf44bef6842a12cbe7e46050b693ed474d6
2020-04-29 22:27:47 -07:00
Lihua Liu
acb2945a97 qcacmn: Fix compile error when enabling pkt log
Variable "type_specific_data" is defined under macro
PKTLOG_HAS_SPECIFIC_DATA in struct ath_pktlog_hdr, but
used without control of the macro.

Change-Id: I9d46ddc141a0641aa6eaecf712c52e640c48053c
CRs-Fixed: 2665564
2020-04-29 22:27:43 -07:00
Ramanathan Choodamani
40ef96ef99 qcacmn: Add support for PHY logging for pktlog
The user can add phy logging to be enabled in user space
by using '-ephy' option, which will let the host know about
this corresponding event and will send the event information
to the firmware.

Change-Id: Ibb4888101a80a765d196264403ce7912d1a6e9aa
2020-04-29 19:36:18 -07:00
Tallapragada Kalyan
8186e7d0cf qcacmn: fix qdf trace print during desc allocation
fix qdf trace print during desc allocation

Change-Id: I6d786a20a7bc65dcc67a62e784825f72a64a6565
2020-04-29 17:56:12 -07:00
Pavankumar Nandeshwar
60561d5b3f qcacmn: remove the redundant API dp_peer_flush_ast_entry
Since the peer unmap handler removes all the associated
wds ast entries, the redundant API dp_peer_flush_ast_entry
can be removed.

Change-Id: Ib8fc19e846e07f9a60c73530cac66d357a00fd98
2020-04-29 16:03:41 -07:00
Yue Ma
c81a71e488 qcacmn: Cleanup and refine runtime PM open/close logic
Runtime PM code has been refactoring multiple times so some open/close
logic may be duplicated and messed up. Cleanup and refine the logic.
In other to align both runtime PM enable and disable cases, make sure
default usage count is always 2 and sanitize the same when runtime PM
exit. hif_pm_runtime_stop() should always happen from HDD disable power
management APIs so clean it up from hif_pm_runtime_close().

Change-Id: I3b64369608c2d9aa4b3353503c12e0d05a57b592
CRs-fixed: 2666196
2020-04-29 16:03:38 -07:00
Yue Ma
d77dcda3bc qcacmn: Tag HTT messages which do not have FW responses
For HTT messages (no matter they are test commands or not) which do not
have FW responses, tag them for runtime PM feature so that corresponding
usage count will be decrement right after sending them through HTC to
avoid usage count mismatch. Tag the missing ones in this change.

Change-Id: I3f78d21a5a490db6dff0dd2786d87c3ced66180c
CRs-fixed: 2672301
2020-04-29 16:03:34 -07:00
Gurumoorthi Gnanasambandhan
4ed7012ed6 qcacmn: Fix IGTK key index
Fix IGTK key index for adding MIC IE in Broadcast packets.

CRs-Fixed: 2672548
Change-Id: I8605acc0f484909e29b258ccb82e3966e9481efb
2020-04-29 08:19:59 -07:00
Abhishek Singh
201e307efb qcacmn: Change max AP score from 100 to 200
Change max AP score limit from 100 to 200 and thus change
BEST_CANDIDATE_MAX_WEIGHT to 200 from 100.

Also remove duplicate sanity check, which is already done while
getting values from INI.

Change-Id: I4f87a00e90b7d5d829007d89cbf7cfd9b70fa4dc
CRs-Fixed: 2673980
2020-04-29 08:19:55 -07:00
Vignesh U
ea52f9b7d4 qcacmn: Enable MKK4 specific WARs for MKKN as well
The old Japan radars that are detected in MKK4 DFS domain should also be
detected by MKKN domain.

The WARs specific to MKK4 are also applicable for MKKN.

Enable MKK4 specifi WARs for MKKN as well.

CRs-Fixed: 2673921
Change-Id: If514f7f35d7ca4fe086cc4392abdfc270eb55c4d
2020-04-29 08:19:49 -07:00
Himanshu Batra
879fd03fe1 qcacmn: Add support for Extended Mcopy Mode
Currently, mcopy mode delivers first msdu(fcs_passed 128 bytes) per-ppdu
to upper layer, add support for Extended mcopy mode to deliver first
msdu(128 bytes) per-MPDU(fcs_passed).

Change-Id: Ib345fc14a8d468788b9de78516d27e8dff24caa4
CRs-Fixed: 2644175
2020-04-29 08:19:46 -07:00
Basamma Yakkanahalli
a3f17ee459 qcacmn: Update new chip specific APIs to ipq5018
Added below chip specific changes for ipq5018
1. Read ppdu_id from reo_entrance ring
2. API to extract msdu end pkt tlv information at once
    and store in local structure

Change-Id: Ic23bbd03db0e4ac56d40618378dc4d428f88d083
2020-04-29 06:29:37 -07:00
Liangwei Dong
9051d27a9c qcacmn: Use API policy_mgr_get_can_skip_radar_event for Radar event
Dfs radar processing function dfs_process_radar_ind is called
in interrupt context. Add new API policy_mgr_get_can_skip_radar_event
to be called in interrupt context to get radar skip flag.
The policy_mgr_get_dfs_master_dynamic_enabled will acquire mutex and can't
be called in interrupt context.

Change-Id: Iffa4f56da56b991d817c36891c6f6a611f3a094e
CRs-Fixed: 2673808
2020-04-28 21:23:06 -07:00
Sumedh Baikady
b1e18c841d qcacmn: Export freq to opclass routine symbol
Export wlan_reg_freq_width_to_chan_op_class_auto symbol
to be used in qca_ol module for retrieving opclass.

Change-Id: I44d9c424d66caf168d443f3542361deb9b3de300
2020-04-28 17:52:15 -07:00
Ananya Barat
dcf1fef9b3 qcacmn: Correct the start frequency for 2G channel 14 in japan_op_class
The function reg_freq_width_to_chan_op_class calculates the channel
number and opclass to be filled in the ECSA IE. In this function,
there is a check if (op_class_tbl->start_freq + FREQ_TO_CHAN_SCALE
		     *op_class_tbl->channels[i] == freq)
In case of channel 14 in Japan opclass, since the start_freq =2407,
FREQ_TO_CHAN_SCALE=5 and channels[i] =14, this condition evaluates
to false and chan_num and opclass are not filled.

Fix this by setting the start_freq as 2414 as is done for the
global_op_class table.

Change-Id: I31b3720e4a74a3790275eb3d14b412b0366cbeba
CRs-Fixed: 2673001
2020-04-28 10:31:58 -07:00
Shiva Krishna Pittala
5baa725203 qcacmn: Host abstractions for Spatial reuse WMI pdev and vdev params
Add the Host abstractions for the following WMI pdev and vdev parameters
related to Spatial reuse operation.
   - WMI_PDEV_PARAM_ENABLE_SRP
   - WMI_PDEV_PARAM_ENABLE_SR_PROHIBIT
   - WMI_VDEV_PARAM_SET_CMD_OBSS_PD_THRESHOLD
   - WMI_VDEV_PARAM_SET_CMD_OBSS_PD_PER_AC

CRs-Fixed: 2672093
Change-Id: Id9b03e304676e2896b1d40b0c6319a69be32d7fd
2020-04-28 07:32:34 -07:00
Sumedh Baikady
b83a21dd94 qcacmn: Add 6Ghz module Id in QDF
Add 6Ghz module ID in QDF for debug
purposes.

Change-Id: Iea2677ac4d91e64fb324eabfc55970f019ae8a56
2020-04-28 07:32:30 -07:00
Sumedh Baikady
84bcbc29b5 qcacmn: Add WMI support for Tbtt sync in Multi Soc
Support synchronization of Tbtt in multi SoC case.
Add WMI to send vdev details of one soc to another.
Info includes beacon interval, bssid and tbtt calculated
in host wrt to other Soc.

Change-Id: I465140268b0fe5e0cb69f636ebeb08dc80667cf7
2020-04-28 07:32:27 -07:00
Jinwei Chen
446ac2d46e qcacmn: fix TX TDLS discover frame nbuf leak issue
crash scenario:
(1) during dp_vdev_detach_wifi3(), it will reset related outstanding
TX desc vdev pointer to NULL.
(2) In the meantime, if this vdev TX completion is received from HW,
dp_non_std_tx_comp_free_buff() do nothing for nbuf due to null vdev,
leak will happen.

add error handling in dp_non_std_tx_comp_free_buff() to fix it.

Change-Id: I942a3d690711c60e8299d86562f08f0fb77f0b32
CRs-Fixed: 2670186
2020-04-28 05:42:05 -07:00
Neha Bisht
9aa9221c98 qcacmn: Do Batched invalidate of tx completion descriptor
Do batched invalidate of tx completion descriptor to avoid
unnecessary D-cache miss for 32 byte size descriptor.

Change-Id: Ia580fe78dcef5b36f117aaad171a2df6d0e34966
2020-04-28 05:42:01 -07:00
Jeevan Kukkalli
da011044aa qcacmn: Add NULL check for VAP self peer
Validate VAP self peer before accessing it

Change-Id: I7c685eabee4571bfc706ef0ac8bb50b67df122c4
CRs-Fixed: 2662387
2020-04-28 05:41:56 -07:00
Vevek Venkatesan
9043089a40 qcacmn: Add prefetch_timer config for CE rings
Add prefetch_timer configuration for CE rings.
Set prefetch_timer=1 configuration for qca6490 destination CEs,
prefetch_timer=0 configuration for other targets CEs.

Basically setting to 1us asking CE hw to update ring tail pointer to
update within 1us. FW side CE SW sets all rings to 1us already.
Idea behind this change  is, we have seen pre-silicon issue where SRC
ring TP read by SW was not seen updated value when prefetch was set
to 8us. Changing prefetch timer value to 1us helps to resolve
pre-silicon issue.
So host side rings need to update the prefetch timer to 1us.

Change-Id: I0830c73517c29cf39e6b2974bf3faa44e5673741
CRs-Fixed: 2669762
2020-04-28 03:59:18 -07:00
Yeshwanth Sriram Guntuka
7dad533e6c qcacmn: Handle scattered msdu in OOR error scenario
In OOR error handling scenario, msdu is spread across
two nbufs. Due to this, there is a mismatch between
msdu count fetched from MPDU desc detatils and count
fetched from rx link descriptor.

Fix is to create frag list for the case where msdu
is spread across multiple nbufs.

Change-Id: I1d600a0988b373e68aad6ef815fb2d775763b7cb
CRs-Fixed: 2665963
2020-04-28 03:59:14 -07:00
Priyadarshnee S
4c6b5c6f69 qcacmn: DFS API support for Rolling CAC
An extension of preCAC feature is Rolling CAC. The distinct difference
between these features is that the FW runs the off channel CAC
timer for a "finite" time for preCAC and runs the timer for "infinite"
time on an off channel. Hence the infrastructure built for
preCAC feature is being modified to accommodate RCAC feature as well.
Following are the modifications done:

1. Add an enum to represent various off-channel CAC modes.
2. Remove the 'static' declaration of few APIS so as to re-use them.
3. Add 'dfs_rcac_ch_params' to DFS PDEV object to store the RCAC
channel params so as to use the channel params after radar detect.
4. Rename DFS APIs to match its functionality.

CRs-Fixed: 2670419
Change-Id: I0bf0d33955706941cffb4e9cf6fcebfb465a6c74
2020-04-28 03:59:10 -07:00
Saket Jha
87dac440fd qcacmn: Dump FW stats for MCS 12/13
Dump additional FW stats for MCS 12/13 due to additions in 4K QAM
support.

Change-Id: I8cf177cb93f484c69951a758c4542e4530617576
CRs-Fixed: 2656272
2020-04-28 03:59:05 -07:00
Pragaspathi Thilagaraj
2b12f986bb qcacmn: Fix NULL pointer dereference of roam stats event param buf
In extract_roam_scan_ap_stats_tlv, if param buf is null, null
pointer dereference can happen while trying to access
num_roam_ap_info in the error message print.

Return failure if param_buf is NULL

Change-Id: I9f5cbb5534d1ef58bb9406ba8dc0aa68a9f8c194
CRs-Fixed: 2669350
2020-04-28 01:03:33 -07:00
Utkarsh Bhatnagar
d34f264b07 qcacmn: Fix Mem leak in scm_sort_6ghz_channel_list()
Free memory in error cases for rnr_chan_info

Change-Id: Ia879dd8857a4af331bf2f41aefe0551c1f8976e7
CRs-Fixed: 2670414
2020-04-27 23:26:54 -07:00
nobelj
01dcfedca1 qcacmn: Support MU in tx capture mode
Support fix for MU related data frame in tx capture mode.

Change-Id: I8b63eaf320463a3a068beb589089582cafe05001
CRs-Fixed: 2656346
2020-04-27 23:26:50 -07:00
Pragaspathi Thilagaraj
0150333a89 qcacmn: Abort only host scans on roam start notification
The roam sequence in LFR-3.0 is roam scan start notification
from firmware followed by roam start indication and then
roam synch,roam synch frame events. Roam start is sent
after candidate selection and host driver will disable
queues when roam start is received.
But for emergency roam trigger, firmware sends roam start
indication directly without notifying roam scan start to disable
data path queues immediately after deauth received from the AP.
So roam start is received before roam scan is started at firmware
and before candidate selection is done.

After roam start notification, host sends scan abort for all scan
on vdev by setting scan command request type to
WMI_SCN_STOP_VAP_ALL. This results in roam scan getting aborted at
firmare in emergency deauth roaming case and roaming fails.

Introduce new vdev id value based on which the scan module will
abort only host triggered scans setting the flag
WMI_SCN_STOP_HOST_VAP_ALL in the scan request.

Change-Id: I3a162c55d4a008ff986fd957bed395b39c060bb5
CRs-Fixed: 2636410
2020-04-27 21:32:22 -07:00
bings
868ce7c912 qcacmn: Include device sleep time in the NOL timeout value
'jiffies' does not include the device sleep time.
Use qdf_get_monotonic_boottime to monitor lapse of time for nol.

Change-Id: I6e00e003b8ee3d456ac4ec62b23fdaa02d577672
CRs-Fixed: 2652692
2020-04-27 21:32:17 -07:00
phadiman
b133d310ec qcacmn: Split dp_rx_pdev_attach and dp_rx_pdev_detach
Split dp_rx_pdev_attach into dp_rx_pdev_desc_pool_alloc,
dp_rx_pdev_desc_pool_init, dp_rx_pdev_buffers_alloc and
dp_rx_pdev_detach into dp_rx_pdev_desc_pool_free, dp_rx
_pdev_desc_pool_deinit, dp_rx_pdev_buffers_free APIs

This split is made because dp_pdev_init is introduced
as part of this FR and these APIs will be called from
dp_pdev_init/dp_pdev_deinit or dp_pdev_attach/dp_pdev_
detach accordingly to maintain the symmetry to DP init
and deinit path

Change-Id: Ib543ddae90b90f4706004080b1f2b7d0e5cfbfbc
CRs-Fixed: 2663595
2020-04-27 18:02:37 -07:00
phadiman
9798b16f3f qcacmn: Split dp_mon_link_desc_pool_setup to alloc and init APIs
Split dp_mon_link_desc_pool_setup to alloc and init APIs and
dp_mon_link_desc_pool_cleanup to deinit and free APIs

This split is made because dp_pdev_init is introduced
as part of this FR and these APIs will be called from
dp_pdev_init/dp_pdev_deinit or dp_pdev_attach/dp_pdev_
detach accordingly to maintain the symmetry to DP init
and deinit path

Change-Id: I36b2a98bd317010124916e0b2779938eba3883ea
CRs-Fixed: 2663595
2020-04-27 18:02:33 -07:00
phadiman
8db0b893b4 qcacmn: Split dp_hw_link_desc_pool_setup and cleanup APIs
Split dp_hw_link_desc_pool_setup into dp_hw_link_desc_pool_alloc,
dp_hw_link_desc_pool_init and dp_hw_link_desc_ring_init APIs, and
likewise split dp_hw_link_desc_pool_cleanup into deinit, ring_deinit
and dp_hw_link_desc_pool_free APIs

This split is made because dp_pdev_init is introduced
as part of this FR and these APIs will be called from
dp_pdev_init/dp_pdev_deinit or dp_pdev_attach/dp_pdev_
detach accordingly to maintain the symmetry to DP init
and deinit path

Change-Id: I1682a59847db5d3441e85b00768667066bf5edf2
CRs-Fixed: 2663595
2020-04-27 18:02:27 -07:00
phadiman
730a5bdaa8 qcacmn: Split dp_srng_setup and dp_srng_cleanup APIs
Split dp_srng_setup into dp_srng_alloc and dp_srng_init
likewise split dp_srng_cleanup into dp_srng_deinit and
dp_srng_free
This split is made because dp_pdev_init is introduced
as part of this FR and these APIs will be called from
dp_pdev_init/dp_pdev_deinit or dp_pdev_attach/dp_pdev_
detach accordingly to maintain the symmetry to DP init
and deinit path

Change-Id: I421fbd5bce074af6f75c147742f44e03568e6403
CRs-Fixed: 2663595
2020-04-27 18:02:21 -07:00
Amir
76ab3fc618 qcacmn: Change monitor ring reap sequence for qcn9000
For qcn9000 in case of monitor mode, reap monitor destination
ring first and status ring later to avoid backpressure
on monitor destination ring

Change-Id: I4e1931afe0453221f1326ca7bdb7f0273cc7363d
CRs-Fixed: 2670656
2020-04-26 23:54:04 -07:00
Adil Saeed Musthafa
60d18029b6 qcacmn: Add API to check if WMI is blocked or not
Add API to check if WMI commands have been blocked

Change-Id: I675b102b74d607332acf8a417c0c94955cbd5ecd
CRs-Fixed: 2662158
2020-04-24 08:57:39 -07:00
Vignesh Mohan
a23f9384c4 qcacmn: Add states events and API declarations for RCAC SM
As part of the Rolling CAC State Machine, introduce three state
enums (INIT, RUNNING and COMPLETE) and the corresponding state
events.

Introduce generic APIs such as dfs_rcac_sm_create,
dfs_rcac_sm_destroy and dfs_rcac_sm_deliver_evt for rolling
CAC State machine operations.

CRs-Fixed: 2659666
Change-Id: I528db71aa7d21dced7e47ff4f9cccfbfe94c8c21
2020-04-24 01:29:16 -07:00
Jeevan Kukkalli
31004de4c2 qcacmn: Make cnss diag kernel level logging unlikely
Module param qdf_log_dump_at_kernel_enable is set to
false by default in wifi script when no value configured
through UCI so make kernel level logging unlikely.

Change-Id: I4aa3547c4049562b1cad63eb20d75b5b166a04c2
CRs-Fixed: 2664926
2020-04-23 16:26:54 -07:00
Varsha Mishra
c71df5eef4 qcacmn: Restrict DMA Map/UnMap upto buffer size
Restrict DMA Map/UnMap upto buffer size for packets in rx process.
This gives 2-3% cpu gain in peak throughput.

Change-Id: Iaf5e9f6f734d80b6d2c234bd8e679cf2a81c7e2c
CRs-Fixed: 2660698
2020-04-23 16:26:49 -07:00
Yeshwanth Sriram Guntuka
ac0322cce9 qcacmn: Set runtime pm state prior to runtime_init
During initialization of driver, the runtime pm usage
count is incremented to 1 when the pm state is NONE.
Runtime get is done as part of htc send packet for
a wmi command in scheduler thread context. In kworker,
runtime_start is processed as part of driver load and
runtime put is done prior to updating the pm state to
ON. Runtime put triggered as part of htc send packet
causes a panic since the state is NONE and usage
count is 1.

Fix is to set runtime pm state to ON prior to doing
a runtime put as part of initialization.

Change-Id: I52cca5240f2f0872c681aab3a58a382f3fa1df0e
CRs-Fixed: 2669029
2020-04-23 14:50:58 -07:00
Manjunathappa Prakash
7de632a45c qcacmn: Decouple IPA TCLring and WBM ring size config
Decouple IPA TCLring and IPA WBM completion ring size from regular
Tx TCLring and WBM completion ring size configuration.
This is required as there is limitation on IPA GSI rin size
configuration.

Change-Id: I689d0e8ca72f069c5b68dc1789358e091c554d30
CRs-Fixed: 2665010
2020-04-23 11:32:27 -07:00
Manjunathappa Prakash
28b4573d27 qcacmn: Increase Tx HW and SW to 2K and 4K for qca6490
Increase Tx HW and SW to 2K and 4K for qca6490.
This parameter change is based on the tuning exercise of 1Tx:8Rx device
tests in NaN scenario. This is helping Tx device to burst to multiple
Rx peers, there by improving the TPUT.

Change-Id: I28e1eafb78612c68fe172a640b1386ac88e051a2
CRs-Fixed: 2657056
2020-04-23 11:32:23 -07:00
Varsha Mishra
1fb9b10ac1 qcacmn: Make _qdf_nbuf_unmap_nbytes_single API inline
Make _qdf_nbuf_unmap_nbytes_single to use in dp_rx_process.
Non-inline version takes more CPU.

Change-Id: Iaf5e9f5f734d81b6d2c234bd8e579cf2a81c7e2c
CRs-Fixed: 2634679
2020-04-23 02:18:13 -07:00
Ruben Columbus
4de3f492b0 qcacmn: enable/disable monitor other
monitor other gets disabled or enabled from input passed in set_monrxfilter

Change-Id: Ic6a00ce398ad0054b447f39f674eb6b9100b9d80
2020-04-23 02:17:57 -07:00