From: Johan Hovold <johan@kernel.org>
To: Vasily Khoruzhick <anarsoul@gmail.com>
Cc: linux-usb@vger.kernel.org
Subject: Re: Commit 8a7bf7510d1f ("USB: serial: pl2303: amend and tighten type detection") broke pl2303 driver for my adapter
Date: Fri, 30 Jul 2021 14:41:27 +0200 [thread overview]
Message-ID: <YQPzdwYy8qxY39BW@hovoldconsulting.com> (raw)
In-Reply-To: <CA+E=qVdS+7AvRcQAioUu2BshP=ReOcrCLEHE3pmERsXJascbgA@mail.gmail.com>
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
next prev parent reply other threads:[~2021-07-30 12:42 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
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=YQPzdwYy8qxY39BW@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=anarsoul@gmail.com \
--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;
as well as URLs for NNTP newsgroup(s).