Commit Graph

14312 次程式碼提交

作者 SHA1 備註 提交日期
Dustin Brown
8c0b5e36ca qcacld-3.0: Mitigate Rmmod/SSR deadlock
The platform driver will not allow the WLAN SoC to be removed if a
firmware down indication has been received. However, the firmware down
indication can be received in a hardware interrupt context, and so must
never block. This makes it impossible to add appropriate synchronization
to the firmware down indication handler. This all culminates in a
situation where any check to see if recovery is in progress by the WLAN
driver during rmmod will always be racy and be susceptible to deadlock.

Move remove outside of the protection of the rmmod transition, instead
protecting remove with its own transition. This relies on the platform
driver to do the serialization with recovery itself, removing the
recovery-in-progress check from WLAN.

This fix is _not_ multi-SoC compatible. However, the current platform
driver/wlan driver interface is not multi-SoC compatible either. When
this API is reworked to add multi-SoC support, this issue will need to
be revisited.

Change-Id: Iec28e822182e698427bb40fe1d7e1b39e9ddfc8b
CRs-Fixed: 2388039
2019-01-28 14:37:41 -08:00
Pragaspathi Thilagaraj
9e61908e57 qcacld-3.0: Driver changes to accumulate kernel changes related to FILS
With kernel version 4.19, a new structure
cfg80211_fils_resp_params is introduced for fils parameters in
the existing structure cfg80211_connect_resp_params. The
functions hdd_populate_fils_params and hdd_connect_done use
cfg80211_fils_resp_params as argument for modifying the fils
parameters. This causes compilation issues with 4.19 kernel.

Add changes to accumulate cfg80211_fils_resp_params structure
addition from 4.19 kernel.

Change-Id: I71e1084a190b1b089c132c5f3916c22691ba674e
CRs-Fixed: 2386259
2019-01-28 14:37:37 -08:00
Alok Kumar
604b033e71 qcacld-3.0: Send peer unmap conf based on peer unmap count
Send the peer unmap conf commnad to FW for a peer_id only if
UNMAP for that peer_id is received either for three times if
RFS is enabled or one time if RFS is not enabled.

Change-Id: Idba2c406f7ad7d770fe8326e8a0d6ac7fab10252
CRs-Fixed: 2387480
2019-01-28 14:37:34 -08:00
nshrivas
3fe3ca13ea Release 5.2.0.117H
Release 5.2.0.117H

Change-Id: I3d9e6b720c81cc99a6554af5f184bcfdc211695e
CRs-Fixed: 774533
2019-01-28 04:09:16 -08:00
Karthik Kantamneni
205482978d qcacld-3.0: Fix compilation issue when ROAM_OFFLOAD disabled
When ROAM_OFFLOAD feature is not enabled facing compilation issue for
smk_get_pmk_inf() api, adjust or move api to header file to resolve
compilation error.

Change-Id: I3eb03657f8ee5a68fa25f0d99a4dddc44cbaac02
2019-01-28 04:09:13 -08:00
nshrivas
6f997c1dd3 Release 5.2.0.117G
Release 5.2.0.117G

Change-Id: I7ab8754ea2cf4965114e30965b8edcf96e186a58
CRs-Fixed: 774533
2019-01-28 01:57:15 -08:00
Jingxiang Ge
03e2b59544 qcacld-3.0: Fix buffer overwrite problem in GETIBSSPEERINFO
If (length + 1) is greater than priv_data.total_len then copy_to_user
results in writing more data than the buffer can hold.
Fix this by writing mininum of (length + 1) and priv_data->total_len.

Change-Id: If0c74b3c6c76ee3ca296fd8e0e844b9c53c30498
CRs-Fixed: 2386056
2019-01-28 01:57:14 -08:00
Dustin Brown
b4260d5e38 qcacld-3.0: Simplify pre-cac flush prevention
Change I875c2f14ffd54272fc9ea0df1cecc6dd1171e310 introduced an elaborate
workaround to prevent the pre-cac work from flushing itself during stop
adapter. Introduce a less complicated work around by simply checking if
the current adapter is the pre-cac adapter before flushing the pre-cac
work.

Change-Id: Ib3e0716f8d088d124e960dcd724f579fb39a3d74
CRs-Fixed: 2387173
2019-01-28 01:57:10 -08:00
Wu Gao
ff39f5f03c qcacld-3.0: Correct judgement about roaming dfs channel flag
It will ignore dfs channel since checking the flag of roaming dfs
channel wrongly.

Change-Id: I7c4ee9c12d42b7c8351ff81c389adba83eac0f26
CRs-Fixed: 2385147
2019-01-28 01:57:06 -08:00
Jianmin Zhu
ca0baaad8a qcacld-3.0: Remove legacy code of CONFIG_SERIALIZATION_V1 part
Remove g_self_recovery_stats and WE_GET_RECOVERY_STAT
Remove configs of CONFIG_SERIALIZATION_V1 part

