Commit graph

6,172 commits

Author SHA1 Message Date
Lin Bai
324f49155b qcacmn: Use converged packetdump API to avoid corrupting dp_pdev
Packetdump invokes legacy data path API directly without
considering underlying HW:
1. ol_register_packetdump_callback
2. ol_deregister_packetdump_callback
Global pointer pdev_txrx_ctx will be casted to struct ol_txrx_pdev_t
always even Lithium (use struct dp_pdev) underlying, that leads to
struct dp_pdev be overwritten unexpectly.

Wrap with cdp API to avoid.

About packet-dump feature:
It is one debug feature/requirement for Android N, to track/dump
TX/RX data/mgmt. packets during connection. This enhancement can help
in debugging connection related issues.
This change only touches its data packet callback register API.

Change-Id: Ie63fd2dfa909f89741ccf0c5131f6d3305093a3e
CRs-Fixed: 2366334
2019-01-03 02:30:24 -08:00
Lin Bai
00e8c948c8 qcacmn: Implement converged packetdump API
Packetdump invokes legacy data path API directly without
considering underlying HW:
1. ol_register_packetdump_callback
2. ol_deregister_packetdump_callback
Global pointer pdev_txrx_ctx will be casted to struct ol_txrx_pdev_t
always even Lithium (use struct dp_pdev) underlying, and overwrite
struct dp_pdev unexpected.

Wrap with cdp API to avoid.

Change-Id: I5c8847ddc51548e8854ba600bec99ce5200dd817
CRs-Fixed: 2366344
2019-01-03 02:30:21 -08:00
Shaakir Mohamed
beafb2d5b6 qcacmn: Bangradar enhanced command support for secondary segment
Adds support to use bangradarenh command to inject radar on the
secondary segment, if AP is operating in HT80+80 or HT160 mode.

Change-Id: I78ab3d3fcb3ecf5fee274911bf6dc48f74c53818
CRs-Fixed: 2359763
2019-01-02 14:15:14 -08:00
Arif Hussain
c2cd7cce95 qcacmn: Rename target_if_open/close() to target_if_init/deinit()
Rename target_if_open() to target_if_init() and target_if_close()
to target_if_deinit() as these handles global target_if
initializations.

Change-Id: I935eb6461f1774043adaa0539b6e8e0ea9824382
CRs-Fixed: 2352015
2019-01-02 09:28:11 -08:00
Rakshith Suresh Patkar
ee84fbeea2 qcacmn: Use global variable for cpumask
Local variable is used to store cpumask to send it to
irq_set_affinity_hint and qdf_dev_set_irq_affinity APIs.
This memory is used by the kernel later outside the
current contect resulting in invalid memory access.

Fix this by using global variables to store cpumask.

Change-Id: I086f40bf1b3499d2c2ccb1ce18140b2dc2761d04
CRs-Fixed: 2373548
2019-01-02 03:53:07 -08:00
Paul Zhang
d2dad4b5bd qcacmn: Refine spinlock in ucfg_wifi_pos_process_req
Currently, the function causes the system false when
tries to release the spinlock because it holds the
spinlock longer than max_hold_time.

Change-Id: I90c78b7d8530cf3d1c224a693ab9f743f669b730
CRs-Fixed: 2371481
2019-01-02 01:38:06 -08:00
Arif Hussain
273e871dc0 qcacmn: Add Japan W53 channel flag support
Add support to exclude/include Japan W53 channels
in random channel selection.

Change-Id: I359d6bb68e2737b64b77f6f3ad27f83fd33d3da8
CRs-Fixed: 2371013
2019-01-01 17:06:14 -08:00
Abhishek Singh
0a71d5a1f5 qcacmn: Remove serialization vdev destroy handler
Each cmd in serialization list holds a vdev ref by
I8d573ff5a25e6dff928b2708e51ad7b97e292277. When vdev is
destroyed physically, it means vdev ref count is 0, all
serialization cmds of this vdev are released, don't need purge
in vdev destroy handler.

