linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Hovold <johan@kernel.org>
To: Malte Di Donato <malte@neo-soft.org>
Cc: "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>
Subject: Re: Possible bug in the cp210x kernel driver?
Date: Wed, 22 Sep 2021 13:28:32 +0200	[thread overview]
Message-ID: <YUsTYFOdMH/kQEyE@hovoldconsulting.com> (raw)
In-Reply-To: <zarafa.614a0e7a.4925.15cc733978d29bb6@neosoft.neo-soft.org>

On Tue, Sep 21, 2021 at 06:55:21PM +0200, Malte Di Donato wrote:
> Hi Johan,
> 
> Sorry about the html crap.
> (and double excuse that I've totally forgotten to change my webmail
> account surname since wedding ;)

Heh, good that you noticed in time so I can give you proper credit in
the commit message. ;)

Unfortunately your mails won't be seen by anyone else one the list
unless you can disable that html.

> Placed the patch code into my running debian kernel version
> 5.10.0-8-amd64 and put the two invocations to the
> cp210x_init_max_speed function (cp210x_get_fw_version not existent in
> my kernel source file).

Sounds good, we need to do the same when backporting the fix.

> Here's the dmesg with the patched driver:
> 
> [19089.502913] usbcore: registered new interface driver cp210x
> [19089.502951] usbserial: USB Serial support registered for cp210x
> [19096.084910] usb 3-1.2: new full-speed USB device number 9 using ehci-pci
> [19096.224973] usb 3-1.2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
> [19096.225034] usb 3-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [19096.225037] usb 3-1.2: Product: CP2102 USB to UART Bridge Controller
> [19096.225040] usb 3-1.2: Manufacturer: Silicon Labs
> [19096.225043] usb 3-1.2: SerialNumber: 0001
> [19096.233460] cp210x 3-1.2:1.0: cp210x converter detected
> [19096.233939] cp210x 3-1.2:1.0: cp210x_init_max_speed - type = 0x02
> [19096.234458] cp210x 3-1.2:1.0: failed to get vendor val 0x370b size 8: 1

So the device returns one byte (instead of eight) as I suspected. Then
we can use this to detect these devices.

> [19096.236568] usb 3-1.2: cp210x converter now attached to ttyUSB0
> 
> I also compiled the cp2102-det and run it against the chip:
> 09: Got 128 bytes:  FF F0 FF FA 01 00 60 E3 16 00 FF F0 FF FA 01 00 60 E3 16 00 FF EC FF F8 01 00 80 4F 12 00 FF E6 FF F6 01 00 00 10 0E 00 FF D6 FF F0 01 00 00 CA 08 00 FF D0 FF EE 01 00 20 A1 07 00 FF CC FF EC 01 00 00 08 07 00 FF A2 FF DC 01 00 00 E8 03 00 FF A0 FF DC 01 00 90 D0 03 00 FF 98 FF D9 01 00 00 84 03 00 FF 64 FF C5 01 00 00 58 02 00 FF 44 FF B9 01 00 00 F4 01 00 FF 30 FF B2 01 00 00 C2 
> 0A: Got 1 bytes:  FF 
> 0B: Got 1 bytes:  02 
> Done.
> 
> Hope this helps?

It does, thanks. The 0B request above is the part-number request. The
original CP2102 I have here returns 8 bytes if that's requested.

> As I look on the "SerialNumber: 0001" in dmesg it may be possible that
> I've got a cloned chip on the chinesium usb/ttl converter...

Mine has 0001 as serial number as well, but the lack of event-mode and
different vendor request behaviour seems to suggest it could be a
counterfeit.

I'll reply to this mail with a fix that fixes the dropped character
issue by disabling event-insertion mode (and thus parity reporting) for
devices such as yours.

I've verified it here as well as I could, but could you give it a spin
with your device as well? If you want you can reply to the patch mail
with a Tested-by tag and I'll add that to the commit message as well.

Johan

       reply	other threads:[~2021-09-22 11:28 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <zarafa.614a0e7a.4925.15cc733978d29bb6@neosoft.neo-soft.org>
2021-09-22 11:28 ` Johan Hovold [this message]
2021-09-22 11:30   ` [PATCH 1/2] USB: serial: cp210x: fix dropped characters with CP2102 Johan Hovold
2021-09-22 11:31     ` [PATCH 2/2] USB: serial: cp210x: add part-number debug printk Johan Hovold
2021-09-22 20:12     ` [PATCH 1/2] USB: serial: cp210x: fix dropped characters with CP2102 Malte Di Donato
2021-09-23  8:49       ` Johan Hovold
2021-09-22 20:25   ` Possible bug in the cp210x kernel driver? Malte Di Donato
2021-09-23  8:52     ` Johan Hovold
     [not found] <zarafa.6148ae0f.4d56.2bc45ad001615f69@neosoft.neo-soft.org>
2021-09-21  8:34 ` Johan Hovold
     [not found] <zarafa.6145ee62.586f.6703380702229727@neosoft.neo-soft.org>
2021-09-20  8:10 ` 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=YUsTYFOdMH/kQEyE@hovoldconsulting.com \
    --to=johan@kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=malte@neo-soft.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).