Commit graph

20,599 commits

Author SHA1 Message Date
snandini
b8de2ffeeb Release 5.2.0.200X
Release 5.2.0.200X

Change-Id: Id5a17e3dbff33b6ced011d8c0f19741ecfda8a4f
CRs-Fixed: 774533
2020-09-01 14:23:49 -07:00
Bapiraju Alla
c9daf6161f qcacld-3.0: Update channel self Rx time to the user space
Currently, channel rx time is not being updated to user space as
part of link stats. Instead channel tx_time is being overwritten
with the same value. Due to this user space is not getting channel
rx_time in the link stats.

Update channel rx time in the channel link stats.

Update representation of tx_time and rx_time in the ll_stats debugfs
output to align with other stats.

Change-Id: I850adb11169eb24c81f1e31a4ff498f4e20ab9c6
CRs-Fixed: 2765485
2020-09-01 14:23:49 -07:00
snandini
dae743c8f6 Release 5.2.0.200W
Release 5.2.0.200W

Change-Id: I9983edd17a4f16b397729d9614a42ee3fe3b7c6e
CRs-Fixed: 774533
2020-08-31 22:05:54 -07:00
Ke Huang
546320e8e2 qcacld-3.0: Update probe/asso rsp ie before beacon data updated
qcacld-2.0 to qcacld-3.0 propagation

The probe rsp ie will not updated after beacon updated.
This will cause the probe rsp ie not appear in probe rsp
tags even the ie appears in beacon.
Put the updating of probe/asso rsp ahead of beacon updated.

Change-Id: If55f72ce788f4e0f162bb0c13fcff7b2129bf423
CRs-Fixed: 2648396
2020-08-31 22:05:54 -07:00
Srinivas Girigowda
0a3c47ece6 qcacld-3.0: Replace QDF_MAC_ADDR_STR/ARRAY with QDF_FULL_MAC_FMT/REF
Replace QDF_MAC_ADDR_STR/ARRAY with QDF_FULL_MAC_FMT/REF.
Only in kernel and driver logs, use QDF_MAC_ADDR_FMT
for all debugfs, sysfs, ioctl, unit test code use QDF_FULL_MAC_FMT

Change-Id: I8cd0c065dad94e4700a009b951b10ee699568813
CRs-Fixed: 2763159
2020-08-31 22:05:50 -07:00
snandini
6276c67e6e Release 5.2.0.200V
Release 5.2.0.200V

Change-Id: I7ec0112bab3d6456fd1ed6006c1dc578efde19fa
CRs-Fixed: 774533
2020-08-31 20:02:06 -07:00
Pragaspathi Thilagaraj
2d1baa7548 qcacld-3.0: Fix NULL pointer dereference of mlme_priv
Fix NULL pointer dereference of mlme_priv while using
the macro GET_CM_ROAM_TX_OPS_FROM_VDEV. Also replace this
macro GET_CM_ROAM_TX_OPS_FROM_VDEV with inline function to comply
with the linux coding style “Generally, inline functions are
preferable to macros resembling functions”

Change-Id: Ifc9ba37e3d260b027ba79457f00382374f3b78ac
CRs-Fixed: 2764891
2020-08-31 20:02:06 -07:00
Jia Ding
aca93a9919 qcacld-3.0: Properly check return value of lim_cmp_ssid
lim_cmp_ssid() calls qdf_mem_cmp() and a return value of 0
means the memory to be compared are equal.

In lim_chk_ssid(), checking against != true is thus not
proper to ensure memory are equal. Thus check against
0 to ensure requested SSID matches our own SSID configured.

Change-Id: I31651e7fba47ae6eb22dc034c4479114343e8652
CRs-Fixed: 2765570
2020-08-31 20:02:01 -07:00
snandini
92b946c457 Release 5.2.0.200U
Release 5.2.0.200U

