Using a switch case as a method for mapping an enumerated value to a
handler function has the down side of allowing future changes to pollute
the switch case with additional logic. It also tends to lead to high
cyclomatic complexity. Avoid these issues in hdd_open_adapters_for_mode
by converting the switch case to a vtable.
Change-Id: If91cbaf1e0ed561122b599550f3c450ec47eda31
CRs-Fixed: 2335970
The logic for creating the initial vdevs for a given driver mode is
implemented in two different functions: hdd_open_interfaces() and
hdd_register_req_mode(). This had lead to some duplication between the
two implementations. Instead, unify both functions so the duplicate code
can be removed.
Change-Id: I9a1f74ca14d3d4cda8d05bf6b000038770a1ea05
CRs-Fixed: 2335969
Make the following updates to the extscan stop scan 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: Ie4a693b4a91d728a075cffad3ee368b22d9c5b2a
CRs-Fixed: 2335647
dot11p_mode is currently represented with a uint8_t type, despite an
appropriate enumerated type being available. Change the field's type to
the more restrictive 'enum dot11p_mode' instead of uint8_t.
Change-Id: I847ce0901297b0a3e4312e8ce4124a886320f174
CRs-Fixed: 2335575
Make the following updates to the extscan start scan 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.
3) Address a multitude of checkpatch issues
Change-Id: I68dc988fafb7e14b2b80d1007adf614ddff284e2
CRs-Fixed: 2335045
LFR2 uses ft reassoc, whose process is different from general
connect.
1.ft reassoc, normal reassoc and assoc, all of 3 need deliver
event WLAN_VDEV_SM_EV_START to SM, but need different handler.
2.ft reassoc send vdev start when add bss, not switch channel.
Change-Id: Ieefbcf0a28867be3c8a86d9a912143857c54fe06
CRs-Fixed: 2334194
Previously "qcacld-3.0: Use mac_handle_t in wlan_hdd_main" (Change
If9ddbe0935d859d4c71dc11576cd7062a715b3e9) replaced all instances of
tHalHandle with mac_handle_t in wlan_hdd_main. But subsequently change
"qcacld-3.0: Allow Setting Channel&Bandwidth in STA mode" (Change
Ie9ffc701d93ed1c050375dd56151b7a0da69cdce) introduced a new instance,
so replace it as well.
Change-Id: I01e67401b0eb99b242a7a0b0d161696cbe2fba79
CRs-Fixed: 2335139
hdd_change_adapter_mode() contains a work around for an issue with
userspace requesting station mode on a p2p adapter, expecting the wlan
driver to instead change the adapter to p2p-device mode. Hoist this work
around to the caller, __wlan_hdd_cfg80211_change_iface, so the rest of
the code doesn't need to be aware of it.
Change-Id: Ic71d6d99b1df7339dda892adcfb27605fa8dfc59
CRs-Fixed: 2332798
Some common parts of __wlan_hdd_cfg80211_change_iface are repeated in
multiple places. Factor out these common sections to reduce redundant
code and ensure they stay synchronized in the future.
Change-Id: I80d47f1c9a14342f777bfc169d85287a3e709a58
CRs-Fixed: 2332780
__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
NAN data path interface (NDI) VDEV uses AP MLME callbacks for
VDEV state machine but some state actions are no op for NDI mode.
Update lim module to transition from NDI from VDEV START state to
VDEV up state and bypass beacon update and VDEV up WMI for NDI mode.
CRs-fixed: 2330270
Change-Id: I648811b41020a4e09aa6c7c436ec2c9693c51d97
Following changes were made -
- Replace #ifdef CONFIG_LITHIUM with QCA_WIFI_QCA6290 and QCA_WIFI_QCA6390
flags. CONFIG_LITHIUM is not defined to be used within the code, the
individual chip specific flags are defined, hence use those.
- Pass IPA enable/disable ini configuration to DP layer
Change-Id: If0bfdaf408b06a922923e998c0c6ad2157e2c080
CRs-Fixed: 2328711
In wma_self_peer_remove, sta_self_wmi_rsp is allocated and sent as
params to wma_fill_hold_req for WMA_DELETE_STA_REQ. However, if
wma_fill_hold_req fails and returns NULL, the memory allocated for
sta_self_wmi_rsp is not freed leading to memory leak.
Free sta_self_wmi_rsp in the error handling case for wma_fill_hold_req
in wma_self_peer_remove.
Change-Id: I8df840b39284e00a8c8be114c0fec13c3c199fc6
CRs-Fixed: 2334580
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
Policy Manager component needs to adopt a new INI/CFG
infrastructure.
Provide a new infrastructure and remove old INI/CFGs related
to policy manager component.
CRs-Fixed: 2324393
Change-Id: Ia16845c2aef3c5877b0b164fcef13fe7cd41c736
Make the following updates to the passpoint set/reset logic:
1) Exclusively use the Unified WMI data structures.
2) Refactor the vendor command processing to improve code
maintainability.
Change-Id: I39945b2cec90c3f34c81e5ca525842f1af9340f7
CRs-Fixed: 2334234
After enable AC based flow control feature, there are several
invalid messages are brought because of new added flow control
actions. Add new dump strings for these new added actions.
CRs-Fixed: 2332343
Change-Id: I6123e222a6124d992c094a2931fb7c8111c7a71a
Protocol stack supposed to be HLOS-agnostic, but there is some use of
Linux fixed-width types u8, u16, and u32. These should be replaced with
C99 fixed-width types uint8_t, uint16_t, and uint32_t so that they will
correctly be HLOS-agnostic and work on non-Linux targets.
CRs-Fixed: 2326407
Change-Id: I8f9099a0170e4f94a54cdd6cc6c2e321a29af717
Featurize MCL only WMI APIs by compiling them as a separate source.
It enables profiles/configs to selectively compile the WMI APIs
based on whether the feature is required or not.
Featurize WMI APIs and TLVs that are specific to MCL -
- DSRC
- NAN
- P2P
- PMO
- roaming
- concurrency
- STA
- Generic MCL specific WMI (STA)
Change-Id: I3b005b8f60491c7d27cf221b7505116e1b9c1a38
CRs-Fixed: 2333916
During hdd wlan reinit VDEV delete command is not sent to firmware
since cds_driver_recovery is True and it is set to False at later stage.
To fix this, remove recovery check in wma_vdev_detach to send WMI command
to FW as WMI is active during reinit phase.
Change-Id: I94b7437edbf0c5bccbc469ce01940b14b46258fb
CRs-Fixed: 2333475
In __wlan_hdd_cfg80211_suspend_wlan(), if suspend fails due to
hdd_suspend_wlan() < 0, dp rx thread waits to get resume during
WLAN resume callback.
Resume dp rx thread in __wlan_hdd_cfg80211_suspend_wlan() to
handle error path.
Change-Id: Id53bcbae782b31c28fe785fab9da406482cf1794
CRs-Fixed: 2333112
Make the following updates to the extscan set epno logic:
1) Exclusively use the Unified WMI data structures.
2) Refactor the vendor command processing to improve code
maintainability.
Change-Id: I8179fd9b9acced01956232f113d656e0137231b5
CRs-Fixed: 2333537
While handling the WMI_HOST_SWBA_EVENTID WMI FW event, driver invokes
corresponding wma handler wma_beacon_swba_handler. The event argument
comes directly from the FW. Towards the end of the function,
wma_beacon_swba_handler invokes wma_send_bcn_buf_ll and passes the
original TLV structure, param_buf, as an argument. wma_send_bcn_buf_ll
pull tim_info and p2p_noa_info from the param_buf structure. These
structures can be optionally defined in the message with zero length
resulting in them being NULL pointers. Later, throughout the function
they are then deferenced without every checking if they are in fact NULL.
Fix is to make sure in wma_send_bcn_buf_ll, param_buf->tim_info and
param_buf->p2p_noa_info dereferenced only after NULL check.
Change-Id: Ic27b59dd35f74413e9a978627047855e655b9ed1
CRs-Fixed: 2331956
Check if rs_results->total_num_tx_power_levels is allocated, before
checking the OOB in wma_unified_radio_tx_power_level_stats_event_handler
for new fixed_param->total_num_tx_power_levels
Change-Id: I3e3caf295fad568ecc8e294e6224356ea8a84da6
CRs-Fixed: 2333042