Commit Graph

1827 Commits

Author SHA1 Message Date
Jianmin Zhu
f07aa51b88 qcacld-3.0: Rename and replace typedef tpAddBssParams
The Linux Coding Style frowns upon mixed-case names so rename
identifier tpAddBssParams to be compliant.

The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tAddBssParams typedef does
not meet any of those criteria, so replace it (and the "tp" variant)
with a properly named struct.

Change-Id: Icf7fe19cfe6eb6fbac5689e3b5474d38c520b311
CRs-Fixed: 2506539
2019-08-12 04:23:30 -07:00
Pragaspathi Thilagaraj
7a7163bac7 qcacld-3.0: Add support for wpa3 roaming authentication offload
Firmware offloads WPA3 SAE authentication to host due to the
crypto library availability limitation. Once the roam candidate
selection is done in the firmware, firmware sends the
WMI_ROAM_PREAUTH_START_EVENTID. Once this event is received, the
host driver triggers the SAE.

Add support to offload the SAE authentication from firmware to
wpa_supplicant.

Change-Id: Ie3a9e731194e1edfcd9f33ef0d601767b9485d46
CRs-Fixed: 2490201
2019-08-12 02:45:06 -07:00
Jianmin Zhu
821e6d4401 qcacld-3.0: Refactor STA join process
Create bss peer in lim_process_mlm_post_join_suspend_link
when sta connect, don't need pose message to wma queue.

Change-Id: I23325c9d41b68f67ea9903008521f026e46395c4
CRs-Fixed: 2505558
2019-08-12 01:27:36 -07:00
Sourav Mohapatra
dcd8f8d1f8 qcacld-3.0: Remove usage of sta_id in TSM stats path
Currently driver passes sta_id through out the call for getting the TSM
stats. Although passed, the sta_id is not used anywhere in the call
stack. As part of removing the sta_id usage, this sta_id can also be
removed safely.

Remove the usage of sta_id in get TSM stats path.

Change-Id: I1efbb1bfdc8df84e9b6a71dcd5bd39ea93ced21a
CRs-Fixed: 2484701
2019-08-09 22:25:58 -07:00
Sourav Mohapatra
05a52ed111 qcacld-3.0: Remove usage of sta_id in get SNR path
Currently driver passes sta_id through out the call for getting the SNR
stats. Although passed, the sta_id is not used anywhere in the call
stack. As part of removing the sta_id usage, this sta_id can also be
removed safely.

Remove the usage of sta_id in get SNR stats path.

Change-Id: I39482d8f6d8e3bd32e940a85d5592dada8f0460b
CRs-Fixed: 2503956
2019-08-09 02:50:11 -07:00
Subrat Dash
ab9a7593af qcacld-3.0: Fix compilation issue with FW_THERMAL_THROTTLE_SUPPORT enabled
Fix the compilation issues passing proper parameter to the function
wmi_unified_thermal_mitigation_param_cmd_send.

CRs-Fixed: 2501080
Change-Id: I9ce0038ef2844536612f0bf71314dbc214f354d9
2019-08-06 05:26:20 -07:00
Abhishek Ambure
cbef14404b qcacld-3.0: Refactor vdev delete code
Refactor vdev delete code for target_if conversion. Remove legacy
vdev delete code.

Change-Id: Ia95faa3a8eb561e19d439046a25bd7e452b98fb2
CRs-Fixed: 2471947
2019-08-05 16:45:48 -07:00
tinlin
7db7a5d167 qcacld-3.0: Set peer phymode not higher than sap's
Associating peer's phymode is not allowed to be highter
then sap's. If it is, set the peer phymode equal to sap
phymode.

Change-Id: Ia8152ce27fb8ddf2bbff5139d3b8d89c811d7ed0
CRs-Fixed: 2500383
2019-08-05 10:55:36 -07:00
Abhishek Ambure
7470976006 qcacld-3.0: Refactor vdev create code
Refactor vdev create code to target_if common code. Remove legacy
code for vdev create.

Change-Id: I57caf0c5fa2da7b6ba640a9d2edb72363959c585
CRs-Fixed: 2460786
2019-08-05 10:55:23 -07:00
Abhishek Singh
8586573201 qcacld-3.0: Handle bss peer add failure in vdev state machine
In case bss peer add failure vdev state machine is in
substate  WLAN_VDEV_SS_START_START_PROGRESS and thus
WLAN_VDEV_SM_EV_CONNECTION_FAIL will not be handled and thus vdev
SM will not move to init state and pe session is not deleted.

This lead to vdev ref leak for the ref taken by pe create session.