Change-Id: I170f204437a93070fe9ea7e826f92157e015964e
CRs-Fixed: 774533
2020-08-31 17:21:10 -07:00
wadesong
65e8c1c219 qcacld-3.0: Fix a race condition in roaming module
A race condition can happen when roaming state machine
transition takes place in the following sequence:

  1) FW indicates 'roam_synch' event to driver, and driver in
     turn, advances its roaming state machine to
     'WLAN_ROAM_SYNCH_IN_PROG', in wlan scheduler context;
  2) HDD layer starts to do 'disconnect'(could be due to NUD
     failure), and thus needs to stop roaming scan offload in
     the following sequence:

     2.1) Post a RSO stop cmd to FW, via the scheduler thread;
     2.2) Advance the roaming state machine to a new state of
          'WLAN_ROAM_RSO_STOPPED';
     2.3) Check if:
          >> the roaming state machine is still in a state of
	     'WLAN_ROAM_SYNCH_IN_PROG'
	  >> the neighbor roaming state is in any of the states
	     below:
	        eCSR_NEIGHBOR_ROAM_STATE_REASSOCIATING;
		eCSR_NEIGHBOR_ROAM_STATE_PREAUTHENTICATING;
		eCSR_NEIGHBOR_ROAM_STATE_PREAUTH_DONE;

	  Here, if any of the conditions becomes true, then
	  HDD will wait for 4 sec to let the roam_synch handler
	  finish its job, otherwise the wait will not happen.
     2.4) Disconnect the current vdev and advance the roaming
          state machine to 'WLAN_ROAM_DEINIT';

In a corner case, race condition can happen in the following
sequence:

 >> thread 1), which executes in wlan scheduler context, starts
    to run first, and thus roaming state machine advances to
    'WLAN_ROAM_SYNCH_IN_PROG', but then gets preempted before
    starting to parse the assoc resp frame attached in the
    roam_synch event;
 >> thread 2) starts to run and posts RSO stop cmd, but the req
    msg cannot be handled right away due to scheduler thread
    is actively running with other tasks, so it gets queued at
    step 2.1);
 >> thread 2) continues to run, and simply advances the roaming
    state machine to 'WLAN_ROAM_RSO_STOPPED' at 2.2), and then
    it will find out none of the conditions listed in 2.3) is
    true, so it choses NOT to wait for 'roam_synch' handler to
    finish;
 >> thread 2) reaches to step 2.4) without waiting at 2.3), and
    roaming state machine advances to 'WLAN_ROAM_DEINIT';
 >> thread 1) continues to run and starts to parse the assoc
    resp frame indicated by FW, and finds that the roaming state
    machine NOT in 'WLAN_ROAM_SYNCH_IN_PROG', and thus goes to
    the wrong way to treat the buffer in a different manner,
    causing a invalid pointer access here.

Fix the racing condition by checking if the roaming state machine
is in 'WLAN_ROAM_SYNCH_IN_PROG' before advancing the same to
'WLAN_ROAM_RSO_STOPPED' in function wlan_hdd_wait_for_roaming().

Change-Id: I202ccb371e9e70a76ef35938c700b60c91b7d3cb
CRs-Fixed: 2761880
2020-08-31 17:21:10 -07:00
Abhinav Kumar
101d014faa qcacld-3.0: Add support to config num of chains over vendor cmd
Currently there is only SETANTENNAMODE ioctl command to configure
number of chains to firmware.

Add support to configure the number of chains over the nl vendor
command QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_TX_CHAINS and
QCA_WLAN_VENDOR_ATTR_CONFIG_NUM_RX_CHAINS.

This new interface will configure the number of chains per vdev
dynamically.

Change-Id: Iff22d886529f6d8fb205d668eba8928039620a20
CRs-Fixed: 2756647
2020-08-31 17:21:06 -07:00
sheenam monga
a1ed4e6ac4 qcacld-3.0: Advertise WAPI AKM suites
Issue: Driver supports WAPI AKM suites but doesn't advertise
WAPI_PSK_AKM_SUITE and WAPI_CERT_AKM_SUITE due to which
WAPI may not be visible to Settings

Fix: Advertise WPAI AKM suites to avoid any incompatibilty issue
between driver and supplicant.

