Commit graph

22,932 commits

Author SHA1 Message Date
Ananya Gupta
4781f10dbf qcacld-3.0: Set bus bandwidth state to NONE in rutime suspend
Currently, runtime suspend is not setting bus bandwiddth state
to NONE but to IDLE level.
Change is to set bandwidth state to None after setting it to
IDLE.

Change-Id: Iabd20b7e4a23019768de7604cb0efda0328e7d57
CRs-Fixed: 3229952
2022-07-22 07:57:36 -07:00
Vulupala Shashank Reddy
e23c2cacd9 qcacld-3.0: Update the channel only if AUTH resp is successful
Currently channel is updated whenever AUTH frame is received
irrespective of its status. So in case of unsuccessful AUTH
wrong channel is updated in pkt capture mode.

To fix this issue, update the channel only if AUTH response
is successful. Also if after AUTH success, association or
reassociation fails update the channel with last connected
channel.

Change-Id: I51ee6bb2466f765ce6058c411b0dc0ab74a0dd04
CRs-Fixed: 2987748
2022-07-20 04:29:33 -07:00
Madan Koyyalamudi
a07ea269a5 Release 2.0.8.30S
Release 2.0.8.30S

Change-Id: Iae12dae13fea4605006d999d6d65aa81a8c1f836
CRs-Fixed: 774533
2022-07-18 12:59:29 -07:00
Balaji Pothunoori
9c739dc644 qcacld-3.0: Enable roam offload in wiphy based on roam ini set
Currently WIPHY_FLAG_SUPPORTS_FW_ROAM is updated in wiphy
based on FastRoamEnabled/EseEnabled/FastTransitionEnabled.

This change is to update WIPHY_FLAG_SUPPORTS_FW_ROAM flag in
wiphy based on lfr3 ini set.

Change-Id: I3eb9d4fe226849f28fd173fc5e891257f8e83ad9
CRs-Fixed: 3213817
2022-07-18 12:59:29 -07:00
Madan Koyyalamudi
4bb11ee937 Release 2.0.8.30R
Release 2.0.8.30R

Change-Id: If6090cfacc611a82fb21c0fea52a4d0b13aa721b
CRs-Fixed: 774533
2022-07-18 09:22:26 -07:00
Sai Pavan Akhil Remella
d92113623a qcacld-3.0: Fix invalid tx power in iw dev
Host driver rate limits successive get_txpower
calls within 3 seconds, and sends cached stats
from the hdd_stats. However, max_tx_power is
not updated in the hdd_stats. Therefore,
the cached tx power is always 0 dBm.

Also, the hdd_stats would be only updated when
CP stats are received from the firmware for
get_station/dump_station calls. get_station is not
periodically queried for SAP interface from the
framework. Therefore, tx power for SAP interface will
always be 0 even if hdd_stats gets updated.

To fix this, instead of hdd_stats, return the
max tx power from the pdev stats cached on the pdev.

Change-Id: I0c8d8baab790c7344bd8913158f8eda63736474e
CRs-Fixed: 3230649
2022-07-18 09:22:26 -07:00
Madan Koyyalamudi
3c11d374e0 Release 2.0.8.30Q
Release 2.0.8.30Q

Change-Id: Ic437060e2e3381929e0bf00803bb1e2d848db2b5
CRs-Fixed: 774533
2022-07-18 03:59:33 -07:00
Vulupala Shashank Reddy
0ed65ad5fb qcacld-3.0: Fix vdev reference count in packet capture
In pkt_capture_datapkt_process and pkt_capture_mgmt_rx_data_cb
pkt_capture_vdev_put_ref is missing in error case, because of
which vdev ref count is not becoming zero when vdev is down.

Add pkt_capture_vdev_put_ref in all the error cases.

Change-Id: I55353356f059a367d57c64625f404e3940235be1
CRs-Fixed: 3228599
2022-07-18 03:59:32 -07:00
Madan Koyyalamudi
78e6a7fe27 Release 2.0.8.30P
Release 2.0.8.30P

