summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/wcn36xx/smd.h
diff options
context:
space:
mode:
authorLoic Poulain2017-12-08 10:35:30 +0100
committerKalle Valo2017-12-14 16:28:59 +0100
commit2f3bef4b247e4843ebf81123004fa9252b948724 (patch)
treec22182d64d1344ebe75742237e1ce7a4d238a381 /drivers/net/wireless/ath/wcn36xx/smd.h
parentath10k: search DT for qcom,ath10k-calibration-variant (diff)
downloadkernel-qcow2-linux-2f3bef4b247e4843ebf81123004fa9252b948724.tar.gz
kernel-qcow2-linux-2f3bef4b247e4843ebf81123004fa9252b948724.tar.xz
kernel-qcow2-linux-2f3bef4b247e4843ebf81123004fa9252b948724.zip
wcn36xx: Add hardware scan offload support
Current hw_scan implementation does not trigger offloaded hardware scan and seems to only put the device in a kind of listening mode (beacon/probe-response) for software scan. Since no probe request are generated by the software, current scanning method is similar to a passive scan. This patch introduces support for 'true' hardware offloaded scan. Hardware scan is configured and started via the start-scan-offload firmware message. Once scan has been completed a scan indicator message is received from firmware. Moreover, this patch includes support for directed probe-request, allowing connection with hidden APs. It also fixes scan issues with band-steering AP which are not 'visible' with passive scan (due to hidden ssid in beacons). Let's keep the 'legacy' scanning method in case scan-offload is not supported. Signed-off-by: Loic Poulain <loic.poulain@linaro.org> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/wcn36xx/smd.h')
-rw-r--r--drivers/net/wireless/ath/wcn36xx/smd.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/wcn36xx/smd.h b/drivers/net/wireless/ath/wcn36xx/smd.h
index 013fc9546f56..8076edf40ac8 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.h
+++ b/drivers/net/wireless/ath/wcn36xx/smd.h
@@ -65,6 +65,9 @@ int wcn36xx_smd_end_scan(struct wcn36xx *wcn, u8 scan_channel);
int wcn36xx_smd_finish_scan(struct wcn36xx *wcn,
enum wcn36xx_hal_sys_mode mode);
int wcn36xx_smd_update_scan_params(struct wcn36xx *wcn, u8 *channels, size_t channel_count);
+int wcn36xx_smd_start_hw_scan(struct wcn36xx *wcn, struct ieee80211_vif *vif,
+ struct cfg80211_scan_request *req);
+int wcn36xx_smd_stop_hw_scan(struct wcn36xx *wcn);
int wcn36xx_smd_add_sta_self(struct wcn36xx *wcn, struct ieee80211_vif *vif);
int wcn36xx_smd_delete_sta_self(struct wcn36xx *wcn, u8 *addr);
int wcn36xx_smd_delete_sta(struct wcn36xx *wcn, u8 sta_index);