[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <AS8PR04MB840492259821902391BFF2FA920C9@AS8PR04MB8404.eurprd04.prod.outlook.com>
Date: Wed, 23 Nov 2022 13:06:17 +0000
From: Sherry Sun <sherry.sun@....com>
To: Michael Walle <michael@...le.cc>
CC: "gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"jirislaby@...nel.org" <jirislaby@...nel.org>,
"jingchang.lu@...escale.com" <jingchang.lu@...escale.com>,
"tomonori.sakita@...d.co.jp" <tomonori.sakita@...d.co.jp>,
"atsushi.nemoto@...d.co.jp" <atsushi.nemoto@...d.co.jp>,
"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 V2 2/5] tty: serial: fsl_lpuart: clear UARTCTRL_LOOPS in
lpuart32_shutdown()
> -----Original Message-----
> From: Michael Walle <michael@...le.cc>
> Sent: 2022年11月23日 19:43
> To: Sherry Sun <sherry.sun@....com>
> Cc: gregkh@...uxfoundation.org; jirislaby@...nel.org;
> jingchang.lu@...escale.com; tomonori.sakita@...d.co.jp;
> atsushi.nemoto@...d.co.jp; linux-serial@...r.kernel.org; linux-
> kernel@...r.kernel.org; dl-linux-imx <linux-imx@....com>
> Subject: Re: [PATCH V2 2/5] tty: serial: fsl_lpuart: clear UARTCTRL_LOOPS in
> lpuart32_shutdown()
>
> Hi Sherry,
>
> Am 2022-11-23 12:30, schrieb Sherry Sun:
> >> -----Original Message-----
> >> From: Michael Walle <michael@...le.cc>
> >> Sent: 2022年11月23日 19:09
> >> To: Sherry Sun <sherry.sun@....com>
> >> Cc: gregkh@...uxfoundation.org; jirislaby@...nel.org;
> >> jingchang.lu@...escale.com; tomonori.sakita@...d.co.jp;
> >> atsushi.nemoto@...d.co.jp; linux-serial@...r.kernel.org; linux-
> >> kernel@...r.kernel.org; dl-linux-imx <linux-imx@....com>
> >> Subject: Re: [PATCH V2 2/5] tty: serial: fsl_lpuart: clear
> >> UARTCTRL_LOOPS in
> >> lpuart32_shutdown()
> >>
> >> Am 2022-11-23 11:58, schrieb Sherry Sun:
> >> >> -----Original Message-----
> >> >> From: Michael Walle <michael@...le.cc>
> >> >> Sent: 2022年11月23日 18:34
> >> >> To: Sherry Sun <sherry.sun@....com>
> >> >> Cc: gregkh@...uxfoundation.org; jirislaby@...nel.org;
> >> >> jingchang.lu@...escale.com; tomonori.sakita@...d.co.jp;
> >> >> atsushi.nemoto@...d.co.jp; linux-serial@...r.kernel.org; linux-
> >> >> kernel@...r.kernel.org; dl-linux-imx <linux-imx@....com>
> >> >> Subject: Re: [PATCH V2 2/5] tty: serial: fsl_lpuart: clear
> >> >> UARTCTRL_LOOPS in
> >> >> lpuart32_shutdown()
> >> >>
> >> >> Am 2022-11-10 09:17, schrieb Sherry Sun:
> >> >> > UARTCTRL_LOOPS bit is set in lpuart32_set_mctrl() for loopback
> >> >> > mode, but nowhere clear this bit, it should be cleared when
> >> >> > closing the uart port to avoid the loopback mode been enabled by
> >> >> > default when reopening the uart.
> >> >>
> >> >> It's cleared in set_mctrl(). What is the expectation from the
> >> >> serial core here?
> >> >>
> >> >
> >> > Hi Michael,
> >> >
> >> > If we call .set_mctrl(TIOCM_LOOP), the UARTCTRL_LOOPS will be set.
> >> > Then when we call .shutdown(), serial core won't call .set_mctrl()
> >> > to clear it, so the UARTCTRL_LOOPS need to be cleared here.
> >> > Per my understanding, .shutdown() should clean up all the uart
> >> > flags, as the transmitter and receiver will been disabled, we will
> >> > re-configure all the settings needed when re-open the port.
> >>
> >> Two things,
> >> (1) should the loopback be cleared on a newly opened serial device?
> >> (2) as mentioned in my other reply, this can also be handled in
> >> the startup. Eg. the startup can clear the loopback flag.
> >> (together with possible hardware events).
> >>
> >> I'm not that deep into the serial core, thus my question about the
> >> expectations from the serial core. I guess the answer to
> >> (1) is yes, but better to ask.
> >>
> >
> > Hi Michael,
> >
> > For the (1), I have checked the serial core, seems the answer is no, .
> > startup() won't clean the status, only when the uart device is probed,
> > lpuart will do the global reset to all the registers instead of
> > .startup(). So I think the uart running status cleared in .shutdown()
> > is reasonable.
>
> That's not what I've meant. Even with this patch as it is right now, the
> loopback flag is cleared on a "newly opened serial device". Just with one
> difference, you are clearing the flag in shutdown.
>
> My question was rather, should the loopback (or generally any mctrl
> flags)
> be persistent across close/open cycles. E.g. looking at omap-serial.c, this
> driver doesn't seem to handle the loopback flag at .startup() or .shutdown().
> Same seems to be true for sh-sci.c.
>
> Greg?
>
Hi Michael,
Now got your point, thanks for the clarification.
I have checked some other drivers, maybe you are right, now I am also confused that if the loopback flags should be persistent across close/open cycles. ☹
Best Regards
Sherry
Powered by blists - more mailing lists