diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/virtual.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/virtual.c | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath/ath9k/virtual.c b/drivers/net/wireless/ath/ath9k/virtual.c index 1ff429b027d7..19b88f8177fd 100644 --- a/drivers/net/wireless/ath/ath9k/virtual.c +++ b/drivers/net/wireless/ath/ath9k/virtual.c | |||
@@ -351,7 +351,7 @@ void ath9k_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
351 | * Drop from tasklet to work to allow mutex for channel | 351 | * Drop from tasklet to work to allow mutex for channel |
352 | * change. | 352 | * change. |
353 | */ | 353 | */ |
354 | queue_work(aphy->sc->hw->workqueue, | 354 | ieee80211_queue_work(aphy->sc->hw, |
355 | &aphy->sc->chan_work); | 355 | &aphy->sc->chan_work); |
356 | } | 356 | } |
357 | } | 357 | } |
@@ -367,7 +367,7 @@ static void ath9k_mark_paused(struct ath_wiphy *aphy) | |||
367 | struct ath_softc *sc = aphy->sc; | 367 | struct ath_softc *sc = aphy->sc; |
368 | aphy->state = ATH_WIPHY_PAUSED; | 368 | aphy->state = ATH_WIPHY_PAUSED; |
369 | if (!__ath9k_wiphy_pausing(sc)) | 369 | if (!__ath9k_wiphy_pausing(sc)) |
370 | queue_work(sc->hw->workqueue, &sc->chan_work); | 370 | ieee80211_queue_work(sc->hw, &sc->chan_work); |
371 | } | 371 | } |
372 | 372 | ||
373 | static void ath9k_pause_iter(void *data, u8 *mac, struct ieee80211_vif *vif) | 373 | static void ath9k_pause_iter(void *data, u8 *mac, struct ieee80211_vif *vif) |
@@ -521,7 +521,7 @@ int ath9k_wiphy_select(struct ath_wiphy *aphy) | |||
521 | spin_unlock_bh(&sc->wiphy_lock); | 521 | spin_unlock_bh(&sc->wiphy_lock); |
522 | ath_radio_disable(sc); | 522 | ath_radio_disable(sc); |
523 | ath_radio_enable(sc); | 523 | ath_radio_enable(sc); |
524 | queue_work(aphy->sc->hw->workqueue, | 524 | ieee80211_queue_work(aphy->sc->hw, |
525 | &aphy->sc->chan_work); | 525 | &aphy->sc->chan_work); |
526 | return -EBUSY; /* previous select still in progress */ | 526 | return -EBUSY; /* previous select still in progress */ |
527 | } | 527 | } |
@@ -541,7 +541,7 @@ int ath9k_wiphy_select(struct ath_wiphy *aphy) | |||
541 | 541 | ||
542 | if (now) { | 542 | if (now) { |
543 | /* Ready to request channel change immediately */ | 543 | /* Ready to request channel change immediately */ |
544 | queue_work(aphy->sc->hw->workqueue, &aphy->sc->chan_work); | 544 | ieee80211_queue_work(aphy->sc->hw, &aphy->sc->chan_work); |
545 | } | 545 | } |
546 | 546 | ||
547 | /* | 547 | /* |
@@ -648,8 +648,9 @@ try_again: | |||
648 | "change\n"); | 648 | "change\n"); |
649 | } | 649 | } |
650 | 650 | ||
651 | queue_delayed_work(sc->hw->workqueue, &sc->wiphy_work, | 651 | ieee80211_queue_delayed_work(sc->hw, |
652 | sc->wiphy_scheduler_int); | 652 | &sc->wiphy_work, |
653 | sc->wiphy_scheduler_int); | ||
653 | } | 654 | } |
654 | 655 | ||
655 | void ath9k_wiphy_set_scheduler(struct ath_softc *sc, unsigned int msec_int) | 656 | void ath9k_wiphy_set_scheduler(struct ath_softc *sc, unsigned int msec_int) |
@@ -657,6 +658,23 @@ void ath9k_wiphy_set_scheduler(struct ath_softc *sc, unsigned int msec_int) | |||
657 | cancel_delayed_work_sync(&sc->wiphy_work); | 658 | cancel_delayed_work_sync(&sc->wiphy_work); |
658 | sc->wiphy_scheduler_int = msecs_to_jiffies(msec_int); | 659 | sc->wiphy_scheduler_int = msecs_to_jiffies(msec_int); |
659 | if (sc->wiphy_scheduler_int) | 660 | if (sc->wiphy_scheduler_int) |
660 | queue_delayed_work(sc->hw->workqueue, &sc->wiphy_work, | 661 | ieee80211_queue_delayed_work(sc->hw, &sc->wiphy_work, |
661 | sc->wiphy_scheduler_int); | 662 | sc->wiphy_scheduler_int); |
663 | } | ||
664 | |||
665 | /* caller must hold wiphy_lock */ | ||
666 | bool ath9k_all_wiphys_idle(struct ath_softc *sc) | ||
667 | { | ||
668 | unsigned int i; | ||
669 | if (sc->pri_wiphy->state != ATH_WIPHY_INACTIVE) { | ||
670 | return false; | ||
671 | } | ||
672 | for (i = 0; i < sc->num_sec_wiphy; i++) { | ||
673 | struct ath_wiphy *aphy = sc->sec_wiphy[i]; | ||
674 | if (!aphy) | ||
675 | continue; | ||
676 | if (aphy->state != ATH_WIPHY_INACTIVE) | ||
677 | return false; | ||
678 | } | ||
679 | return true; | ||
662 | } | 680 | } |