LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] pl2303: Remove antiquated support for I330 phone
@ 2015-04-21 15:07 Jason A. Donenfeld
  2015-04-21 17:03 ` Greg Kroah-Hartman
  0 siblings, 1 reply; 17+ messages in thread
From: Jason A. Donenfeld @ 2015-04-21 15:07 UTC (permalink / raw)
  To: linux-usb, linux-kernel, Johan Hovold, Greg Kroah-Hartman
  Cc: Jason A. Donenfeld

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 for the Samsung I330 phone
cradle. This phone was manufactured in 2001, and I seriously doubt it is
still in use on any contemporary networks. Having pl2303 pick up this
device ID results in conflicts with the usb-storage driver, which
handles the newly released portable USB3 SSD. In this patch I remove the
device ID of the old antiquated telephone from the pl2303 driver, so
that usb-storage can handle it.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
---
 drivers/usb/serial/pl2303.c | 1 -
 drivers/usb/serial/pl2303.h | 4 ----
 2 files changed, 5 deletions(-)

diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 829604d..f5257af 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -61,7 +61,6 @@ 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(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..e3b7af8 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -62,10 +62,6 @@
 #define ALCATEL_VENDOR_ID	0x11f7
 #define ALCATEL_PRODUCT_ID	0x02df
 
-/* Samsung I330 phone cradle */
-#define SAMSUNG_VENDOR_ID	0x04e8
-#define SAMSUNG_PRODUCT_ID	0x8001
-
 #define SIEMENS_VENDOR_ID	0x11f5
 #define SIEMENS_PRODUCT_ID_SX1	0x0001
 #define SIEMENS_PRODUCT_ID_X65	0x0003
-- 
2.3.5


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] pl2303: Remove antiquated support for I330 phone
  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   ` [PATCH] pl2303, visor: Match I330 phone more precisely Jason A. Donenfeld
  0 siblings, 1 reply; 17+ messages in thread
From: Greg Kroah-Hartman @ 2015-04-21 17:03 UTC (permalink / raw)
  To: Jason A. Donenfeld; +Cc: linux-usb, linux-kernel, Johan Hovold

On Tue, Apr 21, 2015 at 05:07:05PM +0200, 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 for the Samsung I330 phone
> cradle. This phone was manufactured in 2001, and I seriously doubt it is
> still in use on any contemporary networks. Having pl2303 pick up this
> device ID results in conflicts with the usb-storage driver, which
> handles the newly released portable USB3 SSD. In this patch I remove the
> device ID of the old antiquated telephone from the pl2303 driver, so
> that usb-storage can handle it.
> 
> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
> ---
>  drivers/usb/serial/pl2303.c | 1 -
>  drivers/usb/serial/pl2303.h | 4 ----
>  2 files changed, 5 deletions(-)
> 
> diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
> index 829604d..f5257af 100644
> --- a/drivers/usb/serial/pl2303.c
> +++ b/drivers/usb/serial/pl2303.c
> @@ -61,7 +61,6 @@ 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) },

How about adding a .driver_info quirk, that checks the device to see if
it matches a mass storage device?  If so, don't accept the probe, which
will keep the driver from working on the SSD device, and still keep
working on the old docking station.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] pl2303, visor: Match I330 phone more precisely
  2015-04-21 17:03 ` Greg Kroah-Hartman
@ 2015-04-22 10:14   ` Jason A. Donenfeld
  2015-04-22 10:28     ` Sergei Shtylyov
  2015-04-22 11:20     ` Johan Hovold
  0 siblings, 2 replies; 17+ messages in thread
From: Jason A. Donenfeld @ 2015-04-22 10:14 UTC (permalink / raw)
  To: linux-usb, linux-kernel, Johan Hovold, Greg Kroah-Hartman
  Cc: Jason A. Donenfeld

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


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] pl2303, visor: Match I330 phone more precisely
  2015-04-22 10:14   ` [PATCH] pl2303, visor: Match I330 phone more precisely Jason A. Donenfeld
@ 2015-04-22 10:28     ` Sergei Shtylyov
  2015-04-22 11:20     ` Johan Hovold
  1 sibling, 0 replies; 17+ messages in thread
From: Sergei Shtylyov @ 2015-04-22 10:28 UTC (permalink / raw)
  To: Jason A. Donenfeld, linux-usb, linux-kernel, Johan Hovold,
	Greg Kroah-Hartman

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



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] pl2303, visor: Match I330 phone more precisely
  2015-04-22 10:14   ` [PATCH] pl2303, visor: Match I330 phone more precisely Jason A. Donenfeld
  2015-04-22 10:28     ` 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:38       ` [PATCH] pl2303, " Greg Kroah-Hartman
  1 sibling, 2 replies; 17+ messages in thread
