Currently, after roaming only vht ie is used to get dot11 mode
which may casue issue whenever vendor vht ie is present but vht
ie is not present in beacon. Host updates dot11 mode to
11N based on missing vht ie and does not consider vendor vht but
fw considers vendor vht ie which causes different dot11 modes in
fw and host.
Consider phy mode sent by fw in roam sync event to get dot11
mode to maintain compatibility between host and fw.
Change-Id: Ie9e4cbadd84d239c6f386f296c77677b15ce0500
CRs-Fixed: 2714566
There are different version of SSID structure used in driver, replace
them with struct wlan_ssid.
Change-Id: I8a5bfdafbdc4365afccc11980633272be9c75a81
CRs-Fixed: 2721873
Presently, in the host initiated recovery the handler checks whether
the support for recovery is enabled via the ini or triggers the panic.
Whenever the panic is triggered the irq's will be disabled,
this results in some targets not able to collect the important
MHI, PCI information on what caused the issue to root cause the issue.
So, for different targets check the ini at different places. In this
case, move PCI based check to the start.
Change-Id: Ia184a265d0f76e43d1d5edc4bcc0849a05726dac
CRs-Fixed: 2720999
Currently, powersave configuration is being overwritten before INIs
are initialized by mlme component. As a result INI configuration is
not being overwritten in case of monitor mode.
To resolve this issue, overwrite PS configuration during start
modules and restore it in stop modules.
Change-Id: I2707b431b81881c943104b211d55c6f48f348ba9
CRs-Fixed: 2682164
In the function hdd_driver_unload, the hdd_ctx is fetched at the
beginning before the dsc_wait_for_trans. In the scenario where this
wait_for_trans is active and in the other thread (for example when
wlan_pld_remove and rmmod run in parallel) the hdd_ctx is invalidated,
the local copy of the pointer becomes stale. Accessing this stale
pointer leads to page fault.
Do not fetch the hdd_ctx before waiting for dsc trans. Rather fetch it
just before where it is actually used.
Change-Id: Ia5524c7a2af8ff2e976a6f1d3e87f2f374fdc371
CRs-Fixed: 2720714
As per requirement, the driver should able to process up to
MAX_MEASUREMENT_REQUEST (5) measurement request in a single
beacon report request.
Update driver logic to process up to 5 measurement request and
make sure the driver should not issue rrm scan for the duplicate
channel.
Change-Id: Iea3be8a0efef605852ac6b6b54dd06774ac0adac
CRs-Fixed: 2712112
To process up to 5 Measurement Request in a single beacon
report request, modify the size of Measurement Request IE
to 5.
Change-Id: I87025ce12886cc3129b01de6eb48b45e85babe9a
CRs-Fixed: 2712109
Host retransmits WPA3 SAE authentication frames after 1 second
if there is no response for previous auth frames from AP.
Host keep retransmitting SAE auth frames for max WLAN_SAE_AUTH_RETRY
times.
Change-Id: I1be0bd5354586518781876646b063592e667b0bb
CRs-Fixed: 2716719
Add the cfg80211 ops for the bitrate mask.
Previously the bitrate mask is added via the iwpriv
iwpriv wlan0 set11NRates 0x8f --> for MCS7
will be configured via below through iw
iw dev wlan0 set bitrates ht-mcs-2.4 7
Change-Id: I3415fa3f89e2af3fb3bae4c9b56c57af7da2382f
CRs-Fixed: 2699468
As part of the firmware down notification if the indication comes
in the non-interrupt context the driver flushes the idle timeout
work and purges the shutdown down notifier.
If the the idletimeout is already running, as part of the idletimeout
work the platform,mhi irq's will also be freed, if the firmware crashes
and enters the RDDM mode during this time, platform driver will notify
the host through the uevent. Since free_irq waits for all the pending
interrupts to be serviced resulting in the deadlock.
Dont flush the work for the pci bus so the interrupt could
be completed and free irq could also be unblocked.
Change-Id: I4e106ff774fa90544ba97737a87682f42f9288df
CRs-Fixed: 2720348
Add orphan channel with center frequency 5935 to 6ghz channels. Also shift
center frequency of other channels by 10 mhz. Also change the maximum
possible frequency of 5 ghz channels.
Change-Id: Ic86fb8ded10b32871a9edf532bbc4e0889efb543
CRs-Fixed: 2686624
sysfs attribute name should not have get_/set_ prefit, it should
just be attribute name.
read operation is a get and a write operation is a set.
Change-Id: I3b87424d1c5cadd836e24f39c20a8bd9ed9ef45e
CRs-Fixed: 2720000
When the sysfs file 'gtx_bw_mask' is read, DEVICE_ATTR 'show' callback
function is called and currently its returning 'ret' which is 0 and hence
the content of sysfs file "/sys/class/net/wlanxx/gtx_bw_mask" is empty.
Hence the fix is 'show' callback function should return the number of
bytes placed in to the buffer.
Change-Id: I44b7eda40cd2963b4be52f97b513badc48244120
CRs-Fixed: 2720141
Currently the driver calls the BLM API
to add the BSSID to the reject list if
STA kickout event comes from the FW.
Now since the event comes in interrupt
context and BLM takes a mutex lock, it
is not allowed.
Fix is to change the context
and call the BLM API from lim del sta
which would execute in scheduler
thread.
Change-Id: I3c2726ea152eeeee6ae30d80388aedac631f6c39
CRs-Fixed: 2716192
This change corresponds to the callback updates in scheduler_msg.
Changes include:
1. Update hdd_data_stall_process_event and its caller
2. Update umac_stop logic to allocate buffer for callback
and update its caller
3. Register beacon reporting callback as a direct function
call without message posting.
Change-Id: Ic07a6102ea75d8bccb57a800e9670750e98356ce
CRs-fixed: 2718977
Add new ini enable_dual_sta_roam_offload to enable/disable dual
sta romaing feature. Enabling this ini will allow firmware to
roam on both the vdev if firmware supports dual sta roaming and
the hw is dbs capable.
This ini will be checked in the dual sta roaming offload state
machine to enable roaming on both the STA or to fallback to the
current implementation where first connected sta will have rso
enabled.
Change-Id: I04f141ac31e0f168b6f19fe878bca219a36cfae7
CRs-Fixed: 2709036
Replace obsolete WMA_LOGA() macro with wma_alert().
In some error cases, usage of wma_alert() is incorrect and
hence use wma_err().
Change-Id: Ife02033c4f981c31f5e6b165d5e8961e2ce1f9d8
CRs-Fixed: 2716176
After the roaming is offloaded to Firmware when the GTK rekey
happens in Host proper KCK should be used to verify MIC.
In WPA2 GTK rekey is offloaded to Firmware but not in WPA3 case.
In WPA3 SuiteB Firmware sends KCK in Key material extended TLV
instead of Key material TLV in Roam sync indication event, as the
Keys length is more in WPA3 SuiteB. And the Key material ext TLV
is parsed improperly in driver and the same is sent in roam+auth
event to wpa_supplicant. This wrong KCK was used to verify MIC
received in EAPOL.
This fix is to properly parse the KCK and KEK from Key buffer.
Change-Id: I57658b918bb41de2b5d2476d89b026d1f5982337
CRs-Fixed: 2713711
For non-DBS and no Interband MCC supported targets, send only
PCL to supplicant when number of connections are more then 0.
Change-Id: I12b1d483de55cca2d70d17d7114bdbde72c59826
CRs-Fixed: 2711485
For single-MAC and no-interband MCC scenario, don't switch
channel for STA if the new channel is creating interband-MCC
concurrent combination.
Change-Id: I6886d58dfe8a8845bcded90ab3422b5f79abbe4a
CRs-Fixed: 2711469
hdd_wlan_clear_stats() invokes the function cdp_clear_stats(),
hdd_wlan_clear_stats() always returns 0 instead of returning the
callee return status.
Fix is to return the callee function return status up the call stack.
Change-Id: I591fb743d000463ffebd4207450de82ab7463a9c
CRs-Fixed: 2719088
Add dp_aggregation sysfs entry under the wifi sysfs
directory to dynamically control aggregation in the
rx direction.
Change-Id: Ic7b13806f5fbd19fe5c56cabdf71d032b730448c
CRs-Fixed: 2718131
Add support to dynamically control fisa aggregation in
the rx direction based on the dp_aggregation sysfs entry.
Change-Id: I677b8b5f05e6cd849671a058b5e6ef07fc14a969
CRs-Fixed: 2718132
Fix for null object dereference. Check for null wlan
kobject and return if true.
Change-Id: I90477335c81d44b9cc2762dd4060d9447a0bdb66
CRs-Fixed: 2717466
When wep_default_key is not set as 0 in hostapd.conf, wep key with
key id 0 should not be sent to FW when new station is connected.
Wep key with key id specified in hostapd.conf should be sent to FW.
To fix this issue, wep default key id should be saved for sap mode.
When reference station is connected, set default key id related key
to FW with TX_USAGE flag.
Change-Id: Ic13e311593154911ee21db5172188c7037f429a3
CRs-Fixed: 2700441
PKTLOG can be enabled from both 802.11 and WEXT, customer
integrates pktlog ctrl in script and is toggled frequently.
This leads host pktlog status variable and FW status out of
sync. Host bus vote logic need disable pktlog when TPUT is
high, based on host status. At last, it will not take effect,
KPI continues dropped by PKTLOG.
Change-Id: Ifad7b53060b6046361621bf927c99b6b66e0c278
CRs-Fixed: 2715362
Currently when enable FISA debug, the default log level is
QDF_TRACE_LEVEL_ERROR which will output excessive logging
to kernel console, back pressure for RX might happen.
Degrade log level to QDF_TRACE_LEVEL_INFO_HIGH.
Change-Id: I5e910a6fc12d29179d3737f0c1d6c61b1383110b
CRs-Fixed: 2716688
Currently the driver supports the dynamic
configuration of nss and chain to FW for
VDEV if the FW advertises the capability
of supporting the same. However there is
no support to overide this.
Fix is to have an ini to enable/disable
this feature of configuring the dynamic
nss and chains to FW.
Change-Id: I0b84bb5aec53966a43a00c11d4aba3863414005c
CRs-Fixed: 2708303
When roam invoke fails during handoff, firmware sends HO failure
indication to host. Here the roam_invoke_in_progress flag is not
cleared.
Clear the roam_invoke_in_progress flag when fastreassoc fails
due to handoff failure at firmware.
Change-Id: Ifc0ade939980138f64013299a9ea4e97468ce00f
CRs-Fixed: 2715281
Replace wlan_reg_is_24ghz_ch with wlan_reg_is_24ghz_ch_freq.
Replace channel with frequency in cds_get_vendor_reg_flags.
Change-Id: I72ffc5550e45be1edf460f9619fead8889cf2967
CRs-Fixed: 2714723
As a part of LL stats get NB operation, the driver sends the LL stats
req to the FW, waits for the response and sends back the stats in a
synchronous reply. All this happens as a part of one single NB
operation.
Within this operation, if an rmmod comes, there can be a possiblity
of a memory leak. In function hdd_link_layer_process_radio_stats, there
is a check to validate the hdd_context and return if the driver is
undergoing load/unload. As a part of the premature return, some stats
are not returned to user space..
To resolve this, remove the validity check from the NB operation. The
operation itself comes with DSC synchronization and ensures that the
hdd_context remains valid atleast until the operation is complete. Thus
there is no need for the redundant check of validity of hdd_context.
Change-Id: I20cc85b715330a28bc077ca47a1721343bba7214
CRs-Fixed: 2714136
Truncation will happen when assining an association id over 256
to the u8 'aid' of struct wma_txrx_node.
To avoid such issue, change the type of 'aid' in struct wma_txrx_node,
from u8 to u16.
CRs-Fixed: 2713427
Change-Id: If360c017700aadaf9f2d3216601a011704f68180
Regression of Change-Id:
I1de3f71ca96de9f464d5d33b0271f99c55cff535
make LFR2 roam scan mode config
WMI_ROAM_SCAN_MODE_RSSI_CHANGE depend on roam_force_rssi_trigger
which is uninitialzed when LFR3 disabled, so roam scan mode 0
is sent to F/W wrongly in WMI_ROAM_SCAN_MODE when LFR2 enabled.
Fix: Initialize roam_force_rssi_trigger in roam offload scan
request with ini config for LFR2 too.
Change-Id: Ifd65119a87a6a348a952a4eec70a336015192d43
CRs-Fixed: 2704513
Presently, in the host initiated recovery the handler checks whether
the support for recovery is enabled via the ini or triggers the panic.
Whenever the panic is triggered the irq's will be disabled,
this results in some targets not able to collect the important
MHI, PCI information on what caused the issue to root cause the issue.
So, for different targets check the ini at different places.
Change-Id: I0d0e322610abd9f8ceaba4fe9688cdd099c381e5
CRs-Fixed: 2715603
Adrastea target expects different attributes in vendor command
QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG. So add an api to parse
the vendor command QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG
which will be called based on CFR version type.
Change-Id: I965b3cd6b93a288f1074ea0c09306cfff9f6ced0
CRs-Fixed: 2687075
FW can send multiple events for a single oem data command
based on the size of the data to be send and the available
buffer size.
Currenlty sme callback in the oem data event handler
wma_oem_event_handler is set to null after it process the
event because of which next events for the same command
are not processed.
To address this issue do not make the sme callback as null
in the wma oem event handler.
CRs-Fixed: 2714680
Change-Id: Ia435a5bee7ed4d2e16313698052033f8b45a5873
If any group key is gotten before sap bss starts, it should be sent to FW
when sap bss starts. There should be no valid unicast key before sap bss
starts, so no need to set the key to FW as unicast key again.
All the saved group key should be set to FW when sap starts.
Change-Id: I8a36415b896881b2e7c0ab72b9679eb1daa86e80
CRs-Fixed: 2705593
Set LDPC if AP sets it in either assoc response or beacon
along with one of the following conditions:
1) nss should be greater than 4
2) channel width should be more than 20 Mhz
3) MCS 10 and 11 bit must be set
Change-Id: If23b119b3bf2d07282e9fc9a3bfbb6baa0887737
CRs-Fixed: 2708333
Set IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G flag in wiphy
2.4GHz capabilities
Change-Id: Ia142c4c307ea2f7edb9fac018d5be62ca93a3a11
CRs-Fixed: 2693444
For Lithium target, hdd_gro_rx_dp_thread callback is registered
to handle GRO.
Currently this callback is not registered for target qca6750.
Register hdd_gro_rx_dp_thread callback for target QCA6750 to
handle GRO.
Change-Id: I2991a6b2f6a2a614f4bb7f36bac6ec4909c4d251
CRs-Fixed: 2712504
In case of open mode the crypto params are not updated and thus
older params values are maintained. This can lead to failure
in open mode connect.
Thus Reset crypto params on open mode connect request
Change-Id: Ia986f1b0d7b29410d32090be3e9bfb9db96c6c11
CRs-Fixed: 2713346
Rome supports mgmt Tx via HTT interface, not via WMI.
When mgmt frame is sent, 2 tx desc is allocated:
mgmt_txrx_desc is allocated in wlan_mgmt_txrx_mgmt_frame_tx,
ol_tx_desc is allocated in ol_txrx_mgmt_send_ext.
They point to same net buffer.
net buffer is mapped in htt_tx_desc_init.
When SSR during Rome STA connected, deauth frame is sent,
but no tx complete since firmware hung already.
Pending mgmt frames are unmapped and freed when destroy vdev.
hdd_reset_all_adapters->hdd_stop_adapter->hdd_vdev_destroy
->wma_handle_vdev_detach->wlan_mgmt_txrx_vdev_drain
->wma_mgmt_frame_fill_peer_cb
->mgmt_txrx_tx_completion_handler.
Don't need unmap and free net buffer of mgmt frames again during
data path clean up, just free ol_tx_desc.
hdd_wlan_stop_modules->cds_post_disable->cdp_pdev_pre_detach
->ol_txrx_pdev_pre_detach->ol_tx_free_descs_inuse.
Change-Id: I2fc658e833cf013bf7048c6bec90d9b247566444
CRs-Fixed: 2694854
As part of GKI kernel whitelisting effort, add kernel version check
for cfg80211_update_owe_info_event.
Change-Id: I06e4f42bbe6d032a816c61eea2e4cc415ebbdff4
CRs-Fixed: 2700291
In FW CFG_TGT_DEFAULT_MAX_STA_VDEVS considers total no of
STA and P2P-CLI vdevs. Check CFG_TGT_DEFAULT_MAX_STA_VDEVS
in change interface APIs for P2P CLI case.
Change-Id: I195d1cdda2d66f3187698254accf4bc3646d78c2
CRs-Fixed: 2701798
During channel switch, firmware reports CSA offload event,
driver will process wbw IE and set phy mode into firmware.
Now driver only processes case that frequency segment0 above
current primary channel. So device will use bandwidth which
is mismatched with AP after channel switch. It will cause data
transaction failure. Change to support frequency segment0 below
primary channel.
Change-Id: Ie879ceb8eadbe92f6519886dc30fb2c065ddbc40
CRs-Fixed: 2684883
Currently the driver skips the DFS channels if
g_sta_sap_scc_on_dfs_chan = 2 which should not
happen as master mode is supported if this ini
is 2. Driver should only skip the DFS channels
if the ini value is 1.
Fix is to correct the condition for the same.
Change-Id: I9d6c2f2c42f9d9f4f1b5bd080b9cdc5c13e031f2
CRs-Fixed: 2700201
Currently, APF memory offset is sent to the firmware without validation.
This may cause out of bound memory access in the firmware.
To avoid this, validate apf memory offset with MAX_APF_MEMORY_LEN in
the driver.
Change-Id: I5657f570a820b73b9e07a6fb1ce54807156def24
CRs-Fixed: 2711515
When vdev destroy event timeout, function wait_for_completion_timeout()
will return zero. Zero means completion event timeout. But our code uses
last status to check timeout or not timeout. SME will not be clean at
this case.
So, correct code to ensure sme can be clean.
Change-Id: I4c0366a9d0f89d374f0e6aa50e0aa32f67fac03e
CRs-Fixed: 2705855
Initialize roam result and status in
csr_roam_process_results and
csr_roam_process_start_bss_success to
prevent use of uninitiazed variables.
Change-Id: I06b3026db4bc70b3631c9348101cc8ca691a8b26
CRs-Fixed: 2702076
Add null check for 'hdd_ctx' and 'soc' before accessing them in
hdd_set_netdev_flags function.
Change-Id: I0fc115170943c402b522989d76b278ea1fbd4862
CRs-Fixed: 2706429
For kernel 5.4, skip GRO flush when T-put is low will cause
11g TCP RX not stable.
Do not skip GRO flush if T-put is low for kernel >= 5.4.
Change-Id: I89c29b64b9801d2a3c917d88cc31cb18296fd4d7
CRs-Fixed: 2697893
Currently there is a single INI item tcp_udp_checksumoffload to enable
or disable this feature for all the adapters. In some cases, we want to
be able to enable this feature selectively for NAN mode.
Add nan_tcp_udp_checksumoffload ini item to enable or disable checksum
offload feature specifically for NAN mode. If
nan_tcp_udp_checksumoffload is 'true' and tcp_udp_checksumoffload is
false, hardware checksum offload will be enabled only for the NAN
adapter and not for other adapters.
CRs-Fixed: 2698342
Change-Id: I56319095e6229d77ddb5c790d0af9c6ba0267611
Userspace uses enum qca_vendor_oem_device_type to indicate
device type as vdev or pdev in the oem data vendor nl command.
This attribute is set to 1 to indicate that the oem data command
is meant for pdev and it is 0 for vdev. The default is vdev when
this nl attribute is not present.
The host driver should update the pdev_id of the vdev and fill
the pdev_vdev_flag to 1 for pdev commands.
Change-Id: I8bdf436759e0935c52bb09c2865fcb4a7a5ee4fc
CRs-Fixed: 2693892
QCA_NL80211_VENDOR_SUBCMD_NAN_EXT is introduced to carry NAN
command data along with channel info. This channel info is needed
to enable DBS on DBS supported platforms. The command data is sent
to firmware as it on non-DBS platforms.
Userspace is expected to send NAN commands through
QCA_NL80211_VENDOR_SUBCMD_NAN_EXT if it's supported. It can send
QCA_NL80211_VENDOR_SUBCMD_NAN if QCA_NL80211_VENDOR_SUBCMD_NAN_EXT
is not supported, which is expected to happen on older
platforms(non-DBS).
So legacy NAN command QCA_NL80211_VENDOR_SUBCMD_NAN is not allowed
on DBS platforms, as the command is sent to firmware without
enabling DBS.
Event part of QCA_NL80211_VENDOR_SUBCMD_NAN is still intact as it
carries NAN events from firmware to userspace.
Change-Id: Ie1aaf9f7ea051009125c972de4f0de13942448fb
CRs-Fixed: 2699605
Currently use maxStation to create dph_hash_table for each
pe_session, actually maxStation is total allowed maximum
sta for all pe_session that gets from ini gSoftApMaxPeers
and firmware capability.
SIR_SAP_MAX_NUM_PEERS is maximum sta number for each pe_session
and can be configured from config file, add max_sta_of_pe_session
to limit maximum sta number for each pe_session, set
max_sta_of_pe_session as minimum value between maxStation and
SIR_SAP_MAX_NUM_PEERS.
Change-Id: Iaa01c91cd164c470b3f76bffc826ca5abdd4d0d3
CRs-Fixed: 2676484
Kernel 5.4 has applied batched GRO_NORMAL packets processing
for all napi_gro_receive() users. this requires NAPI users to
call napi_complete_done() or napi_complete() at the end of every
polling to flush batched GRO_NORMAL packets.
However, by current wlan driver design, napi_gro_recevie()
is not happened in same NAPI polling context and done in another
thread context, it likely packets which have not been flushed from
napi->rx_list will get stall until next RX cycle.
Fix this by adding a manual flushing of the list right after
napi_gro_flush() call to mimic napi_complete() logics.
Change-Id: Id8c1b9360c380c9631c85f5e048ae2cd2798f65b
CRs-Fixed: 2673959
In FTM mode, we are not voting for any DDR frequency,
which leads to uneven TX/RX duty cycle, since the DDR
frequency will entirely depends on any other subsytem's
vote.
Vote for VERY HIGH BW in FTM mode.
Change-Id: I7f85fb9889d9119c7224c9bcd9688327e78f15ff
CRs-Fixed: 2706143
adapter->vdev should never be referenced directly, and instead
must be accessed only via hdd_objmgr_get_vdev() and
hdd_objmgr_put_vdev() so that proper reference counting is
enforced.
Change-Id: Ib3efc05426105494f13ada7efed6175f88c5d141
CRs-Fixed: 2708758
For adrastea targets, enhanced CFR is not supported. When only
CONFIG_WLAN_CFR_ENABLE is set, some compilation errors are
observed as CONFIG_WLAN_ENH_CFR_ENABLE is not set true.
Fix these compilation errors when only CONFIG_WLAN_CFR_ENABLE
is set for targets which do not support enhanced CFR.
Change-Id: Ifafa3880757c5595e1cb2da45aae1c87d50a7aae
CRs-Fixed: 2706901
Currently in the ref_count mechanism used for sta_info, the driver has
no checks to determine if there are any faulty ref counting instances.
In case multiple ref_put are done for a single take_ref, it can lead to
a memory corruption.
Add a sanity check in hdd_sta_info_put_ref that causes a device assert
in case the put_ref is called on a sta_info with already zero ref_count.
Change-Id: I0b502e1df4c37601b46cc727acc94a72a401e051
CRs-Fixed: 2707614
The wlan_mem_stats node will print the DMA, SKB and heap
memory allocated in the wlan host driver. This is applicable
to perf and defconfig builds.
File path to new node is:
/sys/kernel/wifi/wlan/wlan_mem_stats
Change-Id: Ic05423d362de1ef07a3ecbdd6408a7226e2a3c2f
CRs-Fixed: 2680360
System suspend is occurring a few seconds before idle shutdown while
it was set to deinit state. Add a wakelock and prevent suspend during
idle shutdown.
Change-Id: I976bdece04857045e272c5c3e26db51fb63c51cf
CRs-Fixed: 2706275
Use MIN_6GHZ_CHANNEL to replace CHAN_ENUM_5945, MAX_6GHZ_CHANNEL to
replace CHAN_ENUM_7105, since min/max channel of 6ghz may be changed.
Change-Id: Ibb0aa4182162d956d632b271cbbfef5af07f918c
CRs-Fixed: 2706639
Currently, NAN discovery interface(wifi-aware0) is created if both
host and firmware support NAN separate vdev feature. But NAN
feature capability(gEnableNanSupport) is the master of these
capabilities. Don't create wifi-aware0 if gEnableNanSupport is
disabled.
Also, don't allow NAN iface creation for the kernels less
than 4.14 as NAN interface is allowed by kernel only from 4.14.
Change-Id: Iaf10974c373b2a77d2c24a78540910f78a3dc768
CRs-Fixed: 2706997
Due to recent changes, hal_rx_flow_setup_fse() should receive hal_soc as
argument during rx_flow setup.
Change-Id: Ic39f476b211417469e004d85cd03c6b868d97405
CRs-Fixed: 2706239
In case if AP's country code present as "US 0x4" in beacon report
request, it means AP wants us to use global opclass.
Fix is to allow driver to use global opclass AP's country code
present as "US 0x4" in beacon report.
Change-Id: I3f6c132803dc4c5a85aea95c5fc39ac7be670aee
CRs-fixed: 2706733
Add PLD layer ipci bus apis for soc wake request,
wake release, athdiag read and athdiag write.
Change-Id: I966b4d47b6967615c11420d0b991ac175bf7c276
CRs-fixed: 2702459
Introduce INI "ndi_max_support" to configure max number of ndi
interfaces host supports. Host configures max number of ndi
interfaces support in firmware using WMI_INIT_CMD.
Change-Id: I287b9f96b98103e67cf35d0c02488a28af731044
CRs-Fixed: 2701557
Add pointer sanity check for mac context in wma_send_peer_assoc_req
as cds_get_context may return Null for mac context
Change-Id: I75a54d728f2c276a9aeeb1ee7d8ea46180540ac8
CRs-Fixed: 2706149
Convert the 6GHz capability local struct value to raw 32-bit
value to before configure it to FW.
Change-Id: Ia9f7d7d35b0f481ad9ae7d15eec5ee198158da88
CRs-Fixed: 2696392
Add driver command support to dump all the function call
mapping which is cached in global buffer.
Change-Id: I03b2162ccda171005e6fa8a7bb09cbf9c4819421
CRs-Fixed: 2677976
Add pointer sanity check for mac_phy_cap in wma_update_hw_mode_list
as target_psoc_get_mac_phy_cap may return Null for mac_phy_cap
Change-Id: Id45b77fa4daf3df0680ee247355dbc87e0402dd9
CRs-Fixed: 2706156
Add connect id in the policy manager for the newly designed
connection manager infrastructure.
Change-Id: Ib7bd08e5326ead04da88175636777bf5dd4e255b
CRs-FIxed: 2705700
Check if the soc pointer is not NULL, before we
try to derefernce this pointer.
Change-Id: Ife499e7617365278c4ac8fd41e2ce32d4e19fae9
CRs-Fixed: 2702127
Currently there is no dealloc api for ll_stats request to free
the memory allocated for the ll_stats request's priv structure
because of which memory is not freed from the request manager
infrastructure, instead host frees the memory in request api. with
this mechanism there is a race condition where if timeout occurs then
in the caller api memory is freed for the response list and after
processing the response list if the response callback comes then
memory is allocated and inserted in the response list which will
never be freed as the response list is already processed in the
caller api after the timeout.
Add a dealloc function for ll_stats request to free the memory with
The help of request manager infrastructure.
Change-Id: If91d777901d0c4c598a138b1439de7de024249a4
CRs-Fixed: 2703825
If FISA flow search is failing by HW, but same FISA flow is
already present in host FISA SW table, vdev will not be updated
accordingly, so RX frame might be dropped due to vdev mismatch
when do FISA flush.
update vdev in FISA SW entry correctly.
Change-Id: I0907c6d2d1e25424fbebd6277f326346deba6569
CRs-Fixed: 2704610
SAP tx timeout indication is received when wlan is suspended
causing excessive logging to console and eventually WD
timeout.
Ignore SAP tx timeout indication when wlan is suspended.
Change-Id: Ie09ac187e6d38c12c6c33a8b4ada19c9aabc45f9
CRs-Fixed: 2705201
The driver prints the current RSSI threshold and next RSSI
threshold for LOW RSSI roam trigger. Print these info for
Periodic scan roam trigger also.
Change-Id: I4140cae3631356949c925b8d21c032e6c02d4539
CRs-Fixed: 2694906
IBSS capability information bit is valid only for beacon
and probe response. So, ignore it in association response.
Change-Id: I3495d697ac726f494234900178abb1531e1912cb
CRs-Fixed: 2703576
Introduce INI "ndp_max_sessions" to configure max number of ndp
sessions host supports. Firmware advertises max number of ndp
sessions supported in wmi_service_ready_ext2 event. If the firmware
advertises non-zero value of max ndp sessions then host configures
max ndp sessions support in firmware using WMI_INIT_CMD.
Host uses a minimum of "ndp_max_sessions" value and firmware
advertised max ndp session value to configure max number of ndp
sessions in firmware.
Change-Id: I613815f384f9b0a61711324c85ecfa095d133360
CRs-Fixed: 2673120
DHCP frame usually can not be aggregated, but if they go to FISA
path which will require FISA resource support for them, this looks
is not necessary.
Bypass FISA path for RX DHCP frame.
Change-Id: Ic1eac06abb5790813ee4d17ec1df6b215a1bcdb5
CRs-Fixed: 2691447
hdd_convert_timeout_reason is also used in hdd_connect_done.
Define hdd_convert_timeout_reason when it is used.
Change-Id: Ifa03959969474d9cafb1315d53b83cae21745280
CRs-Fixed: 2703672
While coping version strings in cds_hang_event_notifier_call, specify
exact size of QWLAN_VERSIONSTR/QDF_HANG_EVENT_VERSION to avoid buffer
overflow.
Change-Id: Ie2203600a2c92bb78ba076b609375ca219773b19
CRs-Fixed: 2702069
When gTcpAdvWinScaleEnable is enabled, tcp_adv_win_scale value
changes according to tput threshold. When wifi is disconnected,
tcp_adv_win_scale value is not reset to default value.
Reset the TCP advance window scale value to default when
bus bw timer stops.
Change-Id: I9b0ae2e8db11a626b3bdc4afc6e051af8943baab
CRs-Fixed: 2696481
Update the HDD callback to check for phymode change or
channel change when country code updates and stop/restart
the adapter accordingly. Include cases for STA mode,
SAP mode, P2P-CLI mode, and P2P-GO mode.
Add conditional compilation flag for MCC specific API in
qcacmn.
Change-Id: I88edb401146e3cef48d757393f89fa48cb6ac895
CRs-fixed: 2658294
Check phymode to verify it is allowed for the current country
before starting SAP or connecting STA.
Change-Id: Ica5e70bbd421c4dc18a34545f63e436bc482fc46
CRs-fixed: 2658294
Convert CSR phymode to regulatory phymode and back. Regulatory
phymode enum contains fewer fields than eCsrPhyMode enum so a
conversion API is needed.
Change-Id: I4b962c07a917d19fa4ae51c78befae507dabf80f
CRs-fixed: 2658294
Currently, we register the peer hang notifier when the peer unmap
timer elapses, but do not unregister it. We also pass the peer reference
for which the unmap timeout happened as part of the notifier registry.
Since we do not unregister the notfier, there are chances that we
call the notifier with a stale peer reference during the subsequent
hang event which results in a crash; avoid this by unregistering the
peer hang notifier as part of device recovery.
Change-Id: I36bd8d9c1b4e38e1ba9d8c16b79df7f0cd1c9f82
CRs-Fixed: 2688676
Currently the driver is not synchronized properly between SSR and wifi
ON/OFF. This causes a potential deadlock resulting in a DSC timeout.
To synchronize, add a wait in wlan_hdd_state_ctrl_param_write
which is called during WiFi ON/OFF. This wait will ensure that the
driver recovery is complete before proceeding with ON/OFF.
Change-Id: Ia1c4f8d7076d77c591276ee380b55a747cf606bd
CRs-Fixed: 2701513
Convert the tx complete status or A_STATUS to the correct dp status
before pass to qdf_dp_trace_ptr
Change-Id: I1ad94c8c293c29c9789e6dc761244911a7520707
BTC mode should be set according to BTC chain mode, which can be
updated dynamically during runtime.
Change-Id: Ifc95d3340ab19e217bd55a0ca5ce69988650f9e0
CRs-Fixed: 2666550
Hardware filters are supported for STA and P2P client modes.
But it's configured for NDI mode also currently. Don't configure
hw filters for NDI mode as it's not supported.
Change-Id: Ifc8f213a6279c8eb0ddde60c4f9b3538bc841ffc
CRs-Fixed: 2688396
The current policy table for OFFLOADED_PACKETS is incorrect and does
not match the uptream versions. Hence, rearrange the table contents
with the proper parameters to fix this.
Change-Id: I1e6b0ebc3ef4f622833778e0545d50783d524551
CRs-Fixed: 2701205
This reverts Change-Id: Iaf86c9da2a9946aac09867b5c46dcc79f1b5c37e.
That change fails build for GKI variant.
Change-Id: I6cd7322870023d245fe9d20250ceb0b5d738d214
CRs-Fixed: 2701642
Add support and use IS_ENABLED in code, if CONFIG_IPA3 config as
loadable kernel module.
Change-Id: Iaf86c9da2a9946aac09867b5c46dcc79f1b5c37e
CRs-Fixed: 2701642
Any connection in 11g/a is very latency sensitive and
we need to vote for a higher DDR frequency than in
the other phy modes.
Identify the number of latency sensitive connections
in STA mode and vote for higher DDR frequency for the
latency sensitive cases.
Change-Id: I2ce20b2b40213bde52211eae659c9673c6e0d305
CRs-fixed: 2695045
The hostapd sends the EDCA configuration for tx queue set in the
hostapd.conf config file using nl80211 interface.
Add support to extract the configuratin in the cfg80211 callback
function wlan_hdd_set_txq_params and invoke SME api to send the
parameters to MAC layer.
CRs-Fixed: 2693865
Change-Id: I8acfc03d9a6ad17a1df0c03955cf3b4150a4fbef
The change If6d559a3aa7b8719a515e00e271e313c02f8135f has modified
few attribute types from NLA_UNSPEC to NLA_BINARY. But NLA_BINARY
validates only for max length and doesn't validate min length.
This could cause buffer overread if userspace sends less data as
the driver reads fixed length(e.g. 6 bytes for mac_addr) always.
Use VENDOR_NLA_POLICY_MAC_ADDR(NLA_POLICY_ETH_ADDR) or
NLA_EXACT_LEN instead of NLA_UNSPEC which validates for
exact length.
Change-Id: I92cc29716dff29037d14ffd2e269761149c7f74b
CRs-Fixed: 2700695
Currently in the driver there is a possible race condition between
hdd_open and idle_psoc_timeout wherein stop modules is being done. Both
these operations can potentially occur in parallel.
To synchronize, flush the idle_psoc_work in wlan_hdd_state_ctrl_param_write
which is called during WiFi ON/OFF.
Change-Id: I1d53fa9d53ca31c2c1466f0ee809a07a86a06ee0
CRs-Fixed: 2701512
Add support for OEM_DATA_RESPONSE_EXPECTED. Driver waits for the
response from FW when this attribute is set and forward the blob of
data to supplicant.
Change-Id: I3e51809e4f5736b521c26e37afb02396f9c5ed23
CRs-Fixed: 2694556
Add a new ini to enable/disable the handling of the
latency critical clients (eg: 11g/a) in the bus
bandwidth timer.
Change-Id: I4b8966aa29ffc2ca236098cb83b8db0e160b776b
CRs-Fixed: 2695042
Add QCA vendor subcommands QCA_NL80211_VENDOR_SUBCMD_CONFIG_TSPEC
to add / delete TSPEC in STA mode.
The attributes defined in enum qca_wlan_vendor_attr_config_tspec
are used to encapsulate required information.
Change-Id: I9553fba1189d562f6f0205e86b281172213344ba
CRs-Fixed: 2686250
This reverts Change-Id: Ib3e851c0822a85c4712a1b817cc19dfecf6d0e7a.
First we need to get ABI snapshot/Whitelist updated for the new
kernel API being used in this change and then only we can promote
this change. To unblock promotion, revert this change for now.
Change-Id: I8aae0fe64623034486c9db6275a16654119c06bd
CRs-Fixed: 2673959
This reverts Change-Id: Id4d2eaaa2262d7fe2dd6241ae4581a3d0cb09805.
This change is incorrect because the caller passes in the
bodyptr directly to parameter. The change incorrectly dereferences
the parameter.
Change-Id: Iaaedae1a3498fc1c10024083ee98ce97c3401f82
CRs-fixed: 2701124
Currently if kernel enable CONFIG_IPA3, wlan driver will directly
send IPA enabling flag to firmware, not checking gIPAConfig.
It lead to IPA disabled in driver but enabled in fw, causing fw crash
for some target like Genoa.
Correct logic is to check gIPAConfig before configure firmware.
Change-Id: I6e85c6bf3831029826bf279237eac2cc3a1ff07f
CRs-Fixed: 2698953
Currently there is no vdev->osif_rx result check in fisa path,
so if vdev->osif_rx returns failure, the RX skb may not have been
handled and it may be leaked.
Add vdev->osif_rx failure handling to avoid skb leak.
Change-Id: I6c194c31bbe71cba5c56c2b93f505225de439b72
CRs-Fixed: 2695084
Add calls to disable packet capture events and
delete monitor interface while sta interface is
going down if packet capture mode is enabled.
Change-Id: I4094e072ac723348d4d0d8a4ccefb5bf2b77e6d5
CRs-Fixed: 2647503
In FW CFG_TGT_DEFAULT_MAX_STA_VDEVS considers total no of
STA and P2P-CLI vdevs. Enable CFG_TGT_DEFAULT_MAX_STA_VDEVS
check for P2P-CLI mode.
Change-Id: Ic21cf39628e7ad19102b040ffdf493a14205043a
CRs-Fixed: 2680645
Currently, Rx retry count statistic is not supported by firmware.
So host driver also not updating the corresponding statistic in
peer stats. Datapth is updating this counter using retry bit in the
rx MPDU. Update peer Rx retry count value from data path.
Change-Id: I4fd422faa7a766090991c461cd6fd2cc70d2fcc3
CRs-Fixed: 2691704
NLA_UNSPEC usage is restricted from kernel version 5.4 by adding
a strict check while validating the nla_policy. The advantage
of this is that types not specified in the policy will be
rejected.
Driver can give exception to NLA_UNSPEC by setting
strict_start_type in the policy of a vendor command to NLA_U8
or some greater value. But it's better to set the type to a
valid type so that kernel can validate.
So, use NLA_BINARY with valid length instead of NLA_UNSPEC.
Change-Id: If6d559a3aa7b8719a515e00e271e313c02f8135f
CRs-Fixed: 2692293
In case if the EXTERNAL_AUTH_SUPPORT is present natively
in kernel, then the backport flag CFG80211_EXTERNAL_AUTH_SUPPORT
will not be present.
Currently host checks for defined(CFG80211_EXTERNAL_AUTH_SUPPORT)
flag to register ops for external_auth. This results in external
auth fail in the above case.
In the driver all instances of
“defined(CFG80211_EXTERNAL_AUTH_SUPPORT)” should be paired with
|| (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0))
where 4.17.0 is the kernel version where the external auth support
gets added to the upstream kernel.
Change-Id: I67b687b37ab60b581e97ea81243c0d30bbb17acd
CRs-Fixed: 2692697
Add the sysfs entry for set_he_bss_clr.
Previously these commands would be queried via iwpriv
--> iwpriv wlan0 set_he_bss_clr [value]
it is now changed to support via sysfs:
--> echo [value] > /sys/class/net/wlanxx/he_bss_color
Change-Id: I4700414469be018de9758277c4e095e64cabb376
CRs-Fixed: 2692916
Currently when rrm measurement is completed for a particular
index, the rrm_cleanup() is called which clears the measurement
data for all the index. This can cause failure with multiple
measurement request where on completion of the first request,
second request data structure will also be made null.
Pass the measurement index to rrm_cleanup() and clear only
that index data.
Change-Id: Ib712c2da3ddfea374d60b250dd474b08093b24c7
CRs-Fixed: 2695836