Commit Graph

1806 Commits

Author SHA1 Message Date
Rajeev Kumar Sirasanagandla
e83ac29a70 qcacld-3.0: Add 6GHz support for VENDOR_SUBCMD_ACS_POLICY
As a part of 6GHz support, add support to parse channel frequency
attribute: QCA_WLAN_VENDOR_ATTR_ACS_FREQUENCY_HINT (in MHz)
in QCA_NL80211_VENDOR_SUBCMD_ACS_POLICY command data.

Change-Id: Ic7bee5fe1123b82607e375c71a21b9744d67ea17
CRs-Fixed: 2533998
2019-11-15 02:27:15 -08:00
Rajeev Kumar Sirasanagandla
95f202a55b qcacld-3.0: Add 6GHz support for VENDOR_SUBCMD_EXTERNAL_ACS
As a part of 6GHz support, add support to parse and send channel
frequency (in MHz) in QCA_NL80211_VENDOR_SUBCMD_EXTERNAL_ACS
command/event data.

Change-Id: I87879b4f8dd6a5c4ded2e89c527ba91432c9c48a
CRs-Fixed: 2533732
2019-11-15 00:57:42 -08:00
Arun Kumar Khandavalli
42b4487910 qcacld-3.0: Register Open/close session callbacks once
Open/close session callbacks are common for all the device modes
supported, so register once during the start_modules.

Change-Id: Ia94857ce4cc608be30e9974ddde8a6261d45f6e3
CRs-Fixed: 2555919
2019-11-14 19:25:21 -08:00
Alan Chen
dd4e7e3295 qcacld-3.0: Create a new function for adapter reference verification
The current HDD callback in hdd_rx_flush_packet_cbk() does not validate
the adapter context properly. Instead of verifying the adapter magic,
verify the adapter itself is still valid through the adapter list.
Create a new function hdd_get_adapter_by_reference() to verify the
adapter reference.

Change-Id: I468bd55b2318635ad89087e6c6ad6097df68d405
CRs-Fixed: 2563654
2019-11-14 10:42:59 -08:00
Tushnim Bhattacharyya
6c40b112ce qcacld-3.0: Replace channel id with frequency in ecsa indication
Replace channel ID with channel frequency in ecsa indication flow.

Change-Id: I1dd3148566e1da37a6f3fa71f1887e66f87f5d1c
CRs-Fixed: 2555384
2019-11-14 06:00:26 -08:00
bings
e063e4f155 qcacld-3.0: Convert legacy chan ID usage to chan freq
Modify the following 3 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
   sme_get_reg_info
   wlan_hdd_get_channel_info
   hdd_update_channel_bw_info

Change-Id: I87ad6fb9cd9fcd7fe4e41e62a32e4954e93f8ba1
CRs-Fixed: 2554710
2019-11-12 02:35:14 -08:00
Sourav Mohapatra
f43b308019 qcacld-3.0: Take dev_hold during iterating adapters
The existing API/macro hdd_for_each_adapter() iterates over the hdd
adapter list with the iterator pointing to each adapter. This iteration
is not safe when seen with respect to unregistration of netdev going in
parallel in other thread. In case the adapter is removed, the iteration
will result in NULL pointer dereference.

An example of this issue is seen when the following happens in parallel.
	1. del_virtual_interface -> hdd_remove_adapter -> removes node
	2. hdd_indicate_mgmt_frames -> hdd_for_each_adapter iteration

To make the iteration delete safe, redirect the fetching of the adapter
through objmgr. This reduces the possibility of race window by a large
margin. In this case, even if the adapter is freed as a part of
unregister_netdevice, the reference held ensures that we block the
unregister until the work is done in the current thread.

Change-Id: Ic49aa22a8eef68dc1977fb73f2c1fd920bfeb7a1
CRs-Fixed: 2557890
2019-11-11 15:15:33 -08:00
Visweswara Tanuku
6aca92114d qcacld-3.0: Do not send baselining start/stop during motion detection
Motion detection baselining can be started during Motion detection
phase which results in false motion detection

Do not send baselining start/stop during Motion detection phase,
to prevent false motion detection

CRs-Fixed: 2556575

Change-Id: I20de48b3d09cf8adec3a3a2d9585ad3754f12a9e
2019-11-06 12:38:06 -08:00
Visweswara Tanuku
41d21c04e4 qcacld-3.0: Do not start motion detection if baselining is not done
Do not start motion detection if baselining is not done, or motion
detection config values are not available

CRs-Fixed: 2547648