Change-Id: I59569837f699adba270f73ceb4fc5dc12c349d26
CRs-Fixed: 2759876
2020-08-31 17:21:03 -07:00
Chaoli Zhou
075cb24e55 qcacld-3.0: Limit the IPA tx buffer for Genoa
In order to improve the Genoa DBS KPI, need to
increase the IPA tx complete ring size from
1024 to 2048. And the tx buffer count also will
increase from 1023(1024-1) to 2047(2048-1) according.
But in fact, as for wlan fw, it just only reserve
1500(1100 for 5G, 400 for 2.4G) tx desc for packets
from IPA, so some tx buffer will not used here,
which will waste memory. So to save some memory,
export CONFIG_LIMIT_IPA_TX_BUFFER for platform
configuration to limit the max IPA tx buffer count

Change-Id: Id5d4c5a220b588747f3d1981627f6253d7c3305b
2020-08-31 17:20:59 -07:00
Jingxiang Ge
e1d285c75e qcacld-3.0: Add wakeup source tracker
Enable debug for wakeup source tracker.

Change-Id: Id840beed56c80f35e70213bc6ecb41b8b068a04f
CRs-Fixed: 2760398
2020-08-31 17:20:56 -07:00
snandini
84574726f2 Release 5.2.0.200T
Release 5.2.0.200T

Change-Id: I1310e61ebe5384e4e9214110212ae065700c463a
CRs-Fixed: 774533
2020-08-31 03:32:27 -07:00
Abhishek Ambure
2e27e581c5 qcacld-3.0: Don't set OCV bit in RSN cap if AP is not PMF enabled
OCV capability i.e. 0x4000 bit in RSN capability is set to 1 to
indicate that the STA supports operating channel validation by
including Operating Channel Information (OCI) in RSNA exchanges
and validates the information when received from another STA that
indicated this capability.
OCV support implicitly depends on PMF capability, AP's with no PMF
support disassociate STA if STA sets OCV bit in RSN capability of
assoc request. Hence if AP doesn't support PMF, do not set OCV
support bit i.e. 0x4000 in RSN capability of assoc request.

Change-Id: I4a331cab9dfaebe3a6b8ff8656888a333355f4a6
CRs-Fixed: 2763169
2020-08-31 03:32:27 -07:00
snandini
11e9245db3 Release 5.2.0.200S
Release 5.2.0.200S

Change-Id: Ib4b7a6fa4fe6fafbe7811fc684ec65c6e86bb6ee
CRs-Fixed: 774533
2020-08-31 01:37:14 -07:00
Liangwei Dong
34197fc832 qcacld-3.0: Increase sae max auth retry count to 3
Increase max sae auth frame retry count to 3 since total SAE auth
timeout is 5s.

Change-Id: I5902cc3411f713eaeed5ef7754fe7fe8e590b459
CRs-Fixed: 2765211
2020-08-31 01:37:14 -07:00
snandini
7b0d6954c9 Release 5.2.0.200R
Release 5.2.0.200R

Change-Id: I9bf49cbfbeac83a091b7467c4e44a13d29a89846
CRs-Fixed: 774533
2020-08-30 18:18:01 -07:00
Alan Chen
64ad35d230 qcacld-3.0: Add a null check when enabling qmi stats
get_wmi_unified_hdl_from_psoc() is called to get wmi handle from psoc,
but it may return null. Thus, add a null check before setting qmi stats.

Change-Id: Id9ef8f450ebcbbd2f8d8b078adb0a78ac638efb6
CRs-Fixed: 2764885
2020-08-30 18:18:01 -07:00
snandini
94235fd748 Release 5.2.0.200Q
Release 5.2.0.200Q

Change-Id: I137a2f6ef3011b98885f48ab69973f5629ddd75a
CRs-Fixed: 774533
2020-08-30 16:19:06 -07:00
sheenam monga
ada4be8c61 qcacld-3.0: Send vht ie based on gEnableVhtFor24GHzBand ini for 2.4g band
Currently, driver sends DOT11F_EID_VHTCAPS for 2.4g band without validating
gEnableVhtFor24GHzBand ini which may cause different phy modes in host and
fw because host modifies phy mode based on gEnableVhtFor24GHzBand ini but
doesn't consider gEnableVhtFor24GHzBand while sending vht ie to fw.

Fix: Populate and send vht ie based on gEnableVhtFor24GHzBand for 2.4g band
to avoid phy mode mismatch between host and fw.

