Commit Graph

4100 Commits

Author SHA1 Message Date
Vignesh Viswanathan
26fc2e1e98 qcacmn: Add support for 11k offload related WMI commands
Add WMI TLV functions for 11k offload command and neighbor
report request invoke command.

Change-Id: If37cace93d4f719eed6abfabcd878879d804161e
CRs-Fixed: 2162030
2018-01-25 09:25:38 -08:00
Srinivas Pitla
86db6ab400 qcacmn: Access only created objects
Accessing partially created objects are leading to freeing the
objects due to uninitialized ref count

Fix checks the valid object state to
	1) invoke the handler on the object for iterate API
	2) get reference of the object

Change-Id: I479d68a57e16b0eb679d3a8c3e45cd924a7cff3e
CRs-Fixed: 2161085
2018-01-25 07:41:22 -08:00
Anish Nataraj
28490c4c5e qcacmn: Add checks in rx_mon_status handler to filter spurious frames
1. find_first_bit API returns Size value if it doesn’t find any bit set.
   This was causing VOICE AC counter to go high even for TID 0
2. Reset stats was not resetting the stats immediately
3. Added checks to avoid spurious stats increment
4. Detect data/mgmt pkt to avoid spurious stats increment

Change-Id: Ic9c5695fc7bdf58d1237e7e20bb79378a02a21f6
2018-01-25 05:08:23 -08:00
Pranita Solanke
a38c7a3b04 qcacmn: Fix scn_stats issue
Move the stats update to per pdev stats update function

Change-Id: I586927cb60eae188ce792fff34c67cde003c3f01
2018-01-24 23:47:01 -08:00
Arif Hussain
23a5265cc3 qcacmn: tdls: Fix instances of unadorned %p
Fix instances of unadorned %p in tdls.

Change-Id: I5faad47ad7bdcc6f079466c277a88b5a21719e2c
CRs-Fixed: 2170907
2018-01-24 17:33:57 -08:00
Sourav Mohapatra
06490bebac qcacmn: Converge on wmi service/ext service is enable
Converge on wmi service/ext service is enable

Change-Id: Ib246befa72cce927bee157394cd22c7d1562d341
CRs-Fixed: 2152751
2018-01-24 13:19:48 -08:00
Liangwei Dong
409c4cf989 qcacmn: Disallow Dualband MCC
For non DBS capable chip, to disallow dualband MCC
in case dnbs vdev exist.

Change-Id: Iee96e12dbb09e2d4633ca2fb73b5fb8bf155bd66
CRs-Fixed: 2164835
2018-01-24 13:19:45 -08:00
Dustin Brown
8bf184d6e4 qcacmn: Remove QDF_MAC_ADDR_ZERO_INITIALIZER
QDF_MAC_ADDR_ZERO_INITIALIZER has been depreciated in favor of
QDF_MAC_ADDR_ZERO_INIT. Replace all usages with the new macro.

Change-Id: I565a01fe3c75da645d5f410ce2c54f02034fb14c
CRs-Fixed: 2176469
2018-01-24 13:19:43 -08:00
Om Prakash Tripathi
3653ab5bee qcacmn: Pass back scan start request in scan events
Pass back scan start request in scan events so that
handlers can know parameters used to start underlying scan.

Change-Id: I8ca3d55edb266677cc636228919656baa12b43d9
CRs-Fixed: 2159700
2018-01-24 12:29:42 -08:00
Rajeev Kumar
885f275c26 qcacmn: Optimize HIF module driver load time logs
Optimize HIF layer driver load time console logging
to avoid any logging related side effect.

Change-Id: I3549256559b3565ab62bfba998a64cda8a971840
CRs-Fixed: 2174888
2018-01-24 12:29:40 -08:00
Jeff Johnson
3b17c379c5 qcacmn: Introduce wlan_is_ie_valid()
In change "qcacld-3.0: Validate Scan Default IEs" in the qcacld-3.0
project (Change-Id: Ifd8739c96a9990f01ff159eb59a7e904f7b8c592) the
utility API hdd_is_ie_valid() was introduced. One review comment was
that this should be a converged API, so rename and relocate the API.

