Wykres commitów

4307 Commity

Autor SHA1 Wiadomość Data
Dustin Brown
d1f73fa8ef qcacmn: Add const to qdf_*_parse function parameters
Add const to the 'char *' parameters of the qdf_*_parse family
of functions.

Change-Id: Ia106da9b9832bfe08a594a43926d68b4aa840f1f
CRs-Fixed: 2194529
2018-02-27 01:57:44 -08:00
Disha Das
19fa32351f qcacmn: Set mpdu data ptr correctly
Handle mpdu data pointer for PMF frames based on EXT IV bit

Change-Id: I7c1b585a538402ae784985852c873537c0e4eb86
2018-02-27 00:29:33 -08:00
Jeevan Kukkalli
d819e98465 qcacmn: Parameter API related changes
Added flag to enable/disable parameter api feature on
a particular radio

Change-Id: I9f814d477a1ed24cadb957fe79585b0c89e88ff7
CRs-Fixed: 2180230
2018-02-26 22:47:07 -08:00
Abhishek Singh
46a383c663 qcacmn: Add scan filter to ignore PMF check for STA test mode
In testbed STA mode the RSNE may not match with APUT and thus
driver fails to filter AP from scan cache as PMF capability
mismatch.

With this change driver will ignore PMF capability check and
proceed with connection to send auth and assoc to APUT.

Change-Id: I195cda133c8d2b9d38b1d2966261c320185ffeca
CRs-Fixed: 2195352
2018-02-26 21:44:57 -08:00
Venkata Sharath Chandra Manchala
65812e69c8 qcacmn: Fix for Tx completions counter not being updated in txrx_stats
Tx completion success counters are not being updated correctly.
Accumulate successful completions in tx_success variable.

Change-Id: I290e581e93e03ad23e349c9df7834174d6d3a787
CRs-Fixed: 2191599
2018-02-26 21:44:54 -08:00
Dustin Brown
26e61b5928 qcacmn: Fix inappropriate use of qdf_str_lcopy()
A call into qdf_str_lcopy() is passing qdf_str_len(src) as the
destination buffer size parameter. Instead, pass the actual size
of the destination buffer.

Change-Id: I62ff473d9d45cfa53c5fc3df27743690586381c0
CRs-Fixed: 2196114
2018-02-26 21:44:52 -08:00
Shashikala Prabhu
249ddc70eb qcacmn: Fix radar detection failure for 11A mode
AP does not add the RADAR found channels to NOL when user configures
the AP in 11A mode. This is because, dfs_get_bonding_channels()
returns the number of bonding channels as 0 for 11A mode. Hence, the
radar detected channel are not added to NOL.

Add change to get bonding channels for 11A mode.

Change-Id: I88db7f1241c5915021071e9caa1cfb8b7fa94c7f
CRs-Fixed: 2195597
2018-02-26 21:44:50 -08:00
Yeshwanth Sriram Guntuka
e8d9e209a8 qcacmn: Add support for HW mode info vendor command
Add support for HW mode info vendor command which sends
mac id, band, interface id and frequency information for
each MAC provided by driver to userspace.

Change-Id: If1112d29b8781cf5ba0480c84feeb772142f2c0e
CRs-Fixed: 2185559
2018-02-26 16:50:00 -08:00
Shaakir Mohamed
4374b684de qcacmn: Add TLV support for WMI command to get tpc config
Adds tlv support to get TPC config WMI command.

Change-Id: I4f465ae03c00df8f741288361c4579d911b68906
CRs-Fixed: 2187552
2018-02-26 15:57:56 -08:00
Dustin Brown
b067d27d61 qcacmn: Add context parameter to qdf_ini_parse()
In order to avoid global state, add a context parameter to
qdf_ini_parse. This parameter will get passed back to consumers via
the existing callbacks.

Change-Id: Icd74a58815701b4603924838bb84c7956058da6b
CRs-Fixed: 2194517
2018-02-26 15:57:53 -08:00
Ruchi, Agrawal
c729c57e65 qcacmn: Resolved NULL ptr dereference in detach path
On attach , allocation failed and in error handling
path it will call pdev_detach to free the resource,
resolved NULL pointer dereference which was causing
kernel panic.

