ChangeSet 1.1608.24.31, 2004/03/01 15:58:31-08:00, [EMAIL PROTECTED]
[PATCH] USB Storage: Revision of as202, Genesys quirk patch
In the slave_configure routine it's already too late for the host's
max_sector value to affect the scsi_device. It's necessary to set the
queue value directly. This revised patch takes care of that.
drivers/usb/storage/scsiglue.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletion(-)
diff -Nru a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c
--- a/drivers/usb/storage/scsiglue.c Tue Mar 16 15:04:59 2004
+++ b/drivers/usb/storage/scsiglue.c Tue Mar 16 15:04:59 2004
@@ -64,8 +64,10 @@
return "SCSI emulation for USB Mass Storage devices";
}
-static int slave_configure (struct scsi_device *sdev)
+static int slave_configure(struct scsi_device *sdev)
{
+ struct us_data *us = (struct us_data *) sdev->host->hostdata[0];
+
/* Scatter-gather buffers (all but the last) must have a length
* divisible by the bulk maxpacket size. Otherwise a data packet
* would end up being short, causing a premature end to the data
@@ -75,6 +77,16 @@
* have the desired effect because, except at the beginning and
* the end, scatter-gather buffers follow page boundaries. */
blk_queue_dma_alignment(sdev->request_queue, (512 - 1));
+
+ /* Devices using Genesys Logic chips cause a lot of trouble for
+ * high-speed transfers; they die unpredictably when given more
+ * than 64 KB of data at a time. If we detect such a device,
+ * 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)
+ blk_queue_max_sectors(sdev->request_queue, 128);
/* this is to satisify the compiler, tho I don't think the
* return code is ever checked anywhere. */
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel