On Mon, 17 May 2004 [EMAIL PROTECTED] wrote: > Thank you for your response. Do you have the same usb-pen device > (Ritek)? As I post in http://qa.mandrakesoft.com/show_bug.cgi?id=9716 I > have two different usb-pen devices but I only have problems with one of > them (the Ritek one), and only with kernel >= 2.6.5. I am usually > running kernel 2.6.3 and this usb device works. I tested it with kernel > 2.6.4 and it works too. It seems to be that something is changed after > kernel 2.6.5 and this device seems to block something in the usb > subsystem (after plugging the drive, if I type 'cat > /proc/bus/usb/devices', the command hangs). > I applied your patch to drivers/scsi/sd.c and drivers/scsi/scsi_scan.c, > recompiled and installed the kernel. After rebooting, I plugged the > device. Please find attached the new report. I hope it will help, but > anyway, please let me know if I can do something to help solving this > problem. Thank you. > > Oscar.
The log you sent helped, and I think I've found the reason this is happening. There's a built-in SCSI blacklist entry for vendor="Generic" that is overriding the settings you need. Here's a different patch for you to try instead of the other one. I think this will prevent things from going wrong. Matt, this is as226d, an update to a patch I sent out earlier. This also includes the Genesys max_sector change. Alan Stern ===== drivers/usb/storage/scsiglue.c 1.74 vs edited ===== --- 1.74/drivers/usb/storage/scsiglue.c Sat Apr 24 22:25:50 2004 +++ edited/drivers/usb/storage/scsiglue.c Mon May 17 16:21:56 2004 @@ -48,6 +48,7 @@ #include "usb.h" #include "debug.h" #include "transport.h" +#include "protocol.h" #include <linux/slab.h> #include <linux/module.h> @@ -70,8 +71,28 @@ * Set default bflags. These can be overridden for individual * models and vendors via the scsi devinfo mechanism. */ - sdev->sdev_bflags = (BLIST_MS_SKIP_PAGE_08 | BLIST_MS_SKIP_PAGE_3F | - BLIST_USE_10_BYTE_MS); + + /* By default, USB mass storage devices use MODE SENSE(10). + * By default, use 192 byte transfers for MODE SENSE with page=x3f. + * We don't know how reliable MODE SENSE page x08 is, so for + * now skip it by default. + * Don't try to use more than 36 bytes for INQUIRY. */ + sdev->sdev_bflags = (BLIST_USE_10_BYTE_MS | + BLIST_MS_192_BYTES_FOR_3F | + BLIST_MS_SKIP_PAGE_08 | + BLIST_INQUIRY_36); + + /* Maybe add an unusual_devs flag for BLIST_MS_SKIP_PAGE_3F if + * too many devices fail to support it. */ + + /* We don't want these entries to be overridden by scsi devinfo + * entries, so we'll set them again in a more secure form. (This + * makes most of the entries above unnecessary.) Some of these + * may be changed in slave_configure() below. */ + sdev->use_10_for_ms = 1; + sdev->use_192_bytes_for_3f = 1; + sdev->skip_ms_page_8 = 1; + return 0; } @@ -95,11 +116,30 @@ * reduce the maximum transfer size to 64 KB = 128 sectors. */ #define USB_VENDOR_ID_GENESYS 0x05e3 // Needs a standard location + if (us->pusb_dev->descriptor.idVendor == USB_VENDOR_ID_GENESYS && - us->pusb_dev->speed == USB_SPEED_HIGH) + us->pusb_dev->speed == USB_SPEED_HIGH && + sdev->request_queue->max_sectors > 128) blk_queue_max_sectors(sdev->request_queue, 128); - /* this is to satisify the compiler, tho I don't think the + /* 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. */ + if (sdev->type == TYPE_DISK) { + + /* Disk-type devices use MODE SENSE(6) if the protocol + * (SubClass) is Transparent SCSI */ + if (us->subclass == US_SC_SCSI) + sdev->use_10_for_ms = 0; + } else { + + /* Non-disk-type devices don't need to blacklist page x08 + * or to force 192 byte transfer lengths for MODE SENSE. */ + sdev->skip_ms_page_8 = 0; + sdev->use_192_bytes_for_3f = 0; + } + + /* this is to satisfy the compiler, tho I don't think the * return code is ever checked anywhere. */ return 0; } ------------------------------------------------------- This SF.Net email is sponsored by: SourceForge.net Broadband Sign-up now for SourceForge Broadband and get the fastest 6.0/768 connection for only $19.95/mo for the first 3 months! http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-users