Change-Id: I8d2a520ea70645ab54b450de83452c0035653485
CRs-Fixed: 2169420
2018-01-24 08:27:26 -08:00
wadesong
49ae4cbad4 qcacmn: Fix coding errors detected by gcc 5+
With gcc 5+ utilized for driver building, more coding errors are
detected, some of which are valid issues.

Fix all those errors in one shot.

Change-Id: I263c70d4bff9ec0c3076103001cd7f2ccc8e0d1a
CRs-Fixed: 2176076
2018-01-24 04:26:08 -08:00
jiad
8245c03b69 qcacmn: Fix may be used uninitialized compile error
Build option -Werror=maybe-uninitialized throws may be used
uninitialized error.

Fix is to initialize varibles to 0 before being used.

Change-Id: I05a17fcb3dd666a77e14ef6469305fde541fb740
CRs-Fixed: 2165500
2018-01-24 02:27:05 -08:00
Akshay Kosigi
8139413318 qcacmn: Modify same value for an enum
Change the enum values due to having same value

Change-Id: Ia7fadb7d92196c6c10ad2dcdff8826a134e086ba
CRs-fixed: 2174368
2018-01-24 01:43:39 -08:00
Chaithanya Garrepalli
b265cca820 qcacmn: WMI support to obtain NAC RSSI
Added a WMI command to add and del peer from the list
of non associated clients for which the RSSI stats
need to be populated

Also added event handler to extract the rssi stats
from the WMI event

Change-Id: I9880c74798c13a52e1498b81735ad78f86fa41b8
CRs-Fixed: 2148773
2018-01-24 01:43:36 -08:00
jiad
99bc15a8f2 qcacmn: Fix WMI mgmt cmd tx comp record
wmi_mgmt_cmd_record is used to add WMI mgmt cmd record. But mgmt
cmd tx comp record is missing due to mismatch of is_management_record.
Fix is to change is_management_record WMI cmd id to match those who
call wmi_mgmt_cmd_record. In wmi_unified_cmd_send, mgmt cmd record
add is no longer needed since already added in wmi_mgmt_cmd_record.

Change-Id: I41daf428ac0848dabaf4d87e3ecb7dca5e1c2774
CRs-Fixed: 2168104
2018-01-24 01:43:33 -08:00
Shashikala Prabhu
af18e70b24 qcacmn: Fix pdev refcount issue in regulatory component
Regulatory component takes pdev reference count in pdev create handler by
invoking reg_send_scheduler_msg_sb() to call registered callback functions
to notify current channel change. We cannot take ref count in creation
handler of that pdev object since the object creation is not completed and
ref count initialization might be incomplete in some cases. For example,
if any component releases ref count, it will lead to object deletion.
If any component object fails to create, it requires complete object to be
cleaned up. That leads to leaking the object due to object reference
is held by another component.

Define dispatcher_pdev_open() and call it after creating the PDEV object.
Invoke reg_send_scheduler_msg_sb() from dispatcher_pdev_open() instead of
calling it from pdev create handler.

Change-Id: I0b000f5bbd56045abef3706182c208f63dea69aa
CRs-Fixed: 2168027
2018-01-23 22:29:19 -08:00
psimha
1863f93c9d qcacmn: Temporary fix to drop all encrypted fragments
Add temporary fix to drop all encrypted fragments
until they can be handled properly.

Change-Id: I87a9c52d6359be8182c28d3fa047b9a65f3dd129
CRs-Fixed: 2174750
2018-01-23 22:29:17 -08:00
psimha
fc2f91b86a qcacmn: Add RX defrag timeout handler
Add tid to the defrag waitlist & timeout if further fragments are not
received.

Change-Id: Iff2d2c23fe796cf70bcc6aa43ab02a308a33ee9f
CRs-Fixed: 2174750
2018-01-23 22:29:16 -08:00
psimha
7e69eaa303 qcacmn: RX defragmentation fixes
- Handle WDS case during encapsulation
- Drop non-head duplicate fragments from list
- Get REO DST ring id from msdu_info of incoming packet