From: Johan Hovold @ 2015-04-22 11:20 UTC (permalink / raw)
  To: Jason A. Donenfeld
  Cc: linux-usb, linux-kernel, Johan Hovold, Greg Kroah-Hartman

On Wed, Apr 22, 2015 at 12:14:05PM +0200, 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.

First of all, the device should not be claimed by both pl2303 and visor.
This predates the git, but it looks like the device id should simply be
removed from pl2303. Care to do that as a preparatory patch?

> 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

That seems like the way to go. As Sergei already suggested you can use
the interface class 0xff directly in the USB_DEVICE_INTERFACE_CLASS
macro.

Thanks,
Johan

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/2] pl2303: Remove support for Samsung I330
  2015-04-22 11:20     ` Johan Hovold
@ 2015-04-22 12:35       ` Jason A. Donenfeld
  2015-04-22 12:35         ` [PATCH 2/2] visor: Match I330 phone more precisely Jason A. Donenfeld
  2015-04-22 12:38       ` [PATCH] pl2303, " Greg Kroah-Hartman
  1 sibling, 1 reply; 17+ messages in thread
From: Jason A. Donenfeld @ 2015-04-22 12:35 UTC (permalink / raw)
  To: linux-usb, linux-kernel, Johan Hovold, Greg Kroah-Hartman,
	Sergei Shtylyov
  Cc: Jason A. Donenfeld

This phone is already supported by the visor driver.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
---
 drivers/usb/serial/pl2303.c | 1 -
 drivers/usb/serial/pl2303.h | 4 ----
 2 files changed, 5 deletions(-)

diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 829604d..f5257af 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -61,7 +61,6 @@ 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(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..e3b7af8 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -62,10 +62,6 @@
 #define ALCATEL_VENDOR_ID	0x11f7
 #define ALCATEL_PRODUCT_ID	0x02df
 
-/* Samsung I330 phone cradle */
-#define SAMSUNG_VENDOR_ID	0x04e8
-#define SAMSUNG_PRODUCT_ID	0x8001
-
 #define SIEMENS_VENDOR_ID	0x11f5
 #define SIEMENS_PRODUCT_ID_SX1	0x0001
 #define SIEMENS_PRODUCT_ID_X65	0x0003
-- 
2.3.5


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 2/2] visor: Match I330 phone more precisely
  2015-04-22 12:35       ` [PATCH 1/2] pl2303: Remove support for Samsung I330 Jason A. Donenfeld
@ 2015-04-22 12:35         ` Jason A. Donenfeld
  2015-04-22 14:30           ` Johan Hovold
  0 siblings, 1 reply; 17+ messages in thread
From: Jason A. Donenfeld @ 2015-04-22 12:35 UTC (permalink / raw)
  To: linux-usb, linux-kernel, Johan Hovold, Greg Kroah-Hartman,
	Sergei Shtylyov
  Cc: Jason A. Donenfeld

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>
---
 drivers/usb/serial/visor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
index bf2bd40..60afb39 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, 0xff),
 		.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 },
-- 
2.3.5


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] pl2303, visor: Match I330 phone more precisely
  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:38       ` Greg Kroah-Hartman
  2015-04-22 12:42         ` Jason A. Donenfeld
                           ` (2 more replies)
  1 sibling, 3 replies; 17+ messages in thread
From: Greg Kroah-Hartman @ 2015-04-22 12:38 UTC (permalink / raw)
  To: Johan Hovold, Petr Slansky, Adam C Powell IV
  Cc: Jason A. Donenfeld, linux-usb, linux-kernel

On Wed, Apr 22, 2015 at 01:20:38PM +0200, Johan Hovold wrote:
> On Wed, Apr 22, 2015 at 12:14:05PM +0200, 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.
> 
> First of all, the device should not be claimed by both pl2303 and visor.
> This predates the git, but it looks like the device id should simply be
> removed from pl2303. Care to do that as a preparatory patch?

It was added back in 2004 in the 2.4.26 kernel release.  Petr Slansky
asked me to add it, and sent a patch as he had the device.

