Commit Graph

746 Commits

Author SHA1 Message Date
Alan Chen
aaa81b7e7b qcacld-3.0: Change spin lock APIs to use spin lock IRQ
The spin lock APIs are accessed from wake MSI hard irq handler as well,
causing deadlock. To solve this, change spin lock APIs to use spin lock
IRQ.
CRs-Fixed: 2519986

Change-Id: I4d05abd294a71a26915210ae7e2be9be6aa7a996
2019-09-04 17:38:22 -07:00
Kiran Kumar Lokere
99b0fa7dd0 qcacld-3.0: Add support for VHT MCS 10&11
Add support to advertise the VHT MCS 10&11 support using vendor
specific IE to enable the MCS 10 and 11 support in VHT mode.

Change-Id: I2d197dcce20ab4aec617ca8a7f4a54b438fae635
CRs-Fixed: 2465662
2019-09-04 16:22:53 -07:00
Bala Venkatesh
f2e066387c qcacld-3.0: Send TDLS offchannel as 0, if only 2G is supported
Send TDLS offchannel as 0 if only 2G is supported otherwise
FW will do the TDLS offchannel in 2G and will result in MCC
and not desired in 2G.

Change-Id: Ieeea619526a3d8b04ac4bda3f3e0ca73aba2f78a
CRs-Fixed: 2517642
2019-09-04 11:30:30 -07:00
Alan Chen
40b1a6c9f2 qcacld-3.0: Add timing profiling log for runtime PM operations
Add timing profiling log for runtime PM operations such that we can
know how much time each operation is taking.

Change-Id: Iad2aca8e8bb2f0dadc14d24e3a5c2b03938df9df
CRs-Fixed: 2518935
2019-08-31 04:26:38 -07:00
Bala Venkatesh
574a2f2e5c qcacld-3.0: Check the p2p roc timer state by acquiring timer lock
In function p2p_process_scan_complete_evt roc timer state is checked
using the api qdf_mc_timer_get_current_state, this api does not take
timer lock while returning the state. In other thread, if the timer
state is changed then the wrong timer state is returned in current thread.
And wrong timer state can lead to destroying roc timer without stopping
it synchronously.

Call qdf_timer_stop_sync api without checking the timer state
as the timer already checking the state by taking a timer lock.

Change-Id: Idb22e405178f2e0f1ed80b7c8aac04170e5b69bc
CRs-Fixed: 2511768
2019-08-30 04:51:34 -07:00
Rajeev Kumar
8d90fb34b9 qcacld-3.0: Remove CCE HW filter from runtime pm suspend
FW is not reay to support CCE HW filter during active mode
hence remove it.

Change-Id: Iba14c788362dad4d2f76eda8e06849b6c8174519
CRs-Fixed: 2514049
2019-08-29 22:10:50 -07:00
bings
b550aa1605 qcacld-3.0: Select dfs channel sap to handle radar event
If radar event is indicated in station vdev, it may be dropped by
station vdev since station does not support DFS master.

Select first sap vdev started in dfs channel to handle radar event.

Change-Id: I74229eb02c6ae6d81042df6b736d231db26253b5
CRs-Fixed: 2512836
2019-08-23 03:48:13 -07:00
Srinivas Dasari
dab7ef7fd0 qcacld-3.0: Send scan period received from vendor command to firmware
Scan period is configured through the DRIVER command
SETROAMSCANPERIOD currently. Add provision to set the same through
the roam subcmd and the attr QCA_ATTR_ROAM_CONTROL_SCAN_PERIOD

Change-Id: I3dd56f56ac8bc4ba48a88f8df292e9d4d5545fed
CRs-Fixed: 2509656
2019-08-23 01:43:13 -07:00
Alan Chen
cdba405f1c qcacld-3.0: Remove NaN offloading option
Firmware only supports offloading in STA and P2P CLI mode, so remove
NaN offloading option.