Change-Id: I23a02dbd21e2b673e625938a35003f3730135327
2019-11-05 04:17:43 -08:00
Paul Zhang
1ef2b7cd7f qcacld-3.0: Config latency level to fw after vdev creates
From android Q, it uses a random MAC to connect to different
SSIDs which causes the interface down/up, the vdev will be
deleted and the latency level info is lost in firmware.

To fix this, save the latency level and reconfig it to fw
after vdev creates.

Change-Id: Ifac93fb869553d0f9eb553d5c41da43c8b014ad8
CRs-Fixed: 2554736
2019-11-02 05:19:58 -07:00
Rakesh Pillai
246f1dfdd2 qcacld-3.0: Add support to flush rx packets for a vdev
When a particular vdev is deleted, the corresponding rx
packets which have been queued to the rx thread are not
flushed. Hence when such packets are submitted to the
network stack, the dev for this skb will be invalid,
since we have already freed the adapter.

Flush out the packets in the rx thread queues, before
deleting the vdev.

CRs-Fixed: 2552140
Change-Id: Ia49af2c203c64077f7fd87524bb4caa4060e0044
2019-11-01 00:17:18 -07:00
gaurank kathpalia
924b2a764a qcacld-3.0: ACS changes for 6ghz support
Driver ACS changes for 6Ghz channel support.

Change-Id: I94cc834a9fdd5cfe54e4dcc09aba0253de6b2a39
CRs-Fixed: 2555187
2019-10-29 19:23:44 -07:00
Sourav Mohapatra
f6fefb873f qcacld-3.0: Do not assert on reinit failure
Presently, the driver performs device assert on re-init failure after
SSR. This is not desirable as in some cases the reinit failure can be
recovered from.

Change the default value of the INI controlled variable to 0 to avoid
this assert.

Change-Id: I802921e8602e0648cacc4185f550b72ad2b3af66
CRs-Fixed: 2547295
2019-10-29 10:58:37 -07:00
Jingxiang Ge
f1d8159208 qcacld-3.0: config 11ax linkspeed rate
This change is to support 11ax linkspeed rate
on UI.

It supports different config for gReportMaxLinkSpeed.

Current 11ax rate support to max 80 nss2 mcs11.

Change-Id: Iff8cbafe1354ab50c4b3a90ef8ab698a3350a21d
CRs-Fixed: 2529291
2019-10-26 08:11:48 -07:00
Manikandan Mohan
5c1e9aeb3d qcacld-3.0: Update HDD for using channel frequency for STA connection
Due to channel number ambiguity with 6ghz, update channel references
in HDD STA connection path to use channel frequency.

Change-Id: I81f3449c9087030e4d98c17a5b12c731f99b39ab
CRs-fixed: 2552009
2019-10-26 03:05:44 -07:00
Yeshwanth Sriram Guntuka
4ac1584527 qcacld-3.0: Cleanup sta_index in TDLS structures and APIs
Remove sta index references in TDLS structures and APIs
and mac address would be used instead to refer the peer.

Change-Id: I861f7ce068f3f545598129b9f3955b84b2a6fbce
CRs-Fixed: 2524512
2019-10-22 09:05:33 -07:00
Sourav Mohapatra
a3cf12aee4 qcacld-3.0: Remove sta_id from hdd_connection_info
As a part of the sta_id clean up, remove the usage of the sta_id from
struct hdd_connection_info. Instead of the station id, use peer mac
address to interact with the protocol and DP layers.

Change-Id: I60b939c37ff49b50579791f45e3e81ed81b86967
CRs-Fixed: 2524514
2019-10-22 09:04:56 -07:00
gaurank kathpalia
7aed85ed22 qcacld-3.0: Wait for ACS rather than iface change fail
Currently the driver checks for the ACS in progress
in change iface and returns fail if the ACS is in
progress. The return status is not checked by the
kernel and it assumes that the interface change is
successfull, which may lead to out of sync between
driver and kernel.

Fix is to wait for ACS completion if the iface change
or interface down is triggered in between ACS.

Change-Id: Iaabd42fc959a533041b18b181e1b63493f17e0a5
CRs-Fixed: 2541325
2019-10-22 01:50:27 -07:00
CNSS_WLAN Service
7ff488ca01 Merge "qcacld-3.0: Process rx_mgmt_pkt based on frequency" into wlan-cld3.driver.lnx.2.0 2019-10-18 09:09:14 -07:00
Ashish Kumar Dhanotiya
ca5d922263 qcacld-3.0: Process rx_mgmt_pkt based on frequency
As a part of 802.11ax amendment, 6GHz band operation is added.

