From patchwork Thu May 19 08:18:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 12854646 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 54304C433F5 for ; Thu, 19 May 2022 08:21:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=kB2uxf4K2gfi7p+ah44xmU1onTBrXeYvZ+L1c746fMM=; b=06MF+gtTWt7kmy dNz+/u04UoiluBawWMxrkNHinMxTXKOOsVApRqgtB6WvO1gsex9VYHWBu1NpdXspHpQVzs7UolvDn UoO5CVtl8WBOyriFAwP7P5ATE3PUqL0zbGJ7yMRAdhVSFuW0E3/OprSfQUv0LKlBSulMDTsX1OBCc QRFtZVLKu1spzTwRCdLTm1CYSotHEf6eknLAtKe4YdPjOrISg9A+DwREAnJ9q5/2PCvFINKDurTSW aKd8TslT3Ke8fpyhq+GtsvXQwvq8md41/328hygwl8MUKmIxxwI5lDKJNaQB16T4DD+ctn88RKd2g vVL5ZeaaD8+0oCQOzq+g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrbOG-005lpD-NE; Thu, 19 May 2022 08:20:13 +0000 Received: from mga14.intel.com ([192.55.52.115]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrbMm-005kf3-0m for linux-arm-kernel@lists.infradead.org; Thu, 19 May 2022 08:18:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652948320; x=1684484320; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=b9Axn5x53cq5qpRqup5YgCPJ4p1ak9lGTGlntS2e76c=; b=cn8ZIJVpuCsl1nXyL/LWzP6lLmKROdUp0gGshEr32cuUJf62Zjz2OaQO 29o5ZIYQbkYMtGGwTumWEqw65+RSIfcMjg75X88SkIuFbcqaqu20FkNs7 SQpCNZoSNLjmHTCrHyxs1RNaztOXXhI+spNtHzoG0HMXGOwq6LXkFAJpa NLXfGemYQBjJftgZSCvCWlRS6emJkKAzZd/57v1eSyj9n+EEbjYWXfgaF snQXs7sWgHg8F4yrrMR5s47U4FJW2eSUXq+2QpF71zLZi9xSi9o1NUrKA zoYFksSyDQZ5Zp0UTosESaVohAB8OgJncwoVcw/0PCI6NiFX8oR0qbzVP Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10351"; a="272218889" X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="272218889" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 01:18:27 -0700 X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="598431203" Received: from ivanovbx-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.249.33.234]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 01:18:23 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Shubhrajyoti Datta , Baruch Siach , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?utf-8?q?Ilpo_J=C3=A4rvinen?= Subject: [PATCH v2 2/9] serial: digicolor-usart: Don't allow CS5-6 Date: Thu, 19 May 2022 11:18:01 +0300 Message-Id: <20220519081808.3776-3-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220519081808.3776-1-ilpo.jarvinen@linux.intel.com> References: <20220519081808.3776-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_011840_106916_C07B0FFC X-CRM114-Status: UNSURE ( 9.95 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Only CS7 and CS8 seem supported but CSIZE is not sanitized to CS8 in the default: block. Set CSIZE correctly so that userspace knows the effective value. Incorrect CSIZE also results in miscalculation of the frame bits in tty_get_char_size() or in its predecessor where the roughly the same code is directly within uart_update_timeout(). Fixes: 5930cb3511df (serial: driver for Conexant Digicolor USART) Acked-by: Baruch Siach Signed-off-by: Ilpo Järvinen --- drivers/tty/serial/digicolor-usart.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/tty/serial/digicolor-usart.c b/drivers/tty/serial/digicolor-usart.c index 6d70fea76bb3..65e653eb5026 100644 --- a/drivers/tty/serial/digicolor-usart.c +++ b/drivers/tty/serial/digicolor-usart.c @@ -309,6 +309,8 @@ static void digicolor_uart_set_termios(struct uart_port *port, case CS8: default: config |= UA_CONFIG_CHAR_LEN; + termios->c_cflag &= ~CSIZE; + termios->c_cflag |= CS8; break; } From patchwork Thu May 19 08:18:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 12854647 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 607C0C433EF for ; Thu, 19 May 2022 08:21:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2Wdfs/Lohqvaqekf9FV1xUmAFBtFSATlf3l3O/Rv3dc=; b=rCGm1XWScuFRAQ WhDQ7Fx5ddbaf6ZA+Oj2ZgvkYrLOjz9qzPgyUXRCEW1dbnrt6d0fQfEnvMBphAJ3lIIcFp2MwZKk/ S1XlWRZC3LN2UkbQYB5xR5v7jTlKpReIWzR4wNhdWiTer5Ihn+YpCLljaH8uEJGoI/GC6HaGsidXR umCSnqNexemox8flKOrU9ERzXSVjlfOAlTfw3jf+abaVVR9+yflqyj9uFFMw9tfWXtNzcBkxs3gJ+ Dq+XTMz4NXa/YJZs7qO9bR3yMJdEb9NXxVDxlooARzZOEhGnBklRavHspEzsPtd++BCHP+DYWPA3E DDYxmqzmof+e9cbho5pQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrbOa-005m1v-QC; Thu, 19 May 2022 08:20:33 +0000 Received: from mga14.intel.com ([192.55.52.115]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrbMm-005ki4-CK; Thu, 19 May 2022 08:18:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652948320; x=1684484320; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3rLSxMemifcCya5x4k0dLXnkqmQGBK5a9aBX6E+21uY=; b=hGiA0TnzUhmgH/+YJSGKD657GPtSbigTThBvd+y3XLvnOHkAH0UIYMV3 mFBndG4t2WouhX6B/bElTetdK0IZAW4XPiDiU/401ssJMpmUC2naaH1hU kFYrGMFmashcSHvPSv9lQowS2g6zy1NtHRoKKqGLRdHocYJl1gg5Mzief 42wspHeBEVXlYLbfJzYLtVsp0IiJM15dI30BMWfeMZMbZ1Sj3xFPZe+y4 cS8fip6PDfLrR29YbQFMf/lYzOzozaQ8oxGoOHK5BpWZFrSNkaDnlukZO ScsxgZvw2m2yuiMN3LB7fiACw/8yeB8b4nLFPp04Ak52HK6eRos+09ul2 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10351"; a="272218918" X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="272218918" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 01:18:30 -0700 X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="598431246" Received: from ivanovbx-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.249.33.234]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 01:18:26 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Shubhrajyoti Datta , Manivannan Sadhasivam , =?utf-8?q?Andreas_F=C3=A4rber?= , Olof Johansson , Arnd Bergmann , linux-arm-kernel@lists.infradead.org, linux-unisoc@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?utf-8?q?Ilpo_J=C3=A4rvinen?= Subject: [PATCH v2 3/9] serial: rda-uart: Don't allow CS5-6 Date: Thu, 19 May 2022 11:18:02 +0300 Message-Id: <20220519081808.3776-4-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220519081808.3776-1-ilpo.jarvinen@linux.intel.com> References: <20220519081808.3776-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_011840_534214_B8A2FA45 X-CRM114-Status: UNSURE ( 8.91 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Only CS7 and CS8 are supported but CSIZE is not sanitized after fallthrough from CS5 or CS6 to CS7. Set CSIZE correctly so that userspace knows the effective value. Incorrect CSIZE also results in miscalculation of the frame bits in tty_get_char_size() or in its predecessor where the roughly the same code is directly within uart_update_timeout(). Cc: Manivannan Sadhasivam Fixes: c10b13325ced (tty: serial: Add RDA8810PL UART driver) Signed-off-by: Ilpo Järvinen --- drivers/tty/serial/rda-uart.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/tty/serial/rda-uart.c b/drivers/tty/serial/rda-uart.c index e5f1fded423a..f556b4955f59 100644 --- a/drivers/tty/serial/rda-uart.c +++ b/drivers/tty/serial/rda-uart.c @@ -262,6 +262,8 @@ static void rda_uart_set_termios(struct uart_port *port, fallthrough; case CS7: ctrl &= ~RDA_UART_DBITS_8; + termios->c_cflag &= ~CSIZE; + termios->c_cflag |= CS7; break; default: ctrl |= RDA_UART_DBITS_8; From patchwork Thu May 19 08:18:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 12854648 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EF7F0C433EF for ; Thu, 19 May 2022 08:22:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=qtDFugGtGqHjYIK9FK6Vlhv8ASR0JZmO31cfCyPjSp4=; b=AxP11uiV/BO4hQ d3426tM122n5vDUAfTA0KFBR/0hVOmzbOPuuosI0Rxb7JAf7sNLo4whWiJ9Cbvd527VOx02OlMxSU EF2kdthNQ4H30aDIJyjADy8wsOT1lO1P6hBGHthuQSNeU7HXdDQOketWJ+jkkzcw6GuhsNpu4w7fC sHjHWkJ37NOGZ5nYTT8xWBgkDjkfcn9iBQJIOMnAp+Wxqj83aMsp890MzjTPoVbIrLd5H8zEIWXWO +A0e/5+qFEc01szQkZnDETWp+0BZItPHz6jlgLeOzvfIJ8Scjk4FuiTg4OW/uUdcR0vP37WR/2W3I TTrk5Vi+0oMpxZ0y7hLg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrbP4-005mJg-T8; Thu, 19 May 2022 08:21:03 +0000 Received: from mga07.intel.com ([134.134.136.100]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrbMs-005kuX-HX for linux-arm-kernel@lists.infradead.org; Thu, 19 May 2022 08:18:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652948326; x=1684484326; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XUGgIusaR1c/M+hdwMIEtCQbJlvmDStPf6Do24whbYo=; b=XE7WkDtGUTr1KeUyNkJxVa2clZ9m/aZhayQq9B37g8a8GeJn/L31++Le OQe7eRVy+gJ+uu5Uoif3i8/amUQBpBMRgKiB/uw1d3y0amh1gYaJTVYsk 5k3RRqyEYZOqC5WRp71b9u+Q6KW4ssVRdPA2lvT7fe47xH2fMbowhsASt 6a0q+2XVs9i15WLAkQjkdB0qCyHF1IH2JWgpuf+XEO/nFNwrD9zoG5aVV /blg77Lamh/FHe4t/aP7yGB4y2RAu4AqmEAM3W8lT/6i21L92vAQi0g23 n6o15sJdZ5jgAvCHXopBElY2LGfdrEGrVcK6shjS2B8KjCeAl9eMFwf8g g==; X-IronPort-AV: E=McAfee;i="6400,9594,10351"; a="335135314" X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="335135314" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 01:18:46 -0700 X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="598431493" Received: from ivanovbx-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.249.33.234]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 01:18:43 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Shubhrajyoti Datta , Patrice Chotard , Srinivas Kandagatla , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?utf-8?q?Ilpo_J=C3=A4rvinen?= Subject: [PATCH v2 7/9] serial: st-asc: Sanitize CSIZE and correct PARENB for CS7 Date: Thu, 19 May 2022 11:18:06 +0300 Message-Id: <20220519081808.3776-8-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220519081808.3776-1-ilpo.jarvinen@linux.intel.com> References: <20220519081808.3776-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_011846_680316_CE6E1611 X-CRM114-Status: GOOD ( 10.18 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Only CS7 and CS8 seem supported but CSIZE is not sanitized from CS5 or CS6 to CS8. In addition, ASC_CTL_MODE_7BIT_PAR suggests that CS7 has to have parity, thus add PARENB. Incorrect CSIZE results in miscalculation of the frame bits in tty_get_char_size() or in its predecessor where the roughly the same code is directly within uart_update_timeout(). Cc: Srinivas Kandagatla Fixes: c4b058560762 (serial:st-asc: Add ST ASC driver.) Signed-off-by: Ilpo Järvinen Reviewed-by: Patrice Chotard --- drivers/tty/serial/st-asc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/tty/serial/st-asc.c b/drivers/tty/serial/st-asc.c index d7fd692286cf..1b0da603ab54 100644 --- a/drivers/tty/serial/st-asc.c +++ b/drivers/tty/serial/st-asc.c @@ -535,10 +535,14 @@ static void asc_set_termios(struct uart_port *port, struct ktermios *termios, /* set character length */ if ((cflag & CSIZE) == CS7) { ctrl_val |= ASC_CTL_MODE_7BIT_PAR; + cflag |= PARENB; } else { ctrl_val |= (cflag & PARENB) ? ASC_CTL_MODE_8BIT_PAR : ASC_CTL_MODE_8BIT; + cflag &= ~CSIZE; + cflag |= CS8; } + termios->c_cflag = cflag; /* set stop bit */ ctrl_val |= (cflag & CSTOPB) ? ASC_CTL_STOP_2BIT : ASC_CTL_STOP_1BIT; From patchwork Thu May 19 08:18:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Ilpo_J=C3=A4rvinen?= X-Patchwork-Id: 12854652 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id DA905C433F5 for ; Thu, 19 May 2022 08:22:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=z7ZwuDYCJetYWdO3FjeT1jd2/lCc0Rz7l2my/GrKPHM=; b=O6jYa4larPikRo k2NJpJbLpPFhjnubdeyWHtO1WgLP0CpWWiDckd/q2hIKE70UBL9nQ/cP50NSI5Oj8NrB2S96IAbsK 62jp1kkRuHvBVt9cmOoR9UzweInzxJa5EO+iJIA8M/0QnZNwsWu5HOAw4bblKPhzfYKXBODfoIqbA PavS4OC4wP8i90BW7jGYCIXsinaAhmCXAX/6ejPVtLLOE9RLyCjRI3ZVnVdxKZnAkGTVA1Z3rtjQI 8rxnkLFYfh4Dw58R/yTOC7EHTS6WHKnGvtIZ0G+a5T4LJ3sQOhOuINV+fi5htaXXzLrDwokKtwW73 wBdkY+vqMpAcOlnzos4A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrbPi-005mk7-Cw; Thu, 19 May 2022 08:21:42 +0000 Received: from mga07.intel.com ([134.134.136.100]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nrbMx-005kxL-9S for linux-arm-kernel@lists.infradead.org; Thu, 19 May 2022 08:18:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652948331; x=1684484331; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=B/wsivre0Bc6qlbjo3she/qQCDt/pTlKU20VjyLCa68=; b=HNyAf1H+vqExekLL7Bai8APuHjC6T5E+fwz8gjwfT3BOT8QB+4Glozmg UvH0TjtX6eNQsAl5tLQeJzC2shMp0x0GckKMNSjK1VnZxniCi1IPPzSbs UjBLN03rteyyEyHYDMLvUPwePYc+jiYxXPerbry6c7RwKiQYp74XqScET 7E239u8rapC3Age2iw189AKhrR3gQyBMh9Lg0Pe7D0gIhNKCTOHzkubPb VFCehvIlCyHqXUk2+Alju7Qy/yYrnIUXvJNGLFGHpyDB+4XML336LTCL0 6M51ZkjNygcfTyC+/NOP2MRpDoKvysEmLZsxL3FxkUGv95l4/z+fEM7t7 Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10351"; a="335135343" X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="335135343" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 01:18:50 -0700 X-IronPort-AV: E=Sophos;i="5.91,237,1647327600"; d="scan'208";a="598431518" Received: from ivanovbx-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.249.33.234]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2022 01:18:47 -0700 From: =?utf-8?q?Ilpo_J=C3=A4rvinen?= To: linux-serial@vger.kernel.org, Greg KH , Jiri Slaby , Shubhrajyoti Datta , Maxime Coquelin , Alexandre Torgue , Erwan Le Ray , linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: =?utf-8?q?Ilpo_J=C3=A4rvinen?= Subject: [PATCH v2 8/9] serial: stm32-usart: Correct CSIZE, bits, and parity Date: Thu, 19 May 2022 11:18:07 +0300 Message-Id: <20220519081808.3776-9-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220519081808.3776-1-ilpo.jarvinen@linux.intel.com> References: <20220519081808.3776-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220519_011851_476569_468A6D83 X-CRM114-Status: GOOD ( 11.16 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add CSIZE sanitization for unsupported CSIZE configurations. In addition, if parity is asked for but CSx was unsupported, the sensible result is CS8+parity which requires setting USART_CR1_M0 like with 9 bits. Incorrect CSIZE results in miscalculation of the frame bits in tty_get_char_size() or in its predecessor where the roughly the same code is directly within uart_update_timeout(). Cc: Erwan Le Ray Fixes: c8a9d043947b (serial: stm32: fix word length configuration) Signed-off-by: Ilpo Järvinen --- drivers/tty/serial/stm32-usart.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c index 87b5cd4c9743..3c551fd4f3ff 100644 --- a/drivers/tty/serial/stm32-usart.c +++ b/drivers/tty/serial/stm32-usart.c @@ -1037,13 +1037,22 @@ static void stm32_usart_set_termios(struct uart_port *port, * CS8 or (CS7 + parity), 8 bits word aka [M1:M0] = 0b00 * M0 and M1 already cleared by cr1 initialization. */ - if (bits == 9) + if (bits == 9) { cr1 |= USART_CR1_M0; - else if ((bits == 7) && cfg->has_7bits_data) + } else if ((bits == 7) && cfg->has_7bits_data) { cr1 |= USART_CR1_M1; - else if (bits != 8) + } else if (bits != 8) { dev_dbg(port->dev, "Unsupported data bits config: %u bits\n" , bits); + cflag &= ~CSIZE; + cflag |= CS8; + termios->c_cflag = cflag; + bits = 8; + if (cflag & PARENB) { + bits++; + cr1 |= USART_CR1_M0; + } + } if (ofs->rtor != UNDEF_REG && (stm32_port->rx_ch || (stm32_port->fifoen &&