Commit graph

21,482 commits

Author SHA1 Message Date
Will Huang
d2ed1c50cb qcacld-3.0: Fix get sap connected sta info fcs counter always 0
Stats event from target might have several sub events, and some event
has no peer stats but have adv/ext2 peer stats.

Check ext/ext2 peer stats even no peer stats in
target_if_cp_stats_extract_peer_stats(). Fix copy adv stats size error
in tgt_mc_cp_stats_prepare_n_send_raw_station_stats(). Although
get_station_stats_cb and get_peer_stats_cb is union callbacks,
better to assign to get_station_stats_cb because it is for
TYPE_STATION_STATS.

Change-Id: I0bead0cbb8b549cc538ef4a7327f0a8303c90bd1
CRs-Fixed: 2801842
2021-01-26 03:29:06 -08:00
snandini
3e75d75fe7 Release 2.0.8.9B
Release 2.0.8.9B

Change-Id: Iae194940ec32f47670514728bd20c00e8e4a8b68
CRs-Fixed: 774533
2021-01-25 17:19:39 -08:00
Alan Chen
5ce95ada33 qcacld-3.0: Add PMO config for PCIe bus suspend in beaconing mode
By default, PCIe bus suspend is not allowed in beaconing modes
(SAP/P2PGO/NDP) with one or more clients connected. Some OEMs need
PCIe bus suspend in this mode. Hence, add a config item to serve
both types of requests.

Change-Id: Ia2d990f17f605036d43db75ecd4df57701b4ba1f
CRs-Fixed: 2860495
2021-01-25 17:19:39 -08:00
snandini
a259bebedd Release 2.0.8.9A
Release 2.0.8.9A

Change-Id: I3f05f58ad943e2c51675d58c36ae86fdb4c85b5e
CRs-Fixed: 774533
2021-01-25 14:14:45 -08:00
Bapiraju Alla
a90c5a3db1 qcacld-3.0: Do not allow pre cac during CSA
After pre cac succeeds, driver triggers regulatory change
to user space then starts CSA process. As a result hostapd
triggers another pre cac to driver while SAP performs CSA,
this makes unexpected state in driver, therefore subsequent
pre cac will not be correctly performed.

To address this, reject the pre cac request during CSA.

Change-Id: I82187d64bf94d3bdfab84b873c2ab438a4037ea9
CRs-Fixed: 2859289
2021-01-25 14:14:44 -08:00
snandini
0793237b24 Release 2.0.8.9
Release 2.0.8.9

Change-Id: I0bfe4e170787debd8868daa5e5a0aaf4cd68c597
CRs-Fixed: 774533
2021-01-25 12:06:18 -08:00
Jianmin Zhu
a712eb799b qcacld-3.0: Fix assert for sta ipa interface leaked
Once 1 roaming happened, ipa_ctx->sta_connected increased 1, and its
type was uint8_t, once increased to 256, overflow happened.
ipa_ctx->sta_connected became 0. then wlan_ipa_cleanup_iface couldn’t be
called to free old iface, but wlan_ipa_setup_iface was called to add new
iface, then there were 2 sta ipa interfaces with same session id 2.

When sta disconnected, only 1 ipa interface was freed, the other ipa
interface with session id 2 was left, but vdev 2 was deleted.

If 1st client connected DUT SAP, sta vdev 2 was found by mistake,
WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID was sent to F/W to enable IPA path
for vdev 2, but vdev 2 wasn't existed, assert happened.

To fix it, when LFR3 roaming happens, when wlan_ipa_cleanup_iface is
called to free old iface, ipa_ctx->sta_connected is decreased by 1
first, when wlan_ipa_setup_iface is called to add new iface,
ipa_ctx->sta_connected is increased by 1, then
ipa_ctx->sta_connected reflects real STA number on DUT.

