diff options
author | msmith <msmith@FreeBSD.org> | 2001-12-09 06:02:46 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 2001-12-09 06:02:46 +0000 |
commit | 1c02062f9f182c9815e3025514e0c3baf8c0114c (patch) | |
tree | 2294750a2feea141aaf9c5f6d8c881316fb4923d /sys | |
parent | 6fe4980d4399bb62f3fa11609d93e5bf547d8f11 (diff) | |
download | FreeBSD-src-1c02062f9f182c9815e3025514e0c3baf8c0114c.zip FreeBSD-src-1c02062f9f182c9815e3025514e0c3baf8c0114c.tar.gz |
The ScanLogic SL11R-IDE claims to be SCSI-compatible, but actually requires
the UFI command set. Even with this patch, it's incredibly slow on my
laptop, but at least now it works.
Note that the drive is reported to CAM with the vendor and device IDs from
the device itself, forcing the user to patch the da(4) quirk table
manually.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/usb/umass.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/dev/usb/umass.c b/sys/dev/usb/umass.c index bd3aaa1..185387c 100644 --- a/sys/dev/usb/umass.c +++ b/sys/dev/usb/umass.c @@ -685,7 +685,7 @@ umass_match_proto(struct umass_softc *sc, usbd_interface_handle iface, */ sc->quirks |= WRONG_CSWSIG; } - + switch (id->bInterfaceSubClass) { case USUBCLASS_SCSI: sc->proto |= PROTO_SCSI; @@ -736,6 +736,16 @@ umass_match_proto(struct umass_softc *sc, usbd_interface_handle iface, return(UMATCH_NONE); } + if (UGETW(dd->idVendor) == USB_VENDOR_SCANLOGIC + && UGETW(dd->idProduct) == 0x0002) { + /* ScanLogic SL11R IDE adapter claims to support + * SCSI, but really needs UFI. + * Note also that these devices need firmware > 0.71 + */ + sc->proto &= ~PROTO_SCSI; + sc->proto |= PROTO_UFI; + } + return(UMATCH_DEVCLASS_DEVSUBCLASS_DEVPROTO); } |