Commit graph

4,556 commits

Author SHA1 Message Date
Rajeev Kumar
708e7f57c5 qcacmn: Remove multicast logging check from wlan_log_to_user API
Multicast logging is MCL specific feature which controls sending
of host and fw netlink DIAG events to user space. This feature
should not control console logging from wlan_log_to_user because
it can lead to all debug logs getting logged on console until
CFG INI for multicast logging is parsed during initialization and
this can lead to watchdog bark beacuse of excessive logging during
WiFi driver initialization. Hence remove multicast logging check
from wlan_log_to_user API to avoid logging all debug logs on console
during WiFi driver initialization sequence.

Change-Id: I2a29928757f683a72345436a57de1ee8d02f53b3
CRs-Fixed: 2217749
2018-04-05 16:41:16 -07:00
Arif Hussain
958e7515b2 qcacmn: spectral: Replace instances of unadorned %p
Replace instances of unadorned %p in
target_if_spectral_process_phyerr_gen3.

Change-Id: I1f70e613885780b71aa69cd12b61e9d24415b333
Crs-Fixed: 2213177
2018-04-05 11:04:32 -07:00
Tallapragada Kalyan
e33a5632b8 qcacmn: add abstraction to update rx stats
Add a new API to update the stats which will be
called from dp_rx_process instead of updating stats
directly from within the dp_rx_process function

Change-Id: I13bdfd1606c3ceb2e38921ffa0cf3fe9f29c57ee
CRs-Fixed: 2189088
2018-04-05 07:46:47 -07:00
Paul Zhang
2db395377a qcacmn: Add reg domain FCC2_FCCA
The defination is missing for reg domain FCC2_FCCA
which is used by country "DM" and "DO".

Change-Id: I4ad1cde55b54ba16eb6f1c6a2b96c73c17a932b9
CRs-Fixed: 2215875
2018-04-05 01:30:03 -07:00
Manjunathappa Prakash
029b665b6f qcacmn: Add enum for invalid htt stat type
Add enumeration for invalid stat type htt_cmn_dbg_stats_type for
ol_txrx_stats_callback handler.

Change-Id: I8a976737af8f226a1774950170f445c93ebf683b
CRs-Fixed: 2215678
2018-04-04 17:47:21 -07:00
Jeff Johnson
d7f3057bc4 qcacmn: Fix build error when Green AP disabled
When the Green AP feature is disabled in the Kbuild the following
build issue is observed:

target_if_green_ap.h:59:10: error: 'struct wlan_green_ap_egap_params'
declared inside parameter list [-Werror]
target_if_green_ap.h:59:10: error: its scope is only this definition
or declaration, which is probably not what you want [-Werror]

Fix this by including a forward reference for the struct.

Change-Id: Ia5d867c0ebde17dba0f20c1e97391197ae9dbb77
CRs-Fixed: 2216249
2018-04-04 16:40:04 -07:00
Soumya Bhat
560f90ce73 qcacmn: send packets for invalid peers
Add change to process packets received for invalid peer
when m_copy mode is enabled

Change-Id: I85aa41ff79e97eee9c696b63717206ac1329078e
CRs-Fixed: 2194058
2018-04-04 07:37:39 -07:00
Naveen Rawat
2a5dc61663 qcacmn: Fix memory allocation in NDP firmware events
Fix memory allocation during NDP firmware events by allocating
memory before wmi_extract APIs are called.

Change-Id: I3af2f49895a79a45b3add246eeb9025b1df92faa
CRs-Fixed: 2183493
2018-04-04 07:37:36 -07:00
Karunakar Dasineni
9ff1ef9798 qcacmn: Disable CE6 interrupts for Hawkeye
CE6 is used for autonomous HIF_memcpy by FW, but interrupts
are coming to host since there is no separate HW control to
turn off host interrupts. Avoid requesting these interrupts.

Change-Id: I7b09b7c6e39d37e111e6e7a4292f605b3fb602e0
2018-04-04 04:02:11 -07:00
Manjunathappa Prakash
9eaa6f099b qcacmn: Remove redefinition of *tx_flow_control_fp
ol_txrx_tx_flow_control_fp and ol_txrx_tx_flow_control_is_pause_fp are
redefined dp/inc/cdp_txrx_mob_def.h, original definition is in
dp/inc/cdp_txrx_cmn_struct.h. Remove duplicate redefinition.

