diff options
| author | Lior David <liord@codeaurora.org> | 2016-08-18 22:23:31 +0300 |
|---|---|---|
| committer | Lior David <liord@codeaurora.org> | 2016-10-07 09:30:23 +0300 |
| commit | 33a8b1b0182842ee5eaaa2022e2d686fc90c5aaf (patch) | |
| tree | 2450735178621fb4a0faeb8c7ecc618a527b480c /drivers/net/wireless/ath/wil6210/main.c | |
| parent | e9a7b4841897c06e8fe78c70869d81874687a29b (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.c | 4 |
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) { |
