Commit Graph

4136 次程式碼提交

作者 SHA1 備註 提交日期
Aniruddha Paul
91dfd50160 qcacmn: Add API to change Rx Fragment DST ring
Add API to change the Rx Fragment DST ring based on the SoC NSS
config
CRs-Fixed: 2175933

Change-Id: I2e3f0b82d301538f54d9790d55eeccdd0f6fa154
2018-01-30 23:55:20 -08:00
bings
6c40b760d5 qcacmn: set center freq segment0 for channel params in 2g HT20 mode
In the routine sap_ch_params_to_bonding_channels, the channels is set
invalid value 0 if center freq segment0 for channel params is 0.

ch_params->center_freq_seg0 should be set for 2g HT20 mode.

Change-Id: I063f1341da5a4934c97dec4bcda9367101de7cc5
CRs-Fixed: 2179368
2018-01-30 21:29:00 -08:00
bings
b004c6d432 qcacmn: Refine DFS object allocation for MCL
Currently DFS object can only be allocated if radio supports 5G.

Rome supports 5G and saves its wireless_mode in hal_reg_cap of
psoc->service_param because Rome FW does not support wmi event
wmi_service_ready_ext_event_id.

Check wireless_modes based on different DFS_SUPPORT.

Change-Id: I0120dde4fcf47bd71f6da512fae64dd62f5f46c8
CRs-Fixed: 2179925
2018-01-30 17:43:32 -08:00
Akshay Kosigi
9e7f12f7da qcacmn: Fix Scatter-Gather and TSO
Fix SG and TSO for ftp data transfer

Change-Id: Ide7eec987436beea08711f31362c1fa61f5bf8c3
CRs-fixed: 2159610
2018-01-30 15:26:48 -08:00
Zhang Qian
3679492629 qcacmn: Add UT framework for OCB module
Add a faked WMI layer for OCB unit test on platform does not
support OCB feature.

CRs-Fixed: 2177563
Change-Id: I35b272faa21f3b225eb036c06a15b06ab4b389ae
2018-01-30 13:40:39 -08:00
Prathyusha Guduri
be41d97175 qcacmn: add dp_tx_send_exception
dp_tx_send_exception is an exception path that transmits frames
through FW by setting DP_TX_DESC_FLAG_TO_FW

Change-Id: Id6abfcd2bf060c4fe3aaca91634f3be501530a7e
CRs-Fixed: 2176814
2018-01-30 13:40:37 -08:00
Naveen Rawat
6f7ddcadb4 qcacmn: Avoid null pointer dereference and un-initialized data access
Fix possible null pointer dereference and un-initialized vairable access
in scan component.

Change-Id: Ide1adf2f53712fa987fdda8170eee4e95bff0036
CRs-Fixed: 2169517
2018-01-30 13:40:35 -08:00
bings
e05bc00ff3 qcacmn: Disable radar for current channel before selecting new channel
In current implementation, after radar detection, a new channel is selected
and then radar is disabled on the new channel. The new channel may be a DFS
channel and radar will be disabled on the new channel.

Radar disable should be called for the current channel and not on the new
channel. Therefore, disable the radar first and then select the new
channel.

Change-Id: Ied57f8910b30ee2181406e26ace1e7a44ff691b4
CRs-Fixed: 2172007
2018-01-30 09:25:51 -08:00
bings
c83573954f qcacmn: Extend radar event structure for ETSI chirp radar detection
The pulse_delta_peak of chirp radar is not zero, which is one more radar
detection rule for ETSI chirp. Driver need delta peak related information
from FW for ETSI chirp radar detection.

Two more fields pulse_delta_peak and pulse_delta_diff are added in
wmi_dfs_radar_event_fixed_param.