But before that, back in 2003 Adam emailed saying that the visor driver
worked with the device, and sent me a patch for it.  I didn't notice the
duplicate ids for well over a decade now :(

I'd bet this is really a pl2303 device, given that the visor driver was
just a "dumb" pipe to the device and the pilot sync tools never cared
about baud rates and the like, so odds are the visor entry should be
removed.

Petr, do you still have this device?  Is it still really a pl2303
device?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] pl2303, visor: Match I330 phone more precisely
  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 14:20         ` [PATCH] pl2303, visor: " Johan Hovold
  2 siblings, 1 reply; 17+ messages in thread
From: Jason A. Donenfeld @ 2015-04-22 12:42 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Johan Hovold, Petr Slansky, Adam C Powell IV, linux-usb, linux-kernel

On Wed, Apr 22, 2015 at 2:38 PM, Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
> I'd bet this is really a pl2303 device, given that the visor driver was
> just a "dumb" pipe to the device and the pilot sync tools never cared
> about baud rates and the like, so odds are the visor entry should be
> removed.

In the latest patch set I sent a minute ago, I removed the pl2303
entry, not the visor one. I guess I should resubmit with this the
other way around?

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 1/2] visor: Remove support for Samsung I330
  2015-04-22 12:38       ` [PATCH] pl2303, " Greg Kroah-Hartman
  2015-04-22 12:42         ` Jason A. Donenfeld
@ 2015-04-22 12:48         ` 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
  2 siblings, 1 reply; 17+ messages in thread
From: Jason A. Donenfeld @ 2015-04-22 12:48 UTC (permalink / raw)
  To: Johan Hovold, Petr Slansky, Adam C Powell IV, linux-usb,
	linux-kernel, Greg Kroah-Hartman
  Cc: Jason A. Donenfeld

This phone is actually a pl2303 device, and is already supported there.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
---
 drivers/usb/serial/visor.c | 2 --
 drivers/usb/serial/visor.h | 1 -
 2 files changed, 3 deletions(-)

diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
index bf2bd40..2fe4afb 100644
--- a/drivers/usb/serial/visor.c
+++ b/drivers/usb/serial/visor.c
@@ -95,8 +95,6 @@ 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),
-		.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 },
 	{ USB_DEVICE(TAPWAVE_VENDOR_ID, TAPWAVE_ZODIAC_ID),
diff --git a/drivers/usb/serial/visor.h b/drivers/usb/serial/visor.h
index 4c456dd..3a2c25f 100644
--- a/drivers/usb/serial/visor.h
+++ b/drivers/usb/serial/visor.h
@@ -53,7 +53,6 @@
 #define ACER_S10_ID			0x0001
 
 #define SAMSUNG_VENDOR_ID		0x04E8
-#define SAMSUNG_SCH_I330_ID		0x8001
 #define SAMSUNG_SPH_I500_ID		0x6601
 
 #define TAPWAVE_VENDOR_ID		0x12EF
-- 
2.3.5


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH 2/2] pl2303: Match I330 phone more precisely
  2015-04-22 12:48         ` [PATCH 1/2] visor: Remove support for Samsung I330 Jason A. Donenfeld
@ 2015-04-22 12:48           ` Jason A. Donenfeld
  0 siblings, 0 replies; 17+ messages in thread
From: Jason A. Donenfeld @ 2015-04-22 12:48 UTC (permalink / raw)
  To: Johan Hovold, Petr Slansky, Adam C Powell IV, linux-usb,
	linux-kernel, Greg Kroah-Hartman
  Cc: Jason A. Donenfeld

Samsung has just released a portable USB3 SSD, coming in a very small
and nice form factor. Its USB ID is 04e8:8001, which unfortunately is
already used by the pl2303 driver for the Samsung I330 phone cradle.
Having pl2303 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.

[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 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 829604d..8bb929a 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, 0xff) },
 	{ 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),
-- 
2.3.5


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] pl2303, visor: Match I330 phone more precisely
  2015-04-22 12:42         ` Jason A. Donenfeld
@ 2015-04-22 13:33           ` Greg Kroah-Hartman
  0 siblings, 0 replies; 17+ messages in thread
From: Greg Kroah-Hartman @ 2015-04-22 13:33 UTC (permalink / raw)
  To: Jason A. Donenfeld
  Cc: Johan Hovold, Petr Slansky, Adam C Powell IV, linux-usb, linux-kernel

On Wed, Apr 22, 2015 at 02:42:20PM +0200, Jason A. Donenfeld wrote:
> On Wed, Apr 22, 2015 at 2:38 PM, Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> > I'd bet this is really a pl2303 device, given that the visor driver was
> > just a "dumb" pipe to the device and the pilot sync tools never cared
> > about baud rates and the like, so odds are the visor entry should be
> > removed.
> 
> In the latest patch set I sent a minute ago, I removed the pl2303
> entry, not the visor one. I guess I should resubmit with this the
> other way around?