Change-Id: I2c2af59d8b24360cd09efeb12ea19c0340771bb8
CRs-Fixed: 2215678
2018-04-04 04:02:08 -07:00
Manjunathappa Prakash
d345d27867 qcacmn: Remove obsolete dmac_inv_range API
Remove obsolete dmac_inv_range API, instead use
qdf_mem_dma_sync_single_for_cpu API where ever required.
https://www.kernel.org/doc/Documentation/DMA-API-HOWTO.txt

Change-Id: I44f14e6c87c1086decc600f59f298b7b8a94bc82
CRs-Fixed: 2215678
2018-04-04 04:02:05 -07:00
Rhythm Patwa
03f2586d7f qcacmn: Fix BSS color issue and add cmd support to disable BSS color
Add macros to set and get BSS color value and the BSS Color
disable bit values. These macros are used to construct the value
to send to the WMI BSS Color vdev param with BSS color and BSS color
disable status embedded.

Change-Id: Id0721a1a5d66fff5d2c50708aeefb5e0ec03e999
CRs-fixed: 2186897
2018-04-03 18:11:47 -07:00
Ruchi, Agrawal
89219d97b4 qcacmn: ast entry reset api for son
API to reset ast entry for son, ast entry active
field will be set on call of reset_api and all the
ast entry active field will reset on call of reset_table
api, ast_flush api will delete enteries in table

Change-Id: I26ed0fff818a112348a7aefba3b028ed40b2fe26
CRs-Fixed: 2209095
2018-04-03 16:50:17 -07:00
Tushnim Bhattacharyya
414d2e790c qcacmn: Use correct enum type in function send_get_rcpi_cmd_tlv
Use the wmi enum type in function send_get_rcpi_cmd_tlv converting from
rcpi_measurement_type.

Change-Id: I5b506059ad8b0f4cd65c24e20df6306a47249fdb
CRs-Fixed: 2216017
2018-04-03 16:50:15 -07:00
Chaithanya Garrepalli
e323f80584 qcacmn: remove assert for peer delete_in_progress from peer map
At the time of peer map delete_in_progress can be set for newly
created peer in case host send sends the peer delete to FW before
we receive the peer map even from FW

Hence removing the assert to check delete_in_progress flag in
peer map

Change-Id: I28b2f46cf4fdd12bf98ce54dd7dcea68d96dc795
CRs-Fixed: 2216550
2018-04-03 02:56:22 -07:00
Edayilliam Jayadev
bf873df722 qcacmn: Fix API for getting first vedv of pdev
Since vdev_id is globally unique across multiple pdev,
assuming vdev_id 0 to find the first vdev of a pdev wouldn’t work.
Fix this issue by getting the first vdev from the head of vdev
linked list maintained per pdev.

CRs-Fixed: 2211742
Change-Id: I5a7b5436cff363d5470fb600cca54f587a7d683e
2018-04-03 01:42:58 -07:00
Kabilan Kannan
7eab01c3f9 qcacmn: Add magic string for debug enhancement
Add magic string in the driver to automate the
stability analysis.

Change-Id: Ic4989d70827bbb680de428f8065e2fff6ea8ad2f
CRs-Fixed: 2212155
2018-04-02 19:39:42 -07:00
Kabilan Kannan
0cc70bc6ff qcacmn: Add magic string for memory leak debug
Add magic string in the driver to automate the
memory debug analysis.

Change-Id: I79b6ef49fa5c1c5fb74c72b228c3dae05b483a77
CRs-Fixed: 2212167
2018-04-02 19:39:40 -07:00
Kabilan Kannan
0cc3fc4ad8 qcacmn: Fix compilation warnings in TDLS
Fix the warning issue in TDLS, which popped up with newer
compiler options.

Change-Id: I1516a47ec01faa9315d2045ebcfe49097680e80d
CRs-Fixed: 2215517
2018-04-02 16:41:55 -07:00
Yuanyuan Liu
80bfeb949d qcacmn: Fix LLVM compiling issues
Remove typedef redefinition, use correct enum type, remove extra
parentheses and correct header guard.