Change-Id: Iea75707c88154e1e3e87369285b82d1288523e22
CRs-Fixed: 2367242
2019-01-01 03:58:27 -08:00
Srinivas Dasari
2f6d368c6e qcacmn: Add OSEN AKM support for HS-2.0
OSEN is a new AKM to support HS-2.0.

Change-Id: I43efc34d754c51c9a16584495523629d32c16c5e
CRs-Fixed: 2361375
2018-12-31 21:29:36 -08:00
Vignesh Mohan
a647c5e032 qcacmn: Reorder function calls when radar found during precac
During Zerowait DFS, when radar is hit, the NOL IE element that
  is being sent to its uplink is prepared after the precac timer
  is turned off, which returns wrong center frequency
  information for secondary segment.
  This center frequency is used to built the list of subchannels to
  be sent to root, which in turn are all 0s.

  Reorder the function calls to prepare the IE before the
  precac timer is turned off when radar is found so that the
  list of subchannels are built properly.

Change-Id: I74e800cbbeb3730c862a72ddbe8f78219592e343
CRs-Fixed: 2373036
2018-12-28 07:13:31 -08:00
Santosh Anbu
ba57c33317 qcacmn: Return if cmd already exists in pending queue
When adding stop command to the serialization queue, if the command is
getting added to the pending queue of the vdev and there already existed
another stop command in the same queue, then return already exists as the
return value after the command is enqueued.
This to avoid notifying the vdev state machine with down event multiple
times though the command already in the pending queue would have notified.

Change-Id: I1830251c6b6c1fa2860f17a3ea8a869e8a3c87ff
CRs-Fixed: 2372563
2018-12-28 07:13:28 -08:00
Santosh Anbu
a334af9437 qcacmn: Reset command list status flag after use
When the command is released from the queue, it is added back to the global
pool. Reset the status flag of the command before releasing it back to the
global pool.

Change-Id: I3e51fc6aa0ffc0dafe87b838a5a256fc65d12d09
CRs-Fixed: 2372562
2018-12-28 04:38:23 -08:00
Santosh Anbu
f9ba21e503 qcacmn: Clean active serialization timers on vdev destroy
In the current implementation, if there are any active commands
in the vdev queues then on vdev destroy we remove the commands from
the respective queue and return the command to the global pool.
We should also stop the timers for the corresponding active commands,
otherwise the timeout cb may be called after the destroy is executed.

Change-Id: I51a1049e952073d83b5caee3835e4f9adca2bb9e
CRs-Fixed: 2365411
2018-12-28 04:38:20 -08:00
Jeff Johnson
da8409437e qcacmn: Rename pAddPeriodicTxPtrnParams
Per the Linux coding style both mixed-case names and so-called
Hungarian notation are frowned upon, therefore replace the identifier
pAddPeriodicTxPtrnParams everywhere it occurs.

Change-Id: Id80fc4cd22a8e4af125f01b937e03eea0b898283
CRs-Fixed: 2371906
2018-12-27 20:02:31 -08:00
Keyur Parekh
f72cbe544a qcacmn: populate NSS value and Translate MCS value for HT
This change will resolve displaying NSS value
in stats in case of HT. And also it will give
proper NSS value to calculate rate value. Modify MCS
value to match with Tx stats from firmware.

Also retain original MCS value to use in radiotap code
for HT case.

Change-Id: I4dad068262a5e9188a5935db6b2cbf8d14138e7e
2018-12-27 17:48:03 -08:00
sumedh baikady
706eecf986 qcacmn: Fix incorrect HE-GI and HE-LTF value in radiotap
Updating the driver to match new radiotap definitions for
HE fields.