Fix this by sending WLAN_VDEV_SM_EV_START_REQ_FAIL event when
vdev SM is in WLAN_VDEV_SS_START_START_PROGRESS state and continue
cleanup.

Change-Id: I4c559333a6bd018e3382f9781883acf314434cf2
CRs-Fixed: 2502817
2019-08-05 09:31:37 -07:00
guangde
963710d6e8 qcacld-3.0: enable legacy coex feature
Because newest firmware codes already been changed, the previous
coex configure command are invalid. Firmware need host driver
to enable WMI_SERVICE_THREE_WAY_COEX_CONFIG_LEGACY service during
wlan init. Add a new parameter "gThreeWayCoexConfigLegacyEnable" to
initial config file. If this parameter value is zero,set coex
priorities command will return error.

Change-Id: Ief1617e2ba5363e276c55135198613a0e54b71d5
CRs-Fixed: 2482734
2019-08-04 06:23:09 -07:00
Bala Venkatesh
961c9b8cba qcacld-3.0: Remove bss peer in case of vdev stop response failure
In case of failure in vdev stop response from FW, Along with
triggering SSR call the del_bss_response so that FW can clear
the bss peer.

Change-Id: Ibbf43f15796a9a13f922091d49fa6a22838aeaaf
CRs-Fixed: 2498497
2019-08-02 03:13:41 -07:00
Abhinav Kumar
8ed7afffc2 qcacld-3.0: Send BTM config and 11k offload for all roam reason
Issue is : In case of STA + STA, Host sends BTM config enable on
both STA. This results assert in FW as at a time FW supports BTM
only on one vdev.

Following are the fix:
1. Send 11k offload and BTM config enable to fw irrespective of
roam reason. Enable of both while RSO start and disable of both
while RSO stop should be symmetric.

2. Currently, Host sends RSO_UPDATE_CONFIG for blacklisting case
if the vdev is in connected state irrespective of RSO start is
sent or not. Added check to make sure RSO_UPDATE_CONFIG should
not go if driver_disabled_roaming flag set.

Change-Id: Ib92089906a2e1690ec6181ac184bc008ccfbc928
CRs-Fixed: 2497813
2019-07-31 12:18:08 -07:00
hqu
28f68df635 qcacld-3.0: Remove void pointer usage for part of DP code
Add code to use cdp_vdev instead of void pointer for
txrx_vdev and ol_tx_data.

Change-Id: I3d3b7cc8012981a7c883c8113d88fa387711d41e
CRs-Fixed: 2483388
2019-07-27 13:42:14 -07:00
Wu Gao
492f1ad990 qcacld-3.0: Attach direct buffer rx component
Attach direct buffer rx component when get FW ready event.

Change-Id: Ia0cc03bf201d6b6d7864bf044c631174b254d557
CRs-Fixed: 2495238
2019-07-26 15:46:28 -07:00
Rakshith Suresh Patkar
dff3368236 qcacld-3.0: Cleanup dead code for rx mic error handling
rx mic error information is now posted to new HDD mic
error callback(hdd_rx_mic_error_ind) via .rx_mic_error
member in dp_ol_if_ops.

Cleanup the dead code left behind.

Change-Id: I32fd135506382c085755e25cab5af86824cea511
CRs-Fixed: 2488464
2019-07-22 11:36:08 -07:00
Abhinav Kumar
ce2b928f72 qcacld-3.0: Send btm offload disable to FW during RSO Stop
Currently btm offload command is sent to FW as part of RSO Start
for all type of roam req reason and btm offload disable command is
sent to the FW as part of RSO STOP. In case of STA+STA concurrency
case, while btm offload is enabled for the 2nd
STA after UPDATE_CFG sent for STA1, the FW asserts because it has btm
offload enabled for STA 1 while UPDATE_CFG and has not deconfigured
it yet. Send btm offload enable command as part of RSO Start in case
of roam_req->reason == REASON_CTX_INIT only to the FW so that it
configures btm for the currently enabled STA only in case of INIT
and re-configures for the second STA without assertion.

Change-Id: Ib146072c7cd0543ea82122702d6585d1d2a2e2d1
CRs-Fixed: 2493122
2019-07-22 06:32:58 -07:00
Alok Kumar
1ff46df75e qcacld-3.0: Send proper TX MGMT frames status to packetdump
Currently, QDF_STATUS_SUCCESS is always sent for MGMT
Tx frames to packetdump.

Send the proper Tx status for MGMT Tx frames which is
mapped to packetdump tx status.