Change-Id: I7e4c9c211548aafe9b4ba88fb12890f38aced324
CRs-Fixed: 2174750
2018-01-23 22:29:14 -08:00
Venkateswara Swamy Bandaru
ed9697f4aa qcacmn: Fix race condition in enabling group interrupts
Fix race condition in initialising irq_enabled variable. Initialize it to
true before enabling interrupts.

Change-Id: I53a53ee729ca2dc54e47ac65a5bce00b0260f84e
CRs-Fixed: 2173907
2018-01-23 13:40:17 -08:00
gaurank kathpalia
29e7f156dc qcacmn: Modify scan pno dwell-time depending upon current conc mode
Change scan pno active , passive dwell time based upon the current
concurrency mode which can any of p2p_go , p2p_client or Sap

Change-Id: I8223879a981c412e4f57451346d4c2f375780f8e
CRs-Fixed: 2163209
2018-01-23 13:40:16 -08:00
Zhu Jianmin
1d325746a4 qcacmn: Avoid using tdls_soc_obj after it has been freed
Object tdls_soc_obj is being used ever after it has been freed
which creates stability issue.

Fix it by returning up on releasing the memory.

Change-Id: I0b3faf2435396f2e3cd92bc18afc263f3280eae3
CRs-Fixed: 2164332
2018-01-23 13:40:14 -08:00
Jeff Johnson
15ca1af93f qcacmn: Add support to retrieve SAR power limits
Recently change "qcacmn: Add SAR power limit configuration"
(Change-Id: I0a214a2af780e9dd8c381c4e9eaa7d8cab6ef853) added the
ability to dynamically configure Specific Absorption Rate (SAR) power
limits. Now add the ability to retrieve the current active power
limits.

Change-Id: I7a6071dee71300daa3a217780ff3523604a11795
CRs-Fixed: 2161451
2018-01-23 12:30:25 -08:00
Ashok Ponnaiah
f995360186 qcacmn: Fix function headers
fixed function headers as per coding standard
CRs-Fixed: 2166869

Change-Id: I9efc8c8dc73b0a0e14f11b8bcbe0ef2505d935b6
2018-01-22 22:11:07 -08:00
Srinivas Pitla
ea71ebf12b qcacmn: Pass peer pointer instead of MAC address to set_peer_wep_keys
This change would prevent peer to take reference during creation

Change-Id: I69225a7e403c3b9753be45ac9b4dd4d615eef7de
CRs-Fixed: 2161085
2018-01-22 22:11:05 -08:00
Rohan Dutta
0d702b7524 qcacmn: Add lithium_cycle_cnt stats in apstats
Add tx/rx frame count, cycle count, phy err count, rx clear count,
chan_tx_power, chan_nf stats to apstats

Change-Id: Ia4153380a15a16bef96792040d4fc1c46969fff5
2018-01-22 21:24:27 -08:00
Sandeep Puligilla
f484c2b0da qcacmn: update logic to get wmi_handle from pdev
Update the target if interface api to get the wmi
handle.

Change-Id: Ifb31f6fc11ac3e86d003342ef8e4d4af29a0b170
CRs-Fixed: 2168264
2018-01-22 12:08:17 -08:00
Kai Liu
b8e1241366 qcacmn: dump reo ring when flush cache failed
When delete peer, host will try to flush all frames in REO queue
by sending a cmd through reo ring, but sometimes encounted failure to
send this cmd, dump ring status if ecountered above failure.

Change-Id: I3ea4e96e5999f85398b531ddf4f350e91e798d70
CRs-Fixed: 2167419
2018-01-22 07:37:34 -08:00
Will Huang
987316d757 qcacmn: Fix copy length error of unsafe_channel_list
unsafe_channel_list is defined as uint16, but copy with length of byte.

Change-Id: I35cd1d006f561c6bb1e64fd56e9822fefd991848
CRs-Fixed: 2170439
2018-01-21 23:20:53 -08:00
Will Huang
e6da44ea06 qcacmn: Call ch avoid register/unregister callbacks
tx_ops->register_ch_avoid_event_handler and
tx_ops->unregister_ch_avoid_event_handler are set but never called.
Call register_ch_avoid_event_handler when regulatory_psoc_open, call
unregister_ch_avoid_event_handler when regulatory_psoc_close.

