Subject: kern/19499: SIIG based USB multi card reader doesn't work. (needs umass-quirk)
To: None <gnats-bugs@gnats.netbsd.org>
From: None <werner@bit-1.de>
List: netbsd-bugs
Date: 12/22/2002 15:07:57
>Number:         19499
>Category:       kern
>Synopsis:       SIIG based USB multi card reader doesn't work. (needs umass-quirk)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Dec 22 15:09:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Werner Backes
>Release:        -current
>Organization:
>Environment:
NetBSD firebird 1.6K NetBSD 1.6K (FIREBIRD) #25: Mon Dec 23 00:34:21 CET 2002
root@firebird:/usr/src/sys/arch/i386/compile/FIREBIRD i386
>Description:
USB Multi Card Readers based on SIIG chip doesn't work.

usbdev -v reports this device as:

  port 1 addr 2: full speed, power 100 mA, config 1, SPRING-Rev1.0(0x0201), ----- Ltd.(0x07cc), rev 0.12

dmesg says:

umass0 at uhub0 port 1 configuration 1 interface 0
umass0: ----- Ltd. SPRING-Rev1.0, rev 1.10/0.12, addr 2
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 2 luns per target
uhub0: port error, restarting port 2
uhub0: port error, giving up port 2
scsibus0: waiting 2 seconds for devices to settle...
sd0 at scsibus0 target 1 lun 0: <SPRING, MultiCard Slot A, 0100> disk removable
sd0: 62720 KB, 678400 cyl, 4 head, 0 sec, 512 bytes/sect x 125440 sectors
sd0(umass0:0:1:0):  Check Condition on CDB: 0x28 00 00 00 00 00 00 00 01 00
    SENSE KEY:  Not Ready
     ASC/ASCQ:  Medium Not Present

sd0: dos partition I/O error
findroot: can't open dev sd0a (6)

This is with a 64MB CompactFlash card inserted. 
>How-To-Repeat:
Plug the device into the USB port and try to access (mount, fdisk,
disklabel) it. This fails with "Not Ready" and "Medium Not Present"
messages as shown in dmesg above.
>Fix:
add to sys/dev/usb/usbdevs:

+ product SIIG MULTICARDREADER    0x0201 MULTICARDREADER

add to sys/dev/usb/umass_quirks.c:

+        { { USB_VENDOR_SIIG, USB_PRODUCT_SIIG_MULTICARDREADER }, 
+          UMASS_WPROTO_UNSPEC, UMASS_CPROTO_UNSPEC,
+          UMASS_QUIRK_NO_START_STOP,
+          0,
+          UMATCH_VENDOR_PRODUCT,
+          NULL,NULL
+        }, 

I'm not shure if "UMATCH_VENDOR_PRODUCT" is correct here because
I don't understand fully what this parameter means but it works
for me.


>Release-Note:
>Audit-Trail:
>Unformatted: