Commit Graph

2184 Commits

Author SHA1 Message Date
Surabhi Vishnoi
1ce2688f28 qcacld-3.0: Add handler for WMI_VDEV_BCN_LATENCY_EVENTID
WMI_VDEV_BCN_LATENCY_EVENTID is sent by firmware when it receives
the latency IE from connected AP in beacon.

Add handler for this event and when latency_level received is ultra
low in latency IE, update request pm qos type PM_QOS_CPU_DMA_LATENCY
to level DISABLE_KRAIT_IDLE_PS_VAL to speed up CPU efficiency and
irq response. This is needed for Voice and Music products where extreme
low latency is needed while playing music and high power consumption is
accepted.

Change-Id: I3c63ef247f4f4a1add68111ef1bcee6daafd148a
CRs-Fixed: 2723205
2020-07-09 15:54:14 -07:00
Li Feng
0e6dc924e5 qcacld-3.0: Add ini entry for wow pulse configuration
qcacld-2.0 to qcacld-3.0 propagation

Add ini entry to configure wow pulse repetition count
and wow pulse init level.

Change-Id: Ic23d2ae80f6f0adef9f35bfef5a59eb0220c70ae
CRs-Fixed: 2722997
2020-07-08 06:51:42 -07:00
Yeshwanth Sriram Guntuka
c719f2d546 qcacld-3.0: Parse data stall info for appropriate trigger reason
Data stall info received as part of wmi debug msg flush
event is parsed for all reasons. Since fw populates this
info only when the reason is data_stall_trigger, in all
other cases this info would be garbage values and is sent
to userspace.

Fix is to parse data stall info only for the appropriate
trigger reason.

Change-Id: I70004e5825e67df375e9bc14c2db2a398d860c97
CRs-Fixed: 2724248
2020-07-08 04:52:25 -07:00
Pragaspathi Thilagaraj
750e889d9e qcacld-3.0: Send vdev pcl command when STA + STA roaming is active
Send Vdev pcl command on both connected STA vdev when sta+sta
roaming is enabled. Handle below cases:
1. When 1st STA is connected send PDEV pcl command for the
first sta. Set pcl_vdev_cmd_active false.
2. When 2nd STA comes up, Set pcl_vdev_cmd_active to true,
send vdev PCL for 1st sta before enabling roaming(disabled
as part of the connect on 2nd STA).
3. For second STA force dbs connection when
enable_dual_sta_roam_offload ini is enabled. Set the channels
of the 1st connected STA band as invalid and remove these
channels from the scan filter.
4. On disconnection of 2nd STA connection, clear the vdev
PCL sent for 1st STA and then send PDEV pcl command.

Also make changes to send set PCL command after roam init
is done before RSO start is done at firmware to avoid assert.
Post set pcl command from sme/csr through lim/wma/wmi to avoid
the above condition.
Disable roaming on the vdev before sending set PCL command to
avoid roaming on undesirable band & channels.

Change-Id: I6bd869015b7248fe5c5c90b6e2fa0174995be197
CRs-Fixed: 2725360
2020-07-07 16:23:06 -07:00
Pankaj Singh
aa9ab765bf qcacld-3.0: Failure to create pdev before get FW ready event received
During TDLS if SSR occurs then wlan driver is not deleting the tdls host
peer.This lead to tdls peer leak, vdev and pdev ref leak. As pdev is not
deleted after SSR new pdev create fails.

Fix is to remove tdls peer information from host driver during ssr

Change-ID: I9f4c2026821a166fbf38f658c75d93e7409141cc
CRs-Fixed: 2726083
2020-07-07 14:16:37 -07:00
Pragaspathi Thilagaraj
6b525a4f72 qcacld-3.0: Add support to compile connection manager STA+STA roam API
Enable compilation of the connection manager roam files with
Kbuild changes.
Add new API to store and retrieve the firmware scan channels at
mlme. Also add initial support to post SET_PCL command through
lim, so that it is not sent before ROAM init command.

