USB Mass Storage: limit "Rockchip ROCK MP3" device (071b:3203) max I/O to 64 sectors...
authorMassimiliano Ghilardi <massimiliano.ghilardi@gmail.com>
Tue, 4 Sep 2007 20:53:43 +0000 (22:53 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 11 Sep 2007 14:48:16 +0000 (07:48 -0700)
commitc4766560e4d3e2a9c10d69d7d618dc2b0082a3dc
tree009743518dc19edcd5c85e614af9bb1d5f6b2a0d
parent9374b9fd6cef7f8b75a543d044c5b0925aae08cd
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>
drivers/usb/storage/unusual_devs.h