Re: [PATCH] pl2303, visor: Match I330 phone more precisely

Sergei Shtylyov
2015-04-22T10:29:02Z

Hello.

On 4/22/2015 1:14 PM, Jason A. Donenfeld wrote:

> Samsung has just released a portable USB3 SSD, coming in a very small
> and nice form factor. It's USB ID is 04e8:8001, which unfortunately is
> already used by the pl2303 USB serial driver and the Palm Visor driver
> for the Samsung I330 phone cradle. Having pl2303 or visor pick up this
> device ID results in conflicts with the usb-storage driver, which
> handles the newly released portable USB3 SSD.

> To work around this conflict, I've dug up a mailing list post [1] from a
> long time ago, in which a user posts the full USB descriptor
> information. The most specific value in this appears to be the interface
> class, which has value 255 (0xff). Since usb-storage requires an
> interface class of 0x8, I believe it's correct to disambiguate the two
> devices by matching on 0xff inside pl2303 and visor.

> [1] http://permalink.gmane.org/gmane.linux.usb.user/4264

> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
[...]
> diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
> index 71fd9da..9c29fe8 100644
> --- a/drivers/usb/serial/pl2303.h
> +++ b/drivers/usb/serial/pl2303.h
> @@ -65,6 +65,7 @@
> /* Samsung I330 phone cradle */
> #define SAMSUNG_VENDOR_ID 0x04e8
> #define SAMSUNG_PRODUCT_ID 0x8001
> +#define SAMSUNG_IF_CLASS 0xff

No need for this #define, especially here. 0xff just means vendor-specific
AFAIK.

>
> #define SIEMENS_VENDOR_ID 0x11f5
> #define SIEMENS_PRODUCT_ID_SX1 0x0001
[...]
> diff --git a/drivers/usb/serial/visor.h b/drivers/usb/serial/visor.h
> index 4c456dd..ffe93a2 100644
> --- a/drivers/usb/serial/visor.h
> +++ b/drivers/usb/serial/visor.h
> @@ -54,6 +54,7 @@
>
> #define SAMSUNG_VENDOR_ID 0x04E8
> #define SAMSUNG_SCH_I330_ID 0x8001
> +#define SAMSUNG_SCH_I330_IFCLASS 0xFF

No need for this #define, especially here. 0xff just means vendor-specific
AFAIK.

> #define SAMSUNG_SPH_I500_ID 0x6601
>
> #define TAPWAVE_VENDOR_ID 0x12EF

WBR, Sergei