Change-Id: Ief8dbea1c1336f45a24195853d5e1356bf3cad27
CRs-Fixed: 2179933
2018-01-30 09:25:49 -08:00
Subhranil Choudhury
eea6738ef9 qcacmn: Move peer activity marking to a common place
Move the peer Rx activity to PPDU_stats_handler
which is common for both NSS offload and Host datapath modes.

Change-Id: I06c3dd14d117cc291e3b19076ddfc7f3be00e602
CRs-Fixed: 2176385
2018-01-30 05:39:07 -08:00
Pranita Solanke
a5a3ae721e qcacmn: Add support for Tx and RX Broadcast Packets
Add counters to display the broadcast packets on Tx and Rx side

Change-Id: I85bea07b83d34dc15b185297e7ec63208d8ab8e8
2018-01-30 05:39:04 -08:00
Zhang Qian
2e1a7bc65a qcacmn: Add wmi APIs to extract OCB events data
Add APIs to extract data from wmi event buffer for tlv interface.

CRs-Fixed: 2177557
Change-Id: I538c0a9ed4a1d8a4bd8845ab337b16370737ce44
2018-01-29 23:40:45 -08:00
bings
88486ab463 qcacmn: Fix delta peak number counting for DFS
Every time when dfs_count_the_other_delay_elements is called,
delta_peak_match_count is set to 1, which is not correct.

delta_peak_match_count should be initialized once like numpulses
in dfs_bin_pri_check.

Change-Id: I9cf432cbe7b0ddb42a0c33adcbef07d0c48f42f8
CRs-Fixed: 2165538
2018-01-29 21:37:41 -08:00
Zhu Jianmin
cb80e2f5d2 qcacmn: Fix scan node use after free issue
For each scan node in db, real delete should be called only once.
If 2 threads are trying to delete a note, only one thread should
mark it delete and decrement the ref count and the other thread
should return. or use after free happens as some other thread is
still using it.

Change-Id: I8cfaea73f28f31406816c9fb38f6b65f6b50428d
CRs-Fixed: 2169890
2018-01-29 15:43:06 -08:00
wadesong
4b3f37d7dc qcacmn: Stop touching HTC packet after it sent to CE
When HTC packet is sent to CE for physical tx, the tx compl
interrupt can get triggered very quickly, resulting the
HTC buffer being freed at a very early time. Any memory
access into the same HTC buffer after HTC tx compl returns
will be a use-after-free case.

Relocate all HTC packet touching code to places before
it gets populated to CE for tx.

Change-Id: I8bcac16566156104063013c7eb17b2f0debd32e6
CRs-Fixed: 2178880
2018-01-29 05:25:29 -08:00
Jiachao Wu
69a4679e57 qcacmn: Check NULL pointer before use it
Check NULL pointer before use it.

Change-Id: Id5b5d3ac38bffdbfee4463e93e3a586e9da1fac2
CRs-Fixed: 2177902
2018-01-29 02:17:49 -08:00
hqu
124b766d2e qcacmn: Use no_of_open_sessions to check multiple beaconing sessions
When start sap+sap with acs concurrently, the first sap usually
choose dfs channel, the second sap will be failed to start.
when check multiple beaconing sessions it only checks in_use sap for
pm_conc_connection_lis which means bss started sap while it has no
started sap at that time, so the second sap can't follow the first sap's
dfs channel and start failed according to current code flow.

Fix is to use no_of_open_sessions to check multiple beaconing sessions.

CRs-Fixed: 2170567
Change-Id: Iada737dffcd826aaff3873b81355018d53485948
2018-01-29 02:17:47 -08:00
Pamidipati, Vijay
aeff44499d qcacmn: Fix double memfree issue in MCAST2UCAST
Fix the condition check for return value in DP transmit path
for MCAST2UCAST

Change-Id: I81220838ce1c867afdab6447a30d7d7076f0c094
CRs-Fixed: 2164244
2018-01-27 09:21:41 -08:00
bings
9c524f5fc4 qcacmn: Restore WMI_DFS_RADAR_EVENTID for Rome FW
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors; but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.

Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.

