RE: [EXT] Re: [PATCH RESEND 3/5] USB: serial: cp210x: Added comments to CRTSCT flag code.

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

 



I was planning to define all these bits in a separate future patch.
Would you rather prefer the magic numbers defined before fixing the bugs?
I guess I can do that. Is something like this acceptable?

/* CP210X_GET_FLOW/CP210X_SET_FLOW read/write these 0x10 bytes */
struct cp210x_flow_ctl {
	u8	SERIAL_DTR_MASK        : 2; /* byte 0 */
	u8	                       : 1;
	u8	SERIAL_CTS_HANDSHAKE   : 1;
	u8	SERIAL_DSR_HANDSHAKE   : 1;
	u8	SERIAL_DCD_HANDSHAKE   : 1;
	u8	SERIAL_DSR_SENSITIVITY : 1;
	u8	                       : 1;
	u8; /* byte 1 */
	u8; /* byte 2 */
	u8; /* byte 3 */
	u8	SERIAL_AUTO_TRANSMIT   : 1; /* byte 4 */
	u8	SERIAL_AUTO_RECEIVE    : 1;
	u8	SERIAL_ERROR_CHAR      : 1;
	u8	SERIAL_NULL_STRIPPING  : 1;
	u8	SERIAL_BREAK_CHAR      : 1;
	u8	                       : 1;
	u8	SERIAL_RTS_MASK        : 2;
	u8; /* byte 5 */
	u8; /* byte 6 */
	u8	                       : 7; /* byte 7 */
	u8	SERIAL_XOFF_CONTINUE   : 1;
	__le32	ulXonLimit;
	__le32	ulXoffLimit;
} __packed;

> -----Original Message-----
> From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Johan Hovold
> Sent: Monday, April 25, 2016 05:17
> To: Konstantin Shkolnyy
> Cc: johan@xxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: [EXT] Re: [PATCH RESEND 3/5] USB: serial: cp210x: Added comments
> to CRTSCT flag code.
> 
> On Sun, Apr 24, 2016 at 12:09:21PM -0500, Konstantin Shkolnyy wrote:
> > Documented "magic numbers" used in the CRTSCT flag code in terms of
> > register bit names from the chip specification.
> 
> Documenting these is long overdue. I even started adding defines just to
> be able to review the first patch in the series.
> 
> > Signed-off-by: Konstantin Shkolnyy <konstantin.shkolnyy@xxxxxxxxx>
> > ---
> >  drivers/usb/serial/cp210x.c | 38
> ++++++++++++++++++++++++++++++++++----
> >  1 file changed, 34 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
> > index ede5c52..b2321a7 100644
> > --- a/drivers/usb/serial/cp210x.c
> > +++ b/drivers/usb/serial/cp210x.c
> > @@ -790,7 +790,7 @@ static void cp210x_get_termios_port(struct
> usb_serial_port *port,
> >
> >  	cp210x_read_reg_block(port, CP210X_GET_FLOW, modem_ctl,
> >  			sizeof(modem_ctl));
> > -	if (modem_ctl[0] & 0x08) {
> > +	if (modem_ctl[0] & 0x08) { /* if SERIAL_CTS_HANDSHAKE */
> 
> But instead of adding comments like this one and below, please add
> proper defines for the various flags and masks. That will make the code
> mostly self-explanatory.
> 
> >  		dev_dbg(dev, "%s - flow control = CRTSCTS\n", __func__);
> >  		cflag |= CRTSCTS;
> >  	} else {
> > @@ -952,17 +952,47 @@ static void cp210x_set_termios(struct tty_struct
> *tty,
> >  			__func__, modem_ctl[0], modem_ctl[4],
> modem_ctl[7]);
> >
> >  		if (cflag & CRTSCTS) {
> > -			modem_ctl[0] &= ~0x7B;
> > +			modem_ctl[0] &= ~0x7B; /* keep reserved D2 and D7
> */
> > +			/*
> > +			 * D1-D0 SERIAL_DTR_MASK     =01b: DTR is held
> active
> > +			 * D3 SERIAL_CTS_HANDSHAKE   =1: CTS is a
> handshake line
> > +			 * D4 SERIAL_DSR_HANDSHAKE   =0
> > +			 * D5 SERIAL_DCD_HANDSHAKE   =0
> > +			 * D6 SERIAL_DSR_SENSITIVITY =0
> > +			 */
> 
> > -		modem_ctl[7] = 0;
> > +		modem_ctl[7] = 0; /* SERIAL_XOFF_CONTINUE = 0 */
> 
> And this would be better as a bit operation as well (as already
> mentioned).
> 
> Thanks,
> 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
--
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