On Friday 09 April 2010 02:14:56 Matthew Dharm wrote: > On Thu, Apr 08, 2010 at 11:39:41PM +0200, Ondrej Zary wrote: > > Hello, > > a phone identified as Sony Ericsson V800-Vodafone 802SE (0fce:d008) does > > not work with usb-storage (it has a memory stick inside). It's detected > > properly, kernel reads partition table but the sda device never appears > > in /dev. The kernel then resets the device each 30 seconds infinitely. > > > > There's an entry in unusual_devs.h with US_FL_NO_WP_DETECT. That's > > correct as removing it causes the device to fail completely (even > > partition table is not read). Adding more flags does not help. Also tried > > it with older kernels - no change with 2.6.26 or even 2.4.something > > (don't remember). > > Exactly what flag combinations did you try? > > Here's your problem: > > [ 487.116809] usb-storage: Command READ_10 (10 bytes) > > [ 487.116811] usb-storage: 28 00 00 1d 4f 80 00 00 08 00 > > [ 487.116820] usb-storage: Bulk Command S 0x43425355 T 0x13 L 4096 F 128 > > Trg 0 LUN 0 CL 12 [ 487.116823] usb-storage: usb_stor_bulk_transfer_buf: > > xfer 31 bytes [ 487.117742] usb-storage: Status code 0; transferred > > 31/31 > > [ 487.117745] usb-storage: -- transfer complete > > [ 487.117747] usb-storage: Bulk command transfer result=0 > > [ 487.117750] usb-storage: usb_stor_bulk_transfer_sglist: xfer 4096 > > bytes, 1 entries [ 518.000027] usb-storage: command_abort called > > [ 518.000033] usb-storage: usb_stor_stop_transport called > > [ 518.000035] usb-storage: -- cancelling sg request > > [ 518.002009] usb-storage: Status code -104; transferred 0/4096 > > [ 518.002013] usb-storage: -- transfer cancelled > > [ 518.002016] usb-storage: Bulk data transfer result 0x4 > > [ 518.002019] usb-storage: -- command was aborted > > [ 518.002025] usb-storage: usb_stor_pre_reset > > [ 518.112029] usb 3-2: reset full speed USB device using uhci_hcd and > > address 4 [ 518.264971] usb-storage: usb_stor_post_reset > > [ 518.264976] usb-storage: usb_reset_device returns 0 > > [ 518.264979] usb-storage: scsi command aborted > > [ 518.264983] usb-storage: *** thread sleeping. > > This is a request to read 8 sectors (4k of data) from a point which is > 128-sectors from the end of the device. The device never responds to the > command, and we go into error recovery. We recover, we retry, and we keep > getting the same response. > > This looks like a pretty broken device. Any idea what the real sector > count is? Maybe take a look at the partition data reported by Windows? Windows reports 1921024 sectors too. But the partition is only half the size. Accessing sectors 0 to 960511 works fine. Accessing sector 960512 and higher causes the device to fail. The memory stick is SanDisk Memory Stick Pro Duo 512MB. So the device reports doubled capacity. How to fix this? I don't see an easy way to add something like US_FL_DOUBLED_CAPACITY. Initializer functions does not seem to be able to modify capacity. -- Ondrej Zary -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html