Change-Id: I16761f6da947619a5969ac8dcd09498d508ad715
CRs-Fixed: 2160954
2018-01-27 00:10:32 -08:00
bings
602a3588a9 qcacmn: Restore WMI_DFS_RADAR_EVENTID for Rome FW
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors, but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.

Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.

Change-Id: I1bb4d6dcafc831f8ea45f0fa1646db47f291fabe
CRs-Fixed: 2160372
2018-01-27 00:10:30 -08:00
bings
ca90616ffa qcacmn: Restore WMI_DFS_RADAR_EVENTID for Rome FW
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors; but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.

Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.

Change-Id: I23ca4ff6c9be0ba6a0f21f0e0ef9161b1942f629
CRs-Fixed: 2160431
2018-01-27 00:10:28 -08:00
bings
0344d1c399 qcacmn: Restore WMI_DFS_RADAR_EVENTID for Rome FW
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors; but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.

Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.

Change-Id: I7a5c4f723bedfdeb477ac36ac1290809ca06fb13
CRs-Fixed: 2160418
2018-01-27 00:10:26 -08:00
Venkateswara Swamy Bandaru
faf9682f94 qcacmn: Add WMI Support for 11ax FW Scheduler API and Stats Per Peer
Add WMI support for enabling/disabling the FW scheduler APIs and stats
per peer for MU and OFDMA

Change-Id: I185ca6ff5b564fc9b83007fd4e37da82b5c9976e
CRs-Fixed: 2169179
2018-01-26 23:26:17 -08:00
nobelj
a78f35577e qcacmn: Add support for sending bigger chunk CTL table bin file
removing Length check temporarily
as existing length check is not applicable for HK.
In HK, CTL bin file size for 5G is 26556 bytes and
for 2G is 5852 bytes. 1.7K is the maximum payload size supported by TLV.
To support, we add header info: seq, endflag, total_len
before each chunks. Total bin files are transferred
as multiple chunks with header info on the top.

Change-Id: I7aedf85d6ee66a99cb4b6dca464dbe02caec371b
2018-01-26 19:25:40 -08:00
Kabilan Kannan
24895ade0c qcacmn: Increase the HTC control msg timeout
Firmware needs 6 seconds timeout for HTC control
messages.
Increase the HTC control message timeout to 6
seconds

Change-Id: I79a843afe028098a9cb7e98c274b54132357c76b
CRs-Fixed: 2170953
2018-01-26 17:21:04 -08:00
Venkateswara Swamy Bandaru
b2864fabe4 Revert "qcacmn: Mesh throughput enhancements"
This reverts commit I89ff27994477a5637979a9cd6a397286144b2535.

Change-Id: I7421f3572c46ed27a2d96724b2bbbe40c0704e5f
CRs-Fixed: 2177160
2018-01-26 09:20:39 -08:00
Srinivas Girigowda
ce25ca3027 qcacmn: Add packet fate and driver dump enums
Add packet fate and driver dump enums.

Change-Id: Id27730c014536fb419574ba1270bc50654fea258
CRs-Fixed: 2176675
2018-01-26 00:34:28 -08:00
Dustin Brown
490d818d1d qcacmn: Replace QDF_MAC_ADDRESS_STR
QDF_MAC_ADDRESS_STR has been depreciated in favor of
QDF_MAC_ADDR_STR. Replace all usages with the new macro.

Change-Id: I534923783a32288f7861caf9ae52ca3aac965809
CRs-Fixed: 2179126
2018-01-25 23:39:30 -08:00
Zhang Qian
82377ce4dd qcacmn: ADD OCB module ID
Add module ID and trace log for componentized OCB feature.

