Okay,

 I have tried to make a new patch now.

 Changes :
        
 - New flag MAX_SECTORS_128 in include/linux/usb_usual.h
 - Sets max_sectors per request of queue to 128 sectors if
   flag is set in drivers/usb/storage/scsiglue.c
 - New device entry for unusual_dev.h with rev id 0x0103 instead of
   0x0000-0x9999 and with the new flag

 Benjamin


diff -urN linux-2.6.16/drivers/usb/storage/scsiglue.c 
linux-2.6.16patched/drivers/usb/storage/scsiglue.c
--- linux-2.6.16/drivers/usb/storage/scsiglue.c 2006-04-29 20:59:46.000000000 
+0200
+++ linux-2.6.16patched/drivers/usb/storage/scsiglue.c  2006-04-29 
20:01:36.000000000 +0200
@@ -122,6 +122,13 @@
                        sdev->request_queue->max_sectors > 64)
                blk_queue_max_sectors(sdev->request_queue, 64);
 
+       /* There are also other devices which have problems transferring 
+        * more than 64 KB at a time. You can add an unusual_dev entry 
+        * for those. */
+       if ((us->flags & US_FL_MAX_SECTORS_128) &&
+                       sdev->request_queue->max_sectors > 128)
+               blk_queue_max_sectors(sdev->request_queue, 128);
+
        /* We can't put these settings in slave_alloc() because that gets
         * called before the device type is known.  Consequently these
         * settings can't be overridden via the scsi devinfo mechanism. */
diff -urN linux-2.6.16/drivers/usb/storage/unusual_devs.h 
linux-2.6.16patched/drivers/usb/storage/unusual_devs.h
--- linux-2.6.16/drivers/usb/storage/unusual_devs.h     2006-04-29 
20:59:46.000000000 +0200
+++ linux-2.6.16patched/drivers/usb/storage/unusual_devs.h      2006-04-29 
19:43:10.000000000 +0200
@@ -1175,6 +1175,14 @@
                US_SC_DEVICE, US_PR_DEVICE, NULL,
                US_FL_IGNORE_RESIDUE ),
 
+/* Reported by Benjamin Schiller <[EMAIL PROTECTED]>
+ * It is also sold by Easylite as DJ 20 */
+UNUSUAL_DEV(  0x0ed1, 0x7636, 0x0103, 0x0103,
+               "Typhoon",
+               "My DJ 1820",
+               US_SC_DEVICE, US_PR_DEVICE, NULL,
+               US_FL_IGNORE_RESIDUE | US_FL_GO_SLOW | US_FL_MAX_SECTORS_128 ),
+
 /* Reported by Michael Stattmann <[EMAIL PROTECTED]> */
 UNUSUAL_DEV(  0x0fce, 0xd008, 0x0000, 0x0000,
                "Sony Ericsson",
diff -urN linux-2.6.16/include/linux/usb_usual.h 
linux-2.6.16patched/include/linux/usb_usual.h
--- linux-2.6.16/include/linux/usb_usual.h      2006-04-29 13:42:05.000000000 
+0200
+++ linux-2.6.16patched/include/linux/usb_usual.h       2006-04-29 
18:08:59.000000000 +0200
@@ -24,26 +24,28 @@
  * proc_info() routine can automatically display a message for each flag.
  */
 #define US_DO_ALL_FLAGS                                                \
-       US_FLAG(SINGLE_LUN,     0x00000001)                     \
+       US_FLAG(SINGLE_LUN,             0x00000001)             \
                /* allow access to only LUN 0 */                \
-       US_FLAG(NEED_OVERRIDE,  0x00000002)                     \
+       US_FLAG(NEED_OVERRIDE,          0x00000002)             \
                /* unusual_devs entry is necessary */           \
-       US_FLAG(SCM_MULT_TARG,  0x00000004)                     \
+       US_FLAG(SCM_MULT_TARG,          0x00000004)             \
                /* supports multiple targets */                 \
-       US_FLAG(FIX_INQUIRY,    0x00000008)                     \
+       US_FLAG(FIX_INQUIRY,            0x00000008)             \
                /* INQUIRY response needs faking */             \
-       US_FLAG(FIX_CAPACITY,   0x00000010)                     \
+       US_FLAG(FIX_CAPACITY,           0x00000010)             \
                /* READ CAPACITY response too big */            \
-       US_FLAG(IGNORE_RESIDUE, 0x00000020)                     \
+       US_FLAG(IGNORE_RESIDUE,         0x00000020)             \
                /* reported residue is wrong */                 \
-       US_FLAG(BULK32,         0x00000040)                     \
+       US_FLAG(BULK32,                 0x00000040)             \
                /* Uses 32-byte CBW length */                   \
-       US_FLAG(NOT_LOCKABLE,   0x00000080)                     \
+       US_FLAG(NOT_LOCKABLE,           0x00000080)             \
                /* PREVENT/ALLOW not supported */               \
-       US_FLAG(GO_SLOW,        0x00000100)                     \
+       US_FLAG(GO_SLOW,                0x00000100)             \
                /* Need delay after Command phase */            \
-       US_FLAG(NO_WP_DETECT,   0x00000200)                     \
+       US_FLAG(NO_WP_DETECT,           0x00000200)             \
                /* Don't check for write-protect */             \
+       US_FLAG(MAX_SECTORS_128,        0x00000400)             \
+               /* Sets max_sectors to 128    */                
 
 #define US_FLAG(name, value)   US_FL_##name = value ,
 enum { US_DO_ALL_FLAGS };



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
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