CRs-Fixed: 2214003
Change-Id: I0a75c70cd530590a16f6bfa884955ebc26906de0
2018-04-02 16:41:52 -07:00
Tushnim Bhattacharyya
f940918d4f qcacmn: Use enum type policy_mgr_con_mode instead of enum QDF_OPMODE
Use enum type policy_mgr_con_mode instead of enum QDF_OPMODE.

Change-Id: Ia7a6bb5e05c6dac650dc6386734462547365a4eb
CRs-Fixed: 2214003
2018-04-02 16:41:50 -07:00
Tushnim Bhattacharyya
bf1e4f3f28 qcacmn: Use correct enum type in function call
Use correct enum type in tdls_determine_channel_opclass,
tdls_process_antenna_switch & tdls_process_send_mgmt_rsp.

Change-Id: Idd4e7ac47196e3e11971fe3013805b6a8551c8de
CRs-Fixed: 2214003
2018-04-02 16:41:47 -07:00
Abhishek Singh
dba772b9c8 qcacmn: Fix OCE WAN scoring logic for initial connection
Set the range of score index to 1-15 as 0 is used for the AP
which does not advertise the OCE WAN. Also if OCE WAN downlink
capability is 0 return 0 score.

Change-Id: I8c6757458c542050a6a31cb03fad0ce17d60aa16
CRs-Fixed: 2208282
2018-04-02 15:22:01 -07:00
Tiger Yu
054a6a4fd4 qcacmn: Initialize the local variable do_pm_get to false
Initialize the local variable do_pm_get to false to avoid using the
uninitialized variable potentially.

Change-Id: Ie45126b05afee1d4e5bb061189846bc8e301c2a6
CRs-fixed: 2215809
2018-04-02 15:21:59 -07:00
Kabilan Kannan
d6c4f2209c qcacmn: Validate nbuf in dp trace function
Validate nbuf before processing in dp trace function

Change-Id: Idb59f83edc09f9be8bf0bd231b8eb6ff28f37fd4
CRs-Fixed: 2213737
2018-04-02 15:21:57 -07:00
Chaithanya Garrepalli
0323f80221 qcacmn: Correct peer create-delete sequence
If peer with given MAC Address
already exists, just increment the refcnt
instead of allocating a new peer and deleting older
peer object. This avoids unnecessary memory fragmentation.

Change-Id: I76a3ffca4e907fccfdfd1b6857de721623f455d5
CRs-Fixed: 2209045
2018-04-02 15:21:55 -07:00
Anish Nataraj
cf526b7b9f qcacmn: Free memory for ppdu descriptor tlv list in detach path
ppdu tlvs are maintained in linked list and was not freed in detach
path but only freed after wdi post message. This was causing memory
leak to happen

Change-Id: I7b7b49d7ec829a6ef6b99edb1c7999bed713ae49
2018-04-02 03:09:00 -07:00
Venkata Sharath Chandra Manchala
bcfa6d8683 qcacmn: Add lock to protect rx_desc_pool
Create a lock for protecting rx descriptor
pool allocation during initialization and destroy it
during unloading the driver.

Change-Id: Icd489e400dab9bb648709134dcaa24c4d7724aa6
CRs-Fixed: 2215430
2018-04-01 21:02:38 -07:00
Sumedh Baikady
12b2b2c897 qcacmn: Use mon_lock while accessing monitor vap
Use monitor mode lock to prevent vap down while monitor
vap is still delivering all MPDUs to radiotap Api.

Change-Id: I908d8048afbf3210bddaafc2c19b177ec8209085
CRs-fixed: 2212004
2018-04-01 19:40:48 -07:00
Karunakar Dasineni
bef3b1b9b2 qcacmn: Disable batch intr for SW source rings
Source SRNG rings like RXDMA buffer rings only need low
threshold interrupts to ensure they are not empty. Disable
batch interrupts by setting batch count to 0.

Change-Id: I5de38caa1fccf162143d9598c0499dd8c5318391
2018-03-30 22:35:09 -07:00
Dustin Brown
44ece32672 qcacmn: Impl. qdf_print_thread_trace for non-ARM
qdf_print_thread_trace() depends on the kernel function
save_stack_trace_tsk() being exported. While ARM architectures export
this function in Kernel versions >=4.14, other architectures already
exported it. When compiling against non-ARM architectures, avoid
stubbing out qdf_print_thread_trace().

