From patchwork Thu May 20 02:13:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jeffery X-Patchwork-Id: 12268765 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E6924C433B4 for ; Thu, 20 May 2021 02:17:29 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 732A7600D4 for ; Thu, 20 May 2021 02:17:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 732A7600D4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=aj.id.au Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=YiH3g4R9wqc9JAVCGq98g8n/QHGH+gjNvUOVFz09rNA=; b=HxQD0+njCNA9QQdL0GBBe1M4J PDCApzFGq+fsrsku/WY3l5URUWUIDYR92dhTuHX9AOkpMXAJ+lUN1MmLdNweZtVaT4Y64e9oIgTuk WktxRztpG8DXDzgDvA03a3MaWEnX5/H2jn+UH8dNxnWwbekdG4QA6i686MU2jwRpj5B3jPCcehwuM MqA7YPbZ1AdT6QvR44ocHFvWFX1qmdUs3X+kJaXeT4zfpu8vIPDGjbwTR+siDcRtEx8iEFjni+XHP dlVlXkfUan0qfFjI7Ar+ZxeAq7qAGQzmZ+e2mipGEs1CTy6LqszJz7Do/0xmFY4tE4ZmbK0y/zArx V92oow/yg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ljYCa-005dTx-IO; Thu, 20 May 2021 02:14:20 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ljYCI-005dS9-ID for linux-arm-kernel@desiato.infradead.org; Thu, 20 May 2021 02:14:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description; bh=agM4yFIvUjmDK+7w1/5Qg1pbG8oDP4ygpRUviEPVwU8=; b=QehMDtIHBt9PRBCclONg7IODH8 11fPnAN564t2wzviuevuYaJMjd2qveeHafKtzq+bSEOfCKOF+sDa2WMYHd8p1dDItJl8q3qBGX91m DOEGTui+/wXuC/9DTSwxkGHL9f1KM2mqhWyotB05ZxSQmp3jBCPC3QlaQrUC4wxj0GGibIozJs/BS S2K/liTMVlwDY/DZVZ8Inqp7uFfKdSMRugP60Zo8G3kcvMiOoP3jxR1CShov0NEh85CDmf4qmWYyy vsQEMordCAthxxfePv/U1GJpAKL4kl0qI4v6I3lOU4GlPU9JlK22c0zA2RQ78d1yMLfDtiFKxvsZo iy9sqFOQ==; Received: from new1-smtp.messagingengine.com ([66.111.4.221]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ljYCF-00FtMH-8A for linux-arm-kernel@lists.infradead.org; Thu, 20 May 2021 02:14:00 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailnew.nyi.internal (Postfix) with ESMTP id 1498E580853; Wed, 19 May 2021 22:13:54 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 19 May 2021 22:13:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aj.id.au; h=from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=agM4yFIvUjmDK +7w1/5Qg1pbG8oDP4ygpRUviEPVwU8=; b=d/hZn5uMTzUkWpNZJmBAGWk8ntKY2 T/LQMY1AQZeg+Z2CPSmFpaifYdopOB9EWW+QPf5cty/qK6njwp44nhDGXV1KpTLj Cg2M+6ezxnh1rjlbuPfyk4ZMAHMDrumzr6dTNETrbDQAmNpHRTE5pPOzyR2RLd/D qU8T3NLw2cYQrJHGeL2ftUeXxcI8L6nUKALUZw3m+jC8C9CsuqH/PaZSsDGWRl6A GI18kWvflPHn5VF8pQFcds5na8V3YOaRUNpuczycPqGBr6efiaLlbJhTULE8BUd8 LERAQalNy7AENVilRHkQGOgdSrMB77gGefxd0UbvUMRmZWsyVjeZJsQdw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=agM4yFIvUjmDK+7w1/5Qg1pbG8oDP4ygpRUviEPVwU8=; b=C4p4WdVI hIByzbaRiaU9S5kQemex08CSNX/tFqVW39IUylyrLDBh5mX86kBtJ89uyrQJJm3g Fj5ZqiN/zDvnHaIVxrsv+pSzMzQ51SC4wppDOlCc9VhPAXPU+vctdvQT8uJlWoU7 LKFSnQ5vu7rB/V/Kcr5zgT2AwCo/o2fTLmbQbfPAYMhtbnB4t37u3xaoELzqGiV2 SfUj3LKp5PzsURjMOjwT4++dRdpM97pRy8m6qxhLgs8whYfbYbWx9KeresqufKHu AKSFaLDu5MsPWBpNteRphRJxZkjnHBU0Ke3061fTgk6oOXHhfL8Ff1Nc41sM+eLO UjHQXP+EK1xFUg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrvdejtddgheejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpeetnhgurhgv ficulfgvfhhfvghrhicuoegrnhgurhgvfiesrghjrdhiugdrrghuqeenucggtffrrghtth gvrhhnpeehhfegffehvefhieejkedtvedvlefhgfeufedtgfetueevtedvffduffelleef heenucffohhmrghinhepphhorhhtrdguvghvnecukfhppedvtdefrdehjedrvdduhedrke enucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrnhgu rhgvfiesrghjrdhiugdrrghu X-ME-Proxy: Received: from mistburn.lan (203-57-215-8.dyn.iinet.net.au [203.57.215.8]) by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 19 May 2021 22:13:49 -0400 (EDT) From: Andrew Jeffery To: linux-serial@vger.kernel.org Cc: gregkh@linuxfoundation.org, jirislaby@kernel.org, joel@jms.id.au, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, openbmc@lists.ozlabs.org, jenmin_yuan@aspeedtech.com, ryan_chen@aspeedtech.com, miltonm@us.ibm.com, ChiaWei Wang Subject: [PATCH v3 1/2] serial: 8250: Add UART_BUG_TXRACE workaround for Aspeed VUART Date: Thu, 20 May 2021 11:43:33 +0930 Message-Id: <20210520021334.497341-2-andrew@aj.id.au> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210520021334.497341-1-andrew@aj.id.au> References: <20210520021334.497341-1-andrew@aj.id.au> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210519_191359_404146_C02437BB X-CRM114-Status: GOOD ( 16.33 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Aspeed Virtual UARTs directly bridge e.g. the system console UART on the LPC bus to the UART interface on the BMC's internal APB. As such there's no RS-232 signalling involved - the UART interfaces on each bus are directly connected as the producers and consumers of the one set of FIFOs. The APB in the AST2600 generally runs at 100MHz while the LPC bus peaks at 33MHz. The difference in clock speeds exposes a race in the VUART design where a Tx data burst on the APB interface can result in a byte lost on the LPC interface. The symptom is LSR[DR] remains clear on the LPC interface despite data being present in its Rx FIFO, while LSR[THRE] remains clear on the APB interface as the host has not consumed the data the BMC has transmitted. In this state, the UART has stalled and no further data can be transmitted without manual intervention (e.g. resetting the FIFOs, resulting in loss of data). The recommended work-around is to insert a read cycle on the APB interface between writes to THR. Cc: ChiaWei Wang Signed-off-by: Andrew Jeffery Reviewed-by: Jiri Slaby Tested-by: ChiaWei Wang --- drivers/tty/serial/8250/8250.h | 1 + drivers/tty/serial/8250/8250_aspeed_vuart.c | 1 + drivers/tty/serial/8250/8250_port.c | 12 ++++++++++++ 3 files changed, 14 insertions(+) diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h index 52bb21205bb6..34aa2714f3c9 100644 --- a/drivers/tty/serial/8250/8250.h +++ b/drivers/tty/serial/8250/8250.h @@ -88,6 +88,7 @@ struct serial8250_config { #define UART_BUG_NOMSR (1 << 2) /* UART has buggy MSR status bits (Au1x00) */ #define UART_BUG_THRE (1 << 3) /* UART has buggy THRE reassertion */ #define UART_BUG_PARITY (1 << 4) /* UART mishandles parity if FIFO enabled */ +#define UART_BUG_TXRACE (1 << 5) /* UART Tx fails to set remote DR */ #ifdef CONFIG_SERIAL_8250_SHARE_IRQ diff --git a/drivers/tty/serial/8250/8250_aspeed_vuart.c b/drivers/tty/serial/8250/8250_aspeed_vuart.c index a28a394ba32a..4caab8714e2c 100644 --- a/drivers/tty/serial/8250/8250_aspeed_vuart.c +++ b/drivers/tty/serial/8250/8250_aspeed_vuart.c @@ -440,6 +440,7 @@ static int aspeed_vuart_probe(struct platform_device *pdev) port.port.status = UPSTAT_SYNC_FIFO; port.port.dev = &pdev->dev; port.port.has_sysrq = IS_ENABLED(CONFIG_SERIAL_8250_CONSOLE); + port.bugs |= UART_BUG_TXRACE; rc = sysfs_create_group(&vuart->dev->kobj, &aspeed_vuart_attr_group); if (rc < 0) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index d45dab1ab316..fc5ab2032282 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -1809,6 +1809,18 @@ void serial8250_tx_chars(struct uart_8250_port *up) count = up->tx_loadsz; do { serial_out(up, UART_TX, xmit->buf[xmit->tail]); + if (up->bugs & UART_BUG_TXRACE) { + /* + * The Aspeed BMC virtual UARTs have a bug where data + * may get stuck in the BMC's Tx FIFO from bursts of + * writes on the APB interface. + * + * Delay back-to-back writes by a read cycle to avoid + * stalling the VUART. Read a register that won't have + * side-effects and discard the result. + */ + serial_in(up, UART_SCR); + } xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); port->icount.tx++; if (uart_circ_empty(xmit)) From patchwork Thu May 20 02:13:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Jeffery X-Patchwork-Id: 12268767 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AAE55C433B4 for ; Thu, 20 May 2021 02:17:34 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 344BA600D4 for ; Thu, 20 May 2021 02:17:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 344BA600D4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=aj.id.au Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=7cg7Ha2iO3kgXZg49/Uj62MbLy6rjmCt7DiXIkx56Zw=; b=G518KtyoDDYIUb4VugY9k+ZUw 6Q0U9WASOqm2icR44WLHoEV5kk9k275C2HMDaVpMXlIyfLVeX69Rgkc0807Nwi4Pub6Qitk3TTKUJ 26o+U90nW3onJwthWWp9pxEt/6Q9JG5UZxbpPwwlgtKcw3GyU3BF7NTyqRxEap+9EdttaEFTVBcVe HixtrWwxQFqlUYmsJPgfZIlxhwVFKXIBo9gN0O3yAgDm1fZPSvgD/pwNpPvmlMF5xIzdPoSr2x2dN lvJwx4wvdZRTUrQLbX68fctMI//8icRpzifRMs1zKg6aE6SL6avEgRVvRIIqseXDVUEvu42DSb1Zd xnvTGfuZw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1ljYCl-005dUW-K1; Thu, 20 May 2021 02:14:32 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ljYCJ-005dSM-9o for linux-arm-kernel@desiato.infradead.org; Thu, 20 May 2021 02:14:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description; bh=xaOffRI6alJL3rQhNQY1BObEReB1pRx0cFG8v7tgrSo=; b=ytVmn4Ktd0etIsnDPx8VHZBKAg s6cdF5dEeqzTD/S4tvlulnOD/Q8T5YaYTW6OhOP0yBokHBiKqThCkD0w5inqbE4LXaadFKm3vwjJ2 DKTxrqsYROcXQUAd2ggvMOvNF3FrtIe7AM00MDEaOuftINSJG9OFonUFfPga7Ao0hKWR63S92VyWN Rs5xHubN2hs7Y6Icv0zomLWkKSwfS2RHk4+qHEsG+OR4TOicSrePdw/RAtIMT2N62b6awmOiR7P4r X43nN2ZkC4rdl5eD8EA3QEjhwRaMk8PkPG2bY5ovfecszxxyHduDzin0A92M63MKIRRi0brbai8aJ GpO3QtbQ==; Received: from new1-smtp.messagingengine.com ([66.111.4.221]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1ljYCG-00FtMK-K8 for linux-arm-kernel@lists.infradead.org; Thu, 20 May 2021 02:14:02 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailnew.nyi.internal (Postfix) with ESMTP id 1E6525808F3; Wed, 19 May 2021 22:13:58 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 19 May 2021 22:13:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aj.id.au; h=from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=xaOffRI6alJL3 rQhNQY1BObEReB1pRx0cFG8v7tgrSo=; b=seEJKdzPx3BjwzX0SXx8TYL4jg0Ph +rHEdowVgjI85qIGwzLo1UQUfH2bRp31kd0jiMVh0wgPMk3qPEub2MoZ/mlFH5uY d9VyCQg86Rt5SbVnco0RTOkvnhNiXvZth8h+eH01RrxAfjbyoEkGiD8N77DVcwxk iJH4owW8y45z7dusmgfmpNscFN66D1dVdb1Cice+Gfl/hp6ZPv2PMxgXV/x9dnFn Gl2oAzezRGrdQ6Z7kDOGFCYLtE174z9kB1X4PTUm/keE9RvRHuYRg73GZQ9P9Zvq tP6nGUz89tF2aT6leSWWL6bekLUP01xn0voU1z/Yl+j0GD0orYIScKR9w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=xaOffRI6alJL3rQhNQY1BObEReB1pRx0cFG8v7tgrSo=; b=n5RY+O6i NzDq/Z/wVHnQ5/iEGNsp/hqlsWSbU6cgrhix21FmNdx5BbiNLNON8D/pFrxyBGMd e7gwciI2LdnTxdE5mioiQRuswovhCUznBg5S8Op7Z3YHiNhWAYcUEQ+xTP2y2k94 FzwTskJhFFPDGUGtNF1uvap2Y+bIbK7eEoYfaY4kXux1x6yE/UK3XkJEAXF/P6WD M+/e4NtBrKJVCxDIYn+JbJNbyqvaDXdFHk3UnMbH7q8FZc6Hgcb2Mse+BUsWXWAp Ww4yF0V2jPu8+0leYwZ5U4Ur/1X6igIA78PU3HuE+C4Q+/4OvvY+Hwb/T1DApvGE 5zZvIR7i0RCy0Q== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrvdejtddgheeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomheptehnughrvgifucflvghffhgvrhihuceorghnughrvgifsegr jhdrihgurdgruheqnecuggftrfgrthhtvghrnhepjefgvdevheetkeevgeegleelgfelte etjeffleffvdduudevieffgeetleevhfetnecukfhppedvtdefrdehjedrvdduhedrkeen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrnhgurh gvfiesrghjrdhiugdrrghu X-ME-Proxy: Received: from mistburn.lan (203-57-215-8.dyn.iinet.net.au [203.57.215.8]) by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 19 May 2021 22:13:54 -0400 (EDT) From: Andrew Jeffery To: linux-serial@vger.kernel.org Cc: gregkh@linuxfoundation.org, jirislaby@kernel.org, joel@jms.id.au, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, openbmc@lists.ozlabs.org, jenmin_yuan@aspeedtech.com, ryan_chen@aspeedtech.com, miltonm@us.ibm.com Subject: [PATCH v3 2/2] serial: 8250: Use BIT(x) for UART_{CAP,BUG}_* Date: Thu, 20 May 2021 11:43:34 +0930 Message-Id: <20210520021334.497341-3-andrew@aj.id.au> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210520021334.497341-1-andrew@aj.id.au> References: <20210520021334.497341-1-andrew@aj.id.au> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210519_191400_749477_F903A9E3 X-CRM114-Status: UNSURE ( 9.90 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org BIT(x) improves readability and safety with respect to shifts. Signed-off-by: Andrew Jeffery Reviewed-by: Jiri Slaby --- drivers/tty/serial/8250/8250.h | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h index 34aa2714f3c9..6473361525d1 100644 --- a/drivers/tty/serial/8250/8250.h +++ b/drivers/tty/serial/8250/8250.h @@ -7,6 +7,7 @@ * Copyright (C) 2001 Russell King. */ +#include #include #include #include @@ -70,25 +71,25 @@ struct serial8250_config { unsigned int flags; }; -#define UART_CAP_FIFO (1 << 8) /* UART has FIFO */ -#define UART_CAP_EFR (1 << 9) /* UART has EFR */ -#define UART_CAP_SLEEP (1 << 10) /* UART has IER sleep */ -#define UART_CAP_AFE (1 << 11) /* MCR-based hw flow control */ -#define UART_CAP_UUE (1 << 12) /* UART needs IER bit 6 set (Xscale) */ -#define UART_CAP_RTOIE (1 << 13) /* UART needs IER bit 4 set (Xscale, Tegra) */ -#define UART_CAP_HFIFO (1 << 14) /* UART has a "hidden" FIFO */ -#define UART_CAP_RPM (1 << 15) /* Runtime PM is active while idle */ -#define UART_CAP_IRDA (1 << 16) /* UART supports IrDA line discipline */ -#define UART_CAP_MINI (1 << 17) /* Mini UART on BCM283X family lacks: +#define UART_CAP_FIFO BIT(8) /* UART has FIFO */ +#define UART_CAP_EFR BIT(9) /* UART has EFR */ +#define UART_CAP_SLEEP BIT(10) /* UART has IER sleep */ +#define UART_CAP_AFE BIT(11) /* MCR-based hw flow control */ +#define UART_CAP_UUE BIT(12) /* UART needs IER bit 6 set (Xscale) */ +#define UART_CAP_RTOIE BIT(13) /* UART needs IER bit 4 set (Xscale, Tegra) */ +#define UART_CAP_HFIFO BIT(14) /* UART has a "hidden" FIFO */ +#define UART_CAP_RPM BIT(15) /* Runtime PM is active while idle */ +#define UART_CAP_IRDA BIT(16) /* UART supports IrDA line discipline */ +#define UART_CAP_MINI BIT(17) /* Mini UART on BCM283X family lacks: * STOP PARITY EPAR SPAR WLEN5 WLEN6 */ -#define UART_BUG_QUOT (1 << 0) /* UART has buggy quot LSB */ -#define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */ -#define UART_BUG_NOMSR (1 << 2) /* UART has buggy MSR status bits (Au1x00) */ -#define UART_BUG_THRE (1 << 3) /* UART has buggy THRE reassertion */ -#define UART_BUG_PARITY (1 << 4) /* UART mishandles parity if FIFO enabled */ -#define UART_BUG_TXRACE (1 << 5) /* UART Tx fails to set remote DR */ +#define UART_BUG_QUOT BIT(0) /* UART has buggy quot LSB */ +#define UART_BUG_TXEN BIT(1) /* UART has buggy TX IIR status */ +#define UART_BUG_NOMSR BIT(2) /* UART has buggy MSR status bits (Au1x00) */ +#define UART_BUG_THRE BIT(3) /* UART has buggy THRE reassertion */ +#define UART_BUG_PARITY BIT(4) /* UART mishandles parity if FIFO enabled */ +#define UART_BUG_TXRACE BIT(5) /* UART Tx fails to set remote DR */ #ifdef CONFIG_SERIAL_8250_SHARE_IRQ