diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2008-02-17 11:33:13 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-02-29 15:37:22 -0500 |
commit | e542239f639fa4e7b13a949d39d44ff1eccf7e3a (patch) | |
tree | 4357db0cd7c826a57b4d75f12e473633eb58645e /drivers | |
parent | baf26a7eae3b05d25dd967b92eb2e09406ed9cf4 (diff) |
rt2x00: Filter ACK_CTS based on FIF_CONTROL
The ACK_CTS frame is a control frame, this means
dropping the frame depends on the FIF_CONTROL flag
for filtering.
This also fixes an obvious typo in register definition.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt61pci.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt61pci.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt73usb.c | 3 |
3 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index 357f2c4183f6..75f61f3c47b6 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c | |||
@@ -2325,8 +2325,9 @@ static void rt61pci_configure_filter(struct ieee80211_hw *hw, | |||
2325 | rt2x00_set_field32(®, TXRX_CSR0_DROP_VERSION_ERROR, 1); | 2325 | rt2x00_set_field32(®, TXRX_CSR0_DROP_VERSION_ERROR, 1); |
2326 | rt2x00_set_field32(®, TXRX_CSR0_DROP_MULTICAST, | 2326 | rt2x00_set_field32(®, TXRX_CSR0_DROP_MULTICAST, |
2327 | !(*total_flags & FIF_ALLMULTI)); | 2327 | !(*total_flags & FIF_ALLMULTI)); |
2328 | rt2x00_set_field32(®, TXRX_CSR0_DROP_BORADCAST, 0); | 2328 | rt2x00_set_field32(®, TXRX_CSR0_DROP_BROADCAST, 0); |
2329 | rt2x00_set_field32(®, TXRX_CSR0_DROP_ACK_CTS, 1); | 2329 | rt2x00_set_field32(®, TXRX_CSR0_DROP_ACK_CTS, |
2330 | !(*total_flags & FIF_CONTROL)); | ||
2330 | rt2x00pci_register_write(rt2x00dev, TXRX_CSR0, reg); | 2331 | rt2x00pci_register_write(rt2x00dev, TXRX_CSR0, reg); |
2331 | } | 2332 | } |
2332 | 2333 | ||
diff --git a/drivers/net/wireless/rt2x00/rt61pci.h b/drivers/net/wireless/rt2x00/rt61pci.h index 2f9a8899a3e8..d504e70125d5 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.h +++ b/drivers/net/wireless/rt2x00/rt61pci.h | |||
@@ -405,7 +405,7 @@ struct hw_pairwise_ta_entry { | |||
405 | #define TXRX_CSR0_DROP_TO_DS FIELD32(0x00200000) | 405 | #define TXRX_CSR0_DROP_TO_DS FIELD32(0x00200000) |
406 | #define TXRX_CSR0_DROP_VERSION_ERROR FIELD32(0x00400000) | 406 | #define TXRX_CSR0_DROP_VERSION_ERROR FIELD32(0x00400000) |
407 | #define TXRX_CSR0_DROP_MULTICAST FIELD32(0x00800000) | 407 | #define TXRX_CSR0_DROP_MULTICAST FIELD32(0x00800000) |
408 | #define TXRX_CSR0_DROP_BORADCAST FIELD32(0x01000000) | 408 | #define TXRX_CSR0_DROP_BROADCAST FIELD32(0x01000000) |
409 | #define TXRX_CSR0_DROP_ACK_CTS FIELD32(0x02000000) | 409 | #define TXRX_CSR0_DROP_ACK_CTS FIELD32(0x02000000) |
410 | #define TXRX_CSR0_TX_WITHOUT_WAITING FIELD32(0x04000000) | 410 | #define TXRX_CSR0_TX_WITHOUT_WAITING FIELD32(0x04000000) |
411 | 411 | ||
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index afd8533267a7..c3d4e9307785 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c | |||
@@ -1929,7 +1929,8 @@ static void rt73usb_configure_filter(struct ieee80211_hw *hw, | |||
1929 | rt2x00_set_field32(®, TXRX_CSR0_DROP_MULTICAST, | 1929 | rt2x00_set_field32(®, TXRX_CSR0_DROP_MULTICAST, |
1930 | !(*total_flags & FIF_ALLMULTI)); | 1930 | !(*total_flags & FIF_ALLMULTI)); |
1931 | rt2x00_set_field32(®, TXRX_CSR0_DROP_BROADCAST, 0); | 1931 | rt2x00_set_field32(®, TXRX_CSR0_DROP_BROADCAST, 0); |
1932 | rt2x00_set_field32(®, TXRX_CSR0_DROP_ACK_CTS, 1); | 1932 | rt2x00_set_field32(®, TXRX_CSR0_DROP_ACK_CTS, |
1933 | !(*total_flags & FIF_CONTROL)); | ||
1933 | rt73usb_register_write(rt2x00dev, TXRX_CSR0, reg); | 1934 | rt73usb_register_write(rt2x00dev, TXRX_CSR0, reg); |
1934 | } | 1935 | } |
1935 | 1936 | ||