Add changes to restrict connection of the 2nd STA to
channels on the other band of the 1st STA connected band.
This is done by filling only the allowed band channels in
the scan filters for the 2nd STA connection. If only
1 STA is active, it is allowed to connect on any band.

Add header gaurds for missed header files:
wlan_cm_tgt_if_tx_api.h
target_if_cm_roam_offload.h

Change-Id: Id2bce12b9663ed635ea46164169b088461aab870
CRs-Fixed: 2720341
2020-07-07 07:24:47 -07:00
Jingxiang Ge
99728132d7 qcacld-3.0: Fix set max power fail issue
it will always return here if find vdev in wma_find_vdev_id_by_addr,
as default value of ret is failure.

Separate lookup vdev for sap/sta mode and check return value.

Change-Id: Ic94c6b25d2a02f9e66ed469bec4cf297d696e2a8
CRs-Fixed: 2721825
2020-07-07 02:53:24 -07:00
Sandeep Puligilla
c6d0cb6ece qcacld-3.0: Incorrect phymode sent as part of peer_assoc
Incorrect phy mode sent to firmware as part of the
TDLS connection peer assoc command.

VHT phymode representation for 2G and 5G is different
and host is sending 5G VHT phymode as part of the 2G
TDLS connection peer_assoc command to firmware.

Modified phymode generation logic at WMA for TDLS
connection to populate 'WLAN_PHYMODE_11AC_VHT20_2G'
phymode.

Change-Id: I7867df7f013bc05a182e33495181a099332d1fd5
CRs-Fixed: 2719278
2020-07-06 19:30:30 -07:00
Abhishek Singh
97a9343767 qcacld-3.0: Avoid deleting peer on other vdev in case of duplicate MAC
In STA+SAP case if AP1 and STA1 have same MAC, and DUT's STA is
connected to AP1. Now when the STA1 tries to connect with DUT's SAP
peer with same mac is already present the add peer fails, but during
delete peer the DUT STA peer (AP1) is deleted instead of STA1 of
DUT's SAP. This leads to SAP deleting peer of a STA interface and
thus the SAP peer count is out of sync.

Fix is to reject any association req from STA1 if AP1 is connected
to DUT's STA. Also ad vdev check while deleting the peer in wma.

Change-Id: I448226497c7aa3c11cb9097be9c7d57eb4239900
CRs-Fixed: 2723814
2020-07-02 18:23:19 -07:00
Srinivas Girigowda
1fa6dbbc37 qcacld-3.0: Replace obsolete WMA_LOGI() with wma_info()
Replace obsolete WMA_LOGI() macro with wma_info().

Change-Id: I537751027559f09792b61131b13566c058d03a91
CRs-Fixed: 2722291
2020-07-01 07:50:45 -07:00
sheenam monga
f63c83abc1 qcacld-3.0: Consider phy mode sent by fw to get dot11 mode
Currently, after roaming only vht ie is used to get dot11 mode
which may casue issue whenever vendor vht ie is present but vht
ie is not present in beacon. Host updates dot11 mode to
11N based on missing vht ie and does not consider vendor vht but
fw considers vendor vht ie which causes different dot11 modes in
fw and host.

Consider phy mode sent by fw in roam sync event to get dot11
mode to maintain compatibility between host and fw.

Change-Id: Ie9e4cbadd84d239c6f386f296c77677b15ce0500
CRs-Fixed: 2714566
2020-07-01 00:26:07 -07:00
Abhishek Singh
fb4325a69d qcacld-3.0: Replace different struct of ssid with struct wlan_ssid
There are different version of SSID structure used in driver, replace
them with struct wlan_ssid.

Change-Id: I8a5bfdafbdc4365afccc11980633272be9c75a81
CRs-Fixed: 2721873
2020-07-01 00:25:57 -07:00
gaurank kathpalia
6ebfc3c01b qcacld-3.0: Add AP to BLM reject list
Currently the driver calls the BLM API
to add the BSSID to the reject list if
STA kickout event comes from the FW.
Now since the event comes in interrupt
context and BLM takes a mutex lock, it
is not allowed.

