提交線圖

5306 次程式碼提交

作者 SHA1 備註 日期
Venkata Sharath Chandra Manchala
9a59bd6483 qcacmn: Add a new parameter to the srng table
Add max_size parameter in the hw_srng_table
to hold the maximum size for a given ring.

Change-Id: Ibfce021505ab9a55d3208b1c5aba26021d1fe230
CRs-Fixed: 2262818
2018-07-11 14:29:27 -07:00
Varun Reddy Yeturu
342371e063 qcacmn: Add locks to serialization component
Serialization component's APIs may get called by various
component owners through different thread contexts. This makes
lock a mandatory requirement in order to prevent any shared data
corruption.

Implement abstract lock APIs within serialization component and
use them in all public serialization APIs which access various
command queues.

Protect the serialization list node by introducing a check for
the state of the node and check for the state before deleting
the node.

Change-Id: Ida74b2e958e37943f1ebedb854d5c35862813498
CRs-Fixed: 2226663
2018-07-11 14:29:24 -07:00
Jianmin Zhu
480210436f qcacmn: Avoid race condtion in wlan_serialization_pdev_scan_status
wlan_serialization_pdev_scan_status is used to check whether
there is scan cmd in active or pending list,  don't need to
check details of each node in list.

While checking details of a node in list by wpa_supplicant,
the node may be removed by mc thread in race condition.

Change-Id: I019869c23ebb7d6e157babf5ad6eaf0668ff842a
CRs-Fixed: 2268619
2018-07-11 14:29:21 -07:00
Dustin Brown
98b7303494 qcacmn: Add timeout QDF_STATUS to errno mappings
QDF_STATUS_E_TIMEOUT is currently mapped to the default -EPERM in
qdf_status_to_os_return(). Add a mappings to -ETIMEDOUT instead.

Change-Id: I61af2fb00ee83118ba09b2c3fbc5995b14212d87
CRs-Fixed: 2275459
2018-07-11 14:29:19 -07:00
c_priys
0757caeff0 qcacmn: Initialize wifi_core_id to default value
During device reset, wifi_core_id will not be initialized if the
target is not in ready state. Hence assigning default value to it.

Change-Id: I91f3f640ed9252351cb82fbde2515c9308992635
CRs-Fixed: 2180836
2018-07-11 14:29:16 -07:00
Dustin Brown
352de8a613 qcacmn: Add qdf_thread_run and qdf_thread_join APIs
For cases where you want to create and immediately start a thread, the
Linux kernel has the kthread_run() API. Create a QDF wrapper for
kthread_run() as well as companion APIs for waiting for a thread to exit
and one to check if the current thread should exit.

Change-Id: Ia4e107010fc400f764661a9b36aceea970841ade
CRs-Fixed: 2270827
2018-07-11 14:29:13 -07:00
Will Huang
d6c3b87fcd qcacmn: Fix active_tasklet_cnt mismatch issue
Issue can be reproduced when test D0WOW ROME PCIE.
Multi interrupts may only trigger tasklet one time,
which will cause active_tasklet_cnt mismatch.

Check tasklet/napi scheduled state

Change-Id: I66b5544c4d57fe91eae75d4cf8578e30b498e1fd
CRs-Fixed: 2070872
2018-07-11 14:29:10 -07:00
Wu Gao
fe1ee41cd8 qcacmn: Do not request new ROC if there is idle ROC in queue
When transmitting management frames, do not request new ROC if there
is idle ROC on same channel in queue.

Change-Id: Id7b33aa2b9fa376675c520161e4c907ea0593c88
CRs-Fixed: 2275191
2018-07-10 18:42:11 -07:00
Krunal Soni
304792abd8 qcacmn: Fix peer ref counting leak while finding and deleting peer
There are two instances where peer ref counting leak has been observed
1) When DUT-STA is connected to AP1 and if it tries to roam to AP2 or
   to same AP1 then as part of roam sync indication, it needs to delete
   the old peer and create the new peer. Deletion of old peer is
   happening through force delete operation which is No-OP for some of
   the platforms. In such cases, do normal peer delete operation, so
   that peer ref count can be deleted properly.

2) When looking up peer by its associated vdev, driver goes one by one
   all peers and check their associated vdev and compare with given
   vdev. If it doesn't find the match then it returns without releasing
   the reference count.

CRs-Fixed: 2263607
Change-Id: Ibcad72943258e531e29498961d3d7e692fd05b36
2018-07-10 18:42:09 -07:00
Rajeev Kumar Sirasanagandla
6b6b91db11 qcacmn: Update QDF API to convert ASCII hex char to decimal value
To convert ASCII hexa decimal character to unsigned value and similarly
to convert string of ASCII hexa decimal characters to array of decimal
values, there is need of QDF API.

