kernel-ark/drivers/net/wireless/rt2x00
Ivo van Doorn 866a050384 rt2x00: Fix rate detection for invalid signals
It has been observed on rt2500pci hardware that some
frames received with signal 0x0C do not have the OFDM
flag set.

Signals can have 2 meanings:
 1) The PLCP value
 2) The bitrate * 10

For rt2500pci (1) is for frames received with a OFDM rate,
and (2) is for frames received with a CCK rate.
But 0x0C is a invalid bitrate value but is a valid PLCP
value for 54Mbs (obvious OFDM rate).
This means that it is possible that the hardware does not
set the OFDM bit correctly under all circumstances.
This results in rt2x00 failing to detect the rate and
mac80211 triggering a WARN_ON() and dropping the frame.

To bypass this, print a warning when such a frame is received,
and reset the rate to the lowest supported rate for the current band.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-03-25 16:42:00 -04:00
..
Kconfig rt2x00: Move firmware checksumming to driver 2008-03-13 16:02:36 -04:00
Makefile rt2x00: Cleanup Makefile 2008-02-29 15:37:21 -05:00
rt2x00.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-18 00:37:55 -07:00
rt2x00config.c rt2x00: Fix basic rate initialization 2008-03-13 19:31:42 -04:00
rt2x00debug.c rt2x00: Upgrade queue->lock to use irqsave 2008-03-13 16:02:35 -04:00
rt2x00debug.h rt2x00: Update copyright notice 2008-02-29 15:19:22 -05:00
rt2x00dev.c rt2x00: Fix rate detection for invalid signals 2008-03-25 16:42:00 -04:00
rt2x00dump.h rt2x00: Queue handling overhaul 2008-02-29 15:19:27 -05:00
rt2x00firmware.c rt2x00: Move firmware checksumming to driver 2008-03-13 16:02:36 -04:00
rt2x00leds.c rt2x00: Make rt2x00leds_register return void 2008-03-13 19:31:41 -04:00
rt2x00leds.h rt2x00: Enable LED class support for rt2500usb/rt73usb 2008-02-29 15:37:00 -05:00
rt2x00lib.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-18 00:37:55 -07:00
rt2x00mac.c rt2x00: Rename config_preamble() to config_erp() 2008-03-13 16:02:36 -04:00
rt2x00pci.c rt2x00: Initialize TX control field in data entries 2008-03-13 16:02:33 -04:00
rt2x00pci.h rt2x00: Fix Descriptor DMA initialization 2008-02-29 15:37:22 -05:00
rt2x00queue.c rt2x00: Upgrade queue->lock to use irqsave 2008-03-13 16:02:35 -04:00
rt2x00queue.h rt2x00: Add dev_flags to rx descriptor 2008-03-25 16:41:58 -04:00
rt2x00reg.h rt2x00: Rate structure overhaul 2008-02-29 15:19:38 -05:00
rt2x00rfkill.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-18 00:37:55 -07:00
rt2x00usb.c rt2x00:correct rx packet length for USB devices 2008-03-13 16:02:35 -04:00
rt2x00usb.h rt2x00: Remove async vendor request calls from rt2x00usb 2008-02-29 15:37:24 -05:00
rt61pci.c rt2x00: Add dev_flags to rx descriptor 2008-03-25 16:41:58 -04:00
rt61pci.h rt2x00: Fix MAC address defines in rt61pci 2008-02-29 15:37:25 -05:00
rt73usb.c rt2x00: Add dev_flags to rx descriptor 2008-03-25 16:41:58 -04:00
rt73usb.h rt2x00: Rename dscape -> mac80211 2008-02-29 15:37:23 -05:00
rt2400pci.c rt2x00: Add dev_flags to rx descriptor 2008-03-25 16:41:58 -04:00
rt2400pci.h rt2x00: Fix rt2400pci signal 2008-03-13 19:32:31 -04:00
rt2500pci.c rt2x00: Add dev_flags to rx descriptor 2008-03-25 16:41:58 -04:00
rt2500pci.h rt2x00: Rename dscape -> mac80211 2008-02-29 15:37:23 -05:00
rt2500usb.c rt2x00: Add dev_flags to rx descriptor 2008-03-25 16:41:58 -04:00
rt2500usb.h rt2x00: Rename dscape -> mac80211 2008-02-29 15:37:23 -05:00