Restart SAP through (E)CSA on receiving channel avoidance event
from FW instead of doing a hard restart. This provides the
advantage of not disconnecting the connected clients.
Change-Id: Ibaa74dc8d7c75ed793faa418ee8c179b4210b35e
CRs-Fixed: 1020771
Add NULL check for pointer qdf_ctx as it returned from call to
function 'cds_get_context' may be NULL and could be dereferenced.
Change-Id: Iea44cd1a2d20ee04d1720c4e8af1065320a589fd
CRs-Fixed: 1024778
nlmsg_put might return NULL if the tailroom is insufficient
to store the nl message. Add the check to avoid the NULL
pointer access.
Change-Id: I01f88262e7cf84cd611c8f72a11577e61e7af1a3
CRs-fixed: 1024810
In TSO the higher bits in the 64 bit dma address are being ignored.
This is resulting in an incorrect address being programmed in the
fragment descriptor.
Change-Id: Id015e81212d2ded3f0716ca5cc06ae2220952270
CRs-Fixed: 1024169
Correct the channel parameters that are calculated and used to indicate
the channel switch notification sent to user space. The channel bonding
values should not be used to get the channel width information since
they can be used only in STA mode to enable or disable the channel
bonding. Fix the same by getting the updated channel switch information
from the session entries.
Change-Id: Ia51779cddb2b9c3108b211822f104c45f88e53fd
CRs-Fixed: 1021380
Ensure that the channel list used for ACS channel selection
is sorted for all the possible channel width cases. In the
current implementation, channel list sorting is not done for
channels widths 80, 80+80 and 160MHz. Along with this the
ACS channel range is getting set before the 11ac override,
leading to incorrect hardware mode. Fix the same by setting
the ACS range after 11ac override and ensure that channel
list is sorted in all the valid channel width cases.
Change-Id: Ic773b3a4b1c049bc2053c1d0d17dd047d7a88324
CRs-Fixed: 1022304
Incoming Data packets are filtered by FW during WoW based on the pattern
configuration done by host.
The incoming packet is filtered out to Multicast list if configured,
else it looks for other patterns that are configured.
SSDP pattern is not configured along with Multicast List, instead it
is configured as a normal WoW pattern during system/runtime suspend.
So, all the ssdp packets are dropped by FW during WoW.
To address this, host should configure the SSDP pattern as a Multicast
filter if Multicast filter is enabled in ini, else configure it as a
normal WoW Pattern. Hence the fix.
Change-Id: I64aa30832999a779591bdfce02e13545a6cbf4f2
CRs-Fixed: 1010542
Propagation from qcacld-2.0 to qcacld-3.0.
Initially, when a packet is forwarded from txrx layer, it is added in
count only once although the count should increase by 2 as there is one
rx packet and one tx packet that is not getting considered in the hdd
packet count.
Add code to ensure that when packet is forwarded from lower layers,
it get considered accurately in the packet count.
Change-Id: I47bc1e0ecfa2e831438534cf34d37086a306b4e9
CRs-Fixed: 996735
Propagation from qcacld-2.0 to qcacld-3.0.
Remove error print from kmsg as this print is unnecessary and
may flood the kmsg.
Change-Id: I0978f88af6677cb0c1e1db5eae7e5d6a69bd4b70
CRs-Fixed: 997243
Propagation from qcacld-2.0 to qcacld-3.0.
In lpm qos voting, no. of packets or bytes sent or received in a
particular amount of time is recorded and decision of disabling
or enabling lpm is done based on that. These packets are recorded
in HDD layer. In case when packets are forwarded to tx only, packets
don't come upto HDD layer and so in case of intra bss forwarding,
lpm qos voting is not being executed appropriately.
Add code to calculate the intra bss forwarded packets in txrx layer
and update them in calculating lpm qos voting.
Change-Id: I805663688cb300c8735b3e2f9680818a7b50bc9f
CRs-Fixed: 990868
FW common files needs to be in sync with host and fw.
SIGN_HEADER_MAGIC is not defined in fw common header files.
Abstract extra definition internal to host driver.
Change-Id: Ie902ca191617a6829c2cf3e6a45c3d170ae8d8c6
CRs-Fixed: 1012542
Refactor DPTRACE to support new datapath features like
TSO and FASTPATH and add support to log DHCP, ARP and
EAPOL packets.
Change-Id: I9b80a003759c962020165c21dbe29330700c4667
CRs-Fixed: 1008087
qcacld-2.0 to qcacld-3.0 propagation
Add support for vendor command which will do restart of the SAP
on desirable channel.
QCA_NL80211_VENDOR_SUBCMD_SET_SAP_CONFIG is used to send
driver to restart SAP device on some other channel.
Upon receiving this command, driver will do __hdd_hostapd_stop
and will disable all queues.
After that WLANSAP_StartBss start SAP on user config channel.
Change-Id: I34d4e4f758ca7e010ae198af31d9fc3777973b22
CRs-Fixed: 1000593
PLD deletes dev node before calling HDD remove callback functions.
It causes an error of reporting invalid dev type when a platform
API is called within remove callback function. Deleting dev node
after remove callback being called will fix the issue.
CRs-Fixed: 1020538
Change-Id: I3df5810c20a5965b908f15d4182e9b927e033afc
Currently SET_FCC_CHANNEL issues "update channel list" to firmware.
If scan is in progress, firmware aborts the scan resuting delay in
results update on the GUI. To avoid this, issue "update channel list"
only after scan is finished.
CRs-Fixed: 972208
Change-Id: I4c34010109443434bbe3abf45df7a0cf2effbee2
qcacld-2.0 to qcacld-3.0 propagation
Currently Ch 12/13 are disabled when SET_FCC_CHANNEL is issued by
framework. To meet FCC rules and to meet requirement for
other countries regulatory reduce TxPower for channel 12/13.
Change-Id: Ie833804e565f40e28845160452d3245334a34308
CRs-Fixed: 961580
Currently the HDD code uses a variety of logging APIs.
In qcacld-3.0 HDD should converge on a unified set of
logging APIs. Update wlan_hdd_wowl.c to use the unified
set of logging APIs.
Change-Id: I3243b578fac6bdfc7bcdc45808b4466f38d61b3d
CRs-Fixed: 937692
qcacld-2.0 to qcacld-3.0 propagation
The wlan_hdd_nl_init() is escaped for FTM case due to the multicast
logging feature is not required for FTM mode.
But with recent logging feature change, when CNSS_LOGGER enabled,
the wlan_hdd_nl_init() is used to register to cnss_logger module
and retrieves the radio index. So allow the wlan_hdd_nl_init() be called
in both FTM and normal mode, then the radio index can be correctly assigned.
This change doesn't impact to the non CNSS_LOGGER case as it does still
initialized, but never been used.
Change-Id: Ic78982baef8770494c4319df8b1bde45f4d2bd02
CRs-fixed: 1007357
qcacld-2.0 to qcacld-3.0 propagation
Add the radio_index information to get_wifi_info command.
This change allows user space to know which radio it is
talking to.
Also refactor the get_wifi_info command to support to query
multiple attributes in one command.
Change-Id: Ic3a3aabd9111e655ace3869771ae439aaec45dc4
CRs-fixed: 997545
qcacld-2.0 to qcacld-3.0 propagation
CONFIG_CNSS_LOGGER is introduced to move the logging feature from
CLD driver to kernel module.
This change will mainly benefit for two things for CLD driver.
- To support for dual wifi driver instances and also
future plan of moving out the logging thread and buffer
management to the kernel module.
- While debugging the critical feature that triggers the
autoshutdown and SSR, the log buffer in the CLD driver will
be lost after the driver restart or unload.
The CLD driver will register itself to the cnss logging module and
get the radio index as the indentification for rest of the operation.
Also the message sent from CLD driver to usespace need to be packed with
struct tAniNlHdr; and the hddctx.radio_index need to be filled along with
the message, so that usespace can differentiate the message.
Change-Id: I7ea6cdefac0916b9d4dd76da175607bf7169a8fa
CRs-fixed: 995073
qcacld-2.0 to qcacld-3.0 propagation
In the dual wifi instances, the 2nd cesium_nl_sock initialization
will fail due to the first driver has registered the socket.
This doesn't have to fail the driver to be up running, so simply
print a warning in this case.
Also add a check in the case to use the cesium_nl_sock to make sure
it is properly used only when it is initialized.
Change-Id: Ia62d606c1400b437f08c28951d6a6a77428f73b1
CRs-fixed: 995038
qcacld-2.0 to qcacld-3.0 propagation
Current cnss_diag implementation, do not send NL message in order to
register with host driver, as host driver broadcasts both firmware and
host messages to all the userspace apps whoever is listening on NL
socket.
Hence broadcast logs irrespective of cnss_diag is running or not. Also
do not indicate host driver load/unload status to cnss_diag app.
Change-Id: Ib36324f5bb8dc50521e4646b6184cfe586c10104
CRs-Fixed: 993754
qcacld-2.0 to qcacld-3.0 propagation
If module name is provided externally, override the default
module name.
Change-Id: I985f230de601830d8f8c35f1600a09c4ccede88f
CRs-Fixed: 999402
Currently the kernel checkpatch script is reporting several errors in
wlan_hdd_driver_ops.c:
ERROR: code indent should use tabs where possible
+ .runtime_suspend = wlan_hdd_pld_runtime_suspend,$
ERROR: code indent should use tabs where possible
+ .runtime_resume = wlan_hdd_pld_runtime_resume,$
Fix those errors.
Change-Id: Iae89ad6f55b6d1ba264767deaccbd58781925ead
CRs-Fixed: 1017135
This is qcacld-2.0 to qcacld-3.1 propagation
Add NAN event case in WMI_WOW_WAKEUP_HOST_EVENTID handler function.
Change-Id: I9348d78bc1eebea0ad7ce9889727ea01c1528374
CRs-Fixed: 977484
Handle multiple map/unmap handler from firmware
for same peer_id. Firmware sends map/unmap event
per copy engine enabled for RX path.
CRs-Fixed: 1009289
Change-Id: Id8b0c27920a7aae95ddd4cff26731de85248457e
In STA+SAP concurrency case the SAP channel is changed to due
to concurrency operation. Since the new channel params are not
updated in sap context, the old channel params are sent to WMA,
hence the PHY MODE is passed as UNKNOWN to FW.
Set the channel params when the SAP operating channel is changed
due to concurrent operation.
Change-Id: I8ac503a1b8993401b6fbdc247872539b72901564
CRs-Fixed: 1014368
Fix the calculation of WLAN_PHY_MODE from dot11mode and channel width.
Take care of all possible values of dot11mode and channel width.
Remove the usage of vht_capable parameter. Also remove the
un-necessary usage of CONFIG_160MHZ_SUPPORT.
Change-Id: Ibc263aed99b0b948f60ac6f1bfe72d16fda5c20e
CRs-Fixed: 1009720
FW common files needs to be in sync with host and fw.
Abstract extra definition of hia map internal to hif layer.
MSI_NUM_REQUEST is incorrectly overwritten, keep the original
change as MSI_ENABLE is false across all target versions.
These changes are incorrectly added in following change id.
Iced029073c2db9eb175adcebcad9163ab39443a9.
Change-Id: Ie38666f315067ae40676e3bdac9238e4b52e6be1
CRs-Fixed: 1012542
In Tx power scaling implementation, there are places where return
code is not handled properly and some code formatting needs cleanup.
This change address these issues.
CRs-fixed: 1013097
Change-Id: I3bafde8c046487cc1a80de22348c21f6d835efb5
If early stop feature is disabled in the configuration,
then let the firmware know to disable it.
There is no WMI item to let firmware know about disabling
the feature explicitly.
Hence, set the roam_earlystop_thres_min and roam_earlystop_thres_max
to zero which the firmware uses to disable the feature.
CRs-Fixed: 1017635
Change-Id: I122677ee3d73403748091832ec52cbc3f17500d6
Fix the regression caused by the patch-set 5 of change-id
I56e8441f08dec180f080c305ba5c6541302f107c, where the API
to transition the roaming state,
CSR_NEIGHBOR_ROAM_STATE_TRANSITION has been replaced by
another API csr_neighbor_middle_of_roaming.
CRs-Fixed: 1017545
Change-Id: Icc30faf2816dcb8b6858fe1c80deb942d255ebfd
qcacld-2.0 to qcacld-3.0 propagation
Fix incorrect logic to disable hi_rssi feature.
Both hi_rssi_scan_rssi_delta and neighborLookupThreshold are
positive values. Ideally it should be checked if the current
AP is better than the HI_RSSI threshold and then disable
the feature. The HI_RSSI threshold is the difference
between the lookup threshold and the hi_rssi delta.
CRs-Fixed: 1014859
Change-Id: I6980927b25c34b9b4d8ac13c22e93abc4ec500ec
qcacld-2.0 to qcacld-3.0 propagation
The HI_RSSI_SCAN feature is only meant to address the
scenario where user walks into a home which has dual band
AP and the 2.4G AP is visible initially and then the 5G AP
is visible later.
Disable the HI_RSSI_SCAN feature in the following cases:
1. Connection is a roaming connection
2. Connection is made with a 5G AP
3. Connection is made with a 2.4G AP, but the rssi is
stronger than the hi_rssi_lookup_threshold
CRs-Fixed: 975401
Change-Id: I86c63d9f8b51b6bdccc804163241ffe5640baf4d
Aggregate all the handlers of NCHO configration update
commands into a single routine
CRs-Fixed: 1007810
Change-Id: I9722dbead499f14f3969a85a20baf74aa03efff2
qcacld-2.0 to qcacld-3.0 propagation
After boot when driver is loaded for the first time, driver call
the regulatory_hint with default country.
From kernel 3.18 onward regulatory_hint removes the
REGULATORY_CUSTOM_REG flag from wiphy flags. But once reg notifier
is called for the country the wiphy flags are restored from the
original flags stored in driver.
Now if driver is unloaded and loaded again, kernel calls the reg
notifier for the last country set by driver before unload.
In static drivers the global static flag init_by_driver will remain
true even after unload and load and thus init_by_reg_core is not set
to true when kernel calls the reg notifier. Thus driver ends up
sending reg hint to kernel with same country, this reg hint removes
the REGULATORY_CUSTOM_REG flag from wiphy flags and is dropped in
the kernel as country has not changed. As reg notifier is not
called for the reg hint and wiphy flags are not restored.
To avoid changing of wiphy flags, reset the global static reg params
during wiphy unregisteration.
Change-Id: I01b29a2314ab4192e6bc9076978d54762a85c9e8
CRs-Fixed: 1003390
qcacld-2.0 to qcacld-3.0 propagation
In case of static driver, upon wifi turn off module exit
doesn't happens. Module exit helps in cleanup of static memory.
If driver is loaded statically, at the time of driver unload,
wiphy flags are not cleared because of static memory.
Fix it by removing channel type as static.
Change-Id: I198ea87da3d160716a8c1c04b879ecb7c6f63180
CRs-Fixed: 944530
qcacld-2.0 to qcacld-3.0 propagation
Add INI params gEdcaVoCwmin, gEdcaViCwmin, gEdcaBkCwmin,
gEdcaBeCwmin, gEdcaVoCwmax, gEdcaViCwmax, gEdcaBkCwmax,
gEdcaBeCwmax, gEdcaVoAifs, gEdcaViAifs, gEdcaBkAifs and
gEdcaBeAifs to control edca params for STA mode.
These params will overwrite the values from AP only if
gEnableEdcaParams is set.
Change-Id: I1e688a67df320208416aba4ca40fd870a947e3be
CRs-Fixed: 996685
Replace CNSS/ICNSS APIs with PLD APIs for PCIE/SNOC.
SDIO/USB changes need to be done separately by adding
SDIO/USB support in PLD
Change-Id: I0d2446e57922254369b7e7ca69d900006f7a7e28
CRs-Fixed: 1000113