Change-Id: I5c91b3402dcfe8b1828d8d1f0701f66ca3c15d50
CRs-Fixed: 2859438
2021-01-25 12:06:17 -08:00
Manikanta Pubbisetty
7d2fdac225 qcacld-3.0: add history for FST locking
Adding history to track the FST lock/unlock events; this
would come in handy in debugging deadlock issues.

Change-Id: I40f783e72e516330fdf71ac91553bc7c4338b82a
CRs-Fixed: 2854397
2021-01-25 12:06:13 -08:00
snandini
d7a6427706 Release 2.0.8.8Z
Release 2.0.8.8Z

Change-Id: I19c501312358e7fcc22a03f8717644d554b03322
CRs-Fixed: 774533
2021-01-25 07:23:21 -08:00
Balaji Pothunoori
1953532251 qcacld-3.0: update max tx aggr size for lithium family
Currently user configured tx aggr size "0-64" is not honored in
firmware, By default firmware expects as 256 and its hardcoded.

In order to make user controllable, host has to send default max
tx aggr size as 256 for lithium and 64 for other targets.

Change-Id: I7a69f09d048f79da4c770e71b4d1c8726fa02faa
CRs-Fixed: 2846803
2021-01-25 07:23:21 -08:00
Ashish Kumar Dhanotiya
d93ada8291 qcacld-3.0: Set sme power stats response cb and context to NULL
Currently if the power stats command is invoked from multiple
threads, then the thread which invokes the command at the last
will overwrite the request manager cookie in the mac context.
Now when host gets response for these multiple requests, hdd
calback hdd_power_debugstats_cb will be invoked for each response
with the same cookie. in hdd_power_debugstats_cb host allocates
memory for the private data and this memory will also be
allocated multiple times and the last allocations will overwrite
the initial memory allocs which will lead to the memory leaks.

To address above issue set the sme power stats response cb and
context to NULL so that the callback is invoked only once.

Change-Id: I6fae0f96771ba505f06c1be14a8907b56efede24
CRs-Fixed: 2857855
2021-01-24 21:20:28 -08:00
snandini
9dacfb0c34 Release 2.0.8.8Y
Release 2.0.8.8Y

Change-Id: I7fc073f2caaa56c77e0e070b2e588f7a70f0289a
CRs-Fixed: 774533
2021-01-23 11:16:40 -08:00
Abhishek Ambure
75a9633773 qcacld-3.0: Update proper peer VHT MCS MAP and self NSS
Problem scenario:
1) Host uses self RX and peer VHT TX NSS intersection to update peer
   VHT RX MCS map and self NSS in pe_session.
2) Host updates peer VHT TX MCS map and self TX NSS from PE session
   to FW. FW uses these values to select TX rates for data packets.
3) If an AP supports 1 TX NSS and 2 RX NSS and host supports 2 TX and
   RX NSS, as a result of intersection host sets VHT TX MCS map to
   0xfffe i.e. 1x1 and associates with AP in 1x1. Which leads to low
   TX throughput.

Fix:
Use intersection of peer VHT RX MCS map and self VHT TX NSS to update
NSS to firmware.

Change-Id: I4104e3502c45923625143cd32da8cb4529df05a2
CRs-Fixed: 2847115
2021-01-23 11:16:40 -08:00
snandini
8a6b18dd89 Release 2.0.8.8X
Release 2.0.8.8X

Change-Id: I17fe497ebbf04e0b28bc87cf0122c727111fb55d
CRs-Fixed: 774533
2021-01-22 03:14:44 -08:00
sheenam monga
b443ce806b qcacld-3.0: Use function qdf_snprint for time stamp conversion
Currently for converting timestamp to string qdf_snprintf
function is used which may not print timestamp correctly.

Use qdf_snprint instead of qdf_snprintf to print correct
timestamp provided by fw.

Change-Id: I803f678dc38afc03131e589a820d129dc38380ce
CRs-Fixed: 2835199
2021-01-22 03:14:44 -08:00
snandini
8919e1aabf Release 2.0.8.8W
Release 2.0.8.8W