Change-Id: I7a780777910a5b9220ebb77cda1e0c4acd9f45b2
CRs-Fixed: 2490243
2019-07-20 02:32:32 -07:00
Tushnim Bhattacharyya
41668c648e qcacld-3.0: Replace channel with frequency in sSirUpdateChanParam
Replace channel ID with frequency in struct sSirUpdateChanParam.

Change-Id: I5b4b355b154ed94980aa54a2beacc436cf2e0c17
CRs-Fixed: 2491919
2019-07-19 07:31:14 -07:00
Abhishek Singh
a227e75e12 qcacld-3.0: Avoid policy_mgr_hw_mode_transition_cb in atomic context
wma_roam_event_callback can get called in atomic context from
wma_wake_event_piggybacked for reason WMI_ROAM_REASON_HO_FAILED
which lead to acquiring of pm_ctx->qdf_conc_list_lock mutex lock
in atomic context.

To fix this post msg to scheduler thread to call the policy mgr
API in scheduler thread context

Change-Id: I6b75de64a33559b73a7edc73e1100cfb3a1f507d
CRs-Fixed: 2491147
2019-07-17 20:18:47 -07:00
Liangwei Dong
03e080c45a qcacld-3.0: Change beacon tx WMI API under feature flag
Add feature flag WLAN_WMI_BCN to compile Beacon tx APIs
selectively.

Change-Id: Ie2b4ad0ae7a7c6de7286ed0b215084060a4f34c6
CRs-Fixed: 2483531
2019-07-16 17:14:44 -07:00
Paul Zhang
da2970b777 qcacld-3.0: Add OEM DATA vendor command support
This command is used to send OEM data binary blobs
from application/service to firmware.

Change-Id: I0b5d7dd5a030b70e59c8581fb51d99079b38385f
CRs-Fixed: 2477332
2019-07-11 00:52:04 -07:00
Ashish Kumar Dhanotiya
1ac4188eb5 qcacld-3.0: Remove legacy implementation of stats event handler
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure and for this
target_if_mc_cp_stats_stats_event_handler is getting used.

Remove legacy implementation of stats event handler
wma_stats_event_handler and related APIs.
With this change remove unused structures also.

Change-Id: I9a892b5f7486a406654256fc2cc8177f2fafe790
CRs-Fixed: 2481937
2019-07-08 14:16:50 -07:00
Srinivas Dasari
ea4722735d qcacld-3.0: Forward disconnect IEs from deauth roam event to kernel
Firmware sends roam event with reason WMI_ROAM_REASON_DEAUTH when
it receives deauth/disassoc from the peer and fails to roam.
The event also carries deauth/disassoc frame.
A new param "notif_params1" is defined to carry length of the
frame and a new TLV element "deauth_disassoc_frame" to carry
the frame.
Extract IEs from the frame when the event is received and
send them to kernel through cfg80211_disconnected().

Change-Id: I14610136e5e9758403e48264d04d1655e4466d3c
CRs-Fixed: 2481915
2019-07-05 20:28:55 -07:00
CNSS_WLAN Service
9a6bf0509c Merge "qcacld-3.0: Remove legacy implementation of wow stats" into wlan-cld3.driver.lnx.2.0 2019-07-05 13:25:05 -07:00
CNSS_WLAN Service
3c0a625154 Merge "qcacld-3.0: Remove legacy implementation of get station api" into wlan-cld3.driver.lnx.2.0 2019-07-05 13:25:04 -07:00
Ashish Kumar Dhanotiya
4ce683d165 qcacld-3.0: Remove legacy implementation of wow stats
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.

Remove legacy implementation for wow stats related apis
as part of cleanup.

Change-Id: Ib06d5bf0e11c8340f459185d18c076c295f39df5
CRs-Fixed: 2481927
2019-07-05 10:26:18 -07:00
Ashish Kumar Dhanotiya
897a46ba59 qcacld-3.0: Remove legacy implementation of get station api
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.

Remove legacy implementation for get station stats api
as part of cleanup.

Change-Id: Iadc7fceccec32e7a27c29872fb13c03f79208965
CRs-Fixed: 2480770
2019-07-05 10:26:13 -07:00
CNSS_WLAN Service
04292a1641 Merge "qcacld-3.0: Clear bss_status bit in case of del_bss_resp failure" into wlan-cld3.driver.lnx.2.0 2019-07-04 10:05:13 -07:00
CNSS_WLAN Service
5c50330ac4 Merge "qcacld-3.0: Return chain_mask for legacy chip" into wlan-cld3.driver.lnx.2.0 2019-07-04 10:04:58 -07:00
Bala Venkatesh
0c2393cc68 qcacld-3.0: Clear bss_status bit in case of del_bss_resp failure
In case of WMA_DEL_STA_REQ timeout for type WMA_DELETE_BSS_RSP,
directly del_bss response is posted to lim without clearing the
bits like bss_status in wma. This can later lead to failure
in del_sta_req of the self sta and self sta peer leak in the
object manager.