Change-Id: I1adb8ead32a0d45a34f72590c33309b17d6c80c0
CRs-Fixed: 2512426
2019-08-22 20:14:05 -07:00
Srinivas Dasari
89c959c42c qcacld-3.0: Configure full scan period from vendor cmd to firmware
Userspace can update the full scan period through the roam subcmd
QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_SET and the attribute
QCA_ATTR_ROAM_CONTROL_FULL_SCAN_PERIOD. Send the same to firmware
as part of roam scan offload command

Change-Id: I7c1046763d693faa3340b655848d3306ef92e06c
CRs-Fixed: 2508775
2019-08-22 12:34:29 -07:00
Vevek Venkatesan
98a10c3eef qcacld-3.0: cleanup IPA STA iface, if STA disconnect failed
If STA disconnect failed for any reason, cleanup IPA STA iface
if not already done.

Change-Id: I27ff33324bc4724e8470af9a0c434fa03e8aa5c3
CRs-Fixed: 2505563
2019-08-22 07:31:12 -07:00
Subrat Dash
57c3962868 qcacld-3.0: Add support for gpio based strobe to capture tsf
Add configuration for gpio pin used to send strobe to wlan hw.

The host driver will latch the current time and toggle the gpio
to generate a strobe to wlan hw.

The tsf will be latched on detecting the strobe and it will be
made available in a register for sw access.
The wlan fw will read this tsf and report it to driver using tsf event.

Change-Id: I4365d97d22836ddbbd2bf9913d4f723e5a870369
CRs-Fixed: 2495152
2019-08-21 00:06:01 -07:00
Abhishek Singh
e8882eeb76 qcacld-3.0: Fix WMI timeout for runtime PM
For runtime PM if the bus is suspended driver need to consider
extra 6 sec time for bus resume.
Thus add 6 sec extra in WMI timeouts if runtime PM is supported.

Change-Id: I5515cc889a0315382bac11a33ea6f901b7af1c46
CRs-Fixed: 2507029
2019-08-20 22:53:50 -07:00
Arun Kumar Khandavalli
3a01d10a1f qcacld-3.0: Free the tdls memory in the error conditions
As part of the tdls vdev creation, tdls osif memory is allocated
and not freed in the error condition, which can result in the
memory leak.

Free the tdls osif memory in the error condition

Change-Id: I084b14c4277be3e88142e3eaaabcf3293a15f220
CRs-Fixed: 2507609
2019-08-20 02:39:26 -07:00
Liangwei Dong
58ae4a278c qcacld-3.0: Do not remove unsafe channel for SAP
If g_sta_sap_scc_on_lte_coex_chan != 0, the SAP and
STA SCC on unsafe channel is allowed.
The change keeps the unsafe channel in SAP channel
list if STA is active on the channel.

Change-Id: I328841df611a000b1c4d4d09618a4035f0b7fba6
CRs-Fixed: 2509730
2019-08-20 02:39:17 -07:00
Abhishek Ambure
ec24b82507 qcacld-3.0: Refactor vdev stop/down code
Refactor vdev stop and down code to target_if common code.
Remove legacy code for vdev stop and down.

Change-Id: I4ab0743d39a3b37816ab9f18e8850cadf1335c15
CRs-Fixed: 2506649
2019-08-19 09:37:13 -07:00
Bala Venkatesh
8cd7d0b72a Revert "qcacmn: Free NDI peers/vdev at time of ndi_delete/driver unload"
This reverts commit I04631ffd611d6ded318ddfb65b2dfeba479c9bdc.
Currently, for all the peers cleanup is done in lim and wma layers
to remove this peers. The original change is deleting the ndi
peer in HDD, and can lead to memory overwrites.
Hence reverting the change.

Change-Id: Id0083c3d1612f0fdccb6fca2c9cc4c03f607a139
CRs-Fixed: 2507142
2019-08-19 06:19:19 -07:00
wadesong
823641ee1d qcacld-3.0: Fix an improper parameter type casting
In function csr_check_concurrent_channel_overlap, local
variable intf_ch is defined as uint16_t, but its pointer
is casted to uint32_t * before invoking
policy_mgr_get_sap_mandatory_channel, which will do
32-bit memory write and causes a stack memory over-
writing.

