Bus bandwidth logic uses PLD_BUS_WIDTH_NONE to vote if the packet
threshold is less than bus_bw_low_threshold. The same vote is used for
system suspend too. Add a new state for bus bandwidth logic to vote for
idle state.
Change-Id: I62ca6fff84a01083001db360f56344a05fb955db
CRs-Fixed: 2484003
Currently wlan_hdd_cfg80211_get_txpower is limited for STA
device. This causes issue when SAP device wants to get the
tx power.
Change-Id: Iadf34e6c74ba013247d925bcd4f05e1aa1a971c9
CRs-Fixed: 2481680
In function ol_target_failure(), if enable_self_recovery is true,
fw_indication_work_handler() will be called. Ramdump collection
will not be executed. But for no CNSS module platform, recovery flag
is neither cleaned, no any FW indication is sent to user space.
Even enable_self_recovery is false, no FW crashed indication sent
to user space.
So, call function ol_check_clean_recovery_flag() to clean recovery
flag, and send FW CRASHED indication to user space by function
ol_target_failure().
Change-Id: I44396caf4972dc267d60757c479e4681f8885de5
CRs-Fixed: 2482596
AP may send IEs in deauth/disassoc frames as part of disconnection.
Extract the same and forward to kernel through
cfg80211_disconnected().
Change-Id: I4ef339dcd1ecff64d6bed1de35621ecce5d8030a
CRs-Fixed: 2481912
Application sends disconnect IEs to driver through vendor command
SET_WIFI_CONFIGURATION by embeding in the attribute
QCA_WLAN_VENDOR_ATTR_DISCONNECT_IES. Extract the same and validate
to make sure it's not more than maximum IE length that can be
accomodated in deauth/disassoc frame. Cache the extracted IEs
in mlme vdev object.
Change-Id: I6c95aa1d4d8ef7d8ed3ad5be8832ef1f45c26a2f
CRs-Fixed: 2481908
FW version information which driver used to get
is updated to add release branch version also.
To give that information to userspace, parse the
release branch information also from the extended
FW version.
Change-ID: I45d06bac5ef0e57d1db8dbfe7ff6a0d7e2144b88
CRs-Fixed: 2482835
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.
Remove legacy implementation for get station stats api
as part of cleanup.
Change-Id: Iadc7fceccec32e7a27c29872fb13c03f79208965
CRs-Fixed: 2480770
While filling station info rx_mpdus and fcs_error count
are getting filled and corresponding flags are getting
set. These flags are set using BIT macro which operates
only on integers and will cause overflow on 32 bit
machine if the bit operation is of more than 32 bit.
To resolve above issue use BIT_ULL for bit operations
on station flags.
Change-ID: Ia7263f0e86a1fbdf477491b84bf94d5609781b00
CRs-Fixed: 2484159
Add ini gBtScoAllowWlan2GScan to support BT SCO-WLAN coex.
Using this ini can control whether allow wlan 2g scan or not
when BT SCO connection is on.
Change-Id: Ia63b1ff92e75937487827c34bca1d2e1c289962d
CRs-Fixed: 2464679
Flush the reject ap list from the BLM when the user does
a explicit wifi off from the UI to ensure the user is able
to connect next time the wifi is turned on.
Change-Id: Ia8cdd6aa7e3357fc0def100cb13c6e25c1e0a62e
CRs-Fixed: 2470087
Currently in function hdd_configure_cds the driver is passing
the pointer from cds_get_context to ucfg_ipa_uc_ol_init without any
NULL check. This pointer later then gets dereferenced which can cause
null pointer dereference.
To solve this, added a null check before calling ucfg_ipa_uc_ol_init
Change-Id: Ie0d8e103c9eeac76d285c4b3870c3c4ea9172dc6
CRs-Fixed: 2462711
Currently there is no ini support to configure frequencies
which needs to be avoided for the acs channel list which
may allow SAP to come up on a channel which is not preferred.
For Example there are many legacy clients which supports
2.4GHz but don't support channel 12 and 13 (or does not have
the capability to detect country change where channel 12 and
13 is valid).
In that case, if SAP comes up on channel 12/13, those legacy
clients won't be able to connect to AP.
Hence, Add a feature flag and ini to configure the frequency
list which can be avoided during acs.
Change-Id: Id106b38228f837ba056eb916004dc012e919ddd2
CRs-Fixed: 2472004
With new configuration g_sta_sap_scc_on_dfs_chan = 2:
1. SAP is allowed to start on dfs channel if no STA interface
active on the same mac.
2. SAP is allowed SCC with STA on DFS chan without DFS master
functionality and ignore Radar event
3. Skip cac if dfs master capability disabled based on
the configuration and current connection combination.
Change-Id: If2ffb253e51c94c06a105b2691c19f7d246fcc98
CRs-Fixed: 2468004
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.
Remove legacy implementation for get tx power command
as part of cleanup.
Change-Id: Iabe21f09fb6621bf81bf0b0b2864e68f78a68f2a
CRs-Fixed: 2480244
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.
Remove legacy implementation for wakelock stats command
as part of cleanup.
Change-Id: Ie60293ae06401f841ef8dd9545587819ebe4cd4a
CRs-fixed: 2480191
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.
Remove legacy implementation for congestion stats command
as part of cleanup.
Change-Id: Ia8b919ad7cea4f47d5480b9f8e0f4636783ce6c3
CRs-Fixed: 2480246
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.
Remove legacy implementation for get rssi command as part
of cleanup.
Change-Id: I7a837d780c6a1551db0929e6ec7e73daaf479429
CRs-Fixed: 2480770
Do not configure legacy rate to FW if it is HE connection, otherwise
FW does not work.
Change-Id: I31d167ee79b7b58cabad29e65cf6834a7151093d
CRs-Fixed: 2472811
Currently the driver does not check whether the
ACS cfg's chanel list is valid or not and checks
for the best channel within it in the function
wlansap_is_channel_present_in_acs_list, which can
lead to potential pointer deference.
Fix is to check the channel list and then only
process for comparison.
Change-Id: Icda2e7c8f260eb636c8159fbbb697400dddbdf74
CRs-Fixed: 2479941
When hdd_trigger_psoc_idle_restart is called from hdd_open,
if the process has some signal pending, pld_idle_restart
may return back before finishing start_modules. If keep running
in hdd_open, when creating vdev it may access invalid
pdev.
In hdd_open, change to return failure if idle_restart returns
error.
Change-Id: I454d421d0758dd4e90c4b4fba1f65096c0834446
CRs-Fixed: 2476316
Auto usercase allow AGO to start on DFS channel.
We need to do similar CAC allow/disallow check in GO mode
as we do in SAP mode. We should skip CAC as DFS master
functionality may be disabled based on INI configuration.
Merge the SAP CAC allow logic to GO interface.
Change-Id: Iba89b8b3f170d6ffe97f53198ad041e7ceb41b44
CRs-Fixed: 2474391
Fix out of bound issue in get pcl API where the
num of channels in the valid channel list can be
greater than the pcl list size, and can lead to
out of bound access.
Change-Id: Id3d34ff66c712bf310ae2689c43ce873f5c87fca
CRs-Fixed: 2475705
Currently the drivers blocks every simultaneous scan
that comes to the driver, and returns BUSY.
here if the STA SCAN which is low priority after connection
comes, and at the same time ACS has completed and the hostapd
tries to do a HT scan, it would get error as BUSY, and it
will try to scan again and again until successful or the timeout
happens. This will in turn delay the hotspot bringup as start
ap does not come until the hostapd does a OBSS scan.
Fix is to skip the check of simultaneous scan for SAP, and make
the priority of scan request high for SAP scan.
Change-Id: I5625a3e7c05f75238771ea1ec35b80ae5113bbc3
CRs-Fixed: 2471854
wpa_supplicant sends connect request with open auth and pmkid
when PMK caching is enabled and if it has PMK/PMKID cached.
Set rsn_auth_type to SAE when connect request has AKM as SAE
auth_type as open.
Set negotiated auth type to OPEN in SAE with pmk cache case as
open authentication going to happen. Similar fix is applicable
for FT-SAE. Handle the same.
Change-Id: I9ccc419bd439702041840b0194bb0622d7856255
CRs-Fixed: 2467813
If platform support dbs, 1st AP start on 5G DFS channel, 2nd
AP should be able to start on 2G on another MAC, no MCC will
happen.
If override 2nd AP from 2g channel to 5g, 2nd AP can't start.
Change-Id: Icee7a5c432e0b96d71b51685955d820b0f619c8d
CRs-Fixed: 2470807
When get station command received by driver, host is
filling rx_mpdus and fcs_error count into output station
info buffer but corresponding flags are not getting set
because of which user space is not able to parse these
values.
To avoid this issue, set corresponding flags for rx_mpdus
and fcs_error count in stainfo buffer.
Change-Id: I0801501d0ede15c9c818d677b5e85e47963f4cff
CRs-Fixed: 2477654
Firmware allocates memory as part of WMI_INIT_CMDID based on number of
STA vdevs and max number of vdevs. If we try to create more then
max limit then firmware will crash.
Added check to check for max limit before creating the interface.
Change-Id: I3e73c9f1b3c925465452a23ea5f25f47e4eb1ada
CRs-Fixed: 2468171
Host driver should exit if it fails to initialize
__cfg_global_store to avoid assertion hit.
Change-Id: I404e5da69cd2c4cf06d55a1d7a96d0aee1e5e4a4
CRs-Fixed: 2454969
Update default value of force max nss action OUI ini
to include AP that advertises rx nss as 1 before
connection and advertises rx nss as 4 in association
response and in beacons or probe responses immediately
after connection.
Change-Id: Ica6314547a2aa39d4887ac4231745d6a59cd6b0a
CRs-Fixed: 2466562
Driver is updating wiphy band capabilities incorrectly as
it is always updating 2G band as always supported, in case
if 2G band is disabled from ini "BandCapability", driver
should not update 2G band capabilities to wiphy.
To avoid above issue, add a api to check if 2G band is
supported and then only update 2G band capabilities to
wiphy.
Change-Id: Ib921fa106158d93bfdb7aa57cfd5aa4370fab7d8
CRs-Fixed: 2470067
Array sta_to_adapter of hdd_ctx is accessed from several functions of
NAN and softap without bound check which can lead to out of bound read
or write access.
To fix this, add range check for sta_id.
Change-Id: I0b8c4e8bce26c6514df489c3305000691c7e1fe0
CRs-Fixed: 2456954
qcacld-2.0 to qcacld-3.0 propagation
This change adds support for driver supported TCP
delayed ack to increase TCP RX performance in
third-party platform which does't support kernel
TCP delayed ack feature.
TCP delayed ack is dependent on count and timer
values. Whatever is achieved first will trigger
sending TCP ack.
This feature can be controlled through ini values.
gDriverDelAckTimerValue - timer value in ms
gDriverDelAckPktCount - delayed ack count
gDriverDelAckEnable - enable/disable feature
Change-Id: I8105bbb90965295b5a4aefeb00d344a90155974d
CRs-fixed: 2414224
Optionally set by userspace to request the driver not to resume
beacon reporting after a pause is completed, when the
QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_OP_TYPE is set to
QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START.
If this flag is set, the driver will not resume beacon reporting
after beacon reporting pause is completed. Userspace has to
send QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START command again in order
to initiate beacon reporting again.
If this flag is set in the recent
QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START command, then in the
subsequent QCA_WLAN_VENDOR_BEACON_REPORTING_OP_PAUSE event (if any)
the QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_AUTO_RESUMES shall not be
set by the driver.
Change-Id: I371a218cb513dcb077b7df675c549818c2b657b2
CRs-Fixed: 2466480
In order to process QCA_NL80211_VENDOR_SUBCMD_BEACON_REPORTING
vendor command, driver sends remove beacon filter cmd to fw to
allow fw to send all beacons of connected AP to driver.
But in some cases fw may wakeup host in wow mode.
To avoid these cases, with this change beacon reporting feature
will use WMI_VDEV_PARAM_NTH_BEACON_TO_HOST
command to FW instead of WMI_RMV_BCN_FILTER_CMDID
With WMI_VDEV_PARAM_NTH_BEACON_TO_HOST, in case of active reporting,
fw should send all beacons of connected AP to HOST
and also no wakeup of driver should happen in wow mode.
Change-Id: I9d0e255a6d4accb523bf4613146574239e7e0d09
CRs-Fixed: 2471627
In __spectral_scan_msg_handler(), payload section of input data is
type casted to driver internal structure spectral_scan_msg without
validating payload length which can lead to kernel info leak
if the payload length is less than size of spectral_scan_msg.
To fix this, avoid type-cast and return error if payload length is
less than size of spectral_scan_msg.
Change-Id: Ie7e74cc2cdcf8136582e81ffc3a088fd5a881dc9
CRs-Fixed: 2468493
Currently the driver checks MCC/SCC with the present connections,
and band interference in restart case of both SAP, and P2P-GO,
which can lead to p2p-go fail, as supplicant which is the
initiator of the switch channel does not care about MCC, and wants
the driver to restart the p2p-go in the channel given.
Fix is to overide the checks for P2P-GO only, and restart the
vdev in the given channel by supplicant.
Change-Id: I5db1da5452272696d80128e16b9e0ee50aa0de28
CRs-Fixed: 2466292
Propagation from qcacld2.0 to qcacld3.0.
The WMI CMD and EVENT of "get antenna isolation" are already defined,
but not used before in qcacld3.0.
Now, The host driver uses vendor command to get this information
instead of iwpriv command in qcacld-2.0.
The attribution of this feature is already defined in file
"qca_vendor.h". The name is "QCA_WLAN_VENDOR_ATTR_ANTENNA_ISOLATION".
So host driver will use vendor command
"QCA_NL80211_VENDOR_SUBCMD_GET_HW_CAPABILITY" to get the information
from lower layer.
Change-Id: I915768f622ddc9a70a95ce4fe952f19917a8f901
CRs-Fixed: 2447360
When ini acs_with_more_param is configured as 1, more params should be
added into ACS calculation process. Currently, even acs_with_more_param
is set as 1, mac->sap.acs_with_more_param is still 0 and no params are
added to ACS calculation process.
Make mac->sap.acs_with_more_param change as ini acs_with_more_param.
Change-Id: I4ced3b1d7d07c0f919183df42191e51ba66b90e8
CRs-Fixed: 2458086
Add QCA_LL_PDEV_TX_FLOW_CONTROL for both
QCA_LL_LEGACY_TX_FLOW_CONTROL and QCA_LL_TX_FLOW_CONTROL_V2
disabled platform, avoid frame drop in driver which leads to bad TCP
TX throughput. Change NUM_TX_QUEUES to 5 for this case to avoid invalid
memory access in wlan_hdd_netif_queue_control().
Change-Id: Ifa649e31a41d1bf89eadc8cc7e9520f0e27b9fe4
CRs-Fixed: 2466996
Fix cfg80211_ops.set_tx_power invalid bssid issue. User could set
txpower via cfg80211 interface.
Change-Id: Ie103a45e426b920846b8e4d23c4995ce660dde70
CRs-Fixed: 2468749
In lte coex case, when ini gEnableSapInternalRestart set to 1,
driver will indicate WLAN_SVC_LTE_COEX_IND message to upper layer,
then upper layer will restart sap, driver also will do inetrnal sap
restart in this case, this will cause duplicate sap restart.
Add ini gEnableSapInternalRestart check when indicate
WLAN_SVC_LTE_COEX_IND message to upper layer.
Change-Id: I045f8c40d1931aef088a2dbc700f6ae2706a3c79
CRs-Fixed: 2469012
Add per module logging macros without function/line info
to avoid adding function/line info where it is not required.
Change-Id: I0bd9248122b4f49274ee05a225ce6f880fede0cb
CRs-Fixed: 2468414
Do not start idle timer for epping mode when starting.
Deinit bus bandwidth and replenish timer when stopping, otherwise,
there will be resource leak.
Change-Id: Ib596f51445b739acd4551640b73270fd7693eea1
CRs-Fixed: 2464089
Wiphy updates band in insmod time. When wiphy is
registered, updating wiphy band a second
time sets chan_flags of wiphy to all zeros. That
results wrong wiphy chan_flags in
hdd_send_wiphy_regd_sync_event.
Add wiphy registered judgement in
wlan_hdd_update_wiphy_supported_band.
Change-Id: Iac094eea5ac2abcf068de7a35f00bdbf892e55a4
CRs-Fixed: 2452965
eCsrAuthType is the enum of AKMs to be used during connection.
So the name eCsrAuthType is misleading as akm and auth algo are
different.
Also the Linux Coding Style doesn't allow mixed-case names and
so-called Hungarian notation, so rename the enum eCsrAuthType to
be compliant.
Change-Id: I35e18d1f84babd0ef2928ae9d7258028d4c9b3c5
CRs-Fixed: 2463813
For vendor command QCA_NL80211_VENDOR_SUBCMD_ROAM with sub command
QCA_WLAN_VENDOR_ATTR_ROAM_SUBCMD_SSID_WHITE_LIST, NULL SSID with
NULL terminal can be accepted since it only requires non-zero
buffer len. Should only accept buffer len greater than 1.
Change-Id: I87144d4bf169e637756a4715c7a596c32f49dc36
CRs-Fixed: 2454035
Ini parameters gAllowMCCGODiffBI, gEnableMCCMode,
gEnableMacAddrSpoof are getting used before parsing the ini
conf file which is resulting in invalid parameter values.
Based on these invalid values wiphy parameters are getting
updated resulting in invalid wiphy configuration.
To resolve this issue, update these wiphy parameters after
ini conf file is parsed.
CRs-Fixed: 2457077
Change-Id: I20c14e7caeb0c0ad27ede5452e7d055ec2500026
The Linux Coding Style doesn't allow mixed-case names and
so-called camelcase notation, so rename the statusCode to be
compliant with the coding style.
Change-Id: I98e0af710401a9718bdc1402617253eb970c5861
CRs-Fixed: 2463825