Therfore, add QDF wrapper functions to kernel API hex_to_bin() and
hex2bin().

Change-Id: I4692961eeba9067f9b737f7deeefca397ff1a7bf
CRs-Fixed: 2274320
2018-07-10 18:42:07 -07:00
Ashish Kumar Dhanotiya
587df12305 qcacmn: Invalid dependency of header files
There is an invalid circular dependency of header files in the
driver. qdf_nbuf.h file includes itself as qdf_nbuf.h file
includes i_qdf_nbuf.h and i_qdf_nbuf.h again includes qdf_nbuf.h.

To resolve this issue, do not include qdf_nbuf.h in i_qdf_nbuf.h

Change-Id: I940321b23e95a81601657d149ff31826db2522ba
CRs-Fixed: 2267066
2018-07-10 15:40:08 -07:00
Rathees kumar Chinannan
b8f2d083bd qcacmn: Add support to extract Extender IE in beacon
Added support to extract extender IE in beacon receive.

Change-Id: I04ee63a6c1280e2e3858eb665c549de800d672f4
CRs-Fixed: 2258771
2018-07-10 15:40:06 -07:00
Rajeev Kumar
49496d088a qcacmn: Enable CE scheduling logging feature
Enable CE schedulign logging feature such that each CE
activity can be recorded for debug purpose. Previous commit
I68a765c6219a2ff2a6a7adc7e8ed031f8957d243 has broken this
debug feature. Fix the CE scheduling logging feature properly
such that its available in SLUB debug enabled builds.

Change-Id: I24ca711378ecda8a8563fe3899fae16ca032f29d
CRs-Fixed: 2272459
2018-07-10 14:06:49 -07:00
Dustin Brown
fe41df9c00 qcacmn: Move panic messages into QDF_DEBUG_PANIC
QDF_DEBUG_PANIC has recently gained a reason parameter. Move instance of
logging followed immediately by QDF_DEBUG_PANIC to single calls.

Change-Id: Ifc00be410621005e8494074ed00b1b7e44cc6a03
CRs-Fixed: 2271769
2018-07-09 15:55:35 -07:00
Abhinav Kumar
9791957823 qcacmn: Fix high latency during BTM roaming
While processing the WMA_ROAM_OFFLOAD_SYNCH_IND event, The
driver takes nearly 150 to 200 msec time to just write fatal,
error and info messages to the kmsg log buffer. Also to get
tx power supplicant runs another thread while roaming. These
cause more latency(300ms) to send WMA_ROAM_OFFLOAD_SYNCH_CNF
message to fw. To decrease roam latency, the driver should
write the only necessary error message to kmsg buffer.

Fix is to change irrelevant fatal, error and info message type
to debug.

Change-Id: I521104c692eb42112ce2528c15d09785ff3470b6
CRs-Fixed: 2261592
2018-07-09 12:58:34 -07:00
Sriram Madhvapathi
6615d89b58 qcacmn: SDIO HIF Layer refactor
1. Modifications for SDIO HIF interface with stack.
 Mailbox based devices do not use the SDIO abstraction layer.
 So, devices like QCA6174, QCA9379 etc are to interface with
 the SDIO stack directly, even if the CNSS wrappers are used.
 ADMA based devices use the SDIO abstraction layer. So, devices
 like QCN7605 do not interface with the SDIO stack directly.

2. Remove redundant osdrv layer and refactor the functions
3. Propagate hif context to all the interface functions in hif
4. Remove duplicate hif object allocation (scn) in SDIO hif

Change-Id: I75cfe97b1ef913d1a3e6e556ec5eff796eb9f1d9
CRs-Fixed: 2271110
2018-07-09 12:58:31 -07:00
Pragaspathi Thilagaraj
7bfb1e9baf qcacmn: Fix OOB read in iw_hdd_set_var_ints_getnone
From the IOCTL command WE_POLICY_MANAGER_PCL_CMD, we get the cds
concurrency mode as argument and pass it to cds_get_pcl to get
the pcl channel list. This concurrency mode parameter is used as
the array index to retrieve the enum cds_pcl_type. If this value
is greater than CDS_MAX_NUM_OF_MODE an OOB read will occur in
iw_hdd_set_var_ints_getnone.

Add check to validate the input cds mode argument against the macro
CDS_MAX_NUM_OF_MODE. Return error if it is violated.

