Commit Graph

622 Commits

Author SHA1 Message Date
Sravan Kumar Kairam
3bc886df40 qcacld-3.0: Support stats quota for sta + sap ipa offload
Implement metering stats quota to support ipa offload sta plus
sap wifi sharing use cases.

Change-Id: Ic9d5ad817ffb4d671a43f3f3aebb2d8cce293873
CRs-Fixed: 2517696
2019-10-19 17:46:02 -07:00
Tiger Yu
81a8073dcb Revert "qcacld-3.0: Featurize partial reorder properly"
The revert Change-Id: I1f3819fa093766abba87e5dc6dc44e6d2188740b

Inlucde the ol_rx_reorder.c for LL solution to avoid NULL pointer access
when handling the fragmentation frames.

Change-Id: I5182693437b00d4c8a932beb59fd03adea5ee8a1
CRs-Fixed: 2546353
2019-10-17 22:46:42 -07:00
Manjunathappa Prakash
458f6fe460 qcacld-3.0: Add changes to support qca6490
Add changes to support qca6490 chip.

Change-Id: I861d88f6c9aba5285eff17c188bf335d50839d56
CRs-Fixed: 2522129
2019-10-17 15:06:24 -07:00
Ajit Pal Singh
7fef54a8ac qcacld-3.0: usb: Make HTC_MAX_MSG_PER_BUNDLE_TX configurable
Make HTC_MAX_MSG_PER_BUNDLE_TX configurable through config files.
Also set HTC_MAX_MSG_PER_BUNDLE_TX to 48 for QCN7605 usb.

Change-Id: If6616251f536c35db087d5623a81c8a3f02da725
CRs-Fixed: 2544743
2019-10-16 05:19:06 -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
Jinwei Chen
5423579ff2 qcacld-3.0: enable DP pending memory flushing
Enable DP pending memory flushing by macro WLAN_DP_PENDING_MEM_FLUSH

Change-Id: I77a85c208a77cf7d2e43270b396e4ed9e41c3e85
CRs-Fixed: 2543465
2019-10-12 14:39:19 -07:00
Guisen Yang
260fd0882c qcacld-3.0: Remove hif_exec from NAPI switch
When NAPI is disabled, there are some failures show that certain APIs
are not defined, these APIs are not NAPI related and defined in
hif_exec.c. But this file will not be compiled when CONFIG_WLAN_NAPI
is not defined. Remove this build constraint and encap the NAPI related
APIs with CONFIG_WLAN_NAPI in file hif_exec.c. Meanwhile add the HIF_CE_DIR
for USB and SDIO case, otherwise it has build error after hif_exe.c move to
the common directory.

Change-Id: Ie1a32f6abbe2d361e126c361a2522ae0500139e9
CRs-Fixed: 2532586
2019-10-09 22:02:02 -07:00
Venkata Sharath Chandra Manchala
eb2d2581dc qcacld-3.0: Enable HIF_CE_DEBUG_DATA_BUF
Add support to make a copy of HTC buffer
before posting it to CE src rings.

Change-Id: Ie1219214a083ae4e9152e8acf63104aab9187ec6
CRs-Fixed: 2530421
2019-10-09 19:10:30 -07:00
Wu Gao
10300f9d6f qcacld-3.0: Enable direct buffer rx component
Enable direct buffer rx component in Kbuild since spectral scan gen3
based on this feature.

Change-Id: I8d44b35ca0d334917b3c052cc8ab4e47db34e4a1
CRs-Fixed: 2505676
2019-10-08 03:54:54 -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
Manikandan Mohan
1baadae237 qcacld-3.0: Add support for WMI over QMI
Add support for WMI over QMI to reduce power consumption for
periodic stats report.

Change-Id: Iec725b357d9bcfa33029aedf7c568814499bc130
CRs-fixed: 2521826
2019-10-03 21:59:31 -07:00
Abhishek Ambure
995ab5a011 qcacld-3.0: Kbuild change for IBSS feature flag enable/disable
Enable/disbale IBSS feature using QCA_IBSS_SUPPORT flag in Kbuild.

Change-Id: Icd69009ac0ed0976f288e7f04639464f7b2b5891
CRs-Fixed:  2537008
2019-10-03 08:36:56 -07:00
Abhishek Ambure
e852897fe3 qcacld-3.0: Add wmi_unified_vdev_tlv.o in Kbuild
As common code carved out TLV and non-TLV definitions of vdev mgr ops
to a separate file in cmn_dev/wmi, wmi_unified_vdev_tlv.o is added
to Kbuild to compile wmi_unified_vdev_tlv.c.

