커밋 그래프

2409 커밋

작성자 SHA1 메시지 날짜
Kiran Kumar Lokere
5100c14d73 qcacld-3.0: Config support for WMM based TXOP feature
Add configuration support for WMM based TXOP feature.

Change-Id: Ide52b7d4b7bca590515e8697506d2b52744a7fa6
CRs-Fixed: 2947604
2021-06-08 03:16:03 -07:00
Subrat Dash
242f56b2a4 qcacld-3.0: Enable peer map v2 feature only for wds mode
Set peer map v2 in the target resource config only when
the wds mode is enabled in the ini "wds_mode".

CRs-Fixed: 2958287

Change-Id: Ifbedc8c29e8c6278875ad13c6fe6b0fb557feece
2021-06-08 01:08:12 -07:00
Srikanth Marepalli
e4323e039d qcacld-3.0: Enhance the EAPOL handshake offload INI per AKM
Existing INI disable_4way_hs_offload is defined as a boolean
that controls the EAPOL Handshake to be offloaded to Firmware or
Not. There is no way to specify the EAPOL offload per AKM.

Hence extended the support of EAPOL handshake offload to firmware
per AKM by converting this INI to a bitmap integer.
With ini value as 0 by default Firmware takes care of 4-way HS
during roam for all AKMs except for SAE and OWE. If
this ini value is 1 then Host takes care of EAPOL for all AKMs.

Having the backward compatibility, added a new value to ini.
If this ini value is set to 2 and also if the SAE EAPOL offload
service bit is set by Firmware then the behavior is same as ini
with 0 except that Firmware takes care of 4-way HS for SAE roam
as well. And for OWE it is still handled by supplicant.

To achieve this, new roam offload flag is introduced to indicate
Firmware about SAE roam EAPOL offload, So that in Roam sync
indication Firmware will inform the status as connected but not
authenticated so that supplicant can take care of 4-way EAPOL HS.

Change-Id: I8b65a1768fad91fac7e427712d3ccf4586176f5f
CRs-Fixed: 2955029
2021-06-07 22:54:32 -07:00
Rakesh Pillai
e86da7276c qcacld-3.0: Changes to enable BE/WCN7850 flags
Changes to enable compilation for beryllium target(chip WCN7850).

CRs-Fixed: 2888534
Change-Id: I7b3d252fc8550883a2d24b6beb2b78f482f5004b
2021-06-04 10:43:23 -07:00
Ashish Kumar Dhanotiya
6afc566756 qcacld-3.0: Move call to hdd power stats callback inside lock
Currently when host receives power stats from fw, before
processing these stats it check for the hdd callback and
processes these stats only if hdd callback is registered.
This callback is checked in
wma_unified_power_debug_stats_event_handler function before
processing of the fw event and outside of any lock. After
processing stats, this hdd cb is invoked, there is an issue
with this approach that while processing these stats if timeout
happens in hdd then hdd sets its callback as NULL and now after
processing stats wma handler invokes this hdd cb which is already
NULL, leading to null pointer dereference.

To avoid above issue, add sme callback and move null check for
hdd cb and call to hdd cb inside sme lock which is the same lock
used while setting hdd cb to null on timeout.

Change-Id: I2203083a17ca3404c5c5af98ddc48ba127e6aee2
CRs-Fixed: 2950633
2021-06-03 17:06:05 -07:00
Subrat Dash
7b3d485441 qcacld-3.0: Set target config for peer map v2
The peer map v2 set in the target resource config
is sent to FW via WMI INIT CMD.

This configuration will enable index based AST
search in WDS mode.

CRs-Fixed: 2951231
Change-Id: If1c47c710832ddd46d99bffc66fc09e4fe76eab1
2021-05-27 23:40:25 -07:00
Utkarsh Bhatnagar
045ed44dee qcacld-3.0: Move unused Lfr3 specific item under FEATURE_CM_ENABLE
Move unused Lfr3 specific item under ifndef FEATURE_CM_ENABLE.

Change-Id: I94d5f9d48f5cb853dc3ac9039f6140f23ab620cd
CRs-Fixed: 2953719
2021-05-27 03:46:29 -07:00
Arun Kumar Khandavalli
add1f46a2b qcacld-3.0: Remove obselete wma_needShutdown code
wma_needShutdown related code is now obselete, during the cds_preenable
failure, this is obselete code is being invoked which is setting
wma->needShutdown. If the same is set the wma_close will not be
inokved resulting in the reference leak of of pdev object.

Remove obselete wma_needShutdown code.

Change-Id: Ia1463c9197593165eb5844e154f78fe3fe278fbd
CRs-Fixed: 2947133
2021-05-19 14:37:49 -07:00
Aditya Kodukula
2d3512006a qcacld-3.0: Add check to validate the Tx chainmask value
Add a sanity check to validate the Tx chainmask value
sent from the user space for each HW mode.

Change-Id: I2705efe20fcb13bf8343088ceecb4207e2562789
CRs-Fixed: 2943363
2021-05-14 06:49:49 -07:00
Amruta Kulkarni
93b37bfa86 qcacld-3.0: Fix possible NULL pointer dereference
Fix possible NULL pointer derefernce in wma_scan_roam.c

Change-Id: I4b428c86bc0aa303b504b8eb3a21a35b3172dd06
CRs-Fixed: 2933568
2021-05-13 17:39:55 -07:00
Jyoti Kumari
6bb5c1138d qcacld-3.0: wma_send_peer_assoc() sets incorrect peer state
wma_send_peer_assoc() calls wma_unified_peer_state_update() which
always sets the peer state as AUTH irrespective of peer state.

Remove wma_unified_peer_state_update() from wma_send_peer_assoc()
to handle peer state.

Change-Id: I4a887acbc8018653c34b927636cce7cc05323838
CRs-Fixed: 2888808
2021-05-13 01:12:43 -07:00
Utkarsh Bhatnagar
c7e32c7021 qcacld-3.0: Enable TDLS 11AX only if supported by FW
Don't fill the 11ax capabilities if FW doesn't support
TDLS 11AX capability.

Change-Id: I267ccaa439bb3cf17d27493172b4f324d112724b
CRs-Fixed: 2925250
2021-05-10 09:02:55 -07:00
Jia Ding
3644001a81 qcacld-3.0: Add 320MHz support in WMA layer
As part of 320MHz bandwidth support for 11BE, add 320MHz bandwidth
in WMA layer, where in particular set bw_320 to 1 in wma_send_peer_assoc
and populate ch_width to 320MHz in wma_update_channel_list.

Change-Id: I61793add8d86b0557bd4eed78233860e6ade1c18
CRs-Fixed: 2935851
2021-05-06 06:23:17 -07:00
Pragaspathi Thilagaraj
3ddbc71c99 qcacld-3.0: Increment peer count in LFR-2.0 roaming case
In LFR-2.0 roaming case, wma_add_peer() is called which
sends the peer create command to firmware, but in the
caller peer count is not incremented in success case.
This leads to peer deletion failure during disconnection.

Increment peer count in LFR-2.0 roaming case.

Change-Id: I0b17217615e104fe93f622555f04c6a85e279d6d
CRs-Fixed: 2929615
2021-04-30 18:52:07 -07:00
Jianmin Zhu
fca87a8b09 qcacld-3.0: Fix No AMSDU/MPDU aggregation issue
Host need set tx_aggr_size_disable bit when host tx aggregation is
unsupported.

Change-Id: I0c86e74f6447f401d24660e1291abf969b1abbe6
CRs-Fixed: 2931245
2021-04-29 04:37:34 -07:00
Lincoln Tran
f3ce32ef59 qcacld-3.0: Only send VHT TX_BF if FW supports it
Only send the VHT TX beamforming capability if firmware has set the
support bit. This helps ensure backward compatibility for older
products.