Change-Id: Id845e5c7ad6b33d96d7d55cc99d2bc3b0a7d4995
CRs-Fixed: 774533
2022-07-18 01:30:38 -07:00
Jingxiang Ge
56bd165af7 qcacld-3.0: Limit TPC power level for non-11be
when 11be is disabled, num_pwr_levels should not
exceed 8.
Limit num_pwr_levels before sending
WMI_VDEV_SET_TPC_POWER_CMDID.

Change-Id: I1e48d455f24b74479212441c7b42f7c11de7531b
CRs-Fixed: 3225090
2022-07-18 11:29:08 +08:00
Madan Koyyalamudi
c4a2536741 Release 2.0.8.30O
Release 2.0.8.30O

Change-Id: I71346d82c45bf3994a01ef5103ad70a1cc3dafba
CRs-Fixed: 774533
2022-07-15 05:26:37 -07:00
Pragaspathi Thilagaraj
681e2c002a qcacld-3.0: Don't proceed with roam synch after disassociation
During roam synch event processing, if ssid mismatch is seen,
then the driver issues disassociate, but still proceeds to
process the roam synch indication and indicates new
connection to upper layer. This causes policy manager api to
increment active session wrongly when actually STA is
disconnected.

Return failure in csr_roam_stop_network() if disassociation is
initiated.

Change-Id: I21ae1c26114e4387517710cd3358f89b7e2432fd
CRs-Fixed: 3210852
2022-07-15 05:26:36 -07:00
Balaji Pothunoori
65d897bce7 qcacld-3.0: enable shortgi for assoc req based on ap capabilities
Currently shortgi 20/40 values are updated with ini configured
values irrespective of ap capabilities.

This change fills shortgi values based on ap capabilities if it is
enabled in ini.

Change-Id: I6a590e5c0981fab61dcbcf06cf22fda70d833fd7
CRs-Fixed: 2867232
2022-07-15 05:26:31 -07:00
Aravind Kishore Sukla
d36de63654 qcacld-3.0: Initialize bssid variable
Uninitialized variables in pkt_capture_process_tx_data()
and pkt_capture_callback() may lead to Unpredictable behaviour.

Initialize corresponding bssid variables to avoid it.

Change-Id: I1ca6e7e04c8920111414a83c29cb61883b72370c
CRs-Fixed: 3241885
2022-07-15 05:26:25 -07:00
Will Huang
40f433888d qcacld-3.0: Fix unsafe channel buffer size not align
qdf_freq_t is by default defined as uint32_t, but hdd_ctx->
unsafe_channel_list is defined as uin16_t because cnss interface
is defined as uint16_t, so can't pass hdd_ctx->unsafe_channel_list
to ucfg_policy_mgr_init_chan_avoidance() which expect qdf_freq_t
list.

Convert hdd_ctx->unsafe_channel_list to qdf_freq_t list and pass
it to ucfg_policy_mgr_init_chan_avoidance().

Change-Id: I0207827e3cbaa82526e97d2826d90d396148c84a
CRs-Fixed: 2964178
2022-07-13 19:25:24 -07:00
Madan Koyyalamudi
7db9403544 Release 2.0.8.30N
Release 2.0.8.30N

Change-Id: Idde90dc8d298ec09235353707164554fd5e2e08e
CRs-Fixed: 774533
2022-07-12 13:01:00 -07:00
Pragaspathi Thilagaraj
74afb00f57 qcacld-3.0: Check for allowed frequency during set pcl
Sta is not allowed to connect/roam in 6 GHz frequency or indoor
frequency in non-DBS target if SAP is active.
But STA roams to 6 GHz AP when SAP is active since the PCL allows
6 GHz frequency.

While populating PCL to firmware, check if 6 GHz and indoor
frequencies are allowed for non-dbs target and set the
weight appropriately if the channels are not allowed

Change-Id: I0e5fdc5b3c4177283d91cdfc58359336cc11910d
CRs-Fixed: 3205494
2022-07-12 13:00:59 -07:00
Madan Koyyalamudi
419a07c046 Release 2.0.8.30M
Release 2.0.8.30M