Change-Id: I51073061be363d9680abf0566b77be7c7573d0fe
CRs-Fixed: 2233991
2018-07-09 07:03:07 -07:00
Liangwei Dong
bf9efa7561 qcacmn: Extract Hw mode Id and band info
Extract/Save the Hw mode ID and Mac0 band info
to hw mode list.
This helps to identify the 2x2 5G + 1x1 2G and
2x2 2G + 1x1 5G.

Change-Id: I0682337b1a80c1b502c3307e0847aaa99479d2d3
CRs-Fixed: 2256152
2018-07-09 07:03:04 -07:00
Rachit Kankane
dfd97f38f6 qcacmn: Call blocking functions in right context
Call blocking functions free_g_qdf_dp_trace_tbl_buffer and
allocate_log_msg_buffer under non-atomic context.

Change-Id: I534c95b19cb08472db4a4a0f8285769841b00326
CRs-Fixed: 2273581
2018-07-09 05:32:55 -07:00
Akshay Kosigi
1a9c6d1d4c qcacmn: Rename osif_pdev and os_if_vdev in dp_pdev and osif_dev
structures

Rename osif_pdev to ctrl_pdev and os_if_vdev to ctrl_vdev in dp_pdev and
osif_dev structures respectively which are
pointing to objmgr_pdev and objmgr_vdev structures to maintain
uniformity

Change-Id: Ida95a1a90ea74513573f00c652338baee3df897a
CRs-Fixed: 2241362
2018-07-09 02:02:23 -07:00
Rachit Kankane
371fce287d qcacmn: Allocate MAC Trace buffer dynamically
Allocate memory for g_qdf_trace_tbl buffer dynamically.

Change-Id: I5e9ba0a33e220ead36e0775f00000346aae68373
CRs-Fixed: 2267922
2018-07-08 23:30:46 -07:00
nobelj
a0c640b5fb qcacmn: Fix rx nss stats for fixed rate nss 1
rx nss calculated based on stbc.

Change-Id: I355f28bc8dcf1460247d51753c9309f4d2e8010b
2018-07-08 19:42:44 -07:00
Gyanranjan Hazarika
1d0fedf86c qcacmn: Add host support for WMI_VDEV_PARAM_SET_HE_SOUNDING_MODE
WMI_VDEV_PARAM_SET_HE_SOUNDING_MODE provides the scope for host
to configure the sounding mode to (VHT or HE). It also provides
(SU or MU) and (Triggered or Non-Triggered) configurability.

Change-Id: Iac566383c5a6b6b3b402526afd2bfa4818f27bc5
CRs-Fixed: 2262752
2018-07-06 20:31:28 -07:00
Sandeep Puligilla
ee875f47d7 qcacmn: Reduce roam offload logging level
Reduce log level of channel list logged as part
of roam scan offload command processing.

Change-Id: I8b37db9de94d8f399525255f7d073a6340a058f3
CRs-Fixed: 2271608
2018-07-06 19:10:53 -07:00
Kiran Kumar Lokere
9c0d0e0422 qcacmn: Define new test config for Tx beamformee NSTS
Add new wifi test config for Tx beamformee NSTS configuration

Change-Id: I60244985934c042a0b8178ace3a856de66bcaf61
CRs-Fixed: 2269068
2018-07-06 16:34:28 -07:00
Anirban Sirkhell
d01ccdf6eb qcacmn: Add WMI for estimated airtime calculation
Add support for sending WMI command to firmware
to measure estimated airtime that a new client
will get and populate the result that firmware
returns in the ESP IE.

Change-Id: Ic5fcb11100ecd0597ba02dfa5512e2f4ff3558c9
CRs-Fixed: 2261469
2018-07-06 04:45:23 -07:00
Subrat Mishra
ab28071e57 qcacmn: Add OL param for estimated airtime calculation
Introduce OL param to configure estimated airtime metrics.
Periodicity, airtime, ppdu duration and block ACK window.

Change-Id: Id3d538928f9140fabfaaa6f042fcff6b9df4bef0
CRs-Fixed: 2261469
2018-07-06 04:45:21 -07:00
gaurank kathpalia
4a987aa95d qcacmn: Fix hw mode change issue in case of DBS
The driver stops the oppurtunitistic timer for DBS, when
the start AP requests come, which results in HW mode stuck
in DBS if the next vdev start request comes on the same MAC
This further results in NSS = 1 for the MAC, hence throughput
decreases.

Fix is to set hw mode to single MAC in case the STA/SAP comes up
in the band/channel