Change-Id: Ia5830c9f378e3f0ddc83c8019d5168a270ad6f69
CRs-fixed: 2933687
2021-04-29 01:45:10 -07:00
Arun Kumar Khandavalli
33bef282bb qcacld-3.0: Add DBS_OR_SBS support in hw_mode_list
The enhancement is to add DBS_OR_SBS hardware mode
support.

Change-Id: Id5a2f0babcf0a1a2f6982ff671af8f660ec56a0f
CRs-Fixed: 2931621
2021-04-26 10:01:37 -07:00
Bapiraju Alla
feddfb47cb qcacld-3.0: Add missing implementation for 11be association
Currently below implementation is missing in the driver. So driver
is failing to associate in 11be. Add this implementation to support
11be association in the driver
  - Filling EHT IEs in probe response
  - Sending EHT mcs capabilities while creating the peer
  - Fix compilation issues when 11BE feature is enabled
  - Add the the 320MHZ to wma_chan_phy_mode

Change-Id: Ib535db413d5578840feed7fd18bb00e5e28cfb6f
CRs-Fixed: 2926471
2021-04-23 04:35:43 -07:00
Abhishek Singh
838fc0c3bf qcacld-3.0: Avoid use after free of del_sta in wma_delete_sta
In case of TDLS peer connected if SSR happen, LIM try to flush
TDLS peer with del_sta->respReqd as false.

With respReqd false del_sta is freed in the switch case, but
is used outside the switch case, leading to use after free.

Fix is to use the local vdev_id instead of del_sta->smesessionId.

Change-Id: I7e08733cf42ef619b3fa0d6726ee1acc2012c6a4
CRs-Fixed: 2929448
2021-04-22 21:58:58 -07:00
Jyoti Kumari
e9a700f4aa qcacld-3.0: Don't use wlan_freq_to_chan
As part of regulatory cleanup, wlan_freq_to_chan() is removed.

Use wlan_reg_freq_to_chan() instead of wlan_freq_to_chan()

Change-Id: I18d7996a0b117de90cd32f2208702d01655ceeb9
CRs-Fixed: 2926114
2021-04-20 11:42:27 -07:00
bings
c9abaf71bb qcacld-3.0: Add wma layer 11BE api
Implement 11BE api in wma layer

Change-Id: I23c8fae9e27f972dadfe8a517954481de8f92de0
CRs-Fixed: 2912568
2021-04-19 13:32:07 -07:00
Arun Kumar Khandavalli
061fe45f3c qcacld-3.0: update the eht capabilities received from firmware
Update the wma structures with the eht capabilities received
from the firmware.

Change-Id: If571ab857e1f71b972655d9d48902b28e3974b1e
CRs-Fixed: 2911863
2021-04-19 00:52:34 -07:00
Alan Chen
f717540bf2 qcacld-3.0: Remove wake reason log to avoid excessive logging
There is excessive logging in wma_wake_event_packet that does not
add much value in debugging. Hence, remove it entirely from the code.

Change-Id: If0ea6d9ea33d741f734ccf14ad3d1f1b4e261dd0
CRs-Fixed: 2923733
2021-04-15 00:12:15 -07:00
Abhishek Singh
ec812d5929 qcacld-3.0: Handle TDLS HE mode in 11b mode to calculate phymode
If STA connection is in 11b mode and TDLS connect in HE, the
phymoe is not calculated properly.

Handle the HE mode in 11b network type as well.

Change-Id: I0ddafa0b4be8d6eab02c66be7c0f909c2d968918
CRs-Fixed: 2923182
2021-04-14 10:51:48 -07:00
Yu Wang
fdc00052a7 qcacld-3.0: set msdu/mpdu aggr size for each vdev start
The global aggregation size is only set to firmware once
when vdev is created. And the size may be modified
dynamically for a specified AP during association, according
to the OUI based aggregation size configured by ini
'cfg_tx_iot_aggr'.