Change-Id: I0fd5395fc2d4d2040049124094231dfa524a66b7
CRs-Fixed: 2192809
2018-02-26 13:42:17 -08:00
Om Prakash Tripathi
5e47d43331 qcacmn: Add support to drop beacon if channel mismatch
Add support to drop beacon, probe response frames if frame
receipt channel and channel mentioned in IEs dont match.

Change-Id: Ib545f125dc53ccfb21abf6bdcb94a327ecde5a0a
CRs-Fixed: 2149224
2018-02-26 13:42:14 -08:00
Rajeev Kumar
8b221806ac qcacmn: Create new QDF file qdf_util.c
Create new QDF source file qdf_util.c to keep FW down
APIs inside it.

Change-Id: Ic2a91cf8924d08307b3307d5f214663247125582
CRs-Fixed: 2195157
2018-02-26 12:08:39 -08:00
Vinay Adella
b99ecba783 qcacmn: Add support for more WNM subtype frames
Parse WNM action frames like TFS, FMS, TIM, WNM-SLEEP
so that they are not dropped as unspecified frame type.

CRs-Fixed: 2188942
Change-Id: Id3add53eb18b37a394d8387f7d32e9efd34671a9
2018-02-26 08:34:36 -08:00
Srinivas Pitla
0e3478d8a8 qcacmn: Fix passing right pointer as pdev object
As part of init FR, osif_pdev object stores pdev object, so same has
to be passed as param.

Change-Id: Ic9c41e5ef54fdb80898f10f27a86970e76d1f24c
CRs-Fixed: 2188451
2018-02-26 06:35:04 -08:00
Yeshwanth Sriram Guntuka
aaeb68237e qcacmn: Set hw mode based on channel_select_logic_conc ini
Set hw mode to DBS or single MAC for STA+STA and STA+P2P
concurrencies based on channel_select_logic_conc ini.

Change-Id: I46ba4d5cd8f5cda71d0c00be2b612bc851eb5ba4
CRs-Fixed: 2189848
2018-02-26 06:34:59 -08:00
Yeshwanth Sriram Guntuka
4a2dfa987f qcacmn: Add ini support for channel selection logic
Add ini to select DBS or inter-band MCC channel selection logic
for STA+STA and STA+P2P connections.

Change-Id: I7cfde9592ec210b0a8c812171d2bc6f005e17fb2
CRs-Fixed: 2189845
2018-02-26 06:34:53 -08:00
Sravan Kumar Kairam
68a824774c qcacmn: Add qdf utility functions for ARP debug stats
Implement QDF utility functions to operate on ARP data packet to
support ARP debug stats feature.

Change-Id: Idce70799bd3698dc8a8ecd8cfc8ef7d9bf1f5764
CRs-Fixed: 2019789
2018-02-26 04:07:21 -08:00
Abhijit Pradhan
5b96a30800 qcacmn: Fix for zero-CAC DFS Kernel panic
Remove elements from the correct lists.

Change-Id: Idda91238510fa89fdfb2451274f0da44f5e2f1f0
CRs-Fixed: 2185021
2018-02-23 23:46:29 -08:00
Kabilan Kannan
14e527f66a qcacmn: Fix X86 driver load problem
X86 driver is failed to load due to DMA malloc size
limitations.
Increase the maximum DMA malloc size for X86
driver.

Change-Id: I5d3a0138a61751e924183b7175a0b565cffd4eb4
CRs-Fixed: 2188749
2018-02-23 20:01:19 -08:00
Soumya Bhat
bc719e6b02 qcacmn: Add support to get RSSI of Non associated clients
Add change in driver to get RSSI of non associated clients.

This is done in 2 levels of filtering
1. Send WMI to FW to configure BSSID in HW
2. Filter the neighbour BSSID packets received in host for
the configured client mac

Change-Id: I6b684b83cecb308dac326056aa77537aee07b933
CRs-Fixed: 2148773
2018-02-23 20:01:17 -08:00
Dustin Brown
96ad17d131 qcacmn: Fix parse failure in qdf_bool_parse()
qdf_bool_parse() fails to advance the parsing cursor after consuming
valid characters. Advance the cursor after valid input in
qdf_bool_parse() to avoid failing to parse valid boolean expressions.

Change-Id: I904d5eed638e215e9821e140feb5286fffe37b7b
CRs-Fixed: 2194546
2018-02-23 17:45:56 -08:00
Venkateswara Swamy Bandaru
6523a02ecc qcacmn: Fix mesh no ecryption frame issue
Send no encryption frame only to the firmware and do not duplicate
the frame.