Call Trace:
  dump_stack+0x46/0x59
  print_address_description+0x66/0x22b
  kasan_report+0x21f/0x245
  policy_mgr_get_sap_mandatory_channel+0x1fd/0x258 [wlan]
  csr_check_concurrent_channel_overlap+0xf84/0x10d2 [wlan]
  sme_check_concurrent_channel_overlap+0xaa/0xf0 [wlan]
  wlansap_check_cc_intf+0x102/0x124 [wlan]
  wlan_hdd_get_channel_for_sap_restart+0x506/0x8f8 [wlan]
  policy_mgr_check_sta_ap_concurrent_ch_intf+0x35e/0x425[wlan]
  process_one_work+0x2cc/0x53b
  worker_thread+0x357/0x490

Change the type of the 2nd parameter to uint16_t within
function policy_mgr_get_sap_mandatory_channel, so only
16-bit memory writing will take place.

Change-Id: If514a394e65d005a1fe025c0e753bf7440dd5dde
CRs-Fixed: 2508798
2019-08-19 06:19:15 -07:00
Srinivas Dasari
3d1db0ba1f qcacld-3.0: Introduce ini param for full roam scan period
Full roam scan period is the minimum idle period in seconds between
two successive full channel roam scans. Firmware expects this param
as part of roam scan offload request. Add an ini param to set
it to a default value and use it while sending roam scan offload
request.

Change-Id: Id66b583b2c487f06e62298641dc28853af3ab11c
CRs-Fixed: 2507448
2019-08-18 08:20:29 -07:00
Liangwei Dong
30ccbf0a70 qcacld-3.0: Add INI for P2P GO force SCC
1. Add g_enable_go_force_scc INI configuration
to enable force SCC on P2P GO interface.
This option only takes effect when
gWlanMccToSccSwitchMode INI enabled.
2. Add API policy_mgr_is_go_allow_force_scc to get
the above configuration value for GO.
Driver will apply "MCC to SCC" logic to P2P GO
interface based on STA active status and the configurated
INI values.

Change-Id: I1d16368b5f2d88984b91ef0a3e882148c20dcd23
CRs-Fixed: 2509555
2019-08-16 04:13:34 -07:00
Liangwei Dong
3baa9f276c qcacld-3.0: Restart SAP when sta disconnected
In AP+STA case, if g_sta_sap_scc_on_lte_coex_chan != 0,
SAP is allowed SCC with STA on unsafe channel. And
if g_sta_sap_scc_on_dfs_chan != 0, SAP is allowed
SCC with STA on DFS channel.
But when the STA disconnected, standalone SAP is not allowed
on unsafe channel or DFS channel. We need to move
the SAP to safe channel or non DFS channel.
The original API -
policy_mgr_is_sap_restart_required_after_sta_disconnect
only handle AP+STA case. Change it to cover 3VIF
concurrency case - AP+AP+STA.

Change-Id: Iec4e750d8b3fda0cc52ac698ecaa9a274f935706
CRs-Fixed: 2509545
2019-08-16 02:57:48 -07:00
Yeshwanth Sriram Guntuka
ccf32f1c98 qcacld-3.0: TDLS sta_id cleanup for hdd_update_dp_vdev_flags
hdd_update_dp_vdev_flags takes sta_id as input and as a
part of clean up of sta_id, replace it by peer mac address.

Change-Id: Id9a8c132546d312f5b048485de48535807e2db4b
CRs-Fixed: 2506497
2019-08-15 20:38:21 -07:00
Liangwei Dong
071f98e7d0 qcacld-3.0: Handle channel switch in SAP+SAP SCC
SAP1 chan6, SAP2 chan6, LTE channel avoidance event marks
chan6 unsafe, driver will do channel switch for SAP1 and SAP2 to
safe chan 1.
In the middle of channel switch of SAP1, policy_mgr_allow_concurrency
disallows the channel switch request because new SAP1 channel 1
will cause MCC with existing SAP2 (channel 6) and firmware
doesn't support MCC for dual-beacon entities on same band.
This change removes all the SAP entry on the old channel
before do concurrency check for SAP channel change request.