Change-Id: I139ea08479b44b59aef657a35125feeb0c011e2f
CRs-Fixed: 2215585
2018-03-30 14:48:22 -07:00
psimha
2bcdb546e5 qcacmn: Dump TLVs before freeing nbuf
Call dump packet TLVs API before freeing the nbuf containing the TLVs

Change-Id: I6d27de4d3331cbf7bd45d1d2b1ba5122f25b9f24
CRs-Fixed: 2213769
2018-03-30 13:30:48 -07:00
Soumya Bhat
dc8aca8501 qcacmn: Strip additional bytes from skb containing Rx payload
In existing code, the RX payload buffer for M-copy mode contained
RX MSDU payload followed by additional TLV data.

Add change to strip the skb and only provide MSDU payload

Change-Id: I9834fabfb0e26404a620d8419e7c570fff68f182
2018-03-30 06:31:18 -07:00
Venkateswara Swamy Bandaru
7fc11f76a3 qcacmn: Fix htt_included bit set for tx frames
Set htt_included bit for frames that have only valid htt header.

Change-Id: I481282c74ca7d247dece25aedf5f95f641260bda
CRs-Fixed: 2206348
2018-03-30 04:04:36 -07:00
jitiphil
3caf63aa26 qcacmn: Add NULL check for 'pl_dev'
Currently 'pl_dev' is dereferenced without check for NULL in
get_pktlog_handle function in pktlog_internal.c

To address this issue add NULL check before dereferencing

Change-Id: Ic258db7bf1b404ff4f2d6c18abe775335074268b
CRs-Fixed: 2196058
2018-03-30 02:46:51 -07:00
Edayilliam Jayadev
269c3deaac qcacmn: Fix for direct dma + ftm mode
This change fixes the null pointer dereference issues
observed when running spectral scan using direct dma
framework with ftm mode.

CRs-Fixed: 2214269
Change-Id: I06514b38b519da7eb972ff713feab97e7d5a9c29
2018-03-30 02:46:49 -07:00
Dustin Brown
37244642bf qcacmn: Featurize QDF_ASSERT
QDF_ASSERT is not properly featurized with its own build time config
flag. This leads to unnecessary logs and increased driver size for
platforms which do not want the feature enabled. Use the newly
introduced WLAN_WARN_ON_ASSERT build time flag to decide if QDF_ASSERT
should be a no-op.

Change-Id: I39e3ab6499210569b6ce09d77ee72f0081741989
CRs-Fixed: 2211983
2018-03-30 02:46:47 -07:00
Chaithanya Garrepalli
4c7099f001 qcacmn: Add lock for update ast entry
Add lock protection while update of ast entry for
peer

Change-Id: I0f61add9a06174303b40b017a6f1f2d202f3cf55
CRs-Fixed: 2210301
2018-03-30 02:46:44 -07:00
Aditya Sathish
61f7fa32c4 qcacmn: Fix Static Code Analysis Issues
Fixes static code analysis issues relating to null pointer
dereferencing and array bound issues.

Change-Id: I365277d9e690ca92351530f01162094ad2bca6ad
CRs-Fixed: 2208294
2018-03-29 22:30:33 -07:00
Vivek
71a0ad2500 qcacmn: API to get peer count per psoc
Implement API to get the number of peers
created within a psoc

Change-Id: I4cbb814d00b707355b77be807a462978e22d653a
CRs-Fixed: 2213331
2018-03-29 22:30:31 -07:00
Anish Nataraj
f12b0a3463 qcacmn: Update netdevice stats to reflect ifconfig counters
netdevice_stats structure tx/rx/drop/error counters are assigned
proper values

Change-Id: I8e123a810a02292339a34b54bfebe3a56ae99dbd
2018-03-29 20:14:03 -07:00
Anish Nataraj
0573462cb2 qcacmn: Aggregate peer rssi and rx rate stats
peer rssi and rx rate stats counters aggregated
to vdev/pdev level so that athstats shows proper values

