* Commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection") broke pl2303 driver for my adapter @ 2021-07-28 0:00 Vasily Khoruzhick 2021-07-29 10:02 ` Johan Hovold 0 siblings, 1 reply; 7+ messages in thread From: Vasily Khoruzhick @ 2021-07-28 0:00 UTC (permalink / raw) To: linux-usb, Johan Hovold Hey, My PL2303 adapter isn't working after I upgraded to 5.13. Looks like the culprit is commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection"). It used to work fine in 5.12.x. Now it fails like this: [246872.298632] usb 1-1: new full-speed USB device number 14 using xhci_hcd [246872.440065] usb 1-1: New USB device found, idVendor=067b, idProduct=23c3, bcdDevice= 3.05 [246872.440079] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [246872.440085] usb 1-1: Product: USB-Serial Controller [246872.440089] usb 1-1: Manufacturer: Prolific Technology Inc. [246872.440093] usb 1-1: SerialNumber: CMA>b103Y23 [246872.445098] pl2303 1-1:1.0: pl2303 converter detected [246872.445114] pl2303 1-1:1.0: unknown device type, please report to linux-usb@vger.kernel.org Any ideas on how to fix it properly? Should I send a patch that handles bcdDevice == 0x305 and returns TYPE_HX for it from pl2303_detect_type()? Regards, Vasily ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection") broke pl2303 driver for my adapter 2021-07-28 0:00 Commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection") broke pl2303 driver for my adapter Vasily Khoruzhick @ 2021-07-29 10:02 ` Johan Hovold 2021-07-29 17:37 ` Vasily Khoruzhick 0 siblings, 1 reply; 7+ messages in thread From: Johan Hovold @ 2021-07-29 10:02 UTC (permalink / raw) To: Vasily Khoruzhick; +Cc: linux-usb On Tue, Jul 27, 2021 at 05:00:20PM -0700, Vasily Khoruzhick wrote: > Hey, > > My PL2303 adapter isn't working after I upgraded to 5.13. > > Looks like the culprit is commit 8a7bf7510d1f ("USB: serial: pl2303: > amend and tighten type detection"). > > It used to work fine in 5.12.x. > > Now it fails like this: > > [246872.298632] usb 1-1: new full-speed USB device number 14 using xhci_hcd > [246872.440065] usb 1-1: New USB device found, idVendor=067b, > idProduct=23c3, bcdDevice= 3.05 > [246872.440079] usb 1-1: New USB device strings: Mfr=1, Product=2, > SerialNumber=3 > [246872.440085] usb 1-1: Product: USB-Serial Controller > [246872.440089] usb 1-1: Manufacturer: Prolific Technology Inc. > [246872.440093] usb 1-1: SerialNumber: CMA>b103Y23 > [246872.445098] pl2303 1-1:1.0: pl2303 converter detected > [246872.445114] pl2303 1-1:1.0: unknown device type, please report to > linux-usb@vger.kernel.org Thanks for the report. Can you please post the output of lsusb -v for this device? > Any ideas on how to fix it properly? Should I send a patch that > handles bcdDevice == 0x305 and returns TYPE_HX for it from > pl2303_detect_type()? The device id indicates that this is in fact a PL2303GT so we may need to amend the HXN type detection. Johan ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection") broke pl2303 driver for my adapter 2021-07-29 10:02 ` Johan Hovold @ 2021-07-29 17:37 ` Vasily Khoruzhick 2021-07-30 12:41 ` Johan Hovold 0 siblings, 1 reply; 7+ messages in thread From: Vasily Khoruzhick @ 2021-07-29 17:37 UTC (permalink / raw) To: Johan Hovold; +Cc: linux-usb On Thu, Jul 29, 2021 at 3:02 AM Johan Hovold <johan@kernel.org> wrote: > > On Tue, Jul 27, 2021 at 05:00:20PM -0700, Vasily Khoruzhick wrote: > > Hey, > > > > My PL2303 adapter isn't working after I upgraded to 5.13. > > > > Looks like the culprit is commit 8a7bf7510d1f ("USB: serial: pl2303: > > amend and tighten type detection"). > > > > It used to work fine in 5.12.x. > > > > Now it fails like this: > > > > [246872.298632] usb 1-1: new full-speed USB device number 14 using xhci_hcd > > [246872.440065] usb 1-1: New USB device found, idVendor=067b, > > idProduct=23c3, bcdDevice= 3.05 > > [246872.440079] usb 1-1: New USB device strings: Mfr=1, Product=2, > > SerialNumber=3 > > [246872.440085] usb 1-1: Product: USB-Serial Controller > > [246872.440089] usb 1-1: Manufacturer: Prolific Technology Inc. > > [246872.440093] usb 1-1: SerialNumber: CMA>b103Y23 > > [246872.445098] pl2303 1-1:1.0: pl2303 converter detected > > [246872.445114] pl2303 1-1:1.0: unknown device type, please report to > > linux-usb@vger.kernel.org > > Thanks for the report. Can you please post the output of lsusb -v for > this device? Here it is: Bus 001 Device 024: ID 067b:23c3 Prolific Technology, Inc. USB-Serial Controller Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x067b Prolific Technology, Inc. idProduct 0x23c3 bcdDevice 3.05 iManufacturer 1 Prolific Technology Inc. iProduct 2 USB-Serial Controller iSerial 3 CMA>b103Y23 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0027 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 > > Any ideas on how to fix it properly? Should I send a patch that > > handles bcdDevice == 0x305 and returns TYPE_HX for it from > > pl2303_detect_type()? > > The device id indicates that this is in fact a PL2303GT so we may need > to amend the HXN type detection. What's the difference between HX and HXN? > Johan ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection") broke pl2303 driver for my adapter 2021-07-29 17:37 ` Vasily Khoruzhick @ 2021-07-30 12:41 ` Johan Hovold 2021-08-04 6:41 ` Vasily Khoruzhick 0 siblings, 1 reply; 7+ messages in thread From: Johan Hovold @ 2021-07-30 12:41 UTC (permalink / raw) To: Vasily Khoruzhick; +Cc: linux-usb On Thu, Jul 29, 2021 at 10:37:00AM -0700, Vasily Khoruzhick wrote: > On Thu, Jul 29, 2021 at 3:02 AM Johan Hovold <johan@kernel.org> wrote: > > On Tue, Jul 27, 2021 at 05:00:20PM -0700, Vasily Khoruzhick wrote: > > > My PL2303 adapter isn't working after I upgraded to 5.13. > > Thanks for the report. Can you please post the output of lsusb -v for > > this device? > > Here it is: > > Bus 001 Device 024: ID 067b:23c3 Prolific Technology, Inc. USB-Serial > Controller > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.00 > bDeviceClass 0 > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 64 > idVendor 0x067b Prolific Technology, Inc. > idProduct 0x23c3 > bcdDevice 3.05 Thanks. Based on the above it looks like either a TA using the default GT idProduct and new subminor release number (3.05), or it's a GT with an undocumented release number (the datasheet says it should be 1.00). > iManufacturer 1 Prolific Technology Inc. > iProduct 2 USB-Serial Controller > iSerial 3 CMA>b103Y23 > bNumConfigurations 1 > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 0x0027 > bNumInterfaces 1 > bConfigurationValue 1 > iConfiguration 0 > bmAttributes 0xa0 > (Bus Powered) > Remote Wakeup > MaxPower 100mA > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 3 > bInterfaceClass 255 Vendor Specific Class > bInterfaceSubClass 0 > bInterfaceProtocol 0 > iInterface 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x81 EP 1 IN > bmAttributes 3 > Transfer Type Interrupt > Synch Type None > Usage Type Data > wMaxPacketSize 0x000a 1x 10 bytes > bInterval 1 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x02 EP 2 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0040 1x 64 bytes > bInterval 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x83 EP 3 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0040 1x 64 bytes > bInterval 0 > > > > Any ideas on how to fix it properly? Should I send a patch that > > > handles bcdDevice == 0x305 and returns TYPE_HX for it from > > > pl2303_detect_type()? > > > > The device id indicates that this is in fact a PL2303GT so we may need > > to amend the HXN type detection. > > What's the difference between HX and HXN? The HXN type, or rather G-series, uses a different protocol from the older types and would not work at all unless detected correctly. Could you try applying the patch below and check the log for that pl2303_supports_hx_status() printk? If it is indeed a GT then this should also make the device work again. Johan From 4e964bc27a02bc37446caf7fcfb796aed6666830 Mon Sep 17 00:00:00 2001 From: Johan Hovold <johan@kernel.org> Date: Fri, 30 Jul 2021 14:35:24 +0200 Subject: [PATCH] USB: serial: pl2303: add type instrumentation --- drivers/usb/serial/pl2303.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c index 2f2f5047452b..8ef159473504 100644 --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c @@ -394,6 +394,8 @@ static bool pl2303_supports_hx_status(struct usb_serial *serial) VENDOR_READ_REQUEST_TYPE, PL2303_READ_TYPE_HX_STATUS, 0, &buf, 1, 100, GFP_KERNEL); + dev_info(&serial->interface->dev, "%s - ret = %d\n", __func__, ret); + return ret == 0; } @@ -420,6 +422,7 @@ static int pl2303_detect_type(struct usb_serial *serial) switch (bcdDevice) { case 0x100: + case 0x305: /* * Assume it's an HXN-type if the device doesn't support the old read * request value. -- 2.31.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: Commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection") broke pl2303 driver for my adapter 2021-07-30 12:41 ` Johan Hovold @ 2021-08-04 6:41 ` Vasily Khoruzhick 2021-08-04 9:29 ` Johan Hovold 0 siblings, 1 reply; 7+ messages in thread From: Vasily Khoruzhick @ 2021-08-04 6:41 UTC (permalink / raw) To: Johan Hovold; +Cc: linux-usb On Fri, Jul 30, 2021 at 5:42 AM Johan Hovold <johan@kernel.org> wrote: > > On Thu, Jul 29, 2021 at 10:37:00AM -0700, Vasily Khoruzhick wrote: > > On Thu, Jul 29, 2021 at 3:02 AM Johan Hovold <johan@kernel.org> wrote: > > > On Tue, Jul 27, 2021 at 05:00:20PM -0700, Vasily Khoruzhick wrote: > > > > > My PL2303 adapter isn't working after I upgraded to 5.13. > > > > Thanks for the report. Can you please post the output of lsusb -v for > > > this device? > > > > Here it is: > > > > Bus 001 Device 024: ID 067b:23c3 Prolific Technology, Inc. USB-Serial > > Controller > > Device Descriptor: > > bLength 18 > > bDescriptorType 1 > > bcdUSB 2.00 > > bDeviceClass 0 > > bDeviceSubClass 0 > > bDeviceProtocol 0 > > bMaxPacketSize0 64 > > idVendor 0x067b Prolific Technology, Inc. > > idProduct 0x23c3 > > bcdDevice 3.05 > > Thanks. Based on the above it looks like either a TA using the default > GT idProduct and new subminor release number (3.05), or it's a GT with > an undocumented release number (the datasheet says it should be 1.00). > > > iManufacturer 1 Prolific Technology Inc. > > iProduct 2 USB-Serial Controller > > iSerial 3 CMA>b103Y23 > > bNumConfigurations 1 > > Configuration Descriptor: > > bLength 9 > > bDescriptorType 2 > > wTotalLength 0x0027 > > bNumInterfaces 1 > > bConfigurationValue 1 > > iConfiguration 0 > > bmAttributes 0xa0 > > (Bus Powered) > > Remote Wakeup > > MaxPower 100mA > > Interface Descriptor: > > bLength 9 > > bDescriptorType 4 > > bInterfaceNumber 0 > > bAlternateSetting 0 > > bNumEndpoints 3 > > bInterfaceClass 255 Vendor Specific Class > > bInterfaceSubClass 0 > > bInterfaceProtocol 0 > > iInterface 0 > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x81 EP 1 IN > > bmAttributes 3 > > Transfer Type Interrupt > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x000a 1x 10 bytes > > bInterval 1 > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x02 EP 2 OUT > > bmAttributes 2 > > Transfer Type Bulk > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0040 1x 64 bytes > > bInterval 0 > > Endpoint Descriptor: > > bLength 7 > > bDescriptorType 5 > > bEndpointAddress 0x83 EP 3 IN > > bmAttributes 2 > > Transfer Type Bulk > > Synch Type None > > Usage Type Data > > wMaxPacketSize 0x0040 1x 64 bytes > > bInterval 0 > > > > > > Any ideas on how to fix it properly? Should I send a patch that > > > > handles bcdDevice == 0x305 and returns TYPE_HX for it from > > > > pl2303_detect_type()? > > > > > > The device id indicates that this is in fact a PL2303GT so we may need > > > to amend the HXN type detection. > > > > What's the difference between HX and HXN? > > The HXN type, or rather G-series, uses a different protocol from the > older types and would not work at all unless detected correctly. > > Could you try applying the patch below and check the log for that > pl2303_supports_hx_status() printk? If it is indeed a GT then this > should also make the device work again. Thanks, with this patch it works: [793566.912312] usb 1-1: new full-speed USB device number 43 using xhci_hcd [793567.053688] usb 1-1: New USB device found, idVendor=067b, idProduct=23c3, bcdDevice= 3.05 [793567.053702] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [793567.053708] usb 1-1: Product: USB-Serial Controller [793567.053712] usb 1-1: Manufacturer: Prolific Technology Inc. [793567.053716] usb 1-1: SerialNumber: CMA>b103Y23 [793567.056684] pl2303 1-1:1.0: pl2303 converter detected [793567.056956] pl2303 1-1:1.0: pl2303_supports_hx_status - ret = -32 [793567.057281] usb 1-1: pl2303 converter now attached to ttyUSB0 I tested it with picocom at 115200 baud. You can have my: Tested-by: Vasily Khoruzhick <anarsoul@gmail.com> Regards, Vasily > Johan > > > From 4e964bc27a02bc37446caf7fcfb796aed6666830 Mon Sep 17 00:00:00 2001 > From: Johan Hovold <johan@kernel.org> > Date: Fri, 30 Jul 2021 14:35:24 +0200 > Subject: [PATCH] USB: serial: pl2303: add type instrumentation > > --- > drivers/usb/serial/pl2303.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c > index 2f2f5047452b..8ef159473504 100644 > --- a/drivers/usb/serial/pl2303.c > +++ b/drivers/usb/serial/pl2303.c > @@ -394,6 +394,8 @@ static bool pl2303_supports_hx_status(struct usb_serial *serial) > VENDOR_READ_REQUEST_TYPE, PL2303_READ_TYPE_HX_STATUS, > 0, &buf, 1, 100, GFP_KERNEL); > > + dev_info(&serial->interface->dev, "%s - ret = %d\n", __func__, ret); > + > return ret == 0; > } > > @@ -420,6 +422,7 @@ static int pl2303_detect_type(struct usb_serial *serial) > > switch (bcdDevice) { > case 0x100: > + case 0x305: > /* > * Assume it's an HXN-type if the device doesn't support the old read > * request value. > -- > 2.31.1 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection") broke pl2303 driver for my adapter 2021-08-04 6:41 ` Vasily Khoruzhick @ 2021-08-04 9:29 ` Johan Hovold 2021-08-04 9:31 ` [PATCH] USB: serial: pl2303: fix GT type detection Johan Hovold 0 siblings, 1 reply; 7+ messages in thread From: Johan Hovold @ 2021-08-04 9:29 UTC (permalink / raw) To: Vasily Khoruzhick; +Cc: linux-usb On Tue, Aug 03, 2021 at 11:41:33PM -0700, Vasily Khoruzhick wrote: > On Fri, Jul 30, 2021 at 5:42 AM Johan Hovold <johan@kernel.org> wrote: > > On Thu, Jul 29, 2021 at 10:37:00AM -0700, Vasily Khoruzhick wrote: > > > On Thu, Jul 29, 2021 at 3:02 AM Johan Hovold <johan@kernel.org> wrote: > > > Bus 001 Device 024: ID 067b:23c3 Prolific Technology, Inc. USB-Serial > > > Controller > > > Device Descriptor: > > > bLength 18 > > > bDescriptorType 1 > > > bcdUSB 2.00 > > > bDeviceClass 0 > > > bDeviceSubClass 0 > > > bDeviceProtocol 0 > > > bMaxPacketSize0 64 > > > idVendor 0x067b Prolific Technology, Inc. > > > idProduct 0x23c3 > > > bcdDevice 3.05 > > > > Thanks. Based on the above it looks like either a TA using the default > > GT idProduct and new subminor release number (3.05), or it's a GT with > > an undocumented release number (the datasheet says it should be 1.00). > > Could you try applying the patch below and check the log for that > > pl2303_supports_hx_status() printk? If it is indeed a GT then this > > should also make the device work again. > > Thanks, with this patch it works: > > [793566.912312] usb 1-1: new full-speed USB device number 43 using xhci_hcd > [793567.053688] usb 1-1: New USB device found, idVendor=067b, > idProduct=23c3, bcdDevice= 3.05 > [793567.053702] usb 1-1: New USB device strings: Mfr=1, Product=2, > SerialNumber=3 > [793567.053708] usb 1-1: Product: USB-Serial Controller > [793567.053712] usb 1-1: Manufacturer: Prolific Technology Inc. > [793567.053716] usb 1-1: SerialNumber: CMA>b103Y23 > [793567.056684] pl2303 1-1:1.0: pl2303 converter detected > [793567.056956] pl2303 1-1:1.0: pl2303_supports_hx_status - ret = -32 > [793567.057281] usb 1-1: pl2303 converter now attached to ttyUSB0 > > I tested it with picocom at 115200 baud. > > You can have my: > > Tested-by: Vasily Khoruzhick <anarsoul@gmail.com> Thanks for testing. I'll reply with a patch to get this fixed in 5.14-rc and backported to 5.13. Johan ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH] USB: serial: pl2303: fix GT type detection 2021-08-04 9:29 ` Johan Hovold @ 2021-08-04 9:31 ` Johan Hovold 0 siblings, 0 replies; 7+ messages in thread From: Johan Hovold @ 2021-08-04 9:31 UTC (permalink / raw) To: Johan Hovold; +Cc: linux-usb, linux-kernel, Vasily Khoruzhick, stable At least some PL2303GT have a bcdDevice of 0x305 instead of 0x100 as the datasheet claims. Add it to the list of known release numbers for the HXN (G) type. Fixes: 894758d0571d ("USB: serial: pl2303: tighten type HXN (G) detection") Reported-by: Vasily Khoruzhick <anarsoul@gmail.com> Tested-by: Vasily Khoruzhick <anarsoul@gmail.com> Cc: stable@vger.kernel.org # 5.13 Signed-off-by: Johan Hovold <johan@kernel.org> --- drivers/usb/serial/pl2303.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c index 17601e32083e..930b3d50a330 100644 --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c @@ -432,6 +432,7 @@ static int pl2303_detect_type(struct usb_serial *serial) case 0x200: switch (bcdDevice) { case 0x100: + case 0x305: /* * Assume it's an HXN-type if the device doesn't * support the old read request value. -- 2.31.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-08-04 9:32 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-07-28 0:00 Commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection") broke pl2303 driver for my adapter Vasily Khoruzhick 2021-07-29 10:02 ` Johan Hovold 2021-07-29 17:37 ` Vasily Khoruzhick 2021-07-30 12:41 ` Johan Hovold 2021-08-04 6:41 ` Vasily Khoruzhick 2021-08-04 9:29 ` Johan Hovold 2021-08-04 9:31 ` [PATCH] USB: serial: pl2303: fix GT type detection Johan Hovold
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.