If global AMSDU size is 0, considering the case as below:
1. connect to AP-1 which is included in 'cfg_tx_iot_aggr',
   the AMSDU size will be set to the specifed value.
2. connect to AP-2 which is NOT in 'cfg_tx_iot_aggr',
   it doesn't reset the AMSDU size to 0, and firmware is
   still using the value set in step #1, it's wrong.

To fix this issue, set the global size for each vdev start,
as init values for each connection.

Change-Id: I790d580fc5762e6816e840ba5484b3cd758334df
CRs-Fixed: 2918046
2021-04-13 03:39:19 -07:00
Jianmin Zhu
ac8d6a6ba2 qcacld-3.0: Disable TX_AGGREGATION_SIZE ini for HSP
HSP doesn't support TX_AGGREGATION_SIZE ini, need disable it to avoid
confusing.

Change-Id: I9e49ad5218f913f116cf4472f768f572740f14df
CRs-Fixed: 2918796
2021-04-10 22:52:22 -07:00
Yu Wang
ffbb93ace5 qcacld-3.0: remove delay_before_vdev_stop from wma_txrx_node
The delay before vdev stop is a global config,
no need to set for each interface separately.

Change-Id: I5760cf083a6749bb82cc88635a947f1d18308dfe
CRs-Fixed: 2904748
2021-04-06 18:42:57 -07:00
sheenam monga
6e6c139e05 qcacld-3.0: Add support to offload igmp feature to fw
offload igmp feature to fw in case of suspended state
to avoid high power consumption.

Change-Id: I05fbf23dc2836f8f5dc6e2f45b35bf2d30c39790
CRs-Fixed: 2907644
2021-04-05 15:22:23 -07:00
Nirav Shah
3a672d5526 qcacld-3.0: set nan_separate_iface_support flag in FTM mode
Set nan_separate_iface_support flag in FTM mode to avoid
create NAN vdev in FTM mode. This helps in FTM mode test cases
where max supported vdevs are used.

Change-Id: Ia628655a87505db787043ef29dd18d259052b521
CRs-Fixed: 2888703
2021-04-05 04:45:10 -07:00
Aditya Kodukula
7beff561cc qcacld-3.0: Remove INI parameter gDataInactivityTimeout
As part of WiFi ini clean-up FR, the ini parameter
gDataInactivityTimeout, is identified as it is no longer used
and hence it can be deprecated.

Change-Id: Ic01ba8934058cf2fb3bec042f11b01ea70ef7a3f
CRs-Fixed: 2896042
2021-03-28 23:36:47 -07:00
Amruta Kulkarni
6c678097a0 qcacld-3.0: Support roam ho fail and roam invoke fail ind in CM
Add change to support roam ho fail and roam invoke fail
indication in connection manager.

Change-Id: I8e4fed2ca4b9c6e95da86b0c37e39da8f2bc4953
CRs-Fixed: 2906319
2021-03-25 22:23:16 -07:00
Amruta Kulkarni
15ac4a4e5a qcacld-3.0: Support roam sync indication in CM
Add change to support roam synch indication
in connection manager.

Change-Id: I06b23ae085a5a86caf4fe04fe5929b86d8d5c543
CRs-Fixed: 2901858
2021-03-24 09:47:46 -07:00
Lincoln Tran
bd277f1bb0 Revert "qcacld-3.0: Send TxBF in NAN case"
This function call is not needed because the capabilities
are being sent post vdev start correctly. The call here sends
the capabilities incorrectly at a later time so the good
values are overwritten.

This reverts change I32af660724cfaecfe59da153fea9f98d24b0d4cb.

Change-Id: Ie57a598f1055ee6a3d5a5f9cd353724dc620ab1d
CRs-fixed: 2905402
2021-03-23 21:39:15 -07:00
Lincoln Tran
ab9679a5eb qcacld-3.0: Send VHT TXBF caps after vdev start
After creating the vdev, send the VHT beamforming capabalities.