Hence, set the bss_status from started to stopped in case
of del_bss failure.

Change-Id: Ic68e6b7a59959392772fc2821d31a054778fe66b
CRs-Fixed: 2478379
2019-07-03 00:56:39 -07:00
Ashish Kumar Dhanotiya
136bc8ea73 qcacld-3.0: Remove legacy wakelock stats implementation
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.

Remove legacy implementation for wakelock stats command
as part of cleanup.

Change-Id: Ie60293ae06401f841ef8dd9545587819ebe4cd4a
CRs-fixed: 2480191
2019-06-29 10:56:51 -07:00
Ashish Kumar Dhanotiya
30ec2959d5 qcacld-3.0: Remove legacy congestion stats implementation
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.

Remove legacy implementation for congestion stats command
as part of cleanup.

Change-Id: Ia8b919ad7cea4f47d5480b9f8e0f4636783ce6c3
CRs-Fixed: 2480246
2019-06-29 10:56:46 -07:00
Ashish Kumar Dhanotiya
af3f36587a qcacld-3.0: Remove legacy get rssi command implementation
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure.

Remove legacy implementation for get rssi command as part
of cleanup.

Change-Id: I7a837d780c6a1551db0929e6ec7e73daaf479429
CRs-Fixed: 2480770
2019-06-29 10:56:42 -07:00
bings
672207d673 qcacld-3.0: Ignore legacy rate set if it is HE connection
Do not configure legacy rate to FW if it is HE connection, otherwise
FW does not work.

Change-Id: I31d167ee79b7b58cabad29e65cf6834a7151093d
CRs-Fixed: 2472811
2019-06-29 08:37:39 -07:00
bings
1289597e90 qcacld-3.0: Check mgmt_rx_params buffer before access
While handling WMI_MGMT_RX_EVENTID FW event, bufp should be checked before
used, because FW may indicate it as NULL.

System does not work when NULL pointer is accessed.

Change-Id: I7f87df93ee31332fa8c804cb2d7fd3a437ddf976
CRs-Fixed: 2465947
2019-06-29 00:16:22 -07:00
Kiran Kumar Lokere
acf277ac9a qcacld-3.0: Update scan channel list with HE capability
Update the scan channel list with HE capability information when
the channel list is sent to FW so that FW includes the HE capabilities
IE in the probe request frame during scan.

Change-Id: I1ad3b15e447845ac06d30e92195b5e4ab8a78d9d
CRs-Fixed: 2467024
2019-06-29 00:16:17 -07:00
Liangwei Dong
4d479e38e8 qcacld-3.0: Return chain_mask for legacy chip
wma_get_caps_for_phyidx_hwmode should return correct
tx/rx chain mask for 2G and 5G from target capability
info struct when the chip is legacy(no dbs support).

Change-Id: Ia02c9d5ae7c5376c5fe521fc47f97b51ad9980d5
CRs-Fixed: 2478143
2019-06-27 03:08:52 -04:00
Tushnim Bhattacharyya
f68b764b54 qcacld-3.0: Update the phy mode correctly after roaming
After roaming the phy mode gets updated by FW via roam_sync event.
Update wma with the value from the roam_sync event.

Change-Id: Ie4b47ad83866f033bcd92781fdb05bd7456180f5
CRs-Fixed: 2477071
2019-06-26 11:33:33 -07:00
Srinivas Girigowda
bf0c1a736d qcacld-3.0: Remove external function declarations
Remove external function declarations.

Change-Id: I2857bcf2f058bff9b88f191a9206711e638f8ea3
CRs-Fixed: 2477823
2019-06-25 17:21:08 -07:00
wadesong
f1acee4bf4 qcacld-3.0: HW mode retrieval code clean up
With the latest code in the following functions:

wma_add_bss_ap_mode
wma_add_bss_ibss_mode
wma_add_bss_sta_mode
wma_set_channel

hardware mode retrieval becomes unnecessary because
the DBS related config is not checked anymore.

