Graf commitů

1808 Commity

Autor SHA1 Zpráva Datum
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
gaurank kathpalia
7ef7218496 qcacld-3.0: Add support for roaming in case of NUD failure
Add support for roaming in case the driver
detects a nud failure. The STA then would roam
to another BSSID, else if the roaming gets failed
the STA would remain connected to the same BSSID
as connected before.

Change-Id: Idbc99b0ce2f9cacd97564dd8cf9892120958eda2
CRs-Fixed: 2461675
2019-06-02 01:51:38 -07:00
gaurank kathpalia
3ebc17b3e5 qcacld-3.0: Link BLM to the legacy APIs
Link BLM exposed APIs to the following:-

1. csr_get_scan_result:- Link this API with filter bssids in
the reject ap list maintained by the blacklist mgr.

2. lim_assoc_rej_add_to_rssi_based_reject_list:- Link this API
with the the blacklist mgr add bssid to reject list to add the
OCE and BTM related assoc rejects.

3. Userspace avoid list parsing logic for the userspace to set
the BSSID as avoided.

Change-Id: Id51ffb80cea3f845fefe14db25d0f7acda6ea0f3
CRs-Fixed: 2461281
2019-06-02 01:51:34 -07:00
Pragaspathi Thilagaraj
1112c96ef5 qcacld-3.0: Replace typedef tSirBssDescription
The linux coding style forbids use of typedef unless clearly
some rules are met. The tSirBssDescription doesn't match any of
those criteria, so replace it with underlying structure
bss_description.

Change-Id: I36ad517325117cf04d499c7c472ca6ef5921a85d
CRs-Fixed: 2459769
2019-05-27 15:33:37 -07:00
Pragaspathi Thilagaraj
e05162d92b qcacld-3.0: Rename pe_session member bssIdx
The Linux Coding Style doesn't allow mixed-case names so rename
bssIdx in struct pe_session to be in compliance.

Change-Id: Idf2df6cb4ca30e4fdae74b8fb39445bb878003c5
CRs-Fixed: 2459768
2019-05-27 15:33:33 -07:00
Pragaspathi Thilagaraj
afd0a48d1c qcacld-3.0: Rename pe_session member eSirBssType
The Linux Coding Style doesn't allow mixed-case names so rename
eSirBssType in struct pe_session to be in compliance.

Change-Id: Iafe6649a130c77064180c67fb1385d2d7a763370
CRs-Fixed: 2459767
2019-05-27 06:07:09 -07:00
Abhishek Singh
bb9deb4ae0 qcacld-3.0: Release vdev ref and delete pending peers in wma close
In hdd_vdev_destroy, if policy_mgr_check_and_stop_opportunistic_timer
decides to move to single mac mode and while sending the HW mode change
the target goes down, this leads to timeout of the HW mode change req in
WMA layer which is 2 sec and in serialization its 4 sec, but
policy_mgr_check_and_stop_opportunistic_timer timeout in 1 sec and proceed
to sme_close_session and wait for it to complete.

sme_close_session queue WLAN_SER_CMD_DEL_STA_SESSION to serialization but
it remains in pending queue, behind HW mode change req.

Now due to SSR the wait event for sme_close_session is set and thus
hdd_vdev_destroy logically deletes the vdev.

Now on WMA timeout the HW mode change try to remove the request from
serialization which it fails to remove as it fails to get ref for vdev
with vdev being logically deleted.

Thus WLAN_SER_CMD_DEL_STA_SESSION is not processed and is flushed in
hdd_wlan_shutdown.

Thus as SSR WLAN_SER_CMD_DEL_STA_SESSION is flushed from serialization
queue, the wma_vdev_detach() is not called for that vdev and thus the
peer attached to the vdev are not deleted and wma vdev ref is also not
released, this lead vdev/peer ref leak.

To fix this update the wait timeout in
policy_mgr_check_and_stop_opportunistic_timer with proper value higher
than the serialization timeout for the HW mode change request. ALso
set the wait event in policy_mgr_pdev_set_hw_mode_cb in failure cases
as well to avoid timeout in case of hw mode change failures.

Also release pending peer and vdef refs in wma_wmi_service_close.

Change-Id: I5ddf8263b0dbf889be506332a67f5e18c1bfb111
CRs-Fixed: 2458034
2019-05-24 23:13:17 -07:00
bings
1117283ca4 qcacld-3.0: Don't set WMI_PEER_NEED_PTK_4_WAY for FILS connection
When FILS authentication is performed, the key confirmation is
performed as part of the FILS exchange using association frames.
Hence, no additional 4-way handshake is necessary. But still the
host driver sets the WMI_PEER_NEED_PTK_4_WAY flag as part of
peer_assoc command. So firmware expects setting key command after
4-Way handshake is completed. But host sends the set key command
before M4 in this case, which results in firmware assert.

Don't set WMI_PEER_NEED_PTK_4_WAY for FILS connection.

Change-Id: I13451bd7592d5836c16cd648235f691b11aafb15
CRs-Fixed: 2458097
2019-05-24 13:50:00 -07:00
Jiani Liu
6d3b6a16ab qcacld-3.0: Add PTP timestamp socket options TX support
Host need to fill netbuf with qtime instead of tsf. So
host need to add tsf64 enable/disable related functions
and definitions to sync with FW.

The tsf64_time is new added to fw/host structure, so host
need to add parse functions to get tsf64_time from tx_desc.

Change-Id: Ieea0d8f905eb57629d279f8da0e811857b760b1f
CRs-Fixed: 2444456
2019-05-23 22:57:27 -07:00