am7xxx-modeswitch: fix the Length field in the switch command
authorAntonio Ospite <ao2@ao2.it>
Fri, 26 Jun 2015 08:25:26 +0000 (10:25 +0200)
committerAntonio Ospite <ao2@ao2.it>
Fri, 26 Jun 2015 08:25:26 +0000 (10:25 +0200)
commit109d788a6a63bb604a2c72dd101bc9e58885b1f2
treedb348a24848c45d3b8a94fb9c9992bd90989c539
parent16c2c3c2f38338d5b3d71c6376bd16ae62b6e72e
am7xxx-modeswitch: fix the Length field in the switch command

The switch_command is a USB storage message, the bulk_cb_wrap structure
from include/linux/usb/storage.h in the Linux kernel shows the fields
meanings:

struct bulk_cb_wrap {
__le32 Signature; /* contains 'USBC' */
__u32 Tag; /* unique per command id */
__le32 DataTransferLength; /* size of data */
__u8 Flags; /* direction in bit 0 */
__u8 Lun; /* LUN normally 0 */
__u8 Length; /* length of the CDB */
__u8 CDB[16]; /* max command */
};

In switch_command the data in CDB is 16 bytes long (0x10), so using 0x0c
was wrong, it worked on some devices but it did not on others.

Use the correct value.

Thanks-to: Balasubramanian S <sbala214@gmail.com>
examples/am7xxx-modeswitch.c