Change-Id: I54622304635ee803bcfd5ba49dfb3e25b28a39de
CRs-Fixed: 2725164
2020-08-30 16:19:06 -07:00
snandini
0ef373b819 Release 5.2.0.200P
Release 5.2.0.200P

Change-Id: I8f661723311d7276ed45d4a029e0980246c2bc92
CRs-Fixed: 774533
2020-08-29 08:03:16 -07:00
hqu
28418b167b qcacld-3.0: Move rso related process to connection manager [PART 8]
Move below two changes from legacy to connection manager:
'Change-Id: If3bb344ec7058d4149d0064975d7c91f213fd105',
'Change-Id: I39a84d06b9c696179da1b854985a23b874a399c5'

Change-Id: I33921497d966f08a0ca476a373cfe6527888ca39
CRs-Fixed: 2765469
2020-08-29 12:24:56 +05:30
snandini
87bfcdf36f Release 5.2.0.200O
Release 5.2.0.200O

Change-Id: I9c1bab03df51f95ebc1dd64bc40afc56a551ebbf
CRs-Fixed: 774533
2020-08-28 23:31:08 -07:00
gaurank kathpalia
0ea2611649 qcacld-3.0: Add RSO logic to send roam trigger from target if
Add RSO logic to send roam trigger from target if along with
some optimization to move old logic in ROAM_OFFLOAD_V1.

Change-Id: I38e7fb4f8873328097df7e3a25d6c709f8d69b33
CRs-Fixed: 2765155
2020-08-28 23:31:08 -07:00
snandini
907cddf3c5 Release 5.2.0.200N
Release 5.2.0.200N

Change-Id: Ia6bde8c1b6f9e1f017f6a5eb063d754f69394138
CRs-Fixed: 774533
2020-08-28 13:03:41 -07:00
wadesong
2f61669efc qcacld-3.0: Fix a beacon template update dead loop
When sap is started, a dead loop for beacon template updating
can happen due to the following conditions:

  1) before vdev start happens for sap, he_ops will be retrieved
     from the ie buffer imposed by upper layer, and bss color
     initial setup will also be retrieved here and then updated
     to session->he_op;

  2) and it happens at least in some cases, that session->he_op.
     bss_col_disabled will be set to true, but due to there is
     actually no bss color changing really happening here, no
     new color will be setup here;

  3) later when sap is running and starts to do beaconing, it
     will start to check if session->he_op.bss_col_disabled is
     setup to true, and if yes, new beacon template will be
     issued to fw;

  4) later on, fw finishes the beacon template setup and sends
     a notification to driver in beacon tx success event, and
     driver will go back to steps 3) to check
     session->he_op.bss_col_disabled again;

If no real bss color change happens here, step 3) and 4) will
loop forever.

Fix the above dead loop by introducing check of
session->he_bss_color_change.new_color before driver code starts
to inspect the bss color change countdown value and updating
beacon template to fw.

Change-Id: I4a32ce9f547e988087c769ad8fab2973582ce6e4
CRs-Fixed: 2764896
2020-08-28 13:03:40 -07:00
Srinivas Girigowda
7e11aadd9d qcacld-3.0: Replace QDF_TRACE(QDF_MODULE_ID_SAP,...) with sap log macros
qcacld-3.0: Replace QDF_TRACE(QDF_MODULE_ID_SAP,...) with
sap_{debug|info|warn|err|alert()}

CRs-Fixed: 2755126
Change-Id: I58ef919175e0043b8a5a60c7a14e4ca3e672cb84
2020-08-28 13:03:36 -07:00
snandini
236b0497f4 Release 5.2.0.200M
Release 5.2.0.200M

Change-Id: I2b62721cdd77588c5e902973652d3d93436d2e2e
CRs-Fixed: 774533
2020-08-28 08:53:45 -07:00
Amruta Kulkarni
697f1926d1 qcacld-3.0: Send multiple ssid probe req to same bss during join procedure
In some instances, AP does not respond to probe req
causing join timeout at STA and no connection.
To solve this,send multiple probe requests(every 200ms)
to AP until join failure timeout(1 sec) expiry,
if single bssid case retry same bss again
(configurable via ini, max allowed tries 2).

