[LIBERTAS] Don't attempt to use devices with too-old boot firmware.

David Woodhouse dwmw2 at infradead.org
Sun Nov 5 02:50:20 EST 2006


Commit:     7b6af4b532ff0cd94f666db65121a83dd844e043
Parent:     9d2bae412006aaf955e1a9056662fbbc47fc177a
commit 7b6af4b532ff0cd94f666db65121a83dd844e043
Author:     David Woodhouse <dwmw2 at infradead.org>
AuthorDate: Sun Nov 5 15:53:38 2006 +0800
Commit:     David Woodhouse <dwmw2 at infradead.org>
CommitDate: Sun Nov 5 15:53:38 2006 +0800

    [LIBERTAS] Don't attempt to use devices with too-old boot firmware.
    
    http://dev.laptop.org/ticket/285
    
    Signed-off-by: David Woodhouse <dwmw2 at infradead.org>
---
 drivers/net/wireless/libertas/if_usb.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
index 2d3eaa8..4ca96b5 100644
--- a/drivers/net/wireless/libertas/if_usb.c
+++ b/drivers/net/wireless/libertas/if_usb.c
@@ -225,6 +225,21 @@ static int if_usb_probe(struct usb_inter
 		}
 	}
 
+	/* It can't just be '< 0x3104' because sometimes after you
+	   unload and reload the driver a few times it ends up saying
+	   0x3006 */
+	if (udev->descriptor.bcdDevice == 0x3102
+#ifdef SUPPORT_BOOT_COMMAND
+	    && UpdateStorage.u8DriverFunctionActive == DRIVER_NORMAL
+#endif
+	    ) {
+		printk("Boot2 firmware too old (%X).\n",
+		       udev->descriptor.bcdDevice);
+		LEAVE();
+		return -EINVAL;
+	}
+
+
 	if (!if_usb_table[i].idVendor) {
 		PRINTM(INFO, "Discard the Probe request\n");
 		PRINTM(INFO, "VID = 0x%X PID = 0x%X\n",


More information about the Commits-kernel mailing list