Change-Id: I684909ce899636157a0151e629504b9617686e63
CRs-Fixed: 774533
2021-01-21 01:32:11 -08:00
Deeksha Gupta
64dd9a8672 qcacld-3.0: Add new API to convert AKM into wmi command
Initially, Host updates the AKM only after the EAPOL
handshake. Due to this, Enterprise auth is not detected
for initial connection.

So, add new API which gets the AKM from vdev and convert
it to WMI enum and send it in peer assoc command to firmware
during initial connection. In Firmware, this will help to
detect Enterprise auth as part of connection and prioritize
the WLAN connection over BT traffic accordingly.

Change-Id: I503601ca29f3aadd1ee359a535b4e60133f66476
CRs-Fixed: 2844318
2021-01-21 01:32:11 -08:00
snandini
631ab3ea81 Release 2.0.8.8V
Release 2.0.8.8V

Change-Id: I54ae51de1f5a7745a8d4a358be79fa5069973f53
CRs-Fixed: 774533
2021-01-20 20:08:13 -08:00
Jianmin Zhu
2dc49d229d qcacld-3.0: No Tx until WoW wake up event received
With Change-Id: I7f38b3dc6975fcc208ad85e913564dfef5cc1cb7,
Tx register write is permitted after hif bus resume during runtime pm
resume, don't wait WMI_WOW_WAKEUP_HOST_EVENTID.
In F/W, there is an race condition when exit from WOW, both
WAL_TX_TID_TQM and WAL_TX_TID_TRANSITION_TO_TQM_ONGOING are not set yet,
data frame is received from host, assert will hapen.

To fix it, host tx register write shouldn't be permitted to update hp
until receive the WMI_WOW_WAKEUP_HOST_EVENTID.

Change-Id: Ic397652a9a0c4bc81667aed11805b2ce8070ee8d
CRs-Fixed: 2858115
2021-01-20 20:08:13 -08:00
snandini
7e1c06e3dc Release 2.0.8.8U
Release 2.0.8.8U

Change-Id: I7e2698113089ad0139ec1f2df93d30b1dca9548c
CRs-Fixed: 774533
2021-01-20 17:43:11 -08:00
Amar Singhal
0eb93cecb4 qcacld-3.0: Do not send regulatory event for unsafe channel list
Unsafe channel list event does not change the current channel list.
Hence there is no reason to set the channel list again in wiphy and
inform the kernel. Thus, do not send regulatory event for unsafe
channel list.

Change-Id: I68d60fb412b4664430a9cdefa354fac4070bba7a
CRs-Fixed: 2788194
2021-01-20 17:43:11 -08:00
snandini
4c895b25e1 Release 2.0.8.8T
Release 2.0.8.8T

Change-Id: Iea4652690fe3db8ba5e4fab209a0177451eabe20
CRs-Fixed: 774533
2021-01-20 11:56:36 -08:00
Ananya Gupta
93f56895cf qcacld-3.0: Add DP event history in non debug mode
Enable DP event history for perf mode.

Change-Id: I2c7acccdf23e253fb63adaff72e9bab5f010f2db
CRs-Fixed: 2850887
2021-01-20 11:56:36 -08:00
Rakesh Pillai
85374c8dc5 qcacld-3.0: Avoid logging in hif_pm_runtime_get from TX path
The hif_om_runtime_get logs the requester for resume
when the device is in runtime suspend/suspending state.
Due to such kind of logging from a softirq context, its
execution time will be longer and can block the execution
of other time critical softirqs.

Fix this by marking the call to hif_om_runtime_get as
a call from critical context and avoid the logging for
this call.

Change-Id: I2d7d0b3645f351af11a016bd45c5930f0df5401a
CRs-Fixed: 2850952
2021-01-20 11:56:31 -08:00
snandini
8a0f89e7cb Release 2.0.8.8S
Release 2.0.8.8S

