diff options
author | Massimiliano Ghilardi <massimiliano.ghilardi@gmail.com> | 2007-09-04 16:53:43 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-09-11 10:48:16 -0400 |
commit | c4766560e4d3e2a9c10d69d7d618dc2b0082a3dc (patch) | |
tree | 009743518dc19edcd5c85e614af9bb1d5f6b2a0d /drivers/usb | |
parent | 9374b9fd6cef7f8b75a543d044c5b0925aae08cd (diff) |
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>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/storage/unusual_devs.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h index da52d1077473..c6b78ba815ea 100644 --- a/drivers/usb/storage/unusual_devs.h +++ b/drivers/usb/storage/unusual_devs.h | |||
@@ -904,6 +904,22 @@ UNUSUAL_DEV( 0x069b, 0x3004, 0x0001, 0x0001, | |||
904 | US_SC_DEVICE, US_PR_DEVICE, NULL, | 904 | US_SC_DEVICE, US_PR_DEVICE, NULL, |
905 | US_FL_FIX_CAPACITY ), | 905 | US_FL_FIX_CAPACITY ), |
906 | 906 | ||
907 | /* Reported by Massimiliano Ghilardi <massimiliano.ghilardi@gmail.com> | ||
908 | * This USB MP3/AVI player device fails and disconnects if more than 128 | ||
909 | * sectors (64kB) are read/written in a single command, and may be present | ||
910 | * at least in the following products: | ||
911 | * "Magnex Digital Video Panel DVP 1800" | ||
912 | * "MP4 AIGO 4GB SLOT SD" | ||
913 | * "Teclast TL-C260 MP3" | ||
914 | * "i.Meizu PMP MP3/MP4" | ||
915 | * "Speed MV8 MP4 Audio Player" | ||
916 | */ | ||
917 | UNUSUAL_DEV( 0x071b, 0x3203, 0x0100, 0x0100, | ||
918 | "RockChip", | ||
919 | "ROCK MP3", | ||
920 | US_SC_DEVICE, US_PR_DEVICE, NULL, | ||
921 | US_FL_MAX_SECTORS_64), | ||
922 | |||
907 | /* Reported by Olivier Blondeau <zeitoun@gmail.com> */ | 923 | /* Reported by Olivier Blondeau <zeitoun@gmail.com> */ |
908 | UNUSUAL_DEV( 0x0727, 0x0306, 0x0100, 0x0100, | 924 | UNUSUAL_DEV( 0x0727, 0x0306, 0x0100, 0x0100, |
909 | "ATMEL", | 925 | "ATMEL", |