Fix is to change the context
and call the BLM API from lim del sta
which would execute in scheduler
thread.

Change-Id: I3c2726ea152eeeee6ae30d80388aedac631f6c39
CRs-Fixed: 2716192
2020-06-27 06:18:10 -07:00
Pragaspathi Thilagaraj
3bbb4610b6 qcacld-3.0: Introduce new ini for dual sta roaming
Add new ini enable_dual_sta_roam_offload to enable/disable dual
sta romaing feature. Enabling this ini will allow firmware to
roam on both the vdev if firmware supports dual sta roaming and
the hw is dbs capable.

This ini will be checked in the dual sta roaming offload state
machine to enable roaming on both the STA or to fallback to the
current implementation where first connected sta will have rso
enabled.

Change-Id: I04f141ac31e0f168b6f19fe878bca219a36cfae7
CRs-Fixed: 2709036
2020-06-27 06:18:03 -07:00
Srinivas Girigowda
5e5cf5996f qcacld-3.0: Replace obsolete WMA_LOGA() with wma_alert()
Replace obsolete WMA_LOGA() macro with wma_alert().
In some error cases, usage of wma_alert() is incorrect and
hence use wma_err().

Change-Id: Ife02033c4f981c31f5e6b165d5e8961e2ce1f9d8
CRs-Fixed: 2716176
2020-06-27 03:57:33 -07:00
Srikanth Marepalli
89a9eb0370 qcacld-3.0: Fix Invalid EAPOL-Key MIC packet drop issue
After the roaming is offloaded to Firmware when the GTK rekey
happens in Host proper KCK should be used to verify MIC.
In WPA2 GTK rekey is offloaded to Firmware but not in WPA3 case.
In WPA3 SuiteB Firmware sends KCK in Key material extended TLV
instead of Key material TLV in Roam sync indication event, as the
Keys length is more in WPA3 SuiteB. And the Key material ext TLV
is parsed improperly in driver and the same is sent in roam+auth
event to wpa_supplicant. This wrong KCK was used to verify MIC
received in EAPOL.
This fix is to properly parse the KCK and KEK from Key buffer.

Change-Id: I57658b918bb41de2b5d2476d89b026d1f5982337
CRs-Fixed: 2713711
2020-06-26 22:48:26 -07:00
gaurank kathpalia
67b87cbde5 qcacld-3.0: Move BSS scoring logic to connection manager
Move bss scoring logic to connection manager.

Change-Id: Ie7639853dec303133705c3394bf0577670000c21
CRs-Fixed: 2707108
2020-06-26 11:08:47 -07:00
Rachit Kankane
24542c328e qcacld-3.0: Set default hw mode for ready ext
Update default HW mode after selecting default hw mode
while handling service ready ext event

Change-Id: I022644554df0824d760304fe99a86295b20660b1
CRs-Fixed: 2711482
2020-06-26 05:37:28 -07:00
Srinivas Girigowda
68c954548f qcacld-3.0: Replace obsolete WMA_LOGW() with wma_warn()
Replace obsolete WMA_LOGW() macro with wma_warn().

Change-Id: I4257ccf22bfa45465ffbd44a7ef5b5712ebb754f
CRs-Fixed: 2718987
2020-06-25 21:26:58 -07:00
Srinivas Girigowda
9e0b3dbb70 qcacld-3.0: Replace obsolete WMA_LOGP() with wma_alert()
Replace obsolete WMA_LOGP() macro with wma_alert().

Change-Id: I7e9d8048789c8deee6c3bfab72d7f9b591fca9b9
CRs-Fixed: 2716176
2020-06-23 15:44:09 -07:00
Yu Wang
7bb505608d qcacld-3.0: fix a potential assignment truncation issue
Truncation will happen when assining an association id over 256
to the u8 'aid' of struct wma_txrx_node.
To avoid such issue, change the type of 'aid' in struct wma_txrx_node,
from u8 to u16.