Change-Id: Ie601126b59027d33808db27b18ec23efbab564c0
CRs-Fixed: 2186526
2018-02-23 17:45:54 -08:00
Dustin Brown
e50d168ba5 qcacmn: Add qdf_str_dup() API
Add a QDF abstraction for strdup().

Change-Id: I141e625a91e3433c2a66bc75b4e860ed6ef266ac
CRs-Fixed: 2194537
2018-02-23 17:45:52 -08:00
Dustin Brown
64740289bc qcacmn: Add qdf_str_eq() API
strcmp() is regularly used to compare two strings for equality. However,
reading source code using strcmp in this manner can be prone to errors
because the return values are not obvious from the function's name. In
the best case, this leads to referring to the strcmp documentation more
often than one would like. In the worst case, this leads to difficult to
spot bugs. Add a thin wrapper for this use case to make intentions
abundantly clear to future readers. This wrapper is effectively sugar
for 'strcmp(left, right) == 0'.

For example:
	if (!strcmp(left, right))
	/* reads: if not string compare: left, right */

Becomes:
	if (qdf_str_eq(left, right))
	/* reads: if string equal: left, right */

Change-Id: Iabcb7c7e9f37dcb6cf1bdf5d7cc6c69ea926ba5c
CRs-Fixed: 2194508
2018-02-23 15:33:20 -08:00
Dustin Brown
61cabef5b6 qcacmn: Update qdf_trace for CONFIG module
QDF_MODULE_ID_CONFIG was previously defined for use by the configuration
component, but qdf_trace was not updated. Set the default logging level
for the configuration module in qdf_trace.

Change-Id: I8946b5473f03f3b85f8c2d6783039e03c9a49494
CRs-Fixed: 2194542
2018-02-23 15:33:18 -08:00
Dustin Brown
47452e942b qcacmn: Add QDF_DEBUG_PANIC API
A very common pattern in the Wlan driver is to test for a fatal
condition, and then call QDF_BUG with some falsy value. Add a sugar
API for these cases, which effectively does 'QDF_BUG(false)'.
Additionally, include 'debug' in the name to remind consumers that
the panic will not occur on end user devices.

Current syntax:

	if (fatal_condition)
		QDF_BUG(false);

New syntax:

	if (fatal_condition)
		QDF_DEBUG_PANIC();

Change-Id: Ifa03e9109be5efdbd061ca32363d5719fb91da0f
CRs-Fixed: 2191582
2018-02-23 15:33:16 -08:00
Sandeep Puligilla
2850421a77 qcacmn: copy raw data length to new scan entry
scan entry raw data length is not populated
during the duplicate scan entry generation.

Copy raw data length to new scan entry
while duplicating the scan entry. This api
is triggered as part of the get scan results
handler.

Change-Id: Ie59782fd437415552b7ae29c1b190e86d4b72d48
CRs-Fixed: 2186845
2018-02-23 13:57:14 -08:00
Manoj Ekbote
4a59d8de1c qcacmn: Fix issues leading to use-after-free
1. After mem_free() is done for a vdev without peers,
set it to NULL so that later check can catch it.If not,
it could be used to increment stats.
2. After a bss peer is freed, mark it as NULL so that
it is not used again to update stats.

Change-Id: I82e73c29c1409aac1af735ab849e8b07d387acf2
2018-02-23 12:54:45 -08:00
Kabilan Kannan
0e95ca191b qcacmn: Fix memory leak in TDLS rx mgmt callback
TDLS RX management callback needs to be registered
only during driver load time.
Remove the redundant callback registration.

Change-Id: Iee0e781ade2a4dafaaf372e8a9078347493418df
CRs-Fixed: 2185908
2018-02-23 12:54:43 -08:00
Amar Singhal
876a6931e3 qcacmn: Modify maximum BW only conditionally
The maximum BW for edge channels may fall outside the low limit or
high limit of channel range for a given pdev. But reduce the maximum
BW only if it is less than or equal to 20 MHz. Higher bandwidths are
realized using channel bonding and the channel itself may not be center
channel.