Change-Id: I8ec4282c78594ee7e133a1e7768fa230bb2e8180
CRs-Fixed: 2273443
2018-07-06 03:19:19 -07:00
Nirav Shah
4c8b78a44c qcacmn: Add support for QCN7605(Genoa)
1. Copy engine assignment changes for Genoa.
2. Add support for QCN7605 device type.

Change-Id: I5cf6b765a51608c27f2ef2e6d3bf45b64875dd6c
CRs-Fixed: 2265278
2018-07-06 03:19:17 -07:00
Sathish Kumar
07734b957b qcacmn: Add OL param for DBR ring status dump
Direct Buffer Rx module has an API to print the status of the rings
per module per pdev. Introduce OL param to support this through
CLI.

Change-Id: Iebbd2c314e72dc0753cdcb581f17d93d3c71a5db
CR-Fixed: 2263968
2018-07-06 01:46:08 -07:00
c_priys
b214c2454c qcacmn: WMI Recording Failure on Multi-radio RDPs
WMI recording is done per pdev and hence an instance of
debugfs directory (eg: WMI0, WMI1, WMI2 for 3 radio boards)
has to be created in /sys/kernel/debug/ path.

The wmi handle is per pdev and hence is causing the problem of wmi_instance
being 0 always as each pdev has its own wmi_handle.
WMI1 and WMI2 debugfs directories are not created as wmi_instance
is always 0.

WMI debugfs directory is created for every pdev of the psoc and naming
convention is changed to WMI_SOCx_PDEVx.

Change-Id: Ieb7e9d072d84f699588a8f719508c5cd8d9873fb
CRs-Fixed: 2232472
2018-07-06 00:16:36 -07:00
c_priys
85191774b5 qcacmn: Re-configure interrupt bits once again after FW resets
Issue:
Customer sees a lot of NOC errors after wifi comes up as
FW resets the interrupt bits that host configured and
then checks whether interrupt bits are enabled. FW then enters
into MSI mode without filling the necessary MSI address and MSI
data registers with proper values and this leads to lot
of NOC errors on the platform.

Fix description:
Configure the interrupt bits one more time after FW
resets the registers and then mark the host ready bit
in FW indicator address

CRs-Fixed: 2056198
Change-Id: I7a8871a9878b415ec90c4938df669c6225e79586
2018-07-06 00:16:33 -07:00
Kiran Kumar Lokere
b49263bc0b qcacmn: Add support for SRD channels in ETSI domain
Add support for Short Range Devices 25 mW max power
channels in ETSI regulatory domain.

Add Short Range Devices 25 mW max power channels only
if DSRC feature is disabled.
Provide service apis to check SRD and DSRC channels.

Change-Id: Ib2a1d7cf191d07319cb29038ad60130f5cbe7f16
CRs-Fixed: 2264790
2018-07-05 20:49:34 -07:00
Wu Gao
661ec9d74a qcacmn: Verify id before removing idr
It causes kernel warning if remove an invalid id. So, verify id before
removing idr.

Change-Id: I22cd5753a6e4fae0087faaee1c722017523b311e
CRs-Fixed: 2271235
2018-07-05 19:32:04 -07:00
Sravan Kumar Kairam
f1e0766647 qcacmn: DP peer functions code cleanup
Remove pre processor directives for platform specific
dp peer functions and have stubs for them.

Change-Id: Ibdb9114918bbec86cc4be411f730da5777204226
CRs-Fixed: 2262603
2018-07-05 14:14:05 -07:00
Dustin Brown
45b7264097 qcacmn: Enable configuration component in dispatcher
Enable the configuration component in dispatcher, by calling the
cfg_dispatcher_init() and cfg_dispatcher_deinit() functions.

Change-Id: I1aa0d79729f35be422457280700cf1121a1873bf
CRs-Fixed: 2258230
2018-07-05 14:14:03 -07:00
Pramod Simha
21e69f5fe2 qcacmn: Handle reinjected pkts in REO null q execption
Prevent setting of nbuf length when it's non linear
i.e. contains an extension list. This happens when a reinjected
defragmented packet encounters a NULL q exception.

Change-Id: I937b1bf9e1461edd89dec62a9c9e17b8c3b9315f
CRs-Fixed: 2256075
2018-07-05 12:44:12 -07:00
Yeshwanth Sriram Guntuka
985e8440d5 qcacmn: Fix possible buffer overflow in wma_encrypt_decrypt_msg_handler
Data len received in encrypt decrypt data response
is not validated against the max allowed size which
can result in buffer overflow.

Fix is to validate data len against max allowed size.