Change-Id: Ic2c828a3fec4cbe2f11d4bedf471211bee442e9e
CRs-Fixed: 2491265
2019-08-14 14:30:07 -07:00
gaurank kathpalia
65027242df qcacld-3.0: Update HE capabilities in wiphy structure
Update the mac, phy, mcs, nss caps of bands
2.4ghz, and 5ghz for HE capabilities in the
wiphy structure to inform userspace about
the driver capability.

Change-Id: I9fb1233e5396bf3ea411c057af9cbcd5b358271c
CRs-Fixed: 2486266
2019-08-13 07:33:10 -07:00
Pragaspathi Thilagaraj
56b50ec857 qcacld-3.0: Check SAE & OWE target capability to enable RSO
Currently the host driver blocks roam scan offload command to
the target if the connected akm is OWE or SAE.

Add changes to read the WMI_SERVICE_WPA3_SAE_ROAM_SUPPORT and
WMI_SERVICE_WPA3_OWE_ROAM_SUPPORT service capability advertised
by the target and set it to the mlme fw_akm_bitmap. Read this
bitmap in csr_roam_offload_scan() to allow RSO command.

Also the connected akm is sent to the target via the
WMI_AP_PROFILE command. Translate the CSR akm type for OWE and
SAE akm also.

Change-Id: I68527722ab099e0c8e1681ed64ea416b9a6e9936
CRs-Fixed: 2491021
2019-08-13 04:17:19 -07:00
Yeshwanth Sriram Guntuka
084d2f461f qcacld-3.0: TDLS sta_id cleanup for hdd_roam_deregister_tdlssta
hdd_roam_deregister_tdlssta takes sta_id as input and as a
part of clean up of sta_id, replace it by peer mac address.

Change-Id: Ie0d8e16606bd72d77cc5f152cf5bfe530bd3856b
CRs-Fixed: 2503949
2019-08-13 04:17:14 -07:00
Rajeev Kumar
962a56bfd8 qcacld-3.0: Enable HW filters in runtime pm mode
Enable hw filter in runtime pm mode such that target
CPU wake ups can be avoided in order to achieve max
power savings.

Change-Id: I97aa26b063e70db5e3023faf6aa40cc53bfac3af
CRs-Fixed: 2502744
2019-08-12 12:24:05 -07:00
Kiran Kumar Lokere
150c4f52d3 qcacld-3.0: Update the max AMSDU limit to 15
Increase the max number of MSDU in AMSDU limit to 15 and set the
default value to 0 to config the FW in auto mode selection in which
FW picks the maximum number of MSDUs in AMSDU based on connection mode.

Change-Id: I6c1f1292a31fc9ea857e60e7a81d10b6def5cbc1
CRs-Fixed: 2502544
2019-08-09 18:20:12 -07:00
Yue Ma
0bd8428348 qcacld-3.0: Config WOW_NLO_SCAN_COMPLETE_EVENT by default
WOW_NLO_SCAN_COMPLETE_EVENT should be always a wakeable event so
there is no need config it again during runtime PM suspend. Same
for WOW_NLO_DETECTED_EVENT which is already configed by default.
Hence it is safe to skip config dynamic wake events for runtime
PM.

Change-Id: Ie99f9f3dbd5e696601c79b826dbc949c0b439dc1
CRs-fixed: 2502738
2019-08-09 16:32:58 -07:00
Alan Chen
b4a3a42477 qcacld-3.0: Change the max wow config in FW to 5
FW offload has no wow-wakeup-filter for GC vdev because the number of
filters is limited to two but Host tries to add filter from VDEV-0 to
VDEV-2. To address this, change the max wow config in FW to five.

Change-Id: Ie44403ef127cf0160f39aa001deddee2205b4696
CRs-Fixed: 2505367
2019-08-09 12:37:41 -07:00
Rakshith Suresh Patkar
6956929357 qcacld-3.0: Cleanup sta_id from IPA [PEER_ID_PHASE1]
Local sta_id or peer_id is being cleaned up across DP, HDD
and PS/WMA. So, any references to local peer_id/sta_id will
be replaced by peer mac address and all interactions
between the layers will be based on peer mac address.

