* 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 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).