Change-Id: I9c989a51dab4e239b31d0e8e25f5cf471e6aa0a6
CRs-fixed: 2902912
2021-03-22 13:30:57 -07:00
Jyoti Kumari
e6f2a6bded qcacld-3.0: Avoid double memory free of ack_work handler
when the worker thread executes wma_data_tx_ack_work_handler()
as part of driver load/unload, driver frees ack_work but dosent
reset to NULL which results to double memory free in wma_stop()

The fix is to make sure to flush this work and reset to NULL
before the wma_handle gets freed.

Change-Id: I4f56db87256b0f8828c00a2e70158cd76afe1ee0
CRs-Fixed: 2895664
2021-03-21 21:50:35 -07:00
Abhishek Ambure
e489d5e393 qcacld-3.0: Fill wma req before pdev_set_dual_mac cmd sent to fw
Presently host prepares and fills wma req in wma_hold_req_queue
after sending pdev_set_dual_mac command to FW. Host uses same wma
request to process response from firmware. If host gets FW response
before filling wma request to wma_hold_req_queue, host fails to
process pdev_set_dual_mac cmd response. And thus the wma request
queued after sending pdev_set_dual_mac command gets timeout.
Hence prepare and fill wma req in wma_hold_req_queue before sending
pdev_set_dual_mac command to firmware.

Problem scenario:
1) Host send pdev_set_dual_mac cmd to fw in kworker thread and then
   gets suspend before filling wma req into wma_hold_req_queue.
2) Host gets pdev_set_dual_mac cmd response from fw and schedular
   thread runs to process response where it doesn't get wma request.
3) Now kworker thread gets scheduled and fill wma req and gets
   timed out.

Change-Id: I4d32e4459c32843c8fdb9a48262b5a55eecf2cbd
CRs-Fixed: 2902212
2021-03-18 09:51:13 -07:00
Gururaj Pandurangi
9996bc7175 qcacld-3.0: Remove feature flag WLAN_FEATURE_11W for pmf
Remove all of the conditional compilation for pmf since this
feature is mandatory for future scope from protocol point
of view.

Change-Id: Id3a2127e9ecb343ad2a0354dcbc331c22167d7fb
CRs-Fixed: 2852630
2021-03-18 00:39:42 -07:00
Abdul Muqtadeer Ahmed
70ee3f70fd qcacld-3.0: Add new WMI wakeup reason
Add the new WMI wakeup reason “WOW_REASON_FATAL_EVENT_WAKE".

Change-Id: I93b530f78f568fa88cb310c5d78cd950451fc441
CRs-Fixed: 2868523
2021-03-17 18:33:16 -07:00
Pragaspathi Thilagaraj
58581e5b19 qcacld-3.0: Fix sending vdev start again during LFR-2.0 roaming
Currently peer create response support is added for connect path
but in LFR-2.0 case also peer create response received is
processed and lim_post_join_set_link_state_callback() is called
leading to sending vdev start again.
Call the API to fill peer create wma request only for initial
connection.

Change-Id: I24140efd5541f7ed4aa3cef9efebf5a729846902
CRs-Fixed: 2856636
2021-03-15 02:49:09 -07:00
Pragaspathi Thilagaraj
d6b2eea730 qcacld-3.0: Enhance the broadcast twt capabilities population logic
Currently multiple ini is available for setting the broadcast
TWT requestor and responder configuration.
Deprecate "bcast_twt" legacy ini and also don't consider
legacy service capability WMI_SERVICE_BROADCAST_TWT.
So below is the service capability values combination
advertised by firmware:
new fw:
bcast_req bcast_resp legacy
    0        0         0       -> disable bcast
    0        1         0
    1        0         0
    1        1         1

old fw:
   0         0         1   -> enable TWT

Also change the default value of "twt_bcast_req_resp_config" ini
to 1.

Change-Id: Ic9af296b0efffc8f76f647b5830183867e0adf57
CRs-Fixed: 2873360
2021-03-15 02:49:03 -07:00
abhinav kumar
900f714097 qcacld-3.0: BTM resp print is coming with all zeros
Host need to print BTM resp TLV info (wmi_roam_btm_response_info)
only when trigger reason is BTM or WTC_BTM. As for other roam
triggers this TLV contains zeros, so host should not print.

