On Thu, Oct 21, 2004 at 10:57:27AM +0200, Gerald Holl wrote: > Joerg Rieger wrote: > > Schick mir doch mal deinen output von "cat /proc/bus/usb/devices" > > mit eingestecktem Stick. > [...]
Danke. Wende mal anhängenden Patch auf den Source ohne den anderen Patch an (der ist in diesem diff enthalten). --
diff -ur /home/joerg/develop/linux-2.6.9_org/drivers/usb/storage/transport.c linux-2.6.9_rijo/drivers/usb/storage/transport.c --- /home/joerg/develop/linux-2.6.9_org/drivers/usb/storage/transport.c 2004-10-18 23:53:51.000000000 +0200 +++ linux-2.6.9_rijo/drivers/usb/storage/transport.c 2004-10-21 11:05:11.000000000 +0200 @@ -1055,8 +1055,10 @@ /* try to compute the actual residue, based on how much data * was really transferred and what the device tells us */ - residue = min(residue, transfer_length); - srb->resid = max(srb->resid, (int) residue); + if (!(us->flags & US_FL_IGNORE_RESIDUE)) { + residue = min(residue, transfer_length); + srb->resid = max(srb->resid, (int) residue); + } /* based on the status code, we report good or bad */ switch (bcs->Status) { Only in linux-2.6.9_rijo/drivers/usb/storage/: transport.c.orig diff -ur /home/joerg/develop/linux-2.6.9_org/drivers/usb/storage/unusual_devs.h linux-2.6.9_rijo/drivers/usb/storage/unusual_devs.h --- /home/joerg/develop/linux-2.6.9_org/drivers/usb/storage/unusual_devs.h 2004-10-18 23:54:55.000000000 +0200 +++ linux-2.6.9_rijo/drivers/usb/storage/unusual_devs.h 2004-10-21 11:08:49.000000000 +0200 @@ -265,6 +265,20 @@ US_SC_8070, US_PR_BULK, NULL, US_FL_FIX_INQUIRY ), +/* Reported by Iacopo Spalletti <[EMAIL PROTECTED]> */ +UNUSUAL_DEV( 0x052b, 0x1807, 0x0100, 0x0100, + "Tekom Technologies, Inc", + "300_CAMERA", + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_IGNORE_RESIDUE ), + +/* Reported by Gerald Holl <[EMAIL PROTECTED]> */ +UNUSUAL_DEV( 0x0ea0, 0x6828, 0x0100, 0x0100, + "OTi", + "UStorage Flash Disk", + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_IGNORE_RESIDUE ), + /* This entry is needed because the device reports Sub=ff */ UNUSUAL_DEV( 0x054c, 0x0010, 0x0106, 0x0450, "Sony", diff -ur /home/joerg/develop/linux-2.6.9_org/drivers/usb/storage/usb.h linux-2.6.9_rijo/drivers/usb/storage/usb.h --- /home/joerg/develop/linux-2.6.9_org/drivers/usb/storage/usb.h 2004-10-18 23:54:37.000000000 +0200 +++ linux-2.6.9_rijo/drivers/usb/storage/usb.h 2004-10-21 11:05:11.000000000 +0200 @@ -73,6 +73,7 @@ #define US_FL_SCM_MULT_TARG 0x00000020 /* supports multiple targets */ #define US_FL_FIX_INQUIRY 0x00000040 /* INQUIRY response needs faking */ #define US_FL_FIX_CAPACITY 0x00000080 /* READ CAPACITY response too big */ +#define US_FL_IGNORE_RESIDUE 0x00000100 /* reported residue is wrong */ /* Dynamic flag definitions: used in set_bit() etc. */ #define US_FLIDX_URB_ACTIVE 18 /* 0x00040000 current_urb is in use */