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 peer id is added to map unmap array with out
checking if its already added before. This leads to having
duplicate entries and host sends peer unmap conformation
to FW with duplicates which leads to FW assert. So check
if peer id exists before adding to the array.
Change-Id: Ifcf73145f241e8ad48ff0eba9d87880565e65bb6
CRs-Fixed: 2381577
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
Implement a WAR to address a BT coex issue, along with a private ioctl
which can be used to switch the WAR on or off dynamically.
Change-Id: I9d29c141106db479039789d67c45a455e96a118b
CRs-Fixed: 2383150
Revert change I4e2a8d7f98907c205cc6988d8af309e7a5515b89 since
it introduced a build failure on some platforms along with an
inappropriately copyright change.
Change-Id: I1450c69211347afaa79642d99dd153f99f349694
CRs-Fixed: 2386432
Set the vdev type nss of each vdev to the minimum of
the max supported nss value, and the per vdev nss
value configured.
Change-Id: I038007d4d0d7302a21e0616a4044ee8735041f5c
CRs-Fixed: 2385339
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
Regulatory component is getting updated to reduce the
code size based on different regulatory features. In this
process new regulatory files are getting added and some
of the files are getting removed.
To compile the newly added files update the required changes
in driver Kbuild file.
Some of the functins which are not supposed to be invoked from
outside the component directly, replace those function calls
with the appropriate wrapper functions.
Change-Id: I31a25268250b99f4f156c4f149966213746d999e
CRs-Fixed: 2373780
PM_SBS/PM_SBS_DOWNGRADE action should not
be executed again if current hw mode is sbs.
Change-Id: I9bf2666c559dbf6a3ad73aec7ee94db7c50b82a7
CRs-Fixed: 2375652
When RX_PERFORMANCE is set, bind ol_rx_thread to perf CPU.
Do not update tdls stats and acquire rx_wakelock while
throughput is high, to avoid station drop packets caused
by slow process of ol_rx_data_cb(hdd_rx_packet_cbk).
Change-Id: I4e2a8d7f98907c205cc6988d8af309e7a5515b89
CRs-Fixed: 2373936
Fix error of "variable length array ‘duration’ is used ". Use fixed
length for array.
CRs-Fixed: 2383040
Change-Id: I4aee165cd626e56592c18b2211dc7c81e97d4cd4
Analysis:
1. Host initiated deauth and queued WLAN_SER_CMD_FORCE_DEAUTH_STA.
2. During deleting the STA, updated
sta_ds->mlmStaContext.cleanupTrigger as
eLIM_HOST_DISASSOC(0), default is 0.
3. At same time, the assoc req was received for this STA on other
vdev, in lim_check_sta_in_pe_entries() driver update
sta_ds->mlmStaContext.cleanupTrigger to eLIM_DUPLICATE_ENTRY.
4. lim_prepare_and_send_del_sta_cnf-> lim_send_del_sta_cnf()
use sta_ds->mlmStaContext.cleanupTrigger to update
mlmDisassocCnf.disassocTrigger to eLIM_DUPLICATE_ENTRY
instead of eLIM_HOST_DISASSOC.
5. Thus in lim_send_sme_disassoc_ntf(),
eWNI_SME_DISCONNECT_DONE_IND was called instead of
eWNI_SME_DISASSOC_RSP.
6. Thus we tried to remove WmStatusChange instead of
WLAN_SER_CMD_FORCE_DEAUTH_STA.
Fix:
Reject assoc req instead of using eLIM_DUPLICATE_ENTRY logic if
STA is already being deleted.
Change-Id: Ibab73758fa4a31ac017c8472894cd07b77133250
CRs-Fixed: 2380012
Currently, UAPSD enable command is sent to FW if
INI UapsdMask is set for any access category.
But, when twt is enabled then UAPSD auto trig
commands should not be sent to FW. If both twt
and UAPSD is enabled in FW then it can lead
to data stalls.
Send UAPSD enable command to FW if twt is not supported.
Change-Id: I5de9fed6dc7366aeecab9bdc1f6574bc78bae6fb
CRs-Fixed: 2373679
Move below two used cfg api to lim, since legacy cfg will be cleanup.
- cfg_get_capability_info
- cfg_get_regulatory_max_transmit_power
Change-Id: Ifdf96ed61366aeaec13ea466dd5c515e9538261a
CRs-Fixed: 2383216
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
There is race when unamp_timer_work and peer is deleted. Hold the
reference to peer while handling the peer_unmap_timer_work.
Change-Id: Ie6cef3f13e55ab7d2310f0fff4254cde3e3c96e1
CRs-Fixed: 2381036
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
Per the Linux coding style both mixed-case names and so-called
Hungarian notation are frowned upon, therefore replace the identifier
"pStaDs" everywhere it occurs. Note that both "sta" and "sta_ds" are
commonly used in this context, so use the identifier "sta" since it is
shorter and passes the "telephone test."
Change-Id: I3b49a0759d8b261c1c6482a8ac0f99927756a9d4
CRs-Fixed: 2383115
In some platforms sysfs entry is not enabled, beacon reception stats
which is dependent on sysfs is not correctly protected under sysfs
definition this can lead to symbol missing error in these platforms.
WARNING: "hdd_sysfs_destroy_adapter_root_obj"
WARNING: "hdd_sysfs_create_adapter_root_obj"
Also when the CONFIG_MOBILE_ROUTER is disabled there is an
skip_acs_scan_timer leak. skip_acs_scan_timer is initialized in the
ACTIVE_DOMAIN, move it to the INIT_DOMAIN to resolve the timer leak.
Change-Id: I75fb97aa69d7f84ead4a8b693123162d9940d78c
CRs-Fixed: 2379766
With LFR3, in host roaming state machine, the host driver
invokes hdd_napi_serialize to call core_ctl_set_boost,
twice- once during roam start and second time during
SIR_ROAM_DEREGISTER_STA. But driver releases the boost only once
after roam sync is complete. This results in the reference
count for boost incremented twice but decremented once.
This results in power and performance issues.
Dont invoke hdd_napi_serialize when hdd_sme_roam_callback() roam
status is eCSR_ROAM_START.
Change-Id: Iabe20624ec5f7a5249a82c5120dfd1bb02bf5835
CRs-Fixed: 2377951
On QCS405 platform, it's observed that cds_ol_rx_pkt_freeq is empty
while receiving UDP packets, driver try to allocate cds_ol_rx_pkt in
ol_rx_data_process but failed. This leads to lots of frames got dropped.
Raise cds_ol_rx_thread scheduler policy to SCHED_RR to compete with
CE tasklet scheduler speed. With this change, found cds_ol_rx_pkt_freeq
is not going to be empty while receiving UDP packets.
Change-Id: I4bee3d69c2754ec6be10a2b623b4ebe8b2c0859b
CRs-Fixed: 2373936
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