Change-Id: I0d3cadf0b0c33fdbcb7cf47e7f306a7de3e73de0
CRs-Fixed: 774533
2022-07-11 19:45:48 -07:00
Aditya Kodukula
5de9df0fa7 qcacld-3.0: Avoid double free in sch_gen_timing_advert_frame
In sch_gen_timing_advert_frame, the memory allocated for buffer
timing_advert->template_value is freed but not reset to NULL.
This creates a dangling pointer, and it is freed again inside
__wlan_hdd_cfg80211_ocb_start_timing_advert.

To avoid this issue, reset the pointer to buffer
timing_advert->template_value to NULL before returning from
sch_gen_timing_advert_frame.

Change-Id: I2445c53f217d0fd22cbe3026b0869284fe13b851
CRs-Fixed: 3229906
2022-07-09 22:28:38 -07:00
Madan Koyyalamudi
a0ffa6f645 Release 2.0.8.30L
Release 2.0.8.30L

Change-Id: I37f11b24a1b533b847e7a3a0f0d0b2db547de18e
CRs-Fixed: 774533
2022-07-08 09:07:21 -07:00
Surya Prakash Sivaraj
bd22b29f0d qcacld-3.0: Update preauth candidate entry to scan table
During SAE roam auth offload, update the beacon/probe response
frame coming from the FW via WMI_ROAM_FRAME_EVENTID into the
scan db.

When the bss info of the preauth candidate is unavailable in
the host/kernel scan entry, supplicant fails to determine the
proper SAE PWE config of the peer and the commit request fails.

Change-Id: Ia782ece7bebf8274f949fe9fb3b2a2882bf47597
CRs-Fixed: 3075458
2022-07-08 09:07:20 -07:00
Madan Koyyalamudi
f114c0e9a1 Release 2.0.8.30K
Release 2.0.8.30K

Change-Id: I2d4f2a334110676bdd319947d772efa4c4369ed5
CRs-Fixed: 774533
2022-07-08 05:28:51 -07:00
Yeshwanth Sriram Guntuka
e6e516e90e qcacld-3.0: Control GRO en/dis based on TC filter prio
The dynamic GRO enable/disable based on ingress filters
should currently is restricted only to standalone STA.
This was done to address issue where ingress filters are
added on STA interface whenever SAP is up disabling GRO
unnecessarily.

Fix is to allow dynamic GRO to work on all interfaces
and concurrency scenarios based on the priority of
the ingress filter configured to avoid unnecessary
GRO disable in STA+SAP.

Change-Id: I1742f4539353939e3a40ff4096b3f833f2029b12
CRs-Fixed: 3206815
2022-07-05 15:31:19 +05:30
Yeshwanth Sriram Guntuka
b72ea52ca9 qcacld-3.0: Do GRO en/dis based on qdisc only for standalone STA
In case of STA+SAP, ingress qdisc filters are getting
configured on both STA and SAP interface which is
causing GRO to be disabled.

Check for ingress qdisc to enable/disable GRO only in
case of stanalone STA and not do this in case of
concurrency.

Change-Id: I3542930c7b14d72e267378dd4687ee9721eed4ed
CRs-Fixed: 3062195
2022-07-05 14:55:06 +05:30
Madan Koyyalamudi
6081afca20 Release 2.0.8.30J
Release 2.0.8.30J

Change-Id: I520401befa732f47c7544546ad15d9aa83912f2b
CRs-Fixed: 774533
2022-06-29 05:02:16 -07:00
Srikanth Marepalli
2a92ccf428 qcacld-3.0: Allow unprotected diassoc frame when keys are not installed
Currently unprotected diassociation frame is dropped if
PMF is enabled and keys are not installed. This causes
delay as supplicant has to do EAPOL timeout after
10 secs and then do disconnect.

Allow unprotected disassociation frame when install keys are
not done.

Change-Id: I12068d7b10c4e6f7885ca3a3400a8845a4c236f2
CRs-Fixed: 3208427
2022-06-29 05:02:16 -07:00
Srikanth Marepalli
5ee7bb99f2 qcacld-3.0: Ignore duplicated assoc req frame
When PMF enabled, SA Query will be triggered unexpectly if
duplicated assoc_req received after pre_auth node deleted
and before key installed.
Here drop such duplicated assoc_req frame.