Change-Id: Icab3f535e708299b1e3981f0003982256b3b7010
Crs-fixed: 2355982
2018-12-27 15:36:03 -08:00
Shashikala Prabhu
7eb2d08e3b qcacmn: Add INI support to disable spectral feature
Add INI support to disable spectral feature and do not process the spectral
user commands if spectral feature is  disabled.

Change-Id: Id353131675454652d59fd5d5f8fd3d732a07b777
Acked-by: Shashikala Prabhu <pshashik@codeaurora.org>
CRs-Fixed: 2343947
2018-12-27 13:28:00 -08:00
Wu Gao
779d274148 qcacmn: Remove structure wmi_tdls_params
Using both structure wmi_tdls_params and tdls_info if TDLS component
sets FW states, which will cause memory corruption potentially. Use
enum wmi_tdls_state as type of tdls state.

Change-Id: Ia1e78a5c6d8aee9ab5166c0704dd7827f42c2457
CRs-Fixed: 2372452
2018-12-27 01:05:21 -08:00
Abhishek Singh
2ceaf3729a qcacmn: Disable adaptive dwell time in not connected state
Disable adaptive dwell time for scans in not connected state to
optimize host scans for fast connection.

Change-Id: I28f762c3ee44ffc20a7565ccc1d8e40f16aedb4e
CRs-Fixed: 2357888
2018-12-26 22:46:03 -08:00
Harprit Chhabada
6407dc4721 qcacmn: Create header file for wmi_unified_bcn_buf_ll_cmd
wmi_unified_bcn_buf_ll_cmd in wmi_unified.h had compilation flag
CONFIG_MCL. To get rid of the compilation flag, a separate header
file is created

Change-Id: I0bbcdf749f461f6880aacc1e3ef4e8e8fdc08ff6
CRs-Fixed: 2366773
2018-12-26 20:27:35 -08:00
Qun Zhang
b3606a896a qcacmn: Add sanity check for wifi_pos priv obj in wifi_pos_main.c
Add sanity check before pointer dereferenced in wifi_pos_main.c

Change-Id: Iaea0c56f0684e2cfc959153b09468811a16ef22e
CRs-Fixed: 2370311
2018-12-26 12:33:35 -08:00
Pragaspathi Thilagaraj
2937e1aee1 qcacmn: Send roam_score_delta, roam_score_delta_bitmap to firmware
Two new WCNSS_qcom.ini values "roam_score_delta" and
"roam_trigger_bitmap" are introduced. These values are sent to
firmware over the WMI command WMI_ROAM_AP_PROFILE over the
structure wmi_roam_cnd_scoring_param. The values to this
structure are populated from struct scoring_params.

Add roam_score_delta and roam_trigger_bitmap in scoring_param.
Populate these values from roam request to the structure
wmi_roam_cnd_scoring_param to be sent over the wmi command.

Change-Id: I012867e60ddf18a276250ef3bd27015f191d8a6a
CRs-Fixed: 2368263
2018-12-26 10:12:34 -08:00
Pragaspathi Thilagaraj
13130ebe99 qcacmn: Add rct_validity_timer and disassoc_timer to wmi roam structures
Two new WCNSS_qcom.ini values "btm_validity_timer" and
"disassoc_timer" are introduced. These values are sent to
firmware over the structures wmi_roam_offload_tlv_param and
wmi_btm_config_fixed_param respectively. The values to this
structure are populated from struct roam_offload_scan_params.

Add rct_validity_timer in roam_offload_scan_params.
Populate these values from roam request to the structure
roam_offload_scan_params to be sent over the wmi command.

Change-Id: I6130e9966d520169b0f74b9726d35aa4fef6d81d
CRs-Fixed: 2369040
2018-12-26 10:12:30 -08:00
Pragaspathi Thilagaraj
935a05da75 qcacmn: Handle the wmi event WMI_ROAM_BLACKLIST_EVENTID
The firmware sends a new wmi event WMI_ROAM_BLACKLIST_EVENTID
to send the blacklist AP list.

