Problem scenario:
1) Host gets Firmware down indication and stops all timers.
2) While processing association completion, host sends disassoc if
user changed reg domain during association and new channel falls
out of current reg domain.
3) Host fails to send disassoc to fw as WMI is in stop state due to SSR
4) Host doesn't check wmi status for disassoc tx and on failure depends
on disassoc ack timer to complete disassoc cnf.
5) As host stops timers on firmware down indication, disassoc ack timer
doesn't trigger and host fails to complete disassoc cnf action. Which
lead to stuck the vdev state machine at suspend down and peer refs
remains undeleted.
To fix this issue check the status of sending the disassoc, and if the
disassoc failed to send then perform the follow-up actions that are
normally performed upon receipt of the disassoc confirmation.
Change-Id: Ic2b88cfcbcb755a869ee281be4e1e8a9cec8299b
CRs-Fixed: 2816503
Change HDD layer to use WLAN_OSIF_SCAN_ID reference count
dbg id for vdev reference count acquire/release when process
scan request.
Change-Id: I4c181cd8213c5f03ca6416306f9468f9643eac99
CRs-Fixed: 2813929
If IPA RX hit back pressure, FW will reroute RX frames to host
by REO2SW1 ring(reo_destination_indication 2), this might introduce
FISA RX ring mismatch issue.
Bypass FISA if IPA RX packet rerouted to host by
reo_destination_indication 2.
CRs-Fixed: 2820235
Change-Id: Ife8f2168e1942204cfc66a2a135cb93c9a1e9910
Change HDD layer to use WLAN_OSIF_STATS_ID reference count
dbg id for vdev reference count acquire/release when process
statistics request.
Change-Id: I9ede0575d0f83c69ab08e05fae12f4c4b9862807
CRs-Fixed: 2805047
Currently when driver receives CSA, it uses channel number based
api to fill the channel params which does not work for the 6GHz
channels and may give incorrect results, which may result in
unexpected behavior.
To address above issue use frequency based api to set channel
params which gives correct results for all the bands.
Change-Id: I1e94a9fdac8dfae471ec83e9304d33cf154e49e1
CRs-Fixed: 2812548
Currently, the logs in SAP data Tx path are not rate limited.
If there are any error scenarios in throughput tests, this may endup in
continuous logging of the error messages.
To avoid this rate limit the error logs in SAP data Tx path.
Change-Id: I062b52c90e1e7ed85e74cc774f7817159f98eee6
CRs-Fixed: 2811093
Currently WLAN_PROFILE is overridden to default in all cases.
In many targets, defconfig other than default_defconfig needs
to be picked, so set WLAN_PROFILE to default only if it is not
set before.
Change-Id: Ia9a5ad7c9eedd56be59418371867107258e65ea0
CRs-Fixed: 2818090
Set the global device mode which can help in the memory optimization
based on the device mode.
Change-Id: I32d7c2f5be9cf8972ef9ef87ae698655629344b2
CRs-Fixed: 2809941
If data stall happens, both LFR3 roaming and NUD may happen,
if LFR3 happens first, updated connected bssid, NUD handler will
add new bssid to blacklist and trigger roaming again by mistake.
Fix: Once roaming succeed, reset NUD status to NUD_NONE to finish
current NUD cycle, but don't zero gw mac addr since roaming does't
update gateway.
Change-Id: I03685ca21348444d929e042f12dc3a837ca51940
CRs-Fixed: 2818785
For all tdls operations in HDD layer, use WLAN_OSIF_TDLS_ID
reference count dbg id for vdev reference count
acquire/release.
Change-Id: Ic5ab93eb865e016d485f09a9af062062d1f97526
CRs-Fixed: 2805028
Change HDD layer to use WLAN_OSIF_P2P_ID reference count
dbg id for vdev reference count acquire/release when process
p2p request.
Change-Id: I485ca13d37d3440b8aee75ced7fba75ff24efbd1
CRs-Fixed: 2813935
Change HDD layer to use WLAN_OSIF_OCB_ID reference count
dbg id for vdev reference count acquire/release when process
OCB request.
Change-Id: Ia6aabc3c3f41fa0f52cf626c99143f3b9682d35e
CRs-Fixed: 2813939
Add new hdd_objmgr_get/put_vdev_by_user to include user id(reference
count dbg id) to help identify the ownership of the ref count.
The old hdd_objmgr_get_vdev api is deprecated. And it will be removed
once all of the reference to it replaced by new API.
Change-Id: Ibd6528083d725a5930cece96ed3268b27e5263b9
CRs-Fixed: 2804993
Add check in function 'policy_mgr_get_sbs_channels' to restrict the
array index out of bounds.
Change-Id: I387b666095107faf284e35f073dfe856d38323d3
CRs-Fixed: 2776966
Some pointers returned from functions may be NULL, so fix these
issues to aviod some null pointer usage.
Change-Id: Ic2e801013d9edf1442b1317fe82718d2e89f9210
CRs-Fixed: 2772605
cds_get_context() function already takes care of logging the
caller function name in case of any error.
Hence there is no need to add the error log again.
Getting rid of these unnecessary logs reduces driver memory footprint.
CRs-Fixed: 2816598
Change-Id: Ide7e1cacb3752f8e9e5797629549079bf4ab8557
cds_get_context() function already takes care of logging the
caller function name in case of any error.
Hence there is no need to add the error log again.
Getting rid of these unnecessary logs reduces driver memory footprint.
CRs-Fixed: 2816598
Change-Id: I16fc2a3cdf675d35fb297ec62f4d3f5fb2cd4dd3
Vdev is NULL before completion of hdd disconnect process
Use hdd_objmgr_get_vdev() to get vdev reference and then pass it
to ucfg_if_mgr_deliver_event(). After using, release the
reference.
Change-Id: I683851a2b7b4376440637edc70b7fdaf71acfbd0
CRs-Fixed: 2812480
cds_get_context() function already takes care of logging the
caller function name in case of any error.
Hence there is no need to add the error log again.
Getting rid of these unnecessary logs reduces driver memory footprint.
CRs-Fixed: 2815522
Change-Id: Ibb17fb043d6addaf0fa86aeb882178ef27535162
cds_get_context() function already takes care of logging the
caller function name in case of any error.
Hence there is no need to add the error log again.
Getting rid of these unnecessary logs reduces driver memory footprint.
CRs-Fixed: 2815522
Change-Id: I735ba28f98a38e832ecb8781e39d5d8e134ad01f
cds_get_context() function already takes care of logging the
caller function name in case of any error.
Hence there is no need to add the error log again.
Getting rid of these unnecessary logs reduces driver memory footprint.
CRs-Fixed: 2815522
Change-Id: I8bc78db0276ad0c1547ae0e046d99bf749bd7125
On MDM platforms, STA only IPA offload is supported.
Therefore there'll be scenarios when STA is connected
and APPS is suspended, IPA offload traffic will still
flow through WLAN HW.
Thus define a feature flag FEATURE_STA_MODE_VOTE_LINK
and allow to vote link for STA mode on MDM platforms.
Change-Id: I5c7aa3b35e3cd56249a5b34996fcea538b0da69d
CRs-Fixed: 2803802
The UDP qos upgrade is skipped currently if the setting
from userspace is set to best effort. Also with the current
logic the priority of packets at "best effort" gets
downgraded to "background".
Fix the UDP qos upgrade logic to take care of using
the "background" priority value as a trigger to skip
UDP qos upgrade.
Change-Id: I5111a930995ddd71b082db95440ed778f09a3cba
CRs-Fixed: 2816426
Currently, sequence number of the authentication frame is cached
to detect if the same frame is received again. But in SAP case,
it's possible to get authentication frame from two different
clients with the same sequence number. Host driver drops auth
frame from the second station as it is considered as a
duplicate frame. Though the driver drops the frame only if it's
a retry, it's possible to get auth frame from second client with
same sequence number and retry bit set.
Cache the client mac address along with sequence number to
avoid this.
Change-Id: I194adc9e0f90d074aef50340d2cd6c7b138cc9b5
CRs-Fixed: 2815784
add CONFIG_QCN7605_PCIE_GOLBAL_RESET_SUPPORT
which is used to support Genoa Pcie Global Reset
this feature only used for 3rd party platform
which do not support hardware reset by toogle WLAN_EN pin
Change-Id: I0fa356e362ebafe18378e0a803bf3f4a00c77628
A race condition is observed when runtime suspend is aborted
due to pending TX packets but context switch happened and pm_state
did not revert to active state yet. In parallel, WMI_PEER_DELETE
command is queued but not sent as pm_state is still in suspending
state.
To fix this, schedule HTC queue kicker work to resend pending
commands again after dp_runtime_suspend aborts due
to pending TX packets.
Change-Id: I6d2c4140a4635c0aec304f48b15fb2b539ac39ea
CRs-Fixed: 2813657
In case of STA + SAP/GO, Driver fist disable roaming on all
adapters before bss start and enable roaming after start bss
(SAP/GO) in case of failure/success.
Due to commit I4870c69a0e0ca1e8cad734a591f09e402b7a32fa,
Driver fails to re-enable roaming after failure/success
of SAP/GO process.
Fix is to enable roaming after start bss in case of
failure/success.
Change-Id: Ibe90f0685f41984a5841859ea96834f7760ff9a1
CRs-Fixed: 2811306
Currently the adapter features update work is created only
for the STA types of interfaces, since this feature is only
used for STA mode. But this can cause an issue when a SAP
interface is changed to STA runtime, since the workqueue will
not be initialized (since create adapter was of SAP type) but
it will be attempted to be destroyed (since the adapter is of
STA type) during the cleanup of adapter.
The creation/destruction of this workqueue cannot be done
in the start/stop adapter, since the rtnl lock will be held
during this operation and the cancelling of the adapter features
workqueue can cause it to wait on rtnl lock, leading to a
possible scenario of a deadlock.
Hence as a mitigation for this issue, we create the adapter
features update workqueue for all the interfaces and clean it
up for all the interfaces as well.
Change-Id: I598480e9f248f50e46764f7f32b876a8efaeee8d
CRs-Fixed: 2811934
Currently the driver does not have a support to
filter out the 6ghz frequencies from the valid freq
list, and hence there is a high chance of selecting
the 6ghz freq as an operating freq for SAP, which
the legacy clients won't be able to scan.
Fix is to add a support for filtering out the 6ghz
frequencies from the valid freq list.
Change-Id: I3c32b4c8c5b93eae04d49d2d5b6bd4ec9852c2a9
CRs-Fixed: 2808350
Prior to the kernel version4.7 struct ieee80211_channel used enum
ieee80211_band. Beginning with kernel version4.7 struct ieee80211_channel
use enum nl80211_band. So there is an issue of typecasting of the channel
band parameter.
To resolve the above issue a helper function is added to typecast the band
parameter according to the kernel version.
Change-Id: I1af692bb7cae5ab2e71556128ce672c6b145f92f
CRs-Fixed: 2815201
As part of power optimization to club LL and get stats request add
a debug log to indicate when cached get station stats is getting
returned to user space.
Change-Id: Id1f80e1589c1913d0129b435cd2bdbd807800230
CRs-Fixed: 2814701