CRs-Fixed: 2713427
Change-Id: If360c017700aadaf9f2d3216601a011704f68180
2020-06-23 00:27:54 -07:00
Ashish Kumar Dhanotiya
a747d4cdb8 qcacld-3.0: Handle multiple oem data events for single command
FW can send multiple events for a single oem data command
based on the size of the data to be send and the available
buffer size.
Currenlty sme callback in the oem data event handler
wma_oem_event_handler is set to null after it process the
event because of which next events for the same command
are not processed.

To address this issue do not make the sme callback as null
in the wma oem event handler.

CRs-Fixed: 2714680
Change-Id: Ia435a5bee7ed4d2e16313698052033f8b45a5873
2020-06-22 01:37:05 -07:00
Srinivas Girigowda
7678422000 qcacld-3.0: Replace obsolete WMA_LOGD() with wma_debug()
Replace obsolete WMA_LOGD() macro with wma_debug().

Change-Id: I41534dd1cc0321d0e5a77a8ba1f4fbe07ad7e6f3
CRs-Fixed: 2712788
2020-06-19 19:45:04 -07:00
Srinivas Girigowda
ba519cafa2 qcacld-3.0: Replace WMA_LOGD() with wma_debug() in wma_utils.c
Replace obsolete WMA_LOGD() macro with wma_debug() in wma_utils.c

Change-Id: I917b234c6fef83e93d4ef7f8a27b9b604c3045ad
CRs-Fixed: 2712788
2020-06-19 19:45:01 -07:00
Srinivas Girigowda
3fab023fe0 qcacld-3.0: Replace WMA_LOGD() with wma_debug() in wma_power.c
Replace obsolete WMA_LOGD() macro with wma_debug() in wma_power.c

Change-Id: I49c449af9cfba429a9709834b5b83db8a84a93fa
CRs-Fixed: 2712788
2020-06-19 19:44:57 -07:00
Srinivas Girigowda
2e20c75e42 qcacld-3.0: Replace WMA_LOGD() with wma_debug() in wma_main.c
Replace obsolete WMA_LOGD() macro with wma_debug() in wma_main.c

Change-Id: Ia144748a2b6fc9e82cf9896f81586cd9d7147e09
CRs-Fixed: 2712788
2020-06-19 19:44:53 -07:00
Srinivas Girigowda
13d07aa54b qcacld-3.0: Replace WMA_LOGD() with wma_debug() in wma_he.c
Replace obsolete WMA_LOGD() macro with wma_debug() in wma_he.c

Change-Id: Ia448ade9d191ee5fc3db9a9c9a2cedd8f4f39757
CRs-Fixed: 2712788
2020-06-19 19:44:50 -07:00
Srinivas Girigowda
3827655105 qcacld-3.0: Replace WMA_LOGD() with wma_debug() in wma_features.c
Replace obsolete WMA_LOGD() macro with wma_debug() in wma_features.c

Change-Id: I4482617c1bd564357d90df60cc858b3c2d270ef4
CRs-Fixed: 2712788
2020-06-19 19:44:46 -07:00
Srinivas Girigowda
17baebfba4 qcacld-3.0: Replace WMA_LOGD() with wma_debug() in wma_dev_if.c
Replace obsolete WMA_LOGD() macro with wma_debug() in wma_dev_if.c

Change-Id: I3c7ac380e85e697d53f2196bb8a5d4da612fdae7
CRs-Fixed: 2712788
2020-06-19 19:44:43 -07:00
Srinivas Girigowda
45bb1adecf qcacld-3.0: Replace WMA_LOGD() with wma_debug() in wma_data.c
Replace obsolete WMA_LOGD() macro with wma_debug() in wma_data.c

Change-Id: Ia54e16b313dddae76d313b6abe0d579f9912bd11
CRs-Fixed: 2712788
2020-06-19 19:44:39 -07:00
Srinivas Girigowda
490a4e8704 qcacld-3.0: Replace WMA_LOGD() with wma_debug() in wma_scan_roam.c
Replace obsolete WMA_LOGD() macro with wma_debug() in wma_scan_roam.c