Change-Id: I04fab853efbded48285ac063bb39c64f342c229b
CRs-Fixed: 2369107
2018-12-26 07:47:53 -08:00
Rachit Kankane
6adabaf78a qcacmn: define FT_8021X and FT_PSK suites
Define WLAN_AKM_SUITE_FT_8021X and WLAN_AKM_SUITE_FT_PSK for kernel version
less then 4.14.

Change-Id: Id5518511bc4f639fff6d1e20bcf0aad973d9ab46
CRs-Fixed: 2362888
2018-12-26 07:47:50 -08:00
Pragaspathi Thilagaraj
9327725639 qcacmn: Send bss_load_bss_sample_time over WMI_ROAM_BSS_LOAD_CONFIG_CMDID
Add changes to send bss_load_bss_sample_time over the wmi
command WMI_ROAM_BSS_LOAD_CONFIG_CMDID.

Change-Id: Iab882f0474071458ed8b8876d8edda987b76e94d
CRs-Fixed: 2372167
2018-12-26 07:47:47 -08:00
Pragaspathi Thilagaraj
9341ee36b8 qcacmn: wmi changes to send bss load trigger config to firmware
Populate the load bss trigger configuration values based on the
ini values and send them to firmware.

Add wmi changes to send bss load trigger config to firmware.

Change-Id: Ib2e21904bc7b8d87e5f51824d2694b90a3ac53f2
CRs-Fixed: 2367773
2018-12-26 07:47:44 -08:00
phadiman
497573091a qcacmn: Add Sanity Checks
Stats are updated periodically and
are categorized to soc, pdev, and
vdev

While the stats are getting updated
and if pdev, or vdev gets detached
in the same time, the stats handlers
will deference a NULL pointer

Hence Add basic sanity checks to DP
layer for soc, pdev and vdev inside
stat handlers

Change-Id: Ic4919b9c205679e1d6e7c571c577339be65c1bad
2018-12-26 03:39:21 -08:00
Ajit Pal Singh
d1698b6d90 qcacmn: Rename CONFIG_QCN7605 as QCN7605_SUPPORT
Rename CONFIG_QCN7605 as QCN7605_SUPPORT since QCN7605_SUPPORT
is already present/being used.

Change-Id: I1739bf86a9eb02aa6920f06bc929f686a5fa8f54
CRs-Fixed: 2369622
2018-12-26 01:21:24 -08:00
Disha Das
df10f65cb7 qcacmn: Move out Crypto files
Move only-win-specific crypto files from cmn_dev to
component dev

Change-Id: I55c2c44100d3a9c0799ccbafd2ce31aa242d3e71
2018-12-25 22:18:43 -08:00
Wu Gao
49bd1b5fa5 qcacmn: Check mgmt txrx desc element status before put to free list
To avoid double add to free list, check mgmt txrx desc element status
firstly.

Change-Id: Ib8f6f719016e19a76cc4fd1007800abf59ebf872
CRs-Fixed: 2348587
2018-12-25 05:21:07 -08:00
Priyadarshnee S
ca5c186642 qcacmn: APL9 Regdomain Changes for Korea
The following changes are made on APL9 regdomain:
* Include channel 149 in the supported channel list.
* Change the regulatory tx power for 5150-5250 frequency range to 23dBm.

Change-Id: I2bb01acbf60d814a2bc2c35a86f7f2c30583aad9
CRs-Fixed: 2366774
2018-12-25 00:40:48 -08:00
Paul Zhang
976c92285c qcacmn: Remove the CONFIG_MCL
Cleaning up cmn code by getting rid of CONFIG_MCL
in file utils/fwlog/dbglog_host.h.

Change-Id: I01cc1805ef2a2d57935216da79a4294a89be1411
CRs-Fixed: 2359889
2018-12-24 20:24:29 -08:00
Sravan Kumar Kairam
8d6f762744 qcacmn: Add QDF macro for is over gsi ipa wdi out param
Add QDF abstraction macro to read ipa wdi out structure param
is over gsi member.