Since the 6 GHz channel numbers are overlapping with existing 2.4GHz
and 5GHz channel numbers, use frequency to identify unique channel
operation instead of channel number. Channel frequency is unique across
bands.

As part of above requirement add logic to process rx mgmt
packets based on the frequencies instead of channel numbers.

Change-Id: Ib063070738ecdb4f83379eafe50629778a490aae
CRs-fixed: 2522693
2019-10-18 02:55:17 -07:00
CNSS_WLAN Service
bd06ef44f8 Merge "qcacld-3.0: Add ini to disable aggressive EDCA config" into wlan-cld3.driver.lnx.2.0 2019-10-17 20:26:59 -07:00
Paul Zhang
d34b575fc5 qcacld-3.0: Add ini to disable aggressive EDCA config
Add action_oui ini gActionOUIDisableAggressiveEDCA to identify peers for
which aggressive EDCA configuration causes some IOT issues.

Change-Id: Ifea0c224cef2378727c9f78d8b571ea9c57bb662
CRs-Fixed: 2507191
2019-10-15 23:17:55 -07:00
Will Huang
4b097f5add qcacld-3.0: Replace channel number by channel frequency
To support 6Ghz channel, update channel number of struct
sap_StartBssCompleteEvent_s, hdd_ap_ctx and sap_ch_selected_s.

Change-Id: I19e6d7d03072135abed25e077e8573b5326ddba8
CRs-Fixed: 2519308
2019-10-16 10:07:17 +08:00
Lin Bai
7c3d0c45db qcacld-3.0: Fix CFG_RX_MODE_DEFAULT redefined error
SDX55 defined both MDM_PLATFORM and FEATURE_WLAN_DP_RX_THREADS,
and this is causing redefined issue.

Change-Id: I1427be477dd3832b98332c9edaa4063b8c573ae4
CRs-Fixed: 2542264
2019-10-15 05:16:12 -07:00
Sourav Mohapatra
c320ada27c qcacld-3.0: Move cache sta info to hash based
Currently in hdd_adapter, the variable cache_sta_info is an array of
hdd_station_info structured indexed by the sta_id. As sta_id is no
longer used, this array based implementation becomes unnecessary.

Move the sta_info implementation to a hash table implementation.

Change-Id: Iac11ecd2ae4a454649235cf8763e9a5f80e7eb38
CRs-Fixed: 2515316
2019-10-15 00:48:59 -07:00
Sourav Mohapatra
43e6dea453 qcacld-3.0: Move sta_info from array based to hash based
Currently in hdd_adapter, the variable sta_info is an array of
hdd_station_info structured indexed by the sta_id. As sta_id is no
longer used this array based implementation becomes unnecessary.

Move the sta_info implementation to a hash table implementation.

Change-Id: I7d6fe04b7e0ab22615d431de9a10a4ad38ed65ba
CRs-Fixed: 2514280
2019-10-15 00:48:54 -07:00
Rajeev Kumar
d097ea1836 qcacld-3.0: Add OS_IF DSC vdev op protection to indicate mgmt frame api
HDD indicate mgmt frame API is called from scheduler context to send mgmt
frames to user which can happen in parallel to del virtual interface which
can lead to race conditions and stale netdev pointer usage and hence add
OS_IF DSC vdev op protection to indicate mgmt frame API such that when
management frames are getting indicated to user space del virtual interface
transaction is synchronized.

Change-Id: I620225f7a0a46efa6da6d615e3014a8f4f5e43cf
CRs-Fixed: 2543244
2019-10-14 05:46:53 -07:00
Alan Chen
df858ef763 qcacld-3.0: Add new runtime pm wakelock for user
Add new runtime pm wakelock for user such that runtime PM can be
disabled for certain scenarios.

Change-Id: Ibaa64f351393b63559b55827f77cdf126e7038b3
CRs-Fixed: 2534535
2019-10-12 20:35:50 -07:00
Rajeev Kumar Sirasanagandla
1b3a535500 qcacld-3.0: Ignore regulatory offload indication from FW
Based on the ini "ignore_fw_reg_offload_ind" ignore regulatory
offload indicatin from fw.

