linux/drivers/usb/storage
Massimiliano Ghilardi c4766560e4 USB Mass Storage: limit "Rockchip ROCK MP3" device (071b:3203) max I/O to 64 sectors per command
The MP3/MP4/AVI player "Rockchip ROCK MP3" is seen as a USB disk, but fails
if more than 128 sectors (64kB) are sent or requested in a single read or write
command, and disconnects from the USB bus.

Typical kernel log showing the problem is:

usb 3-1: reset high speed USB device using ehci_hcd and address 6
usb 3-1: reset high speed USB device using ehci_hcd and address 6
sd 14:0:0:0: [sdb] Result: hostbyte=0x07 driverbyte=0x00
end_request: I/O error, dev sdb, sector 32
sd 14:0:0:0: [sdb] Result: hostbyte=0x07 driverbyte=0x00
end_request: I/O error, dev sdb, sector 32
usb 3-1: USB disconnect, address 6

This patch works around the device limitation by adding "Rockchip ROCK MP3"
to unusual USB devices list and limiting data transfers to 64 sectors (32kB)
per command.
Tested on 2.6.23-rc5 (amd64).

Signed-off-by: Massimiliano Ghilardi <massimiliano.ghilardi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-09-11 07:48:16 -07:00
..
alauda.c [PATCH] USB Storage: add alauda support 2006-01-04 13:51:42 -08:00
alauda.h [PATCH] USB Storage: add alauda support 2006-01-04 13:51:42 -08:00
datafab.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
datafab.h
debug.c [PATCH] USB: usb-storage: add debug entry for REPORT LUNS 2006-01-04 13:51:42 -08:00
debug.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
dpcm.c USB: drivers/usb/storage/dpcm.c whitespace cleanup 2007-07-19 17:46:08 -07:00
dpcm.h
freecom.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
freecom.h
initializers.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
initializers.h USB Storage: add rio karma eject support 2006-09-27 11:58:54 -07:00
isd200.c [PATCH] USB: kzalloc() conversion for rest of drivers/usb 2006-03-20 14:49:59 -08:00
isd200.h
jumpshot.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
jumpshot.h
karma.c USB Storage: add rio karma eject support 2006-09-27 11:58:54 -07:00
karma.h USB Storage: add rio karma eject support 2006-09-27 11:58:54 -07:00
Kconfig Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
libusual.c libusual: change block scope variable to function scope 2007-04-27 13:28:34 -07:00
Makefile USB Storage: add rio karma eject support 2006-09-27 11:58:54 -07:00
onetouch.c USB: storage: onetouch: clean up urb->status usage 2007-07-19 17:46:06 -07:00
onetouch.h
protocol.c
protocol.h [PATCH] USB: drivers/usb/storage/libusual 2006-01-04 13:48:31 -08:00
scsiglue.c usb-storage: implement autosuspend 2007-07-12 16:34:43 -07:00
scsiglue.h
sddr09.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sddr09.h [PATCH] USB Storage: cleanups of sddr09 2006-01-04 13:51:41 -08:00
sddr55.c [PATCH] USB: kzalloc for storage 2006-03-20 14:49:52 -08:00
sddr55.h
shuttle_usbat.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
shuttle_usbat.h [PATCH] USB: shuttle_usbat: Hardcode detection of HP CDRW devices 2006-06-21 15:04:10 -07:00
transport.c [PATCH] slab: remove SLAB_NOIO 2006-12-07 08:39:23 -08:00
transport.h [PATCH] USB: drivers/usb/storage/libusual 2006-01-04 13:48:31 -08:00
unusual_devs.h USB Mass Storage: limit "Rockchip ROCK MP3" device (071b:3203) max I/O to 64 sectors per command 2007-09-11 07:48:16 -07:00
usb.c usb-storage: fix bugs in the disconnect pathway 2007-08-22 14:27:52 -07:00
usb.h usb-storage: fix bugs in the disconnect pathway 2007-08-22 14:27:52 -07:00