As part of CFG convergence, few INI parameters
were moved to under the CFG module but were
not cleaned up in the wlan_hdd_cfg files.
Cleanup the wlan_hdd_cfg files by removing
unused INI parameters
Change-Id: I8b90d11d613485d17fcfe7c4157001b7415f8cc8
CRs-Fixed: 2347108
In order to conform to the coding style rename parameters pMacAddress
and staId to function hdd_cfg_get_config().
Change-Id: Id4dcf625b4c8476631dccb6d9cbe2f6a63f74e4c
CRs-Fixed: 2352066
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
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
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
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
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
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 "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
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 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
As part of tdls peer assoc request, WMI_SERVICE_PEER_ASSOC_CONF is
checked and a timer of 6 sec is started. But, in case of any failure
for peer assoc in host, This is not stopped and waited for timer to
expire and sends the response with failure status.
Stop the peer assoc confirm timer and send the add sta response with
failure status in case of any failure in host.
Change-Id: If6ba6aa1297afaea1fd86bf406dcbb6e4e461d25
CRs-Fixed: 2345086
hdd_wlan_startup() does psoc create, psoc start, and vdev create phases.
Split the vdev create phase from the two psoc phases.
Change-Id: I9e2be1e257f80c19f55ec25f809858c7e107f640
CRs-Fixed: 2343033
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 driver load
(insmod) and unload (rmmod).
Change-Id: I37fba3ec4c4c59dedace0ce0f0421d2a442ab290
CRs-Fixed: 2346211
Function crda_regulatory_entry_default() no longer exists, but the
prototype is still present, so remove the obsolete prototype.
Change-Id: I1713ae66489da0deee95d165b704bce31dcc111a
CRs-Fixed: 2345153
The platform driver uevent handling in WLAN handles both the firmware-
down and "recovery" events. However, the recovery event on snoc
platforms is actually the firmware-crashed event. Recovery _is_ a valid
uevent for pcie platforms, but I20db3698602ea273038a3f024b4e5f61639f6d74
is adding support for the firmware down event.
Additionally, there is no good reason to handle both events, and the
various handling logics are spread across both events with little rhyme
or reason. Remove handling of the "recovery" platform uevent, and move all
associated logic to the firmware-down uevent handling.
Change-Id: I36b6f607438c930dff1936f372af80be311dfe49
CRs-Fixed: 2339357
Move power stats from the debugs to sysfs. Also previously
power stats was maintained per vdev but the data received
from the firmware is per pdev. Hence move the power stats
implementation from vdev to pdev.
Change-Id: I10df003fe8f79d35d0758b56d971f4973d27750b
CRs-Fixed: 2345097
QCA_CONFIG_SMP defined to support some thread scheduling features on
SMP target, while some variants defined only for SMP purpose are
referred out of this MACRO, like is_ol_rx_thread_suspended,
ol_rx_event_flag and ol_suspend_rx_event.
Defines separate functions for SMP/UP target to avoid it.
Change-Id: I01884644b7b77e55514cf00426609643386480e8
CRs-Fixed: 2344683
Currently pointer of the vdev object is sent to the callback
hdd_wmm_is_acm_allowed to get the adapter. But this can't
be used to get the adapter. Instead pass the vdev id to get the
adapter.
Change-Id: I3cb2f58d09a263c77a3696a36e863cc4137c7821
CRs-Fixed: 2341804
Enable the scatter-gather feature for wlan interface, if the wlan
interface is binding to the bridge, which might enable SG & TSO feature
for the bridge and improve the TCP TX throughput much better.
Change-Id: I26101756266878f9f41c5dc2d0b5dad189b44ee1
CRs-Fixed: 2246512
Add the following HT Caps related INI/CFG items to MLME component.
gShortPreamble, CFG_HT_AMPDU_PARAMS, CFG_EXT_HT_CAP_INFO,
CFG_HT_INFO_FIELD, gEnableAMPDUPS and gMaxAmsduNum.
Change-Id: I019961016a2f0e39c7c62066c04788d3bd3d37e7
CRs-Fixed: 2318579
Add the following WMM BE VO ini configs to MLME cfg:
1. CFG_QOS_WMM_INFRA_DIR_AC_BK_NAME
2. CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_NAME
3. CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_NAME
4. CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_NAME
5. CFG_QOS_WMM_INFRA_SBA_AC_BK_NAME
6. CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_NAME
7. CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_NAME
Introduce the basic infra APIs related to these configs
from mlme.
Change-Id: I1f8e6f0fa1ff15eda36a20ee06772c4a1ddd9ca8
CRs-Fixed: 2327690
Add the following WMM BE VO ini configs to MLME cfg:
1. CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME
2. CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_NAME
3. CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_NAME
4. CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_NAME
5. CFG_QOS_WMM_INFRA_SBA_AC_BE_NAME
6. CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME
7. CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_NAME
Introduce the basic infra APIs related to these configs
from mlme.
Change-Id: Ibaf06ba2df07a4805d31a4748809c44d143dd12e
CRs-Fixed: 2327689
Add the following WMM AC VI ini configs to MLME cfg:
1. CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME
2. CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME
3. CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME
4. CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME
5. CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME
6. CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME
7. CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME
Introduce the basic infra APIs related to these configs
from mlme
Change-Id: I320f49b216659937dc7f708fdbb7849ae415e249
CRs-Fixed: 2327687
Currently if any interface comes up on any of the MAC address
from the driver's default MAC address list and if this MAC is
changed dynamically, now if this interface is deleted, it will
not be able to release this MAC address as this newly
configured MAC doesn't match with any of the MAC from the
driver's default MAC addresses and driver is not able to
release this MAC cosidering it as invalid MAC, because of
this corresponding MAC interface mask bit is also not getting
reset and will never get reset, indicating corresponding MAC
is not available for use. If MAC addresses are changed for all
the interfaces which initially comes up on driver's default
MAC address and later these interfaces are deleted, driver
will not be able to add any of new interfaces even there is
no active interface currently in the driver.
To resolve this issue add one more MAC address list for dynamic
addresses cache all the dynamic address changes in this list,
while releasing the MAC on interface delete, release the MAC
from this dynamic list and reset the corresponding interface
mask bit.
Change-Id: I9b6448dced2d3af75625a5c862d2913c33f9983c
CRs-Fixed: 2328304
Add the basic infra for legacy DP CFG items and the APIs
to be used from other components.
Change-Id: If7ad0e02c65e04ea13a308e680c9ba3b3d84ae25
CRs-Fixed: 2324099
hdd_set_rx_stbc() is called from both the STA and SAP ioctl
handlers. In the STA case the caller checks the mac_handle, but in the
SAP case the mac_handle is not checked. This could result in a bad
mac_handle being used in the SAP case. In order to cover both cases
relocate the mac_handle test to hdd_set_rx_stbc().
Note that this has the added benefit of reducing the cyclomatic
complexity of __iw_setint_getnone(), one of the HDD functions with the
highest complexity.
Change-Id: I9442a8a46da4066c8b4dafe2cf9ce64f608bb3a9
CRs-Fixed: 2339228
hdd_set_tx_stbc() is called from both the STA and SAP ioctl
handlers. In the STA case the caller checks the mac_handle, but in the
SAP case the mac_handle is not checked. This could result in a bad
mac_handle being used in the SAP case. In order to cover both cases
relocate the mac_handle test to hdd_set_tx_stbc().
Note that this has the added benefit of reducing the cyclomatic
complexity of __iw_setint_getnone(), one of the HDD functions with the
highest complexity.
Change-Id: Ie7a01ddbfb958ab87b7baf11e93d8a86c32744b7
CRs-Fixed: 2339227
hdd_set_ldpc() is called from both the STA and SAP ioctl handlers. In
the STA case the caller checks the mac_handle, but in the SAP case the
mac_handle is not checked. This could result in a bad mac_handle being
used in the SAP case. In order to cover both cases relocate the
mac_handle test to hdd_set_ldpc().
Note that this has the added benefit of reducing the cyclomatic
complexity of __iw_setint_getnone(), one of the HDD functions with the
highest complexity.
Change-Id: I97827ee257c9e15e24468ed9800080375f082ff1
CRs-Fixed: 2339226
During csr stop, csr_roam_close_session try to purge all the pending
commands for the vdev. But as vdev is already logically deleted,
the cmds are not purged as the purge by vdev API fails to get the
vdev ref.
As in csr stop, driver clean up all the sme session so instead of
calling purge commands for vdev, call purge cmd for all the vdev.
Also the active command timeout for the delete vdev is 30 sec while
HDD waits for 15 sec. The active command timeout should be less
than the HDD timeout. Thus set active cmd timeout as 10 sec and
HDD timeout as 11 sec
Change-Id: I1d45de261c50f1835379a9cc1df4631f3e32f459
CRs-Fixed: 2339694
1. Report NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA to
cfg80211.
2. Indicate Random MAC addr frame to source adapter.
Change-Id: Ica66fb43636fc1609febd87b6e6398dac3af25f3
CRs-Fixed: 2322077
Function wlan_hdd_update_phymode() is called from two ioctl handler
functions, __iw_softap_setparam() and __iw_setint_getnone(). Unlike
most of the ioctl "setter" functions which take two parameters (an
adapter and a value), wlan_hdd_update_phymode() currently takes four
parameters (a net device, a mac handle, an hdd context, and a value).
In addition, currently the HDD function with the highest cyclomatic
complexity is __iw_setint_getnone(). In order to reduce the complexity
of that function all of the switch/case handlers are being refactored,
and in anticipation of eventually using a vtable, the refactored
functions all expect two parameters, an adapter and a value.
In order to align with that goal, refine wlan_hdd_update_phymode() to
expect those same two parameters. Note that the net device, mac
handle, and hdd context that are currently being passed can all be
derived from the adapter.
Change-Id: Ib919e6751aee182e2d8fde90a8446935447123db
CRs-Fixed: 2338381
Currently host is caching all the connected sta info
in case of SAP, once the sta count reaches to MAX, below
mentioned issues occurs:
1. Driver can not cache the information of newly connected
stations.
2. Some of the info is cached at the time of connection while
remaining info is cached during disconnection. In the
disconnect path driver tries to cache some of the info
such mc_bc count, disconnect reason code, since driver can't
cache anymore info, it does not find the current station which
is getting disconnected in cache sta info structure leading to
an error, and driver is returning an error without completing
the wait for disconnect event which is resulting in timeout.
Since sta_disconnect comes with rtnl_held, any other process
is not able to get the rtnl_lock until this timeout occurs.
To address this issue below mentioned two measures taken care:
Clear the oldest cached sta information and save the newly connected
station's information.
In the disconnect path, do not return any error and simply proceed
with disconnection as failure to cache the information of sta
should not stop the disconnection process.
Change-Id: Ia955a6774033fdfa91ff1fa7c8832b3ec7e8e1a0
CRs-Fixed: 2333075
The code to start and stop the idle shutdown timer in HDD is currently
copy-pasted in multiple locations. Abstract this logic behind two new
APIs, and call these APIs where appropriate.
Change-Id: I73b05e603454a4817cb9c1606c1207d7fe68e5ab
CRs-Fixed: 2337755
qdf_opmode_str() has recently been added for converting a vdev operating
mode into a human readable string. Historically, HDD has used
hdd_device_mode_to_string() for this purpose. Replace
hdd_device_mode_to_string() with qdf_opmode_str() such that there is one
function for mapping vdev operating mode to human readable string.
Change-Id: I38880f915b617b5c02b2029762eacdf6ef8bac15
CRs-Fixed: 2336065
__wlan_hdd_cfg80211_change_iface() currently uses QDF_OPMODE and
nl80211_iftype relatively interchangeably, which forces the reader to
mentally convert between the two as they go and disperses the real
conversion of one into the other throughout the code. Instead, do the
conversion from nl80211_iftype to QDF_OPMODE once up front. This way
usage can be consistent and more easily followed.
Change-Id: Ie578865c3724e4a85bd249352288afac10928bb4
CRs-Fixed: 2331969
As part of new INI/CFG model, move gEnableStaConnectionIn5Ghz
ownership from HDD to policy manager.
CRs-Fixed: 2324393
Change-Id: I894467bab4b0bddf309463802b98904ef1150536
As part of new INI/CFG model, move gEnableMCCAdaptiveScheduler
ownership from HDD to policy manager.
CRs-Fixed: 2324393
Change-Id: Ib86004c4ee753b37b392de69551c777e3e9011de
As part of new INI/CFG model, move dbs_selection_policy,
vdev_priority_list, channel_select_logic_conc INIs'
ownership from HDD to policy manager.
CRs-Fixed: 2324393
Change-Id: I8b38916d92931ef9cd1727481740bc61cad8f808
As part of new INI/CFG model, move gEnableCustomConcRule1 and
gEnableCustomConcRule2 ownership from HDD to policy manager.
CRs-Fixed: 2324393
Change-Id: I11952819a6ba5581de51d9b58969ff02d582f233
As part of new INI/CFG model, move gMaxConcurrentActiveSessions
ownership from HDD to policy manager.
CRs-Fixed: 2324393
Change-Id: Iac1451fc457d9bceee73596affdae54895917040
As part of new INI/CFG model, move gSystemPref ownership
from HDD to policy manager.
CRs-Fixed: 2324393
Change-Id: Ia586896ea55c6e71d8dcff705bf0e74879931dbb
As part of new INI/CFG model, move gWlanMccToSccSwitchMode ownership
from HDD to policy manager.
CRs-Fixed: 2324393
Change-Id: Id8bdee52ebf83b1c8b3c8f9132a2fc74b28f42a0