Change-Id: I7a7eeedcc24db1a74cd186ff957c638a39cdea6d
CRs-Fixed: 2763815
2020-08-28 08:53:45 -07:00
Abdul Muqtadeer Ahmed
02a1f113c8 qcacld-3.0: Purge shutdown notifier during modules close
During the driver initialization if there is any issue,
in the error path the shutdown notifiers are not getting freed.

To resolve the issue purge the shutdown notifier before the
stop modules.

Change-Id: I51b20e5cddf558bb366b46f0650ac65754f23dcd
CRs-Fixed: 2761406
2020-08-28 08:53:41 -07:00
snandini
1979c395f1 Release 5.2.0.200L
Release 5.2.0.200L

Change-Id: Idc0e2654c6aa6a70ce16889f8e6da0f0a5ca20db
CRs-Fixed: 774533
2020-08-28 06:35:36 -07:00
Arun Kumar Khandavalli
78693e0c2b qcacld-3.0: Add beacon stats support for the p2p
Beacon stats are supported for both STA and P2P client devices,
with the changes to move the sysfs creation on interface this is
regressed.

Add the support back for beacon stats creation for p2p.

Change-Id: Ia329752cc5d4f0a338395d9416b8d444417ea567
CRs-Fixed: 2764053
2020-08-28 06:35:36 -07:00
Min Liu
416789ae60 qcacld-3.0: Debug logs for wifi configuration vendor command
Add more debug logs for wifi configuration vendor command.

Change-Id: I0b5735fcd59071d044f7964c9629aa78b99d41c3
CRs-Fixed: 2762199
2020-08-28 06:35:32 -07:00
Arun Kumar Khandavalli
97a23a462f qcacld-3.0: Reduce log level in uevent callback
Uevent callback from the platform driver could be called
in the interrupt context. Logging in the interrupt context
could result in thread taking more time resulting in
other system issues. Hence reduce the loglevel so that log
would be sent to the logging thread instead of console.

Change-Id: Ia07325d5bc00603c5b6cf1e0f98256997526edec
CRs-Fixed: 2756175
2020-08-28 06:35:28 -07:00
snandini
4daca42801 Release 5.2.0.200K
Release 5.2.0.200K

Change-Id: I673b26078cd4f5440942f9caa5b7339fca49475d
CRs-Fixed: 774533
2020-08-27 18:37:00 -07:00
Srinivas Dasari
fb7989e27a qcacld-3.0: Send nan enabled/disabled flag of SRD channels to fw
Check if NAN SRD operation is enabled in the ini
"etsi13_srd_chan_in_master_mode" and send the same to firmware
for all SRD channels.

Change-Id: I2aa8fd34c67b2061963b62a34d29c73740af3a76
CRs-Fixed: 2748455
2020-08-27 18:36:59 -07:00
gaurank kathpalia
f955b44a6d qcacld-3.0: Enable/Disable SRD support for vdev
Currently the driver enables the SRD channels
support for both P2P_GO and SAP if the SRD master
mode is enabled.

Have individual ini values to enable/disable
the SRD channel for each op-mode as required.

Change-Id: If6e66996ed19dacbde7f71a6702f378a7e9a273c
CRs-Fixed: 2748446
2020-08-27 18:36:55 -07:00
Jinwei Chen
b79fd0c6ec qcacld-3.0: Fix DP thread stuck issue due to rtnl lock
scenario:
(1) thread A is doing hdd_stop_adapter() and the caller outside of
hdd_stop_adapter will acquire the rtnl lock, dp_vdev_detach_wifi3()
in hdd_stop_adpater() will notify DP thread B flush stack GRO frames
and wait DP thread B response/set vdev delete event.
(2) but if DP thread B is under processing RX frames and do local
ARP check for ARP request, it will wait and try to acquire rtnl
lock as well, dead lock happened. Until thread A wait vdev delete
event timeout and corressponding net_dev/hdd_adapter is freed, then
DP thread B get chance to acquire rtnl lock but hdd_adapter/net_dev
has been freed, hit panic.

Use rtnl_trylock() instead of rtnl_lock() in hdd_is_arp_local(),
if rtnl_trylock() failed, assume this is local ARP and return,
else do the local ARP checking same as before.