Change-Id: Ia21b66ff3321a859379438743f90caa024e846e9
CRs-Fixed: 2523708
2019-10-03 05:08:21 -07:00
Hangtian Zhu
9a28ed0437 qcacld-3.0: Enable configurable dfs_pri_multiplier
Enable configurable dfs_pri_multiplier. The ETSI typ2 type3 radar
detection ratio is lower than expected(>80%) while channel loading is
high(>30%). The host improvement for this are:
	1. Add configurable dfs_pri_multiplier, controlled by
	   DFS_PRI_MULTIPLIER. Default value 2, min 1, max 10.
	2. Lower adrastea ETSI type 2/3/4 radar filter rssi_threshold,
	   controlled by DFS_OVERRIDE_RF_THRESHOLD, dfs log shows that
	   QCS405 target report RSSI range [18, 45] while radar power
	   is 3 dbm. By using default rssi_threshold 24 will reject
	   many radar pulses, which leads to low detection ratio.
	3. Calculate deltapri for each searchpri based on dfs_pri_multiplier
	   in dfs_count_the_other_delay_elements(), check deltapri
	   between [1, dfs_pri_multiplier] * refpri and searchpri, if
	   the primargin is desired, mark it as matched pulse.
	4. Pick lowpri as refpri for the radar filter with
	   rf_ignore_pri_window equals to 0 while DFS_PRI_MULTIPLIER is
	   enabled. Observed original findref logic has some problems
	   which selects refpri is bigger than lowpri, which leads to
	   the lowpri pulses pri_match are set to 0, and in this case,
	   radar was not detected. Example for the issue, assume
	   rf->rf_pulseid 34 (ETSI type 2) has 7 pulses with pri:
	   1489, 2978, 2978, 2978, 1489, 2978, 1489 us in this case,
	   highscore is 4 (2978), scoreindex is 5, refpri is 2978, which
	   leads to: index 0, 4, 6 pulses with pri_match 0 in
	   dfs_count_the_other_delay_elements(). The fix is to select
	   lowpri as refpri(1489 in this case).

Change-Id: I1f3ca3298c9ab1f1e2651ad6b4a0a4810f83f8a1
CRs-Fixed: 2522506
2019-09-25 06:14:10 -07:00
Wu Gao
18596aeaea qcacld-3.0: Update nan policy to allow SAP+NDP
Allow NDP if there is SAP, and remove duplicate codes.

Change-Id: Ibb59ad8bc9a2eb8638a0f11e78e8f0994422dfb7
CRs-Fixed: 2508265
2019-09-25 02:30:54 -07:00
Paul Zhang
c9dbaeea18 qcacld-3.0: Add interface to get / set eLNA bypass
Add interface to get / set eLNA bypass from / to firmware

Change-Id: Idf5d6a838d2596767a1fb00040457af721fba69d
CRs-Fixed: 2498525
2019-09-21 02:46:53 -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
Saket Jha
9953150a8f qcacld-3.0: Featurize legacy Helium DP
Memory optimization of legacy Helium DP (ol_*.*,htt_*.*)

Change-Id: I8f3a1f7edeeb8f793c4d3c74d22231d86ff124a6
CRs-Fixed: 2508723
2019-09-19 20:54:47 -07:00
Abhishek Singh
78b974008a qcacld-3.0: Remove unused bssId from struct sDphHashNode
The bssId in struct sDphHashNode represent vdev_id and same can
be used from pe session which already has this info so remove
bssId param.

Change-Id: I47a7f27e95bfaa9ecd617cb531895601a27dfbf5
CRs-Fixed: 2530965
2019-09-19 14:52:52 -07:00
Alok Kumar
eaac9a6304 qcacld-3.0: Add Feature Flag to record Rx paddr in CE History
Add Feature Flag HIF_RECORD_RX_PADDR for Helium only to record
paddr for IOVA and virtual address in CE descriptor history.

Change-Id: I926fbd0fa74cc7e1488a5c7cac007a6432d50d2e
CRs-Fixed: 2528295
2019-09-16 23:49:13 -07:00
Amar Singhal
40dd5196a2 qcacld-3.0: Add configuration items for 6 GHZ
6 GHZ has introduced new set of frequency based APIs. Also there is
conditional usage of 6 GHZ band. Add configuration items for these.

Change-Id: I22703989ec7e6711af640f1f9d0afded46026b8a
CRs-Fixed: 2513098
2019-09-16 15:14:01 -07:00
Tiger Yu
be6e775e9a qcacld-3.0: Fix the regression issue for pktlog failure with ROME module
The pktlog will fail with ROME module due to the change IDs:
I24776caa3b78ec38d94421f243ec72d81ee3102d
Ifb70ac0993f2402201f88758845f730cf677b1a0

