mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-03 21:19:09 +08:00
mac80211: add cancel_hw_scan() callback
When suspending, __ieee80211_suspend() calls ieee80211_scan_cancel(), which will only cancel sw scan. In order to cancel hw scan, the low-level driver has to cancel it in the suspend() callback. however, this is too late, as a new scan_work will be enqueued (while the driver is going into suspend). Add a new cancel_hw_scan() callback, asking the driver to cancel an active hw scan, and call it in ieee80211_scan_cancel(). Signed-off-by: Eliad Peller <eliad@wizery.com> Reviewed-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
eb40e3e8bb
commit
b856439b1b
@@ -1708,6 +1708,14 @@ enum ieee80211_ampdu_mlme_action {
|
||||
* any error unless this callback returned a negative error code.
|
||||
* The callback can sleep.
|
||||
*
|
||||
* @cancel_hw_scan: Ask the low-level tp cancel the active hw scan.
|
||||
* The driver should ask the hardware to cancel the scan (if possible),
|
||||
* but the scan will be completed only after the driver will call
|
||||
* ieee80211_scan_completed().
|
||||
* This callback is needed for wowlan, to prevent enqueueing a new
|
||||
* scan_work after the low-level driver was already suspended.
|
||||
* The callback can sleep.
|
||||
*
|
||||
* @sched_scan_start: Ask the hardware to start scanning repeatedly at
|
||||
* specific intervals. The driver must call the
|
||||
* ieee80211_sched_scan_results() function whenever it finds results.
|
||||
@@ -1900,6 +1908,8 @@ struct ieee80211_ops {
|
||||
u32 iv32, u16 *phase1key);
|
||||
int (*hw_scan)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
struct cfg80211_scan_request *req);
|
||||
void (*cancel_hw_scan)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif);
|
||||
int (*sched_scan_start)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct cfg80211_sched_scan_request *req,
|
||||
|
||||
Reference in New Issue
Block a user