Change-Id: I243ebfa3941738ebc251858123e90687b9a77c86
CRs-Fixed: 2712788
2020-06-19 19:44:34 -07:00
hqu
e2e9ea6d37 qcacld-3.0: Add support for 64-clients
Add support for 64-clients.

Change-Id: Ic97ebb83190b5061734832f6dc6dcdb6d0bdac2b
CRs-Fixed: 2625495
2020-06-15 21:52:20 -07:00
Abhishek Ambure
9e3400ac77 qcacld-3.0: Add support to configure max ndi host supports
Introduce INI "ndi_max_support" to configure max number of ndi
interfaces host supports. Host configures max number of ndi
interfaces support in firmware using WMI_INIT_CMD.

Change-Id: I287b9f96b98103e67cf35d0c02488a28af731044
CRs-Fixed: 2701557
2020-06-10 07:25:54 -07:00
Utkarsh Bhatnagar
3b117bb647 qcacld-3.0: Add pointer sanity check for mac context
Add pointer sanity check for mac context in wma_send_peer_assoc_req
as cds_get_context may return Null for mac context

Change-Id: I75a54d728f2c276a9aeeb1ee7d8ea46180540ac8
CRs-Fixed: 2706149
2020-06-10 01:56:06 -07:00
Kiran Kumar Lokere
2c3a4ea4e9 qcacld-3.0: Fix the 6G band capability config to FW
Convert the 6GHz capability local struct value to raw 32-bit
value to before configure it to FW.

Change-Id: Ia9f7d7d35b0f481ad9ae7d15eec5ee198158da88
CRs-Fixed: 2696392
2020-06-09 23:59:29 -07:00
Utkarsh Bhatnagar
4d345a3488 qcacld-3.0: Add pointer sanity check in wma_post_chan_switch_setup
Add pointer sanity check in wma_post_chan_switch_setup

Change-Id: I2972d033605895b0fe626593854798b112621eab
CRs-Fixed: 2706172
2020-06-09 19:16:01 -07:00
Utkarsh Bhatnagar
e78f2a6224 qcacld-3.0: Add pointer sanity check in wma_pre_chan_switch_setup
Add pointer sanity check in wma_pre_chan_switch_setup

Change-Id: If7753f0e99993c3744b5c0d801284b4648a0fde8
CRs-Fixed: 2705037
2020-06-09 16:29:48 -07:00
Utkarsh Bhatnagar
7306d6ec05 qcacld-3.0: Add pointer sanity check for mac_phy_cap
Add pointer sanity check for mac_phy_cap in wma_update_hw_mode_list
as target_psoc_get_mac_phy_cap may return Null for mac_phy_cap

Change-Id: Id45b77fa4daf3df0680ee247355dbc87e0402dd9
CRs-Fixed: 2706156
2020-06-09 16:29:45 -07:00
Vulupala Shashank Reddy
0570165f4e qcacld-3.0: Update pktcapture support
Update pktcapture support for packet capture mode.

Change-Id: Id7281d57b7eb547027a999e9662e6ca3c612673d
CRs-Fixed: 2700679
2020-06-09 14:30:33 -07:00
Pragaspathi Thilagaraj
7f725e3312 qcacld-3.0: Print next RSSI threshold for periodic scan roam trigger
The driver prints the current RSSI threshold and next RSSI
threshold for LOW RSSI roam trigger. Print these info for
Periodic scan roam trigger also.

Change-Id: I4140cae3631356949c925b8d21c032e6c02d4539
CRs-Fixed: 2694906
2020-06-08 18:36:40 -07:00
Abhishek Ambure
a6afc073d0 qcacld-3.0: Add ini support to configure max ndp sessions in fw
Introduce INI "ndp_max_sessions" to configure max number of ndp
sessions host supports. Firmware advertises max number of ndp
sessions supported in wmi_service_ready_ext2 event. If the firmware
advertises non-zero value of max ndp sessions then host configures
max ndp sessions support in firmware using WMI_INIT_CMD.

Host uses a minimum of "ndp_max_sessions" value and firmware
advertised max ndp session value to configure max number of ndp
sessions in firmware.