Change-Id: I4d4a28006c30b1f2eba77bbeaddb9723626166db
2018-03-29 20:14:01 -07:00
Venkata krishna Sundararajan
471b552ca5 qcacmn: Add OS abstraction for NSEC_PER_MSEC
Currently code that is os-abstracted is referencing the
Linux-specific macro NSEC_PER_MSEC which violates the software
architecture. Introduce a new QDF macro to os-abstract this
Linux-specific macro.

CRs-Fixed: 2210748
Change-Id: I519773f2fd2a7227a285cf3832a758005a0f3900
2018-03-29 18:57:34 -07:00
Venkata krishna Sundararajan
e456cb8400 qcacmn: Add qdf wrapper for ktime, hrtimer related APIs
Add qdf wrapper for ktime, hrtimer related functions
and abstracts in qdf layer. The  wifi driver use the
qdf wrappers for the above APIs.

ktime APIs:
=========
ktime_to_ms
ktime_set
ktime_to_ns
ktime_add_ns
ktime_get
ktime_add
ns_to_ktime

hrtimer APIs:
=====
hrtimer_forward
hrtimer_active
hrtimer_callback_running
hrtimer_cancel
hrtimer_is_queued
hrtimer_get_remaining
tasklet_hrtimer_init
tasklet_hrtimer_cancel

CRs-Fixed: 2138717
Change-Id: Ic4655d6b342f2121a5acc9b1c6bda7aabd154f8f
2018-03-29 18:57:32 -07:00
Sandeep Puligilla
87bcfb4b86 qcacmn: Deprecate enum wmi_dwelltime_adaptive_mode
Deprecate enum wmi_dwelltime_adaptive_mode and use enum
scan_dwelltime_adaptive_mode defined in scan component.

Change-Id: I9c33b852172d9208fb8440c6dc71a12aefd717da
CRs-Fixed: 2213074
2018-03-29 18:57:29 -07:00
Kiran Venkatappa
99556ec2cc qcacmn: WMI interface changes to configure TWT
Add WMI interface changes required to configure TWT

Change-Id: I307f65f8049caf8365fb496fd69f91600ddbd832
CRs-Fixed: 2212556
2018-03-29 13:16:14 -07:00
Srinivas Pitla
6c56b09a43 qcacmn: Define list iterate API without ref count protection
In few cases, ref count mechanism is not able to protect access of
all objects, and if ref count is taken without considering object state,
it is causing double free. so, defined an API which protects list through
locks and accesses all objects.

As the current ref count increment API do not check for ref count value to
increment. This is causing object being accessed and ref count taken during
physical destroy leads to double free on releasing ref count

Change-Id: Iff140c581984bf660a48c2b927c4ac2933afa822
CRs-Fixed: 2200871
2018-03-29 06:57:57 -07:00
Edayilliam Jayadev
2703fafbe2 qcacmn: Use new phymode for vht in 2G
Today for VHT in 2G, we are sending WMI_HOST_MODE_11NG_HT20/40
as phymode values to FW. Change this to WMI_HOST_MODE_11AC_VHT40/20_2G
which are dedicated phymodes defined for VHT operation in 2G.
This change is applicable only for tlv based chipsets.

CRs-Fixed: 2205265
Change-Id: I9482bfd1834285a21b5a45b6c039a13e9cd80479
2018-03-29 06:57:55 -07:00
Jeff Johnson
b311d8e273 qcacmn: Remove WLAN_SER_CMD_SCAN_IDLE_SCAN
enum WLAN_SER_CMD_SCAN_IDLE_SCAN is unused, so remove it.

Change-Id: I32acf848448ab3a739099e7446cd82c401aa11c9
CRs-Fixed: 2212931
2018-03-28 20:01:49 -07:00
Gurumoorthi Gnanasambandhan
8387311409 qcacmn: Handle invalid peer after deauth
Receiving HAL_RXDMA_ERR_UNENCRYPTED instead
of REO null desc exception for invalid peer.
Handle invalid peer in HAL_RXDMA_ERR_UNENCRYPTED
path also.

Change-Id: Ibb01ab7f23648bca15c86553ec53afa5fb181ad6
2018-03-28 20:01:46 -07:00