Change-Id: I48c848b432168cba46ded985023291077488b2be
CRs-Fixed: 2367310
2018-12-24 12:15:53 -08:00
Qun Zhang
80cc5ab546 qcacmn: Add sanity check before pointer dereferenced
Add sanity check before pointer dereferenced in wifi_pos APIs.

Change-Id: Ib12bab1d7bfbe20689148274941f3c0d86f256c6
CRs-Fixed: 2370311
2018-12-24 05:44:56 -08:00
Visudha Sathurappan
bbd9d427a7 qcacmn: Removed unused DFS function
Remove unused mlme function to get dfs object and replace
it with the dfs equivalent.

Change-Id: I3ffadb77072fa119957469e0bf97fa4a80f99ac9
CRs-Fixed: 2368988
2018-12-24 05:44:53 -08:00
Yeshwanth Sriram Guntuka
c4a14ea149 qcacmn: Add host support for db2dbm RSSI changes
Add host support for db2dbm RSSI changes. Firmware
indicates this capability when underlying hardware
has RSSI reporting feature. Based on this capability
host will know if firmware sends SNR or RSSI. If no
capablity is present then host will convert SNR to
rssi using a fixed offset of -96. If capability is
present host will directly use the rssi as it is.

Change-Id: I9058f16c6280d466feb96cf88a8a0d8cd7b02032
CRs-Fixed: 2364025
2018-12-24 03:33:04 -08:00
Mohit Khanna
5868efa4bf qcacmn: Split RX TLV prints to multiple lines
Currently we are printing one single big print to dump the RX TLVS. This
is causing truncation at the QDF_TRACE level, which can accommodate only
512 bytes or so right now. Split the RX TLV print, so that it can fit
int the QDF buffer.

CRs-Fixed: 2370080
Change-Id: I1385ab0dfe2a52e34132487ac55973e291d84db5
2018-12-24 03:32:57 -08:00
Edayilliam Jayadev
4c002343ad qcacmn: Time stamp WAR for spectral
Spectral HW time stamp gets reset when a reset happens in
within target. This can potentially result in unpredictable
behaviour during classification. To mitigate this calculated
offset is added to the time stamp value in the FFT report.

HT = Spectral HW timer
AT = Actual time stamp in spectral report
CF = Time stamp correction factor
CT = Corrected time stamp
L = Time stamp in the last FFT report before reset
F = Time stamp in the first FFT report after reset
D = Time gap between the last spectral report before reset
    and the end of reset(This is provided by FW via direct
    DMA framework)

                         ***Target Reset***
                                 ^
                                 |
                            |<---D---->|           time line--->
       _______________________________________________________
       ^                    ^          ^  ^
       |                    |          |  |

HT --> 0                    L          0  F

AT --> 0                    L             F

CF --> 0                    0           (L+D)

CT --> 0                    L          (F+L+D)

Spectral driver corrects the time stamp received from target
using the following formula and sends upwards.

CT(Corrected time stamp) = AT(Actual time stamp) +
                           CF(Correction Factor)

Calculation of Correction factor (CF):-
---------------------------------------
Initialization : CF = 0
CF += (L + D) (Done only for the first spectral report after reset)

This scheme takes care of the wrap around in the 32 bit time stamp
which would have occurred if the timer was not restarted due to
target reset.

CRs-Fixed: 2356382 2355486
Change-Id: I17b55d39eb91eb03b867bcfddaf3eb03d1fc5d1b
2018-12-24 03:32:52 -08:00
chenguo
bae040f144 qcacmn: fix excessive logging during update peer statistics
Change the QDF log level during update peer statistics. It is not
necessary because during roaming it is possible the peer is not
there when we update statistics. Also use QDF_TRACE_RL to replace
QDF_TRACE to avoid massive log prints.

