mirror of https://gitee.com/openkylin/linux.git
usb-storage: add new no_read_disc_info quirk
Appotech ax3003 (the larger brother of the ax203) based devices are even more buggy then the ax203. They will go of into lala land when ever they see a READ_DISC_INFO scsi command. So add a new US_FL which tells the scsi sr driver to not issue any READ_DISC_INFO scsi commands. [akpm@linux-foundation.org: fix build] Signed-off-by: Hans de Goede <hdegoede@redhat.com> Cc: James Bottomley <James.Bottomley@HansenPartnership.com> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Matthew Dharm <mdharm-usb@one-eyed-alien.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
8e04d8056c
commit
ae38c78a03
|
@ -253,6 +253,10 @@ static int slave_configure(struct scsi_device *sdev)
|
|||
* or to force 192-byte transfer lengths for MODE SENSE.
|
||||
* But they do need to use MODE SENSE(10). */
|
||||
sdev->use_10_for_ms = 1;
|
||||
|
||||
/* Some (fake) usb cdrom devices don't like READ_DISC_INFO */
|
||||
if (us->fflags & US_FL_NO_READ_DISC_INFO)
|
||||
sdev->no_read_disc_info = 1;
|
||||
}
|
||||
|
||||
/* The CB and CBI transports have no way to pass LUN values
|
||||
|
|
|
@ -1858,6 +1858,11 @@ UNUSUAL_DEV( 0x1908, 0x1320, 0x0000, 0x0000,
|
|||
"Photo Frame",
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_BAD_SENSE ),
|
||||
UNUSUAL_DEV( 0x1908, 0x3335, 0x0200, 0x0200,
|
||||
"BUILDWIN",
|
||||
"Photo Frame",
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_READ_DISC_INFO ),
|
||||
|
||||
UNUSUAL_DEV( 0x2116, 0x0320, 0x0001, 0x0001,
|
||||
"ST",
|
||||
|
|
|
@ -58,7 +58,9 @@
|
|||
US_FLAG(CAPACITY_OK, 0x00010000) \
|
||||
/* READ CAPACITY response is correct */ \
|
||||
US_FLAG(BAD_SENSE, 0x00020000) \
|
||||
/* Bad Sense (never more than 18 bytes) */
|
||||
/* Bad Sense (never more than 18 bytes) */ \
|
||||
US_FLAG(NO_READ_DISC_INFO, 0x00040000) \
|
||||
/* cannot handle READ_DISC_INFO */
|
||||
|
||||
#define US_FLAG(name, value) US_FL_##name = value ,
|
||||
enum { US_DO_ALL_FLAGS };
|
||||
|
|
Loading…
Reference in New Issue