Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36d6825b authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville
Browse files

mac80211: let drivers wake but not start queues



Having drivers start queues is just confusing, their ->start()
callback can block and do whatever is necessary, so let mac80211
start queues and have drivers wake queues when necessary (to get
packets flowing again right away.)

Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c4680470
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2015,7 +2015,7 @@ static int adm8211_resume(struct pci_dev *pdev)

	if (priv->mode != IEEE80211_IF_TYPE_INVALID) {
		adm8211_start(dev);
		ieee80211_start_queues(dev);
		ieee80211_wake_queues(dev);
	}

	return 0;
+1 −1
Original line number Diff line number Diff line
@@ -1599,7 +1599,7 @@ ath5k_txq_cleanup(struct ath5k_softc *sc)
					sc->txqs[i].link);
			}
	}
	ieee80211_start_queues(sc->hw); /* XXX move to callers */
	ieee80211_wake_queues(sc->hw); /* XXX move to callers */

	for (i = 0; i < ARRAY_SIZE(sc->txqs); i++)
		if (sc->txqs[i].setup)
+0 −1
Original line number Diff line number Diff line
@@ -3497,7 +3497,6 @@ static int b43_wireless_core_start(struct b43_wldev *dev)
	/* Start data flow (TX/RX). */
	b43_mac_enable(dev);
	b43_interrupt_enable(dev, dev->irq_savedstate);
	ieee80211_start_queues(dev->wl->hw);

	/* Start maintainance work */
	b43_periodic_tasks_setup(dev);
+0 −1
Original line number Diff line number Diff line
@@ -2794,7 +2794,6 @@ static int b43legacy_wireless_core_start(struct b43legacy_wldev *dev)
	/* Start data flow (TX/RX) */
	b43legacy_mac_enable(dev);
	b43legacy_interrupt_enable(dev, dev->irq_savedstate);
	ieee80211_start_queues(dev->wl->hw);

	/* Start maintenance work */
	b43legacy_periodic_tasks_setup(dev);
+1 −1
Original line number Diff line number Diff line
@@ -5823,7 +5823,7 @@ static void iwl3945_alive_start(struct iwl3945_priv *priv)
	if (iwl3945_is_rfkill(priv))
		return;

	ieee80211_start_queues(priv->hw);
	ieee80211_wake_queues(priv->hw);

	priv->active_rate = priv->rates_mask;
	priv->active_rate_basic = priv->rates_mask & IWL_BASIC_RATES_MASK;
Loading