Change-Id: I82e72f22215b8794517410e0b8892b5adadcf457
CRs-Fixed: 2386839
2019-01-28 01:57:02 -08:00
nshrivas
fd8360c183 Release 5.2.0.117F
Release 5.2.0.117F

Change-Id: I62db8c677048e10b7d129b69188af21af855e807
CRs-Fixed: 774533
2019-01-27 23:23:11 -08:00
hangtian
ca83cca3d0 qcacld-3.0: Fix TDLS HT Cap channel width
Fix TDLS HT Cap channel width, select supportedChannelWidthSet based on
channel bonding settings for each band.

Change-Id: I89bae8bfb3d193da5e7165480447bc7471f93d06
CRs-Fixed: 2380598
2019-01-27 23:23:10 -08:00
nshrivas
0c9aebb495 Release 5.2.0.117E
Release 5.2.0.117E

Change-Id: If3746eead93474fb5ae578fc3ffd4e7b96fba3a6
CRs-Fixed: 774533
2019-01-27 19:40:51 -08:00
Pragaspathi Thilagaraj
8b12fbe756 qcacld-3.0: Update phymode during channel width updation
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
2019-01-27 19:40:50 -08:00
nshrivas
286e7a3c53 Release 5.2.0.117D
Release 5.2.0.117D

Change-Id: I9495c70a0b75712b8f18c4ba0a1d7118a0d5507e
CRs-Fixed: 774533
2019-01-26 19:58:51 -08:00
Abhishek Singh
d5cf22dffb qcacld-3.0: Change to include PDEV MLME component object
Changes to include PDEV MLME component object for VDEV SM.

Change-Id: I1f89e9bf5a4d5b17be7ec3c4fc52a5f8fe8f1862
CRs-Fixed: 2381858
2019-01-24 20:14:33 -08:00
nshrivas
5be7bddf35 Release 5.2.0.117C
Release 5.2.0.117C

Change-Id: If2ec97d40b27f154c29564ae6eac5293e1da8c94
CRs-Fixed: 774533
2019-01-24 16:17:51 -08:00
Abhishek Singh
d1f21c7b0d qcacld-3.0: Refactor firmware, serialization and HDD CMD timeouts
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
2019-01-24 16:17:50 -08:00
nshrivas
93f0fcbffc Release 5.2.0.117B
Release 5.2.0.117B

Change-Id: I270f63143a82cc1567ee5f4abec0ab137c409dca
CRs-Fixed: 774533
2019-01-24 12:30:15 -08:00
Sravan Kumar Kairam
5c65634429 qcacld-3.0: Check if peer id exists before adding
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
2019-01-24 12:30:15 -08:00
Abhinav Kumar
aa8f2dffcc qcacld-3.0: Find Session Id by BSSID while handling TSM Stats rsp
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
2019-01-24 12:30:11 -08:00
Ajit Pal Singh
a82f921467 qcacld-3.0: Use correct wma_is_valid_fw_stats_cmd() variant for Genoa
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
2019-01-24 12:30:07 -08:00
Jeff Johnson
0187c628e3 qcacld-3.0: Implement temporary WAR for BT coex issue
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
2019-01-24 12:30:04 -08:00
Jeff Johnson
ba19429916 Revert "qcacld-3.0: Bind ol_rx_thread to perf CPU"
Revert change I4e2a8d7f98907c205cc6988d8af309e7a5515b89 since
it introduced a build failure on some platforms along with an
inappropriately copyright change.

Change-Id: I1450c69211347afaa79642d99dd153f99f349694
CRs-Fixed: 2386432
2019-01-24 12:30:00 -08:00
nshrivas
d4308f834a Release 5.2.0.117A
Release 5.2.0.117A

Change-Id: I0711551b5d51563ad2d8b4dcd2998d1e868fb099
CRs-Fixed: 774533
2019-01-23 21:46:28 -08:00
gaurank kathpalia
429110845b qcacld-3.0: Set vdev nss according to the ini cfg
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
2019-01-23 21:46:28 -08:00
nshrivas
56dae80e88 Release 5.2.0.117
Release 5.2.0.117

Change-Id: I079958ab4fe710b2e9448b5d5f59896e8349ccae
CRs-Fixed: 774533
2019-01-23 15:14:14 -08:00
Pragaspathi Thilagaraj
24789d3b86 qcacld-3.0: Remove legacy PNO related WCNSS_qcom.ini items
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
2019-01-23 15:14:13 -08:00
Ashish Kumar Dhanotiya
aa9fdbb777 qcacld-3.0: Add support for new regulatory files
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
2019-01-23 15:14:09 -08:00
nshrivas
6f687e08f9 Release 5.2.0.116Z
Release 5.2.0.116Z