Johan is the maintainer of this subsystem now, I'll defer to him as to
what he wants to accept :)

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] pl2303, visor: Match I330 phone more precisely
  2015-04-22 12:38       ` [PATCH] pl2303, " Greg Kroah-Hartman
  2015-04-22 12:42         ` Jason A. Donenfeld
  2015-04-22 12:48         ` [PATCH 1/2] visor: Remove support for Samsung I330 Jason A. Donenfeld
@ 2015-04-22 14:20         ` Johan Hovold
  2015-04-22 14:58           ` Greg Kroah-Hartman
  2 siblings, 1 reply; 17+ messages in thread
From: Johan Hovold @ 2015-04-22 14:20 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Johan Hovold, Petr Slansky, Adam C Powell IV, Jason A. Donenfeld,
	linux-usb, linux-kernel

On Wed, Apr 22, 2015 at 02:38:00PM +0200, Greg Kroah-Hartman wrote:
> On Wed, Apr 22, 2015 at 01:20:38PM +0200, Johan Hovold wrote:
> > On Wed, Apr 22, 2015 at 12:14:05PM +0200, 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.
> > 
> > First of all, the device should not be claimed by both pl2303 and visor.
> > This predates the git, but it looks like the device id should simply be
> > removed from pl2303. Care to do that as a preparatory patch?
> 
> It was added back in 2004 in the 2.4.26 kernel release.  Petr Slansky
> asked me to add it, and sent a patch as he had the device.
> 
> But before that, back in 2003 Adam emailed saying that the visor driver
> worked with the device, and sent me a patch for it.  I didn't notice the
> duplicate ids for well over a decade now :(
>
> I'd bet this is really a pl2303 device, given that the visor driver was
> just a "dumb" pipe to the device and the pilot sync tools never cared
> about baud rates and the like, so odds are the visor entry should be
> removed.

My thinking was the other way around; that a dumb, generic device
(visor) would never work with a more specialised driver (pl2303).

The opposite could work though as the pl2303 setup commands would simply
fail, but the bulk in/out layout appears to be the same and should work
with a dumb device.

I double checked just now with a pl2303 HX device, and I can't seem to
get anything through with the default settings (visor or generic
driver) in loopback.

Note that there's another Samsung SPH-I500 Palm OS phone handled by
visor as well.

> Petr, do you still have this device?  Is it still really a pl2303
> device?

Let's see if we get some feedback first. But unless someone thinks my
reasoning above is flawed we could try removing it from pl2303 a little
later either way.

Thanks,
Johan

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/2] visor: Match I330 phone more precisely
  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
  0 siblings, 1 reply; 17+ messages in thread
From: Johan Hovold @ 2015-04-22 14:30 UTC (permalink / raw)
  To: Jason A. Donenfeld
  Cc: linux-usb, linux-kernel, Johan Hovold, Greg Kroah-Hartman,
	Sergei Shtylyov

On Wed, Apr 22, 2015 at 02:35:09PM +0200, 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 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>

Both patches look good, but next time remember to include a patch
revision in the subject of all patches in a series (this would be
[PATCH v3]). Please use a "USB: " prefix as well.

I'll fix it up before applying this time.

Thanks,
Johan

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] pl2303, visor: Match I330 phone more precisely
  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
  0 siblings, 1 reply; 17+ messages in thread
From: Greg Kroah-Hartman @ 2015-04-22 14:58 UTC (permalink / raw)
  To: Johan Hovold
  Cc: Petr Slansky, Adam C Powell IV, Jason A. Donenfeld, linux-usb,
	linux-kernel

On Wed, Apr 22, 2015 at 04:20:39PM +0200, Johan Hovold wrote:
> On Wed, Apr 22, 2015 at 02:38:00PM +0200, Greg Kroah-Hartman wrote:
> > On Wed, Apr 22, 2015 at 01:20:38PM +0200, Johan Hovold wrote:
> > > On Wed, Apr 22, 2015 at 12:14:05PM +0200, 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.
> > > 
> > > First of all, the device should not be claimed by both pl2303 and visor.
> > > This predates the git, but it looks like the device id should simply be
> > > removed from pl2303. Care to do that as a preparatory patch?
> > 
> > It was added back in 2004 in the 2.4.26 kernel release.  Petr Slansky
> > asked me to add it, and sent a patch as he had the device.
> > 
> > But before that, back in 2003 Adam emailed saying that the visor driver
> > worked with the device, and sent me a patch for it.  I didn't notice the
> > duplicate ids for well over a decade now :(
> >
> > I'd bet this is really a pl2303 device, given that the visor driver was
> > just a "dumb" pipe to the device and the pilot sync tools never cared
> > about baud rates and the like, so odds are the visor entry should be
> > removed.
> 
> My thinking was the other way around; that a dumb, generic device
> (visor) would never work with a more specialised driver (pl2303).
> 
> The opposite could work though as the pl2303 setup commands would simply
> fail, but the bulk in/out layout appears to be the same and should work
> with a dumb device.
> 
> I double checked just now with a pl2303 HX device, and I can't seem to
> get anything through with the default settings (visor or generic
> driver) in loopback.

Ok, fair enough, I wonder how Petr got it to work.  Given that there
were reports of it working just fine for the visor driver a full year
before Petr's patch, odds are he forgot to build that driver into his
kernel.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] pl2303, visor: Match I330 phone more precisely
  2015-04-22 14:58           ` Greg Kroah-Hartman
