From patchwork Wed Mar 7 21:08:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexander Graf X-Patchwork-Id: 130919 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp5655922lja; Wed, 7 Mar 2018 13:08:31 -0800 (PST) X-Google-Smtp-Source: AG47ELtgkh0iFCrlI2uCFttCVqfZhdrRkEJ+pBT1LLVTzrcMpsyUesrTkyKp78+94g90X++em/P/ X-Received: by 10.80.183.175 with SMTP id h44mr29049417ede.287.1520456911766; Wed, 07 Mar 2018 13:08:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520456911; cv=none; d=google.com; s=arc-20160816; b=gOu4EDTdagbpHh9bczLeLvxkhh/NaZG8vCpywEQP7TjP/mKUVPOEev0q5c/6sCDJAY ZgD97zG9jXfrFKktcigZD/HK1YSmC72QzSE/9bd03hPqu0d3gqbyvvKcAHnMu1JD3j+S 1egtdyLQvY2KAH5E7RTtRAWGE+lg00KoCCPdjZylQnJoGVgfKyFznFdQzD7NvLP/aN3Z 4lfuDRKOV28f6wilJn8Br9FPAbq7aCdOkYnXqFwu+l5Y+Pegy4NQOrWiltVfhErF0os6 OIK8T+7KpvjaMpmW94P4AfIfHwnX21BR8VlQSZv7+m4PZ5wnY9BOpUgKYyzpwbS12rPK zSkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :cc:mime-version:references:in-reply-to:message-id:date:to:from :arc-authentication-results; bh=PENQuMUmpv9oM9KljqI9h9nb9W8D1FOZip7onx2SbY8=; b=Sr8p5QF7ItqQQKbKbRZC1YMDAf6k6Yi7hC75wQ4Lota8R7hz676GC469JToNxwDODN zZsv97BgC74nav/htWcAIFZHWq3xQqrVcgSC3OBbp/5o3KydVWDfVV85oQ1hR/eEYD0b vGy6V5ZLosw7mRtVX9mv9BL8k2N3nEqoR/0NoAn+bw51QMuLSQ5ockVEj2zlGHCXdoPn Y0FBxZc69Y0tePC2W3qEhbfwyBiG0OMKZJIOYpdzKHIuGjiXnsrbFKors6MzefoxQhR5 0qtaXfMdRutia4jfI8LTQkbDTvyzZlopZ1TKw5b1NwQrv3+dt2qvQNlwpfw8kN6J4nwM 29UQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de Return-Path: Received: from lists.denx.de (dione.denx.de. [81.169.180.215]) by mx.google.com with ESMTP id x9si2794251edk.118.2018.03.07.13.08.31; Wed, 07 Mar 2018 13:08:31 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) client-ip=81.169.180.215; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by lists.denx.de (Postfix, from userid 105) id 509DFC21E57; Wed, 7 Mar 2018 21:08:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 307DDC21C2C; Wed, 7 Mar 2018 21:08:28 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4E6F7C21DB6; Wed, 7 Mar 2018 21:08:27 +0000 (UTC) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by lists.denx.de (Postfix) with ESMTPS id E9468C21C2C for ; Wed, 7 Mar 2018 21:08:26 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 99703AE26; Wed, 7 Mar 2018 21:08:26 +0000 (UTC) From: Alexander Graf To: u-boot@lists.denx.de Date: Wed, 7 Mar 2018 22:08:24 +0100 Message-Id: <20180307210825.50709-2-agraf@suse.de> X-Mailer: git-send-email 2.12.3 In-Reply-To: <20180307210825.50709-1-agraf@suse.de> References: <20180307210825.50709-1-agraf@suse.de> MIME-Version: 1.0 Cc: Tom Rini Subject: [U-Boot] [PATCH v2 1/2] serial_bcm283x_mu: Flush RX queue after setting baud rate X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" After the UART was initialized, we may still have bogus data in the RX queue if it was enabled with incorrect pin muxing before. So let's flush the RX queue whenever we initialize baud rates. This fixes a regression with the dynamic pinmuxing code when enable_uart=1 is not set in config.txt. Fixes: caf2233b28 ("bcm283x: Add pinctrl driver") Reported-by: Göran Lundberg Reported-by: Peter Robinson Signed-off-by: Alexander Graf Tested-by: Peter Robinson Tested-by: Tuomas Tynkkynen --- drivers/serial/serial_bcm283x_mu.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/serial/serial_bcm283x_mu.c b/drivers/serial/serial_bcm283x_mu.c index 40029fadbc..d87b44e902 100644 --- a/drivers/serial/serial_bcm283x_mu.c +++ b/drivers/serial/serial_bcm283x_mu.c @@ -51,6 +51,8 @@ struct bcm283x_mu_priv { struct bcm283x_mu_regs *regs; }; +static int bcm283x_mu_serial_getc(struct udevice *dev); + static int bcm283x_mu_serial_setbrg(struct udevice *dev, int baudrate) { struct bcm283x_mu_serial_platdata *plat = dev_get_platdata(dev); @@ -59,13 +61,17 @@ static int bcm283x_mu_serial_setbrg(struct udevice *dev, int baudrate) u32 divider; if (plat->skip_init) - return 0; + goto out; divider = plat->clock / (baudrate * 8); writel(BCM283X_MU_LCR_DATA_SIZE_8, ®s->lcr); writel(divider - 1, ®s->baud); +out: + /* Flush the RX queue - all data in there is bogus */ + while (bcm283x_mu_serial_getc(dev) != -EAGAIN) ; + return 0; }