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> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
alauda.c | ||
alauda.h | ||
datafab.c | ||
datafab.h | ||
debug.c | ||
debug.h | ||
dpcm.c | ||
dpcm.h | ||
freecom.c | ||
freecom.h | ||
initializers.c | ||
initializers.h | ||
isd200.c | ||
isd200.h | ||
jumpshot.c | ||
jumpshot.h | ||
karma.c | ||
karma.h | ||
libusual.c | ||
onetouch.c | ||
onetouch.h | ||
protocol.c | ||
protocol.h | ||
scsiglue.c | ||
scsiglue.h | ||
sddr09.c | ||
sddr09.h | ||
sddr55.c | ||
sddr55.h | ||
shuttle_usbat.c | ||
shuttle_usbat.h | ||
transport.c | ||
transport.h | ||
unusual_devs.h | ||
usb.c | ||
usb.h |