CRs-Fixed: 2353709
Change-Id: I2896e6874b2802ee1d8bf05c6daf064e1953a5d5
2018-12-24 00:11:03 -08:00
Chaithanya Garrepalli
4ff6e41de9 qcacmn: add peer_id and msdu_len in qdf_nbuf_cb
Add peer_id and msdu_len in qdf_nbuf_cb these
fields are used for lithium rx performance
optimization

Change-Id: Iba291812397a5e7648953c2dc1b2c18a5c5a18af
2018-12-23 21:58:51 -08:00
Paul Zhang
5753f9bbe0 qcacmn: Refactor operatition to hostscan_adaptive_dwell_mode_no_conn INI
Ownership of hostscan_adaptive_dwell_mode_no_conn is changed from HDD to
scan module. So scan module doesn't have to rely on HDD to obtain the
INI setting.

CRs-Fixed: 2357888
Change-Id: If3c3d93f0e1763e778eb6e3e70e23231fb01a67e
2018-12-23 00:01:04 -08:00
Amir Patel
ee49ad5b58 qcacmn: Fix vdev list synchronization issue
Take required lock for vdev list iteration and peer list
iteration

Change-Id: Iab3d2a1028325b6e8ade61b0b023f126b61db4e5
CRs-Fixed: 2367955
2018-12-22 02:54:18 -08:00
Jianmin Zhu
1aed4e8324 qcacmn: Remove CONFIG_MCL in roam_offload_scan_params
Replace CONFIG_MCL with WLAN_FEATURE_ROAM_OFFLOAD in
struct roam_offload_scan_params

Change-Id: Ibf9c393effc78a201525ae53cb9ced127244ee67
CRs-Fixed: 2363094
2018-12-22 02:54:15 -08:00
Arif Hussain
ee8d84061c qcacmn: Add null pointer validation in init_deinit_alloc_num_units()
Make sure mem_reqs is not null in init_deinit_alloc_num_units().

Change-Id: Id93616fa8b4bfda8216b34e15169fa1636efa5f3
CRs-Fixed: 2347695
2018-12-21 19:23:47 -08:00
Akshay Kosigi
46050aa104 qcacmn: Add NULL check for WMI handle
Adding NULL checks for WMI handle while registering or unregistering
events or event handlers

Change-Id: Icdf7032bad7289e62f5d7b17aab9780bcdf0ab1d
2018-12-21 10:05:40 -08:00
Pamidipati, Vijay
eb0e456d68 qcacmn: Add missing NULL check in DP rx path
Add a missing NULL check for peer object in rx_da_learn API
Also add missing elements in pdev_stats_cmn_tlv structure.

CRs-Fixed: 2357352
Change-Id: Ie54fd0a6a45f00d60420c391098f22b0097de3ac
2018-12-21 10:05:35 -08:00
Edayilliam Jayadev
db29e57ef8 qcacmn: remove CONFIG_WIN from Spectral module
Remove CONFIG_WIN macro from Spectral module.

CRs-Fixed: 2369720
Change-Id: I67154341497230c66b3c3f5a09894c8b2eff8bff
2018-12-21 10:05:32 -08:00
chenguo
8df4d46103 qcacmn: Remove the unnecessary info printing in SIRQ context
dp_reo_desc_free function can be executed in SIRQ context, so it
should not be expected that INFO printing which might cause locks
holding too long.

CRs-Fixed: 2367454
Change-Id: Ic77126fa62329547494ec6b672111c6183fadac2
2018-12-21 10:05:28 -08:00
Shiva Krishna Pittala
8512b848a6 qcacmn: Use QDF trace APIs for Spectral logging
Component level logging functions of Spectral module are calling
vprintk internally, change them to use QDF trace APIs
so that Spectral logging can be controlled at run time from qdf_cv_lvl.

Change-Id: I8244a29918718c70a8f384ea8df2d5c2ad5bfad2
CRs-Fixed: 2369842
2018-12-21 10:05:25 -08:00