Hi!

On Thu, Feb 20, 2003 at 10:30:37PM +0100, Oliver Graf wrote:
> The problem: a multi device usb card reader is correctly detected with
> its four subdevices with kernel 2.4.19(-acX). But any patch after this
> fails to detect the subdevices.
> 
> Verbose output with 2.4.19-ac4 shows:
> usb-storage: GetMaxLUN command result is 1, data is 3
> 
> 2.4.21-pre4 gives:
> usb-storage: GetMaxLUN command result is -32, data is 128
> usb-storage: clearing endpoint halt for pipe 0x80000880
> 
> I tried to find the parts that changed between the version, but it seems
> not to be rooted in usb-storage.
> 
> The call to usb_control_msg seems to timeout with the newer kernel
> (just a wild guess!).

It is a timeout:
usb-storage: New GUID 04831307fffe9ffffffffe97
usb-uhci.c: interrupt, status 2, frame# 1765
usb_control/bulk_msg: timeout
usb-storage: GetMaxLUN command result is -110, data is 128

> Finally I did a desparate modification: I return 3 from
> usb_stor_Bulk_max_lun just before the endpoint is cleared. This got my
> card reader up and running again, but it's very very dirty und certainly
> breaks other usb storage devices (I don't own).

A patch which defines a new unusual_dev is appended. But it's still
dirty, cause it sets max_lun to 3 for this device. It should be seen as
a workaround not as something that should go into the kernel.

If someone more elaborate needs more debug output to find the real
problem, feel free to contact me.

Regards,
  Oliver.

--- linux-2.4.21-pre4/drivers/usb/storage/transport.h.orig      2003-02-25 
07:49:43.000000000 +0100
+++ linux-2.4.21-pre4/drivers/usb/storage/transport.h   2003-02-26 09:04:34.000000000 
+0100
@@ -75,6 +75,8 @@
 #define US_PR_JUMPSHOT  0xf3            /* Lexar Jumpshot */
 #endif
 
+#define US_PR_TEV6IN1   0xf4
+
 /*
  * Bulk only data structures
  */
--- linux-2.4.21-pre4/drivers/usb/storage/unusual_devs.h.orig   2003-02-25 
07:51:12.000000000 +0100
+++ linux-2.4.21-pre4/drivers/usb/storage/unusual_devs.h        2003-02-26 
09:04:34.000000000 +0100
@@ -90,6 +90,12 @@
                "Nex II Digital",
                US_SC_SCSI, US_PR_BULK, NULL, US_FL_START_STOP),
 
+/* Hack for the Tevion Card Reader 6in1 by Oliver Graf <[EMAIL PROTECTED]> */
+UNUSUAL_DEV(  0x0483, 0x1307, 0x0000, 0x9999,
+               "Tevion",
+               "Card Reader 6in1",
+               US_SC_SCSI, US_PR_TEV6IN1, NULL, 0),
+
 /* Reported by Paul Stewart <[EMAIL PROTECTED]>
  * This entry is needed because the device reports Sub=ff */
 UNUSUAL_DEV(  0x04a4, 0x0004, 0x0001, 0x0001,
--- linux-2.4.21-pre4/drivers/usb/storage/usb.c.orig    2003-02-25 07:50:12.000000000 
+0100
+++ linux-2.4.21-pre4/drivers/usb/storage/usb.c 2003-02-26 09:04:33.000000000 +0100
@@ -849,6 +849,13 @@
                        ss->max_lun = usb_stor_Bulk_max_lun(ss);
                        break;
 
+               case US_PR_TEV6IN1:
+                       ss->transport_name = "Bulk";
+                       ss->transport = usb_stor_Bulk_transport;
+                       ss->transport_reset = usb_stor_Bulk_reset;
+                       ss->max_lun = 3;
+                       break;
+
 #ifdef CONFIG_USB_STORAGE_HP8200e
                case US_PR_SCM_ATAPI:
                        ss->transport_name = "SCM/ATAPI";

Reply via email to