Change-Id: I1c769892052fba5e8c7340b2f82e822add573dd4
CRs-Fixed: 2966447
2022-06-29 05:02:11 -07:00
Surya Prakash Sivaraj
3c6aa0c3f2 qcacld-3.0: Drop duplicate auth/assoc frames
Currently duplicate authentication frames are dropped if the
sequence number is same previously processed auth frame and retry
bit is set. To stop the flooding of auth frames with same sequence
number, check the previous seq number stored on the preauth node
and drop if the frame is a duplicate.

Currently, for PMF-capable peers the duplicate assoc request
frames are getting processed before the key is plumbed because
the is_key_installed flag is not reset properly before assigning
the dp hash node to a new sta. Therefore, reset the is_key_installed
flag for every new dp hash node addition.

Change-Id: Id035a5ba5ffe9b745361956d05496f9905bf2526
CRs-Fixed: 3155517
2022-06-29 05:02:05 -07:00
Madan Koyyalamudi
80e72c0e4e Release 2.0.8.30I
Release 2.0.8.30I

Change-Id: Ia97884594e1f1440c1dd39f33ef71dd11056616b
CRs-Fixed: 774533
2022-06-28 03:48:53 -07:00
Liangwei Dong
b8d7dc010c qcacld-3.0: Tune normalize_acs_weight for 6 GHz non-PSC CH
In new framework the 6 GHz preferred SAP ACS config file will
contain 5 GHz channels, to avoid 6 GHz non-PSC being set to
MAX weight value and 5 GHz channels selected easily, here set
normalize_acs_weight to 90 for non-PSC channel of 6 GHz, 40
for 2 GHz and 5 GHz channels.

Change-Id: I5e89339d0fd4e3c190dd2ead1ec87d12ff197691
CRs-Fixed: 3186587
2022-06-28 03:48:52 -07:00
Srikanth Marepalli
bb6cc73852 qcacld-3.0: Introduce a new flag to enable the low power mode
This change enables the CONFIG_ENABLE_LOW_POWER_MODE
based on the new flag added for the talos target.
This Low power config enabled the Deep Sleep / Hibernate
feature in WLAN.

Change-Id: Ied9a52d3b225957d0c3121df50bcd43d0ce7c7fc
CRs-Fixed: 3219080
2022-06-24 13:49:26 +05:30
Madan Koyyalamudi
e1cf74ee72 Release 2.0.8.30H
Release 2.0.8.30H

Change-Id: I012d140f37f3ac34418c7173400bc52d517e5182
CRs-Fixed: 774533
2022-06-22 23:25:08 -07:00
Jianmin Zhu
5862891f8c qcacld-3.0: Check FTM mode in vendor cmds handlers
Vendor commands of wiphy aren't initialized when driver load as FTM mode,
if changed to mission mode later with following cli:
echo 0 > /sys/module/wlan/parameters/con_mode,
vendor commands of wiphy keep uninitialized, wpa supplicant can't get
roam offload status by QCA_NL80211_VENDOR_SUBCMD_GET_SUPPORTED_FEATURES,
so PMK isn't sent to driver/firmware,  roam offload failed.

To fix it, remove QDF_GLOBAL_FTM_MODE check in wlan_hdd_cfg80211_init, let
vendor commands of wiphy initialized in FTM mode too when driver load.
But in each vendor cmd, check FTM mode when called, if FTM mode, return
-EPERM.
When driver is changed to mission mode, all interfaces are deleted and
re-added by driver, when interface added event is received by
wpa supplicant,  QCA_NL80211_VENDOR_SUBCMD_GET_SUPPORTED_FEATURES is
called again to get roam offload enabled status, PMK will be sent to
driver and firmware when RSO start, roam offload will work.

Change-Id: Ie0c868ebd4b7e356d72a154206b13df94f378188
CRs-Fixed: 3213221
2022-06-21 15:07:41 +08:00
Madan Koyyalamudi
c3cc73bc27 Release 2.0.8.30G
Release 2.0.8.30G

