From nobody Thu Apr 16 22:33:13 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010038.outbound.protection.outlook.com [52.101.56.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 47583328630; Wed, 25 Feb 2026 06:59:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772002787; cv=fail; b=CoBw8gch25XfHwuGWOv0wGlgoaPuk7Oll9nBv5CJSFEM+rz1q0Hu21GMvi8mwQr3ssXi/LxY3LxKHf+rIACnZDSpQOBYl+7lDtVRG9I/FS9JgXqJ9jJ4BecgDC2AbdhIjSCFNlsnb2+/FDa5K8kH+qomfQXD/4ByLc1VwtPowM0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772002787; c=relaxed/simple; bh=7kNiFc1IfJQdVdUC4YUBjdPywMS0qhi2nFmDJmSklW0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WnHdAmRdP2YQDydlax9AdO87lFWaVX3ua06ax8Nqwin6UeLebDjj6V9FYxHoDlxXFX1eoO4E73zoPmnkD/ZRJtkTcebNMAr4veWbJaqR+lfKa+6Un//Hm+yJaU4gSMw1WvJjAF1nEdhtKDj7l3EJ/80moRW2Wa6q4Zu/IWeeipY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=URfAo+e3; arc=fail smtp.client-ip=52.101.56.38 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="URfAo+e3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dELpgDxNx49TwCG3caaY2iuh0/aRORNsckj9Gii9DKkAxO+Evdjh3s/I6CbC7iFXmPcw+JlggKDQakwtprQoEw8Oaa1p1V7f7oPMiURp8J8KBMj687dy+geXWp6LGfqBbllbe7SsUu43T/rU6hPYy+Ym7gU/BtxdBfj4Qk89HXBHXnJjfq8zW5tz/KGzZMaIgdfGUKRfrXKY5S9IT+LNKyTZ0viQohgp5bnFph6Ev0kr6hytOJM9bE7MUuCHTyc16jVRifT32TNTEhHpksqZP8iXLEcvLH+0omW2HicPrY22Jf6xZLxxAVGta41V6pdTLay2E/o0K6U/MkDNQnQAtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MiLOcEkJAS09bY4JE1MKiyOlVyzwW2ROkQ2PnFqdfpA=; b=fRjF1TbCACXqKxzhBOKkIvcC/I/pbxxKPl4G8bYRifE05+Ja2SaM1V7R2GGubK0HBMp8XBi7lIcnqMzIk/2F5LQ6oQ1mF3bXPV4DIzQvguQsbspAsgJtPdWFUpk4AXO+0Xu+UoBXQP5UPEN4Mm7o3nayBN+ErsLNHba0YQTFKakyOM3s/TJC9ZMdW1h78Rc+YYak031sy5A7zds9ELu1aGw2N9Bf1yAAB1FJH1S+HEIRUNPwz6C5G+nZhexK7QlRFr9K8DC4VDHV3sCUHDyHuv+bvt7ji5/Ln3DEt+U9LZKCjk0quXT0FvauXnWqdsgEaaUl/x+QfioAW/XbvWrZqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=armlinux.org.uk smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MiLOcEkJAS09bY4JE1MKiyOlVyzwW2ROkQ2PnFqdfpA=; b=URfAo+e3DHgQhDpIIa7HO2hgk4YYmUzHsdyMddthHNbH28BDPPjwL6nx6yEF2fAm9yyOYt9uh0InOia9fYZwLSm20msh90Zc94g43/ykyM42/+ZT1DzVhYClylQ5kZobKOWiZptPc/W7BpYfU4WVmqQfkLL4Uup6lOg/MQeZRcPv/yB3dJxoozVHojmAwBPe+JpQ/DI5WkW+BRnAy8iSbDvZzf1Eu59X0FHmJAzhbxxTZtgS56Evqz9Bh5X/XyRSk+NifJ1xMu+0b1RQ+t3fURpIc1eEGhGxJ1abY6/zBlzdCq7a/2Y8ZAWkjs4hVuLvl8SV82xKyQKRDXkmpk4w5Q== Received: from CH2PR15CA0028.namprd15.prod.outlook.com (2603:10b6:610:51::38) by DM4PR12MB6301.namprd12.prod.outlook.com (2603:10b6:8:a5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Wed, 25 Feb 2026 06:59:39 +0000 Received: from CH2PEPF00000142.namprd02.prod.outlook.com (2603:10b6:610:51:cafe::1b) by CH2PR15CA0028.outlook.office365.com (2603:10b6:610:51::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23 via Frontend Transport; Wed, 25 Feb 2026 06:59:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF00000142.mail.protection.outlook.com (10.167.244.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Wed, 25 Feb 2026 06:59:38 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 24 Feb 2026 22:59:25 -0800 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 24 Feb 2026 22:59:25 -0800 Received: from kkartik-desktop.nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 24 Feb 2026 22:59:21 -0800 From: Kartik Rajput To: , , , , , , , , , , CC: Kartik Rajput Subject: [PATCH 1/4] serial: amba-pl011: Introduce skip_ibrd_fbrd vendor flag Date: Wed, 25 Feb 2026 12:29:11 +0530 Message-ID: <20260225065915.341522-2-kkartik@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225065915.341522-1-kkartik@nvidia.com> References: <20260225065915.341522-1-kkartik@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF00000142:EE_|DM4PR12MB6301:EE_ X-MS-Office365-Filtering-Correlation-Id: 50cb81f8-c4b7-48e2-72d5-08de743b7142 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7416014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?dvt3O28EHbj8tZwvqBrvfldNSBHPei3Pvnu2AAgdjbzcyWBrycoDVcMEMtr6?= =?us-ascii?Q?7A+NAIzB69Y9HvFwZmXhFMojNsa9ZHqQpPZYVL2Bi9G7QHQkRajmVqT+dwZv?= =?us-ascii?Q?mTZq/NZtWslf2Eih/uIS3bCYZpp8EEEeDshRYhxw9s/111DsSL11FRZl+wsM?= =?us-ascii?Q?osde1DzFcsxEF82Q2qeVSLNXHS6b+xstLti1zs9kxDERAlA/nQigsY50sTJX?= =?us-ascii?Q?uJtQHvJpjF+y8P09veHOK6zTnpF7tg0FgXdxpX75+2pdRm201N486ua2HZIY?= =?us-ascii?Q?JxPG3oqs0yseGcww1HbO6xnQiRl3JZruI1uPogOV2pc+L7IGmBxTdsNuy6G2?= =?us-ascii?Q?Z4dKI6Kqmeid9uUIDfD5XFvXkVLp4sUAkAWkAgGPspR1unEFmbIf2zU5GN4Y?= =?us-ascii?Q?C/0WgHLzUnkp0Kzs/pcgxTsRjrY8U5WkNAT8f1Sko4uCCSBLvPJE1qLr7HHA?= =?us-ascii?Q?vXpfMx/jKtpVzJmCMONjkFSng+F4vLNNooFv7q6Muve1ielR3TP6Cr2QZdk3?= =?us-ascii?Q?QGoxV9rmI4/iYrQvP5l11uym6nWXYBc2rv8jC4PD0OixaXPvKRkWLuPDYv4c?= =?us-ascii?Q?vN1Nv506wxRoeEN8I2O2IkTHIp6KWr/707uXggq1nXIvQVMHB6SOcIEUL2ar?= =?us-ascii?Q?upMCn6GfcFbBkzPMOOSH9Nvd3+D15K8COv51XJc5mrZze0LW5qY29DgoHBOz?= =?us-ascii?Q?kVp/ceP8oRfCc5Nkfu4BgrXu4cBPdeKykMoXLFwuG0/GM1cvLeSh6nrWHWAR?= =?us-ascii?Q?AOrjxq1c+sOG2V+LF000L4YSUaDqmc01JjJSbhEynUTje3V4NRiLstzrPkIs?= =?us-ascii?Q?KsClfG/gvuRSMZOJiKvyu5KBnR3eisfdTP8UlA9R6MPEHDx45aoVfLvcsYHL?= =?us-ascii?Q?UM+PPkcEPz/BKj5VhBwIve4dXCnrVEMxiQEztGJss3CV+PMHW3C9G5NctbIx?= =?us-ascii?Q?kf4XpkWkKgzCoGBIulHr8P3dSodKNIq25h9hm7ehgTBitqwRKQ76gaY7KIeJ?= =?us-ascii?Q?l18jJEVcVm0AvGcfM/2pRbjxSGePmxYa8TkmwscY6e+dFA9zncI+o4G12+pc?= =?us-ascii?Q?FKVEHvwSfu77eZjqL32NRI55derdCuLiMbq8m5edKQ1srR6Ud/+90RzZrZ31?= =?us-ascii?Q?lMFhcIdGF2C9+2vyZiqa5m5mqBc9GhLyieso0Me1c1o7EDlwSzujqI3AF637?= =?us-ascii?Q?C7SBfYBzruiMngpmNbBtLNB1LlUbI0UfRWr7eeKM6GzHoNbdfCZz0J5mNiPm?= =?us-ascii?Q?4MHy5Nvi1MTQ6zR8Rw1p7UEktECk1Z8gZxZdUmimxk2K9h+HrFSAq0B1Q/Nq?= =?us-ascii?Q?XxFi0WZGoR0zLMuTM87toiR9Dajg6wvqGzKCIIO1J/oSaVmJotibGsKUd845?= =?us-ascii?Q?PcWjtk3W8gHk7DgUlJtxRoZzD288QyKK/ma42fDseG+y09uHTsi5E/b8JyOe?= =?us-ascii?Q?ir5nk944v4lX293RBdFWscBdoKR/RdfOiQxmHUDu6kj3aw5WiqNyHP7+J8RE?= =?us-ascii?Q?dMOWkJD9o6PTafH0JZB/Ksmy5u/r9ZCmYF85a2bjKzKxkU1RsN9KNXnXLUWv?= =?us-ascii?Q?pY97lWixPAV2i3QuuEZMGYQYgyO0vNxpCAEixdZMMWyb1MCE525MC9IoDXgk?= =?us-ascii?Q?Udjkv1EVHdjahqvTlD9Og3aZwhpzJnpjbvDmZcG2HhpYwcaivo7etLeArve7?= =?us-ascii?Q?up8XYQ+ENIhuA+T67mu6yfrcALQ=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7416014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AqUEteG825520uuJ7Ts2fTqAyusL5p9udmdrnldoHcBLLsnB4KapvlFsPmITmEQ3ah9JAD687pCp4FoX63eFI/0p5XahKmfrv0y31JcDqO+59mCJrIRAYpNAczP4NsZBBaPT0f7HbJtbymBgZa7s4iTk283DA/JykpjAOQ/mvxWVPn52NcM78rADBuCHUQddOxGbRFW51UsKUEG+Nw/NaadtNcjZHrpQmx7IRqgjlLVUgKPGhgHKTPrt2h7+z1gQQM3X88y8WViNcBELKGFVxyHFKeyG7FLGsIxrVURzAteYAkBzWkYyOG5GM7xaw/RISLLcLzsRmsWUxxHhmPlXMLQ58hUTPYwgIyEF2SNHmSkI9o1F28ujJiGCtpasRC9r55s8eefaj2KWx5SMKIcuwjKeho753k1y/LO55d6tEflBexjPzbZWzvpBUfVuZ7Yl X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 06:59:38.3575 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 50cb81f8-c4b7-48e2-72d5-08de743b7142 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF00000142.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6301 Content-Type: text/plain; charset="utf-8" The NVIDIA Tegra264 UART has a broken fractional baud rate divisor register. Using IBRD and FBRD may cause the baud rate to fall outside the required tolerance. Introduce the skip_ibrd_fbrd vendor flag to skip IBRD/FBRD programming. When set, the baud rate is derived directly from the UART clock rate using a fixed divisor. Signed-off-by: Kartik Rajput --- drivers/tty/serial/amba-pl011.c | 53 +++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl01= 1.c index 7f17d288c807..79e1c937a600 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -114,6 +114,7 @@ struct vendor_data { bool cts_event_workaround; bool always_enabled; bool fixed_options; + bool skip_ibrd_fbrd; =20 unsigned int (*get_fifosize)(struct amba_device *dev); }; @@ -2115,11 +2116,6 @@ pl011_set_termios(struct uart_port *port, struct kte= rmios *termios, uap->dmarx.poll_rate =3D DIV_ROUND_UP(10000000, baud); #endif =20 - if (baud > port->uartclk / 16) - quot =3D DIV_ROUND_CLOSEST(port->uartclk * 8, baud); - else - quot =3D DIV_ROUND_CLOSEST(port->uartclk * 4, baud); - switch (termios->c_cflag & CSIZE) { case CS5: lcr_h =3D UART01x_LCRH_WLEN_5; @@ -2190,21 +2186,28 @@ pl011_set_termios(struct uart_port *port, struct kt= ermios *termios, old_cr &=3D ~ST_UART011_CR_OVSFACT; } =20 - /* - * Workaround for the ST Micro oversampling variants to - * increase the bitrate slightly, by lowering the divisor, - * to avoid delayed sampling of start bit at high speeds, - * else we see data corruption. - */ - if (uap->vendor->oversampling) { - if (baud >=3D 3000000 && baud < 3250000 && quot > 1) - quot -=3D 1; - else if (baud > 3250000 && quot > 2) - quot -=3D 2; + if (!uap->vendor->skip_ibrd_fbrd) { + if (baud > port->uartclk / 16) + quot =3D DIV_ROUND_CLOSEST(port->uartclk * 8, baud); + else + quot =3D DIV_ROUND_CLOSEST(port->uartclk * 4, baud); + + /* + * Workaround for the ST Micro oversampling variants to + * increase the bitrate slightly, by lowering the divisor, + * to avoid delayed sampling of start bit at high speeds, + * else we see data corruption. + */ + if (uap->vendor->oversampling) { + if (baud >=3D 3000000 && baud < 3250000 && quot > 1) + quot -=3D 1; + else if (baud > 3250000 && quot > 2) + quot -=3D 2; + } + /* Set baud rate */ + pl011_write(quot & 0x3f, uap, REG_FBRD); + pl011_write(quot >> 6, uap, REG_IBRD); } - /* Set baud rate */ - pl011_write(quot & 0x3f, uap, REG_FBRD); - pl011_write(quot >> 6, uap, REG_IBRD); =20 /* * ----------v----------v----------v----------v----- @@ -2374,6 +2377,7 @@ static void pl011_console_get_options(struct uart_amb= a_port *uap, int *baud, int *parity, int *bits) { unsigned int lcr_h, ibrd, fbrd; + unsigned int clkdiv; =20 if (!(pl011_read(uap, REG_CR) & UART01x_CR_UARTEN)) return; @@ -2393,10 +2397,15 @@ static void pl011_console_get_options(struct uart_a= mba_port *uap, int *baud, else *bits =3D 8; =20 - ibrd =3D pl011_read(uap, REG_IBRD); - fbrd =3D pl011_read(uap, REG_FBRD); + if (uap->vendor->skip_ibrd_fbrd) { + clkdiv =3D 64; + } else { + ibrd =3D pl011_read(uap, REG_IBRD); + fbrd =3D pl011_read(uap, REG_FBRD); + clkdiv =3D 64 * ibrd + fbrd; + } =20 - *baud =3D uap->port.uartclk * 4 / (64 * ibrd + fbrd); + *baud =3D uap->port.uartclk * 4 / clkdiv; =20 if (uap->vendor->oversampling && (pl011_read(uap, REG_CR) & ST_UART011_CR_OVSFACT)) --=20 2.43.0 From nobody Thu Apr 16 22:33:13 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012026.outbound.protection.outlook.com [52.101.43.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5200D3081C2; Wed, 25 Feb 2026 06:59:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772002789; cv=fail; b=szU7is/BisfeTdrlQ5NfiVULWG+i90g//0MClvOewSCfkaWi6O0SIBW30wtUMZMukYWu7The2a3Bq4YcTPCraurID/5n6voC3F0RLCX9bA8IJhqEDv9799ohp5RoIovXp7gLM/X/80AJlZ1W7Hv+2XIA8nubmX5PrD/nSLvbj10= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772002789; c=relaxed/simple; bh=P2zs0VWZn0unFBi3/h3BPH5kZ/B9Q/hM+KtgZy/5JmY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=btw9UdgNe3t1OHPnxDoqwEYw0R+xvB9uVgBV1dFkAzwLWq8Dv2drNx+8/pXmYLfeuz0qXwjEfQNO9od2t08fvHUTPJzXnb5LoXLL1i64ll3xEDFcHHCCQcX8TwE0qUgiMrvnymwyvCM4Rzo08e2eyPDa16Hyp13nAPkzX/mMWTE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=p+5YcsSR; arc=fail smtp.client-ip=52.101.43.26 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="p+5YcsSR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JyQW45RbL6hmvFuguM7hwfLFSgfteLcTZKcrmciIYH268f7w++3OAhMLij30oSF57BoeAD+RzzD50yvUz7X6nSTW9pIkdL50nsJkOPlnWXa+HmYhRKyYBywFOJI10Dfmx7FF9EoimxRBYw9eo0sVKZjP89xuIZLfK2FxlmA0vfJwAfLzo/oq/dVbik5ZN6eYOG1tC7o91FH9cpZiBJHqBNK3Sw1lPxJTt6CbbEUDn4E1pPUCwJF5qVtdErQpvaTCFLE4zt5M6piuxGUDw56C7+yMP/OamPNfUdknJhd2udDGLZYRZefVZYOcNfUfcCDuUC57wphZdfr+f14YC+dnbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TVtcThJPxQB7HK1DAs15Y1MAqXFbs5DESPi1onuNWjE=; b=ujaPAvm8JvQk/y456XH8Go7IwgLZ31pGZhyETolpTvrBH/A9cgI32KH3DY8QzIE4b4PeVSWJCH9HCiamQUYcRrd5DTOREuSGFyEZZirUg845N5+7A0IkweJrGYnQ81gU1C+QM0rLQ97cEKPDfxO+FR35S8aPxvzxYc8e3RK7LntIZLryLW/LCs/PhA+rfnRrna3qpYNu5H2lbnLgk+L78E2Htr29bks+u6sOjg8ESMIB/YGQUJXvECnYajHSmz5fzjmn3vPj8KFTSfELbsWO8J13BWn0opyKjxVyp63BavsVyf+msBhHcdOee8eWRVmwi+k/APe6NaTCeStm1R6eWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=armlinux.org.uk smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TVtcThJPxQB7HK1DAs15Y1MAqXFbs5DESPi1onuNWjE=; b=p+5YcsSRG1C0L7e4qHOhBeb/nTmL2vmb/r0jn9yxKWdbxfYRb0hxkV/kmrsEJLEVyLrkl+rGDNxB8swCkFNZyBV8z7dY8uz0uO++VV/G/Ym/aNYCMWDwCAAsN015MeDWhaYjUOtfM+SLaFpFugztVqn3DNCJxY2Jy0D9AWAI2/JC7kkhwmFf1OBmqAtijwbAWE3440DL5wKgVADXiGtMcNrtZfSsCgH7MrFemqhDg/F+oQGuBO5xm+vL1ivV0RzqLZBr3w/kxHkyMLMCjTdzSi3qYLw0Ke9Llv8ByhtNn6vh5Y9my0b24hosY1gKH/C0MfWXJSWg9AfsXuoosqAdHg== Received: from CH0PR03CA0246.namprd03.prod.outlook.com (2603:10b6:610:e5::11) by SA0PR12MB4463.namprd12.prod.outlook.com (2603:10b6:806:92::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Wed, 25 Feb 2026 06:59:44 +0000 Received: from CH2PEPF00000141.namprd02.prod.outlook.com (2603:10b6:610:e5:cafe::cc) by CH0PR03CA0246.outlook.office365.com (2603:10b6:610:e5::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.23 via Frontend Transport; Wed, 25 Feb 2026 06:59:42 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF00000141.mail.protection.outlook.com (10.167.244.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Wed, 25 Feb 2026 06:59:44 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 24 Feb 2026 22:59:29 -0800 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 24 Feb 2026 22:59:29 -0800 Received: from kkartik-desktop.nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 24 Feb 2026 22:59:25 -0800 From: Kartik Rajput To: , , , , , , , , , , CC: Kartik Rajput Subject: [PATCH 2/4] serial: amba-pl011: Introduce set_uartclk_rate vendor flag Date: Wed, 25 Feb 2026 12:29:12 +0530 Message-ID: <20260225065915.341522-3-kkartik@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225065915.341522-1-kkartik@nvidia.com> References: <20260225065915.341522-1-kkartik@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF00000141:EE_|SA0PR12MB4463:EE_ X-MS-Office365-Filtering-Correlation-Id: 6d343df9-c644-45ed-a998-08de743b74ae X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|82310400026|36860700013|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?tH9mrFr/j0jLh31tRpb4gm9y9STMIWJif3s85SlTGMC5Eco9iaROg3590OkA?= =?us-ascii?Q?KCaGKMuRYZ4zJofBIPA9nahoyO5rbanNHZ7djtDqFdOIjXvxsCknmnGyA8fH?= =?us-ascii?Q?rFhUr4ncd/lsWPgKzaQbrd0rQpLXq+YPhLEsPlwhnzXXSDY9uh7bvCnUuEnK?= =?us-ascii?Q?fqAV0uSFDH4z1ogxj2LFmRyY/45wfQD3yJiqq3EWnBQPH6Rg1EMTBYxVpNLt?= =?us-ascii?Q?ieZ6BbV41nMH2QHo5FG1OxixI1bHtVh8GgseKQGVrR21vx6PR3HCuY/UfxqF?= =?us-ascii?Q?c+tXmWVTI96x5PFTU0eueVJkbyQclrmgceuGjH/Uc3gYe0gGEDZjk6v9Tonv?= =?us-ascii?Q?AAqrk8EIIXwktm3GB3RZC8lhB8rzIY8Ko1qC7UjoJIh6awcbGOAGtZF+df9u?= =?us-ascii?Q?ZX5nYiEFAgzi0OxtZkUM2TCEhvGsuUnI+MqxBua3zesuxIRKSVJFtjk5f3mQ?= =?us-ascii?Q?qyvMmfas532DzOsdNpDoVLIKXMhmpEPFDrtoKtBVHm+1YIO8oB7rTJhoc2oO?= =?us-ascii?Q?ZzBHvKjJKFL+hu2nQe8JlgkVI8nJNrS6vmn2CZkHVN4j3dXuy6Ekv0Niynm+?= =?us-ascii?Q?1Rw63/b+YW8AsKl4Z0Y/yvXxgpWKUjCR2qlagMdeNkGCsmduJOALzDKuJl1T?= =?us-ascii?Q?OlezrITgXT4w9Hv1QXXLJb9/uHtrK3II5OV0K53ycKHLaV+uOibJc733pf60?= =?us-ascii?Q?YsIsLgqriQO/Q5ZbUWi+62Yv7M3hNxF0FECscpU9tpIsF9YToTyE47z+LLAK?= =?us-ascii?Q?vrNa+MTW76vHKmEOdbwqrxoFfcAmzck9zstDK/WdUga5fZhAYFtFoBE3vjQu?= =?us-ascii?Q?8zpqOtdLjHt/n8MGrHH+NijUTCyNWLCr70uoCgfjGKQUlq4w9Xf2ABfSp9h0?= =?us-ascii?Q?FRS/E/yziQl8G5W4daPkcWx8uC7h2a2zAtOjuRoj2hOOQaja2VTnvSB8ZIgY?= =?us-ascii?Q?z9BYIjrOjuKQNZQPjFP7v/jXcOCqCSt0P534S+EQPhAwe3FUHALVx3SeuQ3W?= =?us-ascii?Q?6RfML3L02b3Xe0BahcZ54DnnXxsslR0MACsHTXPOwBr5docdoj/yx5QQaJaD?= =?us-ascii?Q?yzm0ZJZc1IJx8jAiUUV7e9X2t1bwglsF1oFe/iRNk+87xv463b/8rZ4rYL8L?= =?us-ascii?Q?QswPvill2bXHSuM6jYamsWQM6EugEiugPCKp0OO/qC5gnV80X7Vdb9qV9WpN?= =?us-ascii?Q?Wi8hZtUCoqM/LmR0HxUMCllFcq5+tAiVbyVtmMX+cIb715ZMwYW0InctrOQ2?= =?us-ascii?Q?lwzLBowm5Jg79uEBnDiqn64k/Konk+sFFNnSK7RRqpdSIzHJXh0iAQ2buu14?= =?us-ascii?Q?M2FeWZes9ymQkPb1pHs82n3D1ipkyMWF6O6Mde4pxFjd8Nx+zWMDtrwnMdDR?= =?us-ascii?Q?43J+6XFsQbj35gGdvEjR4HNe87OloNJaAT64pA/oiccXjI4uC+wdeMDCcc7P?= =?us-ascii?Q?3FTDVxyO7FyLU5Ii4cJ5jAmEmIUrjgS+MDSVf7li07mTHcdIoHTB3az4+DnK?= =?us-ascii?Q?mnMvxYYMuPfWRpAYCRww3Vx506TsoWkCFvYOSGkurNK3EWUIcmzEHi3t5mAy?= =?us-ascii?Q?DftX5hyDQAQ6IP++0e8Sxt33FdQWnwma4E+f0rwMEIoGVvFKOeh7ysGYKiMg?= =?us-ascii?Q?kJ3OczqFw7SDzARwuYsUhmxy+hTjz/i/D6Uh1pxAmQrjEmCM8NiCiRdWQXK7?= =?us-ascii?Q?C86jlMphk4QkPj6SfsKaDQCaLGM=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(82310400026)(36860700013)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1ofmuFBje+QlE+Mr0qbvQ/Awab4TMmj0EA8W4QeTz9LwR9fdMWqhHisBnZjUSgSLRP2Txe5lXEC9QohCtT+uhRuGwTxjO/oqLF8eXIPwJS9NXaL6BodQVzOd7daKx1lI7xMsuiAuUicC4aJ+4ZvKANu6ghG+8s1FmW66Wok0/Xsd7mLPnS/jk+CyOfR3MMr8x178WrVqulyKuIpbQFs5fgpcSozOOY+DaZLIuEfwX6XnP5KUdCF8fW9/ZN87NKNHOPHwKwcf2BaM2ft/m4S2eFghHCQMWjyYz3KVNev7Blw8MM49c2H5O+Bu5agRT6+5LXci59qBObuovB40y6Ab6IPFz6OeM79j25QuNa+xSpkjARtDSdlxk8RKVxV30fP0sfpZZizytthfeo9kOX8XtpNyBDWTClitnmXWWFZRRNbQHp38OID46HNi0gCp+bDR X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 06:59:44.0640 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6d343df9-c644-45ed-a998-08de743b74ae X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF00000141.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4463 Content-Type: text/plain; charset="utf-8" The NVIDIA Tegra264 UART relies on configuring the UART clock rate directly to program the desired baud rate. Introduce the set_uartclk_rate vendor flag. When set, the driver uses clk_set_rate() to program the UART clock to the desired baud rate and clk_round_rate() to determine the maximum supported baud rate. Signed-off-by: Kartik Rajput --- drivers/tty/serial/amba-pl011.c | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl01= 1.c index 79e1c937a600..ad06dc4cdf6e 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -115,6 +115,7 @@ struct vendor_data { bool always_enabled; bool fixed_options; bool skip_ibrd_fbrd; + bool set_uartclk_rate; =20 unsigned int (*get_fifosize)(struct amba_device *dev); }; @@ -2096,6 +2097,7 @@ pl011_set_termios(struct uart_port *port, struct kter= mios *termios, unsigned int lcr_h, old_cr; unsigned long flags; unsigned int baud, quot, clkdiv; + unsigned int max_baud; unsigned int bits; =20 if (uap->vendor->oversampling) @@ -2103,11 +2105,34 @@ pl011_set_termios(struct uart_port *port, struct kt= ermios *termios, else clkdiv =3D 16; =20 + max_baud =3D port->uartclk / clkdiv; + + if (uap->vendor->set_uartclk_rate) { + long max_clkrate =3D clk_round_rate(uap->clk, UINT_MAX); + + /* + * Clock is reprogrammable - determine max baud from the clock's + * maximum rate, not the current uartclk. + */ + if (max_clkrate > 0) + max_baud =3D max_clkrate / clkdiv; + } + /* * Ask the core to calculate the divisor for us. */ - baud =3D uart_get_baud_rate(port, termios, old, 0, - port->uartclk / clkdiv); + baud =3D uart_get_baud_rate(port, termios, old, 0, max_baud); + + if (uap->vendor->set_uartclk_rate) { + int err; + + err =3D clk_set_rate(uap->clk, baud * clkdiv); + if (err) { + dev_err(port->dev, "Failed to set clock rate: %d\n", err); + return; + } + } + #ifdef CONFIG_DMA_ENGINE /* * Adjust RX DMA polling rate with baud rate if not specified. --=20 2.43.0 From nobody Thu Apr 16 22:33:13 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010034.outbound.protection.outlook.com [52.101.56.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA1F53081C2; Wed, 25 Feb 2026 06:59:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772002794; cv=fail; b=nygjinaAVEwdeMBesUjXA8UlTWqNOwdYtw8KQnjnrtsIyVUwlzVf/HxHk6TNxjNvEMXNF8C9FSOpiqWBmNkF885p8nGRJoL6y0QGZ8Kix2eDP13RaamFyLCpIl9wVoT9AZLBTDw5UJxrkV+GeIsNcrgTT8h7VXsLP9laQu/7aSk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772002794; c=relaxed/simple; bh=k5eX4Ga4TP2U7yuKpcUUB3bxdpIZ/LM6DYQBdKPXT5I=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EvmiOfTpIQU44K7ySOHRGbQILml5Yi9Q9BTKd1dfeUHCr2Tn2QK07jbVBleUWiNBVeSLfYvjZpGUTcJnLNIvCj1frock8loXHqK+u2a9ndJxqRQ/HEUjPT0+9d26sYp6ok6tOy7kIuenfXzq4mCJWim+PrWyE5kRTPr4H9ufhVs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=XDwA2mMO; arc=fail smtp.client-ip=52.101.56.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="XDwA2mMO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dP83JGLqMIxIqvPht4pi4LJRMczRvDTWAzjiMlR3ErMRZ59sginDHHlaTFrDoi5YUkBDhVth/z+PaPBR9sssoiNk8NukK1VfpXNsB2YzH17ggMuJsDt4RnGRSMDvpaIYYnK+tCoXtoH7dC0xOLYZIm4MH9xUZiT6cQD3rLHoB6pIDYS1x05O27E1SMtXMmaKLBxuIPc0ZQW/lWWNsfuq1wY+IgD/7ktky7qQDzur2k04dB0YBlOYrVmWDhsm/HXtrDJ1WTltI3+m40BgQsmsUluyIgIo+/BmJBqNGskjvlHPcZ81JR1/zhtCTNSFPgxpy0hcqla4274DMJ3RBVBLDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WmI0fp4WqiOCbfvsh2VCnwz5kdR5zYqQQafVmq9a4wk=; b=c7ZAXNoBZPbmC3ZQkLGatZ81XDLfZkienyrbzhRz0ZmSLxnUIxetg9dsccJUJ6g9FS7w67mTDkz2WJVfFJ9ecFsqR8Za+Dj2lmeIN3nzGqkvgHZafwyHV3aQi0nJxFnUGD7un9Jrzgo2ICNrnZSLyYSMuzuXDTofILSodLjloRuCuGpL5CG2wradZf8KlziAV7NeSyJFlUeTgN6adXX4NHOInbU7QjbD1ytHc+H/iIL9l3zBVWpA0VbuixEWGisdtm2jAoKRwMABYSqR055MRovrIxav2JsfDfqjVq5U38Fp0ITFmS62XdVaB24snS59oBaoMri4OuW/AwrkCJTzcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=armlinux.org.uk smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WmI0fp4WqiOCbfvsh2VCnwz5kdR5zYqQQafVmq9a4wk=; b=XDwA2mMOoxxgMmTtmF72NIzIgVKo0+1zMwqvfqcsSnSx3NmQvoT/2dscSqyUdr69dhKTmVud0Ddwl5ul2DLyKt+mzUOJiUjl85FIc21xgE/CWYuaWgNTm57TydU2FZ+ThNgKBUIZa5gQtmzTsWCWVWtW+RNoHyUY88M8ngmlDC3P/5C8u59nXe2h8WlPYRcRS1xRTGYypurwQobJZfSrGEAgZPOgph+kr4gnAGVcZBgvY1iFKlC8Ps9DVgvgnjCCk3OkHc0cYkiQWQdgVpYYfM8bg+rJqb1j+EnxdgBt09Nd4O+LEQTRmbeDVQ72C/TMCclf6rC31ymtEu7li3JV5A== Received: from CH0PR04CA0114.namprd04.prod.outlook.com (2603:10b6:610:75::29) by BY5PR12MB4130.namprd12.prod.outlook.com (2603:10b6:a03:20b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Wed, 25 Feb 2026 06:59:48 +0000 Received: from CH2PEPF0000013F.namprd02.prod.outlook.com (2603:10b6:610:75:cafe::e1) by CH0PR04CA0114.outlook.office365.com (2603:10b6:610:75::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23 via Frontend Transport; Wed, 25 Feb 2026 06:59:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013F.mail.protection.outlook.com (10.167.244.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Wed, 25 Feb 2026 06:59:48 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 24 Feb 2026 22:59:33 -0800 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 24 Feb 2026 22:59:33 -0800 Received: from kkartik-desktop.nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 24 Feb 2026 22:59:29 -0800 From: Kartik Rajput To: , , , , , , , , , , CC: Kartik Rajput Subject: [PATCH 3/4] serial: amba-pl011: Add Tegra264 UART support Date: Wed, 25 Feb 2026 12:29:13 +0530 Message-ID: <20260225065915.341522-4-kkartik@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225065915.341522-1-kkartik@nvidia.com> References: <20260225065915.341522-1-kkartik@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013F:EE_|BY5PR12MB4130:EE_ X-MS-Office365-Filtering-Correlation-Id: bf6fc96f-779a-411c-600c-08de743b7753 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|7416014|376014|82310400026|1800799024|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0BT5CPUPVWuo86J+uhGL/mP0OhBuqR9uRjmS6ovJ6fDMOQVZlBMDI6mDdd9E?= =?us-ascii?Q?1o+/z7LuYUw/SSN8hFNdyGA0OSKG6owt0D35ekT4N0mYuKlFnoSPF3qeXI+Z?= =?us-ascii?Q?aKy1OxZd/HTAEGaPxRYugRgG75DG8IEN23XbPxDPHHfkcSQIJlGDpgHDv+PD?= =?us-ascii?Q?XgzPMwh6bdSKPgr+zJey+mQmV37sCEKwFsp37defPH37uC0c5sqW1+gtVRSA?= =?us-ascii?Q?rnk6w4+JLLMoN5Zd5s0KuttfA591Iutx/qqGcMRLrG9xIs7je9PIj0OEi8MW?= =?us-ascii?Q?rRNqiyiF1x6QRzfMxLCjAzQjz4pzk8FfFfF8jxgd2Pm6Qom1eXt+0KZx0GId?= =?us-ascii?Q?DiFZiJwLiLaCjTMbbO62ZgR6u+YCGRbKJNfGvQB0Sw6LjI1jK7G1Ep9aoHiG?= =?us-ascii?Q?ajKJ/x4LTyRwiqGTYxOXGy1J+PE7Y2B68JFoCV8e7WaNr0JaCdRzDu/0Nnyx?= =?us-ascii?Q?zKk9NmzYwNnWAjL++Wbv64AN6Vhrz2lwigG5uy6ZIqPMRp1bojO67zfqrS7z?= =?us-ascii?Q?GQ1B7Z+XNJ/ZoHoHH6HBPvtT8jnndtHHW7ld6A6rAMfCoiSTMi4C3JHifatB?= =?us-ascii?Q?B/XOTJIo5/ygBVILllvab7CgnL7eGpEkK6pwu6W/oT/WW2UnZvcwuDT3bEGg?= =?us-ascii?Q?kajIqAxzq8Mmi8qnA1nvM2vLS+zDab4hX2upCwrDx8Uwp+fo/DVR9MHhQ9KX?= =?us-ascii?Q?2ddN5Wl1TBxTxBY8Psk1gAkK1wU6e2r0Pk2jp9DE0eyCiTHnTgKFykhXKZ4w?= =?us-ascii?Q?5rIAZykhzpuANy4hwLAmkoQk8WwxdwopBpxYE4UYYA3LdL4lMbaTPdW/mek0?= =?us-ascii?Q?2k4TvP2OLoIGGj6xNVL4rDCxzbeTd4mS27jrltx6Qq2w8hZpFhvzNr0Wn9+h?= =?us-ascii?Q?odSIiokHA5KNGYOYXvL+6623hfoQwiaV3G15ssP3y4Me3CkdE5yRAzsq5/zz?= =?us-ascii?Q?yLTUNN6uRDULjZ1nUoHmDOY2RdjLBXDfabQZQbrfvWdf2ZWftCfejLCIOGZn?= =?us-ascii?Q?RQINSFipOTQzxI7qN8kvDDqE48XDqeeEDgWJ0sB1u3TudP4ab1ZTTyj3Opf/?= =?us-ascii?Q?OvI9mTRl56tnwIr/zs2/sYqT4KZR0Fry1t7rHYi0tF2IAAsVypNAVIDx42vT?= =?us-ascii?Q?Xer3wpAMjIuEmN5Rk2PyB4utIjPkApGETTQaiVJmEeqT03SsRZ1NcXZToH4e?= =?us-ascii?Q?mlm0nE68R8ZifdrRYZ80zl624sNE3FfauoKHcWNHa84wabYDyFkCdrSfcIIJ?= =?us-ascii?Q?z39XEO20+B/bp4tS9OMlul4Bnnfe2esy9QY4iCQDuUTwuWqMT4HEZAFs9IRI?= =?us-ascii?Q?lfxjYqmP5Yd8X5b8zzJh3RA11l0OH9pNYSPDAhomNVI3iMmRHFXNyGC2403+?= =?us-ascii?Q?Vg1WLROIljQaNlrnmbI/qwfh1y5jQTl5Ei1nlKzoWTuoWaW6We8rjpFLB8q6?= =?us-ascii?Q?yN8JsAr+GWXewcmaIqUZJAsqjSHthfOWWhF23bO/i732asvjuz3vyeK4g223?= =?us-ascii?Q?HjOP1O3nF/SdXci1jwmJT3JKskpz78x/ht3r230lFXAvGSoESbyObE8DG8M2?= =?us-ascii?Q?jcERWpmSlea/L04Jg9hi3PI9RbRtJtXEe+tjT05m09jfpESw2fq4+B/SChl4?= =?us-ascii?Q?zWatdcl5/E5aqBpumO4w1nIc8jBmpMBkDtGcGnj/ofSslOjaROzWb3hCAwE3?= =?us-ascii?Q?wa9fjnF+jrYT5v4VtBwmYnuEQ0c=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(7416014)(376014)(82310400026)(1800799024)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Dh36eSJulBumw/c0AjTvuQSUJPw3ZFH8EaF/1Nn/S4JCi8kIrX2N0SKH9A2fxot6V35UfFK2cV+kW/IjPuBjVla8JoFw0xp9VI9iHqNvRQqpT25gWdmprcuJplJNF+H4gGMJyLxPDV3RLv6M9ArLbdaCRVO5blYG7iPsWhJ6ecCiL40CgUPPvPokCoFuBbrY1iKFogPFelZDSefPErFnqv0rGQGU/CBAFI+hg+Jbog4d7FoXDLRDnhYiIPFb++amETKpnBPPmnmgokorbyUTxslzx987Lm6DNEXRceJuEc6RCiFCJZMTeg+kTN8dVWGQKYMxd8rdmOdKQ//LWsLD3wBsLvuq8RGG5bvpjXio+4A0014CDrTHxas/X8iH+ZUdSIAohIPvWToAQd3fLTesEOsjdALXW1kxJLPgFJpQHTO7yF4JLmrJIc9DQO9vfoRF X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 06:59:48.5627 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bf6fc96f-779a-411c-600c-08de743b7753 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013F.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4130 Content-Type: text/plain; charset="utf-8" Add support for the NVIDIA Tegra264 UART controller, which is derived from the AMBA PL011 design. On Tegra264, the fractional baud rate divisor (FBRD) register is broken. Using IBRD alone may not achieve the required baud rate tolerance. Enable the skip_ibrd_fbrd and set_uartclk_rate flags for the NVIDIA variant. Signed-off-by: Kartik Rajput --- drivers/tty/serial/amba-pl011.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl01= 1.c index ad06dc4cdf6e..7f8deb30650a 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -218,6 +218,28 @@ static struct vendor_data vendor_st =3D { .get_fifosize =3D get_fifosize_st, }; =20 +static unsigned int get_fifosize_nvidia(struct amba_device *dev) +{ + return 32; +} + +static struct vendor_data vendor_nvidia =3D { + .reg_offset =3D pl011_std_offsets, + .ifls =3D UART011_IFLS_RX4_8 | UART011_IFLS_TX4_8, + .fr_busy =3D UART01x_FR_BUSY, + .fr_dsr =3D UART01x_FR_DSR, + .fr_cts =3D UART01x_FR_CTS, + .fr_ri =3D UART011_FR_RI, + .oversampling =3D false, + .dma_threshold =3D false, + .cts_event_workaround =3D false, + .always_enabled =3D false, + .fixed_options =3D false, + .skip_ibrd_fbrd =3D true, + .set_uartclk_rate =3D true, + .get_fifosize =3D get_fifosize_nvidia, +}; + /* Deals with DMA transactions */ =20 struct pl011_dmabuf { @@ -3115,6 +3137,11 @@ static const struct amba_id pl011_ids[] =3D { .mask =3D 0x00ffffff, .data =3D &vendor_st, }, + { + .id =3D 0x0006b011, + .mask =3D 0x000fffff, + .data =3D &vendor_nvidia, + }, { 0, 0 }, }; =20 --=20 2.43.0 From nobody Thu Apr 16 22:33:13 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012023.outbound.protection.outlook.com [52.101.48.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 27D7C31355C; Wed, 25 Feb 2026 06:59:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772002800; cv=fail; b=ZzuRuYinMXLK5l0JTnwfzeUwrqPhZJvbQGHm8p2aM1MEcj5jplB5w1LSDvq3ukfjIUvHVDbfOcVSMAQXYCo6eg8uXYdYTskd+G5+nu64VIRyNAvTjZGlM8iFIAFlo1LSgeoCB4uX2ae69JPwWnlAX72kNwUTJjt1m9MEy0BWkNs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772002800; c=relaxed/simple; bh=WzHGw1+dIPBsvOfSmmuSca7FgObqq3pSuigSDIouYMM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZJU2jcrHeFBvIlYOLtt8rUanNfbGVgcz9whd3L4XQRaX6jfaXiJ7UcA8Zoa2JVvlbOI5Mv6ofIl4VF8EBU71vbwP3i2IHFraq6qlnDbgzFq/rF9mnxMz2DzAT4T/AL1dd67AIRJ+2z/RBNGgGi1Va3CQx+u3wwdZAde2604wlf4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=DEJNDJ1s; arc=fail smtp.client-ip=52.101.48.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="DEJNDJ1s" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Yh+PfcalmSGA35uZRa0s4s1XyUJK4T8nWJ0TxVWZ4+xMldP6jmJaWvD4xGSyQKBRgQlU/zoRrP6tLs42WsrMIiULzI9SDytHjFRG4BS3738NxCQXInaFGVfztWbiQD/50ecW2IUNvnhsB23aWUL80WJ8sYf4rw0ZKw3xL5/ZJSjBwdMyIzzyh5nMgpRM4X3Pq9iqfnLJaK62/NW9JE2BAk7OaJNPDv09W4rqF8+LRPVs33/s6su35sd7pfjsW5iOMTcy9/fAvut5eB3tJ2/HqypVhezMX9UDLT3rXBajSQjoNIEKIPtJmCIrjqzZad9eIV8+HSJ8Nrx6VkiW8NmzdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LOg9DxJ7dor6JKOnQ5yd8wcHPq2IfvqtGh3hi9zPsSg=; b=hcYxoc8aGU6x4buqHwx4ZuWeMoLQeIjbpqc5/7BpA8+XGx4iHAdYF6ipQuJr4expfn4hbWVuzHTB/CyLXmldEJhPQ+yqNnjxWlFXBx/wF44LTwLX67rP6lpZ4XS7EgX3qKTfXaqfJ31h/drJgRS/lGZf/RbHqghTwGl3yJduQ7aVPiIWgGed9dikLGNd8OkWFXSXhg0m6IyzsnvYaiybeYsvku/SPZ2RiMX5s+bxQ3zxDjzaL+J/WIXegzRt1MDCAewL+8/gaeZicVOCZdY3WPvCK74O7/E1fdm4wUCQ2Iv1EGkgOhKXX3ZOuy1JLkosokIL6fIqaLAjHb4shRVnDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=armlinux.org.uk smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LOg9DxJ7dor6JKOnQ5yd8wcHPq2IfvqtGh3hi9zPsSg=; b=DEJNDJ1sEnQc8TaqCda5XASbxwWZGZHsWrA2nNJ8tC8m9pDWBHzopzwjGfN0OCnoRF/pztqYwfD5Q6Gi2ofq9Cnn9SDPcIm4K9rPYRxttkbKacF5EA0AkcltJLuu/cJsUM51grNF2ZtmIbfn5OfZdHfCvMd6jg7oTjcWt5t0vEhS5UMu0XrQyhPCdaAvx13U+btpzd4+L1ktLQGy+i/n+uowamtnZDolGkKUBIkO3knJ4cLz7sg9TVZ8+V6OwFSgYm+NRxis0q2JZUKut2vmgQRyylLsYlGTGv3Jou9dMi/gcxw1vVlK/G9W3oA3leum7anePI3mtLZErsm1L/wEYg== Received: from BL1PR13CA0325.namprd13.prod.outlook.com (2603:10b6:208:2c1::30) by LV3PR12MB9233.namprd12.prod.outlook.com (2603:10b6:408:194::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.23; Wed, 25 Feb 2026 06:59:55 +0000 Received: from MN1PEPF0000F0E3.namprd04.prod.outlook.com (2603:10b6:208:2c1:cafe::3d) by BL1PR13CA0325.outlook.office365.com (2603:10b6:208:2c1::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Wed, 25 Feb 2026 06:59:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by MN1PEPF0000F0E3.mail.protection.outlook.com (10.167.242.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Wed, 25 Feb 2026 06:59:55 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 24 Feb 2026 22:59:37 -0800 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 24 Feb 2026 22:59:37 -0800 Received: from kkartik-desktop.nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Tue, 24 Feb 2026 22:59:34 -0800 From: Kartik Rajput To: , , , , , , , , , , CC: Kartik Rajput Subject: [PATCH 4/4] serial: amba-pl011: Respect DMA controller's copy_align requirement Date: Wed, 25 Feb 2026 12:29:14 +0530 Message-ID: <20260225065915.341522-5-kkartik@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260225065915.341522-1-kkartik@nvidia.com> References: <20260225065915.341522-1-kkartik@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E3:EE_|LV3PR12MB9233:EE_ X-MS-Office365-Filtering-Correlation-Id: ed4585f3-1ffd-436d-9f4a-08de743b7b3b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|376014|7416014|1800799024|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?3fI8H/Z6dyZILrdQOvhaiPgp6DcMLKexcHl18p+PFFCph6J8JghNwTlTyL/p?= =?us-ascii?Q?vnaq7cZNp51vgPPVwCgd2nUwDHOpltON6g857kp1kuJWc+kNVJjyMYsqvnFV?= =?us-ascii?Q?749AC/jJ3SWEIYUPSoCeFlvvqbe/49FiXJRh9eGbMKS+Fn20pahkEUwA2fOd?= =?us-ascii?Q?qHYccPYnMWSy6BwM0MpSOEtXfT/HbXyedaqnedIWPIHz9l0/EpddPWSXpZIa?= =?us-ascii?Q?fEijX72GYls47CYGCLUpOqw4ZscsRhb41U9MThoFuXBwSPgOhGeupRBlGdIb?= =?us-ascii?Q?ESC3271W4UWQANt1Hwj1KD3B5O114oZDmsWqAz+G/fi/Q5NY11teLNR+9/a5?= =?us-ascii?Q?AJc2pufBA8FdcBsQ3/VWS5RZl2xZM6vhcE6UeSo03LR5rKLRWSIXN8O4VmUF?= =?us-ascii?Q?Z7xaWlU0K4jVB6pyM7RQzCOrAxlUTH5RbjNF7RRYqleD+u/ImVzYmGNAZVKS?= =?us-ascii?Q?Rq79xko0qn6kuBSoMUcDvMxZ0/4XyJR4CGlrKwmCS2XuFOLnOzucQKcuaWEX?= =?us-ascii?Q?aowM5Ii9nLjBI0wtvweh0WrXd5SrAJtjNu5lXvS2BOLOrVp8kgHK5jcpdRUk?= =?us-ascii?Q?fM39/ofLTEJ+XIvvkP1SJpIxpvlkjDzZDSwGDkpV/IrgJ8F3ofAi4VL4qmNN?= =?us-ascii?Q?cIhSj88Pn/onoUr4W0IicCS2AeeFJ4HJLaBzXjHTEbt6ds7AteH7jLQcZq9T?= =?us-ascii?Q?LpogCNfWBHy275ac7A1W9Fu5V6pMJdYV+5GvILNronMq1lMwHzxHgpwHw//O?= =?us-ascii?Q?OrF7/qw5UlMrrnCMl2vRGzgNTdVHalHNYn1JQKwUrfdUGqE9RpSjIihzbTns?= =?us-ascii?Q?mURLORFTWUSGCi96F0WxRQORBtqNr/x/8l1VmHpsnvVNbEsYaLMb2aAFq/43?= =?us-ascii?Q?z77Sj9StwsIPspR8R3pCxMEp4m814WqPRQ7dlDJws1jM0s/0J9BSnJD0HIe8?= =?us-ascii?Q?vDkHhmWAqtoPdsHsnIX09vHYQ+uTzizUD5tPG0vfjfS4pvkbu1KOqr+ZzAYl?= =?us-ascii?Q?qXVEwL2G4BuTWjothH1CGObF4Qr7hjhPkkOIXvVOP0LI+L63Q48NUQkoA0iS?= =?us-ascii?Q?APFT59mvr8hmkN8A3x1tSnT7jktVKbS2+6X1U5spccDjV6sX/BjO9GLQ1sqo?= =?us-ascii?Q?AkYhO9FH7uRnOOd8YX2Mgz8jyCqwX6hqzjd/U5/rrbUOBpJR4cLFa6GqqkEz?= =?us-ascii?Q?gYusJb9UyGFAMY5+cHrxgETvAhur/lWgeNMpjuXF/2n3pHcG1nd1ALL6IxRO?= =?us-ascii?Q?xy3AMuDfaqRwGRqqHlfIW25lfbXzcF30oVl009lp7rGaLPAiaCbrSaP0gdxC?= =?us-ascii?Q?JHQsdl0dQPuWkI+fyvQjiFEL6TEIWjwb/DNzZhU9yzi6eYWYqphaZhaVrCxr?= =?us-ascii?Q?Et6nWEVPwI9SSe9e0vNvWfM7CK4QCshXguKTJcJF624trqU+fqNXTj7HG1Jv?= =?us-ascii?Q?YZ5N/GTfPeqG4DOPD9VgAAwry7G+HkRQSk7hmOVpGEPqq8OXbrKqb4CQFp1z?= =?us-ascii?Q?JODJfLmbqsXlSHLgh5CutcbcXtApdWK+EIC40MEd0U4a3todjHYNRcASioF0?= =?us-ascii?Q?UgJM5z2Hcunumw/tDRAGGOtpFLY7XeYL50sA8YyH622ExrDjqxFC8q123CTB?= =?us-ascii?Q?dI2ykPZYZYoMhqr6QSnwfg7ZZI+b2akMHrWEMRQzQ+WLcpLvBOgAVgYQcFXB?= =?us-ascii?Q?1Vsk+A9oLW7rmmVMBXFJ/a8IfKg=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(376014)(7416014)(1800799024)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ruha4Sx5htcAKqFamQ9rgOlnyg9tXjeovfrUe+V2pLProALTy328nAdrJ9WEBYmhqV1TYUje+8c9wJrgJgjJJXMGggVYpGRgYmlyfmJCOw3Lh5fWUpI6cey4duEucI0eiXR7zlsUolF1O7XR4LzcdXZXUv9kmVjTApqUb2aEf5TkF2Suo0B3qtosEwoDp/M2IrpfWS43oCuk3FKD02Q7c9FrWyAD+0CwoxGyI8ocl/0vq8QSjmT6zHFgZkLcWFK0rGA/4SB3ErAYkJpW3RoEyz6W92YoPmqvsYAGTR2iGofSBQsW4vlE9Nt2bmyFGZnzG67LrlhMQtdelwIBGnaaVhWvqicQ96NYaUfTmB/0JvzVfQoNj8o3JcyCtJNmjksLslQNQilg48ABTJXILzVxCfqX4PjgFXaboF9LgfidBKmD+tg/25FL2lrh26IEPSLg X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 06:59:55.0544 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ed4585f3-1ffd-436d-9f4a-08de743b7b3b X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E3.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR12MB9233 Content-Type: text/plain; charset="utf-8" Some DMA controllers require transfer lengths to be aligned to a specific boundary. For example, the Tegra GPC DMA requires 4-byte (word) aligned transfers and will reject unaligned lengths. Align the TX DMA buffer length down to the DMA controller's copy_align boundary before submitting the transfer. Any remaining unaligned bytes will be transmitted via PIO on subsequent calls, which is the existing fallback behavior when DMA is not used. Signed-off-by: Kartik Rajput --- drivers/tty/serial/amba-pl011.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl01= 1.c index 7f8deb30650a..98e434b0c30a 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -649,6 +649,15 @@ static int pl011_dma_tx_refill(struct uart_amba_port *= uap) count =3D PL011_DMA_BUFFER_SIZE; =20 count =3D kfifo_out_peek(&tport->xmit_fifo, dmatx->buf, count); + + /* + * Align the TX buffer length to the DMA controller's copy_align + * requirements. Some DMA controllers (e.g., Tegra GPC DMA) require + * word-aligned transfers. Unaligned bytes will be sent via PIO. + */ + if (chan->device->copy_align) + count =3D ALIGN_DOWN(count, 1 << chan->device->copy_align); + dmatx->len =3D count; dmatx->dma =3D dma_map_single(dma_dev->dev, dmatx->buf, count, DMA_TO_DEVICE); --=20 2.43.0