Change-Id: I78230bf1e1ec090e83245bff04953fa2e03b91cd
CRs-Fixed: 2504013
2019-08-09 07:37:21 -07:00
Li Feng
3c356b4a16 qcacld-3.0: Fix OOB in policy_mgr_is_chan_ok_for_dnbs
Fix out of bound array access for operating_channel[] and
vdev_id[] in policy_mgr_is_chan_ok_for_dnbs.

Change-Id: I21f1d20ebce7c775abd75524fc388160a1154a36
CRs-Fixed: 2504888
2019-08-08 22:36:22 -07:00
Sourav Mohapatra
5c3d3a9012 qcacld-3.0: Reject down the tree transitions instead of waiting
The driver currently waits for driver transitions (loading/unloading)
to complete before allowing a psoc or vdev level transition/operation.
This can lead to race conditions if the driver acquires rtnl lock as a part
of the operation and simultaneously a driver transition is invoked.

One such scenario occurs if delete virtual interface is invoked in parallel
to rmmod. The timing of the calls can be such that the delete interface is
waiting on DSC queue to complete after rmmod while the rmmod is waiting on
the rtnl lock to be freed by the delete interface resulting in a scenario
where the threads are waiting on the other to complete.

* Thread B - Invokes rmmod and context switch happens before rtnl lock is
             taken

* Thread A - Takes rtnl lock and invokes iw dev wlan0 del
	   - Context switch after entering wlan_hdd_del_virtual_intf
	     before osif_vdev_sync_trans_start_wait

* Thread B - Waits for rtnl lock to be released by Thread A

* Thread A - Waits for driver transition to be completed by Thread B

To avoid this possible scenario, modify the infrastructure such that any
down the tree transitions/operations are rejected if a driver transition
is taking place instead of waiting. Also, modify the corresponding tests
in the DSC unit test framework to correctly verify the changes made.

Change-Id: I61715c8fc2df33fd2deb46389da0375e4df5080c
CRs-Fixed: 2475386
2019-08-08 08:40:17 -07:00
Will Huang
8b1923b2f0 qcacld-3.0: Update PCL table for AP+AP+GC case
Updated PCL table to support 3-port concurrent scenarios
AP+AP+P2P client. Index PM_SAP_SAP_DBS_2x2 need also update.

Change-Id: I6a073756d0087f6b83fb2477fc47ad938a7e5f0f
CRs-Fixed: 2493941
2019-08-07 20:21:24 -07:00
gaurank kathpalia
55c3b5be49 qcacld-3.0: Extend force 1x1 ini
Currently the driver checks whether the device
supports antenna sharing, and if the AP is added
in the OUI framework, then the driver modifies the
nss value to 1 to avoid sending SMPS to the peer AP.
Now suppose the device does not support Antenna sharing,
but supports DBS and is helium HW, then going to DBS HW
mode would result in peer sending a SMPS frame to the peer
as the helium HW only has two antennas, and one is needed
by each MAC now.

Fix is to add a third param in force 1x1 ini which would
decide the driver should consider the antenna sharing as
mandatory or not.

Change-Id: I3ae00fcbd642c7780952d66ccbf1208335fcb077
CRs-Fixed: 2496831
2019-08-07 08:41:16 -07:00
Yu Ouyang
797e614f08 qcacld-3.0: Fix memory leak issue
Object 'tx_conf_event' was dereferenced after being freed by calling
'qdf_mem_free(tx_conf_event)' function. Object 'tx_conf_event->nbuf'
can't be freed.

Free 'tx_conf_event->buf' before 'tx_conf_event' free.

Change-Id: Id5a8f17db4d58395837db9878c6c7d87e9fe40c4
CRs-Fixed: 2503761
2019-08-07 01:31:07 -07:00
Sourav Mohapatra
0a4190ca48 qcacld-3.0: Add zero check before division
In function pmo_core_calculate_listen_interval the max_mod_dtim is
obtained by division of sta ditm with the max ditm. The max ditm can be
zero and can cause divide by zero assert.

Add a zero check before division.