Change-Id: I4fe03dee7148b17a6f2a40208d1cb77013db4c98
CRs-Fixed: 2478160
2019-06-25 13:06:30 -07:00
Yeshwanth Sriram Guntuka
c52f24d0f4 qcacld-3.0: Add INI support for FIPS handshake offload feature
Add ini support for FIPS 4-way hanshake offload to firmware. FIPS
offload feature will add support to handle LFR 3.0 connection only
(auth/reassoc). If this ini is set then firmware will offload
4-way HS to supplicant. In the Roam sync indication firmware will
inform connected and not authenticated so that supplicant can take
care of 4-way HS.

Change-Id: I3da58910218ffc57094cac4c3cab4572631d9404
CRs-Fixed: 2459182
2019-06-25 13:06:01 -07:00
Pragaspathi Thilagaraj
b3472f0fcd qcacld-3.0: Implement WAR for P2P GO 1x1 HT association with peer
In P2P GO mode, if the P2P client device is not VHT capable and
only HT capable, but the DUT P2P GO is VHT capable and advertises
2x2 NSS and sends packets with 2x2 rates, it results in interop
issues with HT only capable P2P client devices.

When GO is operating in DBS mode, GO beacons advertise 2x2
capability but include OMN IE to indicate current operating mode
of 1x1. But here peer device is only HT capable and will not
understand OMN IE.

Check if the P2P client device is only HT capable and has
"\x00\x50\xf2\x04". Then downgrade the P2P GO operation to 1x1
nss. Modify rx mcs map value in association response to enable
only mcs 0-7.

Change-Id: I7177c5aee9a560a20c50a63886c0ee77f7d617ae
CRs-Fixed: 2464925
2019-06-25 13:05:57 -07:00
Abhishek Singh
0100fdd28a qcacld-3.0: Get HW mode info from roam fail indication
During roam fail, if firmware doesn't have any interface left on
2.4Ghz it moves to SMM from DBS, But doesn't inform to Host, which
assume DUT is in DBS mode and thus can send VDEV start on 2.4Ghz
without switching to DBS mode. This lead to assert in firmware.

To fix this firmware will indicate the new HW mode in ROAM INVOKE
FAIL and HO FAIL during roam. so handle the new HW mode indication
and update the host HW mode from the new HW mode indication. So
that host and firmware remain in sync

Change-Id: I854faea17c8eccf212b4efb9443b297cadca62b0
CRs-Fixed: 2473532
2019-06-25 13:05:53 -07:00
Saket Jha
451d3db96a qcacld-3.0: Check if wma pointer is NULL
In wma_is_roam_in_progress function, return false if wma pointer
returned from cds_get_context is NULL.

Change-Id: I0a3447f038a45ea93e769142cb5883a3f39c0991
CRs-Fixed: 2475071
2019-06-24 16:52:53 -07:00
Abhishek Singh
4e8524a35d qcacld-3.0: Handle vdev start resp failure in monitor mode
In monitor mode even if vdev start fails, vdev up is sent, which
leads to assert.

Fix is to move the vdev state machine to init state on vdev start
failure and not to send vdev up.

Change-Id: I89e6294329ba0541d0d86c5728ce36898a199659
CRs-Fixed: 2475370
2019-06-21 05:47:46 -07:00
Vevek Venkatesan
988a1395f2 qcacld-3.0: featurize PKTLOG send cmd under feature flag
Featurize PKTLOG send cmd under feature flag FEATURE_PKTLOG.

Change-Id: Ia7cc0ce3fb3ff2c3b28a0957353f7a3efa4fb6f0
CRs-Fixed: 2474100
2019-06-20 08:45:35 -07:00
Jinwei Chen
8cb25b3042 qcacld-3.0: Enable monitor mode based on VDEV SM
Enable monitor mode based on VDEV SM

Change-Id: I3ed95a7d741b802a67432bc8d8bcab05fe1b51d5
CRs-Fixed: 2457147
2019-06-19 16:46:25 -07:00
Pragaspathi Thilagaraj
7fb14221a5 qcacld-3.0: Rename selfMacAddr
Linux coding guidelines don't allow use of camel case identifiers.
So rename selfMacAddr to self_mac_addr to be in compliance.

Change-Id: Id70e00744883f9fd797da8d4bb1cf4f65c8aa9ff
CRs-Fixed: 2463827
2019-06-19 06:35:35 -07:00
Rajasekaran Kalidoss
79947ffaa8 qcacld-3.0: prevent double free of iface staKeyParams
Memory pointed by stakeyparams is not made NULL after
freeing in wma_set_stakey. This results in double free
during wma_add_bss_sta.

Change-Id: Ifa24d536e116be60f572d9926a511f9f498e6696
CRs-Fixed: 2463399
2019-06-19 00:42:36 -07:00