On Thu, Nov 3, 2022 at 3:17 AM SCHNEIDER Johannes
<johannes.schnei...@leica-geosystems.com> wrote:
>
> Hi all,
>
> flushing and waiting... maybe you're onto something: what if one printf races 
> another since it thinks considers its buffer handed to the FIFO as "done" a 
> bit too soon?
>
> might the below variation on "waiting for the fifo" solve the symptoms on 
> imx6?
>
> regards
> Johannes
>
>
> diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c
> index 4207650503..dfd7670f7e 100644
> --- a/drivers/serial/serial_mxc.c
> +++ b/drivers/serial/serial_mxc.c
> @@ -329,8 +329,23 @@ static int mxc_serial_pending(struct udevice *dev, bool 
> input)
>                 return sr2 & USR2_TXDC ? 0 : 1;
>  }
>
> +static ssize_t mxc_serial_puts(struct udevice *dev, const char *s, size_t 
> len)
> +{
> +       struct mxc_serial_plat *plat = dev_get_plat(dev);
> +       struct mxc_uart *const uart = plat->reg;
> +
> +       while (*s)
> +               mcx_serial_putc(dev, *s++);

There is a typo here: it should be mxc_serial_putc() instead.

No, it does not fix the issue.

Not sure why you mentioned imx6. The issue can be reproduced on imx8mm as well.

Reply via email to