Change-Id: Ic6724b68f6e09e9d139c430396e4c76bf483d033
CRs-Fixed: 2760979
2020-08-27 18:36:51 -07:00
snandini
e0b0cd7445 Release 5.2.0.200J
Release 5.2.0.200J

Change-Id: Ibaa8eb67f9330c5fa905912cc27e7dc6d5250be5
CRs-Fixed: 774533
2020-08-27 02:05:35 -07:00
Madhvapathi Sriram
fce3c2b2b4 qcacld-3.0: Add support to configure rate mask to cap phy rate
The ini ratemask_type and ratemask_set can be used to limit
the maximum phy rate. The ratemask_type is used to select
the phy mode and the ratemask_set to select desired NSS and MCS.

It can be used to optimize link performance.

Change-Id: Ia5c9f3a80eb93710bdcf53dabc4a45e554753b01
CRs-Fixed: 2758859
2020-08-27 02:05:35 -07:00
snandini
fd6093151e Release 5.2.0.200I
Release 5.2.0.200I

Change-Id: I997ba51e881e36e706e1e624402b5a8704d1b7fc
CRs-Fixed: 774533
2020-08-26 19:49:36 -07:00
Abhishek Ambure
afe7df01d8 qcacld-3.0: Add support to process freq in driver cmd
Host add support to process frequency if user sends frequency in
place of channel number in driver commands i.e. REASSOC,
SENDACTIONFRAME, FASTREASSOC.

Change-Id: I6e6d15a237d9bb1a973e9f42772c2f02e32fc585
CRs-Fixed: 2760074
2020-08-26 19:49:36 -07:00
snandini
f10ed8133d Release 5.2.0.200H
Release 5.2.0.200H

Change-Id: I346f9e6ed64f962d9286ec8fb25e3bec1b613d31
CRs-Fixed: 774533
2020-08-26 17:19:14 -07:00
Pragaspathi Thilagaraj
6737b67acf qcacld-3.0: Invoke wma_remove_peer() in HO fail vdev stop resp path
In LFR3 Handoff failure case, data path peer teardown is not
done prior to cdp peer delete and this causes bug_on to be
triggered during cdp peer delete.

Fix is to invoke wma_remove_peer() in vdev stop response path
with ho_failed flag set.

Change-Id: I112b2e8fe1792a967c48138113766b649ee1ba26
CRs-Fixed: 2760180
2020-08-26 17:19:14 -07:00
snandini
6959f26dcf Release 5.2.0.200G
Release 5.2.0.200G

Change-Id: Ica856c9b29eb3bdb07e457e4bb82b599fd705127
CRs-Fixed: 774533
2020-08-26 14:32:04 -07:00
Srinivas Girigowda
354fd80768 qcacld-3.0: Avoid overflow of the output buffer
The 2nd parameter to qdf_scnprintf() represents size of the buffer.
If 'size' bytes is written in to the output buffer then for the next
subsequent qdf_scnprintf() 'size' bytes must be substracted from the
size of the output buffer.

The problem in this code is, 2nd parameter is mentioned as PAGE_SIZE,
but instead it should be PAGE_SIZE - size.

Change-Id: I82c6b4a279eb912c693a4f026c2f672902ce3f76
CRs-Fixed: 2760078
2020-08-26 14:32:04 -07:00
Kiran Kumar Lokere
6ae664ed6c qcacld-3.0: Add configuration support for vdev dot11 mode
Add user configuration support to configure dot11 modes for
different vdev types.

Change-Id: I338d9d76f000195d1798bbc8b3b7ff1fb33ee305
CRs-Fixed: 2760240
2020-08-26 14:32:00 -07:00
Ashish Kumar Dhanotiya
59d4af5c85 qcacld-3.0: Continue the driver load on set band failure
Currently driver does the pdev close on set band failure at
the time of load which results in driver load failure.

To avoid above issue, do not close pdev and continue the
driver load smoothly.

Change-Id: I0977336b57126b299bd40dd6c18d9009b52454dc
CRs-Fixed: 2756716
2020-08-26 14:31:56 -07:00