Add new ini item "ho_delay_for_rx" to set delay Hand-off
period. For LFR 3.0 roaming scenario, once roam candidate
is found, firmware waits for minimum this much duration
to receive pending rx frames from current BSS before
switching to new channel for handoff to new AP.
Change-Id: Ided9a81e9402259f5df6b42926b3fa336b6bb4d0
CRs-Fixed: 2221748
Race condition in STA connection and Channel switch of
Softap can result in MCC for STA+SAP scenario. Even
though Force SCC is enabled.
As part of STA connection in association handler SAP
restart is checked. If Channel Switch for SAP interface
is in progress at the same time. Then depending on SAP
Channel MCC can be resulted.
Check for SAP restart in the function hdd_hostapd_sap_event_cb.
Change-Id: Ic4ba8790d604f184eb8030e4fe06c5e76f9a62bd
CRs-Fixed: 2205482
Currently, Logic to reject concurrent ACS scan is present
in Hdd context and variables for this context is common for
both softaps(softap1 and softap2). Due to this in case of dual
band SAP mode, if an ACS scan is in progress for softap1 then
driver rejects any ACS scan on softap2, which is not acceptable.
Fix is to move logic to reject concurrent ACS scan from
hdd context to adapter context.
Change-Id: I9d2b437523ef6ac5794e7952ac6cd35d1c2f778b
CRs-Fixed: 2206499
Whenever hw_mode=any is set in hostapd.conf, BAND_ALL is sent to
HOST driver from hostapd. ICM module doesn't support BAND_ALL
and so HOST driver internally changes the band to BAND_2G or BAND_5G
based on acs_freq_band and update the channel list and ch_width
accordingly.
ICM module supports BAND_ALL now so don't do any optimization on
band in HOST driver.
Change-Id: Ia0b554f72ba0d5063ff622edbe1fa7113b984142
CRs-Fixed: 2224675
Currently, sta's adapter.rssi does not reset when disconnect
with the previous ap and for new connection there might be no
valid rssi so it will get 0 when hdd_get_station_statistics_cb
or hdd_get_rssi_cb is invoking. Then it uses the previous ap's
rssi for the new conneciton.
Per the code logic, it is ok to set adapter.rssi with 0 value.
Because it invokes hdd_get_rssi_snr_by_bssid to get the
rssi & snr when issue happens.
Change-Id: I737cfcf16d58501546f2fceab06ed1e5418e7b06
CRs-Fixed: 2199782
Since WLAN host driver is regulatory offload design,
regulatory notifier from CORE should always be ignored.
Change-Id: Iaf23bdd1606e84cb309101246088ce6d506aa78b
CRs-Fixed: 2215884
Currently non-linear, non-tso TX data is not handled correctly,
only the non-tso, single linear data is supported. the frag paged
data in skb is missed while packet length for HW access
is entire packet length, HW DMA failed.
temporarily to linearize skb so that non-linear data could be TX
correctly.
Change-Id: Ic0f2b7a0b021ca190c870551a66181f50ae72c65
CRs-Fixed: 2180318
Suspend/Resume unit test IOCTLs and other unit test features are only
enabled in defconfig debug builds and always disabled in production
builds. Add CFG INI item to disable these test IOCTLs even in defconfig
build such that by default on all build combinations unit test IOCTLs
are always disabled.
Change-Id: I71a63d2b85800b630d7c18eb77a3cffddcd66fbb
CRs-Fixed: 2221874
If connection is in progress and new connection req is
received from supplicant, hdd tries to disconnect the
current session and post force disassoc command and wait
for it to get completed. If the current ongoing connect
operation fails and this force disassoc is processed as
sme session is in disconnected state it is silently
dropped and thus there is no event sent to the HDD
to stop the wait for disconnect and HDD wait for 5
sec before returning connect failure.
Fix this by Calling disconnect handler if, disconnect
with force dissoc is called in disconnected state
Change-Id: I3a78308b54fb048fba5a6aed3d8e8b193c371647
CRs-Fixed: 2223313
There is a chance that kernel can trigger suspend while
connection in progress. If driver allows this suspend, this can
result in fw panic.
Specific scenario:
If driver allows suspend to go when it waits for probe response,
fw least expects suspend indication as fw is in vdev start state.
This unexpected suspend indication in vdev start state can cause
fw panic.
Hold wakelock till the completion of association to fix this issue.
Change-Id: I168ead2ab1ef4fff1d9af3f3142c82536c3f4798
CRs-Fixed: 2217140
qcacld-2.0 to qcacld-3.0 propagation
Discard the original wmi interface:
WMI_PEER_ANTDIV_INFO_REQ_CMDID/PEER_ANTDIV_INFO_EVENTID,
replace with the new one:
WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID/WMI_PDEV_DIV_RSSI_ANTID_EVENTID
to support chain value along with corresponding antenna info.
Change-Id: Ie9ea9d160e1ac1e2e65de422c85989159fb5a556
CRs-Fixed: 2005820
When CLD3.2 driver is setting pdev burst mode to FW, 3
possible values are supported:
0: disabled
1: enabled for legacy burst
3: enabled for SIFS burst
but the iwpriv command handling code only supports setting
0 or 1 to FW.
Add value checking for WE_SET_BURST_ENABLE to support setting
3 to FW.
Change-Id: I35506b83d584f6e8d066adfc43df8dd03ce54661
CRs-Fixed: 2214992
After SSR, FW clear its txrx connectivity stats.
In host, as adapter is intact, host connectivity
stats counts are still available. Now if the set
stats command is used again, then host increments
its counts start from its last saved value, i.e.,
count before SSR, and FW increments its count from 0.
This sends a mismatch of packet counts b/w
host and FW to framework that creates ambiquity.
To address the issue, reset the host counts so that after SSR
both FW and host start increment their counts from 0.
Change-Id: I11f849d6f00abe11f3bb8947cc81e47a3bc004fa
CRs-Fixed: 2202890
qcacld-2.0 to qcacld-3.0 propagation
Use qdf_do_div() for 64 bit division, because '/' can't be used for
64 bit division on arm32 platform.
Change-Id: I19a1db8adbc1fe7acaee0ec824f670b67284f628
CRs-Fixed: 2155143
The definition of module_param_call() was changed in 4.15 and
in order to have module params that work on the kernel both
before and after that change switch to using module_param_cb()
since its definition has not changed.
Change-Id: I4af7c802ae62041636eda3047805630a16490e75
CRs-Fixed: 2193703
Issue is under AP-AP MCC config, mcc event is not sent from wlan
to IPA driver. mcc mode is decided with the help of connection
table. But for AP mode, mcc mode is checked and updated before
connection table is updated by adding the SAP vdev entry.
Fix is to make ipa mcc mode check and notification when connection
table is updated. Since block is not allowed when conn table is
updated, a new work_struct mcc_work is introduced.
Change-Id: I935222e26bb3f6b31685f52b75084b034daccad2
CRs-Fixed: 2075876
Fix function return type for ndo_start_xmit.
Currently .ndo_start_xmit callback functions returns int, but
the correct return type should be netdev_tx_t.
Change-Id: I36d3cc886bfa0fd74a264f2791f09a251baab2ef
CRs-Fixed: 2202134
Currently hdd_set_peer_rate() is implemented in wlan_hdd_wext.c with a
prototype defined in wlan_hdd_wext.h. But the only client is located
in wlan_hdd_hostapd.c, and since that is where the "master mode"
ioctls are handled, relocate hdd_set_peer_rate() to wlan_hdd_hostapd.c
and make it static.
Change-Id: I5ec9c43b29fafc75cb35f1ee465c86acbc6b3b2c
CRs-Fixed: 2219456
When wlan_hdd_validate_context returns ENODEV in the case
of FW down or when driver is in bad state, wificond will
reset and try to unload the driver while SSR/PDR may be
in progress.
Return -EGAIAN and not -ENODEV in the above case.
Change-Id: I9b2314c2d4367b5373d1202b682d2c629a5a3e9f
CRs-Fixed: 2217006
Refactor the Green AP configuration so that it can be easily excluded
when the feature is not enabled, and to support transition to the
converged configuration model that is under development.
Change-Id: I275833f4c60c315937a6fba3f403eb54925e151c
CRs-Fixed: 2218656
Since camelCase is frowned upon in the Linux coding style, rename
field enableGreenAP in struct hdd_config.
Change-Id: Ie541289f79b2bfe9f2bf490bbcde7e0649e0395d
CRs-Fixed: 2218692
When world mode is set (ACS chan list is empty) and ACS request comes to
driver, is_acs_allowed variable is not reset. Due to this, in subsequent
ACS requests, is_acs_allowed variable would become 1, leading to ACS
failure in a loop. Fix that.
Change-Id: I97689571e147505ea2c21f271c103e3c8cc74b80
CRs-Fixed: 2215385
Refactor the hdd portion of the Green AP feature so that it can be
easily excluded when the feature is not enabled.
Change-Id: I986c5ab7640b3182a12bef93748affefba067251
CRs-Fixed: 2216247
Recent change in hdd_is_tx_allowed function causes failure in Tx of WAPI
Auth frames. Add check in this function to allow Tx of WAPI auth frames
so that device can connect to a WAPI AP.
Change-Id: Id5d4d31385309381383dec432698a8ac625845ad
CRs-Fixed: 2217090
qcacld-2.0 to qcacld-3.0 propagation
In hdd_parse_get_ibss_peer_info(), issue is reported by external
researcher that lack of string length validation might lead to
out-of-bounds read.
Related string length validation is added accordingly.
Change-Id: I32304404b2bab9011fa67316b77f6d37bb39df2d
CRs-Fixed: 2214899
Change the MIN, MAX and Default values of the ini
CFG_TX_SCH_DELAY_MIN to 0, 5 and 2 respectively.
Change-Id: I27d6110d69ba885535933e31dcca4e08865a7dc8
CRs-Fixed: 2216634
There is 1ms TX delay enabled in TX sch module if
frames queued in FW SW queue are less than 32.
This results in Tx delay in FW, and causes response time higher.
Add ini configuration to enable/disable Tx delay.
Change-Id: Ic180431ed2d0848df3dbb144f6b2bd70db61e5f4
CRs-Fixed: 2214307
Change the OCE WAN weightage to 2% of the scoring weightage and change
the slot size to 15 and fill the values for each slot in INI.
Change-Id: Ic67cde29a9dfdfaf6022bab106432ef2950e2340
CRs-Fixed: 2208283
Currently the HDD Green APIs do not have a consistent prefix. In
preparation for refactoring this feature, rename the HDD Green AP APIs
to have a consistent prefix.
Change-Id: Ib4d9a6db6ffacd9e19277d95f4976805d0bb6fa3
CRs-Fixed: 2216246
In function hdd_ndi_start_bss, avoid access to channel list pointer without
initializing it.
Change-Id: I9307f587bb9691d12b9b16f3a5e62945be7b2220
CRs-Fixed: 2205990
The OEM data is only processed in STA mode. As part of RTT config
LCI/LCR IE element configuration is required in SAP mode.
CRs-Fixed: 2179161
Change-Id: I65e0af23aba502031f23754572ca094058c5fe74
Do not disable IMPS power save during module start because
IMPS needs to be enabled only once during startup(modue init)
and only needs to be disabled during driver exit(module_exit).
Change-Id: I16babc857658f5f4064025c5eb28d287d025dd88
CRs-Fixed: 2216146
Change "qcacld-3.0: Fix memory leak issues in HDD" (Change-Id:
Iae551cd3acbb6bc2618f05cfdc33e4f742d63192) added logic to
drv_cmd_get_ibss_peer_info_all() to free the dynamically-allocated
buffer "extra" when either of the copy_to_user() calls
failed. Unfortunately this introduced a regression since now in the
success case the "extra" buffer is freed twice.
Update drv_cmd_get_ibss_peer_info_all() to remove the now unnecessary
call to qdf_mem_free() in the success case.
Change-Id: I7f8c17cd7576bf05ac8b6c4d6658ac40cb55782a
CRs-Fixed: 2215443
The AP auto shutoff feature controlled by INI item nAPAutoShutOff is
obsolete, so remove it.
Change-Id: I9e96bee36acc1ea1ac6f775ae04b31929bcb8406
CRs-Fixed: 2215925
Use in_compat_syscall() to query the syscall type, so it works properly
on all architectures. Also maintain backward compatibility with older
kernel.
Change-Id: Ife19c9874dcacc18c5d19c1175988bee66ea1cdd
CRs-Fixed: 2215566
Currently NUD events are used by Framework to detect
the Network Reachability. Framework issues disconnection
for NUD_FAILED event.
Now, NUD events are tracked within driver to detect the
reachability and based on TxRx traffic, driver takes decision
to issue disconnection.
Change-Id: I461610c220288ff1fd718bb7bc2dd8375588505c
CRs-Fixed: 2195796
Address the following anomalies with hdd_stop_bss_link():
- Parameter usrDataForCallback is unused
- It returns errno but one caller is checking for QDF_STATUS
Change-Id: I31086d790066eec5774cf318eff0f90736b4c92f
CRs-Fixed: 2213062
Use correct enum type for function variable in hdd_reset_tcp_delack
& return type in iw_get_policy_manager_ut_ops.
Change-Id: Iec8a678410b90dbe081c007f1bbfaa31f255799e
CRs-Fixed: 2213784
qcacld-2.0 to qcacld-3.0 propagation
hdd_get_hosttime_from_targettime() will get wrong host time when
it's longer than WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC from last
TSF-HOST update. To fix this, TSF-HOST should be updated in at most
WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC, it couldn't be achieved if the
timer interval is also WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC, due to
processing or scheduling delay. So deduct several seconds from
WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC.
Change-Id: Icce41c74568370d98509a2ebe69ae62e99ad2ce8
CRs-Fixed: 2104915
Currently HDD defines function hdd_wlan_get_freq() which uses
it own static table to perform channel to frequency mapping. This
duplicates functionality provided by the converged regulatory
function wlan_reg_chan_to_freq(), so remove hdd_wlan_get_freq()
and update its only client to use wlan_reg_chan_to_freq().
Change-Id: I6fcb11b9b967ab77dcd7c8d0c1bc185ee3c18913
CRs-Fixed: 2215576