ath5k: write PCU registers on initial reset
authorBob Copeland <me@bobcopeland.com>
Sun, 5 Jul 2009 01:03:13 +0000 (21:03 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 10 Jul 2009 19:02:29 +0000 (15:02 -0400)
"Ath5k: unify resets"
introduced a regression into 2.6.28 where the PCU registers are never
initialized, due to ath5k_reset() always passing true for change_channel.
We subsequently program a lot of these registers but several may start
in an unknown state.

Cc: stable@kernel.org
Reported-by: Forrest Zhang <forrest@hifulltech.com>
Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath5k/base.c

index 3f55e90c43fc4320f6df5bee40df6e05872b1fa6..20ba6fa5f1f1834cdb93d07fa6393935e8a12208 100644 (file)
@@ -2687,7 +2687,7 @@ ath5k_reset(struct ath5k_softc *sc, struct ieee80211_channel *chan)
                sc->curchan = chan;
                sc->curband = &sc->sbands[chan->band];
        }
-       ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, true);
+       ret = ath5k_hw_reset(ah, sc->opmode, sc->curchan, chan != NULL);
        if (ret) {
                ATH5K_ERR(sc, "can't reset hardware (%d)\n", ret);
                goto err;