All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vasily Khoruzhick <anarsoul@gmail.com>
To: Johan Hovold <johan@kernel.org>
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: Tue, 3 Aug 2021 23:41:33 -0700	[thread overview]
Message-ID: <CA+E=qVcLdZ=gdJa-nV42ey751Dd9gFHWya7v=-y3WejoDYkaHA@mail.gmail.com> (raw)
In-Reply-To: <YQPzdwYy8qxY39BW@hovoldconsulting.com>

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
>

  reply	other threads:[~2021-08-04  6: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
2021-08-04  6:41       ` Vasily Khoruzhick [this message]
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='CA+E=qVcLdZ=gdJa-nV42ey751Dd9gFHWya7v=-y3WejoDYkaHA@mail.gmail.com' \
    --to=anarsoul@gmail.com \
    --cc=johan@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 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.