If 5G band disabled, all channels of 5G should be disabled, before SAP
switch to 2G channels, we need save original 5G channel, or when 5G
re-enable, can't restore back to original 5G channel.
Regression of change-Id: I679ce6f72228b431530953a631c8c8afa4597187.
Change-Id: Iabb932102c37cc7b9d4d97a2e22e781958ed906f
CRs-Fixed: 2789341
Use the new enum wlan_status_code for wlan status code and
remove enum mac_status_code.
Change-Id: If42cfdcf99d34ffa77be53382d02288ab8637c10
CRs-Fixed: 2789000
Enable more TX descriptors flag for QCA6750 target.
This helps to increase TX and completion descriptors size.
Change-Id: I038d5e376aec68741b172d963c9f96925b71d68a
CRs-Fixed: 2769769
Steps to reproduce:
1. AP_AP mode setup, AP1 occupy channel 1, AP2 occupy channel 44.
2. Set channel1~channel11 as unsafe channel, which cause AP1 try to
switch to 5G band.
Observed Results:
AP1 select channel 36, and channel switch fail.
Expected Results:
AP1 select channel 44 same as AP2, and channel switch pass.
Root cause: in Dual AP concurrency case, when get PCL for one AP, need
find the AP from connection list by vdev id and remove it temporarily,
can't just remove 1st vdev from connection list.
Change-Id: I763bbc89bacdad4389084588ee68c3a1e2f17b7b
CRs-Fixed: 2774570
Compiling with gcc 9.3 will cause many implicit-fallthrough
compile errors.
Fix is to add keyword fallthrough to resolve such compile error.
Change-Id: I3fdc48b1a9ab2345a47ae644e3217b4d29238364
CRs-Fixed: 2785172
In order to apply modulated DTIM only on system suspend display off use
case, in RTPM wow mode, for display on and display off, FW will stick to
DTIM 1.
Change-Id: Id282c11c39d38e8a5d55574783d280b092dbb485
CRs-Fixed: 2784872
Add a new ini item enable_mod_dtim_system_suspend to control the
modulated DTIM on system suspend feature.
This ini is used to set modulated DTIM configuration:
Current values of enable_mod_dtim_on_system_suspend:
0 -> Modulated DTIM will be enabled for every wow entry
(RTPM wow + System suspend wow)
1 -> Enable modulated DTIM only for System suspend wow.
For RTPM wow, the device will stay in DTIM 1 (non-modulated DTIM)
Change-Id: Ia3a9d259d8ba1e483ea3e8e7f99f60bbc27c67af
CRs-Fixed: 2787108
Call regulatory API to get current channel list. Populate
sub-band triplets from there. Also clean-up 11d related
cfg item enable_11d.
Change-Id: Ica6dba0dee05e7d16572ec0f0c62aa6f79aa6d4f
CRs-Fixed: 2769848
Enable CE descriptor ring history in non slub_debug_on build.
This is required to debug CE ring slow reaping issue in non
slub_debug builds
Change-Id: Id2955eb79f4759784b68cbb0270a7794484bb73c
CRs-Fixed: 2786647
IOVA address returned as part of pld_smmu_map for IPA
rx ready doorbell register exceeds the IOVA range
configured in FW by Host. This is because smmu unmap
support is not enabled and due to IOVA range validation
issue in cnss SMMU map API.
Fix is to enable SMMU S1 unmap config flag to enable
SMMU unmap as part of IPA cleanup.
Change-Id: I588f3536c2eb2a9fc77bbe69c9b6a6eb02a39842
CRs-Fixed: 2784174
After sending disable request to FW, it needs some time to
communicate the frame to all NDP connected peers. Increase
the wait time from 1 second to 4 seconds.
Change-Id: Iae36fe007704600a9f29ac7b943ef22fba91b651
CRs-fixed: 2787069
Use the TLV type for QCN IE attributes to fix the duplicate IE
detection and update QCN IE with new attributes.
Change-Id: Ia1be2d1754a3ed82ad3f01b68e719c504f624309
CRs-Fixed: 2760822
Currently ll_stats and get_station requests are sent back to back
from user space. The firmware time difference between these two commands
results in extra sleep and wakeup for Q6.
To avoid this extra Q6 sleep and wake, send both requests in a single
command from the driver if the firmware supports that operation. Cache
the get_station results in the driver until user space request reach
to the driver.
Change-Id: Ic7c6232558b9411106bf3fb88ec8d9b0b28b045d
CRs-Fixed: 2778476
At present, WAPI security mode STA is not allowed to run in
concurerncy with any other vdev.
So, whenever a new vdev is created, policy_mgr_check_privacy_for_new_conn
is called to check the security concurrency of new connection by checking
security of exisitng vdevs and if a STA vdev with WAPI security exists
then the concurrency is not allowed and the api will return false.
In case, while performing this check, the adaptor associated with
the existing vdev is destroyed, there might be a crash as
hdd_wapi_security_sta_exist is still trying to access the security
of that vdev.
To solve this, use wlan_objmgr_pdev_iterate_obj_list with crypto info
to iterate across all the existing vdev and check the security. If
Wapi security STA exists, it will return an argument with value as true
which will be used in policy_mgr_check_privacy_for_new_conn and it will
return false as concurrency is not allowed
Change-Id: Iff811d2406f1c74cec26d457a2a682dd992710b8
CRs-Fixed: 2784406
The naming of the osif files and functions is not correct as
these files and functions include wlan_cfg80211 as prefix
instead of osif.
Correct file name and function name should contain the component
name first, followed by feature name followed by method.
Change-Id: I26a592de71bbde0f731436acb970778c85d19226
CRs-Fixed: 2786807
When vdev is null in both mlme_get_roam_state() and
mlme_is_roam_invoke_in_progress(), error log is getting printed
redundantly.
Remove prints from both function as there is no additional info.
Change-Id: Ibc96ad957d947857777dad9df9ff766e68562dae
CRs-Fixed: 2785775
Currently when driver receives the legacy get channel command,
it fills all the channels which includes 6GHz channels also.
This may lead to unexpected behaviour for the applications which
does not have support for the 6GHz channels.
To address above issue, do not add 6Ghz channels in the output of
the get channels command.
Change-Id: I87beea4e80906846fa5d1d1076792385d4424297
CRs-Fixed: 2782638
This reverts commit "Change-Id: af7e67eee58888a811e51c2ef093b7aac639f904".
Since host can't set NDP peer to auth state if test with this change.
So revert this change and raise another change for original issue.
Change-Id: I568de643bfd93611dcfa7a5b836fa67e3773ebf7
CRs-Fixed: 2780195
In OWE transition mode, the AP advertises one Hidden SSID and one
normal ssid and the OWE capable STA connects to the OWE supported
hidden SSID. When connecting to the hidden SSID, if the AP sends
beacon for the unicast probe request sent by driver before
anouncing join success, then the beacon NULL ssid gets updated to
the kernel. Then after successful association, while indicating
the connection successs to the kernel, the current bss is not
filled as wlan_cfg80211_get_bss() is called with the actual ssid
and not the NULL ssid.
Due to this when supplicant sends install key command for this
bss, kernel returns error and set_key always fails.
Wait for the probe response from the AP for the unicast probe
request sent before announcing join success and drop the beacon
received from the AP so that the driver
fills the proper ssid to the kernel bss entry and same ssid gets
used in association completion handler.
Change-Id: Icded0af5d45d3281ab4304bf166bdc318aa7a942
CRs-Fixed: 2782618
When 2nd SAP is turned on throughput is dropping as
rps is not getting enabled on wifi bridge interface.
A bridge interface is a virtual interface created,
when 2 SAP are turned on else, there is no bridge
interface.
To fix this, Disable IPA when 2nd SAP is turned
on, so that packets are not re-routed through IPA
which is reducing throughput.
Change-Id: I250056338cec0924e97ff79d2d9e6ac513f50d66
CRs-Fixed: 2769539
During channel switch for station mode, firmware reports CSA
offload event to host driver, if the beacon IE includes wide
band width IE, driver will process it and then set phy mode
into firmware. Because function lim_process_csa_wbw_ie try to
verify the segments and channel bandwidth in wrong way, it will
lead to device use bandwidth which is mismatched with AP after
channel switch. So data transaction gets failure.
Fix this issue to verify channel bandwidth by correct algorithm.
Change-Id: Ie26c3a887418dc61c0e8de041a9094aa82215098
CRs-Fixed: 2782049
When we receive disassoc from peer, peer will be deleted from hash
table. If driver again receives one more disassoc from same peer
because of any reason, NULL pointer dereference will occur.
To address this do not use peer to get vdev, use pkt_capture_get_vdev
to get vdev.
CRs-Fixed: 2771670
Change-Id: I5bf7b5edff0e1c6b0b73f0c3849c897b269eef4c
Currently hdd is not clearing the scan queue before deleting vdev in
all the cases. This is causing use after free access issue.
To avoid this, cleanup scan queue before vdev delete.
Change-Id: I3e06f868904f450da781ba60887284796abd4ee9
CRs-fixed: 2784645
In runtime suspended state, tx packets cause a
runtime resume and if packets are received in
a way that tput pass count exceeds the threshold
but bytes flush and time threshold are not
reached, the flush timer is started. As part of
dp_swlm_tcl_flush_timer, iowrite can happen even
before the runtime resume is completed resulting
in a NOC error.
Fix is to do runtime_get in dp_swlm_tcl_flush_timer
before doing iowrite.
Change-Id: I83b6d8cfc7b29bc1f30fda94007b3663d6a99405
CRs-Fixed: 2783826