Re: [PATCH] usb/serial/ch341: Add parity support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 15, 2014 at 04:06:11PM +0200, Johan Hovold wrote:
> On Mon, Apr 14, 2014 at 07:54:17PM +0000, Karl Palsson wrote:

> > +	if (C_PARENB(tty)) {
> > +		if (C_PARODD(tty)) {
> > +			if (C_CMSPAR(tty)) {
> 
> Thanks for fixing the C_CMSPAR macro, but you didn't address my other
> comments on v1.
> 
> > +				dev_dbg(&port->dev, "parity = mark\n");
> > +				par_flags = 0xeb;
> > +			} else {
> > +				dev_dbg(&port->dev, "parity = odd\n");
> > +				par_flags = 0xcb;
> > +			}
> > +		} else {
> > +			if (C_CMSPAR(tty)) {
> > +				dev_dbg(&port->dev, "parity = space\n");
> > +				par_flags = 0xfb;
> > +			} else {
> > +				dev_dbg(&port->dev, "parity = even\n");
> > +				par_flags = 0xdb;
> > +			}
> > +		}
> > +	} else {
> > +		dev_dbg(&port->dev, "parity = none\n");
> > +		par_flags = 0xc3;
> > +	}
> > +	ch341_control_out(port->serial->dev, 0x9a, 0x2518, par_flags);
> 
> Specifically, I asked if you are able to make sense of the values of
> register 0x2518. The reason I ask is that your patch changes the value
> of that register from 0x50 (set in ch341_configure) to 0xc3 (when no
> parity is used) and I want to make sure that you're not inadvertently
> changing some other setting.
> 
> Do you know what those other bits do? Do they encode the number of data
> and stop bits?
> 
> From a quick glance it seems like 
> 
> 	0xc0    parity mode	(2 bits)
>	0x08	parity enable
>
> but your patch now also sets bits 0x83 and clears bit 0x10.

That should have been:

	0x30	parity mode	(2 bits)
	0x08	parity enable

and your patch now always sets bits 0x83.

Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux