From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32E31C433EF for ; Mon, 6 Jun 2022 10:05:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233301AbiFFKFg (ORCPT ); Mon, 6 Jun 2022 06:05:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39416 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233033AbiFFKF2 (ORCPT ); Mon, 6 Jun 2022 06:05:28 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D9E916BFEC; Mon, 6 Jun 2022 03:05:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509924; x=1686045924; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2Rq6Epv0uyMLUulCniZ8IRYQ84/AGOV0y8cwA8BYZnA=; b=XSQV2DzPZgByIuqUb84Duc4RFb8xbcXPXdO28sHSmGDmWWR/u9ETrObT F2yEXEdpIfV4f16XxrFdjN/EuoqRl/1P2Hb+ncCNPALGpAvoFJa9+vA4A R67uXQiWEOrYJbsXDh7nGYP5yKh9Tzhkcfk4mVAwrX3day/WDGGIxbKnq rA0FMHBlGwkLNLJE5AGAAjAEnafLonxxZA/1DslbXRJa9NBg7DMF2i+pY EopQf9TjRjB6A3VFsJmJwsHVE0suXFbUYlgXkElBCtl60/JFLai+fEwKL WjLC34BnKmF0ijdcm3DWC8M/SjUraH1Rz2Jyj59UbO5318cF2b7JDAeP5 A==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987031" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987031" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:04:54 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523402" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:04:52 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 01/36] serial: Add uart_rs485_config() Date: Mon, 6 Jun 2022 13:03:58 +0300 Message-Id: <20220606100433.13793-2-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A few serial drivers make a call to rs485_config() themselves (all these seem to relate to init). Convert them all to use a common helper which makes it easy to make adjustments on tasks related to it as serial_rs485 struct sanitization is going to be added. In pci_fintek_setup() (in 8250_pci.c), the rs485_config() call was made with NULL, however, it can be changed to pass uart_port's rs485 struct. No other callers should pass NULL into rs485_config() so the NULL check can now be eliminated. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_pci.c | 6 ++---- drivers/tty/serial/8250/8250_port.c | 2 +- drivers/tty/serial/fsl_lpuart.c | 2 +- drivers/tty/serial/imx.c | 2 +- drivers/tty/serial/serial_core.c | 6 ++++++ include/linux/serial_core.h | 1 + 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8= 250_pci.c index a17619db7939..fb0a49e39072 100644 --- a/drivers/tty/serial/8250/8250_pci.c +++ b/drivers/tty/serial/8250/8250_pci.c @@ -1562,9 +1562,7 @@ static int pci_fintek_rs485_config(struct uart_port *= port, =20 pci_read_config_byte(pci_dev, 0x40 + 8 * *index + 7, &setting); =20 - if (!rs485) - rs485 =3D &port->rs485; - else if (rs485->flags & SER_RS485_ENABLED) + if (rs485->flags & SER_RS485_ENABLED) memset(rs485->padding, 0, sizeof(rs485->padding)); else memset(rs485, 0, sizeof(*rs485)); @@ -1689,7 +1687,7 @@ static int pci_fintek_init(struct pci_dev *dev) * pciserial_resume_ports() */ port =3D serial8250_get_port(priv->line[i]); - pci_fintek_rs485_config(&port->port, NULL); + uart_rs485_config(&port->port); } else { /* First init without port data * force init to RS232 Mode diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/= 8250_port.c index 78b6dedc43e6..d7384ab364d2 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -3199,7 +3199,7 @@ static void serial8250_config_port(struct uart_port *= port, int flags) autoconfig(up); =20 if (port->rs485.flags & SER_RS485_ENABLED) - port->rs485_config(port, &port->rs485); + uart_rs485_config(port); =20 /* if access method is AU, it is a 16550 with a quirk */ if (port->type =3D=3D PORT_16550A && port->iotype =3D=3D UPIO_AU) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuar= t.c index 0d6e62f6bb07..509a7912fa9d 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -2724,7 +2724,7 @@ static int lpuart_probe(struct platform_device *pdev) sport->port.rs485.delay_rts_after_send) dev_err(&pdev->dev, "driver doesn't support RTS delays\n"); =20 - sport->port.rs485_config(&sport->port, &sport->port.rs485); + uart_rs485_config(&sport->port); =20 ret =3D devm_request_irq(&pdev->dev, sport->port.irq, handler, 0, DRIVER_NAME, sport); diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index 7d2094dc5a59..9ce09b81ac9b 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c @@ -2338,7 +2338,7 @@ static int imx_uart_probe(struct platform_device *pde= v) dev_err(&pdev->dev, "low-active RTS not possible when receiver is off, enabling receiver\n"= ); =20 - imx_uart_rs485_config(&sport->port, &sport->port.rs485); + uart_rs485_config(&sport->port); =20 /* Disable interrupts before requesting them */ ucr1 =3D imx_uart_readl(sport, UCR1); diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_c= ore.c index 9a85b41caa0a..8466181db4e9 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -1276,6 +1276,12 @@ static int uart_get_icount(struct tty_struct *tty, return 0; } =20 +int uart_rs485_config(struct uart_port *port) +{ + return port->rs485_config(port, &port->rs485); +} +EXPORT_SYMBOL_GPL(uart_rs485_config); + static int uart_get_rs485_config(struct uart_port *port, struct serial_rs485 __user *rs485) { diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index cbd5070bc87f..d3ebb4db2d80 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -592,4 +592,5 @@ static inline int uart_handle_break(struct uart_port *p= ort) !((cflag) & CLOCAL)) =20 int uart_get_rs485_mode(struct uart_port *port); +int uart_rs485_config(struct uart_port *port); #endif /* LINUX_SERIAL_CORE_H */ --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C105EC43334 for ; Mon, 6 Jun 2022 10:05:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233398AbiFFKFn (ORCPT ); Mon, 6 Jun 2022 06:05:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233081AbiFFKF3 (ORCPT ); Mon, 6 Jun 2022 06:05:29 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D9D7D6B7CC; Mon, 6 Jun 2022 03:05:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509924; x=1686045924; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=UPKALUhJ57HvaWDZolkV+MIlJXrWd+36QgzI4liyduE=; b=lF/Gh3WLZLTqCjYR0f7ocPh+f2pxTbo2bQf1XM5A8u+LVPTYS/QJlI1Y Z0q8Vx6hJ10WPquYbZGssxQ7eoJPvze/Y1IKdMyIX0rI8GxDcdq1alJ31 3bXfWP5dHD5eO88VBj7vXW4NVZ8i4ck4IIECOAAsqbaLOVAnAVe+yCqm5 ObQ7RX7RFKO9szKRHKlf7n2KdaH+xcGs/UmQu6kMRp1hSO++YoDsGr8S4 p2OFPgqVBcTo7CAJkaL04sIxw4sJQzXAhZCCS1IA1m1R+/bq6132WCJPI KFb8JwvghDLXGZ/7PeX50PDOMhLtnRZCNgFCtxj7Fi3Gwrc+bc9NlmNZj g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987033" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987033" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:04:57 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523421" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:04:56 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 02/36] serial: Move serial_rs485 sanitization into separate function Date: Mon, 6 Jun 2022 13:03:59 +0300 Message-Id: <20220606100433.13793-3-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add uart_sanitize_serial_rs485() function for sanitizing serial_rs485 structure fields. No functional changes. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/serial_core.c | 55 +++++++++++++++++--------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_c= ore.c index 8466181db4e9..44a50158552d 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -1276,6 +1276,35 @@ static int uart_get_icount(struct tty_struct *tty, return 0; } =20 +static void uart_sanitize_serial_rs485(struct uart_port *port, struct seri= al_rs485 *rs485) +{ + /* pick sane settings if the user hasn't */ + if (!(rs485->flags & SER_RS485_RTS_ON_SEND) =3D=3D + !(rs485->flags & SER_RS485_RTS_AFTER_SEND)) { + dev_warn_ratelimited(port->dev, + "%s (%d): invalid RTS setting, using RTS_ON_SEND instead\n", + port->name, port->line); + rs485->flags |=3D SER_RS485_RTS_ON_SEND; + rs485->flags &=3D ~SER_RS485_RTS_AFTER_SEND; + } + + if (rs485->delay_rts_before_send > RS485_MAX_RTS_DELAY) { + rs485->delay_rts_before_send =3D RS485_MAX_RTS_DELAY; + dev_warn_ratelimited(port->dev, + "%s (%d): RTS delay before sending clamped to %u ms\n", + port->name, port->line, rs485->delay_rts_before_send); + } + + if (rs485->delay_rts_after_send > RS485_MAX_RTS_DELAY) { + rs485->delay_rts_after_send =3D RS485_MAX_RTS_DELAY; + dev_warn_ratelimited(port->dev, + "%s (%d): RTS delay after sending clamped to %u ms\n", + port->name, port->line, rs485->delay_rts_after_send); + } + /* Return clean padding area to userspace */ + memset(rs485->padding, 0, sizeof(rs485->padding)); +} + int uart_rs485_config(struct uart_port *port) { return port->rs485_config(port, &port->rs485); @@ -1311,31 +1340,7 @@ static int uart_set_rs485_config(struct uart_port *p= ort, if (copy_from_user(&rs485, rs485_user, sizeof(*rs485_user))) return -EFAULT; =20 - /* pick sane settings if the user hasn't */ - if (!(rs485.flags & SER_RS485_RTS_ON_SEND) =3D=3D - !(rs485.flags & SER_RS485_RTS_AFTER_SEND)) { - dev_warn_ratelimited(port->dev, - "%s (%d): invalid RTS setting, using RTS_ON_SEND instead\n", - port->name, port->line); - rs485.flags |=3D SER_RS485_RTS_ON_SEND; - rs485.flags &=3D ~SER_RS485_RTS_AFTER_SEND; - } - - if (rs485.delay_rts_before_send > RS485_MAX_RTS_DELAY) { - rs485.delay_rts_before_send =3D RS485_MAX_RTS_DELAY; - dev_warn_ratelimited(port->dev, - "%s (%d): RTS delay before sending clamped to %u ms\n", - port->name, port->line, rs485.delay_rts_before_send); - } - - if (rs485.delay_rts_after_send > RS485_MAX_RTS_DELAY) { - rs485.delay_rts_after_send =3D RS485_MAX_RTS_DELAY; - dev_warn_ratelimited(port->dev, - "%s (%d): RTS delay after sending clamped to %u ms\n", - port->name, port->line, rs485.delay_rts_after_send); - } - /* Return clean padding area to userspace */ - memset(rs485.padding, 0, sizeof(rs485.padding)); + uart_sanitize_serial_rs485(port, &rs485); =20 spin_lock_irqsave(&port->lock, flags); ret =3D port->rs485_config(port, &rs485); --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3F4EACCA473 for ; Mon, 6 Jun 2022 10:06:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233439AbiFFKF7 (ORCPT ); Mon, 6 Jun 2022 06:05:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233257AbiFFKFb (ORCPT ); Mon, 6 Jun 2022 06:05:31 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE8476FA14; Mon, 6 Jun 2022 03:05:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509928; x=1686045928; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Mfuk/Ulz3tcWe5aofNbaRZ7MSjnx+XkGpaTECDG0FLE=; b=TyTJQ3g6X5MMkprFqWu+LslQ+hUrSCaco+qHbJCTOj2vzvAcJEMHR1Rl gQVBeeQrf2YeKruUNC37rNFpnywIz0pK76vhc/M88yx9yo1yZRe+13aHD m3H6xVC5POK1/ZDba4t9JSJhBtZBXDd/TTp9OLN2EPkKy3T7lMGzO0jM8 v4Fzm/UT+1C0imw99cpRChIvDx2L4vUXNfhsu6/sHNrV4vSaTdmzOb1sn Xo4Z545ijH3Gy1W98iSnGeAiomxn0SLygAXtiCcxAVO6Yf+pKOG8kmke4 pgGo3QfOL6JBH66itIb7v9/4o75h5VH4KMSaofF/q7Zv38Jz+wXjdM10L Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987034" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987034" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:00 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523437" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:04:58 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 03/36] serial: Add rs485_supported to uart_port Date: Mon, 6 Jun 2022 13:04:00 +0300 Message-Id: <20220606100433.13793-4-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Preparing to move serial_rs485 struct sanitization into serial core, each driver has to provide what fields/flags it supports. This information is pointed into by rs485_supported. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_core.c | 1 + include/linux/serial_core.h | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/= 8250_core.c index cfbd2de0ca6e..12c5e5d0ce6d 100644 --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c @@ -1004,6 +1004,7 @@ int serial8250_register_8250_port(const struct uart_8= 250_port *up) uart->port.throttle =3D up->port.throttle; uart->port.unthrottle =3D up->port.unthrottle; uart->port.rs485_config =3D up->port.rs485_config; + uart->port.rs485_supported =3D up->port.rs485_supported; uart->port.rs485 =3D up->port.rs485; uart->rs485_start_tx =3D up->rs485_start_tx; uart->rs485_stop_tx =3D up->rs485_stop_tx; diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index d3ebb4db2d80..5518b70177b3 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h @@ -254,6 +254,7 @@ struct uart_port { struct attribute_group *attr_group; /* port specific attributes */ const struct attribute_group **tty_groups; /* all attributes (serial core= use only) */ struct serial_rs485 rs485; + const struct serial_rs485 *rs485_supported; /* Supported mask for serial_= rs485 */ struct gpio_desc *rs485_term_gpio; /* enable RS485 bus termination */ struct serial_iso7816 iso7816; void *private_data; /* generic platform data pointer */ --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B78E0CCA473 for ; Mon, 6 Jun 2022 10:06:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233449AbiFFKGM (ORCPT ); Mon, 6 Jun 2022 06:06:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39670 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233289AbiFFKFd (ORCPT ); Mon, 6 Jun 2022 06:05:33 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EAE166FA19; Mon, 6 Jun 2022 03:05:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509929; x=1686045929; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=30sgEmomZFJSjr9ND+w2PFIvZclLSnuuV9GPE1kuVgI=; b=P/6fB59tKAS+++Ev8mLX5KcQJjwgT0nIKcD74+Fv/vC7G8/Pj0ibNTcO 9mY4p1twYlb+wyh+OcBr1KjDM+JSzPCr9obHxGZ6B6JtRj85UwVfzDChK +MRbIgj3+1LNFyjEDVYnjGrjX/dUNeNhTjpyupL1fTL6tc7pKNdLYG0VM b7SMI4rJg8Pni5sPq7LLhls+9AAE0Y5uamJa8irKRWIvmqCSBKFDUUUIt lPjJHiu7xdq7a7047fUnjbjorqej5nKIKavHlq4842+9HVSXeh9a4T+36 N4OBq2xm14GKaXP1GJKmQ45IjGrm5RCa6fe7XDRtSlR3y42lEppLv2XM7 g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987036" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987036" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:03 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523476" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:01 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 04/36] serial: 8250: Create serial8250_em485_supported for em485 users Date: Mon, 6 Jun 2022 13:04:01 +0300 Message-Id: <20220606100433.13793-5-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Create serial8250_em485_supported for the serial_rs485 features supported by the em485 framework. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250.h | 1 + drivers/tty/serial/8250/8250_port.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h index d70adaa3b117..e5d44867a876 100644 --- a/drivers/tty/serial/8250/8250.h +++ b/drivers/tty/serial/8250/8250.h @@ -187,6 +187,7 @@ int serial8250_em485_config(struct uart_port *port, str= uct serial_rs485 *rs485); void serial8250_em485_start_tx(struct uart_8250_port *p); void serial8250_em485_stop_tx(struct uart_8250_port *p); void serial8250_em485_destroy(struct uart_8250_port *p); +extern struct serial_rs485 serial8250_em485_supported; =20 /* MCR <-> TIOCM conversion */ static inline int serial8250_TIOCM_to_MCR(int tiocm) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/= 8250_port.c index d7384ab364d2..a825fbc215a7 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -647,6 +647,14 @@ void serial8250_em485_destroy(struct uart_8250_port *p) } EXPORT_SYMBOL_GPL(serial8250_em485_destroy); =20 +struct serial_rs485 serial8250_em485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND | + SER_RS485_TERMINATE_BUS | SER_RS485_RX_DURING_TX, + .delay_rts_before_send =3D 1, + .delay_rts_after_send =3D 1, +}; +EXPORT_SYMBOL_GPL(serial8250_em485_supported); + /** * serial8250_em485_config() - generic ->rs485_config() callback * @port: uart port --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 725EFC433EF for ; Mon, 6 Jun 2022 10:06:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233417AbiFFKGH (ORCPT ); Mon, 6 Jun 2022 06:06:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39604 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233270AbiFFKFc (ORCPT ); Mon, 6 Jun 2022 06:05:32 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EAC4864722; Mon, 6 Jun 2022 03:05:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509928; x=1686045928; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7X5MPO2HXoQHC4qsFsROjNvsfaX0x10tatJ5YNAZRDs=; b=AYAuQAyWMqL1ZH3i1upJZGOWALb3bFR4oRzJ9N0E1sNuEuBNER4QLqDi WSiyYhVY9KpFPHE31I8DI6G8GYIoyv3D74D+rk7+0o2IwPV95w2Ka6Ydz xcHsLd7sXIObNlbriSFHTyWKhhZL1MISzAliktRQFk4+E2eXSDooXVkwm ARgvGCBLvYqcoIX2kb6k7Mw7HZ4MZebJq/NLwzWhA/VOUq+KXwV79hh23 ZCC86MyCHMQ9gd0qMw5Frmfzfa5OdDNLEg15sqDwZCuy8G9MDooa6j6H+ 4GiQqCO2FTbTiv4pDVBLK4Cj04TytLXXDpSX8/c+jdwniEjEpnI0OHnaM w==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987037" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987037" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:07 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523506" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:04 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Florian Fainelli , Ray Jui , Scott Branden , Broadcom Kernel Team , Nicolas Saenz Julienne , linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 05/36] serial: 8250_bcm2835aux: Use serial8250_em485_supported Date: Mon, 6 Jun 2022 13:04:02 +0300 Message-Id: <20220606100433.13793-6-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org bcm2835aux uses em485, fill in rs485_supported accordingly. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_bcm2835aux.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tty/serial/8250/8250_bcm2835aux.c b/drivers/tty/serial= /8250/8250_bcm2835aux.c index 2a1226a78a0c..d9f1e618cfbd 100644 --- a/drivers/tty/serial/8250/8250_bcm2835aux.c +++ b/drivers/tty/serial/8250/8250_bcm2835aux.c @@ -108,6 +108,7 @@ static int bcm2835aux_serial_probe(struct platform_devi= ce *pdev) up.port.flags =3D UPF_SHARE_IRQ | UPF_FIXED_PORT | UPF_FIXED_TYPE | UPF_SKIP_TEST | UPF_IOREMAP; up.port.rs485_config =3D serial8250_em485_config; + up.port.rs485_supported =3D &serial8250_em485_supported; up.rs485_start_tx =3D bcm2835aux_rs485_start_tx; up.rs485_stop_tx =3D bcm2835aux_rs485_stop_tx; =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 99DDBC43334 for ; Mon, 6 Jun 2022 10:06:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233529AbiFFKG0 (ORCPT ); Mon, 6 Jun 2022 06:06:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233290AbiFFKFd (ORCPT ); Mon, 6 Jun 2022 06:05:33 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BEEE17037D; Mon, 6 Jun 2022 03:05:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509931; x=1686045931; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=mvMP5iOD0jyEc6hOIs4E2k/EmjgKpS0mQlR4xWMekx0=; b=XTza74f/4pFYwUzFa9fLyuZ3nV41yw6QForA+rjeLUYyq8mKEGbT02Dn tKaU7R7dWoDrC67ImBO0S6ZzAHLuzT9P+GaDeI/SJrlN1sC/dtjQYr32W GopXaQWophrXv5E5Z9xjeOw6j7J50vKLYvVhtgXG7ltNTVLl1wYasD+GR Gmd4d/ZpCuxsWwTV3+Ab5+jpPClCQCGr3sQiyui8FMlR0Cg/x5HomRMT/ lfSX9xEEpSNENRJfxY7C00cyIL0TxF/ln+7uFsIabw7sLKN3Y4UMQqomH ILBDFasSQYnDjABQe8xmpG18XFSpvCih/AA6Yizwua9qmBrNctt5PLwjS g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987040" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987040" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:10 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523560" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:08 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 06/36] serial: 8250_dwlib: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:03 +0300 Message-Id: <20220606100433.13793-7-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. When the driver is using em485, take advantage of serial8250_em485_supported. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_dwlib.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/tty/serial/8250/8250_dwlib.c b/drivers/tty/serial/8250= /8250_dwlib.c index fbabfdd8c7b8..120b29519d74 100644 --- a/drivers/tty/serial/8250/8250_dwlib.c +++ b/drivers/tty/serial/8250/8250_dwlib.c @@ -149,6 +149,11 @@ static bool dw8250_detect_rs485_hw(struct uart_port *p) return reg; } =20 +static const struct serial_rs485 dw8250_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RX_DURING_TX | SER_RS485_RTS_ON_= SEND | + SER_RS485_RTS_AFTER_SEND, +}; + void dw8250_setup_port(struct uart_port *p) { struct dw8250_port_data *pd =3D p->private_data; @@ -159,8 +164,10 @@ void dw8250_setup_port(struct uart_port *p) pd->hw_rs485_support =3D dw8250_detect_rs485_hw(p); if (pd->hw_rs485_support) { p->rs485_config =3D dw8250_rs485_config; + p->rs485_supported =3D &dw8250_rs485_supported; } else { p->rs485_config =3D serial8250_em485_config; + p->rs485_supported =3D &serial8250_em485_supported; up->rs485_start_tx =3D serial8250_em485_start_tx; up->rs485_stop_tx =3D serial8250_em485_stop_tx; } --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3ED30CCA473 for ; Mon, 6 Jun 2022 10:06:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233504AbiFFKGS (ORCPT ); Mon, 6 Jun 2022 06:06:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233295AbiFFKFd (ORCPT ); Mon, 6 Jun 2022 06:05:33 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E1C856D1BF; Mon, 6 Jun 2022 03:05:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509932; x=1686045932; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=WqrcVFYGblqHCkvnnCBwU3N04CPl2ZyImCOIMc3L9wQ=; b=gRfhsJfDJaPPnxEkXA3YbSqweQ3KD6srTe/ng1Vm659xkcHyVHf6Kk56 /dvapv4f3YO5II+fNvbq2WrNP+ftmDBNEpmcDyoj+J4VSRMwerCA2v9Cm HGBWYOx29smrdWSbgMZy9j3ZFFGHI1MUS/x+IVhBfdJ95B4da6aUV1Yan iPikNNPks3MMwhBG4yPMR6VkVE+lrJyNcWqmUJtCAHZeW8a3W6FK0NmZQ m0sG9kDxT+QNIFVktXH3k6Cap1Ey9VKDj5olLRt7lOoAI2PoxskgReW4I jwCly0LLMi+c1jE9JeuCfknkJVir2D6yw88lTV3AgH39f74oNCPHJQdQI Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987042" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987042" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:13 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523580" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:11 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 07/36] serial: 8250_exar: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:04 +0300 Message-Id: <20220606100433.13793-8-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_exar.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/= 8250_exar.c index 7292917ac878..11916f603a3d 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -113,6 +113,7 @@ struct exar8250; =20 struct exar8250_platform { int (*rs485_config)(struct uart_port *, struct serial_rs485 *); + const struct serial_rs485 *rs485_supported; int (*register_gpio)(struct pci_dev *, struct uart_8250_port *); void (*unregister_gpio)(struct uart_8250_port *); }; @@ -431,10 +432,15 @@ static int generic_rs485_config(struct uart_port *por= t, return 0; } =20 +static const struct serial_rs485 generic_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED, +}; + static const struct exar8250_platform exar8250_default_platform =3D { .register_gpio =3D xr17v35x_register_gpio, .unregister_gpio =3D xr17v35x_unregister_gpio, .rs485_config =3D generic_rs485_config, + .rs485_supported =3D &generic_rs485_supported, }; =20 static int iot2040_rs485_config(struct uart_port *port, @@ -470,6 +476,10 @@ static int iot2040_rs485_config(struct uart_port *port, return generic_rs485_config(port, rs485); } =20 +static const struct serial_rs485 iot2040_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RX_DURING_TX | SER_RS485_TERMINA= TE_BUS, +}; + static const struct property_entry iot2040_gpio_properties[] =3D { PROPERTY_ENTRY_U32("exar,first-pin", 10), PROPERTY_ENTRY_U32("ngpios", 1), @@ -498,6 +508,7 @@ static int iot2040_register_gpio(struct pci_dev *pcidev, =20 static const struct exar8250_platform iot2040_platform =3D { .rs485_config =3D iot2040_rs485_config, + .rs485_supported =3D &iot2040_rs485_supported, .register_gpio =3D iot2040_register_gpio, .unregister_gpio =3D xr17v35x_unregister_gpio, }; @@ -540,6 +551,7 @@ pci_xr17v35x_setup(struct exar8250 *priv, struct pci_de= v *pcidev, =20 port->port.uartclk =3D baud * 16; port->port.rs485_config =3D platform->rs485_config; + port->port.rs485_supported =3D platform->rs485_supported; =20 /* * Setup the UART clock for the devices on expansion slot to --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F0D59C43334 for ; Mon, 6 Jun 2022 10:06:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233577AbiFFKGj (ORCPT ); Mon, 6 Jun 2022 06:06:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233299AbiFFKFe (ORCPT ); Mon, 6 Jun 2022 06:05:34 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 11E6C703F8; Mon, 6 Jun 2022 03:05:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509933; x=1686045933; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=45ZGB+Mt9hakBvLDZWBXID2+gQ0mP+GP7HtxatKCn3U=; b=RxpNUNL15K5rIEzbb9RLZpSnC+J4vHykTwx8vrbN8iOKEn1qjil7bGgf mlQdL9M19b7yhxbyxqUw+DYuxkUw0FWNtUk864jDP3BbcyHt8Zr8xpEv4 OgHd7V8R4Pdq09u+0N7VJV+cFsT8zmFESSk/rwZp5ohxDopUxXjpWCUkV SZMtJwQy1MYAYJK3BK8HIovumhoeKIx733hH0fu7oJpz7AuDZ4GM9FAY+ +kmTFUMtLHJPjq671LM8b+XCZGNdVuYh1kAZHxs4VZfz4ttAF+f/kr+BP nmZb1Z4RQ5ZSqD3degdJMA5rxSyeJHOCuE8c+JBjkFbrG2NA5iwKRjmJ5 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987043" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987043" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:16 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523593" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:14 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 08/36] serial: 8250_fintek: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:05 +0300 Message-Id: <20220606100433.13793-9-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Differentiate based on which port is in question. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_fintek.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/tty/serial/8250/8250_fintek.c b/drivers/tty/serial/825= 0/8250_fintek.c index dba5950b8d0e..6e98c376e082 100644 --- a/drivers/tty/serial/8250/8250_fintek.c +++ b/drivers/tty/serial/8250/8250_fintek.c @@ -424,6 +424,17 @@ static int probe_setup_port(struct fintek_8250 *pdata, return -ENODEV; } =20 +/* Only the first port supports delays */ +static const struct serial_rs485 fintek_8250_rs485_supported_port0 =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND, + .delay_rts_before_send =3D 1, + .delay_rts_after_send =3D 1, +}; + +static const struct serial_rs485 fintek_8250_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND, +}; + static void fintek_8250_set_rs485_handler(struct uart_8250_port *uart) { struct fintek_8250 *pdata =3D uart->port.private_data; @@ -435,6 +446,10 @@ static void fintek_8250_set_rs485_handler(struct uart_= 8250_port *uart) case CHIP_ID_F81866: case CHIP_ID_F81865: uart->port.rs485_config =3D fintek_8250_rs485_config; + if (!pdata->index) + uart->port.rs485_supported =3D &fintek_8250_rs485_supported_port0; + else + uart->port.rs485_supported =3D &fintek_8250_rs485_supported; break; =20 default: /* No RS485 Auto direction functional */ --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B00A9C43334 for ; Mon, 6 Jun 2022 10:06:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233550AbiFFKGe (ORCPT ); Mon, 6 Jun 2022 06:06:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233310AbiFFKFk (ORCPT ); Mon, 6 Jun 2022 06:05:40 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E6DC719EF; Mon, 6 Jun 2022 03:05:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509933; x=1686045933; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uiu6/OhYYKXexbF3L+XQuHEeDHHGh13iJur0g7QkeDo=; b=IwTitZE36Z3pIA+HQV40r84DMV4fHpBCqOhtXSeDrowCdwIXOmcFjGof iifQmuekdNbU8bhNoHqXdZuwKBpgkNDd+qdwP73bnOYnOc0Eq09NfCdwA 1FeLCju+G2Dmp7fJcIFJ8bnkuWHQiGoc1Wqf1dPBlphuBcKAHWXUVen51 F9n3AV+NGyPGOgQrRdcupIq6ztEWvlLY4WjD1Xv1zgX4ffzNMTWm5nyrr fzIQ4GNHy7Gfy3AMc33Jh7/YnBpYwi7k7Zo3X47XJB4whFwOE6MwPpExJ /o+tlDCCb76+BctUx9gNT/h21rx6PczFG+DQLju9RgEM3gXTHC/Zlhkmi w==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987045" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987045" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:19 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523608" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:17 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Vladimir Zapolskiy , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 09/36] serial: 8250_lpc18cc: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:06 +0300 Message-Id: <20220606100433.13793-10-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_lpc18xx.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/tty/serial/8250/8250_lpc18xx.c b/drivers/tty/serial/82= 50/8250_lpc18xx.c index 570e25d6f37e..66ce5d05fe9c 100644 --- a/drivers/tty/serial/8250/8250_lpc18xx.c +++ b/drivers/tty/serial/8250/8250_lpc18xx.c @@ -98,6 +98,12 @@ static void lpc18xx_uart_serial_out(struct uart_port *p,= int offset, int value) writel(value, p->membase + offset); } =20 +static const struct serial_rs485 lpc18xx_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND, + .delay_rts_after_send =3D 1, + /* Delay RTS before send is not supported */ +}; + static int lpc18xx_serial_probe(struct platform_device *pdev) { struct lpc18xx_uart_data *data; @@ -168,6 +174,7 @@ static int lpc18xx_serial_probe(struct platform_device = *pdev) uart.port.uartclk =3D clk_get_rate(data->clk_uart); uart.port.private_data =3D data; uart.port.rs485_config =3D lpc18xx_rs485_config; + uart.port.rs485_supported =3D &lpc18xx_rs485_supported; uart.port.serial_out =3D lpc18xx_uart_serial_out; =20 uart.dma =3D &data->dma; --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6F7EC433EF for ; Mon, 6 Jun 2022 10:06:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233560AbiFFKGp (ORCPT ); Mon, 6 Jun 2022 06:06:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233315AbiFFKFk (ORCPT ); Mon, 6 Jun 2022 06:05:40 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 14C6E72215; Mon, 6 Jun 2022 03:05:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509934; x=1686045934; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=a3xiWY53ELIfaqncp7g4ITt07ZnohdpPD8QPL9eVyFY=; b=Q+XY1j14M0Xs2P8k8LIlYVlydLEfPK1/EiRwnHW1kGjCSNNKL8bPkvwh HdUjbh9nSHe3kC4yt/JVFLqtkQ1dwNwsdb0YxKPntbB/e43WY3+CvIMiM y1MUyXCtjsXHPxQ9sgK1ZLADTdrLbNKJSyqINxOijMeHgi1RKTW+1Xo0g ozpLrs0IKZXtp1zZTbEYVqBSK5/AVGtN4LoVM4POKekfx1HgOtQStT64H hoVzpWtG7mj1Z1wrY19sabVwz610C5ie9/P25bEq/zSRMYooDLdFioqVi NMcb2rmF7trMILOdI1bbwTz6G1QjTo/pWXZLgFB9uG5+oyLsT0fMuBi4J A==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987049" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987049" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:21 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523630" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:20 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 10/36] serial: 8250_of: Use serial8250_em485_supported Date: Mon, 6 Jun 2022 13:04:07 +0300 Message-Id: <20220606100433.13793-11-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 8250_of uses em485, fill in rs485_supported accordingly. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_of.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tty/serial/8250/8250_of.c b/drivers/tty/serial/8250/82= 50_of.c index 5a699a1aa79c..65cccd559db2 100644 --- a/drivers/tty/serial/8250/8250_of.c +++ b/drivers/tty/serial/8250/8250_of.c @@ -165,6 +165,7 @@ static int of_platform_serial_setup(struct platform_dev= ice *ofdev, =20 port->dev =3D &ofdev->dev; port->rs485_config =3D serial8250_em485_config; + port->rs485_supported =3D &serial8250_em485_supported; up->rs485_start_tx =3D serial8250_em485_start_tx; up->rs485_stop_tx =3D serial8250_em485_stop_tx; =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 28D15C433EF for ; Mon, 6 Jun 2022 10:07:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233404AbiFFKHN (ORCPT ); Mon, 6 Jun 2022 06:07:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233330AbiFFKFl (ORCPT ); Mon, 6 Jun 2022 06:05:41 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C3DBC8FD51; Mon, 6 Jun 2022 03:05:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509934; x=1686045934; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=gopuiUjawsIQJXpUDy/dJyIooGKGJ4go2NXCzVHTfHA=; b=aOvs0MvObGjSQ4I9794yc+RpmQl4yl5Do4BcR0YGmmqcMI9y1wifOiUd GURijDOcR2+zUu0IPCCwt0B/5788zoE3gksNc5eNtL/qAhe5YxaTNFr53 sK97PSNzCBj5Rl+8mjaCDY6y5wyxK/+5vb3uVMjOjk6dmiVOpdW/RD76T vLzN6EWzMuEucI1ep8QGPun1ppzhA39/fKooVr+hEutPhFb5Ti2CDCsX9 Xb/xH93veY65xPOuLPibzcEJc1iqx00lMpRJbvmHQvubpvF+XYrDXKbaA xlWNsJDnqaF/ws05eG7zox9N8Hefw6vdgJz0tBE4mPpFZmuDVWE6zWncP g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987050" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987050" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:24 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523653" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:22 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 11/36] serial: 8250_pci: Fill in rs485_supported for pci_fintek Date: Mon, 6 Jun 2022 13:04:08 +0300 Message-Id: <20220606100433.13793-12-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_pci.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8= 250_pci.c index fb0a49e39072..a76254031bc2 100644 --- a/drivers/tty/serial/8250/8250_pci.c +++ b/drivers/tty/serial/8250/8250_pci.c @@ -1597,6 +1597,11 @@ static int pci_fintek_rs485_config(struct uart_port = *port, return 0; } =20 +static const struct serial_rs485 pci_fintek_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND, + /* F81504/508/512 does not support RTS delay before or after send */ +}; + static int pci_fintek_setup(struct serial_private *priv, const struct pciserial_board *board, struct uart_8250_port *port, int idx) @@ -1616,6 +1621,7 @@ static int pci_fintek_setup(struct serial_private *pr= iv, port->port.iotype =3D UPIO_PORT; port->port.iobase =3D iobase; port->port.rs485_config =3D pci_fintek_rs485_config; + port->port.rs485_supported =3D &pci_fintek_rs485_supported; =20 data =3D devm_kzalloc(&pdev->dev, sizeof(u8), GFP_KERNEL); if (!data) --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD916C43334 for ; Mon, 6 Jun 2022 10:08:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233732AbiFFKHi (ORCPT ); Mon, 6 Jun 2022 06:07:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233322AbiFFKFl (ORCPT ); Mon, 6 Jun 2022 06:05:41 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F0890939D3; Mon, 6 Jun 2022 03:05:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509935; x=1686045935; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=X41obtw/Rrfpr4lluXXoiB8WmKq7kV84aelg5fksidU=; b=C2FS1WzF/0mmKoMa71TL62yEgonVQGQN69DZD0T5KqFmKHoThCOE0sTs 23efTcNNvmEkYrG+u4nkDNHxWcNJ9HnDmQf47qtmJL5Gdthlf8WG8e8Cv Nt2yqjPU4HxE6YVqbyNhuMVIranvoxiCG4hV36aqnKS6z2IJnDAHJkOZ9 TtX5SPcUulaQX4tneoFpbOUQPTQWkUhjOjDCnlqAA1m0K++CGf+oOKhd9 dRQ0BccSV1OsH8b7roXYNWbdrqfyBXcQIn6wafE7Bt1zpQH33iezQMqtC N0ulrX+/3nNWq4dZmvMrMBe9/FIQjj++5uFzSziNU0wzXJ+zMRfCSJGvr g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987052" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987052" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:27 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523671" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:25 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Russell King , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 12/36] serial: pl011: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:09 +0300 Message-Id: <20220606100433.13793-13-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/amba-pl011.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl01= 1.c index 97ef41cb2721..cdc466e89aa8 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2751,6 +2751,13 @@ static int pl011_register_port(struct uart_amba_port= *uap) return ret; } =20 +static const struct serial_rs485 pl011_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND | + SER_RS485_RX_DURING_TX, + .delay_rts_before_send =3D 1, + .delay_rts_after_send =3D 1, +}; + static int pl011_probe(struct amba_device *dev, const struct amba_id *id) { struct uart_amba_port *uap; @@ -2777,6 +2784,7 @@ static int pl011_probe(struct amba_device *dev, const= struct amba_id *id) uap->port.irq =3D dev->irq[0]; uap->port.ops =3D &amba_pl011_pops; uap->port.rs485_config =3D pl011_rs485_config; + uap->port.rs485_supported =3D &pl011_rs485_supported; snprintf(uap->type, sizeof(uap->type), "PL011 rev%u", amba_rev(dev)); =20 ret =3D pl011_setup_port(&dev->dev, uap, &dev->res, portnr); --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFD86C43334 for ; Mon, 6 Jun 2022 10:07:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233580AbiFFKHU (ORCPT ); Mon, 6 Jun 2022 06:07:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233332AbiFFKFl (ORCPT ); Mon, 6 Jun 2022 06:05:41 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 270BE64D0B; Mon, 6 Jun 2022 03:05:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509935; x=1686045935; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=aI/KgY4+B8Ci+VydAqA1rpLQE3wNHPRRmKH/bbm45dk=; b=azvu6Vpl08iHAE6WYq8mP4ZHUw6I5cvE4//luw8ibmxH9n6zu0CEPliC Xe59QqS1xWeZ49jjiH3ZG6DK4MlrGLK9rhNRyAWVQJqF8Hsph3r2HQz95 bce/kdIOsauV2PgCSjfMmfzMuJnkmMmI5XrgpP1tRQ5+XCDyAgTPTomXE 6CHM6RlW3gxQjfeo40f0ie4rSsRo+Au+xoHLqxKs3BG0QHbCk6aU/L3cT nz7nXFuq5ln2eN1GNJhA6D1zSivWYlNtiYPm7nbLWpxxXoF82mcrw7oBx y1Mvc+nSTj1zhsFaUVfkuxTgkkm2PZL01lX5+JbC0ib8dHErNALc1QLEn w==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987053" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987053" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:30 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523691" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:28 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 13/36] serial: ar933x: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:10 +0300 Message-Id: <20220606100433.13793-14-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. In the case where RTS is lacking, RS485 cannot be enabled so provide zero rs485_supported for that case. Perhaps it would make sense to not provide rs485_config() at all in that case but such a change would have userspace visible impact/change in behavior so this patch does not attempt it. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/ar933x_uart.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/tty/serial/ar933x_uart.c b/drivers/tty/serial/ar933x_u= art.c index 6269dbf93546..ab2c5b2a1ce8 100644 --- a/drivers/tty/serial/ar933x_uart.c +++ b/drivers/tty/serial/ar933x_uart.c @@ -702,6 +702,11 @@ static struct uart_driver ar933x_uart_driver =3D { .cons =3D NULL, /* filled in runtime */ }; =20 +static const struct serial_rs485 ar933x_no_rs485 =3D {}; +static const struct serial_rs485 ar933x_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND, +}; + static int ar933x_uart_probe(struct platform_device *pdev) { struct ar933x_uart_port *up; @@ -773,6 +778,7 @@ static int ar933x_uart_probe(struct platform_device *pd= ev) port->fifosize =3D AR933X_UART_FIFO_SIZE; port->ops =3D &ar933x_uart_ops; port->rs485_config =3D ar933x_config_rs485; + port->rs485_supported =3D &ar933x_rs485_supported; =20 baud =3D ar933x_uart_get_baud(port->uartclk, AR933X_UART_MAX_SCALE, 1); up->min_baud =3D max_t(unsigned int, baud, AR933X_UART_MIN_BAUD); @@ -796,6 +802,7 @@ static int ar933x_uart_probe(struct platform_device *pd= ev) !up->rts_gpiod) { dev_err(&pdev->dev, "lacking rts-gpio, disabling RS485\n"); port->rs485.flags &=3D ~SER_RS485_ENABLED; + port->rs485_supported =3D &ar933x_no_rs485; } =20 #ifdef CONFIG_SERIAL_AR933X_CONSOLE --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D318C433EF for ; Mon, 6 Jun 2022 10:06:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233583AbiFFKGy (ORCPT ); Mon, 6 Jun 2022 06:06:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40540 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233339AbiFFKFl (ORCPT ); Mon, 6 Jun 2022 06:05:41 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A5D4DE15F0; Mon, 6 Jun 2022 03:05:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509936; x=1686045936; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=WndMwTVfuW00rnE/S6LgTXND/zSnSa30GDTQqWRCwI8=; b=hHE2W06YlK+ItNQYMWYHY0U+xNz3LDnMX5WbYI8mjpL6eIhrjOEFyE7u 2l/m4ACY9Adl9GoUgt2qspaxuQuvYYBvFtl4OpsfvDmqiksEnNjUKKTCf CxcAgiKJPpw2+gsA3NWqzIeIrgo4vNeSAhu8iS6nDaTGJNaLgkNqi1sSS hbKGm/ZhN+Ic6u0WbsS1mBkMMvw3I94AFzjmzFEfm4jg1k8C1TDxR8D/4 TEEkoq+bOajzQ75hWF+ljINpwTrlbfgq8e/ukFIX7wDPBWZ4qePkDystN D6F9WyJDbwJCZqL8vAh3zY0SGMYaqLhu2uuB3CmG91V7rmFy+uHU2mG3e g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987054" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987054" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:34 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523712" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:31 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Richard Genoud , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 14/36] serial: atmel: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:11 +0300 Message-Id: <20220606100433.13793-15-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/atmel_serial.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_s= erial.c index dd1c7e4bd1c9..74dd1d3ac46f 100644 --- a/drivers/tty/serial/atmel_serial.c +++ b/drivers/tty/serial/atmel_serial.c @@ -2473,6 +2473,12 @@ static const struct uart_ops atmel_pops =3D { #endif }; =20 +static const struct serial_rs485 atmel_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_AFTER_SEND | SER_RS485_RX_DU= RING_TX, + .delay_rts_before_send =3D 1, + .delay_rts_after_send =3D 1, +}; + /* * Configure the port from the platform device resource info. */ @@ -2494,6 +2500,7 @@ static int atmel_init_port(struct atmel_uart_port *at= mel_port, port->mapbase =3D mpdev->resource[0].start; port->irq =3D platform_get_irq(mpdev, 0); port->rs485_config =3D atmel_config_rs485; + port->rs485_supported =3D &atmel_rs485_supported; port->iso7816_config =3D atmel_config_iso7816; port->membase =3D NULL; =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F449C433EF for ; Mon, 6 Jun 2022 10:08:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233766AbiFFKHq (ORCPT ); Mon, 6 Jun 2022 06:07:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233349AbiFFKFl (ORCPT ); Mon, 6 Jun 2022 06:05:41 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D144F10A62B; Mon, 6 Jun 2022 03:05:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509937; x=1686045937; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wwmLHiqZboEiZnfiV6e1hu8KZfAipQe3aQ1BtK145s8=; b=Dtd4fF2XKtLCivDKQAnG7tfL1+a+pRMAlyjmq21sLcRPF6Ew8a4TdQUx ZMM5Du9uqnWovlrfnQICXE/o5JT4an8xaPBoe2c2+Yfup9/911Dy7TO54 Tqrs7EStMJFHPpFS0qZAFlIP8e9BTzWBx3WojfvtKliTJV44M6QUFsNra qW+yZbdgGMlVi68YM1jDJ9pHq4Ee/S2wKDNPfTqxELlGWGKHcWPyin48M qNODD4wvyFF7lcWwERGbHhKJkcQ++1qHY1hhQM48BYsZhfPbjQpvs3AJr KuGio716yOljfHoHwFpVcwC1tOOJJkA7bejkI6Ct/w/FnN+Wq6+FTlMcj A==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987057" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987057" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:37 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523724" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:35 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 15/36] serial: fsl_lpuart: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:12 +0300 Message-Id: <20220606100433.13793-16-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/fsl_lpuart.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuar= t.c index 509a7912fa9d..88692dc9eefa 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -2621,6 +2621,11 @@ static struct uart_driver lpuart_reg =3D { .cons =3D LPUART_CONSOLE, }; =20 +static const struct serial_rs485 lpuart_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND, + /* delay_rts_* and RX_DURING_TX are not supported */ +}; + static int lpuart_probe(struct platform_device *pdev) { const struct lpuart_soc_data *sdata =3D of_device_get_match_data(&pdev->d= ev); @@ -2660,6 +2665,7 @@ static int lpuart_probe(struct platform_device *pdev) sport->port.rs485_config =3D lpuart32_config_rs485; else sport->port.rs485_config =3D lpuart_config_rs485; + sport->port.rs485_supported =3D &lpuart_rs485_supported; =20 sport->ipg_clk =3D devm_clk_get(&pdev->dev, "ipg"); if (IS_ERR(sport->ipg_clk)) { --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2010DC43334 for ; Mon, 6 Jun 2022 10:07:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233630AbiFFKHG (ORCPT ); Mon, 6 Jun 2022 06:07:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233391AbiFFKFm (ORCPT ); Mon, 6 Jun 2022 06:05:42 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 863D46D19A; Mon, 6 Jun 2022 03:05:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509941; x=1686045941; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xfl+6OEZtY6tN3qb8+voitCmW0WYuA4tz0RJFqBgckQ=; b=l+bCZgfmEKe9XkWVHvf8jfbX9BkFrjLT/x2HvzrWI0IVskCB0/xR0fv4 O0pV6rqr4UrHIaUDhTRWyGLZ7Ql4Vs5KxxJymYbPu+lk/EUwl497jlIzH hqqdxm9nFGbMs07IjrelkMg4IsPMZT1bN6uTZk/VJIBv1ym2KafvgFmtX ed5+44WJ7JnGA5NrtWqwUSrTtDGpKviBTWsFlKaZh/NFqoWpulhej4SS1 zzqr44FCYzGyKHdOJ4yXVDPGRWK2nw5pWa+7pfDwthIuCdpzd2cSpyi03 1m3odjsRX4v5cOunItmwpbxi/m+ObL+Ig8ml7aDsnNGGCG+bBmVm86AU0 A==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987059" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987059" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:41 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523733" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:38 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 16/36] serial: imx: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:13 +0300 Message-Id: <20220606100433.13793-17-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. In the case where RTS is lacking, RS485 cannot be enabled so provide zero rs485_supported for that case. Perhaps it would make sense to not provide rs485_config() at all in that case but such a change would have userspace visible impact/change in behavior so this patch does not attempt it. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/imx.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index 9ce09b81ac9b..ba853bc9b4db 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c @@ -2200,6 +2200,14 @@ static enum hrtimer_restart imx_trigger_stop_tx(stru= ct hrtimer *t) return HRTIMER_NORESTART; } =20 +static const struct serial_rs485 imx_no_rs485 =3D {}; /* No RS485 if no RT= S */ +static const struct serial_rs485 imx_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND | + SER_RS485_RX_DURING_TX, + .delay_rts_before_send =3D 1, + .delay_rts_after_send =3D 1, +}; + /* Default RX DMA buffer configuration */ #define RX_DMA_PERIODS 16 #define RX_DMA_PERIOD_LEN (PAGE_SIZE / 4) @@ -2279,6 +2287,11 @@ static int imx_uart_probe(struct platform_device *pd= ev) sport->port.has_sysrq =3D IS_ENABLED(CONFIG_SERIAL_IMX_CONSOLE); sport->port.ops =3D &imx_uart_pops; sport->port.rs485_config =3D imx_uart_rs485_config; + /* RTS is required to control the RS485 transmitter */ + if (sport->have_rtscts || sport->have_rtsgpio) + sport->port.rs485_supported =3D &imx_rs485_supported; + else + sport->port.rs485_supported =3D &imx_no_rs485; sport->port.flags =3D UPF_BOOT_AUTOCONF; timer_setup(&sport->timer, imx_uart_timeout, 0); =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6A4B3C43334 for ; Mon, 6 Jun 2022 10:07:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233574AbiFFKHw (ORCPT ); Mon, 6 Jun 2022 06:07:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40872 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233383AbiFFKFp (ORCPT ); Mon, 6 Jun 2022 06:05:45 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 08CC2117645; Mon, 6 Jun 2022 03:05:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509943; x=1686045943; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=s53Dk60G9dMXNR1df+TpMHjiob82mIuwJNYs7D/wnls=; b=QCA28Xbl2JNHIC/uW60Cy+lEXQgU9ePdPU1z8InqV60WyCGMo7IFFVkW DXWwOr5fxtBuwo3iNCWjaUEzhnzrDL45kiS5PxQQv/EEUFc5QXQM/NUXk 9gDAfTSaGay9Yk7pnqsZIPchJOuYK1LK7yrd4aOx8JscI8lmhRQqBaRFV r8Lnu3Ei2NMbA3x8Yo8VwbKa7E9UMe0oaW+DPgL1qRb7sGXEk4e8bb3Bh vb3pCH91VPAm1HOj1cxMJlZmELB3RI+U/yRDZ5K6kBPXFEKK3oxeP6qIw 7RfaTt98sWy2KjbGOGn1+myhfiSxiYi/Rtsstpl1Api1PbYEllwdwG1QU w==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987061" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987061" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:43 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523745" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:42 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 17/36] serial: max310x: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:14 +0300 Message-Id: <20220606100433.13793-18-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/max310x.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c index a0b6ea52d133..9837f542a55a 100644 --- a/drivers/tty/serial/max310x.c +++ b/drivers/tty/serial/max310x.c @@ -1249,6 +1249,12 @@ static int max310x_gpio_set_config(struct gpio_chip = *chip, unsigned int offset, } #endif =20 +static const struct serial_rs485 max310x_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RX_DURIN= G_TX, + .delay_rts_before_send =3D 1, + .delay_rts_after_send =3D 1, +}; + static int max310x_probe(struct device *dev, const struct max310x_devtype = *devtype, struct regmap *regmap, int irq) { @@ -1357,6 +1363,7 @@ static int max310x_probe(struct device *dev, const st= ruct max310x_devtype *devty s->p[i].port.membase =3D (void __iomem *)~0; s->p[i].port.uartclk =3D uartclk; s->p[i].port.rs485_config =3D max310x_rs485_config; + s->p[i].port.rs485_supported =3D &max310x_rs485_supported; s->p[i].port.ops =3D &max310x_ops; /* Disable all interrupts */ max310x_port_write(&s->p[i].port, MAX310X_IRQEN_REG, 0); --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B31FC433EF for ; Mon, 6 Jun 2022 10:08:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233517AbiFFKH6 (ORCPT ); Mon, 6 Jun 2022 06:07:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233445AbiFFKGC (ORCPT ); Mon, 6 Jun 2022 06:06:02 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AADCB1248D3; Mon, 6 Jun 2022 03:05:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509946; x=1686045946; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7XSfGDSnHBYzZ97A7lWYCvMsBnzI6IPieM3jLFqdRQY=; b=SI3yj8OSI8bltOiLecpIrnVZ+IRrTdrbD+XnJCJVPt7bKVwg679PI4oH SmqKTNqgyQD64mjjYRCIgkimRR6V/kpBib7APg6mrb+yfVVaeZH2xmETu 8tji6L1txBZbWMToglDQ1r/gAEGc5C1DI9rJWgz42lN9Ttas5B8WHCjc/ w1nCp8FY4gX9g99myVJBnHY0pRhi3uuTqDZ/PjzE8qFuT/vg9WvW0DVkw gEPVMUIk5xge76/np3CtE0SN5jQ+Np8FtY91/nqsUfypYFYlOXTXei//X JiGD7Q0+HROP8oYQ56ppsPxzu61ElGQdtFTPjlqkKckcFwuKDSzHHgu5D Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987063" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987063" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:46 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523762" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:44 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 18/36] serial: mcf: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:15 +0300 Message-Id: <20220606100433.13793-19-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/mcf.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c index 2aec62b5d6c4..655255e0c76a 100644 --- a/drivers/tty/serial/mcf.c +++ b/drivers/tty/serial/mcf.c @@ -453,6 +453,10 @@ static int mcf_config_rs485(struct uart_port *port, st= ruct serial_rs485 *rs485) return 0; } =20 +static const struct serial_rs485 mcf_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_AFTER_SEND, +}; + /*************************************************************************= ***/ =20 /* @@ -502,6 +506,7 @@ int __init early_mcf_setup(struct mcf_platform_uart *pl= atp) port->uartclk =3D MCF_BUSCLK; port->flags =3D UPF_BOOT_AUTOCONF; port->rs485_config =3D mcf_config_rs485; + port->rs485_supported =3D &mcf_rs485_supported; port->ops =3D &mcf_uart_ops; } =20 @@ -629,6 +634,7 @@ static int mcf_probe(struct platform_device *pdev) port->ops =3D &mcf_uart_ops; port->flags =3D UPF_BOOT_AUTOCONF; port->rs485_config =3D mcf_config_rs485; + port->rs485_supported =3D &mcf_rs485_supported; port->has_sysrq =3D IS_ENABLED(CONFIG_SERIAL_MCF_CONSOLE); =20 uart_add_one_port(&mcf_driver, port); --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D88AC43334 for ; Mon, 6 Jun 2022 10:08:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233769AbiFFKID (ORCPT ); Mon, 6 Jun 2022 06:08:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233461AbiFFKGD (ORCPT ); Mon, 6 Jun 2022 06:06:03 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 343D6127988; Mon, 6 Jun 2022 03:05:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509949; x=1686045949; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VW7eoIRDLDLFWBbt2VZnnx9snvB/xQDw6V2b9QVadRI=; b=HJEZJ6xYcKSNzGG7/bebQN1YtFj017bw5HLf41nUpxbF3sbj4RNzwBKz euPS+/TYnaMTo8RnRqYv/Au7PhbrlIBi6SMt0sVRTv6lSDHcGz42l2DFH YaXnAKZWy0lr75JrRE4zTCq+H8UzS7vK9BQt5+/41uIiswZXFhFOQduQ2 okuhoqxQAMfi+19sixdkLwiB5JDs3hE8WVBaqx0+7iqiD9maG3u6YXRBa WpTYi+RiImE/H+9lXHmC23SBticuRlWjHutOxOWZ01b9HFui4OS+v4Grr dWJi/QJGgVmP/80iKB7X3DI+bgN3jYYQKrr6SVEARrriNYBPUQnBZ3TOs g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987065" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987065" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:49 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523773" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:47 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 19/36] serial: omap: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:16 +0300 Message-Id: <20220606100433.13793-20-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/omap-serial.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-ser= ial.c index 46f4d4cacb6e..98622c35d896 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c @@ -1559,6 +1559,13 @@ static int serial_omap_probe_rs485(struct uart_omap_= port *up, return 0; } =20 +static const struct serial_rs485 serial_omap_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND | + SER_RS485_RX_DURING_TX, + .delay_rts_before_send =3D 1, + .delay_rts_after_send =3D 1, +}; + static int serial_omap_probe(struct platform_device *pdev) { struct omap_uart_port_info *omap_up_info =3D dev_get_platdata(&pdev->dev); @@ -1636,6 +1643,7 @@ static int serial_omap_probe(struct platform_device *= pdev) up->port.flags =3D omap_up_info->flags; up->port.uartclk =3D omap_up_info->uartclk; up->port.rs485_config =3D serial_omap_config_rs485; + up->port.rs485_supported =3D &serial_omap_rs485_supported; if (!up->port.uartclk) { up->port.uartclk =3D DEFAULT_CLK_SPEED; dev_warn(&pdev->dev, --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E8A2C43334 for ; Mon, 6 Jun 2022 10:08:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233775AbiFFKIH (ORCPT ); Mon, 6 Jun 2022 06:08:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233462AbiFFKGD (ORCPT ); Mon, 6 Jun 2022 06:06:03 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C3261128C2C; Mon, 6 Jun 2022 03:05:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509951; x=1686045951; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=S3gDlxKOTB6cNszyQehsU3Wkz7UsMQbXrzXb2KIgEfU=; b=VN5mTF4UczqR+iuDwFRsQL79FdxOThp9BmshVAmyF16nGr3koUE7Gjqf GbC865z7PAEgSIEdKptrsIW4KS0XmEAj+kZtpX7/NGKoqWE+OCwormabm gHn/AjtyGn1daVakk2z6EiEtB1FcixPg/gJFgRJH9QyNrQ+p/2OoGAYNH U3KMdp0jS+lI1o/QBKiLFKZGEyMVwllHe9naFt6IinQaUIqTanCVn/KWC 6xwcI60dqkKuWO+TRgxf3rdaMKS5WgnPtLAOMo4L15+0faZj7H3N8UhSu 587FwYjKQFLdRZu7AZfSwqZHiMGpuXzfRSfjolKoYtf4Zu/zgBXK1D2e3 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987068" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987068" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:51 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523780" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:50 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 20/36] serial: sc16is7xx: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:17 +0300 Message-Id: <20220606100433.13793-21-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. This driver does not support delay_rts_after_send but the pre-existing behavior is to return -EINVAL if delay_rts_after_send is non-zero. In contrast, other drivers that do not support delay_rts_after_send either zero delay_rts_after_send or do not care (leave the inaccurate value). As changing this would cause userspace visible impact, the change is not attempted here. But perhaps it should be still tried (maybe nobody finds that kind of API oddity significant)? Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/sc16is7xx.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 8472bf70477c..b3162dfe97b1 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -1354,6 +1354,12 @@ static int sc16is7xx_gpio_direction_output(struct gp= io_chip *chip, } #endif =20 +static const struct serial_rs485 sc16is7xx_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_AFTER_SEND, + .delay_rts_before_send =3D 1, + .delay_rts_after_send =3D 1, /* Not supported but keep returning -EINVAL = */ +}; + static int sc16is7xx_probe(struct device *dev, const struct sc16is7xx_devtype *devtype, struct regmap *regmap, int irq) @@ -1456,6 +1462,7 @@ static int sc16is7xx_probe(struct device *dev, s->p[i].port.iotype =3D UPIO_PORT; s->p[i].port.uartclk =3D freq; s->p[i].port.rs485_config =3D sc16is7xx_config_rs485; + s->p[i].port.rs485_supported =3D &sc16is7xx_rs485_supported; s->p[i].port.ops =3D &sc16is7xx_ops; s->p[i].old_mctrl =3D 0; s->p[i].port.line =3D sc16is7xx_alloc_line(); --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 44E84C43334 for ; Mon, 6 Jun 2022 10:08:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233687AbiFFKIW (ORCPT ); Mon, 6 Jun 2022 06:08:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233468AbiFFKGF (ORCPT ); Mon, 6 Jun 2022 06:06:05 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E4D112DBEC; Mon, 6 Jun 2022 03:05:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509955; x=1686045955; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ZM/pEhOqDZJ2vEjEvweRMXHfCanuCKshhfEXaADs/+c=; b=VbiL4JLVsWYN60pCpVxMhSnIhF+xCGHB7hl6W9xKfaA4yIaDcG6LJwAn iaZm9yF5ci/TqLdOPEx7hNZi16D7Oh8r1OovW4z3OgUS9oqOPmXplrkex 9ZAwlyZD396NEpCSc0sEFoyat98w9YN8A5qjOCWWjZMBMpTv3MMqirwOf QnE49DTEeoNnm8eN8MpAuhOjk6qDltj5wV2aQKzN29XABSLK6fcwMDHlN 4PVma0m5zq9zBgjCLVixRY2W/ScG1TwPkOM/kevyxMyq8Tgf1k6zycULp Fv/2C++SNdiQsZx65BrsWLiUoMjrcKgpojx+6hRsNgVJkKW3/bL9+qBgL A==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987070" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987070" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:55 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523787" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:52 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Maxime Coquelin , Alexandre Torgue , linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 21/36] serial: stm32: Fill in rs485_supported Date: Mon, 6 Jun 2022 13:04:18 +0300 Message-Id: <20220606100433.13793-22-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add information on supported serial_rs485 features. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/stm32-usart.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-us= art.c index b7b44f4050d4..db3dd9731ee1 100644 --- a/drivers/tty/serial/stm32-usart.c +++ b/drivers/tty/serial/stm32-usart.c @@ -1375,6 +1375,13 @@ static void stm32_usart_deinit_port(struct stm32_por= t *stm32port) clk_disable_unprepare(stm32port->clk); } =20 +static const struct serial_rs485 stm32_rs485_supported =3D { + .flags =3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTE= R_SEND | + SER_RS485_RX_DURING_TX, + .delay_rts_before_send =3D 1, + .delay_rts_after_send =3D 1, +}; + static int stm32_usart_init_port(struct stm32_port *stm32port, struct platform_device *pdev) { @@ -1394,6 +1401,7 @@ static int stm32_usart_init_port(struct stm32_port *s= tm32port, port->has_sysrq =3D IS_ENABLED(CONFIG_SERIAL_STM32_CONSOLE); port->irq =3D irq; port->rs485_config =3D stm32_usart_config_rs485; + port->rs485_supported =3D &stm32_rs485_supported; =20 ret =3D stm32_usart_init_rs485(port, pdev); if (ret) --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 321B8C43334 for ; Mon, 6 Jun 2022 10:08:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233787AbiFFKIa (ORCPT ); Mon, 6 Jun 2022 06:08:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233472AbiFFKGG (ORCPT ); Mon, 6 Jun 2022 06:06:06 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3408A12D1D5; Mon, 6 Jun 2022 03:05:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509958; x=1686045958; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3ePdwoX+DSakNv+ndMXaVUewbzkFOgoQ5XvDH6NwVyI=; b=VjDQ8wbVggOR2ISOSCz8yGUU60pdMVS6YISTfxQQvDO45BkoG10x75+D grrMyxGgNUxJy0NcWF7YYJ8lh475HnYvRyLslZN9wcjpd4PeYgVPNQSRv KOx7YpCAbfPO4UVVs9PhvlrlbohJuu1+aRty19ClDAMFJqIWcbX2nLCy/ U1t2m+jGPgNl9vg14xV49/G4gQYFJ/k2VfwK61ISp3tamTfxSlpfjwSci xihsUtidViodI/jqTb7eecArwu/00tJYBteR933pzgGBbwMEvX3xCfqC1 i97Y7GWbKXiZqPRhGu8uDD5sKYx8LRWFdD6B6v6yTgWH1grwEjAFWAaw/ w==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987071" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987071" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:58 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523793" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:55 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Jonathan Corbet , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 22/36] serial: Sanitize rs485_struct Date: Mon, 6 Jun 2022 13:04:19 +0300 Message-Id: <20220606100433.13793-23-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Sanitize serial_rs485 struct before calling into rs485_setup. The drivers provide supported_rs485 to help sanitization of the fields. If neither of SER_RS485_RTS_ON_SEND or SER_RS485_RTS_AFTER_SEND supported, don't pretend they can be set to sane settings but clear them both instead. If only one of them is supported it may look tempting to use the one driver supports to set the other, however, the userspace does not have that information readily available so it wouldn't be helpful. While adjusting the documentation, remove also the claim that TIOCGRS485 would call driver specific code. In reality, it does nothing else than copies the stored serial_rs485 structure from uart_port to userspace. Signed-off-by: Ilpo J=C3=A4rvinen --- .../driver-api/serial/serial-rs485.rst | 12 ++++--- drivers/tty/serial/serial_core.c | 33 ++++++++++++++++--- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/Documentation/driver-api/serial/serial-rs485.rst b/Documentati= on/driver-api/serial/serial-rs485.rst index 6bc824f948f9..00b5d333acba 100644 --- a/Documentation/driver-api/serial/serial-rs485.rst +++ b/Documentation/driver-api/serial/serial-rs485.rst @@ -38,10 +38,14 @@ RS485 Serial Communications the values given by the device tree. =20 Any driver for devices capable of working both as RS232 and RS485 should - implement the rs485_config callback in the uart_port structure. The - serial_core calls rs485_config to do the device specific part in respon= se - to TIOCSRS485 and TIOCGRS485 ioctls (see below). The rs485_config callb= ack - receives a pointer to struct serial_rs485. + implement the rs485_config callback and provide rs485_supported in the + uart_port structure. The serial core calls rs485_config to do the device + specific part in response to TIOCSRS485 ioctl (see below). The rs485_co= nfig + callback receives a pointer to a sanitizated serial_rs485 structure. The + serial_rs485 userspace provides is sanitized before calling rs485_config + using rs485_supported that indicates what RS485 features the driver sup= ports + for the uart_port. TIOCGRS485 ioctl can be used to read back the + serial_rs485 structure matching to the current configuration. =20 4. Usage from user-level =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_c= ore.c index 44a50158552d..f0d7b3d20731 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -1278,36 +1278,61 @@ static int uart_get_icount(struct tty_struct *tty, =20 static void uart_sanitize_serial_rs485(struct uart_port *port, struct seri= al_rs485 *rs485) { + u32 supported_flags =3D port->rs485_supported->flags; + /* pick sane settings if the user hasn't */ - if (!(rs485->flags & SER_RS485_RTS_ON_SEND) =3D=3D + if ((supported_flags & (SER_RS485_RTS_ON_SEND|SER_RS485_RTS_AFTER_SEND)) = && + !(rs485->flags & SER_RS485_RTS_ON_SEND) =3D=3D !(rs485->flags & SER_RS485_RTS_AFTER_SEND)) { dev_warn_ratelimited(port->dev, "%s (%d): invalid RTS setting, using RTS_ON_SEND instead\n", port->name, port->line); rs485->flags |=3D SER_RS485_RTS_ON_SEND; rs485->flags &=3D ~SER_RS485_RTS_AFTER_SEND; + supported_flags |=3D SER_RS485_RTS_ON_SEND|SER_RS485_RTS_AFTER_SEND; } =20 - if (rs485->delay_rts_before_send > RS485_MAX_RTS_DELAY) { + if (!port->rs485_supported->delay_rts_before_send) { + if (rs485->delay_rts_before_send) { + dev_warn_ratelimited(port->dev, + "%s (%d): RTS delay before sending not supported\n", + port->name, port->line); + } + rs485->delay_rts_before_send =3D 0; + } else if (rs485->delay_rts_before_send > RS485_MAX_RTS_DELAY) { rs485->delay_rts_before_send =3D RS485_MAX_RTS_DELAY; dev_warn_ratelimited(port->dev, "%s (%d): RTS delay before sending clamped to %u ms\n", port->name, port->line, rs485->delay_rts_before_send); } =20 - if (rs485->delay_rts_after_send > RS485_MAX_RTS_DELAY) { + if (!port->rs485_supported->delay_rts_after_send) { + if (rs485->delay_rts_after_send) { + dev_warn_ratelimited(port->dev, + "%s (%d): RTS delay after sending not supported\n", + port->name, port->line); + } + rs485->delay_rts_after_send =3D 0; + } else if (rs485->delay_rts_after_send > RS485_MAX_RTS_DELAY) { rs485->delay_rts_after_send =3D RS485_MAX_RTS_DELAY; dev_warn_ratelimited(port->dev, "%s (%d): RTS delay after sending clamped to %u ms\n", port->name, port->line, rs485->delay_rts_after_send); } + + rs485->flags &=3D supported_flags; + /* Return clean padding area to userspace */ memset(rs485->padding, 0, sizeof(rs485->padding)); } =20 int uart_rs485_config(struct uart_port *port) { - return port->rs485_config(port, &port->rs485); + struct serial_rs485 *rs485 =3D &port->rs485; + + uart_sanitize_serial_rs485(port, rs485); + + return port->rs485_config(port, rs485); } EXPORT_SYMBOL_GPL(uart_rs485_config); =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC510C43334 for ; Mon, 6 Jun 2022 10:08:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233801AbiFFKIm (ORCPT ); Mon, 6 Jun 2022 06:08:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42462 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233477AbiFFKGG (ORCPT ); Mon, 6 Jun 2022 06:06:06 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A87BC134E3E; Mon, 6 Jun 2022 03:06:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509961; x=1686045961; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=t7MRrVBt8mtQZVQp8WCbEVVhXVvzT6OcQwCWqDrYLuE=; b=mYiKP2grGFypaXBt0Elb8jeHUPg5oMZnVy0KOlGcjvm5/BR5e8DwzlCN Fz1n0dTcjbugNPT7GBEvxletzcq2vMch/KI9LZ6rSu8e9Z5CAzeNwxU2e 0AjvOHx3Wg1xYtDku1pAqat6JDXsDF9Fsv0w6k+lMTqsKWigy0tRLlZcM JA4qfRMCpHNel9eJVxkAZRYceJdJi90ghJtWoEMR/FaIrIwbV7iItLeb4 93emXyD4j9dKzIkyX5T2MYfBlZdwYhKAgFbM249VrnbZOHB3LzDTaaUij ppXk2jk3cZpCJNdRaP4DzK5fuKvMrsaRYpo2dV+WbBZ6kZJBuPRqYLC3b Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987072" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987072" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:00 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523812" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:05:58 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 23/36] serial: Clear rs485 struct when non-RS485 mode is set Date: Mon, 6 Jun 2022 13:04:20 +0300 Message-Id: <20220606100433.13793-24-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When SER_RS485_ENABLED is not set, having any other flag/field set in serial_rs485 struct does not have an effect different from not having them set. Thus, make the serial_rs485 struct also match the behavior for all flags, not just SER_RS485_ENABLED. Some drivers do similar clearing of rs485 struct in their rs485_config() already, but not all. This change makes the behavior consistent across drivers. Don't try to validate rs485 struct further when no RS485 is requested, this silences some bogus warnings. This change has (minor) userspace visible impact. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/serial_core.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_c= ore.c index f0d7b3d20731..6be538720564 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -1280,6 +1280,11 @@ static void uart_sanitize_serial_rs485(struct uart_p= ort *port, struct serial_rs4 { u32 supported_flags =3D port->rs485_supported->flags; =20 + if (!(rs485->flags & SER_RS485_ENABLED)) { + memset(rs485, 0, sizeof(*rs485)); + return; + } + /* pick sane settings if the user hasn't */ if ((supported_flags & (SER_RS485_RTS_ON_SEND|SER_RS485_RTS_AFTER_SEND)) = && !(rs485->flags & SER_RS485_RTS_ON_SEND) =3D=3D @@ -1329,10 +1334,15 @@ static void uart_sanitize_serial_rs485(struct uart_= port *port, struct serial_rs4 int uart_rs485_config(struct uart_port *port) { struct serial_rs485 *rs485 =3D &port->rs485; + int ret; =20 uart_sanitize_serial_rs485(port, rs485); =20 - return port->rs485_config(port, rs485); + ret =3D port->rs485_config(port, rs485); + if (ret) + memset(rs485, 0, sizeof(*rs485)); + + return ret; } EXPORT_SYMBOL_GPL(uart_rs485_config); =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33F86C433EF for ; Mon, 6 Jun 2022 10:08:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233699AbiFFKIt (ORCPT ); Mon, 6 Jun 2022 06:08:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42472 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233479AbiFFKGG (ORCPT ); Mon, 6 Jun 2022 06:06:06 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 41F561207C1; Mon, 6 Jun 2022 03:06:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509963; x=1686045963; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VcmEhh33jjTVe3ALqkigMTRIMktLH1f2shl4rAVdsNo=; b=AqkQC/tCmQaRPkmD8xPghrPUconYc5+bo4flPgoKUClgpcwaURf7ui9f AnP41louFP+sLyKdnxl53cy3ka69Ks7lRrO5g9khfWvlirQR4dMalAS3M /TAjnsxaY/D0odmZwFWUuDl1KlHE2F5FjOru+M6Dwhj1eKan83wjcTvl+ IlZO345kwectIf8mWJKxHorsSkFn3tb0h1wwHjdyCKrtsgU+EHq+wlM95 /YZNRrE+4SfE3JcRkcJ89/zOIcBfLL1/fT4Iaig/N8bLVOIHhrqJm5Xb+ YjEtgaWIZonReeBXMj/yBpIGS/YylueQy487rtzp1BCjk1jnWRjs4Zkvc A==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987076" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987076" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:03 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523814" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:01 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 24/36] serial: return -EINVAL for non-legacy RS485 flags Date: Mon, 6 Jun 2022 13:04:21 +0300 Message-Id: <20220606100433.13793-25-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In order to be add new flags more cleanly and safely, return -EINVAL from TIOCSRS485 ioctl for the flags bits which are not among the current legacy ones. This might cause a regression for userspace as those non-flag bits do not currently trigger -EINVAL. However, it would only occur if the userspace is sending garbage bits so perhaps we'll get away with this change. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/serial_core.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_c= ore.c index 6be538720564..621fc15e2e54 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -1276,6 +1276,27 @@ static int uart_get_icount(struct tty_struct *tty, return 0; } =20 +#define SER_RS485_LEGACY_FLAGS (SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND = | \ + SER_RS485_RTS_AFTER_SEND | SER_RS485_RX_DURING_TX | \ + SER_RS485_TERMINATE_BUS) + +static int uart_check_rs485_flags(struct uart_port *port, struct serial_rs= 485 *rs485) +{ + u32 flags =3D rs485->flags; + + /* Don't return -EINVAL for unsupported legacy flags */ + flags &=3D ~SER_RS485_LEGACY_FLAGS; + + /* + * For any bit outside of the legacy ones that is not supported by + * the driver, return -EINVAL. + */ + if (flags & ~port->rs485_supported->flags) + return -EINVAL; + + return 0; +} + static void uart_sanitize_serial_rs485(struct uart_port *port, struct seri= al_rs485 *rs485) { u32 supported_flags =3D port->rs485_supported->flags; @@ -1375,6 +1396,9 @@ static int uart_set_rs485_config(struct uart_port *po= rt, if (copy_from_user(&rs485, rs485_user, sizeof(*rs485_user))) return -EFAULT; =20 + ret =3D uart_check_rs485_flags(port, &rs485); + if (ret) + return ret; uart_sanitize_serial_rs485(port, &rs485); =20 spin_lock_irqsave(&port->lock, flags); --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C71D1C43334 for ; Mon, 6 Jun 2022 10:09:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233511AbiFFKJC (ORCPT ); Mon, 6 Jun 2022 06:09:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233257AbiFFKGH (ORCPT ); Mon, 6 Jun 2022 06:06:07 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AB9B137C52; Mon, 6 Jun 2022 03:06:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509966; x=1686045966; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=1ykVVHaG5+z6JMvFP2Lra95WjkVnEbI89bCUkQzfrvg=; b=SyChIlk2zTGpzc9kYp/5fHLX7TZ/hwkxW/cyWyud8yU949+lLrRbyt9B 5TGkFzBeOWFNrrkS90kYRCkaG9monXYf2yxJ+q1yHyacyZVvZkUBJURQ4 pzAim9ecCJjS3xKqx2beJxswfQGwUluQXr3qk16r7q+4Z5ZJ+ATMQOm48 lgrXQ+jmaeK7juybmHtX8lP3SdiqcmCo/iF6uDyMOgQzSV/5TDmWe5XDd ggHWcMlVO2oDH+s1tBXj8Wjp/Px2iV38AQw5QwKUXBSM9jBV1arIcP4Io YQAoO3ypsMiC/91tnjPN29SAI/0qUzg8KupfpNYgEkS4qxrlgO4TnJY+V Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987078" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987078" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:05 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523827" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:04 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 25/36] serial: 8250_dwlib: Remove serial_rs485 sanitization Date: Mon, 6 Jun 2022 13:04:22 +0300 Message-Id: <20220606100433.13793-26-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 sanitization and rs485 struct assignment. As serial_rs485 is already clear for the non-RS485 case by serial core, there no need to clear flags in the driver. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_dwlib.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/tty/serial/8250/8250_dwlib.c b/drivers/tty/serial/8250= /8250_dwlib.c index 120b29519d74..c83e7eaf3877 100644 --- a/drivers/tty/serial/8250/8250_dwlib.c +++ b/drivers/tty/serial/8250/8250_dwlib.c @@ -93,9 +93,6 @@ static int dw8250_rs485_config(struct uart_port *p, struc= t serial_rs485 *rs485) tcr &=3D ~DW_UART_TCR_XFER_MODE; =20 if (rs485->flags & SER_RS485_ENABLED) { - /* Clear unsupported flags. */ - rs485->flags &=3D SER_RS485_ENABLED | SER_RS485_RX_DURING_TX | - SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTER_SEND; tcr |=3D DW_UART_TCR_RS485_EN; =20 if (rs485->flags & SER_RS485_RX_DURING_TX) { @@ -111,8 +108,6 @@ static int dw8250_rs485_config(struct uart_port *p, str= uct serial_rs485 *rs485) dw8250_writel_ext(p, DW_UART_DE_EN, 1); dw8250_writel_ext(p, DW_UART_RE_EN, 1); } else { - rs485->flags =3D 0; - tcr &=3D ~DW_UART_TCR_RS485_EN; } =20 @@ -127,11 +122,6 @@ static int dw8250_rs485_config(struct uart_port *p, st= ruct serial_rs485 *rs485) =20 dw8250_writel_ext(p, DW_UART_TCR, tcr); =20 - rs485->delay_rts_before_send =3D 0; - rs485->delay_rts_after_send =3D 0; - - p->rs485 =3D *rs485; - return 0; } =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 567FFC43334 for ; Mon, 6 Jun 2022 10:09:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233615AbiFFKJG (ORCPT ); Mon, 6 Jun 2022 06:09:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233351AbiFFKGJ (ORCPT ); Mon, 6 Jun 2022 06:06:09 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9DFC3139C8A; Mon, 6 Jun 2022 03:06:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509968; x=1686045968; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=geGI3l4XWU1FlWu8pGiJvI1eL9aFCA+g7U3rNUsB2m0=; b=GOzShFeEAkEXygPApyTG3Yzr2buvwh6HsyVDwFalOcYb/ZJY82G8eAQg ue1XpHFEFyfP4jQfCHl3TurdK8rMNvXHWBXLKd2ZF5+nTyTIhH2avg+c4 bfJS+awo40LMRJawjK6IdG20BDBXct6GPYPTzi81FBvIIPCZRYkRLfA+H EQNaKYSj/b6SIQE8dACa0ith24dNxXMyKEjwjbyw7RB2IEvJljWp399Cs pDTYiIqZs/OOGo3gSx5yMZnYrbtkFW+6908YvJNDqRAH/+iqe7Uf/gcI6 RLMlrZ+4k8cU7R9512vbdNizJSke6wrDCh/LtdQtEJu3u2Xc9afzzH5UU w==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987081" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987081" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:08 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523839" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:06 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 26/36] serial: 8250_fintek: Remove serial_rs485 sanitization Date: Mon, 6 Jun 2022 13:04:23 +0300 Message-Id: <20220606100433.13793-27-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 sanitization and copying rs485 struct. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_fintek.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/tty/serial/8250/8250_fintek.c b/drivers/tty/serial/825= 0/8250_fintek.c index 6e98c376e082..1fb86c73786c 100644 --- a/drivers/tty/serial/8250/8250_fintek.c +++ b/drivers/tty/serial/8250/8250_fintek.c @@ -206,19 +206,7 @@ static int fintek_8250_rs485_config(struct uart_port *= port, if (!(rs485->flags & SER_RS485_RTS_ON_SEND) =3D=3D !(rs485->flags & SER_RS485_RTS_AFTER_SEND)) return -EINVAL; - memset(rs485->padding, 0, sizeof(rs485->padding)); config |=3D RS485_URA; - } else { - memset(rs485, 0, sizeof(*rs485)); - } - - rs485->flags &=3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | - SER_RS485_RTS_AFTER_SEND; - - /* Only the first port supports delays */ - if (pdata->index) { - rs485->delay_rts_before_send =3D 0; - rs485->delay_rts_after_send =3D 0; } =20 if (rs485->delay_rts_before_send) { @@ -241,8 +229,6 @@ static int fintek_8250_rs485_config(struct uart_port *p= ort, sio_write_reg(pdata, RS485, config); fintek_8250_exit_key(pdata->base_port); =20 - port->rs485 =3D *rs485; - return 0; } =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 89A44C43334 for ; Mon, 6 Jun 2022 10:09:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233638AbiFFKJK (ORCPT ); Mon, 6 Jun 2022 06:09:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233486AbiFFKGN (ORCPT ); Mon, 6 Jun 2022 06:06:13 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC8E513B2C4; Mon, 6 Jun 2022 03:06:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509971; x=1686045971; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=AqwC+FxddxhYwSjVH6EJblIR6L9xqWvygg7hjybJuBc=; b=bU9y9E13NvC4GZ8dhoiqbaVunUEDs5yrOKegE20koy2E/WaxNRDDx+Fi 3ayg+pS/aDiQyCTb1x5y2OBSrf7FjmFyloqq5hqwNdgCYblK4jqk/NML5 FdPh25dr4n5RgqL2tA/FxqJCYKTzpM0BaUlrnPD3tDdU6dNBKfxNqMtwh Q33c3OHL0Oj2sQep8fDN+H5R2q33EUL8/vHT3CxWL5rtfy4aB+w+ToaZK dmaKFijHiW80dqse9lp6ggcB6aw+B7lcnTlPts8wCm86zFITjb53XxNct Gm0Efy4IGaLnr2o/lzE40oE6NpBS4C8W0akC7FCi4Wj8LWkeWk1Ap4pxl Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987082" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987082" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:11 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523845" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:09 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Vladimir Zapolskiy , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 27/36] serial: 8250: lpc18xx: Remove serial_rs485 sanitization Date: Mon, 6 Jun 2022 13:04:24 +0300 Message-Id: <20220606100433.13793-28-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 sanitization and copying rs485 struct. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_lpc18xx.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/drivers/tty/serial/8250/8250_lpc18xx.c b/drivers/tty/serial/82= 50/8250_lpc18xx.c index 66ce5d05fe9c..3a1cb51cbc91 100644 --- a/drivers/tty/serial/8250/8250_lpc18xx.c +++ b/drivers/tty/serial/8250/8250_lpc18xx.c @@ -40,14 +40,6 @@ static int lpc18xx_rs485_config(struct uart_port *port, u32 rs485_dly_reg =3D 0; unsigned baud_clk; =20 - if (rs485->flags & SER_RS485_ENABLED) - memset(rs485->padding, 0, sizeof(rs485->padding)); - else - memset(rs485, 0, sizeof(*rs485)); - - rs485->flags &=3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | - SER_RS485_RTS_AFTER_SEND; - if (rs485->flags & SER_RS485_ENABLED) { rs485_ctrl_reg |=3D LPC18XX_UART_RS485CTRL_NMMEN | LPC18XX_UART_RS485CTRL_DCTRL; @@ -73,14 +65,9 @@ static int lpc18xx_rs485_config(struct uart_port *port, / baud_clk; } =20 - /* Delay RTS before send not supported */ - rs485->delay_rts_before_send =3D 0; - serial_out(up, LPC18XX_UART_RS485CTRL, rs485_ctrl_reg); serial_out(up, LPC18XX_UART_RS485DLY, rs485_dly_reg); =20 - port->rs485 =3D *rs485; - return 0; } =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9B4D2C433EF for ; Mon, 6 Jun 2022 10:09:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233662AbiFFKJP (ORCPT ); Mon, 6 Jun 2022 06:09:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43588 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233425AbiFFKGP (ORCPT ); Mon, 6 Jun 2022 06:06:15 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 43F4413A2C4; Mon, 6 Jun 2022 03:06:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509974; x=1686045974; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8oQ3ewHg3zpBccSONWwns1Fm40ESV4+zLrlmNBxoXUc=; b=OUDOoAppi34XWjZnkdXuaSAFbTRh6XT0Fgh1oa1Q2l2mLDeGCp+xQG37 0XINOY97DGyb5d1y2njwyP+ayWaEPXPxEgnqWyTL3K3AcHjZ2iU4UvmCZ Slma6N0EXLhrUr9RHqfPOHs00CdE1MlzcTLQIXd9KMYdxg4qZhoIY1mYg W9pQBRfjgZ5jMm7LWnWtnNrSTv7Xo3oloHmkZsW73lSTFUJxqjckQfzQ0 ZBq8xsL8OxoMGCYf1+SRbUVYSQoWQFbgRXx11lCj0cQ065544TWq+2+l4 C4iHQoEUI2LR0OEbXKQWGFxhlNFEdNO2IVELLqcl8FOYUKaCGu+vNJpNv A==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987083" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987083" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:13 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523854" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:12 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 28/36] serial: 8250_pci: Remove serial_rs485 sanitization Date: Mon, 6 Jun 2022 13:04:25 +0300 Message-Id: <20220606100433.13793-29-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 sanitization and copying rs485 struct. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_pci.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8= 250_pci.c index a76254031bc2..b6d71268aa7d 100644 --- a/drivers/tty/serial/8250/8250_pci.c +++ b/drivers/tty/serial/8250/8250_pci.c @@ -1562,14 +1562,6 @@ static int pci_fintek_rs485_config(struct uart_port = *port, =20 pci_read_config_byte(pci_dev, 0x40 + 8 * *index + 7, &setting); =20 - if (rs485->flags & SER_RS485_ENABLED) - memset(rs485->padding, 0, sizeof(rs485->padding)); - else - memset(rs485, 0, sizeof(*rs485)); - - /* F81504/508/512 not support RTS delay before or after send */ - rs485->flags &=3D SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND; - if (rs485->flags & SER_RS485_ENABLED) { /* Enable RTS H/W control mode */ setting |=3D FINTEK_RTS_CONTROL_BY_HW; @@ -1581,9 +1573,6 @@ static int pci_fintek_rs485_config(struct uart_port *= port, /* RTS driving low on TX */ setting |=3D FINTEK_RTS_INVERT; } - - rs485->delay_rts_after_send =3D 0; - rs485->delay_rts_before_send =3D 0; } else { /* Disable RTS H/W control mode */ setting &=3D ~(FINTEK_RTS_CONTROL_BY_HW | FINTEK_RTS_INVERT); @@ -1591,9 +1580,6 @@ static int pci_fintek_rs485_config(struct uart_port *= port, =20 pci_write_config_byte(pci_dev, 0x40 + 8 * *index + 7, setting); =20 - if (rs485 !=3D &port->rs485) - port->rs485 =3D *rs485; - return 0; } =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F4B9C433EF for ; Mon, 6 Jun 2022 10:09:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233711AbiFFKJS (ORCPT ); Mon, 6 Jun 2022 06:09:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42880 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233435AbiFFKGS (ORCPT ); Mon, 6 Jun 2022 06:06:18 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0144B13C4F3; Mon, 6 Jun 2022 03:06:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509976; x=1686045976; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=fM4JuWr/FScBki1o0CtzEbeVzUK3YqLgHDTrpxUHcIk=; b=TwskeiJ8ECJdSDGTI2U67xfScwdKz8UuSUwyneSusD7uimr2iiZF7B02 6ynv6ooX8aEt/0xipn2lpDtqif02ZL/rpjgI+ehFfEpM9k5mqMUOY075Q cNSZmh6huJgCELDDnuyzLUpJO2Sjk4ko5/lVsUhe3VgLcRN5XUHBQe7AE 680wzAMA1s/dckA+Cu3L9jwzAQnRaDJgmXtwR1ovJY9UGiKb610Ou5b5J OPdFOjHJAg1DWFKU2en7NgLp1JmvSXKyH8driEM8L8pnP+mKUbSMM3plD /QCj5+EpMWEE2Usp2U22C0NIjThBB+/sHQehgHnO2NvKPrRDf3HSG9ht7 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987084" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987084" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:16 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523865" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:14 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Russell King , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 29/36] serial: pl011: Remove serial_rs485 sanitization Date: Mon, 6 Jun 2022 13:04:26 +0300 Message-Id: <20220606100433.13793-30-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 sanitization. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/amba-pl011.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl01= 1.c index cdc466e89aa8..eccd66625d25 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2681,17 +2681,12 @@ static int pl011_find_free_port(void) static int pl011_get_rs485_mode(struct uart_amba_port *uap) { struct uart_port *port =3D &uap->port; - struct serial_rs485 *rs485 =3D &port->rs485; int ret; =20 ret =3D uart_get_rs485_mode(port); if (ret) return ret; =20 - /* clamp the delays to [0, 100ms] */ - rs485->delay_rts_before_send =3D min(rs485->delay_rts_before_send, 100U); - rs485->delay_rts_after_send =3D min(rs485->delay_rts_after_send, 100U); - return 0; } =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26E96C433EF for ; Mon, 6 Jun 2022 10:09:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233737AbiFFKJY (ORCPT ); Mon, 6 Jun 2022 06:09:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233507AbiFFKGU (ORCPT ); Mon, 6 Jun 2022 06:06:20 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A205113F422; Mon, 6 Jun 2022 03:06:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509979; x=1686045979; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/YabGktWvQG02Q/xoYLG4tb6J7+vtQn25dgAbOHlnbo=; b=HnO20zhfRM6HHbZDqXHftIHTrh4iIO/B6H+ebnleEsdEZXHWaAyh0NUt KC12iQHrjhm4Iytl+NPfq9uDWNu5FMzUgh6+HWBftprn4LHJg4ElmJMdE iLIAzdidQDt2/hUu96SI39584iiO9vH48rNhT6/2c6zr8tq+2gkHmTu3e r/1lbU6P+GKY7Y/t63ZMlh/529biIo0wiL+PDsICAGUPzMsPJ4XHK4ifb oN508xgNVBfwFmHQWW9/wmVvxDxUh+ENuR8JPFzI08i7QX3FMt9hh4Qr5 9reW3L4JEJizpT9206ux0RBw06pIGC8m1B5x6t28kGFnXX/cVE1gB2Pbx g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987085" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987085" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:19 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523868" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:17 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 30/36] serial: fsl_lpuart: Call core's sanitization and remove custom one Date: Mon, 6 Jun 2022 13:04:27 +0300 Message-Id: <20220606100433.13793-31-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 sanitization. Remove custom sanitization from lpuart_config_rs485. This change loses dev_err when SER_RS485_RX_DURING_TX is set due to incorrect configuration. Other drivers do not do similar prinout for full-duplex case and it should be done in serial core if it is desirable to notify on this condition. Personally, I doesn't see it important because the kernel gracefully downgrades to half-duplex. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/fsl_lpuart.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuar= t.c index 88692dc9eefa..d35414cb3e4e 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -1365,11 +1365,6 @@ static int lpuart_config_rs485(struct uart_port *por= t, ~(UARTMODEM_TXRTSPOL | UARTMODEM_TXRTSE); writeb(modem, sport->port.membase + UARTMODEM); =20 - /* clear unsupported configurations */ - rs485->delay_rts_before_send =3D 0; - rs485->delay_rts_after_send =3D 0; - rs485->flags &=3D ~SER_RS485_RX_DURING_TX; - if (rs485->flags & SER_RS485_ENABLED) { /* Enable auto RS-485 RTS mode */ modem |=3D UARTMODEM_TXRTSE; @@ -1400,11 +1395,6 @@ static int lpuart32_config_rs485(struct uart_port *p= ort, & ~(UARTMODEM_TXRTSPOL | UARTMODEM_TXRTSE); lpuart32_write(&sport->port, modem, UARTMODIR); =20 - /* clear unsupported configurations */ - rs485->delay_rts_before_send =3D 0; - rs485->delay_rts_after_send =3D 0; - rs485->flags &=3D ~SER_RS485_RX_DURING_TX; - if (rs485->flags & SER_RS485_ENABLED) { /* Enable auto RS-485 RTS mode */ modem |=3D UARTMODEM_TXRTSE; @@ -2723,13 +2713,6 @@ static int lpuart_probe(struct platform_device *pdev) if (ret) goto failed_get_rs485; =20 - if (sport->port.rs485.flags & SER_RS485_RX_DURING_TX) - dev_err(&pdev->dev, "driver doesn't support RX during TX\n"); - - if (sport->port.rs485.delay_rts_before_send || - sport->port.rs485.delay_rts_after_send) - dev_err(&pdev->dev, "driver doesn't support RTS delays\n"); - uart_rs485_config(&sport->port); =20 ret =3D devm_request_irq(&pdev->dev, sport->port.irq, handler, 0, --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EDD97C43334 for ; Mon, 6 Jun 2022 10:09:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233734AbiFFKJg (ORCPT ); Mon, 6 Jun 2022 06:09:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233538AbiFFKGb (ORCPT ); Mon, 6 Jun 2022 06:06:31 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF26F14084B; Mon, 6 Jun 2022 03:06:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509986; x=1686045986; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7XJq3KuEwylRleSQc/kmsQM+84+gFlD9hNoKE43ukeE=; b=TCDO5eVXQ+w4bw109315m9zeLTX1V5oYlmIdqAQ1zpFvvbczPfXg64Qt no6tqj/1Ewwyppx8D5eZBlN7LyGvIZvKGB9pYBzjvw8PplZOP18u7Tk2Q NQvj28UhVJTsiklOu2i+lKa6X8elgxIqSBptkl3vgAt2JSNK70DD5ZlXl GBE/tjFsqLtd5P1NUTSAetgKi4nwAWxUbTKkf9X7WxOxMclDV9oJrz13o fqOXN9rwNsGcC4eugDx/IjWQh0TJK6eESbao7mmaDDeINXAYsk0id+hqS OjA7FZ1YiK6iyxNCP4YJF25HVUa/qOTQvBWC1942kgANqapc1RuD294XO g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987087" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987087" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:23 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523878" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:20 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , NXP Linux Team , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 31/36] serial: imx: Remove serial_rs485 sanitization Date: Mon, 6 Jun 2022 13:04:28 +0300 Message-Id: <20220606100433.13793-32-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The driver provides different rs485_supported for the case where RTS is not available making it unnecessary to handle it in imx_uart_rs485_config. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/imx.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c index ba853bc9b4db..1e96ddd2e262 100644 --- a/drivers/tty/serial/imx.c +++ b/drivers/tty/serial/imx.c @@ -1913,10 +1913,6 @@ static int imx_uart_rs485_config(struct uart_port *p= ort, struct imx_port *sport =3D (struct imx_port *)port; u32 ucr2; =20 - /* RTS is required to control the transmitter */ - if (!sport->have_rtscts && !sport->have_rtsgpio) - rs485conf->flags &=3D ~SER_RS485_ENABLED; - if (rs485conf->flags & SER_RS485_ENABLED) { /* Enable receiver if low-active RTS signal is requested */ if (sport->have_rtscts && !sport->have_rtsgpio && --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C75FACCA47E for ; Mon, 6 Jun 2022 10:09:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233858AbiFFKJp (ORCPT ); Mon, 6 Jun 2022 06:09:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42880 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233544AbiFFKGd (ORCPT ); Mon, 6 Jun 2022 06:06:33 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1475A1406E5; Mon, 6 Jun 2022 03:06:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509987; x=1686045987; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=I3RG7RiqLVkSjMY/0QXHmsqqxtOf4UPp+0s1mxIStBo=; b=QmDjmMN+E4MuCkOOUrGvLBhyHoQk8ycAbLTEJfI9yhtS2QVfg5jWFk3P YnYRqUzmytOj0HkkIEg6QpukYoKwuwO0uHlLtjP1StMN2POVOZgbBSjfo jCu04efKaRUhZMESPb5myDKU25LDkk0A8Zcofe+SwzYM7OqOM/R8eeGJ1 EVt+6/egM30ZN1ukIZUUPRX96WS+XKVrEpqyVQjovwvTToqYW6GamkmoQ Ut7EpQKCpQn3jvcqZFusgC3IWcFvZHn2iNt856y0IvVNYFsP2AYEkfsym nAr9dF4fTqc3XnCpRsjlJbKhRPvOHi0Dd4EqChpQbJMDgLljgBmkT/O8V A==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987090" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987090" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:26 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523882" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:24 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 32/36] serial: max310x: Remove serial_rs485 sanitization Date: Mon, 6 Jun 2022 13:04:29 +0300 Message-Id: <20220606100433.13793-33-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 sanitization. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/max310x.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/tty/serial/max310x.c b/drivers/tty/serial/max310x.c index 9837f542a55a..d7d1791fcb57 100644 --- a/drivers/tty/serial/max310x.c +++ b/drivers/tty/serial/max310x.c @@ -1035,8 +1035,6 @@ static int max310x_rs485_config(struct uart_port *por= t, (rs485->delay_rts_after_send > 0x0f)) return -ERANGE; =20 - rs485->flags &=3D SER_RS485_RTS_ON_SEND | SER_RS485_RX_DURING_TX | - SER_RS485_ENABLED; port->rs485 =3D *rs485; =20 schedule_work(&one->rs_work); --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B8D3C433EF for ; Mon, 6 Jun 2022 10:09:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233751AbiFFKJk (ORCPT ); Mon, 6 Jun 2022 06:09:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233554AbiFFKGe (ORCPT ); Mon, 6 Jun 2022 06:06:34 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 625FE144786; Mon, 6 Jun 2022 03:06:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509989; x=1686045989; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nkqgtQAboZnM/AAFg9v2/5Z9Uxqx4JM1lubOKwYAy7M=; b=i80R34XwgvxyfzxgBQTku+Ba0lnu1S+6XBt8i08ZEyucHIKBN8+AY3z2 MhzKmzfKbvCGlxhjE4YyyBEukbJ17r2qnTfn7UGMq9n7M1RHZ3VnAlkZM AFPX4CHvps6a11RbsWs8T7i73A44KjxDbiy/Ahr7pgUi7F0VSv8STYdzT DiuAkgp/+MjwryMZm+hkYOQACBXri5ZCESYOH+lzLgG6HjMygoWqZe9wN euDF6X7OqUTMYV7X9LsHa25dM7xc7qJjv/SJLfKHw9ySitlfzGLruruKr KucFwOJ8QoNk9WOu4IErfYZrBDvMh2TqdOEFRVW1q0G37VvXEs2PS8nBa w==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987093" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987093" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:29 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523908" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:27 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 33/36] serial: 8250_exar: Remove serial_rs485 assignment Date: Mon, 6 Jun 2022 13:04:30 +0300 Message-Id: <20220606100433.13793-34-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 assignment. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_exar.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/= 8250_exar.c index 11916f603a3d..528779b40049 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -427,8 +427,6 @@ static int generic_rs485_config(struct uart_port *port, if (is_rs485) writeb(UART_EXAR_RS485_DLY(4), p + UART_MSR); =20 - port->rs485 =3D *rs485; - return 0; } =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0588DC433EF for ; Mon, 6 Jun 2022 10:09:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233436AbiFFKJx (ORCPT ); Mon, 6 Jun 2022 06:09:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44704 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233572AbiFFKGh (ORCPT ); Mon, 6 Jun 2022 06:06:37 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B5AE144FC7; Mon, 6 Jun 2022 03:06:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509992; x=1686045992; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=oll5KaEkDpEpL5et566YY0PuRsrie8otuYYJ8R196ro=; b=QGIhEVFgkBXsxjRSBVk4PB1KuCJn6rrEfXH3rDAUde8dCZ7niZzZQIO5 if5nPpvC9DHlNp6ShudiXunKabH2z69vDUiykp8Il7qlSrle/e1ru4YqO qOJkbQl0stO7mNaEsQmRtzstq7mPaU0j48/ecNeRCiH6HCumbRVx04JL8 EK999bmNLwP1xejBMiQhrJmoAXeXw5bvK95bY+/N5t7EJSKi3anRG4oSf G/W8hDS+v6AbM5vZ2DhMivfzuLHA1h9qhYcaLwQJEAGBonRIVc44yDg3h 9qemJimvSJ+Oa4UfvbC2Eo9Tg5I9Nqgw8svgguGw1w//ACWx+K32PlYy2 g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987095" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987095" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:31 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523918" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:30 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 34/36] serial: mcf: Remove serial_rs485 assignment Date: Mon, 6 Jun 2022 13:04:31 +0300 Message-Id: <20220606100433.13793-35-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 assignment. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/mcf.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c index 655255e0c76a..036f178e3d66 100644 --- a/drivers/tty/serial/mcf.c +++ b/drivers/tty/serial/mcf.c @@ -448,7 +448,6 @@ static int mcf_config_rs485(struct uart_port *port, str= uct serial_rs485 *rs485) } writeb(mr1, port->membase + MCFUART_UMR); writeb(mr2, port->membase + MCFUART_UMR); - port->rs485 =3D *rs485; =20 return 0; } --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 10FDBC433EF for ; Mon, 6 Jun 2022 10:09:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233692AbiFFKJ5 (ORCPT ); Mon, 6 Jun 2022 06:09:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233585AbiFFKGk (ORCPT ); Mon, 6 Jun 2022 06:06:40 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DA50B135682; Mon, 6 Jun 2022 03:06:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509994; x=1686045994; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=jC/dgPE6/D0IhQzMV7QXUvA9O0C+12y7m0vQyoLFb4E=; b=VcnxHfKPvMzBlK80t1xl34mZARS403wS3CEqoizibCL3bNH/hpl8xkBq Nf6Y6gBv0+fHwfb3N+RPOXGWkcBju93ddOCDXT2XopE5rGo9BBTRUrnam AaaNAftiTL/+zk491jhhFz8BN+Z9KdYmO8IS/+ibMziAlUCIN55gMkFXe pM/t71IGmYfMvLq1q1RYuZYDoD9mTjHHgxlaSNpGZkFKMSlHKhvjk+fSj 7JMVKkyYkvTMZ/OtrMI58BBSGrTLt4X/4QI+5QsYTdqI76N7Zdoi9lQKC ofgL3GGzm8sj0wF+UueI56u3znFXOiJqCbocgXxYz3FCnBGcDbd4I8REI g==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987098" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987098" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:34 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523922" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:32 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 35/36] serial: sc16is7xx: Remove serial_rs485 assignment Date: Mon, 6 Jun 2022 13:04:32 +0300 Message-Id: <20220606100433.13793-36-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 assignment. It is safe to remove this assignment because sc16is7xx_reg_proc() takes port.lock at start (and sc16is7xx_reconf_rs485() would too). Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/sc16is7xx.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index b3162dfe97b1..2ceecaa4a478 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -1143,7 +1143,6 @@ static int sc16is7xx_config_rs485(struct uart_port *p= ort, return -EINVAL; } =20 - port->rs485 =3D *rs485; one->config.flags |=3D SC16IS7XX_RECONF_RS485; kthread_queue_work(&s->kworker, &one->reg_work); =20 --=20 2.30.2 From nobody Tue Apr 28 05:05:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 122B8C433EF for ; Mon, 6 Jun 2022 10:10:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233808AbiFFKKA (ORCPT ); Mon, 6 Jun 2022 06:10:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46214 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233597AbiFFKGm (ORCPT ); Mon, 6 Jun 2022 06:06:42 -0400 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2D1F714641C; Mon, 6 Jun 2022 03:06:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1654509997; x=1686045997; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Hs7tygBksGYt2BDKZ0A+aYzoQ3gQHRqzZByxTCUZYPc=; b=L4QFCKs2V3Hjw87ItBs3zuR8yjcvT87VtwlHptiH0rQDTYY3rS5Oq+5c d1RTMzYtQHIYpJxcDxI8zKMHA78+uUkXSZNWsr4pK+yG7ie2VuVPn6VRQ vDMlxloqv0P6+zDCug/n9g3SP09USTsp3TRdOcr9vtSvcBgoXURwm3TvP idEzi/BQ/Ihm7rqKoJ9RjIDGouyh3w/UsynlbkWtxSj83xCM+CVg/+rj0 dW0OGU8Y/VSuK440i2Njm3355b1NllQlkZx4vTj+clzfJvyML1lugWaLc PRtduJV8D/F6Z0cL5Whj1PsunihjjGmuv+H0tSJq27RbUcfCzIXe1lzIV Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10369"; a="362987102" X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="362987102" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:37 -0700 X-IronPort-AV: E=Sophos;i="5.91,280,1647327600"; d="scan'208";a="635523925" Received: from amkossek-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.57.11]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jun 2022 03:06:35 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 36/36] serial: 8250: Remove serial_rs485 sanitization from em485 Date: Mon, 6 Jun 2022 13:04:33 +0300 Message-Id: <20220606100433.13793-37-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> References: <20220606100433.13793-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Serial core handles serial_rs485 sanitization. When em485 init fails, there are two possible paths of entry: 1) uart_rs485_config (init path) that fully clears port->rs485 on error. 2) ioctl path with a pre-existing, valid port->rs485 unto which the kernel falls back on error and port->rs485 should therefore be kept untouched. The temporary rs485 struct is not returned to userspace in case of error so its flag don't matter. ...Thus SER_RS485_ENABLED clearing on error can/should be dropped. Signed-off-by: Ilpo J=C3=A4rvinen --- drivers/tty/serial/8250/8250_port.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/= 8250_port.c index a825fbc215a7..4998799abae2 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -675,13 +675,6 @@ int serial8250_em485_config(struct uart_port *port, st= ruct serial_rs485 *rs485) rs485->flags &=3D ~SER_RS485_RTS_AFTER_SEND; } =20 - /* clamp the delays to [0, 100ms] */ - rs485->delay_rts_before_send =3D min(rs485->delay_rts_before_send, 100U); - rs485->delay_rts_after_send =3D min(rs485->delay_rts_after_send, 100U); - - memset(rs485->padding, 0, sizeof(rs485->padding)); - port->rs485 =3D *rs485; - gpiod_set_value(port->rs485_term_gpio, rs485->flags & SER_RS485_TERMINATE_BUS); =20 @@ -689,15 +682,8 @@ int serial8250_em485_config(struct uart_port *port, st= ruct serial_rs485 *rs485) * Both serial8250_em485_init() and serial8250_em485_destroy() * are idempotent. */ - if (rs485->flags & SER_RS485_ENABLED) { - int ret =3D serial8250_em485_init(up); - - if (ret) { - rs485->flags &=3D ~SER_RS485_ENABLED; - port->rs485.flags &=3D ~SER_RS485_ENABLED; - } - return ret; - } + if (rs485->flags & SER_RS485_ENABLED) + return serial8250_em485_init(up); =20 serial8250_em485_destroy(up); return 0; --=20 2.30.2