Change-Id: I56658e5ec7b496639b3d84ce2e981d185fbd2bfe
CRs-Fixed: 774533
2022-06-16 12:47:13 -07:00
Yu Tian
10de640eeb qcacld-3.0: Use skb_orphan instead of skb_unshare in TX
To use skb_orphan instead of skb_unshare, this is
aimed to prevent addition skb_alloc possible failures
in TX path, then avoid of unnecessary packet drop when
memory runs low.

Change-Id: Ic8dfdb09c73a1071678612430fff2f23180ad336
CRs-Fixed: 3162137
2022-06-16 12:47:12 -07:00
Madan Koyyalamudi
9ee68be93a Release 2.0.8.30F
Release 2.0.8.30F

Change-Id: Ia8038a15ac82447bf0df196ae581f95550c51ca3
CRs-Fixed: 774533
2022-06-16 10:15:36 -07:00
Jia Ding
1b540569b5 qcacld-3.0: Enable uplink delay feature for Vordonisi
Enable uplink delay feature for Vordonisi platform.

Change-Id: Ie38f7f1ee25bd880bfd628c0a0e11eeb3732dedf
CRs-Fixed: 3218090
2022-06-16 10:15:36 -07:00
Srinivas Dasari
3dfcb40486 qcacld-3.0: Peer may not be present if NDP confirm fails
NDP peer gets created as part of NDP indication in case of NDP
initiator. But NDP may fail to form due to various reasons and
firmware may send NDP confirm with reject status in such cases
instead of NDP indication event.
Below is the detailed scenario,
1. On initiator side, it has sent an NDP request and is waiting
   for NDP response.
2. On responder side, application/framework is preparing to send
   NDP response with reject due to some config mismatch. At the
   same time, NDP termination is also issued. So NDP termination
   frame is sent successfully.
3. Initiator firmware receives this NDP end and it sends an NDP
   confirm with REJECT to the host and it shall clean-up the
   session.

Currrently, there is a check for the peer existence while
indicating this NDP confirm status to framework. There is no need
of this check in such failure cases as peer is not yet created.

Change-Id: Ibe94a5b67df1ce3d65eaf2ef37b11b08155752c9
CRs-Fixed: 3086975
2022-06-16 10:15:30 -07:00
VIJAY RAJ
7bd1115b69 qcacld-3.0: Return success from dynamic nss chain support check for 1x1
In api hdd_update_nss(), when unit test command 'iwpriv wlan0 nss 1'
is used in 1x1 mode, the fail status is returned resulting in test
case failure.

Return a success status in api hdd_update_nss() for 1x1 mode resulting
successful execution of test case.

Change-Id: Id482c2686b48a0b6cdd41980c4eb4424da775ad0
CRs-Fixed: 3195517
2022-06-16 10:15:24 -07:00
Vinod Kumar Myadam
6ad52e5a38 qcacld-3.0: Sanity check for session_id in roam
For session_id is not have sanity check, an OOB would happen
leads to crash.

Added Sanity checks for session_id in roam functions and
return failure if session_id is equals to NULL or MAX value.

Change-Id: I033c6567f53ead2a721882e9b44f3d0bcb58084d
CRs-Fixed: 3149880
2022-06-09 09:58:46 +05:30
Madan Koyyalamudi
c0bcc19aff Release 2.0.8.30E
Release 2.0.8.30E

Change-Id: I052d211fda31a792ad06a3f74d8641c094e4eec0
CRs-Fixed: 774533
2022-06-06 05:35:16 -07:00
Srikanth Marepalli
028e3d7da0 qcacld-3.0: Send the trigger reason as part of roam scan stats
Notif_param of Roam event ID carries the trigger reason as part
of roam scan start notif. Currently host doesn't read this param.
This commit reads the trigger reason and sends it to user-space
via vendor attribute whenever the roam event vendor command is
enabled.