Change-Id: I6e20f2100eeac8e93baa5c5d3f3d1c8b33356aed
CRs-Fixed: 2532989
2019-10-12 19:03:35 -07:00
Nisha Menon
0333f2d173 qcacld-3.0: Remove Datapath items in WCNSS_qcom_cfg.ini
Remove certain DP params from .ini and update their default
values in header file.
Parameters updated are:
rx_mode = 20(DP_RX_THREAD | NAPI),
ce_service_max_rx_ind_flush = 1,
ce_service_max_yield_time = 500.
Parameters removed:
gEnableFastPath=1.

Change-Id: I397c40270444a7370e455425dd72bdffdb7c831d
CRs-Fixed: 2542264
2019-10-12 02:34:02 -07:00
Mohit Khanna
d2ecf985d6 qcacld-3.0: Change Very High BW thresh to 9000
Change the very high bandwidth threshold to 9000 packets. Thus if the
packet length is 1500 bytes and for 100ms bandwidth interval this is
about 1030Mbps. This makes the high bandwidth range 240Mbps - 1030Mbps.

Change-Id: Ia9d5f9e3547148c5dc378a728514c4020649944e
CRs-Fixed: 2527623
2019-10-09 20:39:27 -07:00
Kiran Kumar Lokere
54819a39d8 qcacld-3.0: Re-enable TWT before host TWT trigger mode
Disable the current TWT session and re-enable the TWT if the
current session in FW trigger mode before changing the TWT mode
to host trigger mode.

Change-Id: I7de2126605685c85a240d38356d439cb4be8cce1
CRs-Fixed: 2539353
2019-10-09 16:16:43 -07:00
Manjunathappa Prakash
35af2e20a6 qcacld-3.0: Identify TCP vs UDP Tx traffic
Identify TCP vs UDP Tx traffic to vote differently for system resource.
Accordingly vote for gold cores only for UDP Tx high TPUT traffic.

Change-Id: I27190b92b1be6ebe1574a9941a5de8c43bb59a0b
CRs-Fixed: 2499147
2019-10-07 02:13:09 -07:00
Manjunathappa Prakash
eb1ec86246 qcacld-3.0: Add CPU mask support to pm_qos calls
Call the pm_qos voting for specific instead of applying vote
for all cores.

Change-Id: I74b3696e15f0adc38149265dacdd5fb10e9055fe
CRs-Fixed: 2495713
2019-10-07 02:13:02 -07:00
Sravan Kumar Kairam
10ed0e822a qcacld-3.0: Check for last busy mark by datapath rx process
Currently as part of cfg80211 wlan stats command after fetching the
stats runtime sync suspend is issued which puts the link in low
power state with out waiting for link inactivity timeout. This leads
to throughput degradation in case of rx direction as in rx processing
data path extends the timer by marking last busy to avoid immediate
runtime suspend. But runtime sync suspend does not take in to account
of the link idle timeout value before suspending the link. So in this
change before issuing runtime sync suspend check the duration since
last busy mark by data path rx process. If the duration is less than
run time delay just do runtime put.

Change-Id: I4e071ddda1c6a815f29d5b44b95e699a212b59d6
CRs-Fixed: 2511423
2019-10-01 03:56:55 -07:00
Hangtian Zhu
a053d2a304 qcacld-3.0: Fix compile issue while WLAN_LOGGING_SOCK_SVC_ENABLE disabled
Fix compile issue while WLAN_LOGGING_SOCK_SVC_ENABLE disabled.

Change-Id: If83e0172f15aa856bf02d875e35aa54bcb0b6cc5
CRs-Fixed: 2536691
2019-09-27 09:12:05 -07:00
Liangwei Dong
692455f021 qcacld-3.0: Populate 6GHz channel list to wiphy
Use separate band - NL80211_BAND_6GHZ for 6GHz channel
list population. And 6GHz channels are reported only
when CFG80211_6GHZ_BAND_SUPPORTED and CONFIG_BAND_6GHZ
feature flags are defined.

Change-Id: Ieec30b304a7c3e8e856f290afdb4177206aeb2c7
CRs-Fixed: 2524262
2019-09-26 14:53:22 -07:00
Abhinav Kumar
523ca376a9 qcacld-3.0: Add support to dynamically enable roaming in STA+STA
Currently in STA+STA scenario roaming is enabled on the
first connected STA1 and is enabled on the other STA2 on
STA1 disconnection. This change adds support to dynamically
enable or disable roaming on any STA.

Change-Id: I34dc2730fb38193ea3dd0ec35c79df233f270913
CRs-Fixed: 2520827
2019-09-25 10:37:15 -07:00
bings
14c3f069e5 qcacld-3.0: Add support to configure HE SGI for SAP
Add support for configuring HE SGI for SAP.

