Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6-block.git] / drivers / net / wireless / ath / ath9k / recv.c
index b29c80def35e89f10284ae794d267ca3a19d3e55..f69dcdf0e2e61116d6e76310858cd874fcc3424a 100644 (file)
@@ -75,7 +75,6 @@ static void ath_rx_buf_link(struct ath_softc *sc, struct ath_buf *bf)
                *sc->rx.rxlink = bf->bf_daddr;
 
        sc->rx.rxlink = &ds->ds_link;
-       ath9k_hw_rxena(ah);
 }
 
 static void ath_setdefantenna(struct ath_softc *sc, u32 antenna)
@@ -426,9 +425,7 @@ u32 ath_calcrxfilter(struct ath_softc *sc)
        else
                rfilt |= ATH9K_RX_FILTER_BEACON;
 
-       if ((AR_SREV_9280_20_OR_LATER(sc->sc_ah) ||
-           AR_SREV_9285_12_OR_LATER(sc->sc_ah)) &&
-           (sc->sc_ah->opmode == NL80211_IFTYPE_AP) &&
+       if ((sc->sc_ah->opmode == NL80211_IFTYPE_AP) ||
            (sc->rx.rxfilter & FIF_PSPOLL))
                rfilt |= ATH9K_RX_FILTER_PSPOLL;
 
@@ -574,7 +571,7 @@ static void ath_rx_ps_beacon(struct ath_softc *sc, struct sk_buff *skb)
                sc->ps_flags &= ~PS_BEACON_SYNC;
                ath_dbg(common, ATH_DBG_PS,
                        "Reconfigure Beacon timers based on timestamp from the AP\n");
-               ath_beacon_config(sc, NULL);
+               ath_set_beacon(sc);
        }
 
        if (ath_beacon_dtim_pending_cab(skb)) {
@@ -1767,6 +1764,7 @@ requeue:
                } else {
                        list_move_tail(&bf->list, &sc->rx.rxbuf);
                        ath_rx_buf_link(sc, bf);
+                       ath9k_hw_rxena(ah);
                }
        } while (1);