Change-Id: I663f3020b78773560d6991dc70da9dcdd6c218a9
CRs-Fixed: 2163619
2018-01-21 19:21:00 -08:00
Gyanranjan Hazarika
3ce87c3e5f qcacmn: Add support to send WMI_ADDBA_CLEAR_RESP_CMDID in HK
Support to send WMI_ADDBA_CLEAR_RESP_CMDID in tlv format is
lacking in HK. Add the necessary support.

Change-Id: Ic5bda1cd69531ce7eb6f61751b12626b788c02a1
CRs-fixed: 2174262
2018-01-20 01:45:07 -08:00
Dustin Brown
2e93d637cf qcacmn: Add MAC/IPV4/IPV6 address parsing to QDF
Add converged implementations of MAC, IPV4 and IPV6 address parsing to
QDF. This allows for reuse wherever address parsing is done. This also
supports the upcoming configuration component, which will support all
three address types.

Change-Id: I5158e2a40169da979a219363c6d2a25784c5a7e8
CRs-Fixed: 2174072
2018-01-20 01:45:05 -08:00
Jiachao Wu
60f4ee3b58 qcacmn: Add new config for BTM offload
Add new parameters into wmi btm config cmd for solicited BTM offload.

Change-Id: I24cc680bbfde3d44a57b1e1ccf644c2bed515a2c
CRs-Fixed: 2168259
2018-01-19 19:20:31 -08:00
Subrat Mishra
bf12587bd1 qcacmn: Support for SWFDA Event & FD Frame tx
Add new WMI EVENT, SW FILS Discovery Alert Event, to get
firmware trigger to transmit FILS Discovery Frames.
Add WMI command to send FD frame buffer to firwmare.
Add WMI command to set FD period interval in mili seconds.

Change-Id: I8cb6279ec4431b9236bd32c548228a0dc6598664
CRs-Fixed: 2118098
2018-01-19 17:26:23 -08:00
Kris Muthusamy
622a2fae1c qcacmn: Populate vdev id in WMI WDS commands
Populated the missing vdev id in all WDS based WMI commands

Change-Id: I1ab623d9efd77e83786f581657e9ff42b1db2346
2018-01-19 15:01:07 -08:00
Zhang Qian
145aef1dfa qcacmn: Fix potential buffer overflow
Fragment count will be larger than the upper limit which
would lead to an overread of fragment length. Upper limit
check for fragment count is added in this change.

Change-Id: Icc078b2efee554ac84377b5edd90d0a5c7a61f98
CRs-Fixed: 2158922
2018-01-19 14:10:52 -08:00
Karunakar Dasineni
372647d95a qcacmn: Avoid REO queue setup after peer deletion
REO queue setup is getting triggered from processing
pending null queue exceptions in WBM release ring, after
sending peer delete command to FW, but before peer unmap
is received, causing target assert. Mark peer deletion
before sending peer delete command to avoid this.

Change-Id: I2d85d01e049cb37d9321beeee8e41f44e40e68ad
CRs-Fixed: 2155420
2018-01-19 13:34:25 -08:00
Anish Nataraj
45d282c2a8 qcacmn: Fix for correct per AC stats
Add ppdu tid tlv value assignment in cdp dp stats layer
ppdu tid value is used by apstats command it was earlier
showing zeroes

Change-Id: Id24b08d2424dcc09424624d84044b3963bd81b36
2018-01-19 12:20:25 -08:00
Anish Nataraj
072d897705 qcacmn: cck,nss and preamble update fix
cck rates were getting updated for ofdm rates
and nss index were getting wrongly incremented
fixed the same

Corrected sgi and preamble too

Change-Id: I2dabb685de6e0bd4ba5094845cde228b3c32e2a9
2018-01-19 12:20:24 -08:00
Soumya Bhat
697aacf685 qcacmn: Change to config PS transition time in seconds
In current code GreenAP transition time is being set in
milliseconds. Add change to configure PS transition time
in seconds.