Change-Id: Ic76a1b88b9e641745420c372b275392e86d4ba35
CRs-Fixed: 2884639
2021-03-10 05:22:58 -08:00
Lincoln Tran
88bbf740c9 qcacld-3.0: Send TxBF in NAN case
Currently, the code is not sending the Tx beamforming capability to FW
in the case of NAN. Add this call to support beamforming in NAN mode.

Change-Id: I32af660724cfaecfe59da153fea9f98d24b0d4cb
CRs-fixed: 2889614
2021-03-08 11:36:34 -08:00
Amruta Kulkarni
33a5b0a35d qcacld-3.0: Support roam start and roam abort request in CM
Add change to support roam start and roam abort request
in connection manager.

Change-Id: Ibc1f2887902e2020c93b2827f8ffa247001cfa5f
CRs-Fixed: 2882221
2021-03-05 10:09:51 -08:00
gaurank kathpalia
fac5527d3f qcacld-3.0: Remove join_resp from roam sync structure
Remove join_resp from roam sync structure.

Change-Id: Ifabd9383954394f00afce635c90dc54cc6cb5aa3
CRs-Fixed: 2891728
2021-03-04 11:04:58 -08:00
gaurank kathpalia
6ebabc2961 qcacld-3.0: Handle roaming support for connection manager
enable roaming support in hdd for connection manager.

Change-Id: I9437dc0590b0d6f56a65c8aba1a3ceeb29e701b6
CRs-fixed: 2882325
2021-03-04 06:36:57 -08:00
Srinivas Girigowda
225f5c3a9a qcacld-3.0: Fix memory leak in TWT add dialog event handler error cases
Fix memory leak issues in TWT add dialog event handler error cases
before returning from the function.

CRs-Fixed: 2890261
Change-Id: Ia367084a3919be9275e1b5e327f79a1d43df3803
2021-03-04 01:43:48 -08:00
gaurank kathpalia
a7a5ac82fc qcacld-3.0: Fill peer's unicast cipher from vdev during roaming
During roaming update the peer unicast cipher from vdev crypto params.

Change-Id: Ie5f8cb951c405b50c607d416f4c6e37446048257
CRs-Fixed: 2889865
2021-03-03 02:57:06 -08:00
Bapiraju Alla
9a02b15002 qcacld-3.0: Reduce console logging from tasklet
Currently, WoW wakeup host event is handled in tasklet context and
it is taking more than 800ms to execute. This is due to excessive
logging to the console from the tasklet. As a result of this, IRQs
are getting blocked during this tasklet execution.

To avoid this, add a sysfs entry to enable/disable console logging
from host wakeup event based on requirement.

Change-Id: If91a8bd5f783f358dabf9dcf46bf4c50d05d7909
CRs-Fixed: 2881972
2021-03-02 05:36:29 -08:00
gaurank kathpalia
88fddb8238 qcacld-3.0: Handle host roam start req
Handle host roam start req from firmware.

Change-Id: I53455c011e3737c9b4a52d54797e3224b98a628e
CRs-Fixed: 2888383
2021-03-01 09:09:20 -08:00
Pragaspathi Thilagaraj
8e170220f7 qcacld-3.0: Update peer TWT capabilities after roaming
While processing the roam synch indication reassoc response frame,
the new roamed peer object is not created. So call to
mlme_set_twt_peer_capabilities() to update the new peer capabilities
will fail with null peer object for new bssid. So after roaming,
update the peer TWT capabilities once the new peer object is
created.

Update peer TWT capabilities to new peer object after roaming to
avoid invalid peer capabilities.

Change-Id: Ic37bd4d96bf122b2ec3a60c1ae41650a672b9020
CRs-Fixed: 2870589
2021-02-26 09:39:47 -08:00