rt2x00: Fix chipset detection for rt2500usb
authorAndy Whitcroft <apw@canonical.com>
Thu, 16 Jul 2009 15:28:11 +0000 (16:28 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 21 Jul 2009 16:07:43 +0000 (12:07 -0400)
The commit below changed the semantics of rt2x00_check_rev so that it no
longer checked the bottom 4 bits of the rev were non-zero.  During that
conversion this part of the check was not propogated to the rt2500usb
initialisation.

    commit 358623c22c9fd837b3b1b444377037f72553dc9f
    Author: Ivo van Doorn <ivdoorn@gmail.com>
    Date:   Tue May 5 19:46:08 2009 +0200

        rt2x00: Simplify rt2x00_check_rev

Without this check rt73 devices are miss recognised as rt2500 devices and
two drivers are loaded.  Preventing the device being used.  Reinstate this
check.

Signed-off-by: Andy Whitcroft <apw@canonical.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2500usb.c

index 66daf68ff0ee9e35de4d0933413198432381cfbf..ce75426764a1538124eec73f20c3cac2859c06e0 100644 (file)
@@ -1550,7 +1550,9 @@ static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
        rt2500usb_register_read(rt2x00dev, MAC_CSR0, &reg);
        rt2x00_set_chip(rt2x00dev, RT2570, value, reg);
 
-       if (!rt2x00_check_rev(&rt2x00dev->chip, 0x000ffff0, 0)) {
+       if (!rt2x00_check_rev(&rt2x00dev->chip, 0x000ffff0, 0) ||
+           rt2x00_check_rev(&rt2x00dev->chip, 0x0000000f, 0)) {
+
                ERROR(rt2x00dev, "Invalid RT chipset detected.\n");
                return -ENODEV;
        }