forked from luck/tmp_suning_uos_patched
USB: Add quirk to support DJI CineSSD
This device does not correctly handle the LPM operations. Also, the device cannot handle ATA pass-through commands and locks up when attempted while running in super speed. This patch adds the equivalent quirk logic as found in uas. Signed-off-by: Tim Anderson <tsa@biglakesoftware.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Cc: stable <stable@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
49aa5afda2
commit
f45681f9be
|
@ -410,6 +410,9 @@ static const struct usb_device_id usb_quirk_list[] = {
|
|||
{ USB_DEVICE(0x2040, 0x7200), .driver_info =
|
||||
USB_QUIRK_CONFIG_INTF_STRINGS },
|
||||
|
||||
/* DJI CineSSD */
|
||||
{ USB_DEVICE(0x2ca3, 0x0031), .driver_info = USB_QUIRK_NO_LPM },
|
||||
|
||||
/* INTEL VALUE SSD */
|
||||
{ USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
|
||||
|
|
|
@ -376,6 +376,15 @@ static int queuecommand_lck(struct scsi_cmnd *srb,
|
|||
return 0;
|
||||
}
|
||||
|
||||
if ((us->fflags & US_FL_NO_ATA_1X) &&
|
||||
(srb->cmnd[0] == ATA_12 || srb->cmnd[0] == ATA_16)) {
|
||||
memcpy(srb->sense_buffer, usb_stor_sense_invalidCDB,
|
||||
sizeof(usb_stor_sense_invalidCDB));
|
||||
srb->result = SAM_STAT_CHECK_CONDITION;
|
||||
done(srb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* enqueue the command and wake up the control thread */
|
||||
srb->scsi_done = done;
|
||||
us->srb = srb;
|
||||
|
|
|
@ -2288,6 +2288,13 @@ UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999,
|
|||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_GO_SLOW ),
|
||||
|
||||
/* Reported-by: Tim Anderson <tsa@biglakesoftware.com> */
|
||||
UNUSUAL_DEV( 0x2ca3, 0x0031, 0x0000, 0x9999,
|
||||
"DJI",
|
||||
"CineSSD",
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_ATA_1X),
|
||||
|
||||
/*
|
||||
* Reported by Frederic Marchal <frederic.marchal@wowcompany.com>
|
||||
* Mio Moov 330
|
||||
|
|
Loading…
Reference in New Issue
Block a user