-Index: madwifi-trunk-r3314/ath/if_ath.c
-===================================================================
---- madwifi-trunk-r3314.orig/ath/if_ath.c 2008-02-26 20:23:58.477203701 +0100
-+++ madwifi-trunk-r3314/ath/if_ath.c 2008-02-26 20:23:59.241247240 +0100
-@@ -1594,6 +1594,16 @@
- ath_init(dev);
- }
-
-+static HAL_BOOL ath_hw_reset(struct ath_hal *ah, HAL_OPMODE opmode,
-+ HAL_CHANNEL *channel, HAL_BOOL bChannelChange,
-+ HAL_STATUS *status)
-+{
-+ HAL_BOOL ret;
-+ ret = ath_hal_reset(ah, opmode, channel, bChannelChange, status);
-+ mdelay(5); /* extra delay to allow the hw to settle in */
-+ return ret;
-+}
-+
- /* Channel Availability Check is running, or a channel has already found to be
- * unavailable. */
- static int
-@@ -2476,7 +2486,7 @@
- */
- sc->sc_curchan.channel = ic->ic_curchan->ic_freq;
- sc->sc_curchan.channelFlags = ath_chan2flags(ic->ic_curchan);
-- if (!ath_hal_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_FALSE, &status)) {
-+ if (!ath_hw_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_TRUE, &status)) {
- EPRINTF(sc, "unable to reset hardware: '%s' (HAL status %u) "
- "(freq %u flags 0x%x)\n",
- ath_get_hal_status_desc(status), status,
-@@ -2775,7 +2785,7 @@
- ath_draintxq(sc); /* stop xmit side */
- ath_stoprecv(sc); /* stop recv side */
- /* NB: indicate channel change so we do a full reset */
-- if (!ath_hal_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_TRUE, &status))
-+ if (!ath_hw_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_TRUE, &status))
- EPRINTF(sc, "Unable to reset hardware: '%s' (HAL status %u)\n",
- ath_get_hal_status_desc(status), status);
-
-@@ -8848,8 +8858,7 @@
- * needed to do the reset with chanchange = AH_FALSE in order
- * to receive traffic when peforming high velocity channel
- * changes. */
-- if (!ath_hal_reset(ah, sc->sc_opmode, &hchan, AH_TRUE, &status) ||
-- !ath_hal_reset(ah, sc->sc_opmode, &hchan, AH_FALSE, &status)) {
-+ if (!ath_hw_reset(ah, sc->sc_opmode, &hchan, AH_TRUE, &status)) {
- EPRINTF(sc, "Unable to reset channel %u (%u MHz) "
- "flags 0x%x '%s' (HAL status %u)\n",
- ieee80211_chan2ieee(ic, chan), chan->ic_freq,
-@@ -8905,7 +8914,7 @@
+--- a/ath/if_ath.c
++++ b/ath/if_ath.c
+@@ -8922,7 +8922,7 @@ ath_chan_set(struct ath_softc *sc, struc
* re configure beacons when it is a turbo mode switch.
* HW seems to turn off beacons during turbo mode switch.
*/
ath_beacon_config(sc, NULL);
/*
* Re-enable interrupts.
-@@ -11456,7 +11465,7 @@
- ieee80211_cancel_scan(vap); /* anything current */
- ieee80211_wme_updateparams(vap);
- /* reset the WNIC */
-- if (!ath_hal_reset(ah, sc->sc_opmode,
-+ if (!ath_hw_reset(ah, sc->sc_opmode,
- &sc->sc_curchan, AH_TRUE, &status)) {
- EPRINTF(sc, "ath_hal_reset failed: '%s' "
- "(HAL status %u).\n",