Since some platform driver does not support for PCIE gen switch,
Using macro PCIE_GEN_SWITCH to control whether function
cnss_set_pcie_gen_speed is invoke or not.
Change-Id: I478cd6426b005014e85c0b3c1c31963045d7322b
CRs-Fixed: 2767110
Since PCIE Genoa has separate wlan fw patch for
mission mode(amss.bin) and ftm mode(genoaftm.bin),
but cnss2 platform driver always try to load amss.bin,
which is not feasible. So add this new interface for
cnss2 to get correct driver mode and update the fw
patch name before it start downloading wlan fw
Change-Id: I44565c5f50aa03bbc407ee135ef5b02a040b0df6
Currently qdf frag API's are not compiled, enabled those
API's compilation since they are used in DP TX frag path.
Change-Id: Iadd0710beb2220fb560b8873a3a8736b6a66b7ca
CRs-Fixed: 2777139
- Use sme roaming api's instead of converged
roaming api's.
- Add debug logs in if mgr api's.
- Fix typo in Kbuild file.
- Fix compilation errors.
- Fix comments for readability.
- Update disconnect functions so parameter type matches.
Change-Id: Ia0adf6f79036e9348bf4ebb6237a5e25ef813a21
CRs-Fixed: 2774509
Currently line number is not useful in the logs and to print
the line number consumes lot of memory in driver text area size.
To reduce the driver size add feature flag to enable/disable
line number logging in the driver.
Change-Id: Ie11e3425cb61edad09c0da0337d0daa18e2a56d6
CRs-Fixed: 2766244
In order to improve the Genoa DBS KPI, need to
increase the IPA tx complete ring size from
1024 to 2048. And the tx buffer count also will
increase from 1023(1024-1) to 2047(2048-1) according.
But in fact, as for wlan fw, it just only reserve
1500(1100 for 5G, 400 for 2.4G) tx desc for packets
from IPA, so some tx buffer will not used here,
which will waste memory. So to save some memory,
export CONFIG_LIMIT_IPA_TX_BUFFER for platform
configuration to limit the max IPA tx buffer count
Change-Id: Id5d4c5a220b588747f3d1981627f6253d7c3305b
For older targets thermal mitigation is supported for the apps.
In moselle there a new processor wpps on which firmware runs,
this commit adds the support for the thermal client wpps.
Change-Id: I89896dce808807486ef56b90812369f3d5f4b270
CRs-Fixed: 2757566
DBR_MULTI_SRNG_ENABLE is used to init DBR for both bands of DBS chip.
Some pltforms won't set CONFIG_CNSS_QCA6750 to n if chip isn't
Moselle. This change defines DBR_MULTI_SRNG_ENABLE if
CONFIG_CNSS_QCA6750 isn't equal to y.
Change-Id: I0cf726b542196c57d90cf38ec0db0f4ab38d3358
CRs-Fixed: 2759775
Change feature flag name due to address alignment is
required from HW design perspective
Change-Id: Ia80b6371f50db144336aeaaf2db2ecdc77ac0380
CRs-Fixed: 2748507
Take care to update the EAPOL Tx frame DA with AP mac addr if
DA is broadcast address as EAPOL BC doesnot make sense.
Change-Id: Id58b7b7971f5a7c11de0b46c6189a6e6ad1917ab
CRs-Fixed: 2745826
For SAP on DFS channel, the PCIe link down should be prevented
so that HalPhy can access DDR memory to report Radar found event.
Change-Id: Ia256d5df4d59071830d09c3f4821d73196327128
CRs-Fixed: 2740443
Update MULTI_IF_NAME while DYNAMIC_SINGLE_CHIP is not
"wlan" to support dual wlanhost driver load case
Change-Id: Id7c4e7b6e8c14fe0ba64b3187ec46f7b248058cb
Currently there are 2 places where max number of keep live pattern
are defined:
1. #define WMA_MAXNUM_PERIODIC_TX_PTRNS 6
And it can be configured by CONFIG_CFG_MAX_PERIODIC_TX_PTRNS.
2. #define MAXNUM_PERIODIC_TX_PTRNS 6
And it is hard coded value.
It is possible to have different values defined on some platform,
so we might give tgt_cfg->num_keep_alive_pattern value as 2,
but still allow more than 2 keep alive patterns adding to target,
where assert might happen.
Fix it by defining max number of keep alive pattern at one place.
Change-Id: I70ec3fa2e56a39cf8086750d966d95e41b2b75a7
CRs-Fixed: 2745443
On some cases, dp_rx_thread can not handle nbufs in time,
then a large number of packets are pending in
rx_thread->nbuf_queue, which run out of system memory at
last and failed to malloc new buffers for refill buffer ring,
fw crash is encountered. To avoid this, drop RX packets when
the pending number becomes large.
Change-Id: Ie4e001dc584821cf68253aa3a15a5fd72394c736
CRs-Fixed: 2737181
Enable PM QoS support for 5.x kernel by adopting dev PM QoS APIs to
request device structures for CPUs and then requesting QoS on those CPU
devices.
Change-Id: I9c7565b44a72145e11178fe360f413ff578142cf
CRs-Fixed: 2734025
Add configuration feature CONFIG_WAPI_BIG_ENDIAN to
enable or disable BIG ENDIAN WAPI configuration based
on device type.
This was done as newer chipset firmware expects the
WAPI seq in big endian format and to maintain backward
compatibility with the older chipset firmware.
Change-Id: I972ca89e601b706e53408b0751c265d0aa311029
CRs-Fixed: 2746749
Enable logging feature which helps to check rx ring refill failure.
Currently rx ring refill count is updated same time from multiple
places without protection, so use atomic variable for refill count.
CRS-Fixed: 2740225
Change-Id: Icd88d351cb15d0f18edf0b986e4de95dbe4e6989
Enable RX buffer pool support for QCA6750. This will be utilized
during low memory conditions.
Change-Id: I8cee1e0996c81f3c4c408a22923d5107f4d014c3
CRs-Fixed: 2731507
Module is saved in specified memory location when loading. In some
third platform, after rmmod/insmod wlan.ko for a while, wlan.ko may
fail to load due to memory fragmentation.
Split wlan.ko into wlan_resident.ko and wlan.ko. Keep wlan_resident.ko
in kernel all the while and trigger insmod/rmmod only on wlan.ko.
wlan_resident.ko contains all the module realization while wlan.ko
only contains module init/exit.
Change-Id: Iaeb6d810293cc000de8d6ec1df5cd985cef0c317
CRs-Fixed: 2727941
Dynamic rx aggregation feature depends on the context
id which is obtained from the packet context block.
This context id is invalid when this feature is not
enabled, and hence can lead to out of array access/write
leading to memory corruption.
Fix this issue by not using the context id when the dynamic
rx aggregation feature is not enabled.
Change-Id: Ie551217409b0f5aa2f704f9c617949e0d42a74d0
CRs-Fixed: 2742653
To support "no dbs intraband MCC" feature for LITHIUM target, enable
FEATURE_NO_DBS_INTRABAND_MCC_SUPPORT flag in Kbuild.
Change-Id: I2f94d99fae0ec31dd8e5056397e59be3478b7540
CRs-Fixed: 2739080
Enable the sanity check for rx descriptor nbuf
even for the perf build.
Also enable the rx rings history.
Change-Id: Ib127029009d0657ea51d3592af6a42f3de210c16
CRs-Fixed: 2739120
Enable handling to drop the raw Rx frames as both driver and stack
is not expected to handle them.
Handle invalid FISA flow index which is out of valid FISA flow_id range,
This can happen if we are looking at wrong or invalid TLV, in such case
it is OK deliver frame without FISA aggregation.
Change-Id: I746d4ad1ea5ba6d60cbadddb55803626abfb2868
CRs-Fixed: 2733978
Add macro ROAM_OFFLOAD_V1 for new code and implement below functions
for connection manager roam part:
csr_handle_roam_state_change() roam offload state related handler.
Filling WMI_ROAM_SCAN_RSSI_THRESHOLD cmd parameters related process.
Change-Id: I0351155ca5a3d68ade6568c7527c5708582ccf1a
CRs-Fixed: 2730826
Rename file name and modify function names to keep it inline
with sysfs attribute name 'stats'
Change-Id: Iffc390d4865977f9eff72a6a4bcf708c014f482e
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'range_ext'
Change-Id: Icf7ebbbcf1b8b219e64d1c9b98f1946069f91322
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'wlan_dbg'
Change-Id: I7d0e7b67afa701abd64efb62012c218ee4ab158d
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'fw_mode_config'
Change-Id: Ia389fa8807bbd0e58de58c503d9f3bbbef9ec707
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'scan_config'
Change-Id: I6621cbe5571541d073072ef9e0348d771fd3bc4a
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'radar'
Change-Id: If13effc45323f5a286d8aeb7a8e27848cb3e618b
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'tx_stbc'
Change-Id: I274c1405fab7385202431b48d65603c38783222b
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'tdls_peers'
Change-Id: If6aa504dccd22ce0ccff11f3d73ffb1eedb5895c
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'sta_info'
Change-Id: Ibb13c1496ea1dd5bc3b024b99414ac8d72db3be6
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'temperature'
Change-Id: I8f31d59be9954d3ffe1ff7c11d16dd24b9e2644d
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'monitor_mode_channel'
Change-Id: Ic207d6e29c14a0b33ed4982d533a78729d32a4ba
CRs-Fixed: 2731064
Rename file name and modify function names to keep it inline
with sysfs attribute name 'channel'
Change-Id: I9c73e572bdb80edc3431180448dffd9843d6a720
CRs-Fixed: 2731064
ICNSS2 platform driver is used for moselle and adrastea which uses
IPCI and SNOC PLD layer, respectively. Add support to enable both
for ICNSS2 based to target flag.
Change-Id: I06fbacade99b09c9ea7347aa28e10968eaeedaa8
Prevent wow if TDLS is started, allow wow if TDLS link disabled. This
feature is enabled only if lithium plaform isn't drv supported.
Change-Id: Ie66d62cb139fe9a1d292925a78f2dd861f16ef69
CRs-Fixed: 2716922
This reverts Change-Id: I11164995061ee057dfcb3abaef2af2f2d33bfd23.
We need the override configuration in defconfig file. The reverted
change actually disabled the override mechanism. Revert this
change so that the override config will take effect.
Change-Id: I0ffcdcb112e4054dbc2961ba414371fbe5a9e1c3
CRs-Fixed: 2714158
Some of the post processing tools need high resolution timestamps in the
build tag to differentiate WLAN driver modules in the same build. Add
current time with nanoseconds rounded to the first 6 digits, which is
microseconds. Also fix the 'date' command format.
e.g. date -u +'%F %T.%N %Z'
2020-06-25T17:40:43.919224370 UTC
Change-Id: Ie2a8af4dad2aead5738a4c710a201fe9674999f7
CRs-Fixed: 2719008
Enable compilation of the connection manager roam files with
Kbuild changes.
Add new API to store and retrieve the firmware scan channels at
mlme. Also add initial support to post SET_PCL command through
lim, so that it is not sent before ROAM init command.
Add changes to restrict connection of the 2nd STA to
channels on the other band of the 1st STA connected band.
This is done by filling only the allowed band channels in
the scan filters for the 2nd STA connection. If only
1 STA is active, it is allowed to connect on any band.
Add header gaurds for missed header files:
wlan_cm_tgt_if_tx_api.h
target_if_cm_roam_offload.h
Change-Id: Id2bce12b9663ed635ea46164169b088461aab870
CRs-Fixed: 2720341
Do not compile ol_txrx_event.c if set CONFIG_REMOVE_PKT_LOG=y
and CONFIG_WDI_EVENT_ENABLE=n with Hasting
Change-Id: I475e1d4bda818cdef66d961cb95d0193b27029f6
Add dp_aggregation sysfs entry under the wifi sysfs
directory to dynamically control aggregation in the
rx direction.
Change-Id: Ic7b13806f5fbd19fe5c56cabdf71d032b730448c
CRs-Fixed: 2718131
Move STA specific wmi functions from qca-wifi-host-cmn to
qcacld-3.0 under components/wmi. Below is the wmi source tree
qcacld-3.0 \
- components \
-wmi \
src\
inc\
wmi_tlv_attach() will call the STA specific attach functions
defined in wmi_unified_priv.h.
Change-Id: Ia99e12d79500add94791db4447e1f6dbf44c99af
CRs-Fixed: 2714589
Add hif_runtime_pmrelated files in Kbuild to be included
in the driver compilation.
Change-Id: Ifa392a517560a9391419da6733211f52aceb1170
CRs-Fixed: 2699439
The wlan_mem_stats node will print the DMA, SKB and heap
memory allocated in the wlan host driver. This is applicable
to perf and defconfig builds.
File path to new node is:
/sys/kernel/wifi/wlan/wlan_mem_stats
Change-Id: Ic05423d362de1ef07a3ecbdd6408a7226e2a3c2f
CRs-Fixed: 2680360
Add driver command support to dump all the function call
mapping which is cached in global buffer.
Change-Id: I03b2162ccda171005e6fa8a7bb09cbf9c4819421
CRs-Fixed: 2677976
Update the HDD callback to check for phymode change or
channel change when country code updates and stop/restart
the adapter accordingly. Include cases for STA mode,
SAP mode, P2P-CLI mode, and P2P-GO mode.
Add conditional compilation flag for MCC specific API in
qcacmn.
Change-Id: I88edb401146e3cef48d757393f89fa48cb6ac895
CRs-fixed: 2658294
Add the sysfs entry for set_he_bss_clr.
Previously these commands would be queried via iwpriv
--> iwpriv wlan0 set_he_bss_clr [value]
it is now changed to support via sysfs:
--> echo [value] > /sys/class/net/wlanxx/he_bss_color
Change-Id: I4700414469be018de9758277c4e095e64cabb376
CRs-Fixed: 2692916
For Voice and Music (V&M) products, extreme latency optimization is
needed while playing music and discovery, higher power consumption
in this mode could be accepted. With CONFIG_WLAN_LL_MODE enabled,
when latency_level is set to ultra low via cfg80211 vendor command,
update request pm qos type PM_QOS_CPU_DMA_LATENCY to level
DISABLE_KRAIT_IDLE_PS_VAL to speed up CPU efficiency and irq response.
Change-Id: Ifb5bc8169f1cd08500c4b4bc0dd65dd0b3667ab6
CRs-Fixed: 2685074
Android build system is using toybox “realpath” which doesn’t have
“—relative-to” option as in GNU tools. Use more generic python API.
Change-Id: Ib129bd721056e2fcb563817ac61cc6811568f68d
CRs-Fixed: 2676451
Make include paths relative to kernel build directory. This will fix
the following error due to long absolute path in include directories,
make[2]: execvp: /bin/sh: Argument list too long
make[2]: *** [path/to/object/file] Error 127
Change-Id: Ic930384f38f2166e6bede8d16ac37b359dd48a0d
CRs-Fixed: 2661829
Previously pm_cinfo,pm_pcl would be queried via iwpriv
--> iwpriv wlan0 pm_cinfo
it is now changed to support via sysfs:
--> cat /sys/class/net/wifi/pm_cinfo
--> echo 1 > /sys/kernel/wifi/pm_pcl
Change-Id: I437eb6d4e9424f3aed9d1cf218333371c9a9f93b
CRs-Fixed: 2684258
Add the sysfs entry for the pktlog.
Previously get_ampdu,get_amsdu would be queried via iwpriv
--> iwpriv wlan0 1 1 pktlog
it is now changed to support via sysfs:
--> echo 1 1 > /sys/class/net/wifi/pktlog
Change-Id: Id5461c86bb1369a04bc68514e874df6df1230b85
CRs-Fixed: 2684106
Add the sysfs entry for the ipaucstat.
Previously ipaucstat would be queried via iwpriv
--> iwpriv wlan0 ipaucstat 1
it is now changed to support via sysfs:
--> echo "1" > /sys/class/net/wlanxx/ipaucstat
Change-Id: I5a3195a36cd2d7252eb3ef0312545d338b40d3ec
CRs-Fixed: 2676440
Add the sysfs entry for dumpStats and clearStats.
Previously these commands would be queried via iwpriv
--> iwpriv wlan0 dumpStats [stats_id]
--> iwpriv wlan0 clearStats [stats_id]
it is now changed to support via sysfs:
--> echo [stats_id] > /sys/class/net/wlanxx/dump_stats
--> cat /sys/class/net/wlanxx/dump_stats
--> echo [stats_id] > /sys/class/net/wlanxx/clear_stats
Change-Id: If8e4d997bc621df98732461802fdd9cea89bd1ce
CRs-Fixed: 2685995
Add the sysfs entry for dumpStats and clearStats.
Previously these commands would be queried via iwpriv
enable / disable --> iwpriv wlan0 dump_dp_trace [1/3]
show --> iwpriv wlan0 dump_dp_trace 0
clear --> iwpriv wlan0 dump_dp_trace 2
it is now changed to support via sysfs:
enable / disable --> echo [1/0] > /sys/kernel/wifi/dump_dp_trace
show --> echo 2 [count] > /sys/kernel/wifi/dump_dp_trace
cat /sys/kernel/wifi/dump_dp_trace
clear --> echo 1 > /sys/kernel/wifi/clear_dp_trace
Change-Id: I2e7caec268776a79d7166020c64af93fee2f8aec
CRs-Fixed: 2691705
Add a config option to set maximum number of clients allowed.
And set max clients allowed to 64 on SDXPRAIRIE platform.
Change-Id: I4f475abbf5fba8d01f4121e55a87324fdd2d5d70
CRs-Fixed: 2692639
As part of WEXT replacement, replace range_ext with a sysfs file.
This feature can be controlled using configuration flag
CONFIG_WLAN_SET_RANGE_EXT
file path: /sys/class/net/wlanxx/range_ext
where wlanxx is adapter name
example command: echo 1 > /sys/class/net/wlan1/range_ext
Change-Id: I389da429e1a0cd3a2ed1efede6cb958628eb7e6e
CRs-Fixed: 2689879
Add the sysfs entry for enablertscts.
Previously these commands would be queried via iwpriv
--> iwpriv wlan0 enablertscts [0/1/2]
it is now changed to support via sysfs:
--> echo [0/1/2] > /sys/class/net/wlanxx/rts_cts
Change-Id: I9df4e0c678cc9221b3cc95c4d2058a4516438bc3
CRs-Fixed: 2689897
Add the sysfs entry for enable_dcm and get_dcm.
Previously these commands would be queried via iwpriv
--> iwpriv wlan0 enable_dcm [0/1]
--> iwpriv wlan0 get_dcm
it is now changed to support via sysfs:
--> echo [0/1] > /sys/class/net/wlanxx/dcm
--> cat /sys/class/net/wlanxx/dcm
Change-Id: I6f7d2e93c362b4d3018d7f5698dd1bba01123600
CRs-Fixed: 2685960
As part of WEXT replacement, replace gtx_bw_mask with a sysfs file.
file path: /sys/class/net/wlanxx/gtx_bw_mask
wlanxx is adapter name
example: echo 1 > gtx_bw_mask
Change-Id: I40c0f611ca221c91c59d9a3f60927f841385c469
CRs-Fixed: 2686762
As part of WEXT replacement, replace txrx_fw_st_rst with a sysfs file.
file path: /sys/class/net/wlanxx/txrx_fw_st_rst
wlanxx is adapter name
example: echo 1 > txrx_fw_st_rst
Change-Id: I654ea8b66e7067f0e1d23ff053fa4b8d163d878c
CRs-Fixed: 2686665
As part of WEXT replacement, replace setwlandbg with a sysfs file.
file path: /sys/kernel/wifi/set_wlan_dbg
example: echo 1 1 1 > /sys/kernel/wifi/set_wlan_dbg
Change-Id: I886bcd0ed89460e20db1ea809fa48e3a279bb39b
CRs-Fixed: 2686081
As part of WEXT replacement, replace getStats with a sysfs file.
file path: /sys/class/net/wlanxx/get_stats
where wlanxx is adapter name
example: cat /sys/class/net/wlanxx/get_stats
Change-Id: I762f61304407876b61b6970688e3715612c60d35
CRs-Fixed: 2685602
As part of WEXT replacement, replace get_tx_stbc with a sysfs file.
file path: /sys/class/net/wlanxx/get_tx_stbc
where wlanxx is adapter name
example: cat /sys/class/net/wlanxx/get_tx_stbc
Change-Id: I3024a574c7aa35398bd4c8ee30f8235ef2fe3128
CRs-Fixed: 2682374
On Lahaina platform it is seen that WBM IDLE ring init is failing,
Write to WBM_IDLE link ring LSB write is failing.
Add temporary WAR to do back to back write of WBM IDLE link ring
LSB address config register.
Change-Id: Iccaf222038fb571ed518a90d7e7ac4e655ba5010
CRs-Fixed: 2690491
As part of WEXT replacement, replace get_temp with a sysfs file.
file path: /sys/class/net/wlanxx/get_temp
where wlanxx is adapter name
example: cat /sys/class/net/wlanxx/get_temp
Change-Id: I6e530562347c936fb980f4eed4c3a55cb9804bdd
CRs-Fixed: 2684669
In PMF cert test case, peer device sends disassoc req to APUT.
After the STA cleanup is done on DUT, ping data packets are still
sent by the peer STA causing rxdma decrypt errors. Rxdma decrypt
errors are not processed and the control path callback to send
deauth frame to peer STA is not invoked resulting in test case
failure.
Fix is to revert commit bf58054b02
("qcacld-3.0: Add feature flag to not process rxdma decrypt err").
Change-Id: I39686a4b16d256bd4d4b62a782457e941cfda8d6
CRs-Fixed: 2686159
As part of WEXT replacement, replace wowlDelPtrn with a sysfs file.
file path: /sys/class/net/wlanxx/wowl_del_ptrn
where wlanxx is adapter name
example: echo 08:01:FFFFFFFFFFFF0000:FC > wowl_del_ptrn
Change-Id: I446456df5bd003b7328ba7afc0a4fb5e60059e11
CRs-Fixed: 2682245
As part of WEXT replacement, replace getChannel with a sysfs file.
This feature can be controlled using configuration flag
CONFIG_WLAN_SYSFS_GET_CHANNEL
file path: /sys/class/net/wlanxx/get_channel
where wlanxx is adapter name
example command: cat /sys/class/net/wlan1/get_channel
output: Channel number: 1
Change-Id: I3040af3d19eb83a819ca83cdbb74a70acd041698
CRs-Fixed: 2681803
As part of WEXT replacement, replace getTdlsPeers with a sysfs file.
This feature can be controlled using configuration flag
CONFIG_WLAN_GET_TDLS_PEERS
file path: /sys/class/net/wlanxx/get_tdls_peers
where wlanxx is adapter name
example command: cat /sys/class/net/wlanxx/get_tdls_peers
Change-Id: I66123266d6a3bf4c5c82f70186e35aa9942533b1
CRs-Fixed: 2681810
This reverts
Change-Id: I8d6766e33a3912d197e543f0e7e252513e0253ab
Origin issue has fixed by
Change-Id: I350b810a6cef8eec46428e57f5b779f888552c1b
Change-Id: I4bb8eab90c9a0341f7bc99972f44f576d7e07dc2
CRs-Fixed: 2681665
As part of WEXT replacement, replace get_range_ext with a sysfs file.
file path: /sys/class/net/wlanxx/get_range_ext
where wlanxx is adapter name
example: cat /sys/class/net/wlanxx/get_range_ext
Change-Id: Ic4b5076efce837d9c98167d6a807722adbbc74df
CRs-Fixed: 2683682