@ 2015-04-22 15:02             ` Johan Hovold
  0 siblings, 0 replies; 17+ messages in thread
From: Johan Hovold @ 2015-04-22 15:02 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Johan Hovold, Petr Slansky, Adam C Powell IV, Jason A. Donenfeld,
	linux-usb, linux-kernel

On Wed, Apr 22, 2015 at 04:58:44PM +0200, Greg Kroah-Hartman wrote:
> On Wed, Apr 22, 2015 at 04:20:39PM +0200, Johan Hovold wrote:
> > On Wed, Apr 22, 2015 at 02:38:00PM +0200, Greg Kroah-Hartman wrote:
> > > On Wed, Apr 22, 2015 at 01:20:38PM +0200, Johan Hovold wrote:
> > > > On Wed, Apr 22, 2015 at 12:14:05PM +0200, 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.
> > > > 
> > > > First of all, the device should not be claimed by both pl2303 and visor.
> > > > This predates the git, but it looks like the device id should simply be
> > > > removed from pl2303. Care to do that as a preparatory patch?
> > > 
> > > It was added back in 2004 in the 2.4.26 kernel release.  Petr Slansky
> > > asked me to add it, and sent a patch as he had the device.
> > > 
> > > But before that, back in 2003 Adam emailed saying that the visor driver
> > > worked with the device, and sent me a patch for it.  I didn't notice the
> > > duplicate ids for well over a decade now :(
> > >
> > > I'd bet this is really a pl2303 device, given that the visor driver was
> > > just a "dumb" pipe to the device and the pilot sync tools never cared
> > > about baud rates and the like, so odds are the visor entry should be
> > > removed.
> > 
> > My thinking was the other way around; that a dumb, generic device
> > (visor) would never work with a more specialised driver (pl2303).
> > 
> > The opposite could work though as the pl2303 setup commands would simply
> > fail, but the bulk in/out layout appears to be the same and should work
> > with a dumb device.
> > 
> > I double checked just now with a pl2303 HX device, and I can't seem to
> > get anything through with the default settings (visor or generic
> > driver) in loopback.
> 
> Ok, fair enough, I wonder how Petr got it to work.  Given that there
> were reports of it working just fine for the visor driver a full year
> before Petr's patch, odds are he forgot to build that driver into his
> kernel.

Sounds like a plausible explanation.

Johan

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/2] visor: Match I330 phone more precisely
  2015-04-22 14:30           ` Johan Hovold
@ 2015-04-29 10:43             ` Johan Hovold
  0 siblings, 0 replies; 17+ messages in thread
From: Johan Hovold @ 2015-04-29 10:43 UTC (permalink / raw)
  To: Jason A. Donenfeld
  Cc: linux-usb, linux-kernel, Johan Hovold, Greg Kroah-Hartman,
	Sergei Shtylyov

On Wed, Apr 22, 2015 at 04:30:12PM +0200, Johan Hovold wrote:
> On Wed, Apr 22, 2015 at 02:35:09PM +0200, 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 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>
> 
> Both patches look good, but next time remember to include a patch
> revision in the subject of all patches in a series (this would be
> [PATCH v3]). Please use a "USB: " prefix as well.
> 
> I'll fix it up before applying this time.

Both patches now applied with stable tags.

Thanks,
Johan

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2015-04-29 10:43 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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   ` [PATCH] pl2303, visor: Match I330 phone more precisely Jason A. Donenfeld
2015-04-22 10:28     ` 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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).