From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 56759FA373E for ; Tue, 25 Oct 2022 21:32:07 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 15D4584F18; Tue, 25 Oct 2022 23:32:05 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="KGevjasY"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C51FB84EBB; Tue, 25 Oct 2022 23:32:01 +0200 (CEST) Received: from mail-oa1-x2e.google.com (mail-oa1-x2e.google.com [IPv6:2001:4860:4864:20::2e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A8B9A84E9C for ; Tue, 25 Oct 2022 23:31:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=festevam@gmail.com Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-1322d768ba7so17503190fac.5 for ; Tue, 25 Oct 2022 14:31:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=r707nErKi0aK7Bj/rTo1YkLkDWILfheMDDJbiVpPL7w=; b=KGevjasYQTqhn1E1qJ+ZcUm+sHt7tjYa9E2iQLgF35eEKJ3/SBk6DxM5pPXNUhHdDh IPZMfs4xxaVBTypHGGrkEWsEXqXjxw8vZYSJ3fbIG4Qrau+gF+uW7YNBDZhy7ts0suxt 1XytQiblOx0nFdpD2MPPTMJMgYtx2+lLSAh9AS1EPpIzIiBXWKnH0Vc5EAUzTZARI1PP 622dg9QcGEFFhbdjGu0TcVcGwbnczgnu9MjwmNAYy25gcRzVSEkmWGCTcYQ972lmyh/7 4I0Nk0OE0UDwYHgr7A3NBY1TgocvUGa7pdGhPB7rKLY6nOfg/1zRdUK3Uy0glp27v5n5 Z9mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=r707nErKi0aK7Bj/rTo1YkLkDWILfheMDDJbiVpPL7w=; b=o4ICRrVjvuo9F8yUnDX1+mR86dvBBwGH4YLYQkGPdDuGc9YqbpQeUcsRbFLIFNWieV U9CLN5Qxiay+fdwDXZKKarwTkigD/bwTOOrFoCFmOq9Xiu1sX1bfIy8TxWUDFJCXXozp PBa4+FlJPkx2aUtQdF4yejcN1ooywgaK+cQuJFOtqRnoY02I/Ers/bsZsrNF9SgMSvQA hIdy2Uj4H2toO40taHcNSrbPWUcVCiqwHtq5SEyk+XvrLygAeVk6d7/6lUzzZ+6aey04 gTNMfbCdEqbAfkgHBYtuYgp0w+uFz965jeKvrvy9H0zZjbmsbd273sk5YaVK7xl1xIy7 eD2w== X-Gm-Message-State: ACrzQf3hcM5rHC8TZg4ck09lwDwd6hkseJrosYfhHEshCIMWFyQtNP9Y uGRjUGuJ38Ws76eELYZmkYI= X-Google-Smtp-Source: AMsMyM7vLZiaUX1EwuPlF74ksu1njGLwk8RXirJ/OVWKENbPn2tBsSuMzXEZjAQKvKjYdnzfFhMpdg== X-Received: by 2002:a05:6870:c892:b0:13a:fb8d:22be with SMTP id er18-20020a056870c89200b0013afb8d22bemr236275oab.50.1666733517096; Tue, 25 Oct 2022 14:31:57 -0700 (PDT) Received: from localhost.localdomain ([2804:14c:485:4b69:7a96:708:3390:deb2]) by smtp.gmail.com with ESMTPSA id f16-20020a9d5e90000000b00662228a27d3sm1452604otl.57.2022.10.25.14.31.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Oct 2022 14:31:56 -0700 (PDT) From: Fabio Estevam To: sbabic@denx.de Cc: uboot-imx@nxp.com, johannes.schneider@leica-geosystems.com, u-boot@lists.denx.de, Fabio Estevam , Tim Harvey , =?UTF-8?q?Pali=20Roh=C3=A1r?= Subject: [PATCH] serial: mxc: Wait until TX FIFO is not full Date: Tue, 25 Oct 2022 18:31:36 -0300 Message-Id: <20221025213136.873709-1-festevam@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean From: Fabio Estevam Tim Harvey reported the console garbage on imx6 since commit c7878a0483c5 ("serial: mxc: have putc use the TXFIFO"). Do as suggested by Pali Rohár where the the driver should not return -EAGAIN when the TX FIFO is full. It should keep waiting until the TX FIFO is no longer full. This also aligns with the implementation of the imx serial driver in the kernel: static void imx_uart_console_putchar(struct uart_port *port, unsigned char ch) { struct imx_port *sport = (struct imx_port *)port; while (imx_uart_readl(sport, imx_uart_uts_reg(sport)) & UTS_TXFULL) barrier(); imx_uart_writel(sport, ch, URTX0); } Fixes: c7878a0483c5 ("serial: mxc: have putc use the TXFIFO") Reported-by: Tim Harvey Suggested-by: Pali Rohár Signed-off-by: Fabio Estevam --- drivers/serial/serial_mxc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c index 4cf79c1ca24f..332219fa87fc 100644 --- a/drivers/serial/serial_mxc.c +++ b/drivers/serial/serial_mxc.c @@ -311,8 +311,8 @@ static int mxc_serial_putc(struct udevice *dev, const char ch) struct mxc_serial_plat *plat = dev_get_plat(dev); struct mxc_uart *const uart = plat->reg; - if (readl(&uart->ts) & UTS_TXFULL) - return -EAGAIN; + while (readl(&uart->ts) & UTS_TXFULL) + barrier(); writel(ch, &uart->txd); -- 2.25.1