On Tuesday, October 19, 2021 at 12:18 PM "Greg KH" <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > On Tue, Oct 19, 2021 at 12:15:09PM +0200, mark_k@xxxxxxxxx wrote: > > I have a Core Micro Systems USB2 Link USB-SCSI converter (07B4:0380). > > > > Adding an entry to unusual_devs.h should get it to work, just needing > > USB_PR_BULK. That should at least allow the connected device with SCSI ID 0 > > to be accessed. > > Why do you need any quirk at all for this? My mistake, sorry. Its interface descriptor has bInterfaceClass 0xFF bInterfaceSubClass 0x06 bInterfaceProtocol 0x50 so an entry with USB_SC_DEVICE, USB_PR_DEVICE would work. > > I'm just wondering, how does the usb-storage driver handle these cases: > > > > - (What it thinks are) LUNs are not contiguous. Suppose the user has two > > SCSI devices in the chain, one with ID 0 the other with ID 3. Would it > > scan LUNs (which map to separate targets) 1, 2, 4, 5 and 6? Or would it > > give up on getting no response from LUN 1? > > > > - "LUN" 0 is not present. E.g. where the connected SCSI devices have IDs 1 > > and 3. > > > > - When different "LUNs" are completely different devices (e.g. one a > > CD-ROM, another a hard disk, another a tape drive). > > > > That should all be up to the scsi layer in the kernel. If this device > is not following the standard, how is it supposed to work at all? > > Does it require custom drivers for other operating systems? My guess is that (with quirk entry) it will work when there is a SCSI device with ID 0. If all other devices in the chain have contiguous IDs they could be accessible too. I can tell Windows to use its built-in mass storage driver and that works to access the device with ID 0 only. I haven't yet checked with more than one SCSI device in the chain. It could/should be possible to properly support multiple targets and LUNs by using a similar method to the SCM USB-SCSI converters. (Those, after a special intitialisation request, take the target ID from the *upper* 4 bits of CBW byte 13.) But I figure an initial patch to add a quirk entry will be much easier. And in practice would be enough for most use cases.