Define new macro PKTLOG_LEGACY for HELIUM/ROME to avoid the ROME PKTLOG
failure.

Change-Id: Ibaa20b7af208a261e0fd8682de45ad8eb4a69212
CRs-Fixed: 2520696
2019-09-15 22:48:19 -07:00
Alok Kumar
689469268f qcacld-3.0: Add Feature Flag to record Rx paddr in CE History
Add Feature Flag HIF_RECORD_RX_PADDR for Helium to record
paddr in CE descriptor history.

Change-Id: I5a6af11fecc00a26d1a334a983290a00be34895c
CRs-Fixed: 2525667
2019-09-13 17:36:58 -07:00
Ajit Pal Singh
9c098859c1 qcacld-3.0: usb: Enable WLAN_FEATURE_WOW_PULSE for OOB
Enable WLAN_FEATURE_WOW_PULSE for OOB wakeup support

Change-Id: I788d60a62a979a6bcbb775d2153fcf5cfa90c426
CRs-Fixed: 2524631
2019-09-12 06:23:01 -07:00
Tiger Yu
bf14ba81a9 qcacld-3.0: Add protection for type_specific_data in ath_pktlog_hdr
The member of type_specific_data is not valid for ROME module. Add macro
protection for type_specific_data in the ath_pktlog_hdr to avoid offset
error when getting the msdu id info during  processing pktlog TX info.

Change-Id: Icb8b95cef9a32732116522e4fc3b39067ff36037
CRs-Fixed: 2522277
2019-09-11 01:32:44 -07:00
Yu Wang
baff800e4d qcacld-3.0: add support for wlan config override
Introduce a new Kbuild option 'WLAN_CFG_OVERRIDE' to override
wlan configurations.
Value of this option is a list, which includes the config items
those need to override, its pattern is as below:
WLAN_CFG_OVERRIDE="WLAN_CFG_1=n WLAN_CFG_2=y WLAN_CFG_3=n"

For LA build, it makes use of this Kbuild option, and introduces
new android build options for different products:
  WLAN_CFG_OVERRIDE_wlan: for single wlan driver case.
  WLAN_CFG_OVERRIDE_<chip>: for multiple wlan drivers case, for
    example WLAN_CFG_OVERRIDE_qca6390 and WLAN_CFG_OVERRIDE_qca6174.

Change-Id: I8e062c62d36e076a79032a47aa04501d4543a9c8
CRs-Fixed: 2515905
2019-09-09 05:35:22 -07:00
Visweswara Tanuku
2e839e540c qcacld-3.0: Genoa: SDIO: Handle Tx Padding & Credits
In Genoa SDIO ADMA implementation Host sends packets to FW in
multiples of SDIO Block size.
If the packet/bundle is not block aligned Host adds padding at the
end of Packet/Bundle.

If the TX packet plus padding exceeds one FW TX Buffer, Padding data
will occupy the next FW TX buffer. Same applies for bundle TX packet.

For above scenario, HTC_FLAGS_PADDING_CHECK of HTC header Flags is used
to notify the FW that - Padding data follows the currentHTC packet

Since the padding data will take one extra FW Tx Buffer, host need to
handle the extra Tx credit being used by the padding data/buffer

CRs-Fixed: 2516619
Change-Id: Ie2d2292fabb30e1a13eebe4d11b57f452e42afa8
2019-09-08 07:37:21 -07:00
Hangtian Zhu
39e2e21a83 qcacld-3.0: Use QCS40X instead of QCS405 in config files
Use QCS40X instead of QCS405 in config files. Kernel defconfig files for
QCS405 and QCS403 has been separated recently, and the arch has been
changed between these two chips. But all QCS related features and changes
in cld should all be included, so use CONFIG_ARCH_QCS40X to replace
CONFIG_ARCH_QCS405.

Change-Id: I6f0837bb3d3f1530aea5b2d4912741beb8c313bd
CRs-Fixed: 2519267
2019-09-04 17:38:18 -07:00
Subrat Dash
b1e61b2083 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
Nirav Shah
5db193fced qcacld-3.0: Featurize partial reorder properly
Avoid compiling ol_rx_reorder.c and ol_rx_reorder_timeout.c
for low latency and only compile for high latency
data path.

Change-Id: I1f3819fa093766abba87e5dc6dc44e6d2188740b
CRs-Fixed: 2506005
2019-08-19 02:10:41 -07:00
Abhishek Ambure
93bb96104d qcacld-3.0: Add SERIALIZE_VDEV_RESP_TIMER in Kbuild
SERIALIZE_VDEV_RESP_TIMER macro enables target_if common code for
vdev response timer callback handlers.

