MOTOROKR Z6 cell phone has several bugs somewhere in its USB stack (thanks to Motorola engineers!). See discussion at http://firstname.lastname@example.org/msg19167.html and workaround instructions at https://opensource.motorola.com/sf/discussion/do/listPosts/projects.rokrz6/discussion.general_comments.topc1682
This patch introduces one more type of bug (tag mismatch) in linux/usb_usual.h with corresponding modification of drivers/usb/storage/transport.c. Also it adds record for MOTOROKR Z6 into unusual_devs.h.
Steps to Reproduce:
1. Set phone's USB into "Memory Card" mode.
2. Connect phone to computer.
Without patch: USB device is recognized but SCSI emulation is not enabled.
With patch: SCSI disk is emulated and works good for phone's microSD card only.
Two SCSI disks for microSD card and built-in memory shall be emulated without any kernel modifications.
Created attachment 145571 [details, diff]
The kernel patch itself
Please, review the following:
patch isn't upstream yet, haven't had time to read the whole discussion
Created attachment 145870 [details, diff]
Accepted in -mm tree.
Patch may be applied to 2.6.24. But it's incompatible with 2.6.23 from point of view of patch utility; slight modification is needed.
> With patch: SCSI disk is emulated and works good for phone's microSD card only.
This was my mistake. Both microSD card and internal memory are successfully accessed with the patch.
I applied this new patch (2.6.25-rc4-motorokr_z6.patch) to linux-2.6.24 and
tested it with my Z6 phone.
Two disks were detected: /dev/sdb and /dev/sdc (sda was already busy by my sata
hard disk) which are:
/dev/sdb - removable memory card
/dev/sdc - internal phone memory
Both disks works fine with great read/write speed. Thanks for patch!
patch was linebroken, sent a fixed version upstream and queued for next release
Fixed in gentoo-sources-2.6.24-r4 (genpatches-2.6.24-5)