CRs-Fixed: 2177252
Change-Id: I794ce0809afed19863b52d26d9fcf1bde5e5e754
2018-01-25 23:39:28 -08:00
Abhijit Pradhan
f8e62c0115 qcacmn: Do not free timer object from within timer callback
When a timer callback function is being executed, the kernel still has the
timer object data structure. Therefore, do not free the object from within
the timer callback function. Since there are many DFS NOL timers and the
number of DFS NOL timers are not known at the device object creation time
we cannot allocate static memory for DFS NOL timers. They should be
created and freed dynamically. While waiting for the timer to complete
we should not hold the same lock that is held by the timer callback
function, holding the same lock might lead to deadlock.

Instead of freeing the timer object from within the timer we schedule a
workQueue and the timer object is freed from the workQueue callback
function. While destroying the device object or resetting DFS, we need to
stop the timers and free (cleanup) the DFS NOL timer objects that have
already been added. While waiting for a timer to complete
(qdf_timer_sync_cancel) we do not hold the lock that is used by the timer
function callback to protect the list of DFS NOL timers. This is to avoid
deadlock. The list access is protected by the lock so that either the
cleanup thread or the DFS NOL timer removes a timer object.

Also add fix for unwanted channel addition to precac NOL list when precac
is not enabled.

Change-Id: I1ee935fd15a79579197ccccba0e37c6850fde866
CRs-Fixed: 2171259
2018-01-25 19:40:38 -08:00
Venkateswara Swamy Bandaru
1fe7d8335d qcacmn: Add WMI Support for Setting SU, MU TXBF Sounding Interval
Add WMI support to set SU and MU TX beamforming sounding interval on
host driver in addition to enabling/disabling the above ability.

Change-Id: Ic3ea109e47c0df13db2c919bbcdf5fc7d6164698
CRs-Fixed: 2169176
2018-01-25 15:25:43 -08:00
Kai Chen
e6de7e02fb qcacmn: Add min, max, reg max, antenna gain and max tx power
Add min, max, reg max, antenna gain and max tx power to channel
field of WMI command for scan, vdev start. Max tx power is set
to reg max power. It is set to TPC on IE for MCL STA case.

Change-Id: I416b94f68a9c5db925a9ef8c731350ba27caa7a1
2018-01-25 15:25:41 -08:00
Dustin Brown
1b4e6b5e21 qcacmn: Remove QDF_MAC_ADDR_BROADCAST_INITIALIZER
QDF_MAC_ADDR_BROADCAST_INITIALIZER has been depreciated in favor of
QDF_MAC_ADDR_BCAST_INIT. Replace all usages with the new macro.

Change-Id: I5214558cd3788eacfe27188c230641edc86b1670
CRs-Fixed: 2176525
2018-01-25 13:26:01 -08:00
Min Liu
f98b12e05f qcacmn: Fix safe channel switch failure
For the AP+AP SCC LTE-Coex case, when channel avoidance event
is reported, the channel switch request for SAP will be blocked
by policy manager if the target channel is different with the
operating channel of the existing SAP due to the SCC policy.

Need to update the logic to give higher priority to the channel
avoidance request.

Change-Id: Ie42bab50c1fa92e4e8df9f1b0ce8b8f4f09551b5
CRs-Fixed: 2176250
2018-01-25 11:27:42 -08:00
Liangwei Dong
94f906c403 qcacmn: Fix vdev free issue
At present vdev holds ref cnt on pdev.
The wlan_objmgr_pdev_vdev_detach would trigger:
pdev delete.
So, get psoc from pdev firstly before
wlan_objmgr_pdev_vdev_detach, to avoid accessing
pdev content after free.

Change-Id: I7c1acc15a1dfbffaa81f0b7f827a2686ddaa469f
CRs-Fixed: 2171301
2018-01-25 11:27:40 -08:00
nobelj
c8eb4d60fb qcacmn: Add support to get monitor filter
on get_monrxfilter, it get the filter value set in dp_pdev struct

Change-Id: I6590ae90a606643177d905c3542edd39dbcf539a
2018-01-25 09:25:40 -08:00
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