Proapagation from qcacld-2.0 to qcacld-3.0.
Currently pktstats are stored in static allocated memory. This
pkt stats can be accessed using
1) procEntry function
2) hal_proxy_daemon
If user access it using procEntry then read pointer is moved ahead
in static memory array because of which incomplete data goes when
queried using hal_proxy_daemon.
Fix this by maintaining the pktstats in link list. When the
request comes from hal_proxy_daemon, complete data is sent
to it from this link list
Change-Id: I09bbd03fe378b296e110ce52cc8cbeb8cf8d723d
CRs-Fixed: 958544
(cherry picked from commit c0d86fc4197383d0eb386e091cee5142a35b555a)
In case channel width is defined to be CH_WIDTH_MAX; channel width
set to CH_WIDTH_80P80MHZ. This can be incorrect if the secondary
frequency segment is not defined. So conditionally set maximum
channel width to CH_WITH_160MHZ.
CRs-Fixed: 1082221
Change-Id: Iff28c56de56e5481814b4710eb51920a88f0f5f7
When firmware event times out, panic only if recovery is disabled else
return failure so that driver load can fail gracefully.
Change-Id: I90d110af370842fcd2bc8cc11008d1524c99332e
CRs-Fixed: 1077315
Cleanup should ignore errors without modifying execution as much
as possible. If one item was not initialized propperly the
driver should still try to cleanup the rest.
Change-Id: If132c40dffc801972ba801bb4a269b5dd9b954ff
CRs-Fixed: 1079503
Add code to check MCC for DBS case, and remove MCC mode switch
message to IPA when TX_FLOW_CONTROL_V2 is defined.
Change-Id: Ic09d1cbcb2df98b4b62b4fff27d44b67ce57c196
CRs-Fixed: 1077246
When the device is in DBS mode, and STA session gets
disconnected, then the dbs_opportunistic_timer is started
to wait for 10s and then sets back to SMM (Single MAC
mode) after timeout if DBS mode is not required.
The enhancement is to check the if the device is in DBS mode
and the STA session disconnects and new STA session starts in
the band in which existing connection are there, then stop the
dbs_opportunistic_timer and set hw_mode to SMM.
Change-Id: I16bfbb5135e36f2ab87bd09244d5eb6932846c72
CRs-Fixed: 1077488
Whenever there is session disconnection, the device sets its
hw_mode to SMM (Single MAC Mode) if the current connections
are not using DBS mode. Thus, if the device is in SMM, it
still sets its hw_mode to SMM after session disconnection.
The enhancement is to check the if the device is already in
SMM, then avoid setting again to SMM.
Change-Id: I4ebb9b6d992e65667a06b3e68d322435c7ec2968
CRs-Fixed: 1076844
cds_combine_channel_states to select final channel state based
on the two channel states specially when operating on 80+80 MHZ.
Change-Id: I5f470c96ce499c8d9aa2e41ceff59cdfc2f31151
CRs-Fixed: 1075098
qcacld-3.0 recovery does not use cds_shutdown routine hence
clean up this obsolete API.
Change-Id: I4779c1336062a2cc6357b2a4cf82248d4c457aa8
CRs-Fixed: 1077094
Incorrect PCL is given by policy manager because of incorrect merging of
valid channel list & weight list which results in to unsafe channel selection.
Driver notifies the list of channels to avoid in terms of frequencies rather
than channel numbers which is not correct.
Change-Id: Ic71766e8c917931d4f051b512fb8000cc34a04ad
CRs-Fixed: 1077025
As part of Dynamic Mode change, optimization is added to not to
stop the MC thread but just to flush the message queues but that
doesn't help in case of recovery where in MC thread is the one
which needs to be stopped first so that lower layers doesn't try
to post any messages and try to process them while firmware
doesn't exist. Processing such messages may cause stability
issues.
Stop the MC thread as part of recovery and bring-up thread again
during re-init.
Change-Id: Ie1cfbfa74f6b3e849361f2213a9d29f277aa09cc
CRs-fixed: 1075224
Functions get_reg_dmn_for_country & cds_get_reg_dmn_5g are no longer
being used, so remove them.
Change-Id: I03308f6fd7802acf7e80c01f15f42c99bb77ce7e
CRs-Fixed: 1075544
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code that is generating warnings. Fix all warnings
in CDS.
Change-Id: I40141f7a9e7394e0071b84b32a2d2b95cfa3a09b
CRs-Fixed: 1075544
Change ASSERT to BUG_ON when wait for WMI_SERVICE_READY_EXT_EVENT times
out in insmod thread.
Change-Id: Ie666fd0881969a503e6b3635cdc5bb7f223776ec
CRs-Fixed: 1075166
Initialize pointers bonded_chan_ptr and bonded_chan_ptr2 in function
with NULL and add check to avoid NULL/wild pointer dereference.
Change-Id: I48e4417998d75a7a42d6e55106896709016ac61c
CRs-Fixed: 1075098
The enhancement is to add SBS (Single Band Simultaneous)
support in hw_mode_list.
The WMI HW Mode definitions are redefined to use only
for host purpose.
Change-Id: I8b8c966b0130964c8e7de7967766629c955209d3
CRs-Fixed: 1072234
Currently the build fails, if we disable TDLS
feature flag in the kbuild.
Fix all the tdls conditional compilation issues
to make a successfull build with tdls feature
flag enabled/disabled.
Change-Id: I78114474d9ebe65e76840cb581389535f3486e4f
CRs-Fixed: 1066077
qcacld-2.0 to qcacld-3.0 propagation
Dump state information of HDD, SME, PE and WMA layers
into a buffer. Contents of this buffer will be copied
into user space using proc entry /proc/debugdriver/
driverdump.
Change-Id: Ifbb102e440d7df20defa1a397964cb9b55082bf9
CRs-Fixed: 955357
If the device is operating in MAC0 and MAC1. If the interface
present is MAC0 is removed, the interface in MAC1 moves to MAC0.
But the bandwidth for the interface is not updated properly.
The fix is to update the bandwidth of the MAC1's interface when
the MAC0's interface is removed, and is replaced by MAC1's
interface.
Change-Id: If114167f66d13a3660f9b92b72706bfc2e782b50
CRs-Fixed: 1073581
A cds log for cds_get_channel_list() is printing quite often
and spamming the kernel logs. This log is not for error.
Hence moving this to appropriate log level.
Change-Id: I5d037f47729b612d6754e64f46b627998ec026f8
CRs-Fixed: 1072651
Presently, driver configuration from FTM mode to any other mode
is failing due to start module is failing, because configuration
parameter(max peer limit) is set to zero during FTM mode
initialization.
In FTM mode, during start modules, don't update configuration
parameter, max peer limit.
Change-Id: Ie5adea45b2dac099e797a1e25536cc959f3d5525
CRs-Fixed: 1073593
qcacld-2.0 to qcacld-3.0 propagation.
Packets are not freed from cache buffer and causes memory
leak in SSR case. Flush cache RX frame queue to avoid this memory leak.
Change-Id: Idd9edde6fdb3b9ff3ecbe7d8139f9a66468b70af
CRs-Fixed: 1051019
In cds_deint, cds global context is set to NULL and then cleanup handlers of
memory/timer/nbuf manager's are invoked. During the cleanup these handlers
use QDF_TRACE to print the cleanup information which internally tries to
get the global context resulting in not clean unload of driver.
To migitate the issue set global context to NULL once the clean up of
all handlers is completed cleanly.
Change-Id: Ic58962dfd543020d79cabd7b646e483c4f7961f2
CRs-Fixed: 1067340
Firmware DBS mode is updated during firmware based roaming. Same change
is reflected in the host policy manager. Process hw_mode TLV in roam sync
indication event. Update cds concurrency policy after roaming. Handle
exceptions for ROAM_ABORT and HO_FAIL conditions.
Change-Id: I826c6766f73441256e5946d3167966e645f23430
CRs-Fixed: 1044336
Old generation of projects, which had only one MAC, are restricted to
use 28ms of fix active and passive dwell time when SAP session is active
but with new generation of projects, which can have two MACs, are
permitted to use longer active and passive dwell time when SAP session
is active on 2G band and DBS is supported.
Change-Id: I2638d9b7a3677c3f0b329ed8109d01baa2cffd68
CRs-Fixed: 1071353
propagation from qcacld-2.0 to qcacld-3.0.
On Dual-WiFi Platforms, Radio Device 1 (R1 - SDIO interface) should
be functional only if Radio Device 0 (R0 - PCIe interface) is active.
If SSR is indentified on R0, indicate userspace application to unload
R1 on this event and Reload R1 once R0 SSR and reload is complete.
CRs-Fixed: 1046397
Change-Id: I8a06b569fe536bb93dbb37bdb289295bfce62f6e
qdf_mem_cmp api returns zero when comparison string matches
else returns non zero. Checking return value with true/false
can cause confusion and errors.
Replace the return value check from true/false to
zero/non-zero values.
Change-Id: I485d69a4bf85d1e6273ea780af6d0423c3910686
CRs-Fixed: 1066946
qcacld-2.0 to qcacld-3.0 propagation
Currently when PE queue is full, timer message gets queued at the
end of PE queue even when timer gets expired in time. This causes
delay in processing timer messages. This delay can be maximum if
timer message is the last message in PE queue. This can take substantial
amount of time to process timer message as timer message will be
processed only after processing of other messages. For instance,
if timer message processing takes substantial amount of time during
scan, it can delay sending max channel timeout and may result in
scan timeout. So, add timer related messages at
the top of PE queue to process those messages immediately.
Change-Id: Iccaf0075c97a7edd2c1de1d168f1a4e7d01381c2
CRs-Fixed: 936179
Send HT/VHT CAPs IE to firmware per band. This will allow certain
features like LDPC to be configured per band.
Change-Id: I21c83af984f9be3ade46121ef148b52568c3ad0f
CRs-Fixed: 1055774
(cherry picked from commit 2a94c5666ea0c66477d0086c8d5a401db8e4afcf)
qcacld-2.0 to qcacld-3.0 propagation.
In current implementation, RA filter is enabled irrespective of the
BPF filter status. This change checks if BPF configuration in ini as
well as in target config is enabled, then RA will be disabled.
Change-Id: I85df0828af665d2bcc13c865b0ba40ebf882fffe
CRs-Fixed: 1058884
(cherry picked from commit 8dda6e83eb85ef9f0342ab23954e093c6dfebe2e)
Currently Host configures MaxTxPower as 22dbm
during join which fails the TRP requirement to meet
23dbm.
Change the code to configure the max tx Power to 30dbm
in FW during join.
Change-Id: I926288972e17a9276af2744d6a070b82333d5242
CRs-Fixed: 1023616
(cherry picked from commit 206e7dd1e735a3ff0a94f2d978b606dcf87e08fd)
Check for active STA and SAP connections before switching the operating
channel of SAP to a DFS channel. SAP moves to a DFS channel only if
this movement ensures that the SAP does not go off the DFS channel which
is needed for continuous radar detection.
The existing check looks for the number of open sessions. But these
sessions may or may not be active. So, replace this check with suitable
APIs which will check for active sessions.
Change-Id: Ib37427a9c62a785abb5e22c14ec23f09e60bf4b7
CRs-Fixed: 1063212
(cherry picked from commit d470e33f6d390b84dd98892a1b4526fd45348c2b)
Currently ani_global.h is included in qca-cmn,
The change removes ani_global.h and there are
corresponding changes in Driver
Change-Id: I59684e475406386e250635bde88390797835c95f
CRs-Fixed: 1012452
With the new statemachine cds start/stop will not be invoked without an
interface up from upperlayer. As part of cds stop host sends de-initialization
sequence to firmware, If there is no interface up from the upper layer and
driver gets removed, host driver dosent send the de-init
inidication to firmware and starts closing its modules because of this
fw & host are out of sync.
To migitate the issue send the de-init sequence during if the modules are
opened but not enabled.
Change-Id: Ice85f995a870e69e52b4fcf2fac13761bf1a63a1
CRs-Fixed: 1060893
Host is not handling target initial wake up properly which is
leading to resume failure. Fail PM suspend request if target
has sent initial wake up message.
Change-Id: I7ac757dd7968f541935519da0689d7672f72d19b
CRs-Fixed: 1059543
During the driver load cds_cfg memory is allocated during the
hdd_Wlan_startup and cds_open. Since the memory allocated by the
cds_open overwrites the pointer of memory allocated by hdd_wlan_statup
during memory free only memory allocated by cds_open is freed resulting
in memory leakage.
To migitate this issue, allocate the memory for the cds config only once.
Change-Id: I01bf0e8110a2519a2e11da398be3c98f9ca4db8f
CRs-Fixed: 1055648
Fix incorrect memory comparison cds_is_mmie_valid.
In cds_is_mmie_valid(), while processing Rx Robust Management Frame
invalid condition usage results in incorrectly tagging the Rx packet for
replay attack. Similar invalid condition results in incorrectly
tagging the packets for MIC mismatch. This change will update the checks
so that Rx packets will not be dropped incorrectly.
Change-Id: I50974232db034029747e0af8c8b5b70959c4dcb7
CRs-Fixed: 1057261
US regulatory domain is FCC3_FCCA and not FCC8_FCCA. Fix that.
Also add regulatory domain APL8_WORLD to regulatory tables.
Bolivia and Nigeria map to APL8_WORLD.
Change-Id: I539d2720f08026a06669b1c5117523667dfcef52
CRs-Fixed: 1053513
In following conditions RX LDPC support needs to be enabled
1) when STA is coming up in 5G band
2) when IBSS is coming up in 5G band
for anyother cases RX LDPC needs to be disabled. If user has
choosen RX LDPC to be disabled from INI file then it needs to
be disabled for all the cases including above mentioned cases.
To achieve this, take the intersection of global, INI, and harware
specific RX LDPC settings.
Change-Id: Iae10aa4a8c0931cdb796cd9c8ff558d4bc8e0aed
CRs-Fixed: 1050004
Disallow host requesting for 2x2 chain if hardware is not capable of or
ini setting disabled it. Downgrade the request to 1x1 instead. No need for
waiting for NSS update to complete as all requests are serialized through
SME cmd queue.
Change-Id: Ifee4ce15771b57ac3cc1e85650c56f426c34c833
CRs-Fixed: 1037816
KR and CN have different DFS regions than what kernel provides.
Assign the correct DFS regions for KR and CN. Also use "enum
dfs_region" as the parameter type in functions that have
dfs region as parameter.
CRs-Fixed: 1047214
Change-Id: I2ddd67d3c29a448dd2a1d3a63113750783fb6731
Make MAS (MCC Adaptive Scheduler) commands to be PDEV
specific.
Two instances of OCS (Off Channel Scheduler) can exist
in the FW (one per MAC) and FW provides the option of
enabling and disabling MAS on a per MAC basis. But,
Host does not have enable/disable option for individual
MACs. So, the agreement with the FW is for the Host to
send down a ‘pdev id’ of 0. When ‘pdev id’ of 0 is used,
FW treats this as a SOC level command and applies the
same value to both MACs. So, irrespective of the value
of ‘WMI_SERVICE_DEPRECATED_REPLACE’ in the WMI service
bit map, the pdev id needs to be ‘0’ (SOC level) for
the WMI command
WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID.
WMI command WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID to set
the MCC quota is sent down as channel – value pairs.
The value being channel time quota and the channel being
sent down is a home channel. The additional requirement
from FW is that all the channels in a single WMI command
belong to the same MAC. FW asserts if the WMI command
mixes and matches home channels associated with
different MACs. So, although the PDEV ID is not part of
the WMI command struct, the cmd is in a sense PDEV
specific.
There is no change in the WMI command
WMI_RESMGR_SET_CHAN_LATENCY_CMDID to make it PDEV
specific since this WMI command always send only one
channel-latency pair to the FW. So, there shouldn’t be
any problem of FW receiving home channels associated
with different MACs, for this WMI command.
Change-Id: Ie22800e07bbeef65c43f9171de828533b982a06b
CRs-Fixed: 1052652
Changes to configure different rx data path rx_thread,
RPS or NAPI through ini parameters. Also added support
for RPS mask setting using cnss-daemon.
CRs-fixed: 1026370
Change-Id: I23ab8fe0f05245b38cf4b37e93da8fd99d4c1f68
Add support for 5/10 MHz channel width for STA and SAP role. To
enable/disable feature, following ini parameter will be used:
* gSub20ChannelWidth=0: indicates do not use Sub 20 MHz bandwidth
this is also the default value.
* gSub20ChannelWidth=1: Bring up SAP/STA in 5 MHz bandwidth
* gSub20ChannelWidth=2: Bring up SAP/STA in 10 MHz bandwidth
Change-Id: Ic6d534dc1eae60fcd2fb7533c934b9ea28e6dd78
CRs-Fixed: 1013211