Change-Id: Ifc6bbadf91759fedaf432d162763577ea56bb7b7
CRs-Fixed: 2184724
2018-02-23 12:54:41 -08:00
Balamurugan Mahalingam
f6d3035ec6 qcacmn: Fix race while stopping the ce poll timer
Set the timer_inited flag to false bit earlier to
stop ce_poll_timeout function from processing

CRs-Fixed: 2182979

Change-Id: I91dd257c6beb21e379a4c51e651d835a35ca76ed
2018-02-23 06:06:03 -08:00
Balamurugan Mahalingam
3ab3633184 qcacmn: Add support for QCA6290 platform
Add support for QCA6290 platform and introduced an hif api to enable,
disable polled mode.

Change-Id: I16e210fef93251b33928788cf873117249c2d70f
2018-02-23 06:06:00 -08:00
Venkateswara Swamy Bandaru
ce6b9444a4 qcacmn: Add command and attributes for MSDU queue depth threshold
Add QCA vendor command and attributes for vendor specific command to
set MSDU queue depth threshold in target per peer per tid. This command
contains mac addrees, tid, update mask and threshold value.

Change-Id: Ie119ff5aa333bcffcec0850464982dec59fb6a07
CRs-Fixed: 2162455
2018-02-23 06:05:58 -08:00
Arif Hussain
c8fe4680ae qcacmn: Fix sending dfs offload enable command sequence
Currently dfs offload command is sent during event registration
when psoc object is created. Dfs offload command is sent by accessing
pdev object, as pdev object during this time may not be created
or maybe in logically deleted state and sending command may fail.
This failure may cause wifi_dfs_psoc_enable and thereby effecting
other module objects.

To fix this, avoid using pdev objects during psoc enable, and send
pdev object specific command when pdev is created.

Change-Id: Ia10d493267259d0fbd918453e532b4f244029163
CRs-Fixed: 2179845
2018-02-23 06:05:56 -08:00
Rajeev Kumar
28dba98f8b qcacmn: Define QDF API to register fw down callback
Define QDF API such that legacy module can register fw down
callback and new components can use QDF API to check if fw
is down or not.

Change-Id: I2f5423943f351ee3a0fd84616c904a27702c10e3
CRs-Fixed: 2194451
2018-02-23 00:37:05 -08:00
Tushnim Bhattacharyya
0f7b9cd898 qcacmn: Trim ACS channel list based on the concurrent connections
If force SCC is enabled and there is a STA connection, trim the
ACS channel list on the band on which STA connection is present.

Change-Id: Ibd580a7afdcdfc5fb4398ada547565e229d59c70
CRs-Fixed: 2193720
2018-02-22 23:30:57 -08:00
Vivek
5b3912a049 qcacmn: Move mgmt descriptors per pdev for probe response throttling
In the current code, mgmt tx rx descriptors nubfs per pdev,
which are in use when driver is unloaded,
are tried to be freed in dispatcher_psoc_disable,
by iterating through the pdevs which ideally should not be available.

And in ideal conditions, there are no pdevs during psoc_disable,
there was no attempt to free the nbuf
of pdevs mgmt tx rx descriptors in use,
which could have resulted in leaks but no assert.

In some cases, by the time dispatcher_psoc_disable was called,
and pdev count was non zero, we were seeing some issue accessing
the pdev or pdev mgmt tx rx context and it was causing assert.

The mgmt tx rx descriptors nubfs
which are in use when the driver is unloaded,
should be freed in dispcatcher pdev close and
not in dispatcher psoc close.

Change-Id: Ia6ac0b2ceeb017221153dab92bf014481eca2a5b
CR's Fixed: 2187890
2018-02-22 07:26:01 -08:00
Om Prakash Tripathi
fdaf38b849 qcacmn: Invoke beacon update callback before adding new entry
Invoke beacon update callback function before adding new entry
to scan list. It's required as get_scan_result API will end up
returning partially initialized scan entry.

Change-Id: Ia34f9c69b4eef2435b135912e06c39018a8987b8
CRs-Fixed: 2189783
2018-02-22 06:01:31 -08:00
Sravan Kumar Kairam
8fb188fc9a qcacmn: Add qdf abstraction for byte order identifiers
Add qdf abstraction for Linux byte order type identifiers.

Change-Id: I4ff55ffcb92a86e7d067bcb78b404b8deb3ee0f0
CRs-Fixed: 2193638
2018-02-21 23:49:16 -08:00
Chaithanya Garrepalli
20d7142933 qcacmn: Removed WDS rx stats from host peer stats
Removed WDS rx stats from host peer stats as this
is not supported in HAWKEYE