Change-Id: I49b03f8aa06ea4c7913d1fbaabe483214f053769
CRs-Fixed: 774533
2019-01-23 06:37:24 -08:00
Liangwei Dong
77ff66cad4 qcacld-3.0: validate sbs HW mode set
PM_SBS/PM_SBS_DOWNGRADE action should not
be executed again if current hw mode is sbs.

Change-Id: I9bf2666c559dbf6a3ad73aec7ee94db7c50b82a7
CRs-Fixed: 2375652
2019-01-23 06:37:24 -08:00
hangtian
0ec24dc0ab qcacld-3.0: Bind ol_rx_thread to perf CPU
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
2019-01-23 06:37:20 -08:00
nshrivas
122d45cb94 Release 5.2.0.116Y
Release 5.2.0.116Y

Change-Id: I60f1f01df8508a8252cd09b998e2c0dbe255ce57
CRs-Fixed: 774533
2019-01-22 23:41:52 -08:00
Wu Gao
eef680e4d0 qcacld-3.0: Exclude unused head file cfg_api.h
Since head file "cfg_api.h" is needn't, exclude it form these files.

Change-Id: Ic8f03b366eb9a20b153bbbafc778fab14340325a
CRs-Fixed: 2383295
2019-01-22 23:41:51 -08:00
Yuanyuan Liu
755671ed02 qcacld-3.0: use fixed length for array
Fix error of "variable length array ‘duration’ is used ". Use fixed
length for array.

CRs-Fixed: 2383040
Change-Id: I4aee165cd626e56592c18b2211dc7c81e97d4cd4
2019-01-22 23:41:45 -08:00
nshrivas
cadb0cc6a1 Release 5.2.0.116X
Release 5.2.0.116X

Change-Id: I58452ac1e13ba49db311392faf71acd65391f9ac
CRs-Fixed: 774533
2019-01-22 12:40:09 -08:00
Jianmin Zhu
fc2cef1650 qcacld-3.0: Fix force deauth sta cmd timeout issue
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
2019-01-22 12:40:09 -08:00
Bala Venkatesh
e7f79169f8 qcacld-3.0: Do not send UAPSD enable command to FW
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
2019-01-22 12:40:04 -08:00
nshrivas
61d657b4a2 Release 5.2.0.116W
Release 5.2.0.116W

Change-Id: Ib996424e930e3ff980b64a83bf0bdd97c982b8a0
CRs-Fixed: 774533
2019-01-22 07:25:05 -08:00
Wu Gao
5c3d94b076 qcacld-3.0: Move two cfg api to lim
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
2019-01-22 07:25:04 -08:00
nshrivas
35836d8fdc Release 5.2.0.116V
Release 5.2.0.116V

Change-Id: I2b4efe80b43939e99f6d51d144b8810bca18162a
CRs-Fixed: 774533
2019-01-22 05:06:10 -08:00
Jeff Johnson
999644a237 qcacld-3.0: Align with revised "get link status" Unified WMI
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
2019-01-22 05:06:10 -08:00
Manjunathappa Prakash
8b68663ddc qcacld-3.0: Hold peer reference when handling unmap_timer_work
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
2019-01-22 05:06:06 -08:00
nshrivas
951f590e74 Release 5.2.0.116U
Release 5.2.0.116U

Change-Id: I2e7956d96dc2a2bcf66e1859e7e8a2b4be2a35dd
CRs-Fixed: 774533
2019-01-22 02:37:37 -08:00
Wu Gao
ccd9ca2cad qcacld-3.0: Clean up WNI_CFG_HT_CAP_INFO_SUPPORTED_CHAN_WIDTH_SET
Cleanup unused WNI_CFG_HT_CAP_INFO_SUPPORTED_CHAN_WIDTH_SET.

Change-Id: Ic74aaa451f22c785b5a74d84d6ccea7e3705114f
CRs-Fixed: 2382568
2019-01-22 02:37:36 -08:00
Madhvapathi Sriram
3e6627a9f9 qcacld-3.0: Optimize schedule msg post error logging
Change-Id: Ieaddca5f141c99c42ed4a7c954dea2788e353640
CRs-Fixed: 2373015
2019-01-22 02:37:31 -08:00
nshrivas
474e231b14 Release 5.2.0.116T
Release 5.2.0.116T

Change-Id: I3438ea4c1aa1dd4250613c15841880744b06deaa
CRs-Fixed: 774533
2019-01-22 00:18:30 -08:00
Visweswara Tanuku
025f586806 qcacld-3.0: Thermal Throttling support for FW based throttling
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
2019-01-22 00:18:30 -08:00
nshrivas
6bb00a3e08 Release 5.2.0.116S
Release 5.2.0.116S

Change-Id: I762ccaa0b48e927425908c9ac372d7dbcf4d227a
CRs-Fixed: 774533
2019-01-21 03:54:54 -08:00
Harprit Chhabada
3f4c05872e qcacld-3.0: Create same call signature for WIN and MCL
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
2019-01-21 03:54:53 -08:00