ChangeSet 1.1371.759.30, 2004/04/26 16:10:25-07:00, mdharm-usb@one-eyed-alien.net

[PATCH] USB: usb-storage driver changes for 2.6.x [2/4]

This is patch as248b from Alan Stern, modified by myself:  This adds a flag
which allows us to supress the "unneeded unusual_devs.h entry" message.
This is useful for times when idiotic device manufacturers break the rules
and release two different devices with the same VID, PID, and revision
number.


 drivers/usb/storage/unusual_devs.h |    2 +-
 drivers/usb/storage/usb.c          |    2 +-
 drivers/usb/storage/usb.h          |    1 +
 3 files changed, 3 insertions(+), 2 deletions(-)


diff -Nru a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
--- a/drivers/usb/storage/unusual_devs.h	Fri May 14 15:32:27 2004
+++ b/drivers/usb/storage/unusual_devs.h	Fri May 14 15:32:27 2004
@@ -613,7 +613,7 @@
 		"Casio",
 		"QV DigitalCamera",
 		US_SC_DEVICE, US_PR_CB, NULL,
-		US_FL_FIX_INQUIRY ),
+		US_FL_NEED_OVERRIDE | US_FL_FIX_INQUIRY ),
 
 /* Later Casio cameras apparently tell the truth */
 UNUSUAL_DEV( 0x07cf, 0x1001, 0x9010, 0x9999,
diff -Nru a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
--- a/drivers/usb/storage/usb.c	Fri May 14 15:32:27 2004
+++ b/drivers/usb/storage/usb.c	Fri May 14 15:32:27 2004
@@ -490,7 +490,7 @@
 		if (unusual_dev->useTransport != US_PR_DEVICE &&
 			us->protocol == idesc->bInterfaceProtocol)
 			msg += 2;
-		if (msg >= 0)
+		if (msg >= 0 && !(unusual_dev->flags & US_FL_NEED_OVERRIDE))
 			printk(KERN_NOTICE USB_STORAGE "This device "
 				"(%04x,%04x,%04x S %02x P %02x)"
 				" has %s in unusual_devs.h\n"
diff -Nru a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h
--- a/drivers/usb/storage/usb.h	Fri May 14 15:32:27 2004
+++ b/drivers/usb/storage/usb.h	Fri May 14 15:32:27 2004
@@ -69,6 +69,7 @@
 /* Flag definitions: these entries are static */
 #define US_FL_SINGLE_LUN      0x00000001 /* allow access to only LUN 0	    */
 #define US_FL_MODE_XLATE      0          /* [no longer used]                */
+#define US_FL_NEED_OVERRIDE   0x00000004 /* unusual_devs entry is necessary */
 #define US_FL_IGNORE_SER      0		 /* [no longer used]		    */
 #define US_FL_SCM_MULT_TARG   0x00000020 /* supports multiple targets	    */
 #define US_FL_FIX_INQUIRY     0x00000040 /* INQUIRY response needs faking   */
