On Wed, 8 Sep 2004, Guido Trotter wrote:
> This is what /proc/bus/usb/devices on 2.6.7 says. If you need the 2.6.8.1 output
> too please ask and I'll boot it and read it (for now I'm stick with 2.6.7 as my
> default kernel, since my usb key is very important for me!).
>
> T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
> D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
> P: Vendor=0ea0 ProdID=6828 Rev= 1.10
> S: Manufacturer=USB
> S: Product=Flash Disk
> S: SerialNumber=39621ED83F18F609
> C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
> I: If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
> E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=83(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
Okay. Yes, your device is among those included in the patch. I'll
include the patch below so you can apply it directly.
Alan Stern
===== drivers/usb/storage/transport.c 1.145 vs edited =====
--- 1.145/drivers/usb/storage/transport.c Tue Aug 3 10:17:59 2004
+++ edited/drivers/usb/storage/transport.c Tue Aug 24 12:05:30 2004
@@ -1054,8 +1054,13 @@
/* 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 (residue) {
+ if (!(us->flags & US_FL_IGNORE_RESIDUE) ||
+ srb->sc_data_direction == DMA_TO_DEVICE) {
+ 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) {
===== drivers/usb/storage/unusual_devs.h 1.144 vs edited =====
--- 1.144/drivers/usb/storage/unusual_devs.h Fri Aug 6 03:59:29 2004
+++ edited/drivers/usb/storage/unusual_devs.h Tue Aug 24 11:59:50 2004
@@ -265,6 +265,13 @@
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 ),
+
/* This entry is needed because the device reports Sub=ff */
UNUSUAL_DEV( 0x054c, 0x0010, 0x0106, 0x0450,
"Sony",
@@ -801,7 +808,14 @@
"Solid state disk",
US_SC_DEVICE, US_PR_DEVICE, NULL,
US_FL_FIX_INQUIRY ),
-
+
+/* Reported by Rastislav Stanik <[EMAIL PROTECTED]> */
+UNUSUAL_DEV( 0x0ea0, 0x6828, 0x0110, 0x0110,
+ "USB",
+ "Flash Disk",
+ US_SC_DEVICE, US_PR_DEVICE, NULL,
+ US_FL_IGNORE_RESIDUE ),
+
/* Reported by Kevin Cernekee <[EMAIL PROTECTED]>
* Tested on hardware version 1.10.
* Entry is needed only for the initializer function override.
@@ -822,6 +836,13 @@
"EasyDisk Portable Device",
US_SC_DEVICE, US_PR_DEVICE, NULL,
US_FL_MODE_XLATE ),
+
+/* Reported by Kotrla Vitezslav <[EMAIL PROTECTED]> */
+UNUSUAL_DEV( 0x1370, 0x6828, 0x0110, 0x0110,
+ "SWISSBIT",
+ "Black Silver",
+ US_SC_DEVICE, US_PR_DEVICE, NULL,
+ US_FL_IGNORE_RESIDUE ),
#ifdef CONFIG_USB_STORAGE_SDDR55
UNUSUAL_DEV( 0x55aa, 0xa103, 0x0000, 0x9999,
===== drivers/usb/storage/usb.h 1.60 vs edited =====
--- 1.60/drivers/usb/storage/usb.h Tue Jul 20 19:30:35 2004
+++ edited/drivers/usb/storage/usb.h Tue Aug 24 11:59:50 2004
@@ -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 */
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users