Change-Id: If9fdbc31df149f4f1c9ca196ee74e2fcb3709a1c
CRs-Fixed: 3161803
2022-06-02 23:53:54 -07:00
Madan Koyyalamudi
1e4bd1c400 Release 2.0.8.30D
Release 2.0.8.30D

Change-Id: Ib5f00af3a09fb8d3525e7882ae535e12c529439d
CRs-Fixed: 774533
2022-05-30 05:51:18 -07:00
Surabhi Vishnoi
ea9208e299 qcacld-3.0: Acquire wakelock during roaming if key installation is pending
Currently, wakelock is only taken during initial connection if
pairwise key installation is pending and not during roaming. This
may lead to EAPOL delay/timeout during roaming as runtime pm and
suspend is allowed during roaming. To fix this issue, acquire
wakelock if key installation is pending during roaming.

This change also refactors the code and release the wakelock in
wma_remove_peer if EAPOL fails during initial connection or roaming.

Change-Id: Id4cac30b3c383ca3d3e963571846f8a30eaa1006
CRs-Fixed: 3189799
2022-05-30 05:51:17 -07:00
Madan Koyyalamudi
4fd813b1e3 Release 2.0.8.30C
Release 2.0.8.30C

Change-Id: I58e608d916217dca059f7359b38cb91529d24b91
CRs-Fixed: 774533
2022-05-28 11:15:11 -07:00
Vijay Patil
83f49ec2d0 qcacld-3.0: Don't proceed with NDP peer handling if NDI is not UP
Firmware might send NDP peer indication/NDP responder response
while NDI deletion is in progress. Currently, NDP peer entry
gets added though vdev is moved to DOWN state and cleanup is
in progress. This leads to stale peer entry on that NDI vdev
and doesn't allow vdev delete when IFF_DOWN comes, as a peer
is present.
Check the vdev state before creating peer for NDP and skip
peer creation if NDI vdev is not in UP state(which indicates
that the vdev down is happening).
Also, don't process the NDP confirm if NDP peer is not created.

Change-Id: I73e79cc33b1a294e3f4a4a6e2f371033862c5709
CRs-Fixed: 3061756
2022-05-28 11:15:11 -07:00
Madan Koyyalamudi
7a81e44044 Release 2.0.8.30B
Release 2.0.8.30B

Change-Id: Idb8b25cb092afed38e02871220d97a6b2677783e
CRs-Fixed: 774533
2022-05-26 06:13:36 -07:00
Vulupala Shashank Reddy
772875a23c qcacld-3.0: Add check to avoid null pointer dereference
Add null check while calling wlan_psoc_get_qdf_dev to
avoid dereference of null pointer.

Change-Id: Ia3717238d6d81c805aef28337bb633a0f7e383dd
CRs-Fixed: 3203257
2022-05-26 06:13:35 -07:00
Madan Koyyalamudi
d9ba7017eb Release 2.0.8.30A
Release 2.0.8.30A

Change-Id: I86f8e01c670b7119652fca9f5ae248117317c6c3
CRs-Fixed: 774533
2022-05-26 01:15:28 -07:00
Utkarsh Bhatnagar
6a4677d533 qcacld-3.0: Update MLME Cfg num_ppe_th
With Kernel 5.13.2 onwards, if
ppe_present is present in HE capabilities
then ppe_threshold fields are also required
to be sent such as length has to be non zero
and the data can be all zeros as part of
TDLS Discovery and Setup frame.

While sending setup frames, ies are packed using
dor11f apis such as dot11f_pack_ie_he_cap().
Even if ppet_present is set,
dot11f_pack_ie_he_cap() will only send
ppe_threshold if num_ppe_th is present.
The HE capabilties which are sent in these
are filled using MLME Cfg HE capabilities.
So, calculate and set num_ppe_th using cfg
ppe fields based on the operating band.
Also to cover a corner scenario where ppe_present
is set but calculated num_ppe_th is 0, set
num_ppe_th to 1 so that atleast 1 byte should be
sent to prevent framework from throwing
exception during add_sta.

Change-Id: Ibe4fd3fdacce24573c09b3609babf04ef4423fb1
CRs-Fixed: 3183531
2022-05-26 01:15:27 -07:00