Divide and refactor mlme functions to integrate vdev state
machine for SAP restart and start fail.
Change-Id: I824df69e126d4647a156bc10570689f6b0822b06
CRs-Fixed: 2309284
Divide and refactor mlme functions to integrate vdev state
machine for SAP stop.
Change-Id: Id9841b1a87f2f3c1c2816dae8b2a183ac04791a9
CRs-Fixed: 2309264
Divide and refactor mlme functions to integrate vdev state
machine for SAP start.
Change-Id: Id4419261cb1ba88754eded9fd780cca60f1f5db7
CRs-Fixed: 2309240
Set the aggregation size to FW with BA buffer size value to
update the number of packets in aggregation.
Change-Id: I5d120b60c3dfb4b6953222da5516e793dd3fb40d
CRs-Fixed: 2301335
The flag is_vdev_valid and vdev_active serve the same purpose,
they are used to prevent the race condition where wmi vdev level
command gets posted to FW after vdev is deleted. Both the flags
are set to true in wma_vdev_attach when the vdev is created and
set to false in wma_vdev_detach where the vdev delete command is
sent to fw.
So remove is_vdev_valid flag and replace it with the existing
vdev_active flag.
Change-Id: I5199bc7d473470fd9f16320d323f86257a24ae19
CRs Fixed: 2312321
Enhancements to serialization:
Permit cmd of different vdev can execute concurrently etc.
Change-Id: I6e30f6f73067fd93a7c1f44d4e8310e8557a6a68
CRs-Fixed: 2308582
The "open" state only comes into play once, when the wlan driver is
first loaded. It represents a driver state that is neither fully up, nor
down, as the soc has been probed, but many internal data structures have
not been initialized yet. After the first interface up operation,
however, the driver moves to the "enabled" state, and can never re-enter
the "open" state.
This half-up driver state causes a number of difficult to deal with side
effects, without adding much value. Simply remove the state, instead moving
straight into the "enabled" state on wlan load instead. Thus, moving
into the idle "closed" state after wlan load will look exactly the same
as it does after the last interface is downed.
Change-Id: I4ec1268eb491fec04a78b90e51c6e616d95e019e
CRs-Fixed: 2295921
Fix checkpatch return void warnings.
void function return statements are not generally useful.
Change-Id: I62f8720940a455345becdfa4043f1f5fdac9769d
CRs-Fixed: 2311614
The name 'hdd_pdev' is misleading, since it is not actually an HDD pdev
context. Rather, it is the Object Manager pdev context. Rename hdd_pdev
to pdev for consistency, and to make room for HDD to have its own pdev
context.
Change-Id: Ie27e4b21d83865474bd464ba2c3948a0684de29b
CRs-Fixed: 2311497
The name 'hdd_vdev' is misleading, since it is not actually an HDD vdev
context. Rather, it is the Object Manager vdev context. Rename hdd_vdev
to vdev for consistency, and to make room for HDD to have its own vdev
context.
Change-Id: I6186d010404c0a7b1e25590d87e5350195faba80
CRs-Fixed: 2311435
The interface idle timeout work is started at the very end of the SoC
probe process. During rmmod, this timer is proactively canceled, but a
race between probe and rmmod means this cancel is not deterministic. The
mirror operation to probe is remove, so cancel this work at the
beginning of the remove process. This preserves symmetry between probe
and remove, and also deterministically cancels the work, since probe and
remove are properly synchronized.
Change-Id: Idfd68c0ed638dbe810db72d64f301018db45d522
CRs-Fixed: 2309533
Optimize struct reg_table_entry definition by means of
alignment and data type declarations to save memory.
Change-Id: Ib97541b0868416d1d797d8326e265e9789a040da
CRs-Fixed: 2301744
Currently if target is not ready, vdev stop req use check
cds_is_target_ready() in wma_fill_vdev_req(), while peer related API
uses wmi_handle->wmi_stopinprogress.
As wmi_handle->wmi_stopinprogress is set after target ready flag, the
vdev stop req is dropped while peer delete is sent to firmware. This
leads to bss peer delete sent without vdev stop.
Remove cds_is_target_ready() in wma_fill_hold_req() and
wma_fill_vdev_req() so that only wmi_handle->wmi_stopinprogress is used
to detect firmware down.
Change-Id: I5a7fb886f8bbf9a10d25c6991a291bc4bd2bef48
CRs-Fixed: 2309680
Add debugfs entry to get last five roam scan stats info which includes
old bssid, new bssid, roaming candidates etc., for STA interface.
Change-Id: Ied66beb270d97b6e17a6116c1be0e82783094519
CRs-Fixed: 2203885
Add the following SAP/STA protection ini and cfg parameters to MLME cfg:
CFG_PROTECTION_ENABLED - CFG
CFG_FORCE_POLICY_PROTECTION - CFG
CFG_IGNORE_PEER_HT_MODE_NAME - INI
Change-Id: I3763d62c6aa4ae79a5a31dfac248e8367b6369ad
CRs-Fixed: 2310378
The driver always allow roaming command ROAM_SCAN_OFFLOAD_UPDATE_CFG
even through session roaming not "started" in CSR.
But WMA will always enable Roam_scan_mode to non-zero
to FW when handle the command ROAM_SCAN_OFFLOAD_UPDATE_CFG.
The inconsistency is the CSR still keep as roaming stopped
status but WMA enable the roaming on session.
In STA+STA case, there will cause two vdev roam mode enabled in Firmware
because the CSR roaming start state does not keep sync with FW.
Fix by enable FW roam only based on enable state from CSR
when handle the ROAM_SCAN_OFFLOAD_UPDATE_CFG in WMA.
Change-Id: I95a2bd1edd88cc241ae9821a6e0756c44663229a
CRs-Fixed: 2305594
hdd_reg_set_country() validates the hdd context, which returns an error
if start_modules_in_progress is true. This was the motivation behind
I4378438873ffa72c0fce415ade65b91b90e2c84a, which effectively moves the
call to hdd_reg_set_country() to after start modules is complete.
However, all of the callers to hdd_reg_set_country() already validate
the hdd context, so this check is redundant. This means
I4378438873ffa72c0fce415ade65b91b90e2c84a was unnecessary. As this
change also brought with it some technical debt in the form of
additional driver_status checks, simply remove the validate hdd context
check from hdd_reg_set_country(), and replace the original call site.
This change is also necessary to enable the removal of the
DRIVER_MODULES_OPENED state (I4ec1268eb491fec04a78b90e51c6e616d95e019e).
Change-Id: I5a0d8a8407969275f023431095ff6205ef515b62
CRs-Fixed: 2310446
Make the following updates to the extscan reset significant change
logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
must not make any assumptions about the buffers provided by HDD.
Change-Id: I9b63924f4219f6d3567e3ee2b1a31e1a9ce3bc29
CRs-Fixed: 2309570
1) CONFIG_MPC_UT_FRAMEWORK should only be enabled for slub debug build
2) CONFIG_MPC_UT_FRAMEWORK should be protected under
gEnableUnitTestFramework INI setting.
CRs-Fixed: 2309562
Change-Id: I314ec928af2a350d518eb8f8dd62dbadee1746e8
In function hdd_register_rx_ol, hdd_ctx is retruned by cds_get_context.
Check for hdd_ctx being NULL before de-referencing it.
Change-Id: I5e45036930a03368310871d108062c2d24742602
CRs-Fixed: 2299782
Check if pointer returned by hdd_napi_get_all is NULL. This would prevent
de-referencing of NULL pointer.
Change-Id: I23af3319422e0d2ebd93ce410d76457c54551538
CRs-Fixed: 2299788
Unlock the rx_ring.rx_hash_lock spin-lock when returning due to
failure to do smmu map_unmap.
Change-Id: I1b905c0ad529c80f78807c030920121ee0909825
CRs-Fixed: 2299785