2021-09-14 01:12:43

by Ondrej Zary

[permalink] [raw]
Subject: [PATCH] usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c

ScanLogic SL11R-IDE with firmware older than 2.6c (the latest one) has
broken tag handling, preventing the device from working at all:
usb 1-1: new full-speed USB device number 2 using uhci_hcd
usb 1-1: New USB device found, idVendor=04ce, idProduct=0002, bcdDevice= 2.60
usb 1-1: New USB device strings: Mfr=1, Product=1, SerialNumber=0
usb 1-1: Product: USB Device
usb 1-1: Manufacturer: USB Device
usb-storage 1-1:1.0: USB Mass Storage device detected
scsi host2: usb-storage 1-1:1.0
usbcore: registered new interface driver usb-storage
usb 1-1: reset full-speed USB device number 2 using uhci_hcd
usb 1-1: reset full-speed USB device number 2 using uhci_hcd
usb 1-1: reset full-speed USB device number 2 using uhci_hcd
usb 1-1: reset full-speed USB device number 2 using uhci_hcd

Add US_FL_BULK_IGNORE_TAG to fix it. Also update my e-mail address.

2.6c is the only firmware that claims Linux compatibility.
The firmware can be upgraded using ezotgdbg utility:
https://github.com/asciilifeform/ezotgdbg

Signed-off-by: Ondrej Zary <[email protected]>
---
drivers/usb/storage/unusual_devs.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index efa972be2ee3..c6b3fcf90180 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -416,9 +416,16 @@ UNUSUAL_DEV( 0x04cb, 0x0100, 0x0000, 0x2210,
USB_SC_UFI, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY | US_FL_SINGLE_LUN),

/*
- * Reported by Ondrej Zary <[email protected]>
+ * Reported by Ondrej Zary <[email protected]>
* The device reports one sector more and breaks when that sector is accessed
+ * Firmwares older than 2.6c (the latest one and the only that claims Linux
+ * support) have also broken tag handling
*/
+UNUSUAL_DEV( 0x04ce, 0x0002, 0x0000, 0x026b,
+ "ScanLogic",
+ "SL11R-IDE",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_FIX_CAPACITY | US_FL_BULK_IGNORE_TAG),
UNUSUAL_DEV( 0x04ce, 0x0002, 0x026c, 0x026c,
"ScanLogic",
"SL11R-IDE",
--
Ondrej Zary


2021-09-14 14:25:27

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH] usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c

On Mon, Sep 13, 2021 at 11:01:06PM +0200, Ondrej Zary wrote:
> ScanLogic SL11R-IDE with firmware older than 2.6c (the latest one) has
> broken tag handling, preventing the device from working at all:
> usb 1-1: new full-speed USB device number 2 using uhci_hcd
> usb 1-1: New USB device found, idVendor=04ce, idProduct=0002, bcdDevice= 2.60
> usb 1-1: New USB device strings: Mfr=1, Product=1, SerialNumber=0
> usb 1-1: Product: USB Device
> usb 1-1: Manufacturer: USB Device
> usb-storage 1-1:1.0: USB Mass Storage device detected
> scsi host2: usb-storage 1-1:1.0
> usbcore: registered new interface driver usb-storage
> usb 1-1: reset full-speed USB device number 2 using uhci_hcd
> usb 1-1: reset full-speed USB device number 2 using uhci_hcd
> usb 1-1: reset full-speed USB device number 2 using uhci_hcd
> usb 1-1: reset full-speed USB device number 2 using uhci_hcd
>
> Add US_FL_BULK_IGNORE_TAG to fix it. Also update my e-mail address.
>
> 2.6c is the only firmware that claims Linux compatibility.
> The firmware can be upgraded using ezotgdbg utility:
> https://github.com/asciilifeform/ezotgdbg
>
> Signed-off-by: Ondrej Zary <[email protected]>
> ---

Acked-by: Alan Stern <[email protected]>

> drivers/usb/storage/unusual_devs.h | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
> index efa972be2ee3..c6b3fcf90180 100644
> --- a/drivers/usb/storage/unusual_devs.h
> +++ b/drivers/usb/storage/unusual_devs.h
> @@ -416,9 +416,16 @@ UNUSUAL_DEV( 0x04cb, 0x0100, 0x0000, 0x2210,
> USB_SC_UFI, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY | US_FL_SINGLE_LUN),
>
> /*
> - * Reported by Ondrej Zary <[email protected]>
> + * Reported by Ondrej Zary <[email protected]>
> * The device reports one sector more and breaks when that sector is accessed
> + * Firmwares older than 2.6c (the latest one and the only that claims Linux
> + * support) have also broken tag handling
> */
> +UNUSUAL_DEV( 0x04ce, 0x0002, 0x0000, 0x026b,
> + "ScanLogic",
> + "SL11R-IDE",
> + USB_SC_DEVICE, USB_PR_DEVICE, NULL,
> + US_FL_FIX_CAPACITY | US_FL_BULK_IGNORE_TAG),
> UNUSUAL_DEV( 0x04ce, 0x0002, 0x026c, 0x026c,
> "ScanLogic",
> "SL11R-IDE",

Too bad the manufacturer didn't understand that 0x026c is not a valid
bcdDevice value...