The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tSirSupportedRates typedef does
not meet any of those criteria, so replace it (and the "tp" variant)
with a reference to the underlying struct.
Further note the Linux Coding Style frowns upon mixed-case names
and so-called Hungarian notation, so in conjunction rename the
underlying struct to be in compliance.
Change-Id: I5007379a50223b6de85830e7ae389e65cdb8e4d3
CRs-Fixed: 2392398
As per new requirements to debug game latency related issues,
implement an iwpriv command which:
1) sends a bitmask to FW's Wireless Latency Manager module (WLM).
2) receives from WLM a measurement header along with measurement data.
3) converts both the header and data to a hexadecimal encoded string.
4) returns the hexadecimal encoded string to userspace
Change-Id: Ic79c4b757fe2d4e806306750250e3c102745c486
CRs-Fixed: 2388920
As part of the effort to use a single definition for the maximum number
of vdevs, replace WMA_MAX_SUPPORTED_BSS with WLAN_MAX_VDEVS.
Change-Id: I7f0bd615b65e21dc0052933d5e194ca650336b42
CRs-Fixed: 2393167
Check if vdev is active for the following vdev commands before
sending it to firmware:
1. WMI_SCAN_PROB_REQ_OUI_CMDID
2. WMI_VDEV_WMM_ADDTS_CMDID
3. WMI_VDEV_SET_WMM_PARAMS_CMDID
4. WMI_BCN_TMPL_CMDID
This will avoid the race condition where the vdev is deleted
and the vdev related commands for the deleted vdev are sent
to firmware before wmi_stop_inprogress is set at wmi.
Change-Id: Ib3eacc191002395de9640516b9088b01b3a64966
CRs-Fixed: 2392770
Currently the driver uses structure for peer mac address
to store the mac address.
Use the already existing peer mac address array for the same.
Change-Id: Id3715f6abbbf23f4f8d1836eb548b5193a62500a
Check peer address for group or zero before peer create
as there is no way a MGMT frame can be sent to such
a peer, and it also may lead to peer leak in FW, if
this peer is created, as peer delete doesn't go for
such a peer.
Fix is to have a sanity check and then only allow
peer create in host and FW.
Change-Id: Ia7f9e870f10ff8fea5b03f01697370d05ca06668
CRs-Fixed: 2392771
chan, a pointer to wmi_channel is derived from
param_buf->chan. param_buf->chan is derived from
WMI_ROAM_SYNCH_EVENTID_param_tlvs structure and
can be null. This may lead to null pointer dereference
when chan try to access the mhz field, chan->mhz.
Change-Id: I84ade344d2df3dfb5e35e7afaca3ddb768e22769
CRs-Fixed: 2385447
Flag WLAN_FEATURE_NAN_DATAPATH was added to protect NAN Datapath
related code, while WLAN_FEATURE_NAN_CONVERGENCE was added to
protect the converged code inside NAN Component. Since the
original NAN Discovery related code has now been moved inside
NAN component and NAN Datapath cannot exist without NAN Discovery,
keeping these flags separate doesn't make sense. Combine these
two flags with WLAN_FEATURE_NAN flag which is the original NAN
feature flag.
As a cleanup of NAN code, combine all NAN related flags with
WLAN_FEATURE_NAN flag.
Change-Id: If98ecaace17f8724e9c28325ef61e721f42e1d8f
CRs-Fixed: 2377375
As part of CFG ini convergence, remove the macros of WNI
and replace them with the new enums of mlme dot11 mode
Change-Id: Ib7fbf480aa067d02690eb1448c74fcc083d94c59
CRs-Fixed: 2389401
Make the following updates to the "set scan oui" 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) Replace instances of mixed-case identifiers.
4) Document the API definitions, not the implementations.
Change-Id: I5df3962fc45395b37b4e566f98b840e37f601d26
CRs-Fixed: 2389640
WNI CFG needn't to download since all wni cfg refactored based on new
cfg framework, so remove WNI_CFG_DNLD_REQ.
Change-Id: Icd85b7797fcbc41debe55edb6b1f68478797d726
CRs-Fixed: 2387589
Legacy cfg is cleaned up since all wni cfg refactored based on new cfg
framework, so remove unused cfg messages.
Change-Id: Ibb31eae1d17dcd9c2481b13c6246dd89b954e710
CRs-Fixed: 2385963
Change I93743c3b1e3180589a3af83ed9e51d8dc95324d9 ("qcacmn: Rename
sme_session_id in struct add_ts_param (1/2)") introduced a new name
for the sme_session_id field in struct add_ts_param, so use the new
name, vdev_id.
Change-Id: I84b21c14b9254996ff034de8786838e89bc52b38
CRs-Fixed: 2384158
Fix possible null pointer dereference while handling
WMI_REPORT_STATS_EVENTID from firmware.
Change-Id: Id8b4f7c26bbae428cd7bc6f2f88b5bd72fd27284
CRs-Fixed: 2380746
Clean up CFG_MAX_SCAN_COUNT CFG CFG item.
Remove ini for max_scan_count. Use WLAN_MAX_ACTIVE_SCANS_ALLOWED
to initialize max_scan_count and send to firmware.
Change-Id: I52e07b63a82297d30f2532bc5a8e05004877b141
CRs-Fixed: 2382308
Since all wni cfg is refactored based on legacy new cfg framework, no
legacy cfg files is needed now. Cleanup related files in this change.
Change-Id: If46ae4c59f1010a655aa65e3502fc0c660e33cdc
CRs-Fixed: 2383387
When roaming is completed if the phymode of the target AP is
different from current phymode, then firmware will have updated
phymode and host driver will have older phy mode. The host driver
will update the opmode when new opmode is found over beacon or
vht opmode action frame. During opmode updation over
wma_process_update_opmode(), phymode is also sent to firmware.
As the phymode on the host driver is not updated to new value
after roaming and there will be mismatched phymode sent to
firmware. Firmware will not be able to handle this and asserts.
With current design, the channel width and frequency are updated
to wma interface on roam synch complete. Fix is to update the
phymode also after roam synch complete is received to wma iface
based on the new channel width updated.
Change-Id: I54aec080f53d3b49a309f9cb66553ec7c1805c50
CRs-Fixed: 2380456
Refactor firmware, serialization and command timeouts so that
HDD timeout are greater than serialization is greater than firmware
timeout.
The timeouts are defined considering below worst case delay in
firmware.
WMI_VDEV_START_REQUEST_CMDID 6 sec
WMI_VDEV_RESTART_REQUEST_CMDID 6 sec
WMI_VDEV_STOP_CMDID 2 sec
WMI_PEER_DELETE_CMDID 2 sec
WMI_PEER_ASSOC_CMDID 2 sec
WMI_PDEV_SET_HW_MODE_CMDID 2 sec
WMI_PDEV_SET_MAC_CONFIG_CMDID 2 sec
Change-Id: I270e980ed1cf2aee55a1fa4e88ff8ddc845a203b
CRs-Fixed: 2384389
Currently, value of staIndex in dph hash table is not getting
updated after roaming. But diver invokes pe_find_session_by_sta_id
to get PE session to handle eWNI_SME_GET_TSM_STATS_RSP. Due to a
different value of staIndex and staid, session lookup fails for
StaId. This results in failure of IOCTL command "GETTSMSTATS"
after roaming.
Fix is to use bssid instead of sta id to find session in
lim_send_sme_pe_ese_tsm_rsp.
Change-Id: I42745c864ac0292dbcaae05f62a00a141705d431
CRs-Fixed: 2381668
Use the correct variant i.e. HELIUMPLUS version of
wma_is_valid_fw_stats_cmd() for QCN7605(Genoa) - USB and SDIO also.
With the non-HELIUMPLUS variant 'txrx_fw_stats' command was geting
rejected.
Change-Id: I499bc568d7ed58d78dcc4aa86f433a8af76727f2
CRs-Fixed: 2378162
The following PNO related ini items are moved to converged scan
component:
CFG_ENABLE_DFS_PNO_CHNL_SCAN CFG_PNO_SCAN_SUPPORT
CFG_PNO_SCAN_TIMER_REPEAT_VALUE CFG_PNO_SLOW_SCAN_MULTIPLIER
CFG_PNO_CHANNEL_PREDICTION CFG_TOP_K_NUM_OF_CHANNELS
CFG_STATIONARY_THRESHOLD CFG_CHANNEL_PREDICTION_FULL_SCAN_MS
CFG_ADAPTIVE_PNOSCAN_DWELL_MODE CFG_MAWC_NLO_EXP_BACKOFF_RATIO
CFG_SCAN_BACKOFF_MULTIPLIER CFG_MAWC_NLO_ENABLED
CFG_MAWC_NLO_INIT_SCAN_INTERVAL CFG_MAWC_NLO_MAX_SCAN_INTERVAL
Remove legacy ini definitions and related macros for these
ini values.
Change-Id: I81bdbd917969fc8a73e6e5359ca69f78acdf723c
CRs-Fixed: 2375450
Change I057ca0aff4a627c7fcdb9f90a5da46473813f60a ("qcacmn: Address
Unified WMI "get link status" deficiencies") is updating the "get link
status" Unified WMI, so update WMA to align with those changes. Note
that these are interdependent changes.
Change-Id: I508ec083298caa45d4cbb1ba28b21e47e379a804
CRs-Fixed: 2381366
If FW supports thermal throttling feature, add iwpriv and wmi
interface for configuring thermal throttle params.
Disable throttling in driver if FW supports thermal throttling.
Send Thermal configuration controls via WMI commands to fw
Added iwpriv command for user to control throttling
Added code under flag FW_THERMAL_THROTTLE_SUPPORT
CRs-Fixed: 2367015
Change-Id: Ie18016d23d151873e28781d3fac6e6d60245191d
In wmi_process_fw_event_default_ctx, Use same call
signature for MCL as WIN for wma_process_fw_event_handler
Change-Id: Ie361dd762c97667f4ee5bc3bb67fd0d39fbcae94
CRS-Fixed: 2372982
Currently we have same function name/different implementation when set
wmi scan channel list for WIN and MCL, the implementation for WIN side
send_scan_chan_list_cmd_tlv looks more intuitive which will remain with
minor change.
So change MCL side wma_update_channel_list(), change its structure
scan_chan_list_params pass to send_scan_chan_list_cmd_tlv() accordingly,
set struct channel_param instead of setting WMI channel info directly.
Change-Id: Ic414a00c09655b3c999182c7d84e93c179c36467
CRs-Fixed: 2363666
In function wma_update_hw_mode_list, hw_config_type should be read from
the same mac-phy config array to check if next array could be for used
for MAC1 SS_bw settings bas on hw_config_type.
Change-Id: If787b127b5cf0f811344b3322ba84c2956543e14
CRs-Fixed: 2381784
It set roam offload flag to FW when vdev type is sta in
wma_vdev_attach, FW team think this isn't reasonable since it wastes
FW memory if sta isn't disconnected. And required to set this flag
when connected to AP, remove this flag after disconnect from AP.
Change-Id: I5edfb8d5a2cec0e2ffdf34349c99d477860f1339
CRs-Fixed: 2367135
Change Ia0fa016b174ef4b50e2cc339e4e476ec65642dbf ("qcacld-3.0: Use dfs
component support") removed all usage of struct wma_dfs_radar_ind.
Since it is now obsolete, remove the struct.
Change-Id: I9930dff34224a02f6a8bdc9a7fcdb362da1eb1bb
CRs-Fixed: 2379065
Change Iee7274fbc8ae985d034a29f920faa38aab68ccc7 ("qcacld-3.0: Add
VDEV state machine for STA disconnection") removed the implementation
of function wma_sta_send_vdev_down_bss(). However it left behind the
prototype, so remove it now.
Change-Id: Ia43371f6c86632955f67370d3ffc9b2753f797f7
CRs-Fixed: 2379064
Change Ibeb6f99335b4e745335d5968791d9e9187df47f7 ("qcacld-3.0: Remove
legacy scan event handling") removed the implementation of function
wma_scan_event_callback(). However the prototype was left behind, so
remove it now.
Change-Id: I34cd7fa0e9d28c10d73f1000284148eaece042f5
CRs-Fixed: 2379063
Change Ie3783306e0ff5b8a5bbcb6437e982590b03fe040 ("qcacld-3.0: Use
scan for preauth from LIM in roaming") removed all of the roaming
preauth logic from WMA, but it left behind some obsolete protptypes,
so remove these:
- wma_roam_preauth_chan_set()
- wma_roam_preauth_chan_cancel()
- wma_roam_preauth_scan_event_handler()
Change-Id: I9236f641fb80df0e5a6749781adb5af86d8b821b
CRs-Fixed: 2379062
As part of change I5c873b9571228f0d2b4fcd4782267a2cc40fc20a
("qcacld-3.0: Remove the deprecated IOCTL in TDLS") the implementation
of wma_update_fw_tdls_state() was removed. However the prototype was
left behind, so remove it as well.
Change-Id: Ibb08e9f8c8c39eac364b05e72d7c03db306cc8b3
CRs-Fixed: 2379061
Change I542e5afe832619f8c088220cc4456aa7fe4416fd ("qcacld-3.0: Route
the legacy NAN commands through NAN component") removed the usage of
typedef tNanRequest. Since the typedef is obsolete, remove it.
Change-Id: I10e243b4e6998e69027c2f0d5f829cd2a6b27c92
CRs-Fixed: 2379059
iwpriv interface is added for configuring Motion detection
feature specific parameters
Added under flag WLAN_FEATURE_MOTION_DETECTION
Change-Id: Ic20c8c43782cf037317f412962fab4a6928eb0b9
CRs-Fixed: 2376722
Based on new cfg framework, refactors below five WNI cfg items and one
INI cfg:
- WNI_CFG_APSD_ENABLED
- WNI_CFG_OBSS_DETECTION_OFFLOAD
- WNI_CFG_OBSS_COLOR_COLLISION_OFFLOAD
- WNI_CFG_CURRENT_TX_POWER_LEVEL
- WNI_CFG_LOCAL_POWER_CONSTRAINT
- gTxPowerCap
Change-Id: I5307fe73ad931eaec2e9471ddd36cd6d00061c76
CRs-Fixed: 2375860
Check if vdev is active for the following roam related vdev
commands before sending it to wmi:
1. WMI_ROAM_SCAN_MODE
2. WMI_ROAM_SCAN_PERIOD
3. WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD
4. WMI_ROAM_AP_PROFILE
5. WMI_ROAM_CHAN_LIST
6. WMI_ROAM_SCAN_CMD
7. WMI_ROAM_SYNCH_COMPLETE
This will avoid the race condition where the vdev is deleted
and the vdev related commands for the deleted vdev are sent
to firmware before wmi_stop_inprogress is set at wmi.
Change-Id: I8b54bb5663ef517bc58141bc3b96fd9b863fd656
CRs-Fixed: 2344006
In the scenario where vdev response is not received for
SAP start, HDD timer of 10secs expires ahead of vdev
response timer, which is of 12secs due to slub debug
factor. This can result in change interface to be
triggered by supplicant before fw down indication is
received. Vdev is logically deleted and peer removal
in objmgr fails due to vdev get_ref failure resulting
in peer leak on wlan shutdown.
Fix is to remove slub debug factor for vdev response
timeouts.
Change-Id: Id0741226ccaebbabb817853246c7b116bd447128
CRs-Fixed: 2376610
Change I2a28564ccb5ad85d65a62a5e9f0ac6c500a80c2d ("qcacld-3.0: Remove
struct sTdlsLinkEstablishParams") removed the only usage of macros
HAL_MAX_SUPP_CHANNELS and HAL_MAX_SUPP_OPER_CLASSES. Since these are
obsolete, remove them.
Change-Id: Ib31ef84d69b48ba095bf587c51003911a2a3b85e
CRs-Fixed: 2378332