Change-Id: Ie48c8b1086efa4f36e55e83b44cc9cc528ed908d
CRs-Fixed: 2475568
2019-08-06 04:08:46 -07:00
Sourav Mohapatra
40ec97f87b qcacld-3.0: Remove QDF_BUG on vdev_id inside pmo_psoc_get_vdev
Currently, there is an assert condition inside function pmo_psoc_get_vdev
wherein if the vdev_id exceeds the maximum allowed value, a QDF_BUG is
triggered. This check is not necessary as a simple error check takes
care of the same situation.

Remove the assert condition from pmo_psoc_get_vdev

Change-Id: Icd4c892eca893de0f09c24e74407aba5e243f7bd
CRs-Fixed: 2497743
2019-08-06 01:25:39 -07:00
Abhishek Ambure
361a98c596 qcacld-3.0: Refactor vdev delete code
Refactor vdev delete code for target_if conversion. Remove legacy
vdev delete code.

Change-Id: Ia95faa3a8eb561e19d439046a25bd7e452b98fb2
CRs-Fixed: 2471947
2019-08-05 16:45:48 -07:00
Abhishek Ambure
2e4575a9c6 qcacld-3.0: Refactor vdev create code
Refactor vdev create code to target_if common code. Remove legacy
code for vdev create.

Change-Id: I57caf0c5fa2da7b6ba640a9d2edb72363959c585
CRs-Fixed: 2460786
2019-08-05 10:55:23 -07:00
Abhishek Singh
449b59f69c qcacld-3.0: Handle bss peer add failure in vdev state machine
In case bss peer add failure vdev state machine is in
substate  WLAN_VDEV_SS_START_START_PROGRESS and thus
WLAN_VDEV_SM_EV_CONNECTION_FAIL will not be handled and thus vdev
SM will not move to init state and pe session is not deleted.

This lead to vdev ref leak for the ref taken by pe create session.

Fix this by sending WLAN_VDEV_SM_EV_START_REQ_FAIL event when
vdev SM is in WLAN_VDEV_SS_START_START_PROGRESS state and continue
cleanup.

Change-Id: I4c559333a6bd018e3382f9781883acf314434cf2
CRs-Fixed: 2502817
2019-08-05 09:31:37 -07:00
nakul kachhwaha
35f3ad84ea qcacld-3.0: Properly configuring OpClass into TDLS Peer
OpClass in TDLS peer is configured using gTDLSPrefOffChanNum
and gTDLSPrefOffChanBandwidth INIs. Values of OffChanBandwidth
INI can't distinguish 40+ and 40- BW which is required to fetch
the correct Opclass for a given channel from regdb. Adding
function which will convert OffChanBandwidth value into required
value before fetching opclass. This is required for TDLS 5.9 Cert
Test Case.

Change-Id: Iba27034335309472d16a6aeef819995504674fc5
CRs-Fixed: 2457369
2019-08-05 07:49:51 -07:00
guangde
3fa3701975 qcacld-3.0: enable legacy coex feature
Because newest firmware codes already been changed, the previous
coex configure command are invalid. Firmware need host driver
to enable WMI_SERVICE_THREE_WAY_COEX_CONFIG_LEGACY service during
wlan init. Add a new parameter "gThreeWayCoexConfigLegacyEnable" to
initial config file. If this parameter value is zero,set coex
priorities command will return error.

Change-Id: Ief1617e2ba5363e276c55135198613a0e54b71d5
CRs-Fixed: 2482734
2019-08-04 06:23:09 -07:00
Abhinav Kumar
c6fe55711e qcacld-3.0: Don't enable WOW_BEACON_EVENT by default for STA
While processing QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START vendor
cmd, the expectation is FW should not wakeup host if host is in
wow mode. Wakeup of HOST happens purely based on Nth beacon
WMI event WMI_VDEV_PARAM_NTH_BEACON_TO_HOST config to firmware
where host gives Nth value and MSB bit to indicate whether
to wake up host or not. MSB bit is 1 means fw should not wakeup
host(By default MSB bit is 0).

