|
@@ -518,7 +518,7 @@ static void rt2800usb_config_filter(struct rt2x00_dev *rt2x00dev,
|
|
|
rt2x00_set_field32(®, RX_FILTER_CFG_DROP_RTS,
|
|
|
!(filter_flags & FIF_CONTROL));
|
|
|
rt2x00_set_field32(®, RX_FILTER_CFG_DROP_PSPOLL,
|
|
|
- !(filter_flags & FIF_CONTROL));
|
|
|
+ !(filter_flags & FIF_PSPOLL));
|
|
|
rt2x00_set_field32(®, RX_FILTER_CFG_DROP_BA, 1);
|
|
|
rt2x00_set_field32(®, RX_FILTER_CFG_DROP_BAR, 0);
|
|
|
rt2x00_set_field32(®, RX_FILTER_CFG_DROP_CNTL,
|
|
@@ -2623,6 +2623,13 @@ static int rt2800usb_probe_hw(struct rt2x00_dev *rt2x00dev)
|
|
|
if (retval)
|
|
|
return retval;
|
|
|
|
|
|
+ /*
|
|
|
+ * This device has multiple filters for control frames
|
|
|
+ * and has a separate filter for PS Poll frames.
|
|
|
+ */
|
|
|
+ __set_bit(DRIVER_SUPPORT_CONTROL_FILTERS, &rt2x00dev->flags);
|
|
|
+ __set_bit(DRIVER_SUPPORT_CONTROL_FILTER_PSPOLL, &rt2x00dev->flags);
|
|
|
+
|
|
|
/*
|
|
|
* This device requires firmware.
|
|
|
*/
|