To use hdd_vdev_ready() API for each valid vdev of
an adapter, change the function declaration to have
vdev objmgr as function parameter.
Change-Id: I2d02f2e5d21f59d441f22b03e2aa94a28e9b5f1b
CRs-Fixed: 3294710
Populate EHT IE based on band of mlo link. Currently
driver only populate it for 2 GHz AP, extend it to 5 GHz
AP as well.
Change-Id: Ib60d6c4f96546f87ec2ea44780e65cd730169b20
CRs-Fixed: 3298778
When roam from MLO to SLO, don't clear assoc link MLO flag.
Remove 1 useless vdev parameter of mlo_cleanup_link.
Change-Id: I3e3dff0ad3f3fef8f955eaae8af1a3c564248432
CRs-Fixed: 3298471
Puncture bitmap can be changed dynamically. 11be station should monitor
puncture bitmap in EHT operation IE and update it to firmware.
Change-Id: I9ec2ac592b7598d12b071f2bfad4fdbd449f04ee
CRs-Fixed: 3269516
EHT IE is stripped and decoded, but it is not returned to the caller
of sir_convert_beacon_frame2_struct.
Save it in pBeaconStruct and return the information to the caller of
sir_convert_beacon_frame2_struct.
Change-Id: I73d6957a4e275b4d7008cb3de0e3ca2ee4a5b8a3
CRs-Fixed: 3297732
EHT MCS map is not populated correctly in the per-STA profile
data in association request MLO IE leading to connection fail.
Fix the EHT MCS map in the MLO IE per-STA profile data.
Change-Id: I3b73e65fccddf877e832147795d0912744055934
CRs-Fixed: 3287371
Fix the malformed association request issue due to incorrect PPET
values included in per-STA profile.
Populate the HE PPET values based on connection band in the per-STA
profile.
Change-Id: I0aa342b0a06336063dfb9e791e0d9403d1013df8
CRs-Fixed: 3290730
During ANQP query, supplicant sends the action frames to firmware
and currently, host driver drops tx mgmt frames as peer is not
available. This is because in tx mgmt path, it retrieves the self
peer from non-MLO mac addr but driver creates the peer of type
AP(PEER_AP) with MLD mac addr when MLD mac addr is non-zero and for
non-MLO case, it creates self peer with non-MLD mac addr.
So, to fix this, in case of MLO mac addr, create the self peer while
creating vdev and retrieves that peer with MLD address in tx mgmt path.
Change-Id: Id7ef97668fbd1bf1914d37d09682119eb79be465
CRs-Fixed: 3297288
During Deauth/Disassoc event logging, reason code is being
logged as '0' irrespective of the real reason code.
Modified the api wlan_connectivity_mgmt_event() and
api cm_roam_mgmt_frame_event() to og correct value of
the reason code.
Change-Id: I6d5ba65a9ae312dc82e70202fe598da27a033ff3
CRs-Fixed: 3297871
TWT responder should be enabled based on the hostapd
configuration and self capability.
But when SAP is started, the TWT concurrency work is
scheduled and its enabling the TWT responder without
checking the hostapd configuration. This causes TWT
responder to be enabled even though the hostapd configuration
disables the responder.
Check the TWT responder configuration from TWT component before
sending enable command for TWT responder
Change-Id: Ia6755299421f00b2a1a69fc2e19fac3d39ab95f6
CRs-Fixed: 3291939
When roam from MLO to SLO, partner link vdev1 keeps UP wrongly.
To fixe it, clean up partner link vdev1, but keep assoc link vdev0
MLO flag.
Change-Id: I13d256e9f05755f01cea668456f00bf33c8862b4
CRs-Fixed: 3290015
As part of SAP ACS optimization, the last ACS scan's result
can be reused in current ACS request if the last scan done
was not greater then last_scan_ageout_time provided as part
of do_acs command. So, do not clear channel stats after
ACS completion if SAP ACS optimization feature is enabled.
Change-Id: Idac6225f790d84ba90ebd740602d0c5d358ed2dc
CRs-Fixed: 3297868
To reduce the ACS time, there is an implementation wherein one
user space process creates sap interface and queues ACS request to driver,
meantime framework initializes various config and starts hostapd
to queue same ACS request to driver. In this scenario, there is a
race condition that hostapd tries to queue ACS request while there is
already one ACS request is in progress. With current implementation,
driver will reject second ACS request and return error to hostapd
leading to sap turn on failure.
This change allows subsequent ACS request if all the attributes
of do_acs vendor command matches with the ongoing ACS request and returns
success to userspace. There is no another ACS scan queued as part of
second ACS request which is same as ongoing ACS request because the result
of ongoing ACS request will act as result of second ACS request as well.
Change-Id: I67d10b09be922745e7ffb46192e00135dbdb9de4
CRs-Fixed: 3295786
If ACS scan is skipped, then ACS request is completed and vendor
event is sent to userspace in same context, so there is no need to set
acs_in_progress when ACS scan is skipped.
Change-Id: Id3d1235e405832ce66a1b8837dc04e94bb3c6b64
CRs-Fixed: 3296939
When roam from SAE legacy to SAE MLO, pre-auth TA is MLD address,
while peer AP expects link address, pre-auth fails.
Parse transmit address field from firmware roam_preauth_start_event and
include it when send NL80211_EXTERNAL_AUTH_START to wpa supplicant for
SAE roaming cases.
If transmit address is all zeros, wpa_supplicant will not do ML sae
auth, use MLD address as TA.
If transmit address is not zeros, wpa_supplicant will do ML sae auth,
use 'transmit address' as TA.
Since self peer is created with mld address, when roam from legacy to
MLO, try to get peer by mld address during pre-auth tx since bss peer
absent, or TX fails for no peer.
Change-Id: I99ed846e94165bfe01e1d1e8c620f035751c7056
CRs-Fixed: 3289987
In SAP due to intrabss forwarding, Tx ring update is going through
when WOW enable command has been sent to FW. This results in crash.
To fix this, set is_tx_pause flag when suspend sequence starts,
which will pause Tx ring HP update.
Change-Id: I81f25b8bfca917c95180c460fd932c0f75094c10
CRs-Fixed: 3295428
Refactor the hdd_vdev_create() API code where the vdev info
related to corresponding adapter is stored.
Introduce a new API to store these values in the adapter.
Change-Id: I61e36c7158c418bcbf94b7f252385af6a67bea8f
CRs-Fixed: 3294674
If session BW is 160 MHz or higher and peer BW is reduced below
160 MHz in assoc response, STA resets HE 160 MHz MCS rates to
0xffff that results in FW assert. To avoid STA crash, add a
check to get reduced peer BW from beacon instead of allowing
160 MHz association.
Change-Id: Ifa2c45e6354129fdc2d3cc50464f9d2dd7edae2a
CRs-Fixed: 3289443
This change fixes the use of uninitialized variable and dereference of
free pointer issue in host driver.
Change-Id: I88359cd383d15f9baa73bc7c3ce9d5fccee2a41e
CRs-Fixed: 3295234
In api sch_set_fixed_beacon_fields(), the channel switch announcement
method selection was based on config "CONFIG_CHANNEL_HOPPING_ALL_BANDS"
due to which peer STA may not be able to switch channel when MTP
is working as SAP and doing channel switching.
Modify the check in order to select the channel switch method based
on nature of peer STA and operating/target frequency.
Change-Id: I3deb09245496d65e6bb3ec27ed7eefd3dcaa27bc
CRs-Fixed: 3293983
Currently, supplicant sends roc request and hostapd sends
vdev start request to host driver. After processing these
request, host driver sends it to firmware.
But for ROC request having long dwell time, firmware can not
handle vdev start req as it waits for ROC request completed
(timeout occurs). This is leads to crash in firmware.
So, to fix this issue, host driver aborts p2p roc request
before starting BSS (sending vdev start request).
Change-Id: I956428cf94015ac6c4ff7063ef9b060146e4377b
CRs-Fixed: 3270079
To protect firmware not downloaded in system suspend, acquire/release
the cnss semaphore cnss_pm_sem. It is complex, and cnss function
cnss_pm_notify may trigger dead lock issue once PM_POST_SUSPEND is
ahead of PM_SUSPEND_PREPARE.
Optimize code to use PM wakelock API to protect firmware downloading.
Change-Id: I533c373b85f554fbcceb562d9f56c6b88e5155bb
CRs-Fixed: 3280247