Change-Id: I35838736d28bf39c68723adbdf833e31d3fac582
CRs-Fixed: 774533
2021-01-20 07:44:05 -08:00
sheenam monga
c04d112be0 qcacld-3.0: Enable periodic time sync between host and fw
Enable periodic time sync between host and fw by setting
gRemoveTimeStampSyncCmd to 0.

Change-Id: I52168ad6d065262c433c801716eec0d7782bf6e8
CRs-Fixed: 2845017
2021-01-20 07:44:05 -08:00
sheenam monga
d6d37c5bf8 qcacld-3.0: Print correct concurrency support
Currently host checks mac number to indicate
MCC or DBS which may not be correct. Host
may print DBS in case of MCC.

Check DBS support and print concurrency
based on hw mode if hw mode is dbs capable
then print DBS else MCC.

Change-Id: I1578e6a7a6b73b5b6c409653b4dc276954f51c3d
CRs-Fixed: 2845634
2021-01-20 07:44:01 -08:00
snandini
bdd2e8a1fa Release 2.0.8.8R
Release 2.0.8.8R

Change-Id: Ie3cc62a2547eff4e1be8925da6f268ffaa91bad3
CRs-Fixed: 774533
2021-01-20 03:30:16 -08:00
Liangwei Dong
0b3b7b36d5 qcacld-3.0: Validate STA channel switch notify
Add validation for STA CSA channel change notify event:
1. acquire the wdev->mtx lock before invoke kernel API -
cfg80211_ch_switch_notify. Kernel will access wdev->current_bss
in the API, it maybe changed in other thread.
2. if the bssid is not connected in vdev, don't invoke kernel API -
cfg80211_ch_switch_notify since wdev->current_bss maybe unlinked from
kernel bss list. cfg80211_ch_switch_notify make assumption
current_bss existing on the bss list.

Change-Id: I0dd415a5576d29e3a7729768c8482205677ca3e7
CRs-Fixed: 2855494
2021-01-20 03:30:16 -08:00
snandini
9b3c00d656 Release 2.0.8.8Q
Release 2.0.8.8Q

Change-Id: I19ac9540a9ed526af8d5401f29c8988ee0215e64
CRs-Fixed: 774533
2021-01-19 17:54:14 -08:00
Rakesh Pillai
56e622954d qcacld-3.0: Fix deadlock between rtnl lock and vdev ops DSC
The below described scenario can lead to a deadlock
between wlan_hdd_del_virtual_intf and the work handler
to update netdev features.
- netdev features update work is scheduled and takes the
  vdev ops DSC lock.
- before the work is able to take the rtnl lock, a delete
  interface is called from kernel with rtnl lock held
- wlan_hdd_del_virtual_intf waits indefinitely for all the
  ops to be completed on this vdev.
- Now netdev feature update work is waiting for rtnl lock
  with vdev ops DSC held, and wlan_hdd_del_virtual_intf is
  waiting for vdev ops DSC with rtnl lock held.

In order to fix the above deadlock scenario, set a delete in
progress flag in wlan_hdd_del_virtual_intf and use rtnl_trylock
in the netdev features update work, only if the delete in
progress flag is not set. Using rtnl_trylock with a few equally
time spaced attempts to acquire rtnl lock will make sure the
features update is done it the work is unable to acquire the
rtnl lock due to any other netdev operation (apart from interface
deletion).

Change-Id: Iad6448d4d9bf7f4cbfcfc4c6fb3afb248afaeeec
CRs-Fixed: 2854713
2021-01-19 11:57:10 -08:00
snandini
907c73bef1 Release 2.0.8.8P
Release 2.0.8.8P

Change-Id: I709fa8d44b112c9d8b7f1ac456aa020a062ddd84
CRs-Fixed: 774533
2021-01-19 01:02:41 -08:00
Ashish Kumar Dhanotiya
db0813513e qcacld-3.0: Validate FW provided mac address
Currently host driver does not validate the mac address which
it receives from FW and based on this mac address host derives
remaining mac addresses. If mac address from FW is multicast
or broadcast address then it will be treated as invalid mac
address and adapter creation will fail.

