Remove the legacy ini config values defined in hdd_cfg.
Call the mlme cfg get api to retrieve chainmask config values.
Remove the tx_chainmask_cck from cds_config as mlme object is
not initialized during cds_open. Call mlme cfg api during
wma_open to populate the tx_chainmask_cck value.
Change-Id: If48aeb62cf35e2e604be2b72845b8e98c5c313dc
CRs-Fixed: 2310382
If driver gets connect command with bssid hint, fast reassoc command
is sent to FW and roaming_in_progress is set to 1. In another thread
while disconnecting, vdev down is sent to FW. As vdev is down fast
reassoc command fails in FW and host will not get response, so
roaming_in_progress will never set to 0.
To address this issue, set roaming_in_progress to 0 after disconnection.
Change-Id: If9c64568353ed01a161cc47c6261f4190c0fb93c
CRs-Fixed: 2305830
In the scheduler_post_message, src_id is now added to
know the source module of the msg. the present scheduler
doesn't know about the same which is scheduler_post_msg
Replace the scheduler_post_msg with scheduler_post_message
Change-Id: I869e14830b2f57b951033ada5957594fac7bc4c2
CRs-Fixed: 2305994
csr_nonscan_pending_ll_remove_entry() is not a correct API to
remove command from non-scan pending queue, it always return
false and fail to insert command to local list.
The correct API to remove an entry is csr_release_command(), no
need to check entry when insert to local list.
Remove the wrong API csr_nonscan_pending_ll_remove_entry().
Change-Id: I6c81f5d4ae57ceb6ebf2eec0a63859d0c1f12cb1
CRs-Fixed: 2308863
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
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
Add debugfs entry to get offload info (mc addr list, arp, ns etc.,)
for STA interface.
Change-Id: I8bf4491929b5ef04ed5ce19f4b0030945f0eb0c0
CRs-Fixed: 2203786
Add debugfs entry to get connect info (bssid, ssid, freq etc.,)
for STA interface.
Change-Id: Id5c350dbb4ca9b9f6b203459adee59b2d5e94f67
CRs-Fixed: 2203654
Add debugfs framework support to get connect, scan,
roam scan statistics and offload info from debugfs.
Change-Id: I86bdd7e449488d2bcda1b2eaaeb07aac7465770b
CRs-Fixed: 2203626
In low memory condition, RX ring may become empty when all
SKB buffers attached to the ring get consumed and kernel is
unable to allocate SKB buffer during replenish.
Create a pre-allocated pool of skbs during driver load time
and request the buffer from this pool in low memory case.
Change-Id: If8c6a4fe04f3c931dc60dcffe28e45166eab9835
CRs-Fixed: 2306861
P2P Listen offload is not a requirement for Genoa, hence featurize
P2P listen offload code to save memory foot-print for Genoa.
Change-Id: If50c784bb4cd6daac513a0654364e78cd636c9d3
CRs-Fixed: 2304554
Correct the typo in status check variable due to which
Nss setting returns failure.
Change-Id: I81a430b0482e79ee3b2d0b2c4e6aea232907919a
CRs-Fixed: 2302465
cds_is_module_state_transitioning() is effectively a partial
re-implementation of wlan_hdd_validate_context(). Instead of having
multiple copies of this logic, register a new callback in QDF which
simply calls wlan_hdd_validate_context() instead.
Change-Id: If533d72725b4cc9dbe5e4b9c25e499657c8e1376
CRs-Fixed: 2308771
Do not disable the Tx beamformer capability when Nss is set to 1.
FW would check the current chainmask configuration and enables
the Tx beamformer capability accordingly.
Change-Id: I8709147c63f2990f135d098fdf13fc3d9b00d7bc
CRs-Fixed: 2305772
In function ol_txrx_offld_flush, check for pdev being
NULL, before de-referencing it.
Change-Id: I8999d894c74b6ef10cef91345370d859f5eee8ec
CRs-Fixed: 2299780
Fixed the naming conventions of APIs and files for MLME component.
Internal MLME component only APIs are in wlan_mlme_main.h/c files
under core.
APIs exposed to other components are in wlan_mlme_api.h/c files
under dispatcher.
APIs exposed to HDD are in wlan_mlme_ucfg_api.h/c files
under dispatcher.
mlme_init/deinit, mlme_psoc_open/close are called from HDD,
so made that as ucfg APIs.
Change-Id: I049008ceaa86ca52acd3ad9a02f903a732117d1f
CRs-Fixed: 2309276
In case of recovery of SAP after SSR, driver is not updating
params for secondary channel as per primary channel (Operation
channel) for SAP.
Update parameters for secondary channel as per primary channel
before SAP start.
Change-Id: I2da2eff62881fe4e65208be778618d0b9c05bf88
CRs-Fixed: 2292645
Bus bandwidth compute work handler is missing SSR protection wrapper
although it has HDD validate context check but since HDD validate
context check is not sufficient alone add CDS SSR protection wrapper
around bus bandwidth compute work handler.
Change-Id: I43b3495610b2a9936472ff67a95c7db8dbfa5560
CRs-Fixed: 2307421
Make the following updates to the extscan set 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: I916f387cee254c2d8ba57a9182bd927a91eadf0c
CRs-Fixed: 2307374
wma_roam_scan_offload_mode, allocates mem for params buffer
to store roaming offload scan parameters locally from incoming
roam req. In last it calls wmi_unified_roam_scan_offload_mode_cmd
using param as an argument to set roam scan parameters to wmi
structure and free the local param buffer in the successful case.
But in case if driver unable to write wmi struct,
wma_roam_scan_offload_mode returns error status to its caller
without freeing locally allocated params mem buffer. This results
in mem leak while unsuccessful roaming offload.
Fix is to free locally allocated mem buff before the return
in case of roaming offload failure
Change-Id: Ic73f0b3ec004c3dcc53076594c0b872a29fee633
CRs-Fixed: 2308506
In platforms that support dual wifi instances, userspace doesn't
set avoid frequency channel list with command
QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY to trigger restart sap
process, but current handling is always to check avoid channel list
which is set by userspace so it will be failed for lte coex case.
Fix is to add process for userspace doesn't set avoid channel list.
Change-Id: Icc3356191411791f4cec9fd89e4490359cf6f1fc
CRs-Fixed: 2294109
The length attributes for all message frames are retrieved from
param_buf->fixed_param rather than using the correct TLV length values.
This can result in multiple buffer overreads due to the fact that the
param_buf->fixed_param lengths are never properly checked against the
original TLV buffer.
Add check param_buf->fixed_param lengths against the TLV buffer to
prevent OOB happen.
Change-Id: Ib6e2c847b9a2cc7bfe1233eb1f8214be75f21850
CRs-Fixed: 2304631
Remove all eSmeIssuedIbssJoinFailure relative code in disasssoc
and roam result handler.
Change-Id: Ia204fa331ec6f5de1ff52b8c2d2907d10f0d1ee4
CRs-Fixed: 2308522
Dynamically allocated apf buffer memory is not freed in error case
when interpreter is enabled and leading to memory leak. Free APF
buffer memory in case APF interpreter is enabled to avoid memory
leak.
Change-Id: I012bf80eb6db7b986f812161b48f96b0965c0542
CRs-Fixed: 2308702
Add support to store vdev object in PE session and acquire/release its
reference count during PE create/delete session respectively.
Change-Id: I476798c4c42992dec2a2648319780b206274e8c4
CRs-Fixed: 2306387
We have some local variables allocated statically in LIM.
To reduce data segment size, allocate these variables dynamically
and then free.
Change-Id: I9ab6a180a89342ebace6f92336bfe30a498f5848
CRs-Fixed: 2307644
Host provides INI way to control voltage configs, featurizing the
same for Genoa.
Change-Id: Ia58d84eb2e2a67ead189a51d2a0b98230513f8f9
CRs-Fixed: 2304125
NUD tracking is disabled in hdd_stop_adapter which needs to be
enabled back in hdd_start_adapter.
Enable the NUD tracking by setting NUD tracking status to false.
Change-Id: I606653d553d6282cfdb6e52a9bf5bc1100732375
CRs-Fixed: 2308351
We are transitioning to new logging infrastructure
by using existing mtrace functionality.
Add new logging for complete scan request and response path.
Change-Id: Iab48b0f2a6ab9d0ec14e3110eb628b6d1731df53
CRs-Fixed: 2308237
__wlan_hdd_open_ll_stats_debugfs() currently does not ensure the given
adapter is up. This can lead to sending an invalid vdev Id to firmware.
Ensure the given adapter is up before sending the link layer stats
request to firmware.
Change-Id: I1c81f56ec795bc782404293c0f4abd8bbeb6b124
CRs-Fixed: 2306604