Hello,

I have recently purchased a card-reader/floppy combo produced by Mitsumi, and found out that under Linux it exhibits the behaviour described at http://bugme.osdl.org/show_bug.cgi?id=3223. Accordingly, I wrote a new entry in the unusual_devs.h file and now the device is working flawlessly. The (really short) patch follows:

=====[usb-storage-patch]=====
--- drivers/usb/storage/unusual_devs.h.old      2005-07-19 18:36:17.000000000 
+0300
+++ drivers/usb/storage/unusual_devs.h  2005-07-19 19:27:49.000000000 +0300
@@ -79,6 +79,13 @@ UNUSUAL_DEV(  0x03f0, 0x0307, 0x0001, 0x
                US_SC_8070, US_PR_SCM_ATAPI, init_usbat, 0),
 #endif

+/* Patch submitted by Mihnea-Costin Grigore <[EMAIL PROTECTED]> */
+UNUSUAL_DEV(  0x040d, 0x6205, 0x0000, 0xFFFF,
+               "VIA Technologies Inc.",
+               "USB 2.0 Card Reader",
+               US_SC_DEVICE, US_PR_DEVICE, NULL,
+               US_FL_IGNORE_RESIDUE ),
+
 /* Deduced by Jonathan Woithe <[EMAIL PROTECTED]>
  * Entry needed for flags: US_FL_FIX_INQUIRY because initial inquiry message
  * always fails and confuses drive.
=====[end usb-storage-patch]=====

As you can see, I was unable to deduce the bcdDeviceMin/Max values so I entered the whole range there (previously tried with 0x0100 and 0x0001 like other entries in the file, but it didn't work). Maybe you can tell me where that value is found (and how to convert it to hex) from the following output (is it the bcdDevice 0.03 line?):

=====[lsusb -v]=====
Bus 005 Device 004: ID 040d:6205 VIA Technologies, Inc. Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x040d VIA Technologies, Inc.
  idProduct          0x6205
  bcdDevice            0.03
  iManufacturer           1 VIA Technologies Inc.
  iProduct                2 USB 2.0 Card Reader
  iSerial                 3 000000081640
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  bytes 512 once
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  bytes 512 once
        bInterval               1
=====[end lsusb -v]=====

=====[cat /proc/bus/usb/devices]=====
T:  Bus=05 Lev=01 Prnt=01 Port=06 Cnt=01 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=040d ProdID=6205 Rev= 0.03
S:  Manufacturer=VIA Technologies Inc.
S:  Product=USB 2.0 Card Reader
S:  SerialNumber=000000081640
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
=====[end cat /proc/bus/usb/devices]=====

=====[cat /proc/scsi/usb-storage/2]=====
   Host scsi2: usb-storage
       Vendor: VIA Technologies Inc.
      Product: USB 2.0 Card Reader
Serial Number: 000000081640
     Protocol: Transparent SCSI
    Transport: Bulk
       Quirks: IGNORE_RESIDUE
=====[cat /proc/scsi/usb-storage/2]=====

I should point out that the problem appeared only on the secondary card slot (enabled by echo "scsi add-single-device 2 0 0 1" > /proc/scsi/scsi), the first one was working perfectly without this patch. With the patch, both slots work -- it is even possible to transfer files between them...

Thanks for the great work,
Best regards,

--
Mihnea-Costin Grigore


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to