| From 3355443ad7601991affa5992b0d53870335af765 Mon Sep 17 00:00:00 2001 |
| From: Bob Copeland <me@bobcopeland.com> |
| Date: Sat, 4 Jul 2009 21:03:13 -0400 |
| Subject: ath5k: write PCU registers on initial reset |
| |
| From: Bob Copeland <me@bobcopeland.com> |
| |
| commit 3355443ad7601991affa5992b0d53870335af765 upstream. |
| |
| "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. |
| |
| Reported-by: Forrest Zhang <forrest@hifulltech.com> |
| Signed-off-by: Bob Copeland <me@bobcopeland.com> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/net/wireless/ath/ath5k/base.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/wireless/ath/ath5k/base.c |
| +++ b/drivers/net/wireless/ath/ath5k/base.c |
| @@ -2676,7 +2676,7 @@ ath5k_reset(struct ath5k_softc *sc, stru |
| 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; |