To address above issue, accept mac address provided by FW only
if it is a valid mac address else derive all the mac address
based on driver's internal logic.

Change-Id: I4c4b60cac082680df90016ec4ba63f744353771c
CRs-Fixed: 2853417
2021-01-19 01:02:41 -08:00
snandini
ad86601aa5 Release 2.0.8.8O
Release 2.0.8.8O

Change-Id: I468a4e99e85747b266c107c7c15bc7878e0f1bc9
CRs-Fixed: 774533
2021-01-18 08:54:51 -08:00
Pragaspathi Thilagaraj
7a6a981879 qcacld-3.0: Stop all the flows for emergency deauth roaming
Stop all the TSPEC flows after roaming to new AP due to
disconnect roam trigger as the previoes TSPEC session is not
valid. Firmware clears the TSPEC session on deauth roaming and
doesn't include the RIC IE in roams followed by deauth trigger.
But host entry for the TSPEC flows exist and doesn't allow new
TSPEC session setup commands.

Clear all the TSPEC flows with older AP to allow new TSPEC
session creation with roamed AP due to disconnect roam trigger.

Change-Id: I9d75acba402e6d8380584fd1ffd310c2a21cd19d
CRs-Fixed: 2816035
2021-01-18 08:54:51 -08:00
Pragaspathi Thilagaraj
a1421df272 qcacld-3.0: Fix compilation failure with TWT disabled
Fix the compilation error with TWT compilation flag
disabled.

Change-Id: I0b25d4d3b5e7e1d00e405ce87894a8b84dd381e1
CRs-Fixed: 2856815
2021-01-18 08:54:46 -08:00
Pragaspathi Thilagaraj
ba4330e418 qcacld-3.0: Fix IE offset while checking OWE transition mode
In OWE transition mode, the beacon from the transition mode AP
should be dropped after sending unicast probe to avoid kernel
entry for BSS with null ssid. But while parsing the IE, the
frame pointer passed points to the fixed fields.

So pass the ssid IE pointer to the OWE transition mode IE
parsing API.

Change-Id: I668bc2dfc32a5a23b44da50ac81bac98250faa2a
CRs-Fixed: 2814173
2021-01-18 08:54:42 -08:00
snandini
496819f443 Release 2.0.8.8N
Release 2.0.8.8N

Change-Id: I0ed03a9792d90b143afc7b2d3d6e57d33dae2427
CRs-Fixed: 774533
2021-01-18 06:54:07 -08:00
Abhishek Ambure
b7c5961308 qcacld-3.0: Don't block NAN+NDI+STA concurrency for non-dbs
When a new connection is about to come up, host checks if current
concurrency combination including the new connection is allowed or
not based on the HW capability.
Firmware manages NAN + NDI by dividing up slots. Connection on NDI
is re-negotiable and therefore a 3rd connection with the same MAC
is possible.

Change-Id: I63e39c5cd4945cd308e475c1e03f676336c4e7c1
CRs-Fixed: 2841457
2021-01-18 06:54:07 -08:00
snandini
e96a80a1a0 Release 2.0.8.8M
Release 2.0.8.8M

Change-Id: Iccdf944bd2aff138acd72508e587070bd5399fc6
CRs-Fixed: 774533
2021-01-18 03:04:04 -08:00
Ashish Kumar Dhanotiya
fb42513a12 qcacld-3.0: Add a check to validate BW for set ap cahn width
Currently driver does not validate BW before it invokes the kernel
api cfg80211_get_chandef_type. There is a WARN_ON in kernel
if above api is invoked with invalid BW.

To address above issue add a logic to validate the BW
before driver invokes the kernel api.

Change-Id: Ie237aa46813bfa4206a1057a0418d9562dbbae75
CRs-Fixed: 2846462
2021-01-18 03:04:04 -08:00
snandini
65452e8f14 Release 2.0.8.8L
Release 2.0.8.8L