Change-Id: I57f4f7b592d3f518fe74ce58294543a4b8567ab8
CRs-Fixed: 2527533
2019-09-25 04:58:53 -07:00
Tushnim Bhattacharyya
ba6d1e030a qcacld-3.0: Replace channel with frequency in channel_info
Replace channel ID with frequency in struct hdd_channel_info
& oem_channel_info.

Change-Id: I1a14ab40da4824d2861a7ec862cc322a158f0cd1
CRs-Fixed: 2532299
2019-09-23 14:52:27 -07:00
sheenam monga
67ecb07330 qcacld-3.0: Add operating frequency in hdd_config
Currently, operating channel is populated for hdd_config
In 6G channel numbers can be same with 2G/5G
which can lead to erroneous behaviour in case of 6G.

Fix is to add operating frequency list in structure hdd_config
as frequency will always be unique.

Change-Id: I3f21b75c6763054afd42df6ea13d5ce96b0ed0a8
CRs-Fixed: 2517114
2019-09-20 23:36:02 -07:00
Hangtian Zhu
c7642605cc qcacld-3.0: Add CONFIG_MULTI_IF_LOG to support multi if log
This is a propagation of qcacld-2.0 commit 98821c7dcf49d ("qcacld-2.0:
Add CONFIG_MULTI_IF_LOG to support multi if log"). Add CONFIG_MULTI_IF_LOG
to support multi if log by assigning the specific netlink protocol
when dual wlan cards are loaded.

Change-Id: I3ea9574899c23a8d2ebbdea5b958cc3ad7947fe5
CRs-Fixed: 2525483
2019-09-20 01:06:04 -07:00
Abhishek Ambure
6867746429 qcacld-3.0: Keep IBSS code under feature flag in HDD
IBSS code is placed under QCA_IBSS_SUPPORT feature flag.

Change-Id: Ib3c2d24c703e19d3c25c7b89932751faac5e2874
CRs-Fixed: 2527264
2019-09-17 01:07:45 -07:00
Hangtian Zhu
2b2adde18f qcacld-3.0: Add macro protection for throughput level checking in rx cbk
Add macro protection for throughput level checking in rx callback.

Change-Id: I43c4a0cabb770b6ef9538b90e07fd218b40f743b
CRs-Fixed: 2522061
2019-09-16 22:25:19 -07:00
Wu Gao
aa3ab36be6 qcacld-3.0: Set rx chainmask before start spectral scan
It need rx chainmask to select noise floor when start spectral gen3
scan and rx data by DMA. So set rx chainmask before start spectral
scan.

Change-Id: I63efd8f5384537b5697ba809bb05fdd17e243210
CRs-Fixed: 2519366
2019-09-14 21:25:56 -07:00
Wu Gao
dda4a36a03 qcacld-3.0: Add version information in SPECTRAL_SCAN_REGISTER_RSP
Spectral tool is required to compatible with different version of
spectral, so add version information in SPECTRAL_SCAN_REGISTER_RSP.

Change-Id: Id766d95463e511209c752a428761fe7f1380c53e
CRs-Fixed: 2495259
2019-09-14 21:25:45 -07:00
Qun Zhang
1b3c85c2eb qcacld-3.0: Add INI to configure SIFS burst mode
To pass WFA 11N 4.2.25 case, it's needed to enable legacy mode
SIFS burst. So add INI to make SIFS burst mode configurable.

Change-Id: I740fe33a7ae0d9b558aa3b3aeee434f482ed24cb
CRs-Fixed: 2486171
2019-09-10 01:02:49 -07:00
Alan Chen
0f29e974ec qcacld-3.0: Wait for PM freeze when turning wifi on
Add a wait for PM freeze when wifi is turning on to make sure file system
and QMI are still accessible before attempting to download the FW and
trigger a QMI handshake with FW.

Change-Id: Ia2f3dc28abb9cab4b5dd8038ea02ac016eb74bbb
CRs-Fixed: 2521009
2019-09-04 22:23:52 -07:00
Alan Chen
abd1947c43 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
Jinwei Chen
0dc383e4e2 qcacld-3.0: refine low Tput GRO logic
a. when T-put < 18Mbps, do GRO/GRO flush for each RX packet.
b. when T-put can kept stable (18Mbps ~ 60 Mbps) last >= 1 second ,
skip GRO flush logic.

Change-Id: Ic8075f10f72b479c6941d7ac12a71fd90f945094
CRs-Fixed: 2509672
2019-08-29 02:53:41 -07:00