Change-Id: Ic42b1f40851966e6e0f4f613de06fdf50ec2d7cc
CRs-Fixed: 2142183
2018-01-19 11:40:21 -08:00
Kabilan Kannan
08ed905713 qcacmn: Fix TDLS wpa2 teardown failures
TDLS teardown request from the DUT is dropped
in the peer, due to invalid MIC in the
teardown frame.
TDLS responder value is not set correctly in TDLS
teardown frame, and it causes MIC failures in the
peer device.
Set the correct responder value in TDLS
teardown frame.

Change-Id: Ibe056c89f644c094a10f7a5eb51b6d90a13a4a01
CRs-Fixed: 2155555
2018-01-19 05:24:52 -08:00
Jingxiang Ge
7081c12040 qcacmn: Add PEER_DEBUG_ID_OL_RX_THREAD
Add PEER_DEBUG_ID_OL_RX_THREAD to track caller from
rx thread.

Change-Id: I0e0086e264fa2a6f4879f5c6aa90e7ffb6272416
CRs-Fixed: 2169630
2018-01-19 03:55:17 -08:00
Rohan Dutta
f8ce8100ea qcacmn: Check length in wlan_crypto_rsnie_check
Check length of rsn ie in wlan_crypto_rsnie_check

Change-Id: I66726a31c2f4c16cf66460cc15c62f2089a20de5
2018-01-19 02:03:46 -08:00
Santosh Anbu
d5fdfacb1b qcacmn: Add debug trace for extender AP
Add commonly used header in Extender ap to qdf

Change-Id: Ifdf97973cc30c193e5ca81b2aec06fc350115ce6
CRs-Fixed: 2148247
2018-01-19 02:03:44 -08:00
Dustin Brown
dbc7ec1702 qcacmn: Untrack nbuf map on map failure
Currently, nbuf map tracking happens before the nbuf is actually mapped.
In cases where the actual map operation fails, remove the nbuf map
tracking information to avoid false positive mapped-never-unmapped
panics.

Change-Id: I8e649841a661d460bf89dd5edf09bb5e460ea98c
CRs-Fixed: 2171837
2018-01-18 11:37:03 -08:00
Dustin Brown
a13db35821 qcacmn: Hold lock for entire nbuf debug iteration
Hold a spinlock for the entire iteration of the nbuf map/unmap
hashtable. This prevents invalid list/memory access issues in case of a
race with an unmap operation. This also trades list/memory safety for
the chance to watchdog bite while printing. Since we are about to panic
anyway, the worst case is manually loading the memory dump to inspect
the contents of the map/unmap hashtable.

Change-Id: Iafc38764d55fc46910051349e4f4b26da33cae51
CRs-Fixed: 2171736
2018-01-18 11:37:01 -08:00
Dustin Brown
976a7f6f6e qcacmn: Add nbuf map/unmap history tracking
An nbuf free history circular buffer already exists for tracking recent
nbuf frees in the system. This is very useful for debugging tricky nbuf
related failures in the driver. In addition to tracking frees, track
alloc, map, and unmap nbuf events as well.

Change-Id: I253d454d689deb8328b3636e92063e9d33ea1a52
CRs-Fixed: 2170365
2018-01-18 05:45:52 -08:00
Pranita Solanke
ed0aba69a9 qcacmn: Rx and Tx peer statistics update
* Update the pkt_type counters correctly within the array bound
 * Add support for NSS counters on Tx side
 * Update ampdu flag in PPDU struct
 * Add support for ampdu flag in hal_ppdu struct

Change-Id: I79ea52727124ea4be4d82912cb2513ea58e2af10
2018-01-18 02:33:34 -08:00
Dustin Brown
5819e29cbb qcacmn: Return error on nbuf map alloc failure
When nbuf map/unmap tracking is enabled, a small metadata structure is
allocated to keep the tracking information. In cases where this
allocation fails during the map operation, return an error status
instead of mapping the nbuf. This prevents a false positive
unmap-never-mapped panic when the nbuf is unmapped.

Change-Id: Id01c1f61165a0beff4edd6cc6a0a2fc5f64d9b04
CRs-Fixed: 2167082
2018-01-18 01:49:47 -08:00