Add PLD functions for Runtime suspend and resume callbacks,
and enable Runtime PM support for Moselle.
Change-Id: Ie990334c0c60892ec0f0ad6fac3253b3d326a919
CRs-Fixed: 2720832
In the noisy environment observation is, host sends SAE commit req to
AP and gets SAE commit response from AP, then host sends SAE confirm
req to AP but due to noisy environment AP miss the ack for SAE commit
response and keep sending SAE commit response even host send SAE
confirm. As host cleans SAE auth retry frames on reception of SAE auth
rx from AP, host cleanups SAE auth confirm req and disable SAE auth
retry timer. This leads to SAE auth failure. To avoid this host matches
auth frame's "sae algo sequence number" with last sent auth frame's "sae
algo sequence number", if it matches then only free sae auth retry frame
and deactivate sae auth retry timer.
Change-Id: Ia9ae2e5d82c696efdc0aaf4e04b6760b9829c510
CRs-Fixed: 2720436
Add check to verify channel bonding mode before setting 40MHz
capability in HE 2.4GHz.
Change-Id: I22ca48c984cc833835d22d8b7ecfe8a3e194d406
CRs-Fixed: 2723207
Update proper authmode in crypto as for WPA/WPA2/WPA3 also
the auth type from connect request can be OPEN.
So check the wpa_ver and other params from the connect
request to determine proper authmode. Also set authmode and
cipher for WAPI mode.
Change-Id: If1b1cb403afdd42277b9cab2f3c931848f49ab25
CRs-Fixed: 2725312
For SAE auth frames, host configures auth retry timer to 1 second,
if host doesn't get ack for previously sent SAE auth frame then host
retransmit queued SAE auth frame once the periodic auth timer
triggers.
Due to noisy environment host may miss the SAE auth response, in this
case host needs to send queued SAE auth frame. Hence don't reset auth
retry timer on SAE auth TX ack reception.
Change-Id: I96456ce5cbe5fb2acc7005ff1d19c6e9eecc1764
CRs-Fixed: 2725359
Currently once the gEnableSelfRecovery is disabled it is decided to panic
once the firmware complete firmware dump is collected, this has a
side-effect when the normal SSR is triggered for testing purposes.
This reverts commit Ia184a265d0f76e43d1d5edc4bcc0849a05726dac.
Change-Id: Icec14a2afb902a275ffe0bf202ec75d8e58d9f58
CRs-Fixed: 2725430
Add the vendor command attribute to upgrade the QoS
for all UDP packets having priority less than the
current setting.
Change-Id: I1269018396e163c1a2b02a7ab1cfb3fabfd0af94
CRs-Fixed: 2724041
Provide the support to upgrade the priority of
UDP packets based on user setting. The user will
set a particular QoS and for any UDP packets, which
has priority lesser than the current setting, the
QoS will be upgrade to the user set value.
The default value for this setting will be Best Effort.
Change-Id: I64207797e9c000d1d6fb757e22b02ee4f96a36f1
CRs-Fixed: 2724041
If the ACS SCAN failed, the API sap_select_default_oper_chan
will select a default channel from ACS scan channel list.
At present sap_select_default_oper_chan doesn't validate the
channel with regulatory. It may select an invalid channel and
report to hostapd. This will happen when driver is doing ACS
scan, the upper layer set different country code and result to
some channels in the acs freq_list become invalid.
Fix by checking the channel supported by regulatory before select
it.
Change-Id: I438b2947ba1fd5388a2472d5122e55edc89229db
CRs-Fixed: 2723689
For STA in 2.4Ghz band, host adds self HT supported channel width
capability in HT capability field of assoc request.
For WFA certification, expectation is to add self HT supported chan
width capability in HT capability field of assoc request.
Change-Id: I630423de03636e6c4ca07638dce6966c3ca381f9
CRs-Fixed: 2720908
TDLS Sta not initiating Add BA request or responding to Add BA
request from peer. For TDLS connection, legacy rate is
set to zero even though the peer capabilities supports OFDM rates.
The set of available rates from supplicant is compared with config
and rates is populated, which causes the issue.
Fix is to apply the correct rates provided from supplicant
change-ID: I66ce1b0ee4e5f96f9bb755a40ff7d8c46176087c
CRs-Fixed: 2719391
adapter->vdev should never be referenced directly,
Using hdd_objmgr_get_vdev() and hdd_objmgr_put_vdev()
so that proper reference counting is enforced.
Change-Id: I3b9f82631659af8d27377308a14a6f1a83fc3a6d
CRs-Fixed: 2715220
Currently for monitor mode, PS params are disabled during the start
modules and restored at the beginning of stop modules. This will
cause an issue when hdd_wlan_unregister_pm_qos_notifier is called
from stop modules with restored configuration.
To resolve this, restore ps configuration at the end of stop modules.
Change-Id: Ib9db4adf489a8e92cd95cdc547e3c91cc953f1b5
CRs-Fixed: 2720016
In STA+SAP case if AP1 and STA1 have same MAC, and DUT's STA is
connected to AP1. Now when the STA1 tries to connect with DUT's SAP
peer with same mac is already present the add peer fails, but during
delete peer the DUT STA peer (AP1) is deleted instead of STA1 of
DUT's SAP. This leads to SAP deleting peer of a STA interface and
thus the SAP peer count is out of sync.
Fix is to reject any association req from STA1 if AP1 is connected
to DUT's STA. Also ad vdev check while deleting the peer in wma.
Change-Id: I448226497c7aa3c11cb9097be9c7d57eb4239900
CRs-Fixed: 2723814
Currently, driver sends NAN enable/disable request to firmware
and waits for the response. NAN state is cleaned up when NAN
disable indication is received. But if firmware doesn't respond to
NAN enable or disable request, a timeout happens and NAN state is
not cleaned up.
Cleanup the NAN state upon timeout for NAN enable/disable request.
Change-Id: Iadfff2b4d010407f04b529ff81b1ce1f11064695
CRs-Fixed: 2723094
Add PLD_HAS_DRV_SUPPORT to platform capability to indicate if PCIe
DRV is supported or not.
Change-Id: I25dcba18b795988c4cdecd3f0c355de6786e0f3f
CRs-fixed: 2722430
print “tx_complete" values in lim_auth_tx_complete_cnf and
lim_assoc_tx_complete_cnf along with success/fail as well
Change-Id: I0fe60da725df0b90d2e0957877c53bc793826dc6
CRs-Fixed: 2722114
Current flow learning algorithm invalidates the cache for every time
flow is learnt. This results in multiple invalidation when there
multiple flows in quick succession of single NAPI soft IRQ processing.
FW has restriction on number simultaneous message processing.
Delay cache invalidation message so that single message serves multiple
flow learning.
Change-Id: Iee8cb5f12546890f2da32195dc3c4878e7a39ffd
CRs-Fixed: 2718968
Some IOT APs set supported rates to zero in probe response. Host uses
probe response/beacon to update scan cache. Host uses supported rates
from scan cache to update in assoc request.
As the supported rates in probe response are zeros, host doesn't
add supported rate IE in assoc request which leads to association
failure. Hence add BSS basic rates in assoc request if supported
rates in scan cache is not present.
Change-Id: Ie2d75a980f5aede0b7985ddf385516a6b15c7560
CRs-Fixed: 2706797
Recent changes to hdd_regulatory_dyn_cbk broke WWAN n79 and
WIFI 5 GHz co-existence, failure:
1. AGO won't switch channel to 2G even 5G channel disabled.
2. SAP can switch to 2G if 5G disabled, but won't restore back
to 5G when 5G re-enable.
Update callback to call the proper function so that band for
SAP or P2P GO is updated accordingly.
Change-Id: I4087466c9a05250921159d5daff077a8ea7ea495
CRs-fixed: 2718339
For WFA certification testing, host updates station's max nss support
value in the omn ie of association request.
Change-Id: I0b001e0a0953aff0ff8ba614fab3e67c23eb2cfa
CRs-Fixed: 2690460
Update opclass, randomizationInterval and DialogToken in
pilot frame as a response of beacon report request.
Change-Id: Ibf6a6b4d5dea1c87826d7755778c8f559a1a0fa3
Crs-Fixed: 2717259
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