diff options
author | Michael Buesch <mb@bu3sch.de> | 2009-02-20 15:37:03 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-02-27 20:52:51 +0100 |
commit | 80e775bf08f1915870fbb0c1c7a45a3fdc291721 (patch) | |
tree | 117d475755d5f4f0aba17f9efce8fa4fd51d0d10 | |
parent | b43: Enable PCI slow clock workaround, if needed. (diff) | |
download | linux-80e775bf08f1915870fbb0c1c7a45a3fdc291721.tar.xz linux-80e775bf08f1915870fbb0c1c7a45a3fdc291721.zip |
mac80211: Add software scan notifiers
This adds optional notifier functions for software scan.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | include/net/mac80211.h | 8 | ||||
-rw-r--r-- | net/mac80211/scan.c | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index e01c63aad66c..12a52efcd0d1 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -1324,6 +1324,12 @@ enum ieee80211_ampdu_mlme_action { * because the hardware is turned off! Anything else is a bug! * Returns a negative error code which will be seen in userspace. * + * @sw_scan_start: Notifier function that is called just before a software scan + * is started. Can be NULL, if the driver doesn't need this notification. + * + * @sw_scan_complete: Notifier function that is called just after a software scan + * finished. Can be NULL, if the driver doesn't need this notification. + * * @get_stats: Return low-level statistics. * Returns zero if statistics are available. * @@ -1403,6 +1409,8 @@ struct ieee80211_ops { u32 iv32, u16 *phase1key); int (*hw_scan)(struct ieee80211_hw *hw, struct cfg80211_scan_request *req); + void (*sw_scan_start)(struct ieee80211_hw *hw); + void (*sw_scan_complete)(struct ieee80211_hw *hw); int (*get_stats)(struct ieee80211_hw *hw, struct ieee80211_low_level_stats *stats); void (*get_tkip_seq)(struct ieee80211_hw *hw, u8 hw_key_idx, diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c index 23f4de274744..0e81e1633a66 100644 --- a/net/mac80211/scan.c +++ b/net/mac80211/scan.c @@ -245,6 +245,9 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted) netif_addr_unlock(local->mdev); netif_tx_unlock_bh(local->mdev); + if (local->ops->sw_scan_complete) + local->ops->sw_scan_complete(local_to_hw(local)); + mutex_lock(&local->iflist_mtx); list_for_each_entry(sdata, &local->interfaces, list) { if (!netif_running(sdata->dev)) @@ -395,6 +398,8 @@ int ieee80211_start_scan(struct ieee80211_sub_if_data *scan_sdata, } local->sw_scanning = true; + if (local->ops->sw_scan_start) + local->ops->sw_scan_start(local_to_hw(local)); mutex_lock(&local->iflist_mtx); list_for_each_entry(sdata, &local->interfaces, list) { |