mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
To: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	Johan Hovold <johan@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>
Subject: [PATCH] pl2303, visor: Match I330 phone more precisely
Date: Wed, 22 Apr 2015 12:14:05 +0200	[thread overview]
Message-ID: <1429697645-24505-1-git-send-email-Jason@zx2c4.com> (raw)
In-Reply-To: <20150421170301.GA17927@kroah.com>

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>
---
 drivers/usb/serial/pl2303.c | 2 +-
 drivers/usb/serial/pl2303.h | 1 +
 drivers/usb/serial/visor.c  | 2 +-
 drivers/usb/serial/visor.h  | 1 +
 4 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 829604d..45e0c5a 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -61,7 +61,7 @@ static const struct usb_device_id id_table[] = {
 	{ USB_DEVICE(DCU10_VENDOR_ID, DCU10_PRODUCT_ID) },
 	{ USB_DEVICE(SITECOM_VENDOR_ID, SITECOM_PRODUCT_ID) },
 	{ USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_ID) },
-	{ USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID) },
+	{ USB_DEVICE_INTERFACE_CLASS(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID, SAMSUNG_IF_CLASS) },
 	{ USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_SX1),
 		.driver_info = PL2303_QUIRK_UART_STATE_IDX0 },
 	{ USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65),
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
 
 #define SIEMENS_VENDOR_ID	0x11f5
 #define SIEMENS_PRODUCT_ID_SX1	0x0001
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
index bf2bd40..4e439ef 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[] = {
 		.driver_info = (kernel_ulong_t)&palm_os_4_probe },
 	{ USB_DEVICE(ACER_VENDOR_ID, ACER_S10_ID),
 		.driver_info = (kernel_ulong_t)&palm_os_4_probe },
-	{ USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_SCH_I330_ID),
+	{ USB_DEVICE_INTERFACE_CLASS(SAMSUNG_VENDOR_ID, SAMSUNG_SCH_I330_ID, SAMSUNG_SCH_I330_IFCLASS),
 		.driver_info = (kernel_ulong_t)&palm_os_4_probe },
 	{ USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_SPH_I500_ID),
 		.driver_info = (kernel_ulong_t)&palm_os_4_probe },
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
 #define SAMSUNG_SPH_I500_ID		0x6601
 
 #define TAPWAVE_VENDOR_ID		0x12EF
-- 
2.3.5


  reply	other threads:[~2015-04-22 10:14 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-21 15:07 [PATCH] pl2303: Remove antiquated support for I330 phone Jason A. Donenfeld
2015-04-21 17:03 ` Greg Kroah-Hartman
2015-04-22 10:14   ` Jason A. Donenfeld [this message]
2015-04-22 10:28     ` [PATCH] pl2303, visor: Match I330 phone more precisely Sergei Shtylyov
2015-04-22 11:20     ` Johan Hovold
2015-04-22 12:35       ` [PATCH 1/2] pl2303: Remove support for Samsung I330 Jason A. Donenfeld
2015-04-22 12:35         ` [PATCH 2/2] visor: Match I330 phone more precisely Jason A. Donenfeld
2015-04-22 14:30           ` Johan Hovold
2015-04-29 10:43             ` Johan Hovold
2015-04-22 12:38       ` [PATCH] pl2303, " Greg Kroah-Hartman
2015-04-22 12:42         ` Jason A. Donenfeld
2015-04-22 13:33           ` Greg Kroah-Hartman
2015-04-22 12:48         ` [PATCH 1/2] visor: Remove support for Samsung I330 Jason A. Donenfeld
2015-04-22 12:48           ` [PATCH 2/2] pl2303: Match I330 phone more precisely Jason A. Donenfeld
2015-04-22 14:20         ` [PATCH] pl2303, visor: " Johan Hovold
2015-04-22 14:58           ` Greg Kroah-Hartman
2015-04-22 15:02             ` Johan Hovold

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1429697645-24505-1-git-send-email-Jason@zx2c4.com \
    --to=jason@zx2c4.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=johan@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®