diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2015-04-22 08:35:09 -0400 |
---|---|---|
committer | Johan Hovold <johan@kernel.org> | 2015-04-29 06:36:52 -0400 |
commit | 82ee3aeb9295c5fc37fd2ddf20f13ac2b40ec97d (patch) | |
tree | 87ba0d02a79d1c4890ec036dfc56274c839fc43d /drivers/usb/serial | |
parent | 48ef23a4f686b1e4519d4193c20d26834ff810ff (diff) |
USB: visor: Match I330 phone more precisely
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 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 visor.
[1] http://permalink.gmane.org/gmane.linux.usb.user/4264
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r-- | drivers/usb/serial/visor.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c index bf2bd40e5f2a..60afb39eb73c 100644 --- a/drivers/usb/serial/visor.c +++ b/drivers/usb/serial/visor.c | |||
@@ -95,7 +95,7 @@ static const struct usb_device_id id_table[] = { | |||
95 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, | 95 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, |
96 | { USB_DEVICE(ACER_VENDOR_ID, ACER_S10_ID), | 96 | { USB_DEVICE(ACER_VENDOR_ID, ACER_S10_ID), |
97 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, | 97 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, |
98 | { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_SCH_I330_ID), | 98 | { USB_DEVICE_INTERFACE_CLASS(SAMSUNG_VENDOR_ID, SAMSUNG_SCH_I330_ID, 0xff), |
99 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, | 99 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, |
100 | { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_SPH_I500_ID), | 100 | { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_SPH_I500_ID), |
101 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, | 101 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, |