Change-Id: I613815f384f9b0a61711324c85ecfa095d133360
CRs-Fixed: 2673120
2020-06-08 16:00:50 -07:00
sheenam monga
0ec49a71f7 qcacld-3.0: Handle attribute OEM_DATA_RESPONSE_EXPECTED
Add support for OEM_DATA_RESPONSE_EXPECTED. Driver waits for the
response from FW when this attribute is set and forward the blob of
data to supplicant.

Change-Id: I3e51809e4f5736b521c26e37afb02396f9c5ed23
CRs-Fixed: 2694556
2020-06-04 05:30:58 -07:00
Min Liu
faed961a98 qcacld-3.0: Set Wi-Fi configurations - TX AMSDU, RX AMSDU
Add attributes in SET(GET)_WIFI_CONFIGURATION to dynamically
configure capabilities - TX AMSDU, RX AMSDU.

Change-Id: I17d3c5d32987e638805cdaf5fe48ba3036b3ff22
CRs-Fixed: 2687303
2020-06-03 09:27:36 -07:00
ngong
9d23242e68 qcacld-3.0: Check gIPAConfig before setting ipa flag to fw
Currently if kernel enable CONFIG_IPA3, wlan driver will directly
send IPA enabling flag to firmware, not checking gIPAConfig.
It lead to IPA disabled in driver but enabled in fw, causing fw crash
for some target like Genoa. 

Correct logic is to check gIPAConfig before configure firmware.

Change-Id: I6e85c6bf3831029826bf279237eac2cc3a1ff07f
CRs-Fixed: 2698953
2020-06-02 15:19:13 -07:00
Bapiraju Alla
7740bf96b9 qcacld-3.0: Log Tx power setting in the driver
Log tx power value in the driver before sending to firmware

Change-Id: I602612433407e89bfa5288fa89a181a0db329f71
CRs-Fixed: 2699480
2020-06-01 23:13:27 -07:00
Bapiraju Alla
498953e600 qcacld-3.0: Update rx retry count in peer stats
Currently, Rx retry count statistic is not supported by firmware.
So host driver also not updating the corresponding statistic in
peer stats. Datapth is updating this counter using retry bit in the
rx MPDU. Update peer Rx retry count value from data path.

Change-Id: I4fd422faa7a766090991c461cd6fd2cc70d2fcc3
CRs-Fixed: 2691704
2020-06-01 23:13:20 -07:00
Lincoln Tran
cf98b324aa qcacld-3.0: Update wma_discard_fw_event
Update return type of wma_discard_fw_event to return QDF_STATUS
to match scheduler_msg_process_fn_t.

Change-Id: I1746b170318be30810ddf7cc6be8156a3940b595
CRs-fixed: 2698308
2020-05-31 04:04:18 -07:00
Min Liu
6bceefd884 qcacld-3.0: Fix compilation issue in perf build
Fix insmod failure in perf build which is caused by undefined
symbol when MPC_UT_FRAMEWORK is not defined.

Change-Id: I1a1ae76af596a3d219a7367d45a2fb38a08107a4
CRs-Fixed: 2696540
2020-05-28 21:07:35 -07:00
Utkarsh Bhatnagar
09431aa329 qcacld-3.0: Fix usage of wlan_reg_legacy_chan_to_freq
In wma_vdev_pre_start() freq is already available with des_chan->ch_freq
so no need to get the freq again from using wlan_reg_legacy_chan_to_freq.
In hdd_cfg80211_update_channel_info() use wlan_reg_chan_band_to_freq
to get the freq from channel.

Change-Id: I179907c9f5a80f355b44aa9c9509d8d12d8825f8
CRs-Fixed: 2696687
2020-05-28 21:07:28 -07:00
Utkarsh Bhatnagar
f31d749e83 qcacld-3.0: replace mhz of struct wma_txrx_node with chan_freq
chan_freq and mhz variable represent the same thing so use chan_freq
instead of mhz.

Change-Id: I4162504562c30ece71f5ebc465b1af3a048b01b2
CRs-Fixed: 2696795
2020-05-28 17:28:37 -07:00