WOW_BEACON_EVENT registration on host is required only in case
if HOST sends WMI_RMV_BCN_FILTER_CMDID in order to allow fw to send
connected AP beacons. Currently, HOST sends NTH BEACON CMD to fw with
MSB bit of Nth value equal to 1 in order to allow send connected AP
beacons to HOST only if HOST is not in wow mode.

Fix is to remove default WOW_BEACON_EVENT registration for STA on host.

Change-Id: I4717925fbcb38efb14f3336706f93d90f7a3888e
CRs-Fixed: 2496594
2019-08-01 16:24:04 -07:00
Srinivas Dasari
3aa337f1cc qcacld-3.0: Append vendor specific IEs received to assoc request
wpa_supplicant/framework sends different vendor specific IEs in
connect request. Currently driver is parsing the IEs and appending
specific IEs to the assoc request frame. But all vendor specific
IEs are supposed to be sent in the assoc request. Extract all vendor
specific IEs and append at the end of the frame.
MBO IEs are expected to be present at the end of the frame.
So append rest of the vendor IEs just before MBO IE.

Change-Id: I3d49c72a31d142ef3b14b439af2ae4cd8be059ea
CRs-Fixed: 2498976
2019-07-31 17:09:24 -07:00
Manikandan Mohan
e28cdc8401 qcacld-3.0: Move NAN cfg params init to PSOC open
NAN config param initialization from CFG component is done
during PSOC object created notification. But as per component
design it must be done at psoc open to avoid CFG component
not initialized case. Thus update nan component to reorganize
NAN cfg params init.

Change-Id: I9636b527b796202e55a57c28d604795a705de026
CRs-fixed: 2489286
2019-07-29 20:10:58 -07:00
hqu
9bfd7f658e qcacld-3.0: Define ext_vdev_ptr and ext_pdev_ptr with specific type
Define ext_vdev_ptr and ext_pdev_ptr with specific type, remove void
pointer usage for part of mlme code.

Change-Id: Ie71d59386224e4671bdae071aa7425a998d5e242
CRs-Fixed: 2488192
2019-07-27 18:21:17 -07:00
Jianmin Zhu
df9d1b8da6 qcacld-3.0: Enable special 4 ports dual AGO plus dual STA
Enable following special 4 ports concurrency for HST:

(AGO+STA)(2.4G MAC SCC)+(AGO+STA)(5G MAC SCC).

Change-Id: I3bef824c5296a1c7b2f644abc24009463d8b2864
CRs-Fixed: 2496121
2019-07-27 09:53:17 -07:00
Jia Ding
765e76b325 qcacld-3.0: Check IPA RX bridge device terminated
On MDM platform, low throughput is observed for SAP RX
terminated scenario. In case of SAP, SAP device itself
is added as a slave to the bridge device, which acts as
a router device.

For SAP RX terminated scenario, destination MAC address
of RX packets is the bridge device. However for WDI 3.0,
WLAN IPA has to check if destination MAC is a valid peer
for SAP intra-bss forwarding.

Currently in intra-bss forwarding, dp_find_peer_by_addr()
is used to look up if destination MAC address is a valid
peer. Issue is that in dp_find_peer_by_addr() peer
spinlock is grabbed via qdf_spin_lock_bh. IPA RX is in
process context and qdf_spin_lock_bh turns to spin_lock_bh,
which hurts netif_rx badly.

Fix is to check if RX packet is bridge device terminated
in IPA component module so as to bypass intra-bss
forwarding logic and to make the RX path BH lockless.

Note that if there's a BH lockless API to check if
destination MAC address is a valid peer, this check will
not be necessary.

Change-Id: I00fca3e75ae55ae1d2f591fddd00e49dfb634c5c
CRs-Fixed: 2494442
2019-07-26 20:09:59 -07:00
hqu
24e0be1bab qcacld-3.0: Define void * data members of cp_stats with specific type
Define void * data members of cp_stats with specific type, remove void
pointer usage for part of cp stats code.

Change-Id: Iace37c0a546909b865d5185830a2e02b5b39b7d8
CRs-Fixed: 2492544
2019-07-26 18:21:46 -07:00