Commit Graph

1816 Commits

Author SHA1 Message Date
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
Rajeev Kumar
0e5dec0b9c qcacld-3.0: Add string for page fault wake up reason
Add string for page fault wake up reason such that wake up
reason is logged properly.

Change-Id: I0f7138f730f5b9ca66f1d524d5d1868a99ccd88f
CRs-Fixed: 2471522
2019-06-14 03:16:57 -07:00
guangde
4853c40d31 qcacld-3.0: Add get antenna isolation command
Propagation from qcacld2.0 to qcacld3.0.
The WMI CMD and EVENT of "get antenna isolation" are already defined,
but not used before in qcacld3.0.
Now, The host driver uses vendor command to get this information
instead of iwpriv command in qcacld-2.0.
The attribution of this feature is already defined in file
"qca_vendor.h". The name is "QCA_WLAN_VENDOR_ATTR_ANTENNA_ISOLATION".
So host driver will use vendor command
"QCA_NL80211_VENDOR_SUBCMD_GET_HW_CAPABILITY" to get the information
from lower layer.

Change-Id: I915768f622ddc9a70a95ce4fe952f19917a8f901
CRs-Fixed: 2447360
2019-06-14 01:49:41 -07:00
Rajeev Kumar
4cfc6ee150 qcacld-3.0: Add debug assert on page fault wake ups
During dynamic request voting(DRV) suspend PCIe link
is in L1SS sleep state such that target can do page
faults without waking up APPS and hence add debug
assert on page fault wake ups if target triggered
a page fault wake up during DRV wow suspend.

Change-Id: I130a9a568b7007366fe582bd2e231c9fca324368
CRs-Fixed: 2467471
2019-06-13 23:00:13 -07:00
Tushnim Bhattacharyya
80e9e3b9d0 qcacld-3.0: Set the max_station config correctly for SAP
Set the max_station config correctly at wma_open instead of using
the default value.

Change-Id: I63cd05462351359fbdcaae03dbdff940817b9bde
CRs-Fixed: 2468829
2019-06-13 15:50:38 -07:00
Yeshwanth Sriram Guntuka
282844155e qcacld-3.0: Cleanup CONFIG_MCL and use common flags and api
Cleanup CONFIG_MCL in peer_assoc_params and use common
flags and api to populate peer_flags in wmi peer assoc
command.

Change-Id: Ib06409c89ee519d8139b52158c8c907dc336beca
CRs-Fixed: 2467182
2019-06-10 07:28:02 -07:00
Pragaspathi Thilagaraj
7a1a08e6b6 qcacld-3.0: Replace typedef eCsrAuthType
eCsrAuthType is the enum of AKMs to be used during connection.
So the name eCsrAuthType is misleading as akm and auth algo are
different.
Also the Linux Coding Style doesn't allow mixed-case names and
so-called Hungarian notation, so rename the enum eCsrAuthType to
be compliant.

Change-Id: I35e18d1f84babd0ef2928ae9d7258028d4c9b3c5
CRs-Fixed: 2463813
2019-06-08 06:29:25 -07:00
Pragaspathi Thilagaraj
beb769e8c5 qcacld-3.0: Fix mem leak in wma_roam_update_vdev
In the memory allocated for del_sta_params, set_link_params and
del_bss_params is not freed if the malloc for add_sta_params
fails. This causes memory leak in wma_roam_update_vdev.
Also in wma_extscan_operations_event_handler, oprn_ind is not
freed in case of failure.

Free the memory allocated for del_sta_params, set_link_params,
del_bss_params, oprn_ind during every return.

Change-Id: I727cc734943a2abcc2cfeca3285af13eb68cfe44
CRs-Fixed: 2464098
2019-06-07 01:51:05 -07:00
gaurank kathpalia
45685491ea qcacld-3.0: Fix potential memory leak issues in driver code
Currently in these APIs, driver has a potential mem leak if
the code deviates from the success path:-

1. sme_ap_disable_intra_bss_fwd, param pSapDisableIntraFwd
was not freed in case of mutex acquire gets fail.

2. sme_set_wisa_params, param cds_msg_wisa_params was not freed
in case of mutex cquire fail, and in case of msg failed to
post to scheduler.

3. sme_update_sta_inactivity_timeout, param inactivity_time was
not freed in any case, and has to be freed after use.

4. wma_del_tdls_sta, param peerStateParams needs to be freed
in every failure case, in which the driver sends a del rsp in
error case.

Change-Id: Ibb6061dc399c0f408e7469e91d8084c82786a561
CRs-Fixed: 2466435
2019-06-06 19:01:50 -07:00
Sandeep Puligilla
78a8c1f6fa qcacld-3.0: Fix NULL pointer dereference in WMA
Add NULL validaiton check for WMA global context
to avoid possible NULL pointer dereference.

Change-Id: I1cf0bcf574d397eb712ca0e1c39dcf848b9c5328
CRs-Fixed: 2423998
2019-06-04 22:45:35 -07:00
Yeshwanth Sriram Guntuka
1c7d239b15 qcacld-3.0: Update MCS set on add_sta in LFR2 scenario
In LFR2 scenario, STA roams to IOT AP with which max nss
capability is advertised because ini configured vendor OUI
and data for max nss is found in AP's beacons or probe
responses. On receiving association response with reduced
nss, nss is not updated as part of add_sta. This is resulting
in incorrect nss to be sent in peer_assoc command.

Fix is to update MCS set so that appropriate nss is sent in
peer_assoc command.

Change-Id: Id137a09f24063c8260c21eda6cd74cbb571b9129
CRs-Fixed: 2464318
2019-06-04 20:22:08 -07:00
Manjunathappa Prakash
8280a15953 qcacld-3.0: Add WMA API to know if vdev is roaming
Add WMA API and DP ol_if callback to know if vdev is roaming in progress

Change-Id: Ice43413516d8b2490bf7ddf6fcac85ee5dee421b
CRs-Fixed: 2458886
2019-06-03 02:26:49 -07:00