diff options
author | Kalle Valo <kvalo@qca.qualcomm.com> | 2011-12-16 14:10:39 -0500 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2011-12-16 14:10:39 -0500 |
commit | 7e95e365d5399647a41e10059e4b09826b82d78b (patch) | |
tree | 305c9968798adae3d9484657339fa39d2a5fdaac /drivers/net/wireless/ath/ath9k/recv.c | |
parent | 3ca9d1fc9aa64077645a26c396de9399b49ea226 (diff) | |
parent | 5bd5e9a6ae5137a61d0b5c277eac61892d89fc4f (diff) |
Merge remote branch 'wireless-next/master' into ath6kl-next
Conflicts:
drivers/net/wireless/ath/ath6kl/init.c
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/recv.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index 67b862cdae6d..ad5176de07dc 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c | |||
@@ -475,7 +475,6 @@ u32 ath_calcrxfilter(struct ath_softc *sc) | |||
475 | 475 | ||
476 | return rfilt; | 476 | return rfilt; |
477 | 477 | ||
478 | #undef RX_FILTER_PRESERVE | ||
479 | } | 478 | } |
480 | 479 | ||
481 | int ath_startrecv(struct ath_softc *sc) | 480 | int ath_startrecv(struct ath_softc *sc) |
@@ -1824,6 +1823,7 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp) | |||
1824 | hdr = (struct ieee80211_hdr *) (hdr_skb->data + rx_status_len); | 1823 | hdr = (struct ieee80211_hdr *) (hdr_skb->data + rx_status_len); |
1825 | rxs = IEEE80211_SKB_RXCB(hdr_skb); | 1824 | rxs = IEEE80211_SKB_RXCB(hdr_skb); |
1826 | if (ieee80211_is_beacon(hdr->frame_control) && | 1825 | if (ieee80211_is_beacon(hdr->frame_control) && |
1826 | !is_zero_ether_addr(common->curbssid) && | ||
1827 | !compare_ether_addr(hdr->addr3, common->curbssid)) | 1827 | !compare_ether_addr(hdr->addr3, common->curbssid)) |
1828 | rs.is_mybeacon = true; | 1828 | rs.is_mybeacon = true; |
1829 | else | 1829 | else |
@@ -1838,11 +1838,6 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp) | |||
1838 | if (sc->sc_flags & SC_OP_RXFLUSH) | 1838 | if (sc->sc_flags & SC_OP_RXFLUSH) |
1839 | goto requeue_drop_frag; | 1839 | goto requeue_drop_frag; |
1840 | 1840 | ||
1841 | retval = ath9k_rx_skb_preprocess(common, hw, hdr, &rs, | ||
1842 | rxs, &decrypt_error); | ||
1843 | if (retval) | ||
1844 | goto requeue_drop_frag; | ||
1845 | |||
1846 | rxs->mactime = (tsf & ~0xffffffffULL) | rs.rs_tstamp; | 1841 | rxs->mactime = (tsf & ~0xffffffffULL) | rs.rs_tstamp; |
1847 | if (rs.rs_tstamp > tsf_lower && | 1842 | if (rs.rs_tstamp > tsf_lower && |
1848 | unlikely(rs.rs_tstamp - tsf_lower > 0x10000000)) | 1843 | unlikely(rs.rs_tstamp - tsf_lower > 0x10000000)) |
@@ -1852,6 +1847,11 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp) | |||
1852 | unlikely(tsf_lower - rs.rs_tstamp > 0x10000000)) | 1847 | unlikely(tsf_lower - rs.rs_tstamp > 0x10000000)) |
1853 | rxs->mactime += 0x100000000ULL; | 1848 | rxs->mactime += 0x100000000ULL; |
1854 | 1849 | ||
1850 | retval = ath9k_rx_skb_preprocess(common, hw, hdr, &rs, | ||
1851 | rxs, &decrypt_error); | ||
1852 | if (retval) | ||
1853 | goto requeue_drop_frag; | ||
1854 | |||
1855 | /* Ensure we always have an skb to requeue once we are done | 1855 | /* Ensure we always have an skb to requeue once we are done |
1856 | * processing the current buffer's skb */ | 1856 | * processing the current buffer's skb */ |
1857 | requeue_skb = ath_rxbuf_alloc(common, common->rx_bufsize, GFP_ATOMIC); | 1857 | requeue_skb = ath_rxbuf_alloc(common, common->rx_bufsize, GFP_ATOMIC); |
@@ -1923,15 +1923,20 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp) | |||
1923 | skb = hdr_skb; | 1923 | skb = hdr_skb; |
1924 | } | 1924 | } |
1925 | 1925 | ||
1926 | /* | 1926 | |
1927 | * change the default rx antenna if rx diversity chooses the | 1927 | if (ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB) { |
1928 | * other antenna 3 times in a row. | 1928 | |
1929 | */ | 1929 | /* |
1930 | if (sc->rx.defant != rs.rs_antenna) { | 1930 | * change the default rx antenna if rx diversity |
1931 | if (++sc->rx.rxotherant >= 3) | 1931 | * chooses the other antenna 3 times in a row. |
1932 | ath_setdefantenna(sc, rs.rs_antenna); | 1932 | */ |
1933 | } else { | 1933 | if (sc->rx.defant != rs.rs_antenna) { |
1934 | sc->rx.rxotherant = 0; | 1934 | if (++sc->rx.rxotherant >= 3) |
1935 | ath_setdefantenna(sc, rs.rs_antenna); | ||
1936 | } else { | ||
1937 | sc->rx.rxotherant = 0; | ||
1938 | } | ||
1939 | |||
1935 | } | 1940 | } |
1936 | 1941 | ||
1937 | if (rxs->flag & RX_FLAG_MMIC_STRIPPED) | 1942 | if (rxs->flag & RX_FLAG_MMIC_STRIPPED) |