In cfg80211_change_iface if we don't get previous mode vdev
references then error is returned. In a case where there is
no vdev existing before this will cause sap failure.
Fix is if previous vdev reference is not available skip vdev
access and continue further operations.
Change-Id: I3209f1e1a86050baf389f20029a97a5bdb50d71d
CRs-Fixed: 2352385
Remove the definitions and related internal data structures and
value retrieving code of the following 3 CFG INI items, due to
they're not used to control any driver behavior any more.
-gVccRssiTrigger
-gVccUlMacLossThresh
-gEnableBypass11d
Change-Id: I919bf191f48db4bf0947235ff804aed2b4b1bdb9
CRs-Fixed: 2352224
In order to conform to the coding style rename local variables in
function hdd_cfg_get_config().
Change-Id: I2b3d3d6b5c3b630967bed389f7f33b6c7b091413
CRs-Fixed: 2352065
Refactor HE cap cfg items to new mlme component using
updated cfg architecture.
Change-Id: Ib983d3fc983dfffd2eee7efd1a4e3681d26d84a6
CRs-Fixed: 2351420
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). A prior set of changes has refactored all of
the individual sub-ioctl handling into separate functions with a
consistent signature. Now convert __iw_setint_getnone() to use a
vtable as the last step of refactoring.
Change-Id: I7f9d5442083a58b9f36e3bb874748d0d5068bc12
CRs-Fixed: 2350073
1) Some CFG INI options' comment text are missing.
Add them so automation script can parse and retrieve the
correct comment text.
2) Fix some discrepancies in existing CFG INI comments.
3) Delete some INI items that are not used any more.
Change-Id: Ia2fc4fab70f78e99d14fd1f7f2b4248e6484ee32
CRs-Fixed: 2350612
With the introduction of new 32 bit ini for per vdev
nss and chains, the legacy inis are no longer required.
Cleanup the legacy inis of per vdev nss for both the
bands.
Change-Id: Ia4c8301062457a15a9bda49dca4a4a36a4372f88
CRs-Fixed: 2349204
Add prefix NSS_CHAINS to band info to remove duplicate band
info in driver, and minor code cleanup.
Change-Id: I3a8446af6b6c272cfcb19583540e2384f64e3a1a
CRs-Fixed: 2347624
Accept the command to change the dynamic params like nss
and chains only when the vdev is in connected state for
STA/P2P-CLI, and in start state in case of SAP/P2P-GO.
Change-Id: Id4d2e3c4ac6745e25c7005af0b3c95e3e1db4533
CRs-Fixed: 2347488
In the API drv_cmd_get_antenna_mode, the driver gets the
hdd_ctx->current_antenna_mode, which is pdev level, but
with the new feature of per vdev antenna mode, return the
num of chains for that particular vdev.
Change-Id: Ia8180592c34a29a7593943fc5e10c781682aac56
CRs-Fixed: 2347494
If the new feature of per vdev antenna mode is enabled, there
is no need of per pdev level antenna mode, as it may happen that
one vdev configures its antennas as 2, and the other vdev configures
its antennas as 1, which could lead to change of pdev level antenna
mode, by a vdev level command.
Fix is to keep the antenna mode only if the feature is not enabled.
Change-Id: I67011a5b88f8750cab22d76b1bf6d8ccc1f5375d
CRs-Fixed: 2347495
Refactor the code to a new API, and
inform the TDLS module about the new
nss change.
Change-Id: Ic478bed0634ba1f862d844994a0836a23eda3f56
CRs-Fixed: 2347496
Populate and verify the num of chains params sent by
the user and then send it to the fw.
Change-Id: I9a4870913ce9484d1a5dc5fddcade72bdafb6116
CRs-Fixed: 2347501
Populate the ini and dynamic params from the mlme
component and store them to the respective
vdev component in mlme priv obj during vdev create.
Change-Id: Ic80526e51ba97c24b5340843fc97406a6ba4c7ef
CRs-Fixed: 2347504
In __wlan_hdd_cfg80211_del_station while disconnecting all the
connected stations, driver send both disassoc and deauth and wait
for disconnect to complete for the STA. Once disconnect is completed
for the 1st STA, it continue to disconnect the next STA.
Now as both disassoc and deauth were queued and both of them set the
wait event resulting in wait event set twice for a disconnect
indication. This result in wait completion for the next STA disconnect
as well. This lead dynamo effect and multiple STA disassoc and deauth
commands are added in the serialization queue filling it up.
Fix this by sending only deauth STA req and removing the duplicate
disassoc STA req. Thus the next command will be queued only when
disconnect is completed for 1st STA.
Change-Id: I4ae6c578a3177a2a6ff75e6e75606e8c5e2f81a0
CRs-Fixed: 2350557
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal update hdd_we_set_11d_state() to conform with a consistent
int()(adapter, value) signature.
Change-Id: I96a7424630ffc9fd3a8713d980fe6efad4a7be05
CRs-Fixed: 2350071
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_MODULATED_DTIM ioctl handling into a separate
function.
Change-Id: I81701e1c54e62deb01468bb16a940ae823014d04
CRs-Fixed: 2350072
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_11AX_RATE ioctl handling into a separate
function with a consistent int()(adapter, value) signature.
Change-Id: Iaaba30073d59f96faddcb9f9baaabc60b8e58ee5
CRs-Fixed: 2350070
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_CONC_SYSTEM_PREF ioctl handling into a
separate function.
Change-Id: I89a0037902935d7ebf3c5ba3064ff9469d025c13
CRs-Fixed: 2350069
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_SCAN_DISABLE ioctl handling into a separate
function.
Change-Id: I412098141c3d4664c24ef40d10d0372051b19b6b
CRs-Fixed: 2350068
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_DEBUG_LOG ioctl handling into a separate
function.
Change-Id: I38b10ebef241cf202d17557293851af3b8af36ec
CRs-Fixed: 2350067
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_MCC_CONFIG_LATENCY and WE_MCC_CONFIG_QUOTA ioctl
handling into separate functions.
Change-Id: I3396b436d221871d3c22d838af1fbdfd229c7d66
CRs-Fixed: 2350066
During sub-system recovery, the platform driver invokes the wlan's
shutdown and reinit callbacks. Reinit is called regardless of the result
of shutdown. Currently, the SSR transition is aborted in shutdown in the
event of a failure. This results in a panic during reinit, which expects
to be protected by that transition. Regardless of the result of
shutdown, do not stop the SSR transition such that the entire recovery
process is properly protected.
Change-Id: I3685920de5a7d47f6334bf4d8389cb267a46fac2
CRs-Fixed: 2350868
If the STA is already present, and a SAP has to come up,
return the STA channel as the best channel, and skip ACS,
if the Hw_mode is set according to the STA channel
Eg:- STA on channel 1, and hw_mode is 11B, or 11G.
Also the driver doesnt check the DFS master mode, and
includes the DFS channels in the ACS scan list, which
may result in SAP bringup on a DFS channel
Check the conc_channel, and acs_policy ini, and return the
best channel as the STA channel.
Also exclude the DFS channels from the ACS scan list if
DFS master mode is disabled.
Change-Id: I70951d7b51b620db8cda7ed771d5c36a7571a125
CRs-Fixed: 2340965
Pktlog is not disabled as part of stop procedure. If
the DUT was booted up with WLAN turned off, the modules
will be loaded and after a timer expires they are
unloaded. At this point if WLAN was turned on, the start
procedure will try to enable pktlog and find that it
is already enabled, and will not send indication to
firmware.
Ensure pktlog is called as part of stop procedure.
Change-Id: If17fb597cabed59ef5a3220ba7e536820a940eaf
CRs-Fixed: 2349956
For the case that there is leakage of vdev, get ref of vdev by mac address
might get the incorrect vdev object. Get vdev from adapter directly.
Add help function to get vdev reference counted before use it.
Change-Id: I7d4ad1a2b7031f2877adb19bc15f690616e87c74
CRs-Fixed: 2312152
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_CHANNEL ioctl handling into a separate
function.
Change-Id: I66a8e9902b8b2a1ab2df0088630dc9a4923fbabd
CRs-Fixed: 2350065
Some CFG INI options' comment text are missing.
Add them so automation script can parse and retrieve the
correct comment text.
Change-Id: I4f79b075244c18490c52bc9a178d36c47db43878
CRs-Fixed: 2348307
Wlan should release bus clock and bandwidth when module stop,
otherwise when system enter into X0 shutdown, voted clock is still on.
Change-Id: I735cbed1289b17ab2fbc81e35043f1f663a60473
CRs-Fixed: 2341653
The driver mode can be dynamically controlled via the module parameter
"con_mode," which triggers the callback con_mode_handler(). However, if
the wlan module is loaded with a non-default con_mode, this callback
handler is invoked before module init (e.g. 'insmod wlan.ko
con_mode=5'). If con_mode_handler is invoked before module init, simply
return success, as no processing is needed.
Change-Id: Iaa426188d13507cc6c7f09a03effd881854bbf3d
CRs-Fixed: 2349370
hdd_is_valid_mac_address() currently takes a parameter named pMacAddr.
Per the Linux coding style "mixed-case names are frowned upon" and
"so-called Hungarian notation [...] is brain damaged" so rename the
parameter to mac_addr to conform to the naming convention. As part of
the cleanup relocate the documentation so that the interface is
documented, not the implementation.
Change-Id: I4abff563bb396a4ffce1356527307ce3bfed8a16
CRs-Fixed: 2347990
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_AMPDU ioctl handling into a separate
function.
Change-Id: I76c11e2a099c2f9734a0e9b0208b339406b4a22c
CRs-Fixed: 2348656
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the "set dbg" ioctl handling into separate functions.
Note that the existing logic that updates the fw_log_settings in the
HDD context is obsolete, so remove that logic as part of the
refactoring.
Change-Id: Ibf632d1ef37905ca8159ea997dc07e4f2f7d12cc
CRs-Fixed: 2348502
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the "set vdev" ioctl handling into separate functions.
Change-Id: I73cc9fd5400fadb5812687d13741b7c430a0045c
CRs-Fixed: 2347909
In wlan_hdd_cfg80211_start_bss(), beacon head buffer is typecast
to ieee80211_mgmt structure without checking for buffer length
against beacon header length which may cause OOB access
while accessing iee80211_mgmt structure.
To address this, add check for beacon head length against beacon
header length before typecasting to iee80211_mgmt structure.
Also while accessing supported rates, length given to function
wlan_hdd_cfg80211_get_ie_ptr() is the total length of management
frame that also includes header length which may cause OOB access
while getting supported rates.
To address this, send only beacon data length and exclude header
length to function wlan_hdd_cfg80211_get_ie_ptr().
Change-Id: I442b236e48c3be8cbd8019c5c339593f9aa74e3e
CRs-Fixed: 2335957
Discrepancies between some of the CFG INI names and their comment
text were discovered during reviewing.
Fix them by making all comment text aligning with the real CFG
INI names.
Change-Id: I1bf5417ea79727da451d0d6ca1a5cd100523e49a
CRs-Fixed: 2348140
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.
As part of integrating the DSC APIs into HDD, protect psoc sub-system
recovery (SSR).
Change-Id: I0374cdb22259763b0f61a4bea89fdb4ffc2c215c
CRs-Fixed: 2348567
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.
As part of integrating the DSC APIs into HDD, protect psoc idle shutdown
and restart.
Change-Id: I416a8f4cfb67fabce377ff96715e3a372a3aed7d
CRs-Fixed: 2347019
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.
As part of integrating the DSC APIs into HDD, protect psoc probe and
remove.
Change-Id: I5db13fb321695f535b5765c637ee638396e5ca6f
CRs-Fixed: 2347016
Typedef tpAniSirGlobal is obsolete, so replace it with the underlying
struct pointer or handle conversion function as appropriate.
Change-Id: I4dd5d91f54bfb57d6322a5e3c91795b80393da8a
CRs-Fixed: 2347908
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the "set pdev" ioctl handling into separate functions.
Change-Id: I4f382b7681710ce50cb5b2ffe65e4ad03d73a670
CRs-Fixed: 2346189
Change "qcacld-3.0: Remove wlan_sap_set_pre_cac_status() handle param"
(Change-Id I1c280be8c7c65a28267a9ab38d76fb8aa94e48af) removed an
unused handle param. As a result the handle param is now unused by
wlan_hdd_set_pre_cac_status(), so remove it from there as well.
Change-Id: Ida61a996b9203928af3a5636c219ab61c68d7d19
CRs-Fixed: 2347654
Function wlan_sap_set_pre_cac_status() currently takes as one
parameter a tHalHandle handle. This handle is converted into a MAC
context pointer. That MAC context pointer is then tested for NULL but
is otherwise unused. Since the MAC context, and hence the handle, are
unnecessary, remove them.
This is part of an ongoing campaign to remove or replace all instances
of tHalHandle.
Change-Id: I1c280be8c7c65a28267a9ab38d76fb8aa94e48af
CRs-Fixed: 2347653