summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/wil6210/main.c
diff options
context:
space:
mode:
authorLior David <liord@codeaurora.org>2016-08-18 22:23:31 +0300
committerLior David <liord@codeaurora.org>2016-10-07 09:30:23 +0300
commit33a8b1b0182842ee5eaaa2022e2d686fc90c5aaf (patch)
tree2450735178621fb4a0faeb8c7ecc618a527b480c /drivers/net/wireless/ath/wil6210/main.c
parente9a7b4841897c06e8fe78c70869d81874687a29b (diff)
wil6210: initial support for FTM and AOA
Added initial support for fine timing measurement(FTM) and angle of arrival (AOA). These features allow a station to get an accurate indoor location by measuring distance (FTM) and azimuth/elevation (AOA) to one or more stations/APs with a known location. The following APIs are supported: 1. Get FTM/AOA capabilities, currently hard-coded for a single-shot measurement to an associated AP 2. Start FTM session 3. Receive FTM results 4. Start standalone AOA measurement 5. Receive AOA results Change-Id: I54ebc1bdff6ed7d91644165b16eb0a4240069321 CRs-Fixed: 1057307 Signed-off-by: Lior David <liord@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/ath/wil6210/main.c')
-rw-r--r--drivers/net/wireless/ath/wil6210/main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/wil6210/main.c b/drivers/net/wireless/ath/wil6210/main.c
index a509841c3187..5285ebc8b9af 100644
--- a/drivers/net/wireless/ath/wil6210/main.c
+++ b/drivers/net/wireless/ath/wil6210/main.c
@@ -518,6 +518,8 @@ int wil_priv_init(struct wil6210_priv *wil)
spin_lock_init(&wil->wmi_ev_lock);
init_waitqueue_head(&wil->wq);
+ wil_ftm_init(wil);
+
wil->wmi_wq = create_singlethread_workqueue(WIL_NAME "_wmi");
if (!wil->wmi_wq)
return -EAGAIN;
@@ -565,6 +567,7 @@ void wil_priv_deinit(struct wil6210_priv *wil)
{
wil_dbg_misc(wil, "%s()\n", __func__);
+ wil_ftm_deinit(wil);
wil_set_recovery_state(wil, fw_recovery_idle);
del_timer_sync(&wil->scan_timer);
del_timer_sync(&wil->p2p.discovery_timer);
@@ -1056,6 +1059,7 @@ int __wil_down(struct wil6210_priv *wil)
wil_enable_irq(wil);
wil_p2p_stop_radio_operations(wil);
+ wil_ftm_stop_operations(wil);
mutex_lock(&wil->p2p_wdev_mutex);
if (wil->scan_request) {