Change-Id: I8d550e6e2bbe95aba6d36958d6d46646f9236e78
CRs-Fixed: 774533
2021-01-17 08:03:30 -08:00
Pragaspathi Thilagaraj
9784f4f209 qcacld-3.0: Add support for TWT get capabilities vendor command
Add support to get the TWT self and peer capabilities via the
QCA_WLAN_TWT_GET_CAPABILTIES vendor command.
High 16 bits - self capabilities,
Low 16 bits : peer device’s capabilities

The meaning of each bit is below:
Bit 0: Requester Support
Bit 1: Responder Support
Bit 2: Broadcast TWT Support
Bit 3: Flexible TWT Support
Bit 4: TWT Required

Change-Id: I78b0c5902c89fe3a8eec1697fa513aac3c2b7a36
CRs-Fixed: 2847177
2021-01-17 04:12:46 -08:00
snandini
44dca06cb8 Release 2.0.8.8K
Release 2.0.8.8K

Change-Id: Ibf5d5105d7885dc207d16bf80166d169027cb863
CRs-Fixed: 774533
2021-01-17 04:04:19 -08:00
Pragaspathi Thilagaraj
d26e1e29f7 qcacld-3.0: Make TWT commands as async
Add support for below TWT commands to be sent as asynchronous
commands from userspace:
1. TWT teardown
2. TWT pause
3. TWT resume

Change-Id: I1989fe153cc8a482a9616a7f6879de3b92ef82fb
CRs-Fixed: 2847143
2021-01-17 04:04:18 -08:00
Paul Zhang
c5c3bc6ce3 qcacld-3.0: Add support op QCA_WLAN_TWT_NUDGE
This is the new OP for vendor sub command
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT to set twt
suspend/resume parameters.

Change-Id: If4ec03364f41ca4960673fb7a13b91a929cfe567
CRs-Fixed: 2797664
2021-01-17 04:04:13 -08:00
Srinivas Girigowda
28fe4a42b5 qcacld-3.0: Introduce wma_validate_handle()
Introduce wma_validate_handle() with the caller function name
embedded in it to validate the WMA handle and log incase
of error. Calling functions can avoid logging in case
wma_validate_handle() returns -EINVAL. This reduces logging and
thereby memory foot print.

Change-Id: If38436a590d8b950509bde40468b9ddc3cf33e8d
CRs-Fixed: 2833040
2021-01-17 04:04:09 -08:00
Pragaspathi Thilagaraj
31c63f8088 qcacld-3.0: Register TWT callbacks statically
TWT HDD callbacks are registered dynamically when each TWT
command is received from userspace and unregistered while
sending response. This design was in place considering the
existing TWT commands are synchronous and multiple back to
back TWT commands will not be received. But now the TWT
commands from userspace can be received asynchronously.

So register the TWT callbacks statically during start modules in
wlan_hdd_twt_init().

Change-Id: I7dd9333c330a90fca421a2cc2574b2db76536e96
CRs-Fixed: 2830644
2021-01-16 22:50:08 -08:00
snandini
49e59d4243 Release 2.0.8.8J
Release 2.0.8.8J

Change-Id: I5eda7d56f739281ed6263c2cac168d3c9a71f72e
CRs-Fixed: 774533
2021-01-16 13:51:34 -08:00
Pragaspathi Thilagaraj
36f9799626 qcacld-3.0: Add support for TWT setup additional parameters
Add support for below TWT setup additional parameters:
Minimum TWT wake interval
Maximum TWT wake interval
Minimum TWT wake duration
Maximum TWT wake duration

Make the TWT setup command handling as asynchronous.
Send QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT event to
userspace when add dialog complete event is received
from firmware.

Change-Id: Ia56bbecd04e0c02a55dc1a7f43ee533a85f82f1d
CRs-Fixed: 2842895
2021-01-16 13:51:34 -08:00