Thread (3 messages) 3 messages, 3 authors, 2021-01-08

Re: pl2303.c 110 baud not working

From: Johan Hovold <johan@kernel.org>
Date: 2021-01-08 10:14:25

On Thu, Jan 07, 2021 at 03:06:07PM -0600, Joe Abbott wrote:
Got redirected here by GKH email-bot.

My message to him was:
I have an ASR33 teletype that I'm trying to communicate with using a
PL2303 based Benfei USB serial adapter.  The ASR requires 110 baud 7E1
and it appears that the driver is defaulting to 9600 baud. (possibly
because the baud_sup array doesn't contain 110?)  I've tried adding
110 to the array and recompiling but that doesn't seem to help. I did
have to comment out the '/ SPDX-License-Identifier: GPL-2.0' line in
pl2303.c to get it to compile.
No, you don't need to add 110 to the baud_sup array as 110 baud is set
using divisors (i.e. pl2303_encode_baud_rate_divisor()).
The windows driver works so the hardware is capable.

I must be missing something.  Any help appreciated.

Running Mint 19.3 64-bit.

I'm using stty to set baud rate like this:
stty 110 cs7 evenp -F /dev/ttyUSB0
stty reports that 110 is in use when I:
stty -F /dev/ttyUSB0

Oscope shows 150 and above changing (didn't try 75) but 110 reverts to
9600 (mentioned in pl2303.c file).
I just verified using a logic analyser that 110 baud works just fine
here (with even parity too) using a PL2303 HXD.

Not sure what kernel version you're on, but this should have been
supported since at least around 2015 (and I think we backported the
corresponding fix of the divisor algorithm to earlier kernels).

Try a recent mainline kernel or enable dynamic debugging and make sure
the line request is sent correctly (110 cs7 parenb):

	pl2303_set_line_request - d5 0e 00 80 00 02 07

If there's some difference in how your device encodes baud rates you may
be able to compare that with what the Windows driver uses by tracing the
USB packets.

Johan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help