Change-Id: I69bd8e63014220e5a2f291e4a0b1914d10c79fd7
CRs-Fixed: 2226375
2018-07-05 12:44:10 -07:00
Linux Build Service Account
686253e1f1 Merge "qcacmn: Deregister rx callback if failed to abort P2P scan" 2018-07-05 10:03:11 -07:00
Gerrit - the friendly Code Review server
ff887f7a2e Merge changes into wlan-cmn.driver.lnx.2.0 2018-07-05 09:47:33 -07:00
Wu Gao
7e6e9b3180 qcacmn: Deregister rx callback if failed to abort P2P scan
For failed to abort P2P scan case, it won't deregister rx callback and
then memory leak. To fix the memory leak, call deregister rx callback
if abort P2P scan fails.

Change-Id: Iad4087175d437bf73363c782181b070492251f5b
CRs-Fixed: 2268674
2018-07-05 08:23:35 -07:00
Ajit Pal Singh
973024916e qcacmn: Add new definition of usb_hif_get_logical_pipe_num()
Add new definition of usb_hif_get_logical_pipe_num() for Genoa(QCN7605)

Change-Id: I278407b6f373c8a4e0509a1597ca27d83f8104fd
CRs-Fixed: 2266915
2018-07-05 06:42:22 -07:00
Ajit Pal Singh
a63ed8be19 qcacmn: Init tgt_info->target_type for QCN7605 USB
1) Setup target_type for QCN7605(Genoa) USB.
2) Do not reset soc in hif_usb_diag_write_cold_reset() for QCN7605
3) Skip USB_REQ_SET_CONFIGURATION and usb_set_interface() for QCN7605
4) Return false in hif_needs_bmi() for QCN7605

Change-Id: I159b7043d55c5a1a341defde89cd8ccc760bb830
CRs-Fixed: 2266915
2018-07-05 06:42:20 -07:00
Ajit Pal Singh
cd4a1c4308 qcacmn: qcn7605: Add support for HIF_RX_CTRL_PIPE
For QCN7605-USB, WMI_CTRL_SERVICE will use an exclusive
IN USB endpoint.

Change-Id: Ia943c9c3741e91f4b13a85719eee770c08ce8379
CRs-Fixed: 2266915
2018-07-05 06:42:17 -07:00
Bala Venkatesh
9bf4f33852 qcacmn: Avoid possible buffer overflow
In function tdls_ct_sampling_tx_rx, memcpy of
unknown length buffer is done into fixed size
struct array. Mem copying without checking
length can lead to buffer overflow.

Change-Id: I0608bd69d71ff1901f82b44d045963e9d383e6ce
CRs-Fixed: 2269276
2018-07-05 06:42:15 -07:00
Frank Liu
1a3151ed20 qcacmn: Post tdls connet/disconnect event to target_if queue
TDLS will update tdls firmware state according to STA connection status,
the change is to post tdls connect/disconnect event to target_if queue,
otherwise these events will be scheduled too late which would be out of
sync, cause unexpected results.

Change-Id: I76d70339f236b580bfb98fb1b8f5121784cb3465
CRs-Fixed: 2269978
2018-07-04 17:30:42 -07:00
Shreedhar Parande
ced1918365 qcacmn: Commands related to PreCAC auto channel switch support
Added commands for setting intermediate channel and
getting precac channel state.

CRs-fixed: 2272085
Change-Id: I735f70008abdbe60ce2c167e7c0fe9227572b96c
2018-07-04 13:05:10 -07:00
Lihua Liu
0fd49e9a6f qcacmn: Add check for valid length to avoid buffer overflow
Add check for valid length before copying in function
extract_ndp_ind_tlv to avoid potential buffer overflow issue.

CRs-Fixed: 2271344
Change-Id: I2ddcbc46a45d4d5308b1e0cf663598c85512bbaf
2018-07-04 11:38:14 -07:00
Jianmin Zhu
e0abd264db qcacmn: Move SAP to safe channel after STA disconnection
Standalone SAP is not allowed on lte-coex channel if STA+SAP SCC
enabled on lte-coex channel. So move the SAP to a safe channel
once STA disconnected.

Change-Id: I00682f5bbb3da772e3e26ccd8d08183be28cc9ec
CRs-Fixed: 2265263
2018-07-04 10:22:19 -07:00
Jianmin Zhu
143f083967 qcacmn: Fix compile implicit conversion from enumeration type error
Error: implicit conversion from enumeration type
'enum wlan_umac_comp_id' to different enumeration type
 'wlan_objmgr_ref_dbgid' [-Werror,-Wenum-conversion]

Change-Id: I641c1eee77e977547841cebb4fd2fef8c06ca18c
CRs-Fixed: 2271058
2018-07-04 10:22:16 -07:00