Change-Id: Id12be043b584a659ecbec46b6c2efb161d4248d3
CRs-Fixed: 2186376
2018-02-21 18:20:57 -08:00
Akshay Kosigi
888823edd3 qcacmn: Align objmgr structure members
Align the data structure members to reduce the structure size

Change-Id: I40fce43b4050691700c732602dae0ba976896339
CRs-Fixed: 2180812
2018-02-21 18:20:55 -08:00
akosigi
6e19edc1e4 qcacmn: Update function name and remove redundant code
Rename scan_tx_ops_register for consistency
Remove redundant lines of code in tx_ops registration

Change-Id: I3ade89f7eeb1f506f75b5c859dd4bc4242414628
CRs-Fixed: 2127952
2018-02-21 18:20:52 -08:00
Shiva Krishna Pittala
91f2654d56 qcacmn: Provide a configuration to enable/disable CCK Tx
Firmware will use this configuration to enable/disable the
CCK transmission. By default, the CCK Tx is enabled.

CRs-Fixed: 2191524
Change-Id: I165c3ea10ea3734fc81e7d25fe8ad676afd1b2c1
2018-02-21 17:12:42 -08:00
Venkateswara Swamy Bandaru
165d0abaf7 qcacmn: Fix QOS issue with mesh tx
Initialize msdu tid with tid received from upper layer for all packets

Change-Id: Ifb2da4e8eb9bc463cbba9850c55fcbcf82e4f10c
CRs-Fixed: 2188360
2018-02-20 23:26:08 -08:00
Venkateswara Swamy Bandaru
37a3a456f6 qcacmn: Increase debug level of mesh prints
Increase debug level of mesh prints as in current debug level lot of
prints are coming.

Change-Id: Ic584c1bb17415521b66e656274e7283279c8cc61
CRs-Fixed: 2188324
2018-02-20 23:26:06 -08:00
Vinay Adella
1de7baec7e qcacmn: Adding support to drain mgmt frames
FW recovery path needs this function as mgmt Tx
completions are not expected from the FW.

CRs-Fixed: 2178618
Change-Id: I7dddbff544dcce4dd9fe95ab79fb891bbd11b4ab
2018-02-20 08:00:50 -08:00
Karunakar Dasineni
25f1b0434b qcacmn: Change REO queue descriptor delete sequence
Change REO queue descriptor delete sequence to flush base and
extension descriptors separately, since flushing base descriptor
alone results in extensions flushed by HW much later,
sometimes after freeing descriptor memory, causing use-after-free
corruptions. Also increase REO command and status ring sizes
since number of commands per RX TID flush has increased with
this change.
Fix interrupt batch count setting for non pkt/buffer rings,
which includes REO status ring.
Also remove callbacks during reo command list destroy,
done as part of SOC detach. This should not be done since
callbacks will access stale data structures that are freed
as part of PDEV/SOC detach.

Change-Id: I4337454d3f53cc0b3c3014ef07cc2ba13cfebb18
CRs-Fixed: 2175989
2018-02-17 09:42:22 -08:00
Mohit Khanna
e1d7e0ecc9 qcacmn: fix double unmap issue in monitor mode
Currently while reaping the rxda destination ring in dp_rx_mon_mpdu_pop,
we end up un-mapping the nbuf twice when -
1. msdu_ppdu_id > ppdu_id
2. msdu_ppdu_id = ppdu_id

For case 1, we exit from the dp_rx_mon_mpdu_pop without reaping the
descriptor completely, but we unmap the nbuf corresponding to it.
Next, when case 2 happens, we end up un-mapping the nbuf again to reap
the same descriptor.

Introduce a flag in the rx_desc to keep track of un-mapping the nbuf. If
the nbuf is already unmapped, donot unmap it.

Change-Id: Icb64fbc00312d6d0e6d41f7b475eb1285530c3d0
CRs-Fixed: 2185301
2018-02-16 22:58:09 -08:00
Mohit Khanna
9a6fdd5cee qcacmn: Debug prints for monitor mode
Add some debug prints for monitor mode

Change-Id: Ie12279c832647cac9e1f152c98fa0205dd9d495e
CRs-Fixed: 2173407
2018-02-16 22:58:07 -08:00