Presently in the driver, the NSS used for reporting stats to the upper
layer is fetched from the VDEV generic NSS. This NSS is not updated
dynamically with the set NSS command. As a result, in the case the
command is given, the NSS reported to the userspace is not proper.
To mitigate this, instead of fetching the generic NSS, fetch the dynamic
NSS from the mlme.
Change-Id: I9fdbc0625ebe8343a7bf750829db028f4ddd86d0
CRs-Fixed: 2551187
gActionOUIConnect1x1 is used to specify action OUIs for 1x1
connection.
Some Access Points are unable to handle SMPS and OMN frames and shows
abnormal behaviour when STA is switching between 2x2 to 1x1 and
vice-versa. To avoid this, restrict connection in 1x1 mode with such APs.
Here the scenario is DUT STA1 connects in 2x2 mode to AP1 in 5G mode then
later on DUT another STA2 iface connects to AP2 in 2G mode. DUT sends OMN
frame to AP1 to inform that it is going to switch to 1x1 mode. AP1 ack
this frame but doesn't change its Tx rates and continues to use 2x2 rates
which DUT cannot ACK. This causes low throughput issue where AP1 Tx rate
falls to 6Mbps due to missing acks.
Hence, 5G band capability bit in "gActionOUIConnect1x1" is set to make
connections in 1x1 with such AP.
Presently, 5G band capability bit is not checked if 2G band capability bit
is not set or 2G band is not enabled. Hence, Vendor AP capability check for
2G and 5G Band is refactored.
Change-Id: Ic6b682451405a2373000e4c64656f50c2fab0ee6
CRs-Fixed: 2558293
1. Zero local variable "he_ops" before intersect with user IE.
2. If csr_check_and_validate_6g_ap fails, use "break" to
free memory in end of function csr_send_join_req_msg.
3. Remove co_located_bss checking for 6GHz AP. co_located_bss
can be valid for 6GHz AP.
Change-Id: I4b521eead6e09db860b5e21c21882f14a1be8576
CRs-Fixed: 2563923
hdd_abort_system_suspend() function currently uses pm_wakeup_hard_event(),
which does not work because device is not initialized. Switch to using
pm_system_wakeup() instead by calling qdf_pm_system_wakeup() wrapper.
Change-Id: Ib89eca5014729f6a2103e14c6f46540d1406a5a0
CRs-Fixed: 2566770
Correct the 6G operation info field values in HE operation IE.
And replace the legacy api with new 6G support api to calculate
channel center frequencies.
Change-Id: Icafdd72b386137a6a0c8d0de233d4fbdbd121610
CRs-Fixed: 2557233
Scenario:-
Two ACS request come in parallel, for two SAP startup
The driver started with one ACS, and scheduled the
other after the first one is complete,driver sets
a bit in flag of adapter that is
test_bit(ACS_PENDING, &adapter->event_flags)
and then schedule work when the ACS channel is
selected in the API wlan_hdd_cfg80211_acs_ch_select_evt.
After this driver got delete interface for the second
interface and as part of it in hdd stop adapter
driver checks that if the flag of pending ACS is set,
flush the pending ACS work, and reset the flag.
But the work is yet to be initialized, which would be done
as part of wlan_hdd_cfg80211_acs_ch_select_evt
and it is not yet completed as the first ACS is busy with the
ACS scan, and the scan callback and channel selection logic
is still yet to be done.
Fix is to initialize the work when the driver detects that
first ACS is in progress, and it needs to wait for the
first one to complete.
Change-Id: If706528f1afd6075144bff40611e82742df76368
CRs-Fixed: 2559703
Invocation of wrong api hdd_is_valid_mac_address() makes hdd_save_peer()
always return false due to which hdd_roam_register_sta() is skipped in
hdd_ndp_new_peer_handler() and can cause ping failure.
To fix this, use api qdf_is_macaddr_zero() instead of
hdd_is_valid_mac_address() in hdd_save_peer() to get the unused
entry in NDP peer mac table.
Change-Id: Id9aa6bcebb7fd168ee281065ebffe7227f9bc10f
CRs-Fixed: 2554502
Presently vdev delete is sent via serialization, which
needs a vdev reference. With the new FR to send the
vdev delete on the physical destroy in object manager
vdev delete cannot be sent via serialization.
Hence, disable the serialization for the vdev and
donot send the vdev delete via serialization.
Change-Id: I3afa34880ddaab68850ed235ec1451370d82e7dd
CRs-Fixed: 2566120
Remove legacy usage of channels in WMA layer and
use frequencies instead to incorporate 6ghz
frequencies as well.
Change-Id: Iba4a9ea723d5c03a4deeaffc5fbdf628f435eb67
CRs-Fixed: 2563924
The driver does not check the device DBS capability
and the DBS ini compatibility( ch select policy)
If the DBS ini channel_select_logic_conc is disabled
and HW mandates DBS capability then overide the ini
to always keep it enable.
Change-Id: I629fd8661f70b64808a55c4c9bdafa9608787b09
CRs-Fixed: 2551648
The driver does not check the device DBS capability
and the DBS ini compatibility.
If the DBS ini gDualMacFeatureDisable is disabled
and HW mandates DBS capability then overide the ini
to always keep it enable.
Change-Id: I2b31453f9c8a04cef7f943b30d3c28f844c276b5
CRs-Fixed: 2551644
As a part of 6GHz support, add support to parse channel frequency
attribute: QCA_WLAN_VENDOR_ATTR_SAP_CONFIG_FREQUENCY (in MHz)
in QCA_NL80211_VENDOR_SUBCMD_SET_SAP_CONFIG command data.
Change-Id: I8e9956ef0db1a511f4252d6fb1f03201df54c3c1
CRs-Fixed: 2534010
As a part of 6GHz support, add support to parse channel frequency
attribute: QCA_WLAN_VENDOR_ATTR_ACS_FREQUENCY_HINT (in MHz)
in QCA_NL80211_VENDOR_SUBCMD_ACS_POLICY command data.
Change-Id: Ic7bee5fe1123b82607e375c71a21b9744d67ea17
CRs-Fixed: 2533998
As a part of 6GHz support, add support to parse and send channel
frequency (in MHz) in QCA_NL80211_VENDOR_SUBCMD_EXTERNAL_ACS
command/event data.
Change-Id: I87879b4f8dd6a5c4ded2e89c527ba91432c9c48a
CRs-Fixed: 2533732
Add frequency to tSirChannelInfo, not replace because channelNum has
specail meaning.
Replace channelNumber of struct report_channel_list.
Use channel frequency in functions which process measurement request
Change-Id: I615b1f61c2810474dac6daf1eeb1ce19c2b1da33
CRs-Fixed: 2559283
Modify the following API's code and parameters to make
sure it is using frequency instead of channel:
csr_roam_select_bss
Change-Id: I9c68e173af01d7cb29672179a7bbffb354134f87
CRs-Fixed: 2564011
Open/close session callbacks are common for all the device modes
supported, so register once during the start_modules.
Change-Id: Ia94857ce4cc608be30e9974ddde8a6261d45f6e3
CRs-Fixed: 2555919
Modify the following API's code and parameter to make
sure it is using frequency instead of channel:
wlan_hdd_validate_and_get_pre_cac_ch
Change-Id: I55ccc3fefb829bcc95e434bdc56fe630fa837bd0
CRs-Fixed: 2561857
Modify the following API's code and parameters to make
sure it is using frequency instead of channel:
csr_roam_call_callback
Change-Id: I7dffcae95d8db53dd1d2a05745861681c4b35e13
CRs-Fixed: 2564024
In case of lowi, Supported bands are populated from
psoc->soc_nif.user_config.band_capability which is same as
that of ini file and not the intersected band support. In
function wifi_pos_populate_caps caps->supported_bands is
populated from psoc->soc_nif.user_config.band_capability
which may not be supported by firmware.
Fix is to update psoc->soc_nif.user_config.band_capability
with the intersected immediately after fetching intersected
band support to avoid incompatibilty.
Change-Id: I4771e3aff227d29916dafd70726daa9f0c87fef8
CRs-Fixed: 2538590
Currently there is no check for the monitor mode
interface in sched scan start/stop commands.
Add a check for monitor mode in sched scan start/stop
commands and do not allow sched scan stop in case of
monitor mode.
Change-Id: I316c3156c25a9b6e9c3d35aaca174a4f1f03f8f9
CRs-fixed: 2530755
In 11ax mode the extended rate IEs are not sent to firmware as part
of peer assoc. So if 11ax AP Doesn't advertise the OFDM rates in 2.4ghz
rates IE while include them in extended rate IE, the firmware doesn't
have the OFDM rates.
Thus once the AP switch channel to 5Ghz, as OFDM rates are not set the
Firmware asserts.
To fix this in 11ax send extended rate as well to firmware in peer assoc.
Change-Id: I059a35828d214bc843ad8ebab720fd695bc7f511
CRs-Fixed: 2561566
The current HDD callback in hdd_rx_flush_packet_cbk() does not validate
the adapter context properly. Instead of verifying the adapter magic,
verify the adapter itself is still valid through the adapter list.
Create a new function hdd_get_adapter_by_reference() to verify the
adapter reference.
Change-Id: I468bd55b2318635ad89087e6c6ad6097df68d405
CRs-Fixed: 2563654
wma_print_wow_stats does not do null validation for pointer vdev
returned from call to function wlan_objmgr_get_vdev_by_id_from_psoc
which can lead to null pointer derefrence.
Add NULL pointer check for vdev in wma_print_wow_stats.
Change-Id: I4fae47b303436bf9f2a4768995cea7640bc6feab
CRs-Fixed: 2564073
As a part of 6GHz support, add support to parse and send channel
frequency (in MHz) for QCA_NL80211_VENDOR_SUBCMD_DO_ACS command/event.
Change-Id: I9475f9392c6a15b6dc470fbaa2f25c1f4baf0be5
CRs-Fixed: 2533689
Modify the following API's code and parameters to make
sure it is using frequency instead of channel:
csr_roam_set_bss_config_cfg
Change-Id: I92ffda4ab9fa66340aa1cd75f3fcbb3b3e36b27d
CRs-Fixed: 2563211
Change vht_seg0_center_ch and vht_seg1_center_ch in acs_cfg
struct to vht_seg0_center_ch_freq, vht_seg1_center_ch_freq
respectively.
Change-Id: Ie3378376e6f31c239157c8eaaf3ceb22d2e35073
CRs-Fixed: 2564065
Change acs->start_ch and acs->end_ch to acs->start_ch_freq
and acs->end_ch_freq respectively.
Change-Id: I105cd618970c739340df29d58f635d01a68754d2
CRs-Fixed: 2564018
Acs changes for 6ghz to change chan to frequency
in the spectral params structure.
Change-Id: Iffd348ac5c2457b313b702a92b340a258992e764
CRs-Fixed: 2564043
Convert primary, secondary channel for acs cfg to freq as part
of ACS 6Ghz changes.
Change-Id: I4f6220b39dae91df070b0764fa8b048cdc6ad00f
CRs-Fixed: 2555988
Reset adapter done for P2P GO as part of shutdown does
not invoke hdd_sap_indicate_disconnect_for_sta where in
cleanup is done and ap_active flag is reset to false.
After re init, if sta connection happens and driver
unload is triggered, bus_bw timer is not stopped as
part of station stop_adapter since ap_active flag is not
reset to false.
Fix is to invoke hdd_sap_indicate_disconnect_for_sta in
case of P2P GO cleanup during shutdown.
Change-Id: Ia832ccf4311bfdf202fcf01d3ab46023c0f3451f
CRs-Fixed: 2562839
5G HE80 mode tput will fail due to
"Change-Id: I8e2833a48ca5de0301634a88eb1a66002b4c9c20".
Fix is to set htMaxRxAMpduFactor with maxAMPDULenExp from
vht capability When STA capability is vht capability.
Change-Id: I6b3c2de0c772688e2b736a07528665e1f23eed94
CRs-Fixed: 2553371
Modify the following 3 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
sme_get_reg_info
wlan_hdd_get_channel_info
hdd_update_channel_bw_info
Change-Id: I87ad6fb9cd9fcd7fe4e41e62a32e4954e93f8ba1
CRs-Fixed: 2554710
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged l_flowctl_ops
- register_tx_flow_control
- set_vdev_tx_desc_limit
- set_vdev_os_queue_status
- deregister_tx_flow_control_cb
- flow_control_cb
- get_tx_resource
- ll_set_tx_pause_q_depth
- vdev_flush
- vdev_pause
- vdev_unpause
CRs-Fixed: 2539748
Change-Id: I8ad4a20914c654b8e8aaf629dda7f673fdb110e4
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged mob_stats_ops
- clear_stats
CRs-Fixed: 2539747
Change-Id: I5ee060b62d15380df4b8d15bb5709d700902aafd
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged ocb_ops
- set_ocb_chan_info
- get_ocb_chan_info
CRs-Fixed: 2539745
Change-Id: I7de53c48ec6b7f0c09be7c9cf642d8cf4f8eae78
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged throttle_ops
- throttle_init_period
- throttle_set_level
CRs-Fixed: 2539744
Change-Id: I0e1339ead92d66463d3b58ed9268c7194fd2bd27
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged delay_ops
- tx_delay
- tx_delay_hist
- tx_packet_count
- tx_set_compute_interval
CRs-Fixed: 2539742
Change-Id: I201d343f4ced3b861a65ddf78e10e66f786e5e91
Currently the cdp apis are given pdev/vdev/peer
handle as its arguments, which is directly
accessed in those APIs. This can cause a
race-condition in access of the respective
handles if it has been deleted in parallel.
Hence as a part of cdp convergence, pass only
the pdev/vdev id or peer mac address, which will be
used to get the respective handles, and hence
avoiding the unwanted access of the handles if
it has been deleted.
Converged flowctl_ops
- flow_pool_map_handler
- flow_pool_unmap_handler
- dump_flow_pool_info
- tx_desc_thresh_reached
CRs-Fixed: 2539738
Change-Id: I9b11e66d8c2644f16e0f2464c323798a4cba007a
After roam synch indication is received, the driver compares the
SSID of the current AP and SSID of the roamed AP. If there is a
mismatch, driver issues disassociate to current connected AP.
This causes data path queues to be stopped and M2 to the roamed
AP from userspace will fail. The SSID of the current AP is
parsed from the beacon IEs stored in the connected bss
description. In hidden ssid case the SSID IE has 0 length
and the host receives unicast probe with SSID of the
AP in the roam synch indication. So SSID mismatch happens
and validation fails.
Check if the current SSID in the bss description is NULL.
If its NULL, get the SSID from the connected profile in csr
session.
Change-Id: I30c41b821c0fc506d763eb33f8bb706dd26b405a
CRs-Fixed: 2544915
Currently the command to get nss checks the max capability
of enable 2x2, and if the capability is 1, and the
hw mode is currently DBS, it lowers the nss capability
to 1 which is expected in helium, but not in hastings.
Fix is to check whether the device supports DBS 2x2
capability and then only downgrade the value of nss.
Change-Id: I18acef455c0790862ba786f87af776b65646aca6
CRs-Fixed: 2557587
The existing API/macro hdd_for_each_adapter() iterates over the hdd
adapter list with the iterator pointing to each adapter. This iteration
is not safe when seen with respect to unregistration of netdev going in
parallel in other thread. In case the adapter is removed, the iteration
will result in NULL pointer dereference.
An example of this issue is seen when the following happens in parallel.
1. del_virtual_interface -> hdd_remove_adapter -> removes node
2. hdd_indicate_mgmt_frames -> hdd_for_each_adapter iteration
To make the iteration delete safe, redirect the fetching of the adapter
through objmgr. This reduces the possibility of race window by a large
margin. In this case, even if the adapter is freed as a part of
unregister_netdevice, the reference held ensures that we block the
unregister until the work is done in the current thread.
Change-Id: Ic49aa22a8eef68dc1977fb73f2c1fd920bfeb7a1
CRs-Fixed: 2557890
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_roam_get_phy_mode_band_for_bss
Change-Id: I98be07f9bcca3b85fd1dedbc532fc9810a8d5e4d
CRs-Fixed: 2560010
Currently the FW expects the flag of
scan chan cmd to be set if the max BW
is filled for all the channels, which
is not set by driver.
Fix is to set the flag's 2 bit to allow
FW to use the max chanel BW.
Change-Id: I6240b8ae2f0c7389c43dd310d894a35411503d6e
CRs-Fixed: 2550431
Use channel frequency in API sme_get_cfg_valid_channels(), and modify
all places which call this API.
Change-Id: Iab15d03b6e9070c68711f06ec7300bb29d986185
CRs-Fixed: 2559274
sme_session_params has duplicate information which can be retrived
from the vdev object directly, hence remove the duplicate values
and get information directly from the vdev.
Change-Id: I151dbefcfedc20673fbf072b9c308dc9a6243bb1
CRs-Fixed: 2555909
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_roam_chk_lnk_set_ctx_rsp
Change-Id: Ia96b78406fc09d0ee4383a446bdd5e09d8f7f12c
CRs-Fixed: 2559993
In DBS scenario(SAP + STA) when all SPA clients disconnect, while STA is
still connected, IPA pipes are disabled on the lithium target. At this
time, its possible that some packets TX from IPA over WLAN are still
pending. If these completions come after IPA pipes are disabled, it can
lead to a NOC error, since the GSI doorbell register for WBM2SW2 ring
may be clock gated (after IPA pipes are disabled).
To avoid this situation, wait for some time before disabling IPA pipes.
IPA pipes are disabled after a timeout, when system suspend call tries
to suspend the bus. A driver unload or a softap tear-down will also
disable the pipes.
Change-Id: I542049fa19d0dcf5c31d9b8a2d836388847dd6c1
CRs-Fixed: 2553670
Presently as part of the vdev creation the self peer for the vdev
is created in the object manager and in the firmware. The self
peer creation in the object manager needs the vdev to be in the
created state. As part of new changes to send the vdev create to
firmware as part of the vdev creation notification there will be
failure in creating in the self peer.
Hence, drive the self peer creation from the SME layer which will
create the vdev.
Change-Id: I0875f4ec5bd96438c0f21056e1d6920d3be2a177
CRs-Fixed: 2555868
The datapath vdev handle is not to be used outside
datapath layer. So the cdp api for getting txrx stats
will pass vdev_id instead of the vdev handle.
Pass vdev id instead of vdev handle for the cdp api
used to get txrx stats.
CRs-Fixed: 2560363
Change-Id: I761966c2a7c7145e511b679556477beea74eda06
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_is_valid_channel
Change-Id: Ie0c912459daf8bcd907b27a288ad82edd18c22f1
CRs-Fixed: 2554177
The mechanism of overriding ARP frames with AC will not work since
firmware always defaults to BE. Since this overriding is not going to
be supported, remove the arp_ac_category INI and all areas that use it.
Change-Id: I8bff251ded5842f3d0c95bb916eb98a051696ae0
CRs-Fixed: 2555459
Modify the following API' code and parameters to make
sure it is using frequency instead of channel:
csr_add_to_occupied_channels
Change-Id: I002b4d4fe08ee14c8daa3ed113a030d5ab0f5557
CRs-Fixed: 2554988
1) Change hdd_parse_plm_cmd's code to populate frequency
list instead of channel ID list into struct
plm_req_params.
2) Use frequencies instead of channel IDs in the following
APIs' parameter/code:
sme_set_plm_request
csr_is_supported_channel
3) Stop populating channel freq list in function
wma_plm_start, as the frequency list will be included
in struct plm_req_params automatically.
Change-Id: I6704752317248ac4cfe800629d777f4a127e7be7
CRs-Fixed: 2560088
1) Change csr_get_cfg_valid_channels's code to make it
use channel frequencies directly to calculate a
valid channel list.
2) Add kernel-doc for csr_get_cfg_valid_channels.
3) Remove the definition, declaration and usage of
csr_get_cfg_valid_freq as csr_get_cfg_valid_channels
does exactly the same job.
Change-Id: I6745cb2220bf9387c64ac8c271297cb89f821ab3
CRs-Fixed: 2560091
In non concurrency scenario with TDLS Offchan link, FW is sending
two pauses namely PAUSE_TYPE_CHOP and PAUSE_TYPE_CHOP_TDLS_OFFCHAN
back to back when DUT dwells between TDLS Off channel and AP channel
respectively. HOST handles these events as vdev based event instead
of peer based event and remove all the tx queues from scheduler for
all the peer irrespective of the pause type. This will lead to data
stall in TDLS offchan scenarios, as at any point of time, host will
be receiving one of the two pauses and keep its peer queues out of
scheduler.
Changes are done to decouple the handling of pause/unpause events
for TDLS peers with Offchan enabled from vdev based pause/unpause.
TDLS peers will be paused/unpaused based on PAUSE_TYPE_CHOP_TDLS_OFFCHAN
pause type. Other pause/unpause events will be handled as usual.
Change-Id: Iccb46fd6d121d5df6d53633c9978ddc8e02f588f
CRs-Fixed: 2558612
On detecting RADAR, if SAP / GO is operating on DFS channel, host
driver updates Beacon / Probe response template with CSA / ECSA IE
to firmware.
Once the count in CSA IE is reached to 0, host should remove these
IEs from both Beacon / Probe response template and send it to FW.
But with INI gDisableDFSChSwitch=1, After detecting RADAR, host
driver updates the Beacon and Probe response template with (E)CSA
IEs but doesn't remove these after count reaches to 0.
Updated the code to remove these IEs when INI gDisableDFSChSwitch
is set.
Change-Id: I91ea557b23a9bbd01dbad32a21ea4a21d43dc8fe
CRs-Fixed: 2552192
Change the log level to debug for HE operation IE information and
check for 6G session to log 6G operation IE information.
Change-Id: I9bcad23022253438381a68fe37f68d525d265035
CRs-Fixed: 2552012
Modify the following API's code and parameters to make
sure it is using frequency instead of channel ID:
sme_get_connected_roaming_vdev_band
Change enum band_info band field in struct set_pcl_req
to uint32_t band_mask
Change-Id: I8ad6fc2676c2306043aa9415eefb2b89d8c49a4d
CRs-Fixed: 2555041
As FW required, send WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID when there
is no beaconing session in DFS channel for FW which supports dfs offload.
Change-Id: Ib3c24758b81d6218d2504729d44cdbfb122933ee
CRs-Fixed: 2544846
Motion detection baselining can be started during Motion detection
phase which results in false motion detection
Do not send baselining start/stop during Motion detection phase,
to prevent false motion detection
CRs-Fixed: 2556575
Change-Id: I20de48b3d09cf8adec3a3a2d9585ad3754f12a9e
In sch_set_fixed_beacon_fields driver check if the additional IE
length + tDot11fBeacon2 length is less than the max beacon size
before appending the additional IE. But total beacon size also include
tDot11fBeacon1 and TIM IE. Thus additional IE may lead to beacon len
greater than SIR_MAX_BEACON_SIZE.
So consider tDot11fBeacon1 and TIM IE length as well, while checking
if additional IE can be appended.
Change-Id: I2e659e4f9eab4b558ecdb3daa076a5cfb0f3d7f3
CRs-Fixed: 2558911
Remove wlan_reg_freq_to_chan() reference in
function lim_send_ht40_obss_scanind()
Change-Id: I776500a9f127b0837f9c1eef65b381cd89845622
CRs-Fixed: 2556403
Currently, RSO STOP is going through CSR to WMA via LIM but VDEV_SET_PARAM
is going directly CSR to WMA. This results VDEV_SET_PARAM got processed
first and host sends VDEV_SET_PARAM (disable roaming) before
11K_OFFLOAD_REPORT to fw. If FW try to disable roaming without disabling
11k offload, leads to assert in fw.
In order to avoid asset in fw, host should send RSO cmd command before
disabling roaming via VDEV_SET_PARAM cmd.
Fix is, like RSO STOP, send VDEV_SET_PARAM from CSR to WMA via LIM.
Change-Id: Idbb602b717f46f88426ef36a738efd456ac7af8b
CRs-Fixed: 2554449
Make tx resource hi/low threshold configurable through
config files and update hi threashold from 7.5% to 8%.
Change-Id: I2e52b7910caedf6e0af24242b79e1e9d42c6b85b
CRs-Fixed: 2548100
Do not start motion detection if baselining is not done, or motion
detection config values are not available
CRs-Fixed: 2547648
Change-Id: I23a02dbd21e2b673e625938a35003f3730135327
Modify the following API' code and parameters to make
sure it is using frequency instead of channel:
csr_neighbor_roam_handoff_req_hdlr
Change-Id: I0af2bc8b3d59a6ca1bff83eff05364f9ac5b10db
CRs-Fixed: 2554953
In Genoa, FW thermal throttling feature do not use cmd
set_thermal_mgmt
Do not send this cmd via iwpriv cmd - set_thermal_cfg
CRs-Fixed: 2555975
Change-Id: Ib8f430b230568627faecdf3da683a76786d7c8a1
Currently MCL and WIN both have separate queue.h
files with the same declarations and definitions.
As part of cleanup single queue.h is created in cmn code,
use this newly created queue.h file instead of MCL
specific queue.h file.
Change-Id: I91619e5fff2040cb588cd0413cb42d5d7469f41f
CRs-fixed: 2505800
Increase value of AST skid limit for QCN7605 to avoid
peer create failure in FW in case of AST hash collision.
Change-Id: If931229d3b1458556a6e5c1023fb646b7274bedd
CRs-Fixed: 2517716
Presently, in hdd_reset_all_adapters, the removal of the sta_info
structures via hdd_deregister_sta happens inside a loop that is not safe
for removal. This can cause various potential invalid memory access from
use-after-free to null-dereference.
To rectify this, use the delete safe API to loop over the sta info
entries.
Change-Id: I3d5526af8d8f819874f6bcffabf27ceb74f6f32a
CRs-Fixed: 2557364
As part of Ie9ffc701d93ed1c050375dd56151b7a0da69cdce the STA mode
channel change was added in disconnected state for spectral scan
test at CV2X platform.
Now with iwpriv wlan0 setMonChan on STA mode, a monitor mode
pe_session is created in PE/LIM which take ref count with
WLAN_LEGACY_MAC_ID. As the interface is STA type this session
is not deleted when vdev is deleted. This lead to vdev ref leak.
This code is broken and is no longer in use and cause vdev
ref leak when executed. Thus revert
Ie9ffc701d93ed1c050375dd56151b7a0da69cdce.
Also move the lim session create to hdd_set_mon_rx_cb during
vdev create, as it is deleted during vdev delete.
Change-Id: Ib60aa2bd2746a8cd17f20efa7506c18784a42630
CRs-Fixed: 2557160
In function hdd_association_completion_handler, there are missing NULL
checks for couple of heap allocated variables. This can lead to
potential NULL pointer dereference.
Add NULL pointer sanity check.
Change-Id: I4343833b9e12da0012cfbff006bd8891e9bae025
CRs-Fixed: 2556755
From android Q, it uses a random MAC to connect to different
SSIDs which causes the interface down/up, the vdev will be
deleted and the latency level info is lost in firmware.
To fix this, save the latency level and reconfig it to fw
after vdev creates.
Change-Id: Ifac93fb869553d0f9eb553d5c41da43c8b014ad8
CRs-Fixed: 2554736
Modify the following 2 APIs' code and parameters to use frequency
instead of channel ID:
sme_get_operation_channel
wlan_hdd_update_survey_info
Change-Id: I90f05cc7fedd061bf08b47299d2fb6530c470136
CRs-Fixed: 2554149
Host will set HE IE by channel mode, and needn't copy he ie to
additional ie. Otherwise, there will be two he ies in beacon frames of
P2P GO.
Change-Id: Ia144bb5e96f00114658a371ef27c65f90a6c7df2
CRs-Fixed: 2549450
Populate HE 160MHz mcs map only from 5G band mac-phy capabilities.
Session bandwith is checked to disable HE mcs for 160MHz, but session
bandwidth is updated after the MCS is disabled. Update HE 160MHz
MCS map after session bandwidth is derived.
Change-Id: I94813ae269856b34cf1ea6c6a13013738909c674
CRs-Fixed: 2556457
Newly introduced WMI macro for group management cipher suite is:
WMI_CIPHER_BIP_GMAC_256 0xf
Currently, host updates the localy defined macro for group
management cipher suite to the firmware only as part of RSO
commands over the WMI_AP_PROFILE command. Host should update
group management cipher suite as per WMI cipher macro.
Fix is to update the group management cipher suite in RSO cmd
as per WMI cipher macro.
Change-Id: I81dc5e800c55d1eb6cd0447265205d3413b29177
CRs-Fixed: 2547507
Modify the following 2 APIs' code and parameters to use frequency
instead of channel ID:
sme_get_roam_scan_channel_list
drv_cmd_get_roam_scan_channels
Change-Id: I4e6edee71ef25bf73c170813159f5078f0c3e612
CRs-Fixed: 2554148
Currently in the driver, the cache sta info is not being cleaned up
before deinit of the SAP operation. This can lead to potential memory
leaks during driver unload.
Cleanup the remaining cached sta structures before deinit.
Change-Id: I75a61d8dbf8a6a8372882d2dcc978cc1dd0fb406
CRs-Fixed: 2550245
Modify the following API code and parameters to make
sure they're using frequency instead of channel ID:
csr_roam_sort_channel_for_early_stop
Change-Id: Ifaab55099d00988bf56f13dcadca8a1f6000e646
CRs-Fixed: 2554178
target_if F/W event handler is moved from wma to cmn part per
MCL/WIN converge requirement.
Change-Id: I583059190827c9aed8d8089412a4cfac92ddf4c9
CRs-Fixed: 2554859
Vdev start/stop/delete events have been registered in
target_if_vdev_mgr_wmi_event_register in MCL/WIN common code.
Change MACRO name SERIALIZE_VDEV_RESP_TIMER to
SERIALIZE_VDEV_RESP.
Change-Id: I4d54a4755d7311b488f12f46a73db7e4645a4e0b
CRs-Fixed: 2554732
Replace channel ID with channel frequency in tSirMacChanNum
limReassocChannelId under struct pe_session
Change-Id: Ice8565ebcfcb863b7da7ec14a36b3abf3332ebab
CRs-Fixed: 2556247
When a particular vdev is deleted, the corresponding rx
packets which have been queued to the rx thread are not
flushed. Hence when such packets are submitted to the
network stack, the dev for this skb will be invalid,
since we have already freed the adapter.
Flush out the packets in the rx thread queues, before
deleting the vdev.
CRs-Fixed: 2552140
Change-Id: Ia49af2c203c64077f7fd87524bb4caa4060e0044
Currently, NDI and NDP creation is happening only if the
corresponding concurrency is allowed. But NDI should be allowed
to create/delete in all concurrent scenarios. So, don't validate
the other interfaces present on device for NDI creation/deletion
and validate only for NDP requests.
Change-Id: I8e8817ac63f1f94b48fe71a30ddf1d49183d263a
CRs-Fixed: 2552623
"intf_ch" is updated by wlansap_check_cc_intf function.
"intf_ch_freq" needs to be updated based on new intf_ch.
Change-Id: I64a9ded8f6fa1ebd9cc88f69098c88a7a01ca82c
CRs-Fixed: 2555848
If the CPU latency requirement is not there, set the pm qos vote
to default value. The target values of resume latency and active
state latency tolerance are the minimum of the request values held
in the parameter list elements.
Change-Id: Ia5a68c024c08043da840490b6207803523f5a34a
CRs-Fixed: 2554446
Currently the driver parses the BTM list
in the API lim_add_roam_blacklist_ap, but
the pointer to the source list is not incremented
which leads to addition of the same entry multiple
times.
Fix is to increment the pointer to the list for
every iteration.
Change-Id: I057c6e314827768679085047b32e524e4273b9fc
CRs-Fixed: 2554039
Modify the following 2 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
csr_get_infra_operation_channel
sme_search_in_base_ch_lst
Change-Id: I2010aac81a3297d2c274ac9f17784f8f5cbf846e
CRs-Fixed: 2554643
Modify the following APIs' code and parameters to make
sure they're using frequency instead of channel ID:
csr_scan_get_next_command_state
csr_handle_nxt_cmd
csr_scan_callback
Change-Id: I3bbbc20f906f0b757659f553e1ddb3d2ddd084d8
CRs-Fixed: 2554060
Modify the following 2 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
sme_get_status_for_candidate
csr_is_mcc_channel
Change-Id: If721813518caeb87c4de7c3d52ae18fd080cd713
CRs-Fixed: 2554048
Modify the following 2 APIs' code and parameters to make
sure they're using frequency instead of channel ID:
csr_roam_get_ibss_start_channel_number50
csr_roam_get_ibss_start_channel_number24
Change-Id: I5d3c94f4266fdfc08efe2a0e87ac406a0e7cd5ea
CRs-Fixed: 2554196
If defined NDP_SAP_CONCURRENCY_ENABLE, allow SAP or SAP+SAP
concurrency with NAN and don't disable NDI when call
ucfg_nan_check_and_disable_unsupported_ndi.
Change-Id: I684df7608623f8eb77d485a61e8d9c6f3319574a
CRs-Fixed: 2547493
Set cpu_mask for affine cores on init before sending a
request to PM QoS interface to insert a element into the
list for DMA latency in the QoS framework.
Change-Id: I81f17077c6ddce69c99047c46cef008b6b195d77
CRs-Fixed: 2551349
Fix compilation issues related to IPA and DP when built for target
QCA6174. Here is the change to fix them.
Change-Id: I4441858450a78cdd98e3c5e25cdeee00c3a7db9e
CRs-Fixed: 2554619
In hdd_stop_adapter and hdd_stop_all_adapters, sap_pre_cac_work is
sometimes being flushed when it is not initialized. Put a check to only
flush if it is initialized.
Change-Id: I1e25ae06f351188c1bc45c4f94c80b3c77799b88
CRs-Fixed: 2554551
When values such as -EAGAIN are returned as the return value, it causes
the notifier block chain to stop being parsed by ip6_route_dev_notify(),
which results in the pointer to nh_dev in fib6 being NULL since the value
is not able to be set. To solve this, set hdd_netdev_notifier_call to
return NOTIFY_DONE so that the error value returned does not prevent the
notifier block chain from progressing.
Change-Id: I294a837e9f6c9712d45a9a96b5f0967af968b8b6
CRs-Fixed: 2553168
Currently in the driver, hdd_send_hang_reason() checks validity of
current context using wlan_hdd_validate_context(). This checks if the FW
is down and if recovery in progress along with other conditions. This is
a contradiction as the purpose of the API is to send the reason for
hang, which can come during FW down. The wlan_hdd_validate_context()
check prevents this from being sent to the userspace via the command
QCA_NL80211_VENDOR_SUBCMD_HANG.
Remove the wlan_hdd_validate_context() check as it is not required as
per the scenario.
Change-Id: I34da018ab4792f5c613d7ec2da8526261ee20e84
CRs-Fixed: 2554019
Presently, the driver performs device assert on re-init failure after
SSR. This is not desirable as in some cases the reinit failure can be
recovered from.
Change the default value of the INI controlled variable to 0 to avoid
this assert.
Change-Id: I802921e8602e0648cacc4185f550b72ad2b3af66
CRs-Fixed: 2547295
When DFS and CAC are full offload, driver passes cac duration time
to FW in vdev start wmi command. Currently when SAP starts in DFS
channel, cac duration is passed as 0.
Cac duration should be set to pe session when vdev starts, then it
can be passed to FW correctly.
Change-Id: Ica2ae344d6734df89e22b088dea7a5059f1370f9
CRs-Fixed: 2548492
Fix compilation error in legacy features after 6Ghz band
support and code cleanup.
Change-Id: I5b8c9b46d7647e88044b2f0a0f9c2d35fa4b8a89
CRs-fixed: 2554204
The register window needs to be configed properly before accessing
any larger than 4K range PCIe registers. Expose the lock in PLD to
avoid race condition when both platform and host drivers
try to config it.
Change-Id: Icd3df3d4d2cc2ecc3df608e7b767a3e654b94500
CRs-Fixed: 2549887
In DBS mode 2x2 VHT40 2G and 1x1 VHT 40 5G, the MAC 1 (5G)
doesn't support VHT80. Update the ch_width to max of 40Mhz
in beacon OMN ie when switch to DBS2.
Change-Id: If5cf65bca815d1e8df67a1515b2fb3edcba52a8e
CRs-Fixed: 2520719
In special case when vdev delete for wlan disabled,
event eWNI_SME_DEL_STA_SELF_RSP has been sent
to QDF_MODULE_ID_SME queue, but scheduler thread have no
execution chance, timed out waiting for sme close session in
hdd_vdev_destroy, sme session isn't cleaned up.
When enable wifi again, vdev create failed for cannot re-open
active session, wifi failed to start any more, can't recover
until system reboot.
Fix:
When timed out waiting for sme close session in
hdd_vdev_destroy, clean up sme session too as normal process.
Change-Id: If6c6ed313928294bb83ebbc0e716a574e6a07470
CRs-Fixed: 2547355
Support wlan ipa clk voting for kona. Host should provide
bandiwdth levels to IPA driver for which IPA uc monitors
the levels. Once the threshold is reached IPA uc interrupts
the IPA driver and IPA driver informs host driver via callback
registered.
Change-Id: I9fd805d69858a413f20b9e55a9c02a82054c646b
CRs-Fixed: 2526300
Move to the common psoc object and retrieve the cfg ini
information from the legacy implementation.
Change-Id: I38147c748796550f2adede44b681559a4f329fbf
CRs-Fixed: 2547536
This change is to support 11ax linkspeed rate
on UI.
It supports different config for gReportMaxLinkSpeed.
Current 11ax rate support to max 80 nss2 mcs11.
Change-Id: Iff8cbafe1354ab50c4b3a90ef8ab698a3350a21d
CRs-Fixed: 2529291
Since peer mac instead of sta_id used to find pointer to peer in
dp_register_peer, so copy and pass peer mac address when register new
ndp peer.
Change-Id: I47ab345fff83d9c03208c5c1457db0fb7f6ed9c0
CRs-Fixed: 2546705
Update SME/CSR for using channel frequency in STA connection
params and handle 6G AP IEs for association.
Change-Id: I1725223b6763a729762b604c850c9b493f739ae6
CRs-fixed: 2552009
HE STA / AP operating in 6GHz should send HE 6GHz band capabilities
element. Update LIM layer for sending this IE in assoc, reassoc and
probe request / response frames.
Change-Id: Ie991ad3656e6b721e0ee0783b5974d438699091c
CRs-fixed: 2552009
Due to channel number ambiguity with 6ghz, update channel references
in HDD STA connection path to use channel frequency.
Change-Id: I81f3449c9087030e4d98c17a5b12c731f99b39ab
CRs-fixed: 2552009
Function csr_update_sae_config is inital connection, so it should
be out of WLAN_FEATURE_ROAM_OFFLOAD. While function
csr_process_roam_auth_sae_callback is roaming related change,
so it should be in WLAN_FEATURE_ROAM_OFFLOAD.
And do the static inline to the dummy functions to avoid the warning
which defined but not used.
Change-Id: Ib873050d2f5bdb960244d2f900e078f314962a8b
CRs-Fixed: 2552295
Fix compilation error in WLAN_FEATURE_HOST_ROAM after policy manager
public API update to use channel freq as function argument instead
of channel number.
Change-Id: I690f25a169f4438272d44bb7292558a0171d1ab8
CRs-fixed: 2551820
As a part of cdp convergence the pdev_id
is used to obtain the pdev handle on need
basis.
Instead of the pdev handle, use the pdev_id to
retrieve datapath pdev handle.
CRs-Fixed: 2539733
Change-Id: I887ea2f1a312207cbb642b33435f4e7111068c62
Add the soc context for ol_txrx.
This soc layer is used to hold ol pdev context.
CRs-Fixed: 2539731
Change-Id: I27a3f34a533034a4748674ce8b9212163b231b24
At the time of starting / stopping 2nd or 3rd connection,
Host sends WMI_PDEV_SET_HW_CMDID command to FW to change
HW mode to DBS / Single-Mac based on concurrency rule.
FW upon receiving this command turns off TXRX chainmask
which means that radar pulses might get missed for
20ms - 50ms during CAC period. To fix this, Host should
block new connection when existing SAP is performing CAC
on DFS channel.
Change-Id: I51eb117afa763a6ef54211808875419026c9075b
CRs-Fixed: 2533717
Fill the pfm info of the TDLS peer before sending the peer assoc
command to FW.
Change-Id: I4e336c345c0fb8f063157b3e3a780efa777f1a74
CRs-Fixed: 2535832
Currently logs for wifi_pos module are not enabled,
because of which it is difficult to debug the issues.
Enable the wifi_pos logs to address above issue.
Change-Id: I777076d5cd0251b7c714bf22fd885e0cabda6ea2
CRs-Fixed: 2547557
After STA channel switch, when SAP try to force scc with STA,
race condition issue happens sometimes between mc thread and sap
restart thread, hdd_ctx->roaming_in_progress isn't cleared when
check roaming status in hdd_softap_set_channel_change, so channel
switch failed.
Fix: change order, make sure hdd_set_roaming_in_progress(false)
happens before policy_mgr_check_concurrent_intf_and_restart_sap.
Change-Id: I1146eb665941fe0beb8f6165272f32ac8f7e74f2
CRs-Fixed: 2549571
In lim, gpLimMlmAuthReq is freed in lim_restore_auth_state if
auth failure timeout happens. gpLimMlmAuthReq is dereferenced in
lim_process_auth_retry_timer. When there is a race where
lim_restore_auth_state is called before lim_process_auth_retry_timer,
then null pointer dereference of gpLimMlmAuthReq happens in
lim_process_auth_retry_timer.
Validate gpLimMlmAuthReq against null before accessing it.
Change-Id: Ic1af10172aa98785c84165c4491c8bdc1b3e508f
CRs-Fixed: 2550793
wlan_reg_get_channel_state does not return CHANNEL_STATE_DFS for DFS
channel if this channel is in NOL. Use wlan_reg_chan_has_dfs_attribute
to fix this issue.
With above fix, new issue is exposed. hdd_ctx->sap_dfs_ref_cnt is used
as a flag, If hdd_hostapd_channel_allow_suspend is called after
hdd_hostapd_channel_prevent_suspend, whatever the new channel state is,
if the old channel is going to release dfs lock, then dfs lock is
released. Generally we should handle the old channel then handle the
new channel, so exchange the order of hdd_hostapd_channel_prevent_suspend
and hdd_hostapd_channel_allow_suspend when doing channel switch.
Change-Id: I9bbeeb5ac23f3c2eaf694f64e0fea433dcc34740
CRs-Fixed: 2543642