{"id":2224351,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2224351/?format=json","web_url":"http://patchwork.ozlabs.org/project/sparclinux/patch/20260417102423.40984-3-john.ogness@linutronix.de/","project":{"id":10,"url":"http://patchwork.ozlabs.org/api/1.2/projects/10/?format=json","name":"Linux SPARC Development ","link_name":"sparclinux","list_id":"sparclinux.vger.kernel.org","list_email":"sparclinux@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260417102423.40984-3-john.ogness@linutronix.de>","list_archive_url":null,"date":"2026-04-17T10:24:15","name":"[tty,v3,2/6] serial: Replace driver usage of UPF_CONS_FLOW","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"4e26862aba61d8fdc4382c5b73d0bd2d8ea07486","submitter":{"id":207,"url":"http://patchwork.ozlabs.org/api/1.2/people/207/?format=json","name":"John Ogness","email":"john.ogness@linutronix.de"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/sparclinux/patch/20260417102423.40984-3-john.ogness@linutronix.de/mbox/","series":[{"id":500302,"url":"http://patchwork.ozlabs.org/api/1.2/series/500302/?format=json","web_url":"http://patchwork.ozlabs.org/project/sparclinux/list/?series=500302","date":"2026-04-17T10:24:15","name":"8250: Add console flow control","version":3,"mbox":"http://patchwork.ozlabs.org/series/500302/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2224351/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2224351/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <SRS0=hi02=CQ=vger.kernel.org=sparclinux+bounces-6721-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","sparclinux@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=linutronix.de header.i=@linutronix.de header.a=rsa-sha256\n header.s=2020 header.b=1gqdm1+K;\n\tdkim=pass header.d=linutronix.de header.i=@linutronix.de\n header.a=ed25519-sha256 header.s=2020e header.b=fLWGHfzh;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=150.107.74.76; helo=mail.ozlabs.org;\n envelope-from=srs0=hi02=cq=vger.kernel.org=sparclinux+bounces-6721-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c04:e001:36c::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=linutronix.de","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=linutronix.de header.i=@linutronix.de header.a=rsa-sha256\n header.s=2020 header.b=1gqdm1+K;\n\tdkim=pass header.d=linutronix.de header.i=@linutronix.de\n header.a=ed25519-sha256 header.s=2020e header.b=fLWGHfzh;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=sparclinux+bounces-6721-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de\n header.b=\"1gqdm1+K\";\n\tdkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de\n header.b=\"fLWGHfzh\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=193.142.43.55","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linutronix.de","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linutronix.de"],"Received":["from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxrfr636Nz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 20:27:32 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fxrfp5zrqz4w1f\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 20:27:30 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4fxrfp5WmNz4wBF; Fri, 17 Apr 2026 20:27:30 +1000 (AEST)","from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fxrfk2JkXz4w1f\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 20:27:26 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id D1A503003436\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 17 Apr 2026 10:24:37 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id A52413B6364;\n\tFri, 17 Apr 2026 10:24:35 +0000 (UTC)","from galois.linutronix.de (Galois.linutronix.de [193.142.43.55])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id C028B3A6F15;\n\tFri, 17 Apr 2026 10:24:32 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1776421650; cv=pass;\n\tb=uy8q6RrgXSHOtIknyGG+4hQYsdKVZRxYqhgaxP+DDecTO7hMwCqugYTBAwlbjkrSWOGFxzNTUrcYF3A6X2SxUOYCHbPtpDyCmXZ04UJckNlD47kIUzHfwFYuKy6SkpZNTtXfekSyBY7FOEZkKxPkrkcnPzIFIPcLlAH9KKqF+HPrpUu7KWLkDD7pUqEb/Mc7eSZSRimPrnYa6HFyCGU2UOzrEK8qYXUCIRA9Zps6iXw8jze9rmUtNgwV8APOz0dJA+IcrDqyKxuc+/9xrwHL5lxYB3sKHfLIv8Ghuxt3cuSPrYSMj9LI5KKZNIC7M0P3nPLBZ7Wa1Nv2qWWBW5GOhA==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776421475; cv=none;\n b=EsgC7JmTZ2+G3WT7oNAT1ZyYdqAnsvkyQODdFQKUBu8fwmNegstLHh4zQZzWtzmSToDqe9M3WaobuGJ+IPJ01dGpElszoWK+e7RuIMXfEQCpk6onLX/bnxsh0tXvEe4ISq3gCUmTSThc1h2ZGcIi87cesVYU4JgVf14Jep7L6Yk="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1776421650; c=relaxed/relaxed;\n\tbh=GMrkWwsRJJM8nf2vHkNwRnlQxiLbrNpUSyN/P1PXVuU=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=ED/tjMRmH+thCUg+Pt2KK9JjIyjLVfpzWj1/KzE+XQaH5Hpy3K0Fcx1SlJTw1ZzWnZRiTweP7ImhTrkMMZGKNgqHeVpBrFqeG6qmS2ZeywoRZAPlSGUm7BO1UXRV3pumJodW5Goq+fOHreo+QhOqLCv6AUF5RS0LhJFef5qJ50V1YOhMD5FicJWM5vtb6Igd6lhkrVck0FaRW89CEaCwNx+GP2h+ypEZAmWBoKOlEaFElFZy+asUy/Nk79gbT74d9zUGLhDphKRIpQW8Quzzae2lMF/h882ez7x56YftNhKjKPvEjEtABELnGJ+/jwSlc7JSneMBCGjcCHy0+2H9LQ==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776421475; c=relaxed/simple;\n\tbh=pizWJrvuQ48cGLUkst8VVI51daUIasrR1V7+pSa+3gY=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=G63c3GQt0gmi4mRBDaNgrZsaNCksRyy9bXnPlnHmmjEIGvjaTzIwiDHiL93yl5esu2AaFjuocZmP6x+UblESU2EBVur3HOoY9WfLM5pnWKVLVQ2IZWGE9SNJ21HROFHuCGK5J+v3XUSQ6rc4g5Z6FG/4EWEUhICCyYUtqePjl24="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=linutronix.de;\n dkim=pass (2048-bit key;\n secure) header.d=linutronix.de header.i=@linutronix.de header.a=rsa-sha256\n header.s=2020 header.b=1gqdm1+K;\n dkim=pass header.d=linutronix.de header.i=@linutronix.de\n header.a=ed25519-sha256 header.s=2020e header.b=fLWGHfzh; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=sparclinux+bounces-6721-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linutronix.de;\n spf=pass smtp.mailfrom=linutronix.de;\n dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de\n header.b=1gqdm1+K;\n dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de\n header.b=fLWGHfzh; arc=none smtp.client-ip=193.142.43.55"],"From":"John Ogness <john.ogness@linutronix.de>","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de;\n\ts=2020; t=1776421464;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\t to:to:cc:cc:mime-version:mime-version:\n\t content-transfer-encoding:content-transfer-encoding:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=GMrkWwsRJJM8nf2vHkNwRnlQxiLbrNpUSyN/P1PXVuU=;\n\tb=1gqdm1+KQYmc0lEaKrij2m/6iN7QFvYv3SdOnrNnO3SQ1wiZPG7keCQDQS/EHzu7rYSJjx\n\toJYIZYC7rWtTseO47NUH2BarudQdV3LxY/ouu2PE7mvadxv7BbskGH0GtJmDBgcQAELXRi\n\tHFIpXvcs+6U8+PB2JDCmJdgwf+vws3F84XiquOpqtoNZETiE2qZw87Acz6gOQtIDhxucuJ\n\texTPPcqTcj9C8X2f1qI9P8rhoNnfCtu8i3OEose6YbeUN81e9u0xCAD4ncMqUDF31UIkJ8\n\tbHZ9sdkkeNVnWaMdQ0GBHltkPl17ml2MK76xbsc2OckN1+qgjvTzclWhDJnuXw==","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de;\n\ts=2020e; t=1776421464;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\t to:to:cc:cc:mime-version:mime-version:\n\t content-transfer-encoding:content-transfer-encoding:\n\t in-reply-to:in-reply-to:references:references;\n\tbh=GMrkWwsRJJM8nf2vHkNwRnlQxiLbrNpUSyN/P1PXVuU=;\n\tb=fLWGHfzhqiorZuAalaeL38ZW4UB8KT8DPAXlcCpsSmhp/s5uf+e10bZ3MXAqW5jtletG/x\n\tEYf5LmNSdHizcLDQ=="],"To":"\"Greg Kroah-Hartman\" <gregkh@linuxfoundation.org>,\n\tJiri Slaby <jirislaby@kernel.org>","Cc":"linux-kernel@vger.kernel.org, Krzysztof Kozlowski <krzk@kernel.org>,\n Alim Akhtar <alim.akhtar@samsung.com>,\n \"David S. Miller\" <davem@davemloft.net>,\n =?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>,\n Andy Shevchenko <andriy.shevchenko@linux.intel.com>,\n Thomas Fourier <fourier.thomas@gmail.com>, Kees Cook <kees@kernel.org>,\n linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org,\n linux-samsung-soc@vger.kernel.org, sparclinux@vger.kernel.org","Subject":"[PATCH tty v3 2/6] serial: Replace driver usage of UPF_CONS_FLOW","Date":"Fri, 17 Apr 2026 12:30:15 +0206","Message-ID":"<20260417102423.40984-3-john.ogness@linutronix.de>","In-Reply-To":"<20260417102423.40984-1-john.ogness@linutronix.de>","References":"<20260417102423.40984-1-john.ogness@linutronix.de>","Precedence":"bulk","X-Mailing-List":"sparclinux@vger.kernel.org","List-Id":"<sparclinux.vger.kernel.org>","List-Subscribe":"<mailto:sparclinux+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:sparclinux+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Spam-Status":"No, score=-0.6 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tHEADER_FROM_DIFFERENT_DOMAINS,INVALID_DATE_TZ_ABSURD,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"},"content":"Rather than using the UPF_CONS_FLOW bit of uart_port.flags to track\nthe user configuration of console flow control, use the newly added\nuart_port.cons_flow (via its get/set functions).\n\nA coccinelle script was used to perform the search/replace.\n\nNote1: The sh-sci driver is blindly copying platform data\n       configuration flags to uart_port.flags. Thus UPF_CONS_FLOW\n       could get set. A follow-up commit will address this.\n\nNote2: Aside from sh-sci, the samsung_tty driver is also using\n       UPF_CONS_FLOW as a platform data configuration flag.\n\nSigned-off-by: John Ogness <john.ogness@linutronix.de>\n---\n drivers/tty/serial/8250/8250_port.c | 4 ++--\n drivers/tty/serial/bcm63xx_uart.c   | 2 +-\n drivers/tty/serial/omap-serial.c    | 2 +-\n drivers/tty/serial/pch_uart.c       | 2 +-\n drivers/tty/serial/pxa.c            | 2 +-\n drivers/tty/serial/samsung_tty.c    | 8 ++++----\n drivers/tty/serial/serial_txx9.c    | 4 ++--\n drivers/tty/serial/sunsu.c          | 2 +-\n 8 files changed, 13 insertions(+), 13 deletions(-)","diff":"diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c\nindex af78cc02f38e7..c91b0fa7111a7 100644\n--- a/drivers/tty/serial/8250/8250_port.c\n+++ b/drivers/tty/serial/8250/8250_port.c\n@@ -1988,7 +1988,7 @@ static void wait_for_xmitr(struct uart_8250_port *up, int bits)\n \twait_for_lsr(up, bits);\n \n \t/* Wait up to 1s for flow control if necessary */\n-\tif (up->port.flags & UPF_CONS_FLOW) {\n+\tif (uart_get_cons_flow(&up->port)) {\n \t\tfor (tmout = 1000000; tmout; tmout--) {\n \t\t\tunsigned int msr = serial_in(up, UART_MSR);\n \t\t\tup->msr_saved_flags |= msr & MSR_SAVE_FLAGS;\n@@ -3351,7 +3351,7 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s,\n \t\t * it regardless of the CTS state. Therefore, only use fifo\n \t\t * if we don't use control flow.\n \t\t */\n-\t\t!(up->port.flags & UPF_CONS_FLOW);\n+\t\t!uart_get_cons_flow(&up->port);\n \n \tif (likely(use_fifo))\n \t\tserial8250_console_fifo_write(up, s, count);\ndiff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c\nindex 51df9d2d8bfc5..be6777dfdc532 100644\n--- a/drivers/tty/serial/bcm63xx_uart.c\n+++ b/drivers/tty/serial/bcm63xx_uart.c\n@@ -675,7 +675,7 @@ static void wait_for_xmitr(struct uart_port *port)\n \t}\n \n \t/* Wait up to 1s for flow control if necessary */\n-\tif (port->flags & UPF_CONS_FLOW) {\n+\tif (uart_get_cons_flow(port)) {\n \t\ttmout = 1000000;\n \t\twhile (--tmout) {\n \t\t\tunsigned int val;\ndiff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c\nindex 0b85f47ff19e0..a9879bc655745 100644\n--- a/drivers/tty/serial/omap-serial.c\n+++ b/drivers/tty/serial/omap-serial.c\n@@ -1092,7 +1092,7 @@ static void __maybe_unused wait_for_xmitr(struct uart_omap_port *up)\n \t} while (!uart_lsr_tx_empty(status));\n \n \t/* Wait up to 1s for flow control if necessary */\n-\tif (up->port.flags & UPF_CONS_FLOW) {\n+\tif (uart_get_cons_flow(&up->port)) {\n \t\tfor (tmout = 1000000; tmout; tmout--) {\n \t\t\tunsigned int msr = serial_in(up, UART_MSR);\n \ndiff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c\nindex 6729d8e83c3c5..08cb9ff30506f 100644\n--- a/drivers/tty/serial/pch_uart.c\n+++ b/drivers/tty/serial/pch_uart.c\n@@ -1444,7 +1444,7 @@ static void wait_for_xmitr(struct eg20t_port *up, int bits)\n \t}\n \n \t/* Wait up to 1s for flow control if necessary */\n-\tif (up->port.flags & UPF_CONS_FLOW) {\n+\tif (uart_get_cons_flow(&up->port)) {\n \t\tunsigned int tmout;\n \t\tfor (tmout = 1000000; tmout; tmout--) {\n \t\t\tunsigned int msr = ioread8(up->membase + UART_MSR);\ndiff --git a/drivers/tty/serial/pxa.c b/drivers/tty/serial/pxa.c\nindex fea0255067ccd..80afa47f09880 100644\n--- a/drivers/tty/serial/pxa.c\n+++ b/drivers/tty/serial/pxa.c\n@@ -573,7 +573,7 @@ static void wait_for_xmitr(struct uart_pxa_port *up)\n \t} while (!uart_lsr_tx_empty(status));\n \n \t/* Wait up to 1s for flow control if necessary */\n-\tif (up->port.flags & UPF_CONS_FLOW) {\n+\tif (uart_get_cons_flow(&up->port)) {\n \t\ttmout = 1000000;\n \t\twhile (--tmout &&\n \t\t       ((serial_in(up, UART_MSR) & UART_MSR_CTS) == 0))\ndiff --git a/drivers/tty/serial/samsung_tty.c b/drivers/tty/serial/samsung_tty.c\nindex e27806bf2cf3e..f9b0dbded1f43 100644\n--- a/drivers/tty/serial/samsung_tty.c\n+++ b/drivers/tty/serial/samsung_tty.c\n@@ -319,7 +319,7 @@ static void s3c24xx_serial_stop_tx(struct uart_port *port)\n \tourport->tx_enabled = 0;\n \tourport->tx_in_progress = 0;\n \n-\tif (port->flags & UPF_CONS_FLOW)\n+\tif (uart_get_cons_flow(port))\n \t\ts3c24xx_serial_rx_enable(port);\n \n \tourport->tx_mode = 0;\n@@ -493,7 +493,7 @@ static void s3c24xx_serial_start_tx(struct uart_port *port)\n \tstruct tty_port *tport = &port->state->port;\n \n \tif (!ourport->tx_enabled) {\n-\t\tif (port->flags & UPF_CONS_FLOW)\n+\t\tif (uart_get_cons_flow(port))\n \t\t\ts3c24xx_serial_rx_disable(port);\n \n \t\tourport->tx_enabled = 1;\n@@ -781,7 +781,7 @@ static void s3c24xx_serial_rx_drain_fifo(struct s3c24xx_uart_port *ourport)\n \t\tuerstat = rd_regl(port, S3C2410_UERSTAT);\n \t\tch = rd_reg(port, S3C2410_URXH);\n \n-\t\tif (port->flags & UPF_CONS_FLOW) {\n+\t\tif (uart_get_cons_flow(port)) {\n \t\t\tbool txe = s3c24xx_serial_txempty_nofifo(port);\n \n \t\t\tif (ourport->rx_enabled) {\n@@ -1830,7 +1830,7 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,\n \n \tif (cfg->uart_flags & UPF_CONS_FLOW) {\n \t\tdev_dbg(port->dev, \"enabling flow control\\n\");\n-\t\tport->flags |= UPF_CONS_FLOW;\n+\t\tuart_set_cons_flow(port, true);\n \t}\n \n \t/* sort our the physical and virtual addresses for each UART */\ndiff --git a/drivers/tty/serial/serial_txx9.c b/drivers/tty/serial/serial_txx9.c\nindex 436a559234dfe..103f03c1fe748 100644\n--- a/drivers/tty/serial/serial_txx9.c\n+++ b/drivers/tty/serial/serial_txx9.c\n@@ -422,7 +422,7 @@ static void wait_for_xmitr(struct uart_port *up)\n \t\tudelay(1);\n \n \t/* Wait up to 1s for flow control if necessary */\n-\tif (up->flags & UPF_CONS_FLOW) {\n+\tif (uart_get_cons_flow(up)) {\n \t\ttmout = 1000000;\n \t\twhile (--tmout &&\n \t\t       (sio_in(up, TXX9_SICISR) & TXX9_SICISR_CTSS))\n@@ -857,7 +857,7 @@ serial_txx9_console_write(struct console *co, const char *s, unsigned int count)\n \t *\tDisable flow-control if enabled (and unnecessary)\n \t */\n \tflcr = sio_in(up, TXX9_SIFLCR);\n-\tif (!(up->flags & UPF_CONS_FLOW) && (flcr & TXX9_SIFLCR_TES))\n+\tif (!uart_get_cons_flow(up) && (flcr & TXX9_SIFLCR_TES))\n \t\tsio_out(up, TXX9_SIFLCR, flcr & ~TXX9_SIFLCR_TES);\n \n \tuart_console_write(up, s, count, serial_txx9_console_putchar);\ndiff --git a/drivers/tty/serial/sunsu.c b/drivers/tty/serial/sunsu.c\nindex 6505a1930da9a..97019b5ec49e2 100644\n--- a/drivers/tty/serial/sunsu.c\n+++ b/drivers/tty/serial/sunsu.c\n@@ -1245,7 +1245,7 @@ static void wait_for_xmitr(struct uart_sunsu_port *up)\n \t} while (!uart_lsr_tx_empty(status));\n \n \t/* Wait up to 1s for flow control if necessary */\n-\tif (up->port.flags & UPF_CONS_FLOW) {\n+\tif (uart_get_cons_flow(&up->port)) {\n \t\ttmout = 1000000;\n \t\twhile (--tmout &&\n \t\t       ((serial_in(up, UART_MSR) & UART_MSR_CTS) == 0))\n","prefixes":["tty","v3","2/6"]}