> -----Original Message----- > From: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> > Sent: Thursday, July 14, 2022 9:31 AM > To: Shenwei Wang <shenwei.wang@xxxxxxx> > Cc: linux-serial@xxxxxxxxxxxxxxx > Subject: [EXT] Re: [PATCH V1 1/1] serial: fsl_lpuart: zero out parity bit in CS7 > mode > > Caution: EXT Email > > On Fri, Jul 08, 2022 at 02:58:00PM -0500, shenwei.wang@xxxxxxx wrote: > > The LPUART hardware doesn't zero out the parity bit on the received > > characters. This behavior won't impact the use cases of CS8 because > > the parity bit is the 9th bit which is not currently used by software. > > But the parity bit for CS7 must be zeroed out by software in order to > > get the correct raw data. > > > > Signed-off-by: Shenwei Wang <shenwei.wang@xxxxxxx> > > --- > > changes in v1 > > - fix the code indent and whitespace issue; > > Normal patches start numbering at v1 :) > > > drivers/tty/serial/fsl_lpuart.c | 26 ++++++++++++++++++++++++-- > > 1 file changed, 24 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/tty/serial/fsl_lpuart.c > > b/drivers/tty/serial/fsl_lpuart.c index 8fe0494d4057b..a8f59fb27c825 > > 100644 > > --- a/drivers/tty/serial/fsl_lpuart.c > > +++ b/drivers/tty/serial/fsl_lpuart.c > > @@ -274,6 +274,8 @@ struct lpuart_port { > > int rx_dma_rng_buf_len; > > unsigned int dma_tx_nents; > > wait_queue_head_t dma_wait; > > + bool is_cs7; /* Set to true when character size is 7 */ > > + /* and the parity is enabled */ > > }; > > > > struct lpuart_soc_data { > > @@ -1022,6 +1024,9 @@ static void lpuart32_rxint(struct lpuart_port *sport) > > flg = TTY_OVERRUN; > > } > > > > + if (sport->is_cs7) > > + rx &= 0x7F; > > + > > if (tty_insert_flip_char(port, rx, flg) == 0) > > sport->port.icount.buf_overrun++; > > } > > @@ -1107,6 +1112,17 @@ static void lpuart_handle_sysrq(struct lpuart_port > *sport) > > } > > } > > > > +static inline int lpuart_tty_insert_flip_string(struct tty_port *port, > > + unsigned char *chars, size_t size, bool is_cs7) > > Why inline? Don't do that unless it is measurable with and without it, good > compilers will guess this correctly. Agree. The inline is not necessary here. Will fix it in next version. Thanks, Shenwei > thanks, > > greg k-h