> -----Original Message----- > From: Michael Walle <michael@xxxxxxxx> > Sent: 2022年11月23日 19:43 > To: Sherry Sun <sherry.sun@xxxxxxx> > Cc: gregkh@xxxxxxxxxxxxxxxxxxx; jirislaby@xxxxxxxxxx; > jingchang.lu@xxxxxxxxxxxxx; tomonori.sakita@xxxxxxxxxx; > atsushi.nemoto@xxxxxxxxxx; linux-serial@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx> > 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@xxxxxxxx> > >> Sent: 2022年11月23日 19:09 > >> To: Sherry Sun <sherry.sun@xxxxxxx> > >> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; jirislaby@xxxxxxxxxx; > >> jingchang.lu@xxxxxxxxxxxxx; tomonori.sakita@xxxxxxxxxx; > >> atsushi.nemoto@xxxxxxxxxx; linux-serial@xxxxxxxxxxxxxxx; linux- > >> kernel@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx> > >> 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@xxxxxxxx> > >> >> Sent: 2022年11月23日 18:34 > >> >> To: Sherry Sun <sherry.sun@xxxxxxx> > >> >> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; jirislaby@xxxxxxxxxx; > >> >> jingchang.lu@xxxxxxxxxxxxx; tomonori.sakita@xxxxxxxxxx; > >> >> atsushi.nemoto@xxxxxxxxxx; linux-serial@xxxxxxxxxxxxxxx; linux- > >> >> kernel@xxxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx> > >> >> 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