Change-Id: Ic1f647a99a0c90f2492bdb0c9d2d525fabb6d86a
CRs-Fixed: 2507526
2019-08-13 11:01:31 -07:00
Abhishek Ambure
d6a16152ce qcacld-3.0: Cleanup CMN_VDEV_MGR_TGT_IF_ENABLE in Kbuild
Remove "CMN_VDEV_MGR_TGT_IF_ENABLE" from Kbuild as target_if common
code is used for vdev operations and legacy code is removed.

Change-Id: I15fb2311aa1b6eeec506d9a6bdc720abaf93244e
CRs-Fixed: 2507456
2019-08-12 10:22:35 -07:00
Visweswara Tanuku
322348dfce qcacld-3.0: Enable Motion Detection Feature for Genoa USB
Enable Motion Detection Feature for Genoa USB interface
using config flag CONFIG_FEATURE_MOTION_DETECTION

Change-Id: If345705619f231d195d79e50a9bb2478641bd4df
CRs-Fixed: 2501957
2019-08-06 10:16:18 -07:00
Tushnim Bhattacharyya
c55e9a75c4 qcacld-3.0: Define MGMT_DESC_POOL_MAX in Kbuild
Add MGMT_DESC_POOL_MAX in the defaul_defconfig file.

Change-Id: I996c90f48db9add25dc4feec4f1f4d1cbfc2e16f
CRs-Fixed: 2495584
2019-08-05 10:55:27 -07:00
Abhishek Ambure
2ac5dec407 qcacld-3.0: Add target_if common code in Kbuild
Add target_if common code and enable feature flags needed
to resolve compilation errors.

Change-Id: Ie3ceb2b94dfb580d7d5ddfedefb00cee69434590
CRs-Fixed: 2454757
2019-08-05 10:55:18 -07:00
Tushnim Bhattacharyya
72d812089c qcacld-3.0: Define MAX_BCN_PROBE_IN_SCAN_QUEUE in Kbuild
Add MAX_BCN_PROBE_IN_SCAN_QUEUE in the defaul_defconfig file.

Change-Id: Ic477daa892bad4ae52585492c006d5a4bf60ed3b
CRs-Fixed: 2495604
2019-08-01 06:47:39 -07:00
Nirav Shah
a43f6dc3cf qcacld-3.0: Featurize DHCP indication for SAP
Featurize DHCP indication for SAP and disable it
for QCN7605 as this feature is broken for HL
Data Path.

Change-Id: If1db649131d887a2aab18461187403b4b9a2c5b4
CRs-Fixed: 2496032
2019-08-01 00:02:17 -07:00
Sriram Madhvapathi
ecb0bcde59 qcacld-3.0: Add sdio abstraction layer support for QCN7605
The SDIO HIF for QCN7605 requires to use the SDIO Abstraction Layer.
Used the SDIO CNSS2 PLD layer api's to interface with SDIO AL

Change-Id: I839a580941e4651e3dcff4f87cda26cc567687fc
CRs-Fixed: 2275631
2019-07-30 09:11:31 -07:00
hqu
ff302a9f4a 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
Chaoli Zhou
b11e18a0a4 qcacld-3.0: Export max IPA interface numbers
As for Rome, currently it usually just only support two
IPA interfaces offload, if use the default value 3, which
will cause the IPA pipe setup failure issue. So export
the max IPA interface numbers, and it's better to set
the appropriate value from build file according to
different requirement for different chipset and platform.
Meanwhile, it support SMMU on the sa415 platform, so
enable SMMU for it.

Change-Id: I2de31bcb4d38f5e7964d2cbdc2fc6f143eef510d
CRs-Fixed: 2480627
2019-07-25 02:40:48 -07:00
Ashish Kumar Dhanotiya
9cc2a864c0 qcacld-3.0: Disable ext scan in driver
Currently ext scan is enabled by default in driver which
is increasing driver size significantly and ext scan
is not getting used anymore.

Disable ext scan with feature flag CONFIG_FEATURE_WLAN_EXTSCAN
to reduce driver size.

Change-Id: Id0fdeae6e6b71f53d3b73322aca659254d52cec8
CRs-Fixed: 2491452
2019-07-24 21:43:16 -07:00
Jinwei Chen
deb9936ddb qcacld-3.0: support rx packet deliver even if no peer found
Enable macro DP_RX_PKT_NO_PEER_DELIVER to deliver some RX pakcets
like Eapol even if there is no related peer found, this is
needed for the LFR roaming case.

Change-Id: Ia732c6448319bca122d405d25f2af410df0f4d68
CRs-Fixed: 2491507
2019-07-19 02:48:05 -07:00
hqu
2aeaa676b5 qcacld-3.0: Add include path for file target_if_pub.h
New added header file target_if_pub.h is introduced due
to remove void usage for objmgr module, add include path
for this header file to compile.

Change-Id: I4f79e6d3213941b86fbadd42934cd355bcd0a511
CRs-Fixed: 2488101
2019-07-19 02:48:01 -07:00
Jianmin Zhu
fa587a8fe1 qcacld-3.0: Config special 4 ports dual SAP+dual STA
Enable following special 4 ports concurrency for Auto HST
platform.
(SAP+STA) (2.4G MAC SCC)+(SAP+STA) (5G MAC SCC).

Change-Id: I6ab34606a98c1e4a670de63e12e54f2becd4d1d4
CRs-Fixed: 2457713
2019-07-18 12:10:28 -07:00
Pragaspathi Thilagaraj
6c88d4059b qcacld-3.0: Change the maximum serialization pending commands
The host driver serialization module currently supports upto 4
commands in non scan pending queue. This is calculated at the
wlan_serialization_vdev_create_handler() as:
    max_pending_cmds = (WLAN_SER_MAX_PENDING_CMDS /
                        WLAN_SER_MAX_VDEVS)

But in SAP case, if multiple STA sends deauth at the same time,
4 pending commands in non scan pending queue is not sufficient
and will result in only disassoc from the first 4 STA getting
honored.

The current host wlan driver supports 3 SAP mode and
2 STA vdevs amounting to a total of 5 vdevs supported.
So calculate the total non scan pending commands for
serialization based on the total peers supported for each
mode to fix this issue.

In SAP case, maximum 32 peer are supported and for STA case,
maximum 4 pending commands for serialization. So change the
max pending commands calculation as:
 max_pending_cmds = (No. of sap modes supported * 32) +
                    (No .of STA modes supported *4 )

Change-Id: I30b2d79f2c15a092060dbdd729e1d035eb36fd83
CRs-Fixed: 2468945
2019-07-17 17:42:23 -07:00
Liangwei Dong
03e080c45a qcacld-3.0: Change beacon tx WMI API under feature flag
Add feature flag WLAN_WMI_BCN to compile Beacon tx APIs
selectively.

Change-Id: Ie2b4ad0ae7a7c6de7286ed0b215084060a4f34c6
CRs-Fixed: 2483531
2019-07-16 17:14:44 -07:00
Saket Jha
8d70a68163 qcacld-3.0: Add WAR to ignore duplicate RX desc
Check if host is reaping a descriptor which is already
reaped then drop RX desc processing instead of asserting.
Macro DUP_RX_DESC_WAR added before dp_rx_dump_info_and_assert function
which does not assert for the case WAR is enabled.

Change-Id: I8a095d33e4f7e868340d9a76618c064af764386d
CRs-Fixed: 2487793
2019-07-16 12:14:45 -07:00
Sravan Kumar Kairam
42ceddefc1 qcacld-3.0: Add feature flag for pcie reg window no cache
Add feature flag PCIE_REG_WINDOW_LOCAL_NO_CACHE to support no
caching of PCIE register window value in driver.

Change-Id: I427b784de874464b98a2acf67b9850e1e41f65aa
CRs-Fixed: 2487158
2019-07-11 23:26:33 -07:00
Paul Zhang
da2970b777 qcacld-3.0: Add OEM DATA vendor command support
This command is used to send OEM data binary blobs
from application/service to firmware.

Change-Id: I0b5d7dd5a030b70e59c8581fb51d99079b38385f
CRs-Fixed: 2477332
2019-07-11 00:52:04 -07:00
Ashish Kumar Dhanotiya
2168aadfa4 qcacld-3.0: Add support to configure avoid acs freq list
Currently there is no ini support to configure frequencies
which needs to be avoided for the acs channel list which
may allow SAP to come up on a channel which is not preferred.

For Example there are many legacy clients which supports
2.4GHz but don't support channel 12 and 13 (or does not have
the capability to detect country change where channel 12 and
13 is valid).
In that case, if SAP comes up on channel 12/13, those legacy
clients won't be able to connect to AP.

Hence, Add a feature flag and ini to configure the frequency
list which can be avoided during acs.

Change-Id: Id106b38228f837ba056eb916004dc012e919ddd2
CRs-Fixed: 2472004
2019-07-03 08:55:49 -07:00