[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <AS8PR04MB8404736D9C87D7C590C34A6692909@AS8PR04MB8404.eurprd04.prod.outlook.com>
Date: Fri, 22 Jul 2022 09:41:08 +0000
From: Sherry Sun <sherry.sun@....com>
To: Jiri Slaby <jirislaby@...nel.org>, Michael Walle <michael@...le.cc>
CC: "gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"linux-serial@...r.kernel.org" <linux-serial@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
dl-linux-imx <linux-imx@....com>
Subject: RE: [PATCH 2/2] tty: serial: fsl_lpuart: writing a 1 and then a 0 to
trigger a break character
> On 15. 07. 22, 13:52, Michael Walle wrote:
> >> Seems we have the different understanding of the break_ctl(port,ctl)
> >> callback. The original break_ctl(tty,-1) in lpuart will not send the
> >> break signal until we call break_ctl(tty,0).
> >
> > That is not correct. The TX linue goes low as soon as the SBK bit is
> > set. See below.
>
> In that case…
>
> >> Per my understanding of
> >> "If ctl is nonzero, the break signal should be transmitted", call
> >> break_ctl(tty,-1) is enough the send one break signal, now my patch
> >> makes the behavior align with my understanding.
> >
> > As I said, Greg should clarify here.
> >
> > In any case, I've checked the hardware (LS1028A) and as soon as you
> > set the SBK bit, the TX line goes low (TTL levels) as expected. It
> > will go to high again as soon as you clear the bit again.
> >
> > So to me it seems there is nothing wrong here. Also have a look at man
> > ioctl_tty:
> >
> > TIOCSBRK
> > Turn break on, that is, start sending zero bits.
> >
> > TIOCCBRK
> > Turn break off, that is, stop sending zero bits.
> >
> > So to send one break "character", you need to do ioctl(TIOCSBRK)
> > followed by an ioctl(TIOCCBRK).
>
> … you're right.
Hi Jiri and Michael,
Per the understanding of the ioctl behavior here, does that mean the uart ops break_ctl(port,ctl) also perform the same behavior with ioctl_tty?
break_ctl(port,-1) will turn the break on, which may keep TX line low until we call break_ctl(port,0) to turn break off, which may raise the TX line, right?
If this is the correct understanding of break_ctl(port,ctl), then I will drop this patch, since my patch here cause the TX line only send one break signal(9 to 13 bits, or 12 to 15 bits if STAT[BRK13] is set). Thanks!
Best regards
Sherry
>
> regards,
> --
> js
Powered by blists - more mailing lists