From nobody Fri Apr 3 01:48:27 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010041.outbound.protection.outlook.com [52.101.69.41]) (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 50622314B95; Mon, 16 Feb 2026 15:02:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254137; cv=fail; b=sA53AEV2has3KR2heVJanQmhrcXejmLRFxZVME6uXHu2oYCXaH0EbJF5xUI7tTVAF9TpJEM70Syg89j3yGWOvN4Qs9+5BgX4zZEzDGeqfro72GHx9f2AVuR5zjGbMLD+MhnY5aO1kSvmaNbJ3h7UEXrwdBTcSfQuELjpg/0AYt0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254137; c=relaxed/simple; bh=TU3kWi6lqTUkuK1a3dOvS+lxnvYI7/spOloT59QZeLk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ezVJKo3Vf7ULO56Kl9nb22oFuFIJNBOjOSZQTJOc9chORB96NNVqa7kIildEm8V7omkGpAgn93pxsdy3ZvSo8WMdEk6/RfWA+9878KrobtJcyynCj6rAlH0UNFzSzvoD0G618FmwFNu9nh/YmqcFet41I75S3Iwo2PXpxCBBC70= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=CAzLUrYI; arc=fail smtp.client-ip=52.101.69.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="CAzLUrYI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f6NXjA9jSH8qg3zxkrCSa6j8h0EXk3QAnC0dMio4cicshutEbP/fjN08b88NFwWkwFDGRkM6AJoZqBh8h3irKF/sFIe/KOPQTuCOA9TbxyfaIEvMWoD5FY0Z7NW+IXhzQ434FZwfuDU+Zv2tPC9W3DcyltR2rxjWmsal6apyVzd3B4T5e5tNJyESYO20WuIyXC2OzHjclyayLg5zHtnRJrRbefzzHS1QMosdOCdp2sbkv9mPRWhgcNtZUW5j5auPUECeJOBt+5xQKCBzs7tPZ9rqJZKiCZDToQShfUJVcGhi+YTaW/A0MSCHDDvi6H9lrc5GuCTqKqqSAns8DFy0zQ== 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=iEb2rdRQJkxB2CEDwWA2n3C62CGIQPblgjRMzdvF/3M=; b=OItXwULOfBqwEinCrFQtkpkmh8/aCETZQp2yvBlQIlqy9cPpCucf+7d6hDZaO8TCRGJq3J+U2l63xx9so4pWaI4WVHOmX5Mna9vo9vGdIHIED+SrObyMkIlkngdXXLdQtRKhy4c8oWTPkP0oQtRKgO3+6LpjUDFhn+A3jp3OutF+ylwEPCO6FGqKeJrcVSgJ1Z5Pb9y6IMUOum2WyWM88h+Owv9ZlWCDlPva1Dm6/PFlXz2IQ+TcAbSkEPaOJEZuNLgCjsZerDr0MV+OU4apyXnqPuacE9STEaWnod2H8LQSSNpgMQ1+wSsdTZjkGtCUVD2xdrRpXzUBI0IaJEey0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iEb2rdRQJkxB2CEDwWA2n3C62CGIQPblgjRMzdvF/3M=; b=CAzLUrYI6ZJpYjOjD6fVi0hhpp6gUUO7F6ueQWGS37VQkDrrElobiUHSfZ+I3vf8rs30fDYT6H5uepfKj9R726IY2jWvkc+F51JOSlVwvYNaEgouPh5e/kQO67UmKvguIymK3VTh0ppGWFQ1C7vuOQlex2NbEu3lSUJfn8WFmMarGzkozwQSpnrP8C4qvVXGjJ1XH42lfZMeQRuo+5Ftzm1DRx7x0lrhHXR9IeBShe4n4oFjG4QD3EykO2UMgn/8OeWaZqkkZZooHTLpwPtGL+RKMuU/OYgtzx5RZ2OYIRfWrHeG0/ZjsQReHdb9SYyEB2EQDhHLh4Bg5ksPfheySQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:11 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:11 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Radu Pirea , Larisa Grigore Subject: [PATCH 01/13] serial: linflexuart: Fix locking in set_termios Date: Mon, 16 Feb 2026 16:01:53 +0100 Message-ID: <20260216150205.212318-2-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P250CA0001.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:5df::6) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: 93687f4d-cc92-47dc-4d21-08de6d6c5cdc X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bS9TSzhCZXNYMll6WGtOV1ZDUXVQaGwxb1hPSEt0TmQxMjR4MXM5MEtxN3pi?= =?utf-8?B?MWloNUcwTGRYNWFqT2dRTWdzaTFLanJad2txemxRRDhBaWZuQ096bmtpNHFa?= =?utf-8?B?TmFRTGxYL3lLY3VxZXhmc1NoU0RXTFJkbnFFaHkycFVKYzFFelVFMmdoa0x0?= =?utf-8?B?dENUeFM2VjJXL0t5eGxBMXpZWmJwNEEzMlJLYmNpcGhoZ3YzSUd5SDhYY1Er?= =?utf-8?B?cUNsWUNPVk43QlB3Q1gwZys2N3RubndON1ZrbVJLVVJFNTVtSW5HUnhaUkVw?= =?utf-8?B?TDZHOGZJektRL0grZW4wUS9DNCtLYmlwNnBGZm1BWTZkYmswQ0RZdjRGUTMr?= =?utf-8?B?Q3VGM3FZT1ZadFk5eXdxaS95Z1I1ZlpYaGowdjJSMUp1ZVVwbVlvL0lFdjN4?= =?utf-8?B?ZmxZQkViZi9VRDIralpVb09adkFQS05KUVU3Z0psd1pOTU5lbjAvVjFDU0xD?= =?utf-8?B?R0dPTFMya1hJak9IRW42ZDdkV3I1TmdveW9CNWNEM1R2c3FLcStoZFR0Smdm?= =?utf-8?B?Zk1kL3UwMElxUjFSVmZQVThWbk9QZHlMTnliMVBoTXFOTCsyMVdkd2k3K1ZJ?= =?utf-8?B?YURNRm1ZTysrRi9sdk1KczFKRDRQcUtzaHdkZ3p2UXNkUm9CK3VZcVN5NnVL?= =?utf-8?B?Q0RBNFZLcW5zTU9jY1QyRjRXa3RnNUVQK09vcWFsWWttaFVuMkZXaWR6QjNS?= =?utf-8?B?eUtNVWhjNTJjc0Qxc2RpYWc3TTN2VlFrbWhmQlVUOVFxNWVocFgyVDhPMG1P?= =?utf-8?B?eW5zRllKTWY5RmIyWFc2K0tQbm1TNGR6MjhrY3BmS0RhZkNjeDd4b053Z2dK?= =?utf-8?B?TWoxMEpNMW9DV05wVnBzYjJ0M1Q0QlVwejNQb3JpVWRwQWdmaWlyemd6am9a?= =?utf-8?B?NVNPZ0EyNElKbm9MNUQ0ckhZa3dwMFJJbm0rSjB2Qy84Vm9MRVltT0xhMXZR?= =?utf-8?B?dEpFYUFFUksybUZIM2RFWisvN0FFR0ZKQUtVYnB2aVZDZVlZZCtQdVhMYTcx?= =?utf-8?B?NkFrMXFsYmo4ckN5ejc1dGtLbEFvajhCSkVEd0xISzhTVm9TY0xKNVkyUXND?= =?utf-8?B?TlUrYU80dTlVVzRvNkV4dllyU0FVSEtPUnpoc3FndEhoakJHSC9hM244SnMx?= =?utf-8?B?TnowREVNblk1SElvS1Y1eHBrRHNRSUJWMmJ5YVdjR1lxZjdNcUM3V3FXOGNV?= =?utf-8?B?WUdISjdnRVV5QnFuVTZtcnlmLzJjNHZmU1hqUjJjS0pXOWlEVTExMVBJRjcw?= =?utf-8?B?dU9jUURoanMySFdwNzR1bnpjMDJrL0hQeDN6T09ScllhR1VrZDIwTmJob1FW?= =?utf-8?B?L1d5VG5jUCtYdUdRUGZERDNxWFYyQ1ZWeTNKN2lFRVFudGlpUEVadXo4b2h1?= =?utf-8?B?ZlZDU3FQeTlyaUFHMEwvREltZno0SFB5dlJjU1kzc0RIK3JDdVFWMlJwWksw?= =?utf-8?B?bXR4dlFCdjlhaE9Zcm1JdGxpK3pvS01GU1VPRXlJTUg2WlZwdGFIM2VUSWdS?= =?utf-8?B?WnVNekwvQmxRK2NPN0FScmtRb0NBeTh6ZmpJN0xLdzRnRXFOVXVhdkVNNE81?= =?utf-8?B?WGRoa0k2STFHMjJ5b2Q5djQxSmVZaUU3aEtEa2JIZk03V1lWK3ZUWG1VQnQy?= =?utf-8?B?Qjd4Vm9rSVh5ZGdQanVCWlZyd1VjODFXbDhWRU4wMStNc2Z6VTZmOWNuQklp?= =?utf-8?B?K0U4ckorUkRxQ2RxNDVaYzV3V28yZ2N6SnIwdXVSZnJMa2c0WVgwS25Ua0ZD?= =?utf-8?B?clBlMjJYZlRuTXBzSVYwdGQvdXJaMExlbEpqc2Y3bDhzQm9sN2Y0MUY3T2Rh?= =?utf-8?B?YVFvd2pUOFp1L2w0cVQwNCs1eTZyZHFFb3RMUlo5NWgyamZRaDFOUEpISGRh?= =?utf-8?B?Ly90WDNIemNGZlZjL3lZM1pFZDF5dVJEeFJvd0JHdWRpV0xPa1plcGZlR2lM?= =?utf-8?B?QVV1ZEhvOWtYNGFPN1dLWUxWMENVK1pndzV4UVhhbGZqV1RyZ05MektYRkhH?= =?utf-8?B?RG4xM3BGT0xIMW5wS2p4STdiWkpocnlLK20vWGpIRmRyOUhLaDJGMVE1RmdC?= =?utf-8?B?dVJsNXpLS3JZYjlqTi9ZR3ZRdHVCeU0xODVVM2JuUnpTdmFtcmQweFUzdjhw?= =?utf-8?B?RXdhd0ZHaXovV1oya3RGRU5GVWVQdFVZVEJYTkY0dmZ4cXE5S0g2SmFIa010?= =?utf-8?B?dVE9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q09zTlJnRU81ZEp4dVN4K0gzU0k2cXFMVVZNZ0EvdGVYWGNQVEo2TU5hSGtu?= =?utf-8?B?a1lVdWdIWnBUcVZadmRtOWpraHIrSm5KbW9hWE1nUkxDL2dZTmNEaEtiY25q?= =?utf-8?B?Y3JkZDhXZ25tdFlQdi9kbmpWaXNVb1lkOHh1YXBBemt5VGw2b2U2VVN6T1Ex?= =?utf-8?B?dXBUYUVUVzB5S3FEcjJ1TmR4UmUvbjFBRlNsK3RlSGJFMStsWUp2SGZGekla?= =?utf-8?B?UlV3SXQ1SkRoZzNHWTBBQzdXTE42ZXphaE9oYXh1VGdUSDZKTTZYOEJubkFB?= =?utf-8?B?ak1XZGZGSjhueGI2TXRwQ1B3amRqbm1rMk9iOWRWREhCcUJxdEtFNFVyQTVy?= =?utf-8?B?OUlicTJJdzF4TWM5OXR3aVlYRTJHaXNSelk0YlBodDhxV0JOeVh5SGlOV2xX?= =?utf-8?B?NEsvQXBBZldmQ0ZjOTlGdHY2SlVCVEtmbW42WTQ2cWoxOUJTam9nT0dQY3Q1?= =?utf-8?B?dlExZ0pkRG8zL24yVFdnVU9HUDRleml0UlBLdzI3U1JjZGIrZkFsZERCZklK?= =?utf-8?B?eU4yT2pBTWthUWNqV1RvdUVNdmU2eGF1QnU0c25Pd2ZEVmxrS0NzY25ybHor?= =?utf-8?B?Qm5HRnUwaU9WeFY2SHVEN0piQTNVRmNrQVRXRURicEVlUXgrUm5uZHVyVk01?= =?utf-8?B?TW1ndE1qK25KNFBIbnhpRGV5Mzc5NzUyRk8zNGxoaEhBWXR1bGtzdU4wdVQr?= =?utf-8?B?dUxhV0RUSlJLZGRsWjdvYmh4T051bm9XNzNmTmFaOGRlSm9pVXg5SjRaRU4x?= =?utf-8?B?bE8zcDJTMU1KcmtmSlgwNWRLSE8yd1ZWUGsvbmJSSzdpOHlWeU15V21zYWVl?= =?utf-8?B?SmZjMDhSWGwzL2Fnd2dUY0xENWhZU3RhWkJ5dzdQcUZidk9wMFZrYTJMT1dS?= =?utf-8?B?em1COXRWc0VBMXB6VDBXdVJRNUFadTJaY290MlhMTi8xUzM0bldESzZ2bloz?= =?utf-8?B?bXJpajRjY3Y5bDIxTms2dlc2U2JEV1d6cWg2Uk9jdFRhQmtENkxTbWF6TXFv?= =?utf-8?B?eFBnOXVWVDg5L3dGU1BWb0FCdU92MGZVSmdrbnZPZmdIaTgzZFlNM1VicmNz?= =?utf-8?B?c1JkK2RXMlExcU05UjJJTSt0amFxc29jUWpkWW5vbmMrSFluMkNNUktOcnQr?= =?utf-8?B?bEdjVEgrZXVySGhuU2VFWUxZV2pwcVdFdUVsYUpRdGZtRFJLZ1gvOE9SREhp?= =?utf-8?B?azJaQWlZSWJaYXlvMFhrNGpmWjB3di85VFJRcGljbFBBOVFnbTJIM1RQUXN1?= =?utf-8?B?a1JMeHZETllSY292b0lGR2kwTUc5enhUZDIrcldtOWNoVHdBaGVSdFkyRXRr?= =?utf-8?B?eGtIR09IWHdsV0pnRDl0L2Z0QUhTa25ZaHd3R3JiZ0RidTkwOTdDaWRDOEMv?= =?utf-8?B?bFZWMFljNndWWVJ6c0FKZnZnSXIwZ3VvaDZKNlVpSzlPa2QxMjhMWmk1SkEy?= =?utf-8?B?VFFlL0k5cmExVC9qSmJzbmFlMDdPMFhQOFozTVVmUCtFcWxDb01vZndNaXZs?= =?utf-8?B?TUlBTzFrUW9lSWRiem8zRTZjbTFnTU1HbUxXMFk2VDR2YlpYVVlCVHJ6S01Z?= =?utf-8?B?dWJBUWxhQ3RZT1Vjb0piMjRDR3huS0x4N05ZMmRQTnVrLzRDZGZ1eHY1K3hX?= =?utf-8?B?VEVSYnlYZmE5U2Y2WVFFeXptZEg4NTF3S0NXalpubTBmQUg3OTFDbzZjMUhY?= =?utf-8?B?dUVxd0JsdER1T2JBaXRNVkxRNTRXWWZDcEhSSHkzSU5BOUNGS1V0N2FZdURi?= =?utf-8?B?K05McCtPMEtTbFVsdGNlOXNacWhtMTdVRWdHd3A3R3IzZU1BWkZDcjA1VFhn?= =?utf-8?B?RTRXN3pkUHJRam43ajdhYjdKdGpSQ0IybEhIQzlGRSt4ZWg3MmJ2cUxCcFdo?= =?utf-8?B?dWxCR2FjQmRCaVN5VXBiUi9yTm9lZHAzMnlzMVpRRDZNWGJDVm1CYld5eHpq?= =?utf-8?B?UEJpZ2wwOFRCQ3hteC90M0ZHUFV2OURGY0RIZVJuTXpXRjg5S3UwU3lHZkxK?= =?utf-8?B?L2k5eUFreUFxUXEvUVdzUXpUVXRtZVhORHErbXh6U3RIdEdYL2tIdTNQcURn?= =?utf-8?B?cWdEZW9nVjFTT2JXMHR6UUlQTGlpeFZ5aFA4enZTOXRXejkwWS9CcjRWVUhO?= =?utf-8?B?TEJjV0NTQjhFU043RG1GQ0NoVGhSeDZoMHRDaUdxQlppbW5aVDkzdEhYeG8w?= =?utf-8?B?Rjl1MGh6Qmp3em52dWJVWDFPaWJ4RWpoRjZTSGNXbVhaQnYzY0NZOC9hajNN?= =?utf-8?B?bnU5eGN4S0d1NjlWWDQ3dHFHK2l4Tno2M29NZEtTeHlyRGhCZ1U4Smd5djVn?= =?utf-8?B?V0pmeDVHaXdoZ3VZbWNpKzRUT0FCUkJSOG1vYzhxdFlaN3FyT21HelVGQ2hj?= =?utf-8?Q?KJrnQ70s/eV/14DA=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93687f4d-cc92-47dc-4d21-08de6d6c5cdc X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:11.8125 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RTrEIjL6vIA0p/fRGM7GGsUXai5zZVuCvTWpgyqWffRh8qzrUo43nltAMIGwnobEQDMGLxn5ANIGc+8PrHLrmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 Content-Type: text/plain; charset="utf-8" From: Radu Pirea Take the port->lock when set_termios is called, otherwise if characters are sent while IP is in init mode, the IP will hang in an uncertain state. Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234") Signed-off-by: Radu Pirea Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index e70a56de1fce..5a410e2d56ac 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -407,6 +407,8 @@ linflex_set_termios(struct uart_port *port, struct kter= mios *termios, unsigned long cr, old_cr, cr1; unsigned int old_csize =3D old ? old->c_cflag & CSIZE : CS8; =20 + uart_port_lock_irqsave(port, &flags); + cr =3D readl(port->membase + UARTCR); old_cr =3D cr; =20 @@ -475,8 +477,6 @@ linflex_set_termios(struct uart_port *port, struct kter= mios *termios, cr &=3D ~LINFLEXD_UARTCR_PCE; } =20 - uart_port_lock_irqsave(port, &flags); - port->read_status_mask =3D 0; =20 if (termios->c_iflag & INPCK) --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010041.outbound.protection.outlook.com [52.101.69.41]) (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 3544E314D13; Mon, 16 Feb 2026 15:02:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254139; cv=fail; b=Vd8WlSaT4re+Ie0TPRgXd6iVMnb7fy9Kv14157FcuZNcxmVATdhCfoBImapEjr4DM/ZiFbBabswpSJV33wEPr+p1LTkZZ0YEOLG51a8bpQq2izX+1GZx/NfL7+FHe2/QcXSGdkZbbK80WmmxXSQM5vvqQ6tZTe/XS6jkD982m4Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254139; c=relaxed/simple; bh=/iP2JKMQnzGKcGPfnD2HyF93wqm343D57WTL+aTWjpI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lP2DMfuw4Q6dkPOdRpNlAIVYlLF/AoXcb9Fqugy94ou5XgNRDV2IyC1E9bg4WF05eyRjSl/SXYkTweSig1aSlwMW7RBzpkcP0UEcaJm0lAyh8J/0cOI2xf+UkDFVClG2qaAudbIQW9u2ynBbS680ECrgojBoyvtnjtS3TI/aFgg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=HVjUS6Ye; arc=fail smtp.client-ip=52.101.69.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="HVjUS6Ye" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Mp3bb28I7VyiS3jvSJee966b0WrNA/wcowNbF4X7hxOB7AIHBVMBRC6Po/wINdyPznDByfQV0/91+Ha04Uwegfu/NWpOgodlgDyL4iQYFxWs2z7XEGgnQwYw5YUIDSCiyeEIx4CZORFs+2xzD3C6g0Xmlzm7Hy2B8+TbO5snsvFm8WbIn0Ubam2UiSmlU8fyC91Ko9y2TrzX50GfB8STvPo08JASwmfTAOwyV6QwTT57KwgKo5pbVhZ7eZaDuGT49VlO7BVeAIKAL1jMbgMWJsLtjoZ0+YrpVb5RKoLA4yC5EmOdSB2M5QkurG/W3/6bki2/OJAAAhzLBqKJDZokdQ== 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=9hs5gy2JQsjMjGgw2DdN/3kZLFcZ2eeD7COIqQPY85E=; b=aoW0exkZTkbqSx4LHGL/MOIc2Y5WBYDENlMiz0NLEXw9jJ3CDhMHfeUhrX4wFAgLMd0KsSDHM0TkMDGPyEy1CXGBGS/4vs5vy3kQN44E4xcaaPxfURs3qz8d6A1ID/5rEf8wuwrT0zLwMTfBkmUJ4GZoxix6JIkzfVKKn+14UJa5b3anU7Mbo7xPI4FV33BD5cN35skBCe+9aqoCh9tYXduuvHRI73W1EiRnQ85r/EfVhF7RrTVMyyajk6PlfFlmqsIZfWLoz0ufpbPPB4n0h+CNEMz29naTOb0VMkje6DIcogltNOkyHNWzNEJOT3ZMvI9ze8pAftmEbm+7g1ojIg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9hs5gy2JQsjMjGgw2DdN/3kZLFcZ2eeD7COIqQPY85E=; b=HVjUS6Yeuj4AmM3Mhir+aC/8QFAM3YvD5JHs2r9X0wUnsbbbO5/n74rqXyGhGPz0xQe9Du0vwYG3y5SRcZj2XhY1ajlaFhCyIkbcZXZ8GuKLTDsFm4UpksJHl+1+fhcjrsU8kO1N36sZ8B6uorzuf+KHC+IUtlVJmR3DXN5R7bXqmWT3/quoymvBidYk5txiXshjyLJIpf2W9l8lZGuovPCEwGa7SQTpAKwBjT1kyG5TZgHWIJQ0qp6Fs6K/lp0fW8hdKH/khW2Wej7Ph8JyPGheTR62mnl0rPd24MSfvGZookwrzun571TjRXY1+fzw/U4ByfGnts8cngricBlCWA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:15 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:14 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Larisa Grigore Subject: [PATCH 02/13] serial: linflexuart: Clean SLEEP bit in LINCR1 after suspend Date: Mon, 16 Feb 2026 16:01:54 +0100 Message-ID: <20260216150205.212318-3-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P250CA0012.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:5df::18) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ed77ed1-325a-4d0d-1f3d-08de6d6c5e3b X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?R0xLQ2dORnhFTnJWSmdvbXQrWnZXMTgzeFN0bzNJMTUvNFoxOVBvZ3hzaVFX?= =?utf-8?B?RHhDUWpZQ0ZNYUFwTW56QXd1VElmcnBoTFBHdDVpOHdrNDlWYVllUWRXcXgv?= =?utf-8?B?UXRpc3pHcERLaEk3Y0xpcFZCMU1OL1h0MUsxRHU1cDY3MXF6VFkwcEx4OWpp?= =?utf-8?B?OHJZamM1aU1EZFNiTjg1cURvOFZUa0lEQ3pHUjkrYVlaWC9pQis4NTdSTytB?= =?utf-8?B?TnNOUitVcEVFUkMxYy9XRlhRSlg1UUxSZTcxd2ZjVlErWmMxb1lLeE1ieU9m?= =?utf-8?B?dFZ0QnZOdDhua2haMjZIODRhSGY1T1dUcFZ6ZFhVWnhHNUZIZWg5aElpYzB0?= =?utf-8?B?aXdCdWRrZ2RlZWlOVWJBWHRBaVFmanNhUlJkNWF4NjdobzFMazdOU0NTRU1L?= =?utf-8?B?aExlVEEyVTlaZ05OYkZJcmprNENYc3FhbFZVdU13bUYwd05kY3J0SU1SR01j?= =?utf-8?B?WERrOS9kMUdNQjVrZzFLQTVCTjlQT3pwV0Y4cXVFZy9zdnlWSFYxUmVaVFRn?= =?utf-8?B?M1Bsd056S3VVSVhtZlFzenBkaEphYmhmRlpReDN0Z094czV0U2VWTm95Q2Rk?= =?utf-8?B?WS9Wb2VGc1JGbUVxZy9hc1U5UjhiWTFyTGpUSUN2ZGRRQjV2NktBenk3YUZs?= =?utf-8?B?WTBWdzJRTXptdnVvVklwRFhVNGxNOW50WkdSaS9JT2FycGNFQTRlTXhLUm5C?= =?utf-8?B?KzJ1amdmTmJaS0I5VmxlMW5pWU1QcmI3K1ZRZ1FiMnRTdnhJcEFkckVnc1JE?= =?utf-8?B?NFpDSmZzZWtNdVhLVkcyTmljM20zMkZSM0I3bXVqZHBKM080VGZxUzdZdTRG?= =?utf-8?B?aVdhTlBpMkdXRmQ1bkJ5QzErSlViVlRPTC9GOWJuVlZFMWg3RHl5WUprNWhD?= =?utf-8?B?SzA1cDREdThrVDVrM0tna0Y1Tmx6ei9aTEo0eWVWQ01xRUNTeE1taFhFTjFp?= =?utf-8?B?VjlmTmJRV2UzUW5sRVpQcGt1dkxBVFB2eUFYWXF1cFZLMU4weDh0REVXQU5G?= =?utf-8?B?VzVORGZsQ3BiV0doUEl4RFJYaHU4eWE4c1VLSGdOMjI3VUpmZEltamNDN3hB?= =?utf-8?B?eERTSHViSE5seEhWRXVUbDZKb0lYLy9adXVPSG1jYmtWajVFVm5EcmJqT2dM?= =?utf-8?B?QXR1ZlA0ejNuUDJTd09MbWdWZ2dLeFJTdVBkYW9VY29HMCtBWUdQSjRPRHRU?= =?utf-8?B?ZE1EMlJuSXFqU3pUR21GN3lxK21kclphRW90emN1L3QyNm4yMWQySGlsR01o?= =?utf-8?B?Uk10blk2TnlGZ0w0R3U0Y2d1ZU1HS3lCMVRZVmh6RnNBdVRQczdQRHlndDlh?= =?utf-8?B?cEZuT0VsWTkxWkxtS2c2RmJOQUx2SWF3YzNtWEdoSkMxUTVpRHZSM0VLWHhs?= =?utf-8?B?c21QNlRrcThhNHlvZkJyOUphRi9Wb3BkTE5vZWgwQzRISTR5OGJhdTl0dzVo?= =?utf-8?B?TmFsQWdYc2E1TUM2Nm5DNHlzL1VweGpPUFpVaktBaVEvRXcwOXVTNk9ubkoz?= =?utf-8?B?UGEvWFZDYzRWaVNpeDhEajB2RnRGOTN5dkJrenpBNW5yMSsxUXBCeHVLQ2gv?= =?utf-8?B?d1Vya1NXUksrUzVROFU5YTRRa0hScTFaak1sVkhJL281bHp1NUlHNzFzMXdi?= =?utf-8?B?L3l5em9vQTdjRE85ZDdsa3Q2cjlXbDNpaEt0WmxOWElmUnZDM21JeVZvYmxj?= =?utf-8?B?ZXJJM3NXK0VWbDg4aDI3M1drMVAzNk1KRm9neDlMYTY2WnBJWEdLL0FmQkkw?= =?utf-8?B?SklmNmlZQ2lXczQ5NFR4RE1mWUdBak14dDNJeEowZ3l3ZVRjVmZIS1BPU0lF?= =?utf-8?B?QjJnMFZNSkIzZmQxYXlya29TcktiQk1oZVB1QUVibVJ2ck5xdmIzdks4QklF?= =?utf-8?B?Rm9MU2ltZmowTWRlckpXekxxbFdlNXI5OThRRWZ3amZLcFJmM1V4R0NGYkMr?= =?utf-8?B?Q29uK1pBbVZJOWN3bWx3c005YnRrclo0R3doR1JqTUw2WTQ2VG9SaG50VnFL?= =?utf-8?B?WThhUFVKNTNnU00yQ1NiT3RpaElsUE9RNk9yOEk4RWs3cXJUR0dlVGE1Z00v?= =?utf-8?B?MEEvb011ZHA5TXFlQmRDTGpkVElhdm1oVmlLUHcyaEtlaHppWFZWcVJ1VDl4?= =?utf-8?B?MUFqdXhDUDdwdklXc3QvVE5IMmVzYTNXcmxaWHlVeUJhQTBUSWtsSmh0ampW?= =?utf-8?B?Vmc9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dGdvbG9OcGM1dEphc2Voem9mSXh4RVJPbVY0VTVtNWc2TEZ0aS9NVEIvS2pp?= =?utf-8?B?cHBsYjNoaklyTTA3QXMwMHRnUmdTZVNLQThTMFlma3FnSWRnNXFOOE9zU3dI?= =?utf-8?B?U3I2VTY2bXZPUHVBVUl0c1FoVTNUT0xkUmpDalllclZDRmt5aVh6TXZ2aEZS?= =?utf-8?B?eUZKRENtU0gvU28zZTArVEkxUVlnUE9scWk1ckpNbllEZ2k5T2J2RWFudjJ4?= =?utf-8?B?Qk1DS3F0Q3ZLUVlma0JCUGZyMXhUbVpuL29MbXZLTExYOUNkSEtPQml5Mkty?= =?utf-8?B?eTFEdFBid1g0a1lNdm9IdE1abGZBcXQ5QWhPd3NId3Nta1JhUVI5dTdxckEw?= =?utf-8?B?VzBFVmM5Rlh6S2tOWFZCeE84R3lDRGV1a1k5azhsb1d5VEU0c1BjeEVWUjNt?= =?utf-8?B?RW82TFV6aEluaGR4WCs4T2l4anZPWUhFQUFwMmdibDFtbVRPc0hwU2I1eEtK?= =?utf-8?B?VzhVY3VRcHpwOGljZnl1Z3Q5SXJ3ZS9hV1pubjMyUzliamZzTHVDbTZjSDNh?= =?utf-8?B?K1JSMEhJbzFiTUxvNVhNOEVlY1Z4Y3dtS1VkcGZ6QThmTm5SbitvanViUjdJ?= =?utf-8?B?QnR3S3NYUlpBd2RuMGV2QVJocFdpekN1VzVkZVhSK0t0OCt5SHZQd0cvUTlR?= =?utf-8?B?VEhRTDJhUXpiZFJYV1Fqc2pWWCt5MnRjVmNRRWpuOUt2ZDAwMUVQbzBpZ3lQ?= =?utf-8?B?UVNrbS9iSFcybGNNNDQwYS9wTE96ZmtFemc4Y1BEa1oxc1AwcDgxUFc2MVFR?= =?utf-8?B?cnBZMzV4NCtXNU5vYkpNekNWZGd1N2J1ZHFmQkJYT25rT1FzTVJWSDJDTkxD?= =?utf-8?B?SFc3eG5KMzhxV3BWN3JzcDVJZTJGT3g4SDcxNURwUStZSlBRNlBsTDdVaVg5?= =?utf-8?B?UVlxczdpMjBFcTRjRExvOEQzajJUTVMvdS9GbUVSaFZqekdqVUdQbW4zbS9h?= =?utf-8?B?SUN6ZWhjMy85YkpLakVWMDBCUXpncTB5MEZqc09zSmtiU2VNc2M0SjVLTHF1?= =?utf-8?B?NC9ROFlubE0xYy92emRzZStyOTZSZTI0ZzdncFF6YkFKZUJCTWRtbmwwa2ha?= =?utf-8?B?bDk2UEJSdTdFVmk0WFFYajNWbjFlaWZHOGR3KzV4OUpZVG5mdmIySjJPUjNS?= =?utf-8?B?RzcvZFUreGhXVlJJc3l5YUsrRmtuZHkzeE9zZi82S2VSMHZmN3NDUm94OTBi?= =?utf-8?B?M0FqRWFjODd4UTJSc1dxM3lWR0FjOXlCM2N6QnZZRTNETGhRcEl0YjJZN25s?= =?utf-8?B?Ry9oQ2d1N1prUHRkQ0RnN3lrWWZNWW5NSDFQUWV4ZDRGU1REelQvMGw5cUdC?= =?utf-8?B?RlMyc3owdGNiT2x1Z1J0SWNZcEt3ckdNaHBrVUU3V1pTSmM5S01GL0tEN2N0?= =?utf-8?B?ZDNTY2lqbmNidE9rNjJxRzhrRWx1UldBaTlCdzBZeDFmS21uRTZEM0VOMUpz?= =?utf-8?B?QVRoRFdVVE01eC9BMnU3V3laVnJmUVVDMkRFN2R3N2FlOVlCZkpVYjRtenp6?= =?utf-8?B?ZnJtM0dUejlsRTk1STVWNFJmK0VTZXVmUWlrQ2RrdnBnYmUveDJ0VHVocG5F?= =?utf-8?B?cWhON01YRG0yS1N4RjZCTm00emFiRnZud3VvL0o1NjFaUkVkTEdnSmk3U3ZT?= =?utf-8?B?ZXZxTVJ3d2Q2eUdFTncxY0VwZEpOdDgwT3RDN3NtTXdxSDAzTUd1S2tnNHdv?= =?utf-8?B?VTkwMkVuOTBFRWJQT3prc2VYNDYxekI4c2ZkR00yV0F2MzNOQ2NSWWlrekJO?= =?utf-8?B?NWxoU3l1dkorRDR0bTBrQWVLN1NXVnYvd3BFSnd5UVg4T2NsSElGU0JuRi8r?= =?utf-8?B?MGhLOGdRVGpLWXR1dXdtOTRrTWxKeUhDMkdVWGZha0ZJbEJ6SFVwNTM4MXZm?= =?utf-8?B?ZFJPelpJT1pBU0U4ZEdJVStWdU5ieWdpeWRGMHBWRVUyRFB4S1kweVdKM1c3?= =?utf-8?B?K1JLeEQ0czRZNUNpVzYrcjVFQ3FQNFdLZWN6NHJQcnl6NG44cWxWNCthbWRm?= =?utf-8?B?c2NZZzgxaDRjUW1ibm1OTC9vSjVnT2F3azI2dTBuUk5OUWRjWEE4a01GRmhK?= =?utf-8?B?WHlXRFhscE52QmtyRXg4c1FUUDFLR3NLaFZrd0M2UHgrMzZBT1NoeE1RVGQv?= =?utf-8?B?YjJveFZQd09PVkZJMlFZZzdkb3lOY3JkempzY1BoV2NCc0tTNE1OZDA0UFJk?= =?utf-8?B?Y1NrZ1ZZRUVhd2tHWmJ6L1E1SXJwWnpTNVRhWXh6cHJ4RGIxaHBaVmFjSEZ1?= =?utf-8?B?MVgzUmRDRHJ2bTZZbTJtajFtQmNhaFd1d1Ria0J4RFQwV000eGpqdDV2TFd6?= =?utf-8?B?L1ZrWGxBakxFTDFCd21EMWIrV3V0UElSQXo1L1JPTHBybzNBcnpFRXNlbTZS?= =?utf-8?Q?yEod5kilXYhg2sww=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ed77ed1-325a-4d0d-1f3d-08de6d6c5e3b X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:14.5047 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FrUx2kwv3fY+QCEvnpPo89y4F9eacC+bTk0wB0ENih5aCZgu8BtoZnS43XVBx38NSUOJlF/kV8n3/5Io4n8qZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 Content-Type: text/plain; charset="utf-8" When coming back from reset, we need to re-initialize LINCR1 register. SLEEP bit should be cleared, otherwise we can't enter INITM mode. Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234") Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index 5a410e2d56ac..016011fd8760 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -413,8 +413,7 @@ linflex_set_termios(struct uart_port *port, struct kter= mios *termios, old_cr =3D cr; =20 /* Enter initialization mode by setting INIT bit */ - cr1 =3D readl(port->membase + LINCR1); - cr1 |=3D LINFLEXD_LINCR1_INIT; + cr1 =3D LINFLEXD_LINCR1_INIT | LINFLEXD_LINCR1_MME; writel(cr1, port->membase + LINCR1); =20 /* wait for init mode entry */ --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013037.outbound.protection.outlook.com [52.101.72.37]) (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 0564E314D3C; Mon, 16 Feb 2026 15:02:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254143; cv=fail; b=mep00rfExPiT3kE6T114eBWCSt/tihH/sYcsl7lV5x3lq8KZ0TUXDo46Zy0cet6vC+mGzKdnl6HuAkdoCG1nZfiXcyyKQMVT4LCCTZi87/2Ebr9Hx8jecKskc4dxkLFBmeeAqKO9Q1k4qBmFiqsQzZu5yznsVii7XlTVyFOiq2s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254143; c=relaxed/simple; bh=imhpLYNGslprxyjpxKo06cXqy9ZegFcyYf/DxYB4g+U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=m2UtcHoooDoNXj2En4WXbOEN2nYRhKa30hJMBdPvF9m2yOeC8eM8ygPlg7brEGj1V6j93RWJ1Vhq9sKnSgUHzkFFwTA0RKHu2CT8Y64SlDUkemcfeLfCaB0u0H4gQ/NTVgiiFFM4LJit32rKSob5cy14Hhwd/nHvBUQRQbRrzHw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=Rt03O3EN; arc=fail smtp.client-ip=52.101.72.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Rt03O3EN" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ik72hindg/XUJbekvjJ8pSFX9pyZzvxjSV18WsFxA/O1n07W01DlfinA+OcmnFFyEZCAs3dpTySkxCcafxkPeV052rFJn/xTmIbmXOojFs/Di8b8JzE+0MyoH/FijsqyAGZwFdYsCS58FdhyeEYvkPXs/jDULO0u/NrtplBpXZ4dVmJbiaPjxRFUo5Bp4IPFTphH+keh8RnnzQw7uiEESdYuMAcnH/0FDdjZPnPjVNCQJzBmU9ZnTQ7cRQrAvBoSONKsCK6MbUlE+5ngpySWxn0pv6Dz7i1l3fNL/w2qcYHOl7csvWQ/w1D5jwi2t3xI5M40FSx6+CIbqPE0G4e39g== 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=HZKZERZRuUlQCYBtz3fBtGG5Y0uK5ZmBrWqvX910svM=; b=jnRvMs5GaSKxt70sAqP0aOMsQ91WifJiZzomXU6+vv3iKwshfZu17rBnQN38+36od2pNHy8opPY6ZWnNI46623yKlzCjHw1meKpcXl49cNa49vrvgEWX+HT/dXMFc0yazisOhR5DrwjThMPHCx74hh//REGkWRusqfsPCrpSfoNlmI7/hySDO0pGrukTMWKkns66YH6xILq3ytPaaEPOp+amqsplgh3OUripOUKIUNefAJ15awfVX+QH9GjdTe7MQzIfocGH/1xga8HeX1yfp9VqmuY3hONFFxWEoRNJ6mKJoADeLTHw3Nfpfamj2ZsD7zCndKl6NG0Q7SGwRRIhcw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HZKZERZRuUlQCYBtz3fBtGG5Y0uK5ZmBrWqvX910svM=; b=Rt03O3ENQeZ1xsKFrnBh7ifWy0RvZ46FvKPgaN2mXB14yCIGuFp1xrXBRV27wjgt65gPC1S3ctZbisCosZFZU3KH1VRIWhd23hEoizf9YS3cyt3hGY8fdzd2ZjP81E5sGOkAU1MFxt5gqyUFFMjp1lDDEVCLGTc2OtAUqwHA52WB7wr++ufXjjH/M6kGlcGasdW5bpZ87b3UOyuE5AfgWV7VNO++O4Rf+1whBfu/ZQUxIb0fxsfuZ3ugE0x/UTYp8mRR7+mILj5VP52lee+fZ78Jbk8uM7Xpp8HJsOTQ6GQq0kymcQ1WPVs6xzpf2ojGvzEeSPSIKHEK6NS2PQnHIQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:17 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:17 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Larisa Grigore Subject: [PATCH 03/13] serial: linflexuart: Check FIFO full before writing Date: Mon, 16 Feb 2026 16:01:55 +0100 Message-ID: <20260216150205.212318-4-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P250CA0009.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:5df::10) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: 679668fc-6de1-487e-53fe-08de6d6c6011 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MGtJYUhjekU1SHA2UUJ6am5LVWpXYndWSWhWM0d1ZnozcTB5NVlETUVycGYw?= =?utf-8?B?MnQ4cGVFNUNUdTNQTDJaTlEwblJxT0E3dVJPdXBTT0lqSkFidFpBeDVWK3Iw?= =?utf-8?B?Rm5pNmJvNUxhRmtiS2F1djFENzh0Q09JNzFBcjVuSFFWVzdQSEJleElwNGlm?= =?utf-8?B?bU1RWmVFWEhpQ0Zxc1B3dXdhWnl5bGhWd2xReHpHajhmTEtZMTc0VEl2WVB1?= =?utf-8?B?Wnp0MGVnaktjMTdFUjd1V3BIYms1Ri9lM0FaVWt1aUZvdFJIaUpreHlQZ1VQ?= =?utf-8?B?S0RqbnlMYUVBcWhoTGN0M3h4THBpYkdvUWFpaUltZE4yZi83M3NGQVFCcGpI?= =?utf-8?B?S3E3N0dWR3hYa3NPV3J3Uk4wWTlvaFREUG40UkI3dkZvZXRteTVJM2NjRmJs?= =?utf-8?B?K284dG1BaHlZeTMzeGIxQi96MlRhaVFwMU5hL1J4VUN3aU0zTm51azlUT2l0?= =?utf-8?B?OEQ3MFVDaDNCek9rckQwR3BNL1N2K1ZyTW4yclptUHRteGdrN0cwTEl2Z05o?= =?utf-8?B?STJKNFliczR0TFRNL2FONzNtVjNvaDl4Yk9ESTBITUJTUS9sWnN2YTNxY1Jn?= =?utf-8?B?Y2dwZmhYcWkra0RuMUdaT0NERWhCTjRlSmxIenhJeHdoTFVIYnAyNlFlczBX?= =?utf-8?B?QUgxeXNFc0tycW1HcC9IODBGd0czU0lidmgxZjNBL1pkZUM0cDJ1YXlaV2NU?= =?utf-8?B?Nzl0THo4a1Nwb05ua2U2ditHc0lNT0wvMjN0T1Mxa0FvaTBVR1RGVWFXNGhQ?= =?utf-8?B?VlZ3VlRPQ054UUNoWThRTTBtc2NKQWVJNWJXQURhRTNRanlZSWVWeVY3VWRN?= =?utf-8?B?R0YzNkxCR2xzZFNmR0pjQXpHQUZkOFRxQndkZUhqakhPb05abjdrNW5TM3Vt?= =?utf-8?B?RmVCeGFTdFdDN3RWZjY4dzdPOVY5OVdWckxkN2diUzZaU3ZDUlNLNUx6M0p2?= =?utf-8?B?RCsxWkFxMjN3WkRLVW9MbEtMVEprU2dRT0pQamV3ZmxnRDRCNmFkT1pJamE1?= =?utf-8?B?N1JIV2dTcFNkaEtRcEgxY2hVVk9oMHM3WjFNSndmWHBtbGsxT2Q5QmgweFBy?= =?utf-8?B?VW9lenNVMUJTaEJqdnlmSE1HYlNudnRkMkgxTFY0ZWQySXZRaUM3RjdsS1Np?= =?utf-8?B?Y2RFem5FaE53VUliRTE1NUhiRnJXbU1tSHRubnVXbHhQUVFIV0ZiYzhLR1k1?= =?utf-8?B?Z0FSNW9VaXJTSXF1T3M3SGJnQ1RJNHRyNXFXbzhKMWdjMWNQdEp5NHRzWnBK?= =?utf-8?B?WVZrVmNtT0RvbHltZ09xRTZVQVp5SmdiSFJkeis0Mkw4aVdDeTJXQlEzUG8w?= =?utf-8?B?VWxpWEtTd2dMRFZLY215Njg4amE3dGRhaU8zQ29KUk8wQnVmS25EcDNXSXJW?= =?utf-8?B?ODFwSk9MT0I5MjZHRlJEMUxIM2UvM1JsMmdsU1JaTUZZck1BdlF5M2FkSjl4?= =?utf-8?B?UmtEbVNKZzBTNHJBOXYwNWZtaWgwOGZ5YWQ4Mko3cUdkWW5tU1JEUzFrc2Q4?= =?utf-8?B?N1JkNHVBN25KZWxqM2h6clcveHBEVzUwTU42NkVaRjBNVE84SmxNWjd1YVRD?= =?utf-8?B?bnZ0aXI5L011NngreWp4bFJqdCtvdHU2YkZoamptWHpnVmpHSUJxanNJM2ZY?= =?utf-8?B?L1JQdXIxWVlYTUVvcmVFNkFPSGFuNUxqL1F5MmVucitzcWRXZXJZNnFObXR2?= =?utf-8?B?Z3M5dUtTVmtSWHVUaDBraUVDYzF1Z3Zxejh5cW9pZWloSmptd0JMbjNVVisz?= =?utf-8?B?UTJBZEhxeFlZSEZHNTdCdkdSNGdWeGNDKyt3ZFczR0NhbmdOWHA4R3RwU2tZ?= =?utf-8?B?VDhicnNoQkc0eWs5TTB5VzVlOFEvSWEySnZiYzhQK3lLSFh2ZVgxUEVuM3h6?= =?utf-8?B?bzFKN0xiVTg2Qk92VGl2bDQwR2hUS0lHdUFkSUtkOTVCVWtHZWx0bGFKQ004?= =?utf-8?B?WU4vcWU5ekNIRmcwKy9VY2MvT0MrZUtNNkEzLzlWcENoUk1yT05xcjZrZ0N2?= =?utf-8?B?MG5COUNkVVJqWURXYlFxdzhmdEFNUzFmU0w2THRoZE5QeXd6UDE4WmJHVCtF?= =?utf-8?B?M1pqdjlrait1aXBId0tIcjc0TE1WdWFSQmMyQ2NvL3doRXI5cEJCWHJ3ZnJ2?= =?utf-8?B?QXZRZTNPdlpSRnFLZFB3SklVMFFFSUhwL3VJaXBiUitFQ0dRQ3ErMmpvMita?= =?utf-8?B?MUE9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UUphWXVNL2t6aVBCVk83eWpsMW5mTjRCcFg1OW1INHYvRHlpZWNZR3hNTzc2?= =?utf-8?B?ZHlFSFlHODk0VWtLSTkyajJtV0xWOGFNdjMwcXJhTG8waW5LRHc3akVwL25j?= =?utf-8?B?SHBRV2Z3VHJlaXl4SlJidHgwY3hWU2tFS01TUE5jL21Ka0txMjU3T2ZvRlR1?= =?utf-8?B?WU9pbDNJZy9SUzd4akRUT2JYSHhxelZ0QU1lam1pT29SSmR6ZXd2NGR6YzA4?= =?utf-8?B?L2VhS25ZYjBteUtyVTJZUlpLWEdtSExZQ0wxKzA4ejI5V01CNWdzbHEzb2hz?= =?utf-8?B?aGJ1WVRleHlUK3hiTyttMWRGazhLZDFqeVg1ekV2WlpqMDBWVVFZd3lUTnRV?= =?utf-8?B?U2ZwTHo3VXgxU05NLzgzeS9XMUg3Z3VURWJyK0xBeEdmdE9YZStlY0JyTWUr?= =?utf-8?B?RThmd1NuZ05pbXg5T1VJRjdSWFNIa0hEdHBJTktCRkV2R1A5Y2ZxNktBN0pj?= =?utf-8?B?YWd3N0RTZmQ3MWZwc2paSGtJcnZDMXBTdnc1SFpHSWR3eXYvSjIybDFMdE11?= =?utf-8?B?T3VEREc0OGp4K3N2cTMyWDgrU01RZjk0eHdhUHlYejhMWlkxSWExcGVKSkZk?= =?utf-8?B?UkRhWmcyYk4wdkpzYWY1MStFMWJlMWVZakd4UTFQQXZObUNDWU1hQnF5WDh2?= =?utf-8?B?cWxtdlZsQ1FnNDdWQTNtYzZScG1LNEhPZjhod2RZYWpNdTNzdXZWRlY3QTFB?= =?utf-8?B?VFZqc2xkbjdkWEY1am5XTHdZQ0QrbjZJcEJJdUxnbW44dTFKc3JoNVl3M2pZ?= =?utf-8?B?a2d1WjlBOTI2cjNaSHQyV3BXdlp6cEtOQUJYdHJxVVd0S1BMOUpwczlwNFNW?= =?utf-8?B?MFpIOU52c2twTVRlV3QyODB1ZzdkYTdoWGw0QWw0Mll0aWVMUjZnK1IyV0Ft?= =?utf-8?B?MHZDM21wVmNMZTlLaFdCdWpQRGpVQWxKRzBnd25WS2Y0dzRiRTBDNXl3akRT?= =?utf-8?B?QXZCdDc1Uzd3QkJQY0hVeTNneTFUQ2xRdlhqT0Y0TUp1ZDBYbGR1NGl2KzRR?= =?utf-8?B?ZmdLbWk0MDZjOE02Vll2MXZ0MDg4VExiUFhsck4raStZTWtNamxEV2tWdWpU?= =?utf-8?B?UkVwRmV2TSttalBhd2lwVlB6MkM2aXpBVFVjcm9EMUcvNitBMld3ZGxJUjNl?= =?utf-8?B?aklFR3JTbHluWVpZWlRjaVNXRG9PYS9QTlVSY2xCaXVKOTg0aDZta3Z1TnM1?= =?utf-8?B?SUNZK0JudVZSblVjeDAwQVpkT3NFY2VUNVlFcUZCdzNqc2YyMzZrdEJvdklq?= =?utf-8?B?OFNwK3JnYys3dTU5cXhTRFBzUlk1L2xpR21yQnFqcE5ZbXdUR0NXVnhwMWFU?= =?utf-8?B?SXZUUmVLMkF0U1d1eEt1R3Iwdy9DVFhHSGFGVGpJWVJoSlpBZ2FNZC9qMGtj?= =?utf-8?B?aWlUOUd1cERTN2V4Y2xiN0J2MUc1bDIzME9ZYTRTRldzdnZhU1RsVXFOMmJa?= =?utf-8?B?VU96dFNma0VZeE9HSCt3Z0R0REtSVFd2VFVWeU81T0NERDFIZ2F4c2RXTkhM?= =?utf-8?B?eDllQ3dyakFCSGJPZis2S0svRGpGeTh0MGpDbFlJZk05Y1lyb2hENG16cVkw?= =?utf-8?B?ZGVORVQrMjFnR0ozYU9KNzE0Z20zMUxuc1Jwd3kxZG9YQUszb1oxbjVBQnNp?= =?utf-8?B?VUh1ZkZ1MGI3U25WWjZRRzE0Wm1MSVRDejlFOCtqN1ZaVVZmTlIvSW9TdVQ4?= =?utf-8?B?REdUeEh3ZTc2VnZHNDVXd3lDdktBS1NmT1V6ZE1BWDJRZkc5YUJLQjQ2WmhU?= =?utf-8?B?QlE3TW1wKzBLQTdWVzNINFZFU2JBM0c4SFdRSHd5RnVjUmIzSEV0REorSDVT?= =?utf-8?B?OW51TWk5alFVcm9VNU9FdUQ2eENYTmhNYm12RGlRb3NuQ2Fpd1VQRnFSVkdi?= =?utf-8?B?YXpjc1d1aGtNUmxiZHlrOEdIS2IyMXlGU2s0ekkwckdkaWNtWWhTYkI2a25R?= =?utf-8?B?c2lJSDZNMTBjaGdNUlJtUUtNVUU3NEJ6R0twckNVUG00cWcrUzFJMnhKQkZZ?= =?utf-8?B?RHRKRnpqWVg2Vlg3ZTRRYXprS2poVkJ5ZUZRSjA5Q29CMXphV0lDM3pzOVB2?= =?utf-8?B?LzJJY2lQZzA2T1M0TURVZHRoeGdXd0lHb0tQaEFYaDJyeExNUExIL09FQ1Na?= =?utf-8?B?aWtaMGJmeWlVOVJmUTJYR1VUdFJmUnJoMlZPYVJBSXVIUm1ERWZSUlAweGNy?= =?utf-8?B?YjFaNHlYdENjMW5mVnlvaXkzYUsxR2hJaEFKNG9QSFlnUFVHVFB6Z1czR0x3?= =?utf-8?B?UGx2eHBFbVIrOHRkNE1NY2lsZU9ZNnl0WmtscG5GMFhrR2xHL01yV1dJbHlN?= =?utf-8?B?YWxpQTV1aUNubTZOMDJ2S1Ntd2xwK0F4SVM0V3V5VFdQRC8xbmp3Z0FNZG5G?= =?utf-8?Q?LUQdSshPPcSi/xas=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 679668fc-6de1-487e-53fe-08de6d6c6011 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:17.4655 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nrUwUUD7xOXwENIqcgC8yAyrIcwilmRwz8MhYxd6yg2d4A1L307JG4pCv14zybhGEeXlvxKCpIHDK3p27VGHyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 Content-Type: text/plain; charset="utf-8" In FIFO mode, the transmitter FIFO should be checked to ensure it is not full before writing a character. Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234") Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index 016011fd8760..9111e7af62ea 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -555,22 +555,24 @@ static struct uart_port *linflex_ports[UART_NR]; static void linflex_console_putchar(struct uart_port *port, unsigned char = ch) { unsigned long cr; + bool fifo_mode; =20 cr =3D readl(port->membase + UARTCR); + fifo_mode =3D cr & LINFLEXD_UARTCR_TFBM; + + if (fifo_mode) + while (readl(port->membase + UARTSR) & + LINFLEXD_UARTSR_DTFTFF) + ; =20 writeb(ch, port->membase + BDRL); =20 - if (!(cr & LINFLEXD_UARTCR_TFBM)) + if (!fifo_mode) { while ((readl(port->membase + UARTSR) & LINFLEXD_UARTSR_DTFTFF) !=3D LINFLEXD_UARTSR_DTFTFF) ; - else - while (readl(port->membase + UARTSR) & - LINFLEXD_UARTSR_DTFTFF) - ; =20 - if (!(cr & LINFLEXD_UARTCR_TFBM)) { writel((readl(port->membase + UARTSR) | LINFLEXD_UARTSR_DTFTFF), port->membase + UARTSR); --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013037.outbound.protection.outlook.com [52.101.72.37]) (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 AE0BE3164D9; Mon, 16 Feb 2026 15:02:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254145; cv=fail; b=R3qJLMU1U5PMvw2RcGeY353ypobo5eFoycZkr9mTlOJKmk76kZjtfTdp0rMABebIyyLbZmKHSJCrENobo9JRO8sIpcvRBQBpsz1azkrBvyGWmURdQu6LjZiMMzPW3OQEzKHD8uQp+zIRFl8ihntJeYYKDAoxfKWw0akhECYR56A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254145; c=relaxed/simple; bh=DexHssTb+5nSsXZxrFK69LcwX2+QBCMyCIDOxs/E2BU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=KNMvSP6ZnbFaNfvL4yu99U/98l03TpOFI3TZf22ADfjIkmIRjQpo4WVJNO/7/o46kefTGYlHoWl33YeA4Nky+14Qxv+40A66Gmh508rlB11qEbPUVj18Ot7/jnfmpY+Y+vTYoxZbMTJFfO/1vdirYP6plcN6YPQP7SgVSfspfyo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=owbB2FkC; arc=fail smtp.client-ip=52.101.72.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="owbB2FkC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=B9124XHoqZH+G1fTYX9jaIet3KHeLvgnyDWpVYx1RuVDUk108jLFiZyYHpWfsk2S3JQQ96V/kWLKOltvZ/trK0xcihQ4QbtEWm7d5qeT/4SluPRn5vvaXrW7dGVU9Qkz/1X0hDOKlZZT1Lv9FBgm+iJL9YVbKXbZChAqFE7NzKIbncr+Nfcr3ijDMaM/ZGWXks3jn/uP9/J9jwo6l2trH+LVPANs4neIqtFB1DXCSjlKNp9GfSWGGf6g1KCYHksrYJLvCp8bPNMnCZaZHrcPY7SCD6nujqNwVR1hF9iZKF5WSwO1hNS9BxE7COIp+jAzdUd1q5VTtm2j8SXM6qS+Rw== 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=Mnt5+7X2GLIR2F3r2Pj7eSoARXOGdp7PT4OZrcElXWg=; b=Mc3iK18CJMkYB7MUHoUzl3/dCI6myadbg+5QjahFQinYYs8vmlGDP9sUpJ9Cz385t0Ed0td7kmChUmeSNl/vExvApHkwr0EpANJIroTh4OXlc6pVS772LILg7QDkn+skT0hbEQKIQBUk80ZIRfwihu6LWTBdUr/X+Rixl0ApAUeHo5tRUdRr/8cFdkJz5Vw9ItnBrrVaTdsnUaczYJVqLrsnEdMZpI91gGgNoz/+Yt0je1MA2PldMkDz4tqVc3/UAMwnpZlmz99rVbzSzwpNVaIghU0RRu2UJk5Nhl8AJo4nYcG/sKGgmqvzw3zi9ksaWhO3Lrs6zdrRhWklmncEUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Mnt5+7X2GLIR2F3r2Pj7eSoARXOGdp7PT4OZrcElXWg=; b=owbB2FkCfLWW73eznoym92Sj0Efd3xRoWRzDg7CIaDOORZkOn9Gcwp14z2h6aZmN9HL3NxgTC3QD5WDS1ZX0J20jCxnsX4SCxq51wv9SRuMORQiTwPBRPAYmk7ChuAiwrxA1oi46bgslcBzKaAjxm+Owy1HkqtKTT0mCFTzPDDttYSKLXkNs6d8SXd6opeMVEKsc0+9BDawr+K8cAd/RaUgRo/uoXTULtMSxBpCqlZS2Mh6txuRImMeuFGQJZAOHk52oZ4ZvjIIq1lE7bN6QQSh7j2twTsaERcKhhxYnVBsfE+WWvxSq9RJfbH744hRGeSWalujR0mdHIk0SrSoGiw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:20 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:20 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Larisa Grigore Subject: [PATCH 04/13] serial: linflexuart: Correctly clear UARTSR in buffer mode Date: Mon, 16 Feb 2026 16:01:56 +0100 Message-ID: <20260216150205.212318-5-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P250CA0002.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:5df::20) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: 79a86d3c-dbb6-4325-4f36-08de6d6c61cf X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?UEhiZUJhSXpNNFBBYU0wQzdRUDhPWndadExUazNSdEJRcWdEL0NUaGhlWW5h?= =?utf-8?B?c2hDUDY1MHJlWittVzErTmFaUHhkRU9SS3pKNzd2Tmd5NUtmRjRDSEJnZjlo?= =?utf-8?B?bnlKeW5vaGhzd2dudU9iVlcwMzFUZk8wTURQTVRpR1dXR0FYT0NRQlo3b1Ft?= =?utf-8?B?MHlTT21WNjh6ZU0rWktvZHdIazJTOTh3K1hsNmlUMmxqOSt1SkxVemZBbmFI?= =?utf-8?B?a3JEV2ZOZHFuRW5XMmtqNk5kdFRUdzRlZkJrbktyZm95bUhGd0g1VGcxaHlt?= =?utf-8?B?UlIvZ0FpOXBSUzMzN0pxbGozcjQ2eEhXVXByZGlsOXFmaFlEMWFhdmJzK2V6?= =?utf-8?B?YzVGUGFENllLdFRzV3prcFd4SGtxYnJySXdDYUM3cG1vUy9qTFJydDB4VUZQ?= =?utf-8?B?SVVVSWNzVGxISzhLYXRvOXVWS3kxMkdJNGNlL3ExWXgxQThPb1ZwSFB0NjF6?= =?utf-8?B?MjltL0lwODJUbXc3K1pkZGZvUUlsY3RqY0NacmJBODdhbUJIeFdKMHAzUDVY?= =?utf-8?B?Z2RkbmIzTElLZnRuaEZxSCtOMlI3OXZIWFM2b0RyaUg1aEpNNTVSSEpCVGdQ?= =?utf-8?B?VHNoUVVtK2x0NGJFQ1JFSmtmQ2lwcnhncnB4YkxTZ1dFRS9SckFwNmRhdEUz?= =?utf-8?B?enZIWk9XV0VIR0pKSlpYblRROFZ5M3VCd2RxdU84VU1ZTU56V1R6R0R0d3Qw?= =?utf-8?B?WDFSNTJRNUFyYmhrWGdrZnRVckErOHN6a2ZSNmxtV3BZYUU0VlhVV2krdFBh?= =?utf-8?B?MjNxRFNwdFJQV0R2VTAyc2ZvcVA3YytLYVhSWS9aM2VWTmVwcHc3MUdpWVUy?= =?utf-8?B?aE1ycnZ3RXgvVGJnZFp1MG9iV29vUTV4c3lOS2wzT2JyWEoycjVReTd2VzVV?= =?utf-8?B?elZxOWFPekZoYS9SUmFHYnZ5ZUlSbzljdkdHczcwZTV4MUVaSXBUd053Wmh3?= =?utf-8?B?SDQ4RTg2Uis1WmlSZHJPczZ6VXpBWStGL1liSDFaRm05ZmlNOXpWVDlJU2V5?= =?utf-8?B?ZVdDOS9XSmVPM3Vlc1Q1Q0t1TG9pcldlOUd4RWtDRGE0V3VqdVo5bGFYOWhx?= =?utf-8?B?dktkZ0REb0FNK1hHb0NQdkthVXlYWjhVTWxIUEEyaG1FTDJzWUJrQWJ2ajYx?= =?utf-8?B?d1BVcnBFYnF0MGMvYWN5QWVmWDcxVGRZMXdld3pxTWNxc1V5UFVmRkZRaHFw?= =?utf-8?B?a0NIVG10R2RyY2wyWTVXN3ZrS3hjVWxkUGM2enIzRlltSEs5a2FOM0JXbmo2?= =?utf-8?B?SURyb3VFcmM1ZmZkbFYwalp3ZkNadE05T2srdThGUXJWMGZ1OE11M3AzcWF2?= =?utf-8?B?d3RYVlcxM3NiUWR0NE5Zc1RlWll6c3IzeDhQV2NMR3F3YVB2R2lRbVpqQ3ds?= =?utf-8?B?cy9nbXNuaVllVmt6RktKYWVrZHBISU9FSzlnNHlsdEF5ZGwwYlhRc2VlTTZ5?= =?utf-8?B?ZmtnUEZIN3krbDY2MjVhYUNFeW9jRE5mTFpxNmcwS3ZPYW43Q0wycW1wb2JL?= =?utf-8?B?MWxBdkVpNHNaRXRpNjBKNlo3UXhONTVoa1NJdUZkYXl5UWtnZkVucG1qYkh4?= =?utf-8?B?ejNEM1gyNS9wOHVmZTNYekNFbUQ1cThwbFpucGxMSUxKMk9OR29JR2doSWVH?= =?utf-8?B?VUtDVTBSSnJmRk45bjFqeC9GZ3B6eHNIUHhBOG9ibjhUSWRkNklnbG5oRmp6?= =?utf-8?B?b0haTk1mMHBQVkN6UzNvYncxc2Y4MHVGNXRPbW8vNXB3M1ZBZzZsWlVqa0tI?= =?utf-8?B?VzFPb29wZVRsZURQMndjTjNPUkdsdlVSaURMVWU5dW1XT1ZNWWx1N0QvZ29K?= =?utf-8?B?cTNEeFJuclpSSDlXb2x4VWFMSFN0NkxvTzFpZ3cvY0ZKSDdkbEd1VE9HZzFv?= =?utf-8?B?cGpKRWlkYXNUL3BVOGZVTmVZTnpGUktuUzhEWnFBV21WU1dHTldicXNsWk1I?= =?utf-8?B?QS9LajdnQ3kxWS8vY0plVFFPNDhCZW42UEU2bmN2QXBKRHE1ajZuRUh0OHRG?= =?utf-8?B?SlM1N3NzZlBSa015YXpKdVk1K1RHQUpjcEdXaWFMcUpId2RMdWdpaGhqd25S?= =?utf-8?B?dTc1Y0UwY1Z0WVczZ3RVU2FneWN3b1VFaVQrZTl5L1lnTnZ6TmxGMXZiQmlU?= =?utf-8?B?VVZ6aUFSdjRNOTZFdk5ESWdjZWJ3U1dObGZxbkcvZitMdlVkNVJxbEhVVHU2?= =?utf-8?B?SUE9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c0E0VXdjaFFZenEvVHdaVWJLQzEvUmR5OVpQTFlpOVo5UTRHeFUrZE5xbGtJ?= =?utf-8?B?R3I3b1g5aFEvRTdRcUQxTUltUzZXcjVtYWZtSE1rYXlqUEVmN25VMXYrL2x3?= =?utf-8?B?SlpuWHJrL3RqV0lnVmpPSTgxZzRUaUh5emw1VU41YzJEdTMwL0xpUlE2a3Fw?= =?utf-8?B?aWhia0dJSXVyK2xmUlhTZ2NSMHU1cTJzNmlUUkdaUVRkYy8xMUM2YmdBMGdi?= =?utf-8?B?amVCekdNaHFabExFSDRWQkRuVGpJWlNpYVFuQW9ZMlg4SStvUGhucU00THhP?= =?utf-8?B?Mk9QWGcvUlMvbjNOUUdZVUVTcUhDZ3VDWWdSOFhPRDlhbXdlTS9RN3VvU2VE?= =?utf-8?B?NGEvcEJpcDIyWTdkTGRQN2o5YzFpNFJzak1qanN5SllEd0YxWm8xQXN3K1g5?= =?utf-8?B?RW1NTENvT3l6YnFrQ1E0Q3ZTOHJtbCt3SE9GL09DdlFWVDQwcHF1R1RMSCtT?= =?utf-8?B?eWdvV3AvdFJ4SUluVDRRcnFCZDFlUjhFRi85cUFZcWErVlgzNGdpR0VXb3dD?= =?utf-8?B?N3FDbVcvRGdpNCs0WUhIZUhqMVh3d1lPeEI3WC9HZUtCU0x2K1lHT25za05P?= =?utf-8?B?V1ZRZTJzN3ByMEtUc3QxZUczRE5wckt1VFRERldNdXFJK2NsM3F2NjdLcUp4?= =?utf-8?B?YWVjQitla3hCSFJ2ZUs4c2l3RURpY1diTm1RY0tpYW1wYlRYSUxvekFzbURw?= =?utf-8?B?b2FjWXk5NmdaMjd3VTVBRko4RmpPMjJCOHRneXpreFAxdjR4UHM2R0NnVUQ0?= =?utf-8?B?ZjBnY1MyNEErNU5sNklJNEdZQ1VNMkRqN05jSVo5T2JRbGU4bk4rZ2diOVRw?= =?utf-8?B?YktPb1U2c3BXRFM2aGt5VjdPWjFKa2w0UVFBcDUxbjQvRGg2WjBxZXBMQS8y?= =?utf-8?B?enpaUFZvdVRvOXp1RS9xdmp5c0JwU05uUDN2aGFhc04vckt4TDNVcHpuWFpR?= =?utf-8?B?TGFheHV5OElKWk0rOUV4cUMxU0NGREtiODVOaTBtRGNGQ2ljOXk1T2lqM0pv?= =?utf-8?B?ZFNqeHZSSnBDdzdTOEF0bFk5bVRoTStFR3pveUZkQnJNRFVzSUZENWJSMmVn?= =?utf-8?B?VWZpWEg0eGd2M0dPSDJvMzJ2WjB2TWtiRnFlOEtlTTAvcDFCWkQ2aXRERW5h?= =?utf-8?B?SWdZb2tuTjZaOHY3ektUSWFIU1lRV1NjU1ZBNVluRkk2RW93WE02UzJRMW5r?= =?utf-8?B?STZKazBKbFgvdTJBMmRFZmxxQ3AyK3IyREdIakpxbUw4ZTJSK0d4Q2MzdWRI?= =?utf-8?B?ZmRiSWwrYTdKSDJ5TnQ3Y09RbTFKVS8zc2VBak5vM2NETWh0b20yMVF3N2V5?= =?utf-8?B?d2hmR3IrS2ljeXlTM215cFJHRXdoNDZFblZocWR1dU5zV2tlNW9BNVFvNmFM?= =?utf-8?B?SGxCYkV5V2RDS1FNTzNzUWxaRkNaWkxGTEVFQ0JxcjVTZTVXQnB3UVhpQ25w?= =?utf-8?B?Zkh4cjF0KzJPZ3VZSVl1dnJnMTkrdDRuMC9FOUxvL2hMY3FzcjNETTFKK05G?= =?utf-8?B?TmxPbDVVWXh1WDZjM1dzNzlBdGtmdDBUSWhRZzlnWU1ONGJCZGI4a00yYUFM?= =?utf-8?B?VjVTdTlrTTErZ0hPU2N0bmxLMlMyajlxcEhmai9RbklTazNOaHlGcnB5dVRG?= =?utf-8?B?Q3JMNmpleGszczdrQzhYL3BaUzlBdmdwVVRzWTlDc1YvQWtzSWVYZXdHVWdQ?= =?utf-8?B?anZQVlRXTWJxU1dXY3E2UEJCTmR5dGxxSzJvbGtydFBRSnpQcUJIRDFYVGFC?= =?utf-8?B?cGZ5TkNyRUNWUm0xS0R4RDRseVhBRFUrMFJRV0pMS0VIc3A0ZkJWU3NURU5N?= =?utf-8?B?RXA3NGVSYjJrRG9ENUhHUEk2ckZ5TVB0U25rc2xmRVRpbW83KzNsN2Rxa0ZZ?= =?utf-8?B?Z1dqOXhhR0lEUVFVbnRmQXFCOU5qQjF0Mk9lS1VjTTNadzgxMUdSaUp6d21V?= =?utf-8?B?VGxYelZWQ2RFd29TWkdrM3FFRWJpMmNFTlJ1cFFwdnJxSlJRYTMzK21MRkxu?= =?utf-8?B?bVA0SFZjMnlFZDdOWlhyc2Y1NFp2aEt2S1MrUVYza2tnMzhGVUNiMFVrK2Rt?= =?utf-8?B?T1NIbTN2MnRsN0ZLbTM2ajFyeXlyaEFZM1dMMWY4VWlvcU1sQy9aS1hkM2xT?= =?utf-8?B?cDYzSnBtZkV0RjFmYzdSMVVYYjYxb3E0VHZ3VDQ1YnVEdFptTUVTUVcveFNX?= =?utf-8?B?ZU10ZEtrNG84bk91Vng0TDA5bUtreElHZkZyQmZkN2hrM3doaElnWGNuNkYz?= =?utf-8?B?SkRyWkVadUxJNmxZaHlWdTBlbUdWYXM5L1BvbWxoU0NXU2ZuOFFVWEhqbDlN?= =?utf-8?B?ZUxuc3dZR1ZSNTlsbnZhSVZGakppM2NSQS9WNEhXZ2F4eTNkNzNISEZjc0Zv?= =?utf-8?Q?a6/naGOXsyXHBE4A=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79a86d3c-dbb6-4325-4f36-08de6d6c61cf X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:20.2117 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +2ulPlKYd/ON/UkNC7oY11bAyvoz1QxBLMtswVooKe447bWrhlmSGI41ZZbsgD6T7s3wlEoe5eJcAQ8p6o0QwQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 Content-Type: text/plain; charset="utf-8" The TX interrupt handler should not clear RX-related fields in UARTSR, and vice versa. The handler checks UARTSR.DRFRFE before invoking linflex_rxint, and UARTSR.DTFTFF before invoking linflex_txint. Incorrectly clearing these bits may cause the interrupt handler to miss characters. Same applies to linflex_console_putchar which should clear only UARTSR.DTFTFF. Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234") Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index 9111e7af62ea..a48240b0a5f2 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -169,7 +169,7 @@ static void linflex_put_char(struct uart_port *sport, u= nsigned char c) LINFLEXD_UARTSR_DTFTFF) ; =20 - writel(status | LINFLEXD_UARTSR_DTFTFF, sport->membase + UARTSR); + writel(LINFLEXD_UARTSR_DTFTFF, sport->membase + UARTSR); } =20 static inline void linflex_transmit_buffer(struct uart_port *sport) @@ -255,7 +255,8 @@ static irqreturn_t linflex_rxint(int irq, void *dev_id) sport->icount.parity++; } =20 - writel(status, sport->membase + UARTSR); + + writel(~(u32)LINFLEXD_UARTSR_DTFTFF, sport->membase + UARTSR); status =3D readl(sport->membase + UARTSR); =20 if (brk) { @@ -573,9 +574,7 @@ static void linflex_console_putchar(struct uart_port *p= ort, unsigned char ch) !=3D LINFLEXD_UARTSR_DTFTFF) ; =20 - writel((readl(port->membase + UARTSR) | - LINFLEXD_UARTSR_DTFTFF), - port->membase + UARTSR); + writel(LINFLEXD_UARTSR_DTFTFF, port->membase + UARTSR); } } =20 --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011064.outbound.protection.outlook.com [52.101.70.64]) (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 0A868313E10; Mon, 16 Feb 2026 15:02:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254148; cv=fail; b=F3GTJqtsQ8S7SdcipcMDdy5ybfFF5gdgLHFWTbTmVp/2qAQQjWEpF0AEwFGP8dUx0UQnt1yRBlUp9iVwk1R8efbzMu2uXGPi6eaUPIMN16zad+LOQnC4+S3gR/562zqiPHLix/+yFKNvh9wRUHX3SQ4jImeBJl4GYrb1jA6S8CE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254148; c=relaxed/simple; bh=q1US+b8TDuJkBDNrK2yGj9orf0/besPENnYgvS+zfQI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=RXV+sgcGe0H7GxIVHpFG4ATyU30GuKt8oKBWvokroWcRN7YhPAGl5BxTuAUwPHcecy4qhVWSyBA57rWZJE9+ic4x3S0PRfeY+I796lusU1gi9wBPYAGfp0fHrzyyQyG/LCWHQ11GU1bWqaaKAfuVyueS6sUyBGU32LFZS65oqDU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=HI2L+sYi; arc=fail smtp.client-ip=52.101.70.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="HI2L+sYi" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WfL2x4nx2ZtyqCVJD1oifiZLMnJU+jIzVvy4HDqTLxh8FEAVRXaaJVm4BispcE3pHupuNvffrnefeg9bmC3LtkwVOKkGVpAoofb5SLsLXg7B2JjGmRGKNxBnXp7cVQrjeR/2Yo4a5SSh81rP3Gchy3dBFoguwNxAsB1jn+zc1N2U1wCNbZB40lYWMuxwnZRMS6sbK9SzBm0sfcS6RW0LSXiDIKVzLpqjTQhx5hYZAPB1cEQigCaFiRZc28+GOhnid5q2Rd8rRcQ9VMhELUBKNuQt9Nu5NRcsPe7B2wa98jvWujwU5LZbhHQbrR0N3vMsT2VUF/hz1pkPfCCfJb0wAA== 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=I8QsxCnbpw/JkbLFAphYXrNvxW3IlBmlOx4mSHyDMOw=; b=DScoCwfS+ZxVdSyJKaFAKNBecToeRsSZkhsOC2OjIVd6nFADg0EreAdwI8j1bDxiiSCmPDtCqiwAqUns39gsnSQbGrkdnLCqrBzKwcvfayHqLQc8PrSkUDPgXN9ENCWr7G0Nv+zmdpvRn7pV1oatw/g0XcV+67KJbHdTuJ3p5HfYxFoSKf2Goi2XeTJacXw2xPS5FZMZVa9zGneDr0J8oInAK8OiJt5gdLAhArAFepqvORVtJ3mA5zOo6FQ0Ctmh8vVVKacMzmViufeh3O1eyRSwLo5aPcekUpSfZLaz3GYJ35ujdlTgo9Dp3YIyGD5R8p+5q38UH8AIRrC0pKpkNw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I8QsxCnbpw/JkbLFAphYXrNvxW3IlBmlOx4mSHyDMOw=; b=HI2L+sYiN2ZLtfZg+BC/nTB1BokVjglfb+Pv7vIDdM76vLycIF7INlW+3/lJRlZn/NEywO9yyD/xlYzd5KlDKRLMr3ArCy5AQ08dpVUW4RliU9cQOkqYI2P0Db6dAHLh+Nuba657vkQcUSi+ZvsVmDEBgzdkOEiOU8H4KB7vS/qMSOfKwGNZY+6e7WEHgdwMS0VB1lhhNYUklI+WOMU4Yq1uXq4v5Yty4uhuHNJ5KzxA11509Orgd+f5avwlazdt4NojWDL9aF5IjYf8e+ScTDnXExkXa5AiyvOxzPFSqOE4r1jnrD3HMIb0RpohCykFte1qY+ZDeT5VJyCXLQ1Xgg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:23 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:23 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Larisa Grigore Subject: [PATCH 05/13] serial: linflexuart: Update RXEN/TXEN outside INITM mode Date: Mon, 16 Feb 2026 16:01:57 +0100 Message-ID: <20260216150205.212318-6-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P250CA0002.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:5df::20) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: 1e972d0c-7762-4914-13ec-08de6d6c6361 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?cDBNbmFkWFViWmR0SzMydkxPSmpZUk9tTC8xS0FWTTI2WFhuUFVVdkp4VjN0?= =?utf-8?B?ck40cWNacGNOb25QZmcrWnhuWkQzYjZpdkpHQkJEVVNFZ28wdHh4WG1XVU1R?= =?utf-8?B?cXBPK1hsYUJXMXBIWGNLS0IwNVJCSnZRRUxwTDBlVkJGSVVaQjhacUR4Q2lX?= =?utf-8?B?UTdwcGtBVUJEZDZEZXJIWDA2VGtLMUVjSGhmejlpbkFoNVlxOFIyWG1tcHUz?= =?utf-8?B?NlZIcS9ueVVvSWhHWUJqMldIS202VUluZEcyZDNOcXZIdGUwbWhFVUVIMmxG?= =?utf-8?B?K1N2Qmg4VDA5VWZhUjRjdUU2eWwrSUt5Wm9kVHVzbzJaWUJVcGpzWkFVYkNY?= =?utf-8?B?TVEya0xaSEpOMEV1a055V1E5cDNMTGJVcHgyQmFKVm1ZdnZtcEFiMmxxNTFt?= =?utf-8?B?aUxiSUIrNEdkMnBtWDdiWDA1d0JjTkxHYUY4amhOWlBTeDBCaTlpM2Zqbkk0?= =?utf-8?B?K2hOQmsvQjlIekxJOFlCTVJEUFRhMDRYZ2l6L1RoZ2lCOFplRkcwdFdzS29T?= =?utf-8?B?emM1M3Y1SnNPaldMWVVWMkltdmFxL1NQS0xULzMwU0RWeUM5WDZTWlo3YmZt?= =?utf-8?B?SnpYUnBSUi85YzZyTkJXZGZpaXlNTXI0NGxNc0RnejFqcExseDQwR2k4aVcw?= =?utf-8?B?WFd1L0cxdjV3V0FuNHhQYUdWWGFCbXBxUTBocWJRM29nRDRpREovVkJ4Z2dS?= =?utf-8?B?VW40N0UrbjdYUGg4TlNxMHV4aklyNmdNMnNqaFlNOWJqNjhDa1FyWlFjdG1s?= =?utf-8?B?N3FoVms3c1p0V3lxNHliVFo1dklCVFNrRkQ5SmpNZ0p6am1YTGZRNHd4bkRo?= =?utf-8?B?ZXVXNVdFODVWSnU0MjBpOGpqdXBKc2NTK2czQjVMbFFpcTBsL3cyL0MyQXpB?= =?utf-8?B?UktNZ2s5QklTWTNrdHhpVlVHWDRxN1ZCcDdsbG9TNW0zUTVRVnZDRnVEVGtG?= =?utf-8?B?aUVFNkhZUk56VXdCdXk2SlFsZnkycVkvSjI3cnJYRzdUVlFVUnNoWWJ5STVD?= =?utf-8?B?WDZSeG1CdHNyWHltZVQ0L2V0ZHU3MVgzdmxDelJ4VVc5TStVUm05Z3ZtSGRo?= =?utf-8?B?Y29BQzJZWDE4VWhXb0xVMWhnd3VmYmlZU3pnM3VtM2NEMWs3eE9vUzM3bnpI?= =?utf-8?B?WGlkNFRiT1lwUnFZNDE2TGpjc1NRYmZ1Uy8wb3V5b04xS3owMlI5Z2JyL21M?= =?utf-8?B?YXlXbU5hVWp0RWFCK2RpR0haR1dZMkhnY1lpa2FObXlNMFI5dnJ2SThaMnVp?= =?utf-8?B?aWpMMFhxZW45eEdqZHRhM2QrT05RQ1k0OWlUc3pycWFSaVlzVGxKVUF5UWQx?= =?utf-8?B?bWxWV1hLNVBWYXMyM0Rha09CbU9tTFUrU2creklWbld5dnVPZnkzZ3RTM2N0?= =?utf-8?B?QUJCT0JudlhDOTArdHdSdVRCZkwvWjVKSVU3Qlp6djhpZVBGSFNtTHY2ak0x?= =?utf-8?B?R0tUbzBycEV4cXRjZEtaQW42NFl5elZmNFJCVUpCR0IzajRwWU5ySVFrM3V1?= =?utf-8?B?Rmo3d080ZVFObExEUUVLOHo2TFJ6YWZSZktYY1FPQzFTZXpLUEF6Zm5CM1NP?= =?utf-8?B?cEVnZDRvMTFSTExGNGtvSUMxVEk1d2Z0NW1MWDJacEFpc3p0SUlZYXM4MTJq?= =?utf-8?B?L0VHRitIT1NzZzc0NXlkMjdEa2RZUFkxeWtWWnhaNms0dVNuYmszU3JJSWVR?= =?utf-8?B?bnhLM1BXclk3OVJsS1pKWU5QNGJwVy9hdUVtbk9sOG9qRlhhblJoellab0dK?= =?utf-8?B?a2U4UnhOY2p5bWJIMm9EVW5vVDdzN2ZhUmg5UEpkY2VMYU14czJhQnVRVFRn?= =?utf-8?B?L3lGZUtwYlRuYmJudk9jd2d5d1VvaXZyT3lRaU5iUzI5TzkyN21UMkwydkZG?= =?utf-8?B?TlcxMzM0dTlSaWdYaEdEdGVXTUMxb2JDS0ZzbHIxR1JPcDBzN3R6TkpicG5j?= =?utf-8?B?cU5LWis4RVJKSDd5MmVrZThNNkl3am0rdXJrMXA4WFJ1T3BPYlRFRTdkQlZo?= =?utf-8?B?dUtQcFMwTDNYNDltMTJhck95TkhINVNYQTJVTlUySlMvbnVkb0pCRkRIR2FE?= =?utf-8?B?UG5Vb1RkMHp4VTdTYTVxaFQ4Y0pHekF2SXI3UkJhR0MwQUt2eWxwanBBYW53?= =?utf-8?B?SHpuM0xNTlk3Qm00aHRHWjFLcDBORXQ2d21wMVpJNXVrRnJPdVliOXNkZU1i?= =?utf-8?B?aHc9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VlpzRktrRGZHYmxNRGRrTWR0eFRJUVlFaVZET0VpcEFnYy81M1E3T3dWT0hC?= =?utf-8?B?VEZjbkcvOHBYazVqQTRDV2hoZHZSUC9kdGYrM2RUd1BTa3Bvbkxxc3MxUzIz?= =?utf-8?B?ZnJXUElTcVNDcTl2Zjlhcng1dlIrNFVmUEhNdEUySm94aDFOZTZHWVFXOHJV?= =?utf-8?B?K09oSEttemd6WG5URUt5UG92SVFjVGVjWXRxYk1mSzA5RExlcklkVXp0UHZi?= =?utf-8?B?TUpNa1VRNkpXK3ExTjU0cHl3YWxHbURpMDZ5Z1JJREt6QlFVMFpDaHJadVRS?= =?utf-8?B?T2hCdDBCazdjVHZZc3p4ckNjUDQ3bUMweHFYakZNMFFlV0tJSmk5UXVRSDAz?= =?utf-8?B?QUNPRitIWG03L204cDBuV1dvRGtVWjZTOUIxRUg2R2tqSW9uQUhONmFVTnkz?= =?utf-8?B?Wnh2a0RpWDZXT2U1ZzFoYm1vVEhtdlpETWQ3ZC9oekx1MURFQ2RiQXIyM1Ns?= =?utf-8?B?anFzTjZLZW5yeTUxN3kzVis5QnhsREk1RElWalpWT1krNFlPbEVic2NKUXla?= =?utf-8?B?UUtJdDlycXR3NnZQYWRRaC9WUHlGdDNZdUJ3OXpKa1pXZVhZZUVZczkreE5n?= =?utf-8?B?RTNpVnFFTW9MN0k5Y0wxaEFQY3E5SEtHTjNZNUN6T0dzUndwSmNxV1huRnBL?= =?utf-8?B?NzNDSnM1bmpKdXErRTQxcE1JUy8wVk9TUExmSzRZZHdzOTFWSkdGdGU0RUg4?= =?utf-8?B?OS8va3dNTHgvb1VzUlNIQk1jQS9JbHdtQVhraXVNdnBscVlPQzhwVkFCamw0?= =?utf-8?B?VGVJT2p0aFBEWWxmZVpKbWhEZU1TeGYreGNBdDVONk9FbGpUdjA1V2RXVmtR?= =?utf-8?B?bjFwQWM0S3Q2WUJFL0dMWTlNMTM0R1RjekIwZlBUMmhvZm44NkRQNGM1UUVK?= =?utf-8?B?NUVKRXBvbFAzVGwrUlF6T2F1cGRKUGpMb2lGOStlZ1lScUswdjFnREV6N2dL?= =?utf-8?B?bFJDUW1vczUvNVFiQklYMTlSY3RYYnZRZXhXQytwQ3E1M09TdjB0Mi9jaVky?= =?utf-8?B?R3pwdG5uSmpGVzgwTXQvWlNJRmczckpOeng4aFI5Ym92b3h1d0RzcEVJcnFu?= =?utf-8?B?YjhDSEx4OXZtanJ6ckRiaXRZTVpQazhuUW1CUnpiR2NVZEVZbTdZcVJKS0tQ?= =?utf-8?B?WlFWVFlwM0FFaTN5UDBhNW16N2wrV0JIQlhoUkF1SkQ1UWxHK2xvVmJ1OEJR?= =?utf-8?B?ajZ5eElWU1U4LzdrbnRrRnNVQ1VydWQ1Y2VhcmVxQlA4UmNQdGhxMUF3Y21y?= =?utf-8?B?bVR6M2kxcTRpR0d3QWpCSEovRExZVUxVSU5FTzh5S3hWTTBVU25maEFkZng2?= =?utf-8?B?a0kwZHJjVU9RZzUyV3lkU0Z1U1UzazdxdzQ1cWR5YU5SaTZMblZ5RkZqV0ww?= =?utf-8?B?RXRvZDZsUTJvVFR4cjJ5OUpYZkgzdFZLTUhtZ0hCMUVRKzNJM1R4Umg0TGxt?= =?utf-8?B?d3ZwTDJOM1BnN0lueHIzT2VxeVp6Rng0dnA0NG1BN29lczZXeEMzOG9mQ3FV?= =?utf-8?B?L0xiN2l2MkxFZkUvR3VWenV1QVd4S3p6NUt3ait0THdmNGp5K1l3RFJOSGJ4?= =?utf-8?B?TytseWN0SWpHWnpMWUxDMm5iVW1ZRUtlcUtKbkthT3g4ZFRnVUwvQ0g4ZVQy?= =?utf-8?B?aElTb1dRc2lKRHJWUzR4UFVZSVl5UGVaT3Q5TEtnM3gwa3hFMkN4S0NZUnhj?= =?utf-8?B?Z1M0aGVqS3VFZnhTT0FEUjM5S0d1WWFkcEI5Wk5FbitBdnNzT1NQMjlBRWE1?= =?utf-8?B?UU1YT0FEdmdraTBUT0hKSjIxZVVXd0lUYlJaRHhxU3FibnFYZEpMZUlNVXp6?= =?utf-8?B?K0VGVW5hNVZqekJhKzZZQ0FWQmdjd0pzRGJ0TzJEUzdWeHA4djRjUzNkSi9l?= =?utf-8?B?TmtocXI3ZFJPenA3NzNhVG1xdXVBZ3dIOGI5NWd6TXh3N1IvSTJPU01PK0VK?= =?utf-8?B?QVJTWWlidmNwb1ZKVGdHUVNqWEozb1UrL3BoSHVEWmdoNzgrTlZaMmxTNnU5?= =?utf-8?B?TE1yTTQ1UkJrOUxHQkdiRndVVGkvdmJWOWRKWXdHV28rMW9QaG5OQ0xaUlQv?= =?utf-8?B?dEZraGlmWHVZbjEzV3hCY0crMVNzNXRDNlpEVjd3UlcxT1dBV051bU1KSzk3?= =?utf-8?B?U2svd1d1VjVXNG5xL3d6UU1yeDA3NHNWNXpIZ0tQWktzdXZWREFTZVVzRG5E?= =?utf-8?B?Vkl2M0ZUTm9nT0x5RU5IeXcxWlRkU09DQlpmYWM5WXIzWjhOdFVXV1pGK2E1?= =?utf-8?B?a2ZhVEF0T09SRnF5N1Y4Rmh6YXVRSllYaGJWRWF2b2xMSit6RXkzbHVuQUla?= =?utf-8?B?VjNSaWlXUWdlT2RPZksrcFNpNHVJSU1DNk83YjZSUkpuZ2hjY0dJYnppTXNs?= =?utf-8?Q?LXBvSPU6dBz5iLgw=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e972d0c-7762-4914-13ec-08de6d6c6361 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:23.5045 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qHxFOoMR17+lCkZHKQ+LvI6AaTH4xIedDhXhAbHWFM8ja5/r+plJ6fqNzwYtnhfF/R09vW60I/lyPylgviT76Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 Content-Type: text/plain; charset="utf-8" Reception and transmission should not be enabled or disabled while in INITM mode. Although the manual does not explicitly forbid modifying RXEN/TXEN during INITM, this mode is intended for other types of settings. Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234") Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index a48240b0a5f2..768b3c67a614 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -350,8 +350,7 @@ static void linflex_setup_watermark(struct uart_port *s= port) /* set UART bit to allow writing other bits */ writel(LINFLEXD_UARTCR_UART, sport->membase + UARTCR); =20 - cr =3D (LINFLEXD_UARTCR_RXEN | LINFLEXD_UARTCR_TXEN | - LINFLEXD_UARTCR_WL0 | LINFLEXD_UARTCR_UART); + cr =3D (LINFLEXD_UARTCR_WL0 | LINFLEXD_UARTCR_UART); =20 writel(cr, sport->membase + UARTCR); =20 @@ -359,6 +358,9 @@ static void linflex_setup_watermark(struct uart_port *s= port) =20 writel(cr1, sport->membase + LINCR1); =20 + cr |=3D (LINFLEXD_UARTCR_RXEN | LINFLEXD_UARTCR_TXEN); + writel(cr, sport->membase + UARTCR); + ier =3D readl(sport->membase + LINIER); ier |=3D LINFLEXD_LINIER_DRIE; ier |=3D LINFLEXD_LINIER_DTIE; --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011064.outbound.protection.outlook.com [52.101.70.64]) (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 C3115318BB7; Mon, 16 Feb 2026 15:02:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254150; cv=fail; b=Nbr21LIXWNNIpYT1RFOHlVU/2kGIBLvhMR25iyVxcC4zEsucJvSeCbzMutNwOjHX6GPT/xeoiNCHNINLFc3dsNarzBIsgZECMCd47xd1SW1mAYGiM4uxhd6qQrKV+cAPM2iKzbZbWXcPrZ/z95Ij/9sc66HbZ90fV1NCf4NkudM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254150; c=relaxed/simple; bh=svvhbmVEtZo8FxF347WmFPecceOYg7TxVvNqvoDR/Uo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ev7XmHtCF0BN8hlVdPm7DQ6IajvSjBrkEwiPXnjvSHScsRbOQN0rjoiGFh9i2BRwOkzhhavNXnAksgnvunzPCMSyiyE1qZ46vI9tfQkKO7w6fop6DkN4rCgOA3DhPJfXyfTvQP8QrCNZP0i+SVT6972TffmGUFT8R8mhuBjiT6M= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=OTtvQBQE; arc=fail smtp.client-ip=52.101.70.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="OTtvQBQE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t8inlipKWTETfhA0/w7AfP4Mdh/Vf4PWUW0xwYkN+bfesKddoV+uZHV7DBhBYUSz0MTYbhVnKRIMK8z/Y3Xx1zcFa8SLkzYXhdUJHoHuS1npXpjt8Jikr1Bp1gSg8pbbxfJfdnlOUhMUbcqfhauTf/pDeGksYvNMvhRjH8rOoZ5bT/e55Vzy57+i21QLGNUUDT8lKDu2Xx0tNqfpnYkNH8EX1eEirjUp5m+TQQcSSFVf6fXb9wsM/VOTX+sk+26iwHnzGCWqNP0FQzbrxqr+Gp1oSoJYP9Z18TTLpdlX9z3aP29KFIB3B9bkEyTtd+F4IE7xJ+9tR5HsYFfeO5tASQ== 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=hKzVFXh68BLbZsPa9jiihTw5vANIJn8C+vLJRIFBfbw=; b=WctqH0aNiM5VXFQuv4J5hJvCJSdaDql6vLoQ/rmqmXStKTITO9sbb+nQ86MUyPnXaaHHVx6B6SKYaMDr0U7VZ3BQWXaIf5l6xYMOaimqBsI/2LrRWeocE6BXsgfV7x6RBmta6fdD8fYcZqs9khKF3sRpG3hfx9XDkFVcs9InuJ6mNKbOMORt5suEppDGO/eZJodceLHfPv9iudDXMnHO28VZ4pk6eHjY8IckpgH8lwM78Sjmuu+sO5DrhO95gW0sAaceQ4w/uJjGts31kL9j+XiL4iQUB4Ek+KViDRPkdXIw1lh+ASANmKgvfcz7ajcQ/9FWpisZsiY+Lw7YtiN0NQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hKzVFXh68BLbZsPa9jiihTw5vANIJn8C+vLJRIFBfbw=; b=OTtvQBQE0682pKVQdC5GBZsXeMvmG9EVftr+o8wPh6tSeoyFog+VZtLvfUW9jthAsk9Er5+u42ViY1UUQbnhFazkGzKduEAByrHP4YXBYQoggvRzIeox958rfgxx+EMZ+UvwWPi4QYSN0ivo5EOCLYIARoLBY3bXoVLDTSSYL8CHYbTPx7hIB12OW4H8nAoW7liqsVwA3WUAa3bMWbJ3EHwIt8b7Q2VvPCJRDco1g1hoB90rMDkDQ9yXZzNwhh8P5kw1Zsrp0DX27AY/KvnV49WQlYDPQdh0DhaGmhJLUvAf7mZJifa5oNaMIeinI21oJhJc2Rh8FlDPJ2k9ZQXliw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:26 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:26 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Larisa Grigore Subject: [PATCH 06/13] serial: linflexuart: Ensure FIFO is empty when entering INITM Date: Mon, 16 Feb 2026 16:01:58 +0100 Message-ID: <20260216150205.212318-7-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P250CA0005.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:5df::16) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: ec2d2ec6-2600-48ea-d7f0-08de6d6c6548 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?a0tZUmNFVzRCUUNUNWt4c3ZNSjFYbmtZZk9hbkNSR25YL0E1ak5vNXNpZjZy?= =?utf-8?B?VjZ4TFo1a1puYXpiclhCUm83MEw5eGhGODVmQnorRnNuV0g1dVdjRHlXV3lK?= =?utf-8?B?Q285alhkVmRiNk5RSCsrVUREalpwYVdIRnYxUlRySEJaR05QWE45Tm54bEov?= =?utf-8?B?YzNNTm1QbGYzNFBJOTQxRDBtK21wU3lkcU9NVkM2aVgxMFRTYzJOZ1NVSUJL?= =?utf-8?B?QjdwTXM4VEx1RjErMG9SMmZTNDA4K0E5eWI1dzRnYVdNS3QxUDFUY3hkODY1?= =?utf-8?B?NWhsa2pjVG92d0FxUi9DTWR1Nm9TdTVYRVRONGZ2N2k3ZEJhazFpalMxN2Ji?= =?utf-8?B?bnloTXNKYWNvN0JxMHROQXdOc1VIaHFCN1UwK0ZlWFo2VlQ1QzQyb2Nwcm9R?= =?utf-8?B?ZmVYQ1hhTUprWVNEWkFTRG1HTG9pRm0vd3F1ckhYcGdlNlBDVnZneDZUVWg0?= =?utf-8?B?V3ZSUVgyQWNvRW9xUVM5MVVhMVRkcCsrMHYrZFpPSmcvV3NKTG4vQWpVVVhq?= =?utf-8?B?RUE5OHpOUmRiNFBBMG0zNkZjM3k3M2REVHRSVitDVit0bTViM2pTRW9VMGpt?= =?utf-8?B?T2phYVhyUWhmRDJ0eUZudFV4cG96N2pScGU5Ly80djJzcHJCN29mRDhyOXJR?= =?utf-8?B?WnpSQ3FYbGd3dEFHWGtzSGxTMlFPRWFzaSsxR0lOaURWY21LbFpFdEwvL05M?= =?utf-8?B?NG9RQzVsNWRDb1ByZTdZNVJkYmRvVFpQUmJESjVGOStzdkVXNHNvN1dXQzh6?= =?utf-8?B?OHhXTlg3akdnR1k2UmVWb0NqaHhYak1rQnczWlkwd0tFc0ZTUE5MT3o2cUtG?= =?utf-8?B?NlRMbGUya1Bna3ZIZC9hdzdVR2drWXVzSW0zd1pvQkRtSzM5M3FLR1NJYTk5?= =?utf-8?B?S0JZcUxrQzRwTklzQ05DMXpaQ2Nja0grRkMyTU8vRkY5VGsrcHE3Qzh1VWx0?= =?utf-8?B?dG9QQ3IzWmRHb1NiaW04VVlkbHhkcUFOZSthaVhnbU9xZ1kvYVVDL2plUmR3?= =?utf-8?B?anlua2dFQm9kd0tVZW81Z0xjd0pRZ2xPSEpWUkwrRTlyNkpEKy9UVzVQOEpK?= =?utf-8?B?TjhpMDY1cjVLbGc4WktYYWFGcXByN1d6dEE3aEtiMnJyOGhQZFA1ZzBVQWVz?= =?utf-8?B?MkNWcDE1VytsTkVZYTJ2a3F2WU1wNXFCSWpVYUl3UTAzZlpleUdmN3ptTjcr?= =?utf-8?B?RHhCMEM4STBMdkgxQ1pzcFBxRnZuRzl0UVZSMEpneVAwc0ZzMjNXTGdrenhQ?= =?utf-8?B?ZE9iU0o4YWVudlJDdjNQTUdLTlovNU5Ta2Y2OU1mdlFETER1UEswVCt0NVlm?= =?utf-8?B?MEtkQ0ZGU2dxeWxOUEtUWHpwTVNIN2YwZjdVSm1wWXB0bzlHdGtDMXJ2MnQ2?= =?utf-8?B?aEVRbm1YeHVuYXdydmVNZm5lMHl6U2YzMUprclhXM2NGc1ptTnh2Z3l3VUFY?= =?utf-8?B?TTJhelJ0ZXRCQVRNeHQrdUtObmM3TEFxRFR2U0VmazFDS045VUlFYzc3akZY?= =?utf-8?B?cW9vOVpQeEczZnFRdWVmSTA2TUcvUEpuTVNybDMvbDhvVXBKWXFKanJhU1hL?= =?utf-8?B?UXRTMFRiY2JNMjNDc2l2dmE5bEZIZERsRU9WeW5ma25wWVlCbUN6MGdoU3JF?= =?utf-8?B?YWJqSWo4T291eWJxajZqanZ0NVE3b3RjaFRDc0hsR2FUWXIzNEVDSG1ra0tN?= =?utf-8?B?Mm9mZWQ2bDZid043QVZIS2FUMTBiSEpDKzNuZU0rT3RLT09KUnZ4WDllZW8v?= =?utf-8?B?WDlhS1d3QXhYeDE4OURhUGhUeThFMmtHMmo4cjkzdDR0bGtYZlJNdm9KWDNQ?= =?utf-8?B?R0JDcXUzYzUxOGgzUVdZR3ZHV0pIV2d5SXB3N29xTk9BN1J0ZXBBVUsxWk5y?= =?utf-8?B?YktiT1FqM1E4Wkd6YlJhTlNVRWNvZCtQWEdnY0lpVWFmNUZYYjFaNWZ1UU90?= =?utf-8?B?a3JDbnQvTFlwM3RDN2JXR0YwSUE2YmJDaGF1MGhTaWU1Z3BrWjZiNlpTRVR0?= =?utf-8?B?amNuRElnbVByckF6VjA4WFVnYkc2dlU1RmpFa3kzSTRFdkFXVXE2Q3VtdWRH?= =?utf-8?B?eGlUV2RGQ2phamJPWEt0VTdhNDJJazJ0U2JHMEMyb1RyVVNYdTdGTkV4VkEz?= =?utf-8?B?MVdtK0tWTzg1dDhzVmxJZ1ljZDZ3ZGhZZCtTVU1vcENyQThRbzROdG11L28v?= =?utf-8?B?M3c9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dkw3Qkk4Y0g5THR2VEFDRGRVZ2l2UzZKMFFiNWgxME9tekVZQjBWUlZaRWVE?= =?utf-8?B?ZFhqZ1lheTArSTM4ZG8vakx1SGFic0FOQzA0cGRiZFY4TUlLbFFNcUh4YW9o?= =?utf-8?B?aDQwLzk2dVJQK0F3K2k3UnJ5Rlk0NTFZcld3OGNNWDdRN21OOGxHZWt1MW9X?= =?utf-8?B?NUJOYkFROEJLZngrK3FpQUNIRlVFcjc4L3NkS2EwcTFXN0dKVmgzLzdFVTdh?= =?utf-8?B?MHVyN2txeW9OWTA1YVFpV1RCdWQrOHZBV1g4cEFpZjM0b2NJTXFONlZ6OS94?= =?utf-8?B?bnBERVp3elJXYVJPVkFTaG15dGN3dm5ZTlNDejJkUVVQRSt0eG1EWUNxcytR?= =?utf-8?B?YkZPOHc5b1FqNlJaUW91dSs5aHlDYWw3dEMzYVlVMkJQU29ZVGlYQnFEMzhK?= =?utf-8?B?SU9nT1lYL2JmUWR3U2prUyt0K2FFODhMSWhaWXdpcHo4OGZQQnQrd08zcERN?= =?utf-8?B?a0hZYzVhNGI1MUs5RmxXTUhKNlAvbEdDalJhRTY5SW9kREZZQ1ZaL1hzSllD?= =?utf-8?B?eXBvMG9uckFCRFVGV283SDYwQ1dSQXUyclpOakJQSmlzY1NQU0duYnh6bHBI?= =?utf-8?B?L3NHMXNMczJqdEFQbkNtaSsrYng3VmxtTm4yZ3hGUHZXeVQvamFPcFBsV2dx?= =?utf-8?B?ODFxcURMd3N4Tk5DcnRuYWVTQXlpZGpCd1hvQXEyTWRZcjZSRVZHVU5wWHk4?= =?utf-8?B?cEFsWGhaOTc5aUpWajNSL25sYWxvOHZYcGRWMEFSY24xczdPRkljdVFMcWZY?= =?utf-8?B?a0xjUjZDMmlzby8wejJhZW1WMk80d21OdldTTnRJQ1hvdXA5bXJrdG9icDhW?= =?utf-8?B?cWtnK1NxVGNYNHlCSEt0OWpMbXZFdFNnYXFWdjRvOE8ycE5zNUk1M3JZQUt3?= =?utf-8?B?dktLL3lVbmJITUduckRvVE9LZ3BHT3QwNmt4anZkajR0aTdlTUpIUXoyUkky?= =?utf-8?B?SlN2WWJOWVQ2UGNwRVZsb2ZObUIyZWdJUmVNK0ozeTllZCtvcEtwMnQ1V2xU?= =?utf-8?B?cVQzVTNlSzZZWUdvaXFOOWVtN2Z1SStxUk1Zay84OWplVjczRSsvcm40Vncr?= =?utf-8?B?dU5sNmRRY0tSSm0wRjE0T2VQRFc0UHRFWlZ1NHRtUldpam1WdE1nUzgxVStX?= =?utf-8?B?Ty84MnF5b1FTWk9vczkzWkQ1bFByVk5BL2I2dU1GZlF5QW1MU014dWplcnRk?= =?utf-8?B?dWt6UXRZV3VlV2hGREo0NWIzUHhCVTRadkcyWVpINXBVTk1pZC9sKzI2SlNO?= =?utf-8?B?ZEF0bFh1R2xBSnQvSWpiVStJNTZCWFhuS01hTFgzMEJSSXdRdXEwNUlERXVP?= =?utf-8?B?dk5DaFFZNWlSNWNXWjMyMmtrb0l4dnZ3U2svYVkrN0plVXZTdEVMelJ6TlJz?= =?utf-8?B?b3FXNi9NYndTTGZjbHpLcFRudTVSQ0JKeS9qOW82TzdXRUQ3UENhY2VleDdR?= =?utf-8?B?ekhoRmQ2QUVrVEdNNWpCdXFvYjdSMXc0OFYvc241R3hIT3VMNG0xTXBVUUV6?= =?utf-8?B?WktESXJWL2swRE1qbXF0TlErbkVseXc2eVMyV3N2QzYxSGdrRklza1J3by90?= =?utf-8?B?eUs2cTZEKytqN01QSEVBcmxSKzQ3RnY5b011NWZ0UXkrVkU1Wk5NREh1cjNj?= =?utf-8?B?UWhPZEVGVXR3V3krOXZqRUVMdDViS0UweU9lOXQzQWVEZzRXbVBlcDF4dm9Y?= =?utf-8?B?eGJoVXE0eWFnZlZ2R1hqejNOcVdpeVJkRC92MXAxeGs4N3Z0UzJQa1RLV1l1?= =?utf-8?B?ZzBBVHl3MFl1OHRKaHdTV0IxSldzbVJ5T3hBQXQxZnAxanpESUFtOEtYclZR?= =?utf-8?B?NXlpQW1CZy85aGxhcE5OVzYxOTBXMVczWHR0bUNZY1FPbVBGQ1VLK3lERFVi?= =?utf-8?B?TStZR2xyeFRzVHNPUW52KzlMRUo0Slh5VmZTQllWaXJ1dUtnbUF0OGtITUtI?= =?utf-8?B?eU0yZEpFVTZlQlVCWnZ3UGw4YTJjOE1CTHVvUmRDNmg2YkhlVURXMUdJdEQy?= =?utf-8?B?ZjQyUi9lcnFTWnE1T3B6MEdhZWpqejM4RngydU1SbWZLeUFaNGo5MHdmTzRx?= =?utf-8?B?TkVVY1ByVTkvTlIyeFkyV08wTVdzYVg3d2wwVndldFpXV3NHK0pTWURFS3RX?= =?utf-8?B?M3UwRnhYSHR5U3hYK3NxbnAvM2xPTk9JWVhZTUJlbHFXeW5XZFUza3dQUno3?= =?utf-8?B?SnRmbUphcXR1VmpabHZtckFNTVNKc3FFVVhkcHJ6QTQ1cnk2VmV1N1JCSmVG?= =?utf-8?B?YmVmZG9zNUExZ2NjNXJ6cHh4WWVFVk9WeGMxV3V0MThNRUNuam5kQTBFM1Rx?= =?utf-8?B?VEp6VE9aWGxxSURhNzJWOGtGSVJKakZHNklENWZKbDdLRysyOGMrNkJrNURi?= =?utf-8?Q?Ux82asiLxqsVTteE=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec2d2ec6-2600-48ea-d7f0-08de6d6c6548 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:26.1991 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ridMPomz7MvWI8PsA+/hO5aZBFS7xdJgWyXpl3zK9b8oqKB2emH+pSs+XA2153j/xogLjQLMZvEX7m8uR89NSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 Content-Type: text/plain; charset="utf-8" In FIFO mode, wait until UARTCR.TDFL_TFC(number Tx FIFO) entries reach 0 before entering INITM mode. Failing to do so may lead to undefined behavior, such as: - corrupted characters being printed. - the device is not able to receive or transmit any character. In linflex_set_termios, transmission and reception should be disabled before entering INITM mode, as already done in linflex_setup_watermark. This patch corrects the behavior that was previously addressed by the earlycon workaround, making that workaround no longer necessary. The next patch will remove it. Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234") Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 45 ++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index 768b3c67a614..c1d069dc8089 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -3,7 +3,7 @@ * Freescale LINFlexD UART serial port driver * * Copyright 2012-2016 Freescale Semiconductor, Inc. - * Copyright 2017-2019 NXP + * Copyright 2017-2019, 2021 NXP */ =20 #include @@ -74,6 +74,17 @@ =20 #define LINFLEXD_UARTCR_ROSE BIT(23) =20 +#define LINFLEXD_UARTCR_RDFLRFC_OFFSET 10 +#define LINFLEXD_UARTCR_RDFLRFC_MASK (0x7 << LINFLEXD_UARTCR_RDFLRFC_OFFSE= T) +#define LINFLEXD_UARTCR_RDFLRFC(uartcr) (((uartcr) \ + & LINFLEXD_UARTCR_RDFLRFC_MASK) >> \ + LINFLEXD_UARTCR_RDFLRFC_OFFSET) +#define LINFLEXD_UARTCR_TDFLTFC_OFFSET 13 +#define LINFLEXD_UARTCR_TDFLTFC_MASK (0x7 << LINFLEXD_UARTCR_TDFLTFC_OFFSE= T) +#define LINFLEXD_UARTCR_TDFLTFC(uartcr) (((uartcr) \ + & LINFLEXD_UARTCR_TDFLTFC_MASK) >> \ + LINFLEXD_UARTCR_TDFLTFC_OFFSET) + #define LINFLEXD_UARTCR_RFBM BIT(9) #define LINFLEXD_UARTCR_TFBM BIT(8) #define LINFLEXD_UARTCR_WL1 BIT(7) @@ -140,6 +151,17 @@ static struct { } earlycon_buf; #endif =20 +static inline void linflex_wait_tx_fifo_empty(struct uart_port *port) +{ + unsigned long cr =3D readl(port->membase + UARTCR); + + if (!(cr & LINFLEXD_UARTCR_TFBM)) + return; + + while (LINFLEXD_UARTCR_TDFLTFC(readl(port->membase + UARTCR))) + ; +} + static void linflex_stop_tx(struct uart_port *port) { unsigned long ier; @@ -326,6 +348,11 @@ static void linflex_setup_watermark(struct uart_port *= sport) cr &=3D ~(LINFLEXD_UARTCR_RXEN | LINFLEXD_UARTCR_TXEN); writel(cr, sport->membase + UARTCR); =20 + /* In FIFO mode, we should make sure the fifo is empty + * before entering INITM. + */ + linflex_wait_tx_fifo_empty(sport); + /* Enter initialization mode by setting INIT bit */ =20 /* set the Linflex in master mode and activate by-pass filter */ @@ -412,8 +439,17 @@ linflex_set_termios(struct uart_port *port, struct kte= rmios *termios, =20 uart_port_lock_irqsave(port, &flags); =20 - cr =3D readl(port->membase + UARTCR); - old_cr =3D cr; + old_cr =3D readl(port->membase + UARTCR) & + ~(LINFLEXD_UARTCR_RXEN | LINFLEXD_UARTCR_TXEN); + cr =3D old_cr; + + /* In FIFO mode, we should make sure the fifo is empty + * before entering INITM. + */ + linflex_wait_tx_fifo_empty(port); + + /* disable transmit and receive */ + writel(old_cr, port->membase + UARTCR); =20 /* Enter initialization mode by setting INIT bit */ cr1 =3D LINFLEXD_LINCR1_INIT | LINFLEXD_LINCR1_MME; @@ -510,6 +546,9 @@ linflex_set_termios(struct uart_port *port, struct kter= mios *termios, =20 writel(cr1, port->membase + LINCR1); =20 + cr |=3D (LINFLEXD_UARTCR_TXEN) | (LINFLEXD_UARTCR_RXEN); + writel(cr, port->membase + UARTCR); + uart_port_unlock_irqrestore(port, flags); } =20 --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013048.outbound.protection.outlook.com [40.107.162.48]) (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 7F39E3191B8; Mon, 16 Feb 2026 15:02:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254154; cv=fail; b=nBDas2FwHMkL8uQSTUqZG85rRH2VwaWYSrwQ0Vd6SkbfqRqLGPaZbU6uhsH0P/J9h7C3KaCtvEAfBmtAkD2ulTysrJ5d49fxaX2MU0sgNe2cypG9ABue0rXwTY6Bvkfo1TD7UyYcT5hr7w9G/2cFKpPjrRz7fIwkMOcan3AtNeo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254154; c=relaxed/simple; bh=OpZyVB49lsVIPIA5QBAAz2AjjfM8H01M9hMCdbIo004=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=I2tZjoAjtwz0uOEyT3D6WaF15y4C+cVxKAGMpL7FIeooVzc6YUD62Tt1NV1qm8gPjjnhjYhNc3oMLtjjrJ0oJJcviC85DugJuMEPmtmEsP9MXbbwmnb26VfUXmzT06FMpjLST10ROpxvBAP9P+wPmvKIsJCLOHEnlvm+AUOfiBI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=IVU2yros; arc=fail smtp.client-ip=40.107.162.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="IVU2yros" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Arg9wXk7/hmmS8mvXQtSoOq5t/bPwJPZbouKAV4vUIbH6nbifA6sKOzj6N+h+oIjfbcF5M99qSXCAfd1Gl8wNf9GnLxZWiLQ8Wekcb9M8pd8ha2YYu3nNbj1kXssj3H03ViueVxO7dfEMg5lo+/N4ZCXnh/p1iJStroQePDmwVikrGFCyNkdoRmBgxM6Dog4ufNAmhsNqYDt7Nh69CTkYHK3o4G21ILmNnDBFwSbnC2CZh/JlQjkxxKPBUjrQ9bwPbc6H+/wePJn0uwlrGXftup6CTe4AiE6YpBzGkXqdXNA2erYZXa8TuOyinBs9tvFITx39kxVKXDVXIO1pilNMw== 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=W64Q13eCvXOVwz2qaZ+ugzyvOrLsOaHt3rdulLfSpQY=; b=Kxhw3dS+WvbSIxLatOfcGBEMP03zafTGBGSfkZhn8qwALm35Pqt7DZBRMCt52okqVXnwsOnGmFY0siLxpz83iAS7jsPjiQyIqJ20HDrvq2b17+H/lAVccHYG9gfbEoo9JEuV5EMNArMDS830yq60SNHDK2oCNcggwgj1ickRH0Y+ixjFoz0OLwyFxZxXKWeTMg/6tTQ6XS/mqK00yUjg23vqvXYqwgo6H7iEk4dKGVZuYJyVlXQ5dywpic2sNxU0jrWjUjXCX2Oo7nLWKvmoiYfkn7IVH3Y5EdpmZ3Mu4DvLF4ZylAQpa34NFR9EKtCMyIqVwTp+YsNH6jgiFibigw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=W64Q13eCvXOVwz2qaZ+ugzyvOrLsOaHt3rdulLfSpQY=; b=IVU2yrosu1Z2AYLIdi52J7qRch3lhKI4aGyqKeEzWg/oxnZlV9fpAKcCcSDxZ0st8CQ971JEOKazCK7mj/vU3+AYKclOOAPP367vpyu84U7hBfS/U2Imwubk71E9L1jqowoiQ1fI6yZQk/quhfXApSQrY4RS0OgDHAlBknBLEmoqW4UU8/Hdxm0g74nALGnLEVCdAaP4MXFDrsnAunfg+fMZPQttXFT3qNADLvrgSRHrba7X5qNzz1kIG9JjiEZgaI7gZGzPJO3gcxWlUT0uZWu2cYLO3SY38elUTacTnVPo+5D4qFTUM1ysi2oinlwDiUgZ/4KltmJ0qEktrzHgzQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:29 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:29 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Larisa Grigore Subject: [PATCH 07/13] serial: linflexuart: Revert earlycon workaround Date: Mon, 16 Feb 2026 16:01:59 +0100 Message-ID: <20260216150205.212318-8-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P250CA0008.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:5df::9) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: b3bd6f17-d50b-4dd5-b935-08de6d6c670f X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?UU05bkVLSm4zMnFwbzRURk9nditPYlJZRWlGaUhvSkdOc0xsMzFFRWlDckRZ?= =?utf-8?B?Nlh5ZmhEWVZMSVBWSFRRWTVaWWdhbzJkR0pDMHBJa1RrSjR5akp0cFk1ZGpW?= =?utf-8?B?MDBCdy9zTHI1NTBKaHJFMkRxS0pyekRZV3B2QVBFUXgvZWxoaXR2NUVtbyto?= =?utf-8?B?K1RqcXhYc2hXUmNSb0pLK2h3NUlmNjh0NmJvbXdsWXVsclRtbXRTWHExSzlv?= =?utf-8?B?T1FpeWFIYjRlYTRtUTBzbzVWaEI3Y1N5aFJIN1ppdlZpVU8vZ0RPVzJEb3cx?= =?utf-8?B?amtvZjFNb0ZlZnhJM29rT2lTK0ppVm1BYVluWmdkTTl3V0VqMWV5ekJzbDho?= =?utf-8?B?aktUcm0vV3NmdURkbkFjSVkxaFJNQ1ZZQ0RVeFRUekRnUWZCM0RCZVhqZkZp?= =?utf-8?B?WExHS3ROS0pxRDJxZXdIelF0N1V4cE5zLzArN0dLOWp5SHF6Rmp0Mkg3SWFQ?= =?utf-8?B?Zzl3RmllN29Jbm4zejlIR0V6VkE3ZXRTTll5N2ZUd1lDNEpuTEJTTDJTNmRL?= =?utf-8?B?UmlybklqZkhnRHRjMlU3VTBxSVhuTU96WmtKRGcrdDZYMEFOdTBOYlhMR24v?= =?utf-8?B?dzhMVjMvSHFsQUVKM05TQ1krZWEwd2YrYjNuTnNBeUJlQUZ0VTU1ZDRxeC9n?= =?utf-8?B?MEZxZHVVRWZkczIyQU8yd1A4TW9VVmNlY2U1c1RnNDNBMTVja3Q1QkxyeGp0?= =?utf-8?B?cGxMRm1aUit5R2FHZ0lvTmlBU3BkZlc5bnlSMEFpNmRFUUZLZHRleDdsSWlW?= =?utf-8?B?OGkyNjRGU3BTaWdjZ0o0dlVRZUdCTUozZnBzVFdZRTNPTGZxZFV5WkxaeDhs?= =?utf-8?B?SGNZMmtvVWQ3b2pHRk1MOWRhU1BEcWN6M3dJZGR3c2U0UzFxS1J0b3VWMmo0?= =?utf-8?B?a0owUkUxSlJ1NXJQNU9ONkpyQlpUVzhjQ1MydHd3WTFtcktVNiswYVdxT0ls?= =?utf-8?B?cGM5OXJ3UEIzbVpWY0lUTDFHOWUwY2JPWE1TUDIwWnQ2bmZFcURhRmFQZHRy?= =?utf-8?B?TFhLM2VpeEhMWXZTZUJhQjJnNDdjQ1RFL3RVdHMxM1pqVEkwd20vMDFTdFNJ?= =?utf-8?B?K24zN3Bpeno2bHVlVHBSVTFveGkvZWs3YzNwdGQwY0xNUVJOTjRTNDVQNW01?= =?utf-8?B?UjViSmpDZjdwQVZjRXBMU1d4WGFJaldjaElyRGtSSVIwUElBNUJnS2grZTdm?= =?utf-8?B?aGFVT1hkOWwxUjFrbUtUOEYvQ1hleGhBV3hxam9na1hoM0tyd2JoRDFEcGNO?= =?utf-8?B?SVk2QWx4TExvRENTQkhiR3hxL2M1UHZJTmNOSzJLRlVaT3FKbzJ0ZFl3dHlz?= =?utf-8?B?cDZlQlFrVG56OU9HVEsxdEpxS24zNXVYYUlJZ1haSGhFNHQyWUkwYXozYUZw?= =?utf-8?B?V01WTVBNS2ZtWWdZUDNWTVh1dFh3bCt5WTBTd2VYeVRpZHk5cjJMZXVUZ2o1?= =?utf-8?B?U1F2K2ZhZnZlRDZjRFl6WUkyOXp2TjZ1SDRBV2svNzZTMEhGOWtkd2NxMjVS?= =?utf-8?B?QlYvMW4wUk1FR0twRm5jSTVyVUx0Sml1Z0Y4ZWdIQUxINHBDQUc5NVMraDA2?= =?utf-8?B?dFAxaGg2RGRiYTlvYzcwMjFucXY1V0xzckh0ZDE1blZUU0RqV0krRUt3NUkw?= =?utf-8?B?RG9MczkwZDNNdGY1MkdkbnhNYlBXVjlSOXREM2xSaHZ2S1owdWlZaDg1WTJ2?= =?utf-8?B?YjgrVXBrakJmVlNmQlc0S0RoSzhWNXkzbHQ4TzRyTkp5OUZHeU9pR2hobUxp?= =?utf-8?B?bTRvVzdKa0JHLytDYmRsUnpFaUlSR3dnaDhESVlMYlF1WFBCZG9BRXV2VFdE?= =?utf-8?B?K1krb1ZPMkxZQWF0Vm5PRGxHOWtjaHB4RElDTTEvcjVYU3EvdzBhVmNIdFJG?= =?utf-8?B?d0pUd05LK3pvZ3BQMDFRSlRSUGtUNmErT3RodFduTnllNWh4STBablUzMU9M?= =?utf-8?B?SUU0aU1QbU9yaGgxYWF1dWVEU3FTaitMUkZVNWJDVTdXS253NXd1NWpaYzVT?= =?utf-8?B?WndaZk9mS2FVbFBLU2Y4MTMwcG9TMWJ4QlBmazUyem9zUFhCVWptTlFsWjlF?= =?utf-8?B?WVV6L1ZoWlFFbkFRT01PWGlnUmt6bzZWMXlET1NDWHhBUzB2LzA1TkNEOHdn?= =?utf-8?B?VS9NS0xzWmRLUDlvd2lYRnpXaVNHTy9mNU9qbkVjZExQSUhUVWFsY0ZxaHA3?= =?utf-8?B?UUE9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?THpVcGV3dlVYUnEyVUxUYUo0Z2FBM1hMUkNnaUppQ2hWdXBwb082LzJpVG40?= =?utf-8?B?WEV1TGVMdEEyUzFpZkt5YktFWG1INnozbndHWDkyVCtWQk43TXFWTllYQVR0?= =?utf-8?B?OWZsOXhiWkxvakhGemxLVm16eHpOVmNWS2JGN3BGUHh5b2M4VjNGL2RjSU9k?= =?utf-8?B?Z0kxQmRxVGx4N094SndaaXF1eFRQa3V6WVFWdGRmeGU5UjhjeFpBSEJ3MWhu?= =?utf-8?B?anZ4RktCVzk3dVFTakRFQnBBVTRiRXZGVUlWd1lrdWppbGs2L05jQ1Q3OXh6?= =?utf-8?B?Z0dsT0V2QldXY2xMUXg3RGtBbDlucXFxS2pkRU93UGJJdGNodkhEbXJkbm1L?= =?utf-8?B?dkZWTnNXemtRQkdMdTlkbkxGNFNuYlBGN1NOMUFGcVJ0UWJuRURkQ2E3RWhZ?= =?utf-8?B?MkhpTjFPMnZRV3ZsMWc2ZCtFM2Uxdi9yNWtONk5wandYMi9LUVZaV3BFMjFt?= =?utf-8?B?NTBXMkpOQURoaWhTTys2QjJvQmM5ZEQrNUt0MlMyZmlCSlVRdFZEWTZTNHNz?= =?utf-8?B?bUR2ZzJSSVl2VVhIRXNiSmFydTBVaG5VZGlJeEdPYzh1S1RKWjhiU1I1NVd0?= =?utf-8?B?ZzVTblE1Yi90RTVSeTd4LzlCcWJvQm1EMU1Nd2MwdGs1cUh0SmliWmN4TXhU?= =?utf-8?B?emJLcm91UkJYZjBPRG1Nc2Z1RnpvL2djVjFFNWdMWGpqa1lSZjBBbnJXdUgz?= =?utf-8?B?MDJVeWgxS083NWc2R1A3MkM5bXlmTW5sS1paQVlyaXczL2h3ZlVJekRBcFh1?= =?utf-8?B?RzBRMjJ5VFczUzRVTXREMnVmZjYrUFBzclFZKzZYdlNqeEc4VnZxN3RmelFt?= =?utf-8?B?ZW1jTTZRNW9ESzFORGZGZzJsckJOR0hwUVZOVkxoMjhWckwwTm54TUtuUjF4?= =?utf-8?B?Y0F5VFRHT1I0WnN0ODMza1NDcHNrRElqVkdOSm5IaHdldmEzekQ0YXNnUU8r?= =?utf-8?B?djlPSERzeDJoTGJuckFqUGlUU1lPeHU4bVZQWVRXa3hCbHFHWW9HWnVSczlJ?= =?utf-8?B?RExNeHpQeHBSUU1WanhLOWR1blhkQmJiWmVLZ1BXVU13WUdvUzVYVmRFS0pP?= =?utf-8?B?Q3dYMkF1MTlUNFE0WU9VVUprbldFMnhwRXdKVFVkT0NtRVdDU2EwN1p6ZTE0?= =?utf-8?B?STBOQnVZVjdHN3B1ck9rcjM2TzdqYk43T2NiR1Rhd05QeitveDRzZDErWkpa?= =?utf-8?B?THJOKysxMzE4Q01GTms4T3liS1FLNkdReUxpa1Zha2I2dEIxR3hMcGo0MTNt?= =?utf-8?B?dnk0QUtRUFJ0VFVpTFNpRnB4YmtBK0NnS1NzZVhVcG9EL1ZpRjBvbGYzSmNq?= =?utf-8?B?cGc5a1ZVRE1sTHVBK292cklhRElteWlLZVdlMkR5TmNoUWRxa1VhRzRQRnJ4?= =?utf-8?B?Ymt0ci9BTXU1OFd5YUxHT1hZbFEzV0NEaHBGV0ZJdS9OZktkanZxY2JOUGto?= =?utf-8?B?S0FaM3hQSzF3cjFiWGc2SDI4Q1NsRU5MckthdWJ0MTMxK3ZUVk9tUFJmTlpa?= =?utf-8?B?dlVEMk15VnN6eURiN2VSUzljYUMzWnNXcFVSb3k4UWhsSld6Ny9JUUtlSjhV?= =?utf-8?B?Y1o0MXFRd2duRk5WbVM5T0NiOTBObXdySEVCYTI5NmdKWUZrNVdxTThOdXlW?= =?utf-8?B?T0dPN1FkRlkrb1lCSjZIMjNwL1pOUjhXL1dEUDM0N0hYbjU3eE9kdkFPVzg3?= =?utf-8?B?SUxsNW9xVVgrY0NGZEFxZXhPS2t6Vjk5VWROZHZ1TjJYWjE1bGprQ1B2R3B2?= =?utf-8?B?cFU4OG8rNzlDYlFHY21XenczQzc4Wll1NUZWaEdUWU1QMnhNSVl4VkNUWlVr?= =?utf-8?B?dGtLblUwVGhqMmxDeGk1NHVyWDZ1Z2ZjVFFyVGZzK1VMeFpjOEVxNHJ6N2Ji?= =?utf-8?B?RjBuNzJBK1MvOW92ak1oNHpIc0ZadmVzc29tdGV0QWNIejFScnZwV0xzS2Vq?= =?utf-8?B?NFBCM1krMXp5OVpnTHZuOTFXVEpmRmhqMVJQR1NRQm56VTdOTzhHTXNjK3VF?= =?utf-8?B?OTVrcHk2U2VtMS9mUUl4YzU1Z2tQZ2tVTUxFb2kzcTJydkExeDNVSXVscGI0?= =?utf-8?B?RHdkUW1WY0NTV1BvSGRoM1AybXNpOUhyRkV6VmZnR1lrWHJLbDVUZ3F4WWpk?= =?utf-8?B?UkdneFg4QVF3eCtuSTZKVG15ZDlzalJ1R1FPTnN0VWRxVjZLZFVTMWl4TlJr?= =?utf-8?B?U1FYc1prR0lYU2c3U2Z0NEc4VDNuWE9NdlJ6aWVxdFF2eVdTbEcwQytkRlA4?= =?utf-8?B?NWhqZ0pZMmVpamtmNjlGUkZGakVRR3B3U1BUQTdhMll5MDZFems4em8wSUJj?= =?utf-8?B?ekRqRWJRODk5emNrWjE4ZWZTcEdQMFgzVGpHZ0FDdkh4cTIwck02VmtBQUhF?= =?utf-8?Q?QJGAv3smVVYXiaBM=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b3bd6f17-d50b-4dd5-b935-08de6d6c670f X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:29.1313 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4mwPtI6bropyOQJwKTHN0HGtQf/aRmKMesPJw4O7OYjVHzes3OnQIEsmTLPEVXDKEqeJa/AHSSr1mLF9oZxfgw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 Content-Type: text/plain; charset="utf-8" The workaround is no longer needed, as we now wait for the TX FIFO to be empty before entering INITM mode. This ensures proper behavior without requiring the previous earlycon workaround added in commit 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234"). Fixes: 09864c1cdf5c ("tty: serial: Add linflexuart driver for S32V234") Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 87 +--------------------------- 1 file changed, 1 insertion(+), 86 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index c1d069dc8089..fb5f325416c0 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -141,14 +141,6 @@ MODULE_DEVICE_TABLE(of, linflex_dt_ids); =20 #ifdef CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE static struct uart_port *earlycon_port; -static bool linflex_earlycon_same_instance; -static DEFINE_SPINLOCK(init_lock); -static bool during_init; - -static struct { - char *content; - unsigned int len, cap; -} earlycon_buf; #endif =20 static inline void linflex_wait_tx_fifo_empty(struct uart_port *port) @@ -619,48 +611,6 @@ static void linflex_console_putchar(struct uart_port *= port, unsigned char ch) } } =20 -static void linflex_earlycon_putchar(struct uart_port *port, unsigned char= ch) -{ - unsigned long flags; - char *ret; - - if (!linflex_earlycon_same_instance) { - linflex_console_putchar(port, ch); - return; - } - - spin_lock_irqsave(&init_lock, flags); - if (!during_init) - goto outside_init; - - if (earlycon_buf.len >=3D 1 << CONFIG_LOG_BUF_SHIFT) - goto init_release; - - if (!earlycon_buf.cap) { - earlycon_buf.content =3D kmalloc(EARLYCON_BUFFER_INITIAL_CAP, - GFP_ATOMIC); - earlycon_buf.cap =3D earlycon_buf.content ? - EARLYCON_BUFFER_INITIAL_CAP : 0; - } else if (earlycon_buf.len =3D=3D earlycon_buf.cap) { - ret =3D krealloc(earlycon_buf.content, earlycon_buf.cap << 1, - GFP_ATOMIC); - if (ret) { - earlycon_buf.content =3D ret; - earlycon_buf.cap <<=3D 1; - } - } - - if (earlycon_buf.len < earlycon_buf.cap) - earlycon_buf.content[earlycon_buf.len++] =3D ch; - - goto init_release; - -outside_init: - linflex_console_putchar(port, ch); -init_release: - spin_unlock_irqrestore(&init_lock, flags); -} - static void linflex_string_write(struct uart_port *sport, const char *s, unsigned int count) { @@ -739,8 +689,6 @@ static int __init linflex_console_setup(struct console = *co, char *options) int parity =3D 'n'; int flow =3D 'n'; int ret; - int i; - unsigned long flags; /* * check whether an invalid uart number has been specified, and * if so, search for the first available port that does have @@ -758,43 +706,10 @@ static int __init linflex_console_setup(struct consol= e *co, char *options) else linflex_console_get_options(sport, &parity, &bits); =20 - if (earlycon_port && sport->mapbase =3D=3D earlycon_port->mapbase) { - linflex_earlycon_same_instance =3D true; - - spin_lock_irqsave(&init_lock, flags); - during_init =3D true; - spin_unlock_irqrestore(&init_lock, flags); - - /* Workaround for character loss or output of many invalid - * characters, when INIT mode is entered shortly after a - * character has just been printed. - */ - udelay(PREINIT_DELAY); - } - linflex_setup_watermark(sport); =20 ret =3D uart_set_options(sport, co, baud, parity, bits, flow); =20 - if (!linflex_earlycon_same_instance) - goto done; - - spin_lock_irqsave(&init_lock, flags); - - /* Emptying buffer */ - if (earlycon_buf.len) { - for (i =3D 0; i < earlycon_buf.len; i++) - linflex_console_putchar(earlycon_port, - earlycon_buf.content[i]); - - kfree(earlycon_buf.content); - earlycon_buf.len =3D 0; - } - - during_init =3D false; - spin_unlock_irqrestore(&init_lock, flags); - -done: return ret; } =20 @@ -814,7 +729,7 @@ static void linflex_earlycon_write(struct console *con,= const char *s, { struct earlycon_device *dev =3D con->data; =20 - uart_console_write(&dev->port, s, n, linflex_earlycon_putchar); + uart_console_write(&dev->port, s, n, linflex_console_putchar); } =20 static int __init linflex_early_console_setup(struct earlycon_device *devi= ce, --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013048.outbound.protection.outlook.com [40.107.162.48]) (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 EEFCF320A0C; Mon, 16 Feb 2026 15:02:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254156; cv=fail; b=mk69Hybc2nfr+OKU9ZToauj0wks9iIgI5Lqc+i3IeYD5CkDPdWqkpI1i3+EA148zM3zRKGQ5s+9cq0E7kcuE51kmZoOumMAf68LfNdJ5YAFwtWbCpPM3muwPdCw3QWcvYcpYTnAjO6vmGIemSJYttpVzrXmTyrBZwyKYmZjeCRg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254156; c=relaxed/simple; bh=h1VTCU/VpgJahB+/lLvvsHac4eXAwQ6HcMVlAURjjJc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=KU3qFn8VQKJsECmPKPWZTq1ENcissfAuu3JzxTIkGI0jv6962brANxRnje3o/7KxrWut/QO7YeII+z4pLmlgHr8+EV+0r0u0euab0W2FOZtaSBKnGAkz5F5v0A8O8640O/WAQWGMEECvUJ7jKooVzKt2FhnL6qFrezKVOzeLXSo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=AAoz1Br7; arc=fail smtp.client-ip=40.107.162.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="AAoz1Br7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MZIMhZkiHgmqk0gPILCLJIE1CJDWPQeE3E+Eriuwvoo8lbHMrLx8NGfyquSvSRNNYmjo61CR0w5DM88iDpmfAQGOq1vo8qDnbFeWOeBDbkf0OFjjnaZKSmqhdGz5qDnC1n2/80mqd+sRQoxO15skxeQLzkCJUdBvdz4gOenG9HuX8hcNo9yRScXoYdoKN2Yd/2c7Dm0+XCL+T4FMoBHzp3EO3gal0GGEPTLthQ9SnFJ9GdPrQXHcNTupi4C6c4DfaCiSaCiD77WaSyFsCIsBNPEjd8wMzMSsxCdE/n4isZDPCbmN2mUygoDPbMmTZP69vKCiytQNZ0cMCse+QbZaPQ== 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=y2QP30qlBTI87sS30T7F97QhAM6HXJVPVs33LQxl5pQ=; b=jLKMFLT61ZNWOAQeTNu4c2ty6mgl2OQEhOns+/+l4pKASsWcDk6wx2qQFzZo6VL5PUQTG6Dv3bg5LRi1wujcbUIanT3jKjBfop+wetyUKKmXBYp2fCLqONpWYwRAVEgI/FCRzdr5tJFLETpiRp/xGvfuSqc9lKbfmi+FCITAv4Tks8SxIWXU/27/4cgyX2QTIEJMeZKv7smLzGqXSemaxKGLahLzhcYgjYfTxJImm6lSQ0BjfwrieJ3SehbOvtY8G8UyDzPU09cgGwm2N0du3DYYx8xaAl+0aOkWIR66aoioge9uAcoOeRDjd28pl0eam8S51nw2SnGxtatagC0DyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y2QP30qlBTI87sS30T7F97QhAM6HXJVPVs33LQxl5pQ=; b=AAoz1Br7b+FkaPtIBEgQaP52N2DdMl7hF8k9BAt3ZSMO1wbOTZq41H7fY3JvNE3UpWS7HOxEtauBECEB3Ae9AiLBxKVw2tL7BfLki5HUlyIlJdysZZWmFL4mguvR64nOfKjkzwVI9SliPent+OokNwHAkETx7xWiajnO0AO/AR9R5N8PfK2jc+PilubnwK4BMoNv+acATwBblBx87Ec508m0QntwhaHCXJzXoVycHtyVs57pGY+PWxRl01wqa2bw2OzbmI+cbzgYFJ2VFHsO/ZR3bE8G6je07r5CIIGS76i+PKLSDdCZKn6TGdbID3fUxAkANVRNdnDJ65EH2iHFPg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:32 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:31 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Radu Pirea , Larisa Grigore Subject: [PATCH 08/13] dt-bindings: serial: fsl-linflexuart: add clock input properties Date: Mon, 16 Feb 2026 16:02:00 +0100 Message-ID: <20260216150205.212318-9-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0179.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b7::9) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: 24cfa55c-6722-4f01-3a01-08de6d6c68d4 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TUo3YXh4dGR6R3A0RDIxdjV6bWNxeTlIZEoxMnNuUzRGWTBzSWpYVGE3WHUy?= =?utf-8?B?bFByb1hzS1hVbEx2elBaNVhSa2ZRN2oyZnpCbVlCK0EyRzd4anJkWU0zTU1N?= =?utf-8?B?Q2hDMzZPM1hrQktaN1hwSTB1TDJWb2xMSlZLTEkyd2ZOUEl2MkYyODRmVGdL?= =?utf-8?B?SFlmWjhZWVc0dmFPYlVxUXBMZWhKRDhoSmpoOEtUUnc2dHBCZy9kcG9RM3BY?= =?utf-8?B?cTJ6QlpEa2M4aStCTG1pSTloSGhZWkJtb2FPQTFsOEdYK0lZRkdlSm1zTld6?= =?utf-8?B?ZUQwWExEZytndTBGUkpNRmZNa3NEeWxmRVAzS2xub1d4SG1wQURRVlFRTVhX?= =?utf-8?B?WEUrTkJEOFBzeHhUajlhQ3ZZc0VoQXk1SlNRL3dmY3h2UFVGR0ZOT2RRc2Rz?= =?utf-8?B?OHF2ejhUaUo3SWhMNCtXRExFd0wxUENUZk9KRHRyNTI2UGlETnJ0TDZreUxy?= =?utf-8?B?Z0pDK3o3YzFzQVdpVW5lRlUvV240ZEtYdGF5T0lUbTNyaTdZbHZBek5jUHVV?= =?utf-8?B?MmxVdUllSXlUWTVBMWgzRW5vZllmU1FiU0hzUjdlYXVRL3dEV2pZZWk4Y2lS?= =?utf-8?B?bVZ0R3lQS2dqeUNSVVVaeWY3ZGpuUHM5eHJMV1pWZGhxY0F1YUJwazQ0STNI?= =?utf-8?B?MExXTEdGdmczOENPdVJCSVF0aHE3a1RnVzZrbW5XRmlReERhZFN3cmlJbGhP?= =?utf-8?B?SG10Y3VyNEF2R1ZpdGlKNlZpaVU4WEY5eE1GMlZDbHJ5d01CNWYvODQ5bXBa?= =?utf-8?B?RmV1Q1R2ZkthYXBlZHg3YlIvYzZrbzZtT1VrUlVuZ2xlSno4TEVBcmR0R0VX?= =?utf-8?B?WDhmeVhWNmJsNGxVQTFsSGdMNENwUGdvU1dyTWhYelVhRVBLTU55TXY0amJM?= =?utf-8?B?NFh5SHZwQm4vV2QxVnFhNzYyY2MwRkZXWnRCUXlJWDByaHp5V1VtWVF2bmVW?= =?utf-8?B?ZEo3RTJUZy9EeXNWMGxQcXE3NUZjU0tNcWRGTFYrS0tjV2FlaW1hcWhlbCsw?= =?utf-8?B?U3lBekJhZXd6Z0M5UXBXRHJrY0M0ci9nMDFpMTIyMnU2eXB4bDc2TU44Lytw?= =?utf-8?B?UGR5QlEzd1dndU9NaDBIZEJPSUlQZmZBT0ljMnhzdlZTUXFUMXpQNi9LUXFm?= =?utf-8?B?ZWMydGg2bTNoK2pPQzJkZ3VMMDY0TzZUaWtKQlVtdDNrQnNZeGRQTXo0d1lu?= =?utf-8?B?Vi9nMlJtQ2ZTQ0wwbEY0T0lZa2Y5TEI4NlNzSEVNZDZHME5HM3pkZzJQOEtm?= =?utf-8?B?N3F3SEp1VGRHamZnaEQ4QkF5TkZvN0FydUxtT0dxTmFFYU9Hdmp5b1ExcXBO?= =?utf-8?B?QllGMzhYak9YRHVsR010bnRYL2FUUnVOREk0U0VaSDRPZ0gwNG10ckRXNUJB?= =?utf-8?B?eVROandxU1Ntd0w4dlZqSm15NjNIZEx2WkkyZC85VjV0M2RtN3poZzcxVHh0?= =?utf-8?B?RlN3NHhZYXhBb0M0T2ZJQU9qb0Y0cmt1RzA4UEhVTEtPMnFQMlBRbWV6Z0hx?= =?utf-8?B?azlvdjhpcHRIczYvSFBHL3R2dDZndzh4amRneTdSR2pDRk9VNjJIMDRUY2o4?= =?utf-8?B?c20wUm51bjd0bE4va2dPbmpaUkc4NXVLaU11emFPZkdaK1hOT29hZG05VWhS?= =?utf-8?B?V0YwTDdOTWxodExUaTBkZUJCRmF4azlTQVhWblk4RWIvbkZkOExBRko5c3Zt?= =?utf-8?B?T3I2QWMvVEpjWXNnV2NuRkdFSjViU2thS2VKd0REeDJRT1JWUU9ZYkxUL3FW?= =?utf-8?B?dFZOUW9xMDR6UTN5U2t2aHlVNmRJVitBQmpVUW1mMWpmNVJoblBvWU1YOW9p?= =?utf-8?B?Z2tsRVVUaVA2MVlHSjVvOThVSnp6dm44MmpwRm5CYUpwVUo4T0JVbWZHQ0h4?= =?utf-8?B?UHh4dFJMUGdSYmU3WUVKdENLQ01QNG1sekZjUlREeXFjTWJmNzlzb2JzM2ZZ?= =?utf-8?B?ZDd4ejNsWVNWQ09UUXpESTFmN1dSVXlPR0RsVWlUL3M1Q0FEUnJTRldCUWhB?= =?utf-8?B?RnZLK28zbm4wWnZwWlVUZGppakEwWmxudk8zdDI0N3lZNEZSTGpSeUlXWW9k?= =?utf-8?B?TkluNWE3VmpQSWlpYjhHSjZLWmZqUzhjY2htZmV3QzdPSm1nOGNCNjdHTnVY?= =?utf-8?B?a2RVL0w5R2pESjdKNkF0UG84WEFvaWl5bG80VUZjV1JUWDJmczFuOURkVFFx?= =?utf-8?B?Mnc9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QlRHRUFyQmMvR2c2QWFqd28wNVlXWURtaTdQL21pTGtjZlNEVnRua01lRG9l?= =?utf-8?B?QTFIdWFzaWFLcG5FelhsQmQyajN5aXZoSThjT2lqV0M2dm1SN1AzWlhaTjR3?= =?utf-8?B?bEtUSlA4M3lJYmpjVytoa2drUEgzM3lFUVJuclZpcTVYQ0U2VUdsYnZzak1w?= =?utf-8?B?SjVoM2lVb2VRb0JSc203L25qditpUHpBeFlYVU0rc3hteDNJMkJKczBIWmk3?= =?utf-8?B?R3RobXhBMC9udTdkMDlSd05VQloyVmNuME5MazBpRlRhb0w2dWsxRDNJQTBP?= =?utf-8?B?WHdzYk5WTmpvMWRVamo3Qm9YK0hxZkxtZld1V1RIUXV1R0phZzNYK2hhSFh3?= =?utf-8?B?WE1iSW45a1JOR0VsM3F2SkoyTCthbStpTlVJUkFFSlYyc2NPdmFyeUFYOXRV?= =?utf-8?B?S2R0UTF2a0FiK1k4a1p1aDc2ZzlPR2tnS1RJZDJBeWpvVlhNZlBUTEgrQlR1?= =?utf-8?B?eDlkOU5TMXArNmhmVEtYTnJMakdEVzczZXRXRHRxSjFYeURzNGhZcHIzRU4w?= =?utf-8?B?OXNWenQ5Vmo4ZHR3TFBhYjFpbUtqalVmTnNuUURhY0hKaVgzMkptS3poVlRX?= =?utf-8?B?MjJBRUlmcHZ3RHN3NU5WYjYrWmo4SXc2bUVOZERWaTNtZEhqVjVUZEo0VGQr?= =?utf-8?B?RGo0a0c4NFJiOFZrbnpIMWF3NWRoTUp5VnRTT0g0SGs3SWhTbFRpWTVKb3Mv?= =?utf-8?B?Ty9GZnE1ZklNUUtjYmhxbXkvMk9aYmo3VHJVS0M5di90NGExamhyZHFJME12?= =?utf-8?B?QTNzaGdySTN4UGMwSndjdVo1SGEycHZpSTYzRFhxaGFyTlQzNitndUdZT0ZT?= =?utf-8?B?NFozbUd6MGxDenFDc2c3bFFvdmtVZlJqSjZvNmptcXdGNXBHNUVFeFNJQjNL?= =?utf-8?B?WlcxT2psbndMbXhneVNabFgvOTZaQmdXK1VyaG8wdnFQZWxuZy80SGlQa0Nj?= =?utf-8?B?ZFlpT3JaVTJkMTdROFJGRjZORlMrYnRzWGw3bmhFNVpTS3RwdlBzZHlKdGwz?= =?utf-8?B?YjBkNUxOSytsVG42WkdtS1Z0QU1RcTdZWUhpNXF3MFNOQWFVQ3ZDbEFiODBm?= =?utf-8?B?ZER1ZmhKeCsxa1VSS08vdWlBYWtSRVpmT09taGdQWjVhY014Q0w2ZStLUW8y?= =?utf-8?B?SExCbjF1RFFkMHh5MngyQ3dOT09wRXJLeDArSTBiM0ZuemdYZGQxZVMyWm9w?= =?utf-8?B?QTNnVW4xQkxzb1Z4QmdJSCtVM2xlRlo1ekhYeDVUSldWVjBhV2Z5OU1qczMy?= =?utf-8?B?N2J3K0xIVGtsOCsrMGRkYkt2M2doSzhLclpZVUVQMGxsKzF3UEJMejVFbWRj?= =?utf-8?B?QlU2VmQyZUZVSXp4T3hXMklIRmdvT2tHZ2xvUDlhbFhPdEFJS3BqQVhSbGdW?= =?utf-8?B?V0pIbVRyYm5zN3VHMHp1Snk5V00rRTJxUGg3SnEzWVh1OHRnZHA5YnJwWTdo?= =?utf-8?B?Z0lpUkVlMDBONkN3clZtSTF3YS82MTBmRzJST0xweEF6Ym54c1dYMmhqUUVS?= =?utf-8?B?cDJkUVRiSVE1SEVxQmNlRWQ5eGV0S0VvQTlMb0pTM0ZlZkhTM0N3VXNQNzhY?= =?utf-8?B?eFg4K2k5LzhRb1ptQURYdk8wQVdaRk9qdm4zcVhkbG41MXFQdDJVTUNSVEk1?= =?utf-8?B?QVJFd2d1dUQ0enFzUEJEWkV0M3NQMTN2VjYwbzUxZ1BaWFBRbU9tOWl6eENp?= =?utf-8?B?djkwVzMrbUZ5N3dFTm9NZVFTa3JxNFAwZ3RUM0d0YW56MmxKa0xiSWdOSGhX?= =?utf-8?B?Sm5RWG00eDBHeEMwZjNoTmh3Z0FoUVZXU0NBQ3Z5anFrRUNyQnFYWkR0Z213?= =?utf-8?B?Z1VTc3JhOW9PaDZSbmU2eFJqZml4RmdwN05xV1ZYZnZaaUVtUStHUXJHSzRP?= =?utf-8?B?NWRXVy9wTFdvRzg1ZHFmVU1xTkZSS3RhOVg0QzBLZ0ZoT1pzaHIwaGFsdk05?= =?utf-8?B?cm9pcGJRaTg4ZEVqOGVSNTRuVUlINTZJM0t0KythTy80enpBMmMzbmpvekIw?= =?utf-8?B?OXh1MVArMDBsbkJ0dERCMUZGZ250MmRLTXdjRndGUmMyYTBZRERzQS9WSmpt?= =?utf-8?B?WjJTT1VwYnN1WEtqb2NzVUlQQUhSMnJxdFFRSDVmemNJc1p6STRXbmFCY001?= =?utf-8?B?NkU0V2lobW8xdVZYbFZYTmoyczlpaUZadUxTTDRWcjkxWmNiMTJGL2lPdm4x?= =?utf-8?B?VWtGalp0S00wdUcwNjY2cHQ1cmVxaUJ2K2FNYzIrOXl0SlVqNG5ZV3pxY3dn?= =?utf-8?B?MVdIcFZlMmdKTmh6TUYwV1NRV2xxV3c2bm1zTzl2aXV6cHIrTWFReDhGTXUw?= =?utf-8?B?NEFsOThPSUpqaytIUEs3WExTMzdJWkZPSWFIZzdVZC9YTkN4MGZ4QXdvL2I5?= =?utf-8?Q?hvHgxhZyFGZKKkes=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24cfa55c-6722-4f01-3a01-08de6d6c68d4 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:31.8709 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: S2YPcqPA9GqDQA1B6J+aiCyzZ/imC6skQNS2WOs1STNugTUcTNBtHyfPnnHXKVhfXrq/PCULzx2m3JutGVXu4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 Content-Type: text/plain; charset="utf-8" From: Radu Pirea Add optional support for the two clock inputs used by the LINFlexD UART controller: - "lin": LIN_BAUD_CLK - "ipg": LINFLEXD_CLK The clock inputs are kept optional to maintain compatibility with the S32V234 platform. Signed-off-by: Radu Pirea Co-developed-by: Larisa Grigore Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- .../bindings/serial/fsl,s32-linflexuart.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.y= aml b/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml index 4171f524a928..885f0b1b3492 100644 --- a/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml +++ b/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml @@ -34,6 +34,14 @@ properties: interrupts: maxItems: 1 =20 + clocks: + maxItems: 2 + + clock-names: + items: + - const: lin + - const: ipg + required: - compatible - reg @@ -48,3 +56,13 @@ examples: reg =3D <0x40053000 0x1000>; interrupts =3D <0 59 4>; }; + + - | + serial@401c8000 { + compatible =3D "nxp,s32g2-linflexuart", + "fsl,s32v234-linflexuart"; + reg =3D <0x401C8000 0x3000>; + interrupts =3D <0 82 1>; + clocks =3D <&clks 14>, <&clks 13>; + clock-names =3D "lin", "ipg"; + }; --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013048.outbound.protection.outlook.com [40.107.162.48]) (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 10DF9324701; Mon, 16 Feb 2026 15:02:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254159; cv=fail; b=tdexNI/0t2enmOLHHhMMQydv9U5EQHPlFLiwiWgX7eGPBwgpMeSXPW2qyl+f+XxkY/4269E7zk6sXvcmzey5szlx5hWMBa9rWJgBHdHD/4IWIm3TLswF1H2gDn9MVakAAEvGNapRJ3WnAGyVzxONYF4hHY0oJIX06NcVTJYKCnM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254159; c=relaxed/simple; bh=+uq4kIrqP/4bwmTL4UwpylAjPwAUxpf/S9iVzDqJgKU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=DwzVPj5H8fVAttsia4L20F+Ge7cKpOIbrBgi3RsUmBfSyELmrKaix30tFlcCL7QkVV5L7F8xCIcx3ExWEL9+ncWU8z68x2uBko2VjWQjs1+PSQgW0BggchklpufXq4HIsiY+LyEeKCGzJYdHfM6n1umTZHA296I9G0x2Qlr9+ZM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=I5j5pPLv; arc=fail smtp.client-ip=40.107.162.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="I5j5pPLv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PK3t68qTmtmNe1w3f2H6npfacrW2Kc29XYWBVuISaZrG5fnIPwclle+PmSjKIlNWsNwzYkBh5mPCzBqOFWXGuNQzPCMTEcEkDm1VHwE4+HFqkdLoNUWLUhAGVGWF/PhgEa2CkHhYaHoswx2eTOoX4fOUN+OCJHghHiEU6ckLqi1cbfXSws4euuMj0h0z/1dZCJ72EzwXlXLem7AM733emDXnKwhDDTt9/qFJ0O0OZGExX49N4ilS1ps2Po7vowXQdnfwtZFO6qkT2JvhoKQr9cnGi05fRwITmLQSdu48jx0CO0s/8rvlJMal0EO3TDB3LUch9qWv2CJpZTeEtCLliA== 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=6NzP8tX3IEhSfLw4MITGkuVpPnWel+XLlAHBO5MKqv8=; b=RHsgKl5436UYxa1diLUfMhkVBr7ro9UZmk3ZsVNxqz4vXf/rFM0Kg14smpt01pbyJ+oMrk8QwNIVtfezhkqLduAmb9DARiO27+IPwmh9hEBv56D/3EPtlPczPMQGAntIFJ/X+vqqJBju8DSRrpIBohslsBzkq+sxgo4j3kCD4WuyeBMFOJieY/JH7J5TgzW/33cDT0dMUUg+Q1rbUT0VeDn+tXqBS3M0oeg47wbcQNRKxziaEX+ySwKcqkI4WlL1GZCcXilDIlTJy0f+q/bIlq4AISAW8rYPTKoOKSJvY9ywAyMhe3pxMa5wFga5iL0cjggq+rco8mc0aVSCr/3W8A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6NzP8tX3IEhSfLw4MITGkuVpPnWel+XLlAHBO5MKqv8=; b=I5j5pPLv/w6+HPtu6khPr9YhXaNEN/uKKqQ6fKCX5gEqnEoytEpB6jliXaNFBagXojJ8P5zbiT5BSR0EYv3Ew8R253dbjfO2b1DhugbND5Dj9ouVOK4B12HEyc+xSeC4EOmN5+SqJFQJEXByPSg0iGRdY23I1B6NW+wDYzA9cM82tcxpS3JmQv1L6jHxdj4DroGFLNWXJQjcctDlF66I1jIegqKXJoLU/eIyUSsPshfrtAsNqzssVMmd6rL+H0qw1XpBZNZmSBRviED04e6R27oBvQylbZOOIYMpmufrDx15rln27BFJ5L6fl7BNyCqB+9ji5PygIOtUVTqLKgLe8A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:34 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:34 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Radu Pirea , Larisa Grigore Subject: [PATCH 09/13] dt-bindings: serial: fsl-linflexuart: add dma properties Date: Mon, 16 Feb 2026 16:02:01 +0100 Message-ID: <20260216150205.212318-10-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0170.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b7::11) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: 01227981-c6e4-4d57-88a1-08de6d6c6a09 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?M0xKbWJsbVhZSy9KL3JVZE5WbjlVeDBGTk9LanJKcGc4a3ZuZlZlZ1BGYldF?= =?utf-8?B?eU9iUkRoY2ZBTk12bWx4bS82ZlBSZzB2bWJzemowRkJmNmpXVVdmVElzOVY1?= =?utf-8?B?bjBJN0M5c25jL25Ccjd1d1ovaTBGWXpvVTlZQVQyTGc5OThrbWJLc3kxVHFv?= =?utf-8?B?d3BBMTlYMHF3WkJKWURnekczRXdJUEUvVU9qUmRSZEdTZnhTalhyM1lUaGpF?= =?utf-8?B?dFdzK2pwY1hSRHU0TnBaSjZaL1ZOdW96THBsckxLTVdvRjh3SDdrcURkcUFx?= =?utf-8?B?YWZiRFh1OHlBblRDWnM1RG1DV21hWW5lZWxPeXBCMnQ1ak50WXJRYTRpU3VK?= =?utf-8?B?SWJRNCtjU2pvenNSS25ieEROenZsTTFEQThURldxM2w0WDdtV3kwbVBnQm5k?= =?utf-8?B?RmI0aENZYlh3U3NVQUJubU9ZTVoxNXhxbHpiR3JpekRaK09ieS9zM0VPN2xU?= =?utf-8?B?OTJBMDdUdUZSTTkxc1EvQWM5RUM0NWNLT2M5WGVxTlM3V0tTZGJ1ejJzU1dU?= =?utf-8?B?YURmK01URlpkSmY2bGU3U1ljOU5leUZBVnlmSG53WGhkZU9YcDBob2hlWlpw?= =?utf-8?B?MWtFc0ZoVWF3UUdIVEN3czg5UmUrZTU0eVp1eFZBNkorcmljd3F3eWtCUGhn?= =?utf-8?B?SXBBS1BxMlZBNzBOS2FHYXR4MTlidzM5OHdxR0JPZ2h3SHlJbHFrYlBJNjhx?= =?utf-8?B?aVhqMnR5ZEwrYk03cEhCendVZHdSWmlqMW5kelozZjJkdC90S2M1a01PeGMy?= =?utf-8?B?dVkwTWVpUXdDNXdVWU9VV0F0MEM1ck9FU2JROUlkTXhiVy9IcEUreCtSWFRK?= =?utf-8?B?QW45NVJGODFWS1Uxajl6UmxhQWk3eUF2LzQ0NHNLQmd0L3ZPaDdmKzhGWWM3?= =?utf-8?B?dDFqbUJka2VESmlZUVZKM0JvVGFOUnJWR3NGcy8zT2VoUzFJT2poSWpaQkE3?= =?utf-8?B?c0o0dW15MWpPaWZ1alcxcnhRSGEzS0FJMkFMNHVSdkZhd3g0Y1g5b0NBQlFz?= =?utf-8?B?YkRGcHoxOHFqWXM3YXVpRG9uOEFPVjF1NUtnTm9DUnhTZUlkM213QlFxTlQz?= =?utf-8?B?eXMyTHM2Z1pGV2lmeUhaWVh1Y3c5bktCV2J0ekFKR2Q3ZE5zYlVkbGdaUFZ4?= =?utf-8?B?UC9YRVJZNGhWZnFJUWc1NTJwUGE5LzNYNXcrZTd2S09GclpzN25Mb3NGc3dD?= =?utf-8?B?d0llV1paR2ZHZUZlajU2RmhzOFJUQlR2Q09Qc1o1N3pKVE1LUHpjZTVCUDJV?= =?utf-8?B?T0pVTExnbk1XT2hnc3BtRkpVd1dKTE1uZ2hVTXc3Z1Z5VWRsSm55cU42QWxa?= =?utf-8?B?QVQ5dGpnakU4S3dEZ2xYN0xwYlgzS3JDWFVQUnFubElSUTg1c2NzSGk2UU5z?= =?utf-8?B?eDZrcGpTY2FKMmpzM21YUWpOL3FKMEV5WldtRk9QS3FnalNCWk5BejZOYlNC?= =?utf-8?B?d3k1cDBTWGJKY010ejdoQWFyTW5rL2d5bjczRkcwWTdNSTFBbmduSldsZW5y?= =?utf-8?B?MHNOd2ZaZ2FoSzBCUG5JV0ZvZHl5U1lEamdSMVh5dWVXdUhrbGZqazFPRDdG?= =?utf-8?B?Wm1LSlgwSXAySW5CeHlnMno1Q2NzdTJlbFI3TlN0QXdBQUxtTWtsaC9UcjE5?= =?utf-8?B?WGpWcFYvcTJiWDcxK3RJNjdXcDRLS0xPS0RpN3pNa0lUQUFLdFV3RnNBcGgx?= =?utf-8?B?UVczNVNzNTNaVGtPVHVDa2xLeitlK2EvU2lUbGZLbEd2L3dqK1R2eGpTaHRH?= =?utf-8?B?ZEVIMk9SWStTaWFiWlg1aEhBcDYwajJqcXN3dHdVeUNKd0ExSVVhdDFVblpV?= =?utf-8?B?YzE4Q2xJbm9YUmEvR2tqQUMzY2IveEkvRHA2Z00wNkJRZm1zSnZmL1NsL1NR?= =?utf-8?B?alhBeWEraStPeUhPb2JPQ1g1QzlRSThFVUxQUmFUcTQ0N3hHVmZaaGtqL29q?= =?utf-8?B?dVFFaEU5eW9iV0pVVHQ4Z1lMKzIyMDZPTkp5SVY2WDJSd0tiNzRURnFxdzYw?= =?utf-8?B?akVNTWtjZlZkbHcyQXVaNkYxUDlabVA1eVJYYWFlR0cxTVVadXNIMWp5bUVw?= =?utf-8?B?NzRTR0VObkFCYjRvY2ZmZUtMRlNodzdXczh0UFpPSDNZR3Y3SWVyR3ZuYTFw?= =?utf-8?B?V3VZT0NZVzlwSEdia282SDVkVUZJdm03SlVHS3NYZXFnYWlZZU55WnNCZTJt?= =?utf-8?B?WkE9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bnpOY1M1QWhBQTdkTFJGRGFzVTFNWiszQ052MmJYcHpaSUNuNDA0d0V1Qkpw?= =?utf-8?B?dFI5Z1Blek1YWDdMS3FGeFlaM0lZM3V3bXY1KzJISDFNMll4Z0lvb2MxMFB0?= =?utf-8?B?RXJqWWV4bFFHck1Zak1ZWnR6aWZhbkgrN253T05yTFpqK3lhNlNIUkE2ektT?= =?utf-8?B?djZBQ0JGQzA3SjRGOXEyR2hEM1RqNnM1VkwzOGwwSnh3Qi9YMG5wOHhkYU9o?= =?utf-8?B?UFducERxUElMQlY3VTNFTXozVjgxZzhDNlA5cTFQbDJQYy83N24rbTBBemU3?= =?utf-8?B?cmZxY0RLeDdLMi9icHZZYmo0Nlo2eHcvU2U0UUpVMTA1QVJNenVwQkh0cnV5?= =?utf-8?B?bkhLeG13NU1hVzNFTWc5VGJqQVhVdUdpQ3NhazFyeTVIcjRrLzVqR0NYKzZP?= =?utf-8?B?T3ZOeFZ4VTF5OWhpTzRyQzh5Kys3TU9NZ3BlQUtMYUpXNkk5UDVacUlBaVYy?= =?utf-8?B?OEdXRVNCQ3F3MnZFSGJyaWtZRXgzMEZDdUlDK1hIaG1Pc21FOTI0dFpOalA4?= =?utf-8?B?NzFhZUZ3MmtQTVp3ZzdCOVR0YWpSajV6ZkNLUThpZmdkcUQ4QndDSEsxa3Fv?= =?utf-8?B?ZHhFQlVidjZ2dHdNYkI2bzNleHU2c2Z6RXM5NHVHQVdpMzRZYkhsQmlXanVG?= =?utf-8?B?a0ZiY2owOFpvYkd4VER2MzRBZ2JVZzh5VStjTGtFVXFsUk1oT3Z0OVBiUW8x?= =?utf-8?B?QkxWakJuSXE2d0ozTk9Ta05KRFcwWHFnNGRseXVLSVFwQm9RSzJKK0I0OHh3?= =?utf-8?B?RWV4YWVrVmw2MmlnZW0yaUZsUm0wL2FlekJkNnB2WE14eWxkRFFHbTVJMmlV?= =?utf-8?B?ME5yeVlITVZCeTJhZEN0WU5RZWxJc3R1RkJsTm5qS0x6blVwV3Y1Mi9zVSts?= =?utf-8?B?LzVTYU05dWt5djdRUWg5Z2YzZG5ETnpIVkpiRUhOOVBOWEZGaU1jRGpseHJz?= =?utf-8?B?OHJ3dkZuYUE2eGppOXhMZ2NxLzFHV2JGRkxaSnRpeURwb0JvUTdFeFFsS0RG?= =?utf-8?B?TkFaNjhEMjBDMmd6RTJCQklaZURDbjJrU3FFZnBrczFWQWRpeGYyUExGN25O?= =?utf-8?B?Znd6VHhFRTdVcVBRZmQxaHQ5Qk4zcTU5NVRWa1ZTdVhSaGxUaW9sUUZBNE1q?= =?utf-8?B?NjZjeVRTOVFhYjlJZEpJRGNQQ3RyTVpqMnZCQk5KOGJISFl2V2Y0QlpGVzZZ?= =?utf-8?B?SWtBeGlVTUhPWmtkNU02bFVOTW1QdDh1Y1N3eTdtNGliZnNVRk52MkdycmRo?= =?utf-8?B?aDF1cG8xTlBJZlM5RjB3TzEyZ1NFR0JiTzBhcXpTdXlKUi9ZSEZzcldnaDNN?= =?utf-8?B?cVNXQkxab0UwYmZodzJlbml1ekl1Y2NqM3QzZ21PL2oxVU4vbmVYalJEYWFx?= =?utf-8?B?S0tDdG5vM0RESzYyb2N2NHphV0R2V0NzYWNzNnRRK0tFMlNIMTRGNkRvNzBj?= =?utf-8?B?QTJ5cStqYTJESllqWXFxZXdJRnhSaFFsVVdqU3ZqZElNakhXRXNHMndManNC?= =?utf-8?B?czVvcDdmL3VCT3J0VnVmamNseGZVTlRDd2ZiK2s1VFhKVndVWmVmMzhhdHZC?= =?utf-8?B?R21iVC9BaFE4WVhqVnNaTHI5akJvOGNGWWJqOEtEU3NzQ0Zpb3F4dk5nQVdP?= =?utf-8?B?NDRaNEZWenZ6SkYrVms1bWF3WnFWRWR4RE1mazMzUGF1ZlVQYXB6bk5UZ1Uv?= =?utf-8?B?dmZwaDh2SnJBN3FqS2dZMVl6Q1VQRUlPcW12U2NQUUR4WFhZa2RzQUhWdmRi?= =?utf-8?B?SGE4UndIaXBQbzM0dEdoV1pVcDF0RWFCY1VjczVLNEZtYVJZc21LNVNoMVoz?= =?utf-8?B?bHhCbTNBMjhkMTZaMmRKQ00rOXNEUnpuWkJiV0lRYkFoTkI5RWh5L3lldUxU?= =?utf-8?B?ZnM1Ny9UU2xpSngwbjlYYW4wcVJBM2F4ZnVzQ3hEUFhyZVJPSXNpeVRDbVpX?= =?utf-8?B?bm5GamdEWm0rWFdsK09UZllONndTV3E3NnZTTjlhdTZPZGs2ZU9BdXpHbGQv?= =?utf-8?B?c216SGMyTFZ0dlhPQ29ING03aTZVbU1qSVVUdWJQcUxBNnVHbkdXMTdURXlK?= =?utf-8?B?MWhxMk45WmhTOC8vNUppSHRzNjlIVkxmSGtaSXdyenRmeWxpLzJtSE5IcEk2?= =?utf-8?B?NXBzTGMvZHVNNmh2ckFLQTFGMmpxUklqRzFtTmo0b0VmUG9kRDh6M0g4RE9r?= =?utf-8?B?SzZwYlZhcXF6U210Vm85OHZxNkNFM3dsWWVJZHVuNVVkOUx5WGJ0ZWtIaDJE?= =?utf-8?B?UEFWL0gxN2lYL2RSTExJcEkxeUVSSzNGNWZrZEVWeTI4QzFpc2FqY2RnOGdW?= =?utf-8?B?R3NNMnE5b2hudHc4SjlQVElkaUl1ejljcGdNdGhWbCtZNkR6S0pHMER4alpB?= =?utf-8?Q?/pss2IVf9PlgpzPk=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01227981-c6e4-4d57-88a1-08de6d6c6a09 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:33.8411 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2U5FxV6hRvBFz4o5pjF1dHJvdqJfgzH5Nqa7jMARbseDOfBo+egsBTml/qQHh5z+TzJoCZwie20ttQgYJ0XX8A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 Content-Type: text/plain; charset="utf-8" From: Radu Pirea Add 'dmas' and 'dma-names' properties to describe optional DMA support for RX and TX channels in the LINFlexD UART controller. This allows the device tree to specify DMA channels used for UART data transfers. If not specified, the driver will fall to interrupt-based operations. Signed-off-by: Radu Pirea Co-developed-by: Larisa Grigore Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- .../bindings/serial/fsl,s32-linflexuart.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.y= aml b/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml index 885f0b1b3492..317f9ba41c06 100644 --- a/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml +++ b/Documentation/devicetree/bindings/serial/fsl,s32-linflexuart.yaml @@ -42,6 +42,16 @@ properties: - const: lin - const: ipg =20 + dmas: + items: + - description: DMA controller phandle and request line for RX + - description: DMA controller phandle and request line for TX + + dma-names: + items: + - const: rx + - const: tx + required: - compatible - reg @@ -65,4 +75,7 @@ examples: interrupts =3D <0 82 1>; clocks =3D <&clks 14>, <&clks 13>; clock-names =3D "lin", "ipg"; + dmas =3D <&edma0 0 4>, + <&edma0 0 3>; + dma-names =3D "rx", "tx"; }; --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013048.outbound.protection.outlook.com [40.107.162.48]) (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 3B99E31B130; Mon, 16 Feb 2026 15:02:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254160; cv=fail; b=NsmVmGrIL18GU5l5fMRSPwkX/cmRDcvAQMl2Emw9jDeN7erCpE/gmtJEbTduX/G8en/FGQWmtF+qLoaa6JkpTEjM0psYXihHsK39pyISDterXoPSuae/2MJ2ERLN2/jPHgY7T4cjA247+J7mWtWcnyWZbqNLB7IlCNDvMfO7K/Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254160; c=relaxed/simple; bh=f0krR2UtJ4SpyelnjXXdZ1OKkQNrwvm3mu3qrFPK9vU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kuabparHLQtsDj909zRvlgxl+5wnQUFbE323sOFCUoHpxy9GPB7R1JeKXmz6g7dfJSe7Z2/nmJw/ZJYk0u+vhACONWEGusKLnBhM2hwsnyxerteUSyJCwI51+Kx7ljwHJrEW23rj4w0kY5gwevfte5j3linvpWr/URRd7yh+ehU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=Z6cmkUP1; arc=fail smtp.client-ip=40.107.162.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Z6cmkUP1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tBIEC7iEUKlIEDVrucVzYlKnSAhH/3/vD1OylJHMilQuiAkdL2ZUHrwmnfQgJS4WbBpYhBuUWSEHQhDqBqTWfAGtCfGO+yXBSUTzulCg8N+2d9z3DlsqCYaEfu9C9Wdi22/yWCCEZIlilkTJjNIo+mNdRq6f6NQKM2xRNjx2YWPUrcLKeIn9ISxOJsixIK+0eEpXcv1HGb7PVrclib/XuGaZjL8ApDbl2wA22QOyLvqDh+LNhKZsLMccrXMdGaa1ZKSLLQo1CVcIgfuHX/flTrgMHqGiSIP+b2zOJPqXj7NuWilwxbq2tF4eTP+BWZ/g8jJ6H2km4O5qO9hh3hGiNQ== 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=AdfgNxiytRrBrIJOcW1dBjEiE/p8rtwowDMe5LTFapg=; b=r/YOCYz5pAjOPe8yIwgtyPLKLirZh2QWoQXkyxnQynVTSgCUMQbqKA0GMToGQgdmcCchmbQmyFM41zKGD1lnr1e4/wKRsBst0xUn2Kn6yl4BzDbLP7FoUNYyd24gWgnr1F3hM9ZMrkeu26ltlGvNplU1amL4q7a304HP2smm4wpTcDrsBeROe2Y9WZ8oOb9/BFBjsscZHISZ4SidXfs5qQVnxCXJMM/FK+ypXcZVQfuoBCABM12vetrN3A5h0gWwEDn6iQFBMy0VOdi4YQwUp8wVntMdPmM4lEuSP6hAJD9F77S/zXeuNd2s1egFjEkaxgjBljza87v4JoQyuDn/Mw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AdfgNxiytRrBrIJOcW1dBjEiE/p8rtwowDMe5LTFapg=; b=Z6cmkUP1wf7nNmjlhajQIobJzPxaScHGvgZlHdRWVOQ40GvimK11S6NHln2OR2wwsK6775h9Atg7DFntfe5gwos5rs+xOdLxpQ0cpE8rVExnuRIn5N4unlkCBDYkQvTMk8HBGGVLIJv1zQztcP0uGyPDDtauqq9TsKyqgTfpjbFtiEg3VYn0O3BiVwF5EoaIfqlobc9BHDGxWVq7XuqX9i3IafcFclgq7Rn7sPSfz4uzcQgFvi0UYfx/4Wed8J0CD4wd75GmyNXJgANkupZtU4a5GzdbaaHYF5ZNBLoF77290bflkVAu2vltGHJnOYDdRGP/wDwu3suuPVOxZnIoYg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by MRWPR04MB12380.eurprd04.prod.outlook.com (2603:10a6:501:83::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:36 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:35 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Radu Pirea , Larisa Grigore Subject: [PATCH 10/13] serial: linflexuart: Add support for changing baudrate Date: Mon, 16 Feb 2026 16:02:02 +0100 Message-ID: <20260216150205.212318-11-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0173.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b7::16) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|MRWPR04MB12380:EE_ X-MS-Office365-Filtering-Correlation-Id: 85100967-bf1f-42f8-b5bf-08de6d6c6b28 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|19092799006|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TTB5cXBwWUxMOHRZY3NUcFVhcHVTUERNV1ptRG4xYkh3WmZnMWNuSFZSQVU0?= =?utf-8?B?Z25XT2NXQ2JoU1RYNFpMM0Z2ek5TZWI5WWI2LzM5ZG1wci9jdUJkSXVkaFNx?= =?utf-8?B?QjYzckRHOFVYcGgwdm0vUVNlOU1OY01YZGdaWGFGRnhjR2htU1dLUkYzRVFV?= =?utf-8?B?dkNkRWtpZzlUS0NoZncyaXRmc3lMSUFFbVlQTjhzNEdBM05odEo5ZUM1MzNl?= =?utf-8?B?Vk5uei9RRWRKWXpGcjVYQ2dwQ1NNRStBaHRVMW0vRnVjb2todTFSNUtmSEFK?= =?utf-8?B?M1RXZGtrYk9oVmYrNHgzQnFsWVJ6aEMrK3pkNjhLYUxMN2NWTWp1ZjJhUWlB?= =?utf-8?B?T3ppajdxaUNnZ1hKLzNBV29CVEJSVm1xR2E0Uk04b09zN1pQMXRDT3NXdWg5?= =?utf-8?B?ai9uNWZzejFMT28zOEJkazZZL2ZpbmxzckRxOXNrYXcxOWk4bDF5OWRhUGI2?= =?utf-8?B?SnF5cDUrcUFRd0dHRkxvY0ZZZ1ZWaStISlpBSUNnUWpQY1pDeElJV3BVN3c0?= =?utf-8?B?eWZyMDFoSVcxbUFkMVJPbmpxWnd5dXdZUSsvSnNtVHJEYXZWU2hhSHNoNjQ3?= =?utf-8?B?Qm5qcmJOV0l3Y1NKclJQeXdRRU5qNGVUWVNVelA5MXZreDNadUo1ejFGUmsz?= =?utf-8?B?Vk1FT0hHQ04yQzljR0wxbXpYeVVrWVRIQUpvUnEvU01nWEJMSFJZRU1EWkIz?= =?utf-8?B?L0RTbC9nS0NqaDB0T2tvZ08rcVJkZUI0UE5BdTRURHNBU3FHV0ZlRWozK2p0?= =?utf-8?B?dTQrcUI0eitFMmZtZ3lFcFkrUFhoR3EvWmlublJzRi9GZHcxV3BuT2NYSmk2?= =?utf-8?B?T0JDaHAwY1YwRkp5LzdrY09PblR2YmROYWNhdUVlazVzRWJ2dS9ibnVkTmhy?= =?utf-8?B?MW5aUDV0RkZuYjJNVWxXalppMFphNW9ZeEI2VjJQSmpzbDgyN2V4R0JaZ21l?= =?utf-8?B?VksxMTI2aDk5Rm9ReHNVK1JqOW9KVlRwc1ZuUC9pSUJ3L01SdEJRa1J3bWY1?= =?utf-8?B?K1ZocW1sVkZ1ek9mb2hJOGZHWFZoUlgyZElOVUZJVW8ybDFMWWdSWmF4bkE1?= =?utf-8?B?SWhyTWpweTJBSzJ0V3JkRTIvZmpJZWNnRnRzdzQxZWpOenJ5SW9BTGxZOUN5?= =?utf-8?B?RnJOR25ZOEJTK0lwY1lnaTRpbHMwek4rSjE4NitCTVBYenVPbzRDYVp4MjU2?= =?utf-8?B?b1RIZXhFMGVHMVlYbHgxNTVwVWF0OUVaVVQvZSszSlMvaVV6clB2ZkdhNDN0?= =?utf-8?B?aTU2VTByMVBVOUdoNzZxQlJ4SmpnYjd1L2d4ajBPYno0dkRNSy81T2xQZkFL?= =?utf-8?B?YWlNY2NPa1FIWkt0L05xSC8vUVlvaXEwZG0reG1uN2NvZk5mMjVwSHdnZGNk?= =?utf-8?B?Znp4ZlBGUnBLcFNHUkpFRjRyNHVrY2RUQTVObGdoR2JlQW9SK1lvYXRSYWQ0?= =?utf-8?B?ancyVExoQUFhRXB6YXVRK1pEcjE2NmJucWtNODM0T0ZOWFJOUmpoQnJIVDZH?= =?utf-8?B?NytTcjU3N2JMUWt6S09RZi8zbXI5eDZwRDRpbURPUHgrSTBXK3RLWm5kWkt1?= =?utf-8?B?UU9DU1dxT0VpMmpjVk1tRE9OQWR3bXU5UjQ5djBCa0F3cjRYN1hVSTlsZi9x?= =?utf-8?B?ZXo3WHR0Vk0wME9mdmV2VTJmNGRFeU5pVEkxNVFXY01rTVcxSnhaMDdaMVc5?= =?utf-8?B?RXluc29YcDVYbmtIYi9hSUZDTS9hUGRMSEdvVUNxblNhVGg0NlpqTGxyNHFD?= =?utf-8?B?c0U4MXhWLzBHdEZvWitJS3VxQnFYemYzeDdLTTZXNjB2TFNKYTRsVVVFd3l4?= =?utf-8?B?RFByVlN1WDZ6aE9Gc1UrdzlOdFAzL2xKTk5PMTVtdXFmazBrM01JTk1wdHN2?= =?utf-8?B?SCt2eXBzc0hZWkRuQlArLzEwZzNsN204T09zWW50ZFlUY0ROUVdDazFOenYr?= =?utf-8?B?VHJSSDVUVWZHc1NoZWsrSzBoVFBUa0JLQnVLcUhqanhhUXRhMGtSRVlNU3Fx?= =?utf-8?B?Y1BZaXcza0EzNzRDdEtGQStkMHBKajJiMDFQMVhpWENsV1hDMkRlcTRCbEpI?= =?utf-8?B?a1RiZjRoWkdLQnNZWlN1QjQzeTUzdEM2MCtoVDNnVHQvV1h3NDRObkk0VnNK?= =?utf-8?B?ZkU2TE53cVg3eVA2Q1pBSnVOVXcwWHZqNHpsUDY1RUQrNUg2elNVMlVDQTd6?= =?utf-8?B?M0E9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(19092799006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Rnd2UWhVUSsyU2NKNnFkclFONDRyZndKVTRlK29YNlJwemRNOXo3aFBJTlpZ?= =?utf-8?B?R1MxSVY5TTlpc3lwNFc0UWZqRktWYzl3V3V3OTZVL1ZiY09KU2hsVk5HdFVD?= =?utf-8?B?Q1dVeG41OTdOYWpBOUtQbFFSUlY2MzNpMUpkUEx4UXdpaUYyNFUrekF1Njhn?= =?utf-8?B?MEJJeHNISklzZmJwV29GZDk1TDlEdnhhTjMxRzFKVUFYaEoyL1liSGJ1aUph?= =?utf-8?B?di9EMEdDK3doMzBRWnRSZFdhZjE5a1UvcHBCdG52bXgyS0lCYW9xVkpUbXJG?= =?utf-8?B?bXhFa0IvVGUzMGNaTnNFajVyUEI1ZE1zVjEwYmZZMEJxZ0FOSFJOQW9GNnY3?= =?utf-8?B?MTVjSjZhNVphZDRTL1VRbW5qKzBCMGNudFJqcUl3WkpRY3VDUkkzV2lRNGlz?= =?utf-8?B?SDhUdFVLbnNicHFWV21qMVFOM3NkVXRRMjQ2Zy9ET0JhN3F3RTk3endCeHo1?= =?utf-8?B?d3Q5WjllalFTeTNuc0VaUGRqVTRuRzZjbXdhWm1EbEVXcndVTDZtS3NsbGI2?= =?utf-8?B?ZjYvZkdpY00xN21mUlVWR3VpSm0rNkloZWsxVkliNWdVZVg2eE5KdHJ5QS81?= =?utf-8?B?Y3lYR0trN0pzbm9DQ3ZpRHM3dW1GMUFMYUl5N1gydHFvZ0dBNUZQenQ5L3pY?= =?utf-8?B?SWJIRjZENHV1UWROVFowYWhJdTJGSWQveGtJS3NOejZ1N1h3blpWSjYxOHNK?= =?utf-8?B?OG5nWHBNLy9wTjExSFI5SmxXcGFjd2Z3RFo2YnJBbjhldVlXaW5iN2FZQnBa?= =?utf-8?B?ZmUzYUg3WjBra21lUkI1RTQ3bUtXOFdpUFdGMDEyQktuVW1FKytRMjlJeTJN?= =?utf-8?B?NnFKZmhLcFNtSC8vRGMxcHlhNmtkN2VaZVJMSDk3bTdBOWJqREI2Uk4rQnJS?= =?utf-8?B?Y3k2Z0lqSHVMbWN6OER0UWFhNUwyL0JuUzkxdHBQbGVHUm5URDd0ZzU0RjUx?= =?utf-8?B?YU4yejlMRStKaTdCc05LYkJEekQrM0N6SnpRQTRNKzVkc2ZObUZFZFBwL3RM?= =?utf-8?B?V09jVHN6NTg1NVdiSmtURkRvSjNKNVFnRGZ0UXE4MitoWExSRVlnb0Z6OVhm?= =?utf-8?B?S25IT0dTUjJMN200QXExTHpvWkEzbS9zUzV2akxwaGtFcUNsM1RaaEw1WmtS?= =?utf-8?B?L0RiTVppZ0Z6UTRQeEZlQzVsSmFSblZ6cGdPZmN1K0RmWXBnaWh2SUt3NFc3?= =?utf-8?B?bEovcWtVZFRmcElLcjBVOHN3K0Y4RXJCVUlMS2FBdGtJRlhqcmlXRHJ5UURG?= =?utf-8?B?RSt6UzBqbzVRaGV4c0JDTTRGdWt5eHdicUtYdjRacytLTWJvRFFiZzdQUVh5?= =?utf-8?B?a0cwY0RqaXRqSDg4RGliZm5EQm1aOWk3ZURmbUNjQUowVHVvZEQ4SzVnc0VX?= =?utf-8?B?eCtMOG5CNHliQjQzaTNGZ2cyendiMDNBaVdsR0t2Qkt2OGgzTHpIQS85cXB2?= =?utf-8?B?MU9ncVp5VDVLL3RrcGJ4QThWemViSVp0VGdITVljNXl4MlJYNUozZUoyUEtB?= =?utf-8?B?ZW9UUlBTenlUc3Vyb3pURTlPZjZBZnVJVExmc2JQQlV1UDJ1bTRPUEJHUHln?= =?utf-8?B?RVkzRWk1R1h1Y1BNQ1VLNnVxS3Q1bE84alZLcEhxNmdlZlRiNmEwZU80ckVn?= =?utf-8?B?S0ZWWm5xMGpRYzBTanBaOFdNcHZYNDRldzArRkZhYXBJZ0hzMzBqaDNKVGYv?= =?utf-8?B?eGxnVnFtRmw1NkN1K2x2Vmtacmc3S1RlV0ZMb3UrN2R3UnI3T2pvSC9uZVpS?= =?utf-8?B?MCtDR0Fpa08vbEtCM2xqd1o4ZjBvTDJrcy9qMVI1OG9uREprVzVHd2hVaWhx?= =?utf-8?B?MHU1RDlNM1QrcE5TTm1Xay9UTHJJdTdaS21qMDlPQUhyZ1IxaDNjUWY0ZXJw?= =?utf-8?B?VTg4Y3NvZGlqVEIxN2lySERIb1doaWcxRDd4dUg5RnNJYWxXdmJPV2I0TUhQ?= =?utf-8?B?aGZGc05iM0xNTXlLMmFDbURxbWhMWWdTemI0V2pLMEcxMzFQSHljekpFaS9h?= =?utf-8?B?cE5nTGk3QXNnaW5rbEpoMVkranpTdWMybWFRMlE3OWhjL1VrZDNGOWJ2QUNl?= =?utf-8?B?WlhPQjIxbmwrUjNCTHhMQzVOWmM4bUdDTnA2YkdNbjlGdHdqVHd4OWdiTzZR?= =?utf-8?B?TlBNZnM1SW14UVlvWHFpT3BVUHpNelhHeWxzdEpjM1NrQk54Q2E0MlFIM3FQ?= =?utf-8?B?VkYvZFZIQlVpaDc0THhkdlhGbHRPRXFHRVRLL1FXa2FwWmFhS2txblJZZTVB?= =?utf-8?B?YjI4VFJ6V2FHWjB2ZHM4T1hrL3BhaDV3N09CcDZoRHdzTFZjUks2MFpmcXpv?= =?utf-8?B?YkVMcS8vQUZzOWEzRnUvWjZpOUI4NU1JR1VKSlArYlNkUFJnZGtkK3RBeDUw?= =?utf-8?Q?c1ZOBdjcTHNLJ7ps=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85100967-bf1f-42f8-b5bf-08de6d6c6b28 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:35.7246 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: W4osijy3xsUhiZJNegx+DEivojxb9/QlUZPFXTlyUX9urENP9oF3Zcu4BgA6We301M7k2QNqBc/QiMSpsCitFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRWPR04MB12380 From: Radu Pirea This patch adds support for dynamically configuring the baudrate of the LINFlexD UART. It introduces clock handling via clk and clk_ipg, and updates the linflex_set_termios() function to compute and update the baudrate related registers (LINIBRR and LINFBRR) based on the selected baudrate and clock rate. Baudrate is calculated with the following equation: - When UARTCR[ROSE] =3D 1 (reduced oversampling), baudrate =3D LIN_CLK =C3= =B7 (OSR =C3=97 LDIV). - When UARTCR[ROSE] =3D 0, baudrate =3D LIN_CLK =C3=B7 (16 =C3=97 LDIV), where LIN_CLK is the frequency of the baud clock. LDIV is an unsigned fixed-point number: - LINIBRR[IBR] stores the mantissa. - LINFBRR[FBR] stores the fraction. This register isn't used in reduced oversampling case. This feature is supported only if the clock properties are present in the device tree. Signed-off-by: Radu Pirea Co-developed-by: Stefan-Gabriel Mirea Signed-off-by: Stefan-Gabriel Mirea Co-developed-by: Adrian.Nitu Signed-off-by: Adrian.Nitu Co-developed-by: Larisa Grigore Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 124 +++++++++++++++++++++++++-- 1 file changed, 116 insertions(+), 8 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index fb5f325416c0..36c8f90d975d 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -3,9 +3,10 @@ * Freescale LINFlexD UART serial port driver * * Copyright 2012-2016 Freescale Semiconductor, Inc. - * Copyright 2017-2019, 2021 NXP + * Copyright 2017-2019, 2021-2022 NXP */ =20 +#include #include #include #include @@ -131,6 +132,22 @@ =20 #define PREINIT_DELAY 2000 /* us */ =20 +enum linflex_clk { + LINFLEX_CLK_LIN, + LINFLEX_CLK_IPG, + LINFLEX_CLK_NUM, +}; + +static const char * const linflex_clks_id[] =3D { + "lin", + "ipg", +}; + +struct linflex_port { + struct uart_port port; + struct clk_bulk_data clks[LINFLEX_CLK_NUM]; +}; + static const struct of_device_id linflex_dt_ids[] =3D { { .compatible =3D "fsl,s32v234-linflexuart", @@ -421,6 +438,19 @@ static void linflex_shutdown(struct uart_port *port) devm_free_irq(port->dev, port->irq, port); } =20 +static unsigned char +linflex_ldiv_multiplier(struct uart_port *port) +{ + unsigned char mul =3D LINFLEX_LDIV_MULTIPLIER; + unsigned long cr; + + cr =3D readl(port->membase + UARTCR); + if (cr & LINFLEXD_UARTCR_ROSE) + mul =3D LINFLEXD_UARTCR_OSR(cr); + + return mul; +} + static void linflex_set_termios(struct uart_port *port, struct ktermios *termios, const struct ktermios *old) @@ -428,6 +458,9 @@ linflex_set_termios(struct uart_port *port, struct kter= mios *termios, unsigned long flags; unsigned long cr, old_cr, cr1; unsigned int old_csize =3D old ? old->c_cflag & CSIZE : CS8; + unsigned long ibr, fbr, divisr, dividr; + unsigned char ldiv_mul; + unsigned int baud; =20 uart_port_lock_irqsave(port, &flags); =20 @@ -532,6 +565,24 @@ linflex_set_termios(struct uart_port *port, struct kte= rmios *termios, port->ignore_status_mask |=3D LINFLEXD_UARTSR_BOF; } =20 + if (port->uartclk) { + ldiv_mul =3D linflex_ldiv_multiplier(port); + baud =3D uart_get_baud_rate(port, termios, old, 0, + port->uartclk / ldiv_mul); + + /* update the per-port timeout */ + uart_update_timeout(port, termios->c_cflag, baud); + + divisr =3D port->uartclk; + dividr =3D ((unsigned long)baud * ldiv_mul); + + ibr =3D divisr / dividr; + fbr =3D ((divisr % dividr) * 16 / dividr) & 0xF; + + writel(ibr, port->membase + LINIBRR); + writel(fbr, port->membase + LINFBRR); + } + writel(cr, port->membase + UARTCR); =20 cr1 &=3D ~(LINFLEXD_LINCR1_INIT); @@ -760,17 +811,52 @@ static struct uart_driver linflex_reg =3D { .cons =3D LINFLEX_CONSOLE, }; =20 +static int linflex_init_clk(struct linflex_port *lfport) +{ + int i, ret; + + for (i =3D 0; i < LINFLEX_CLK_NUM; i++) { + lfport->clks[i].id =3D linflex_clks_id[i]; + lfport->clks[i].clk =3D NULL; + } + + ret =3D devm_clk_bulk_get(lfport->port.dev, LINFLEX_CLK_NUM, + lfport->clks); + if (ret) { + if (ret =3D=3D -EPROBE_DEFER) + return ret; + + lfport->port.uartclk =3D 0; + dev_info(lfport->port.dev, + "uart clock is missing, err =3D %d. Skipping clock setup.\n", + ret); + return 0; + } + + ret =3D clk_bulk_prepare_enable(LINFLEX_CLK_NUM, lfport->clks); + if (ret) + return dev_err_probe(lfport->port.dev, ret, + "Failed to enable LINFlexD clocks.\n"); + + lfport->port.uartclk =3D clk_get_rate(lfport->clks[LINFLEX_CLK_LIN].clk); + + return 0; +} + static int linflex_probe(struct platform_device *pdev) { struct device_node *np =3D pdev->dev.of_node; + struct linflex_port *lfport; struct uart_port *sport; struct resource *res; int ret; =20 - sport =3D devm_kzalloc(&pdev->dev, sizeof(*sport), GFP_KERNEL); - if (!sport) + lfport =3D devm_kzalloc(&pdev->dev, sizeof(*lfport), GFP_KERNEL); + if (!lfport) return -ENOMEM; =20 + sport =3D &lfport->port; + ret =3D of_alias_get_id(np, "serial"); if (ret < 0) { dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret); @@ -800,33 +886,55 @@ static int linflex_probe(struct platform_device *pdev) sport->flags =3D UPF_BOOT_AUTOCONF; sport->has_sysrq =3D IS_ENABLED(CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE); =20 + ret =3D linflex_init_clk(lfport); + if (ret) + return ret; + linflex_ports[sport->line] =3D sport; =20 - platform_set_drvdata(pdev, sport); + platform_set_drvdata(pdev, lfport); + + ret =3D uart_add_one_port(&linflex_reg, sport); + if (ret) + clk_bulk_disable_unprepare(LINFLEX_CLK_NUM, lfport->clks); =20 - return uart_add_one_port(&linflex_reg, sport); + return ret; } =20 static void linflex_remove(struct platform_device *pdev) { - struct uart_port *sport =3D platform_get_drvdata(pdev); + struct linflex_port *lfport =3D platform_get_drvdata(pdev); + struct uart_port *sport =3D &lfport->port; =20 uart_remove_one_port(&linflex_reg, sport); + clk_bulk_disable_unprepare(LINFLEX_CLK_NUM, lfport->clks); } =20 #ifdef CONFIG_PM_SLEEP static int linflex_suspend(struct device *dev) { - struct uart_port *sport =3D dev_get_drvdata(dev); + struct linflex_port *lfport =3D dev_get_drvdata(dev); + struct uart_port *sport =3D &lfport->port; =20 uart_suspend_port(&linflex_reg, sport); + clk_bulk_disable_unprepare(LINFLEX_CLK_NUM, lfport->clks); =20 return 0; } =20 static int linflex_resume(struct device *dev) { - struct uart_port *sport =3D dev_get_drvdata(dev); + struct linflex_port *lfport =3D dev_get_drvdata(dev); + struct uart_port *sport =3D &lfport->port; + int ret; + + if (lfport->clks[LINFLEX_CLK_LIN].clk) { + ret =3D clk_bulk_prepare_enable(LINFLEX_CLK_NUM, lfport->clks); + if (ret) { + dev_err(dev, "Failed to enable LINFlexD clocks: %d\n", ret); + return ret; + } + } =20 uart_resume_port(&linflex_reg, sport); =20 --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011040.outbound.protection.outlook.com [40.107.130.40]) (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 26250326938; Mon, 16 Feb 2026 15:02:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254162; cv=fail; b=urPvokKvKAaxXdhldRFbGHdFXWhjwm5Im9VBIAUJtNWlWHHC1rfzG4eNeYUbd+YdjrotsBvpIpFVvykSE2jdZZITQcA+IPaaaQqU8vQYQ2P+WUBFsgo3A3h5oQzSVHgVvTGgVWAmjiJz4api40cCvSUvn6TPQMmvqpzwgdUh4Gk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254162; c=relaxed/simple; bh=FWhDwBY1ae3lSYyP4KqDqYWkrDQlLr0T0KvQo8fP7Ac=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=a0GaG5MLmLysI0efSnGDIM5oUqToEdoqJpGL5vj0arr6E5QeUhWxtC+mujkp5DF61wpT+bJl23SI8v6/AW++g4ZaCHd9eEKmH43lLbfiv7bbRZrtFTouRZQKMLteM31rIVX84PbSfvHdFhcQfrfDcsHOQ0hajVVaHSwIevga++Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=kv9FdUqM; arc=fail smtp.client-ip=40.107.130.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="kv9FdUqM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Dlwdq0SNzWzsJZTWWv9iqIoLonYD9sCU3lGmhntGrw/vZYK8Nlya1Pis95tMulk6ZRl4PJn7Uszrra9dkLMJwMg79Kl3OfSA4J3PrDmCVSjgUAxJ+OvSzJrAzmwpomVOSt7xzdfb/TaibC6gm+bFk/XMYP/t3qd6ZZxp/SpgKb3/92U0yKOGe3zTP4Bx4h0o5UlInbBcM5oLEZCo6+1i5AC8HFENorBwIyLJAPQrtSmWve7I56ghsyGEu2qav/61p+uuHnJ9jAxVfBuRMrQ4KLvPzc6+JKLE/eD+38dEoAUoxKX82TpyTWR9LTeno4NfBoGiK8RnjUgllzSH559pMg== 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=GvsAfQCJU0iiY3Can60fIRGL6JmPoWYxtt8UTQRcqbQ=; b=mAMt70PIi01/2dbNVFE1FRyJGuZtA/DuLe3th5T5y0ano13g1+hxclqMehKgklzh5qxbnBeLF6DFOa2Fjr9kJyF3yAlOYxkU5DFxY3VqbZgYjT0zmW7AdVZL/pTiIwI82Gk4DxiO+WQbrXDpZJHo9G707eYkIJpzaO+WAzeq+5khIcJcTEk8vVuMnr2VXjVjY5zXFaw+lqQ4GEKvl1dzU46mgl9Zz/hIoy9vXB7xZft9x7X2FEv/AzKZEjEqZ5+Cr5MLnG4drCxuoAJTEPQlPgFnwFsqEdcpe1iZKM4YB1ubCGVOYJHrN0KUeJovIzEAHwbC97VBWAYZiPMTv/I68w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GvsAfQCJU0iiY3Can60fIRGL6JmPoWYxtt8UTQRcqbQ=; b=kv9FdUqM8QOVMuCxtQ6AH8N55cpKbtv6UGAjlFyiUOPkJAFKpayNPcKgZnjccgfVjrlQyiTh2m9aDzNvPvrBvO7AwQHwFEaTCvKn7cQ44u2cbfz5QsqMyX58eyXAfNRV3sAGjJFGI7//AG1rarBxgFHvTuD/PTNl7FfHRKKAEfteKA0v8aSsM3SixXhdjKk5u0+oavEM9y+MOTqpWHpjygueEjYEZyAJfI6FXFJ2mD1quJP/I1d1KpDm38LD4I3JcuKeivo5d+8EIIis7kriFT2YWH40AOxJUN44b+s9INy2viy3b7IDIACxx9+ZAHQEEjYSRPL0Z1mUqR0/d90zGw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by DU4PR04MB12026.eurprd04.prod.outlook.com (2603:10a6:10:643::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:37 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:37 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Larisa Grigore Subject: [PATCH 11/13] serial: linflexuart: Add support for configurable stop bits Date: Mon, 16 Feb 2026 16:02:03 +0100 Message-ID: <20260216150205.212318-12-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0174.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b7::20) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|DU4PR04MB12026:EE_ X-MS-Office365-Filtering-Correlation-Id: 01f7577d-6b06-4658-64fd-08de6d6c6c54 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|19092799006|1800799024|7416014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bnNNQ3dHU3VPcSsxaUJFUUZydXZ5eVdVcEZidlhZdHFNWStIVEtDcVVvNStQ?= =?utf-8?B?Sm42WGZ5Q3NWS3N1V3BFbS95VC9paU9tRXBkRnk5QzA4R0d6Y3hkMjFnZVVE?= =?utf-8?B?SGFCbUhCQi9Id2N1M3YwTElWUXhleE1yaDBtd0dRZ1lkVGZaamowdzl6TWtu?= =?utf-8?B?b2g0K0tYV3djcG44LzZjd014aEpWd1huK3BFUCtVRW1lU2pQU3htMlRjQThp?= =?utf-8?B?NWF4bEdHdnRNNk1vcVhRMVhxc3RnOWJMdkVQdWpJOHlGUjEyR0V1Sm1UaGhp?= =?utf-8?B?Y2ZGQkZxeXZidS8wUkVTWWJaUkdicTFlMzZLajV6ZEM3YkpPOXZPQWxtL2Ni?= =?utf-8?B?K3JrVGpFNEtrMU9ybVE0QVg5WHpKV1BBMmVBdlJLMXdLdHNubHZIOElLQjhH?= =?utf-8?B?d1piZXd2bkxWZkJyUktZcHlSYm5USmx2T3JrVUZ5TTBuV2tFOEIrUWNvTExR?= =?utf-8?B?MHRYYk5qWGFaSERxcHl3cXd2N3didG1mSWZwU3A5R002OFU3aWpaSGZkWDlw?= =?utf-8?B?R1NlL1laY21yVW5Eam50cjBFbXFEZ2lpMld1eDhxc0hobTJzWkMzMFVoeHRB?= =?utf-8?B?TFVya0hlc3A4MXVLbVQvVyszTXFEOXduT3U2bGR2VFg2UnBjWFFucVpWZ0gw?= =?utf-8?B?MTZaMElzTDZZSXRqMXpucURoZmtlZnhRUERwL0pLNVJzcFFWek96ejcyN0Yz?= =?utf-8?B?K2dJalZ5VnZmU3g3Yld0am13eG9xbDVwd3pxTytFd284L3NOTTN6S29XTzN3?= =?utf-8?B?dWtkNGdMcmRyZk0wbDJHNStFL3kyc2E5a0tqcUptTUdRTFFyMGpYRW1pWVlG?= =?utf-8?B?aUdSbXdPNjduQjduTE5GcDNidTNjWkxzRFBDRU1CaFJMbW40eFA3QTVWL2ht?= =?utf-8?B?RXJXNDMweWlpSkVmM0F2VnN5dTJvVjA3dHlOT3RzK2dLRVdtb3hQeTVzTVFx?= =?utf-8?B?Vm5Ga3FUOC84OW9oVnhLRDVZbXFoRFpEdStCU1NwWFNxeXlUcWs3Q3ZWRGFF?= =?utf-8?B?UmVqZVJZdS91SHBsdnpubU5NcktXR1ZXQzJmbFV2WjJPclFnT1M2QTlmTFdr?= =?utf-8?B?WVYySm1ic242dy84Zmh2b1NQekpvdTZZN3ZJUmZqemtZZzVBWWcrNVA0MmFV?= =?utf-8?B?alE0QTE5Q3R2ZDFYMHJXdlFOaHlMTlowUlJLUmtEaFlUam5HQlM5T3VUbnVx?= =?utf-8?B?VVZjc3k4Z3JoSGZzUVBHckVpUXZCNnMyVU9hZ3o0aUxHU0dRenBSVnJ4aElx?= =?utf-8?B?SEViSklYV2VEYWxBdGYwTDFRUXNuNTFxV0ltT1ZHZ1VvT2dSR0dXVi9XclRv?= =?utf-8?B?RW5vSWV5TU9tQ0RsQnNsNmVTUnpXTGdIZnZtN0kvUjI4RWoyL3UxOTBYM3dq?= =?utf-8?B?WDBZamM2YmNxanU0OUFKcnBnS3Z0OStQWW1wWUhxRE5keW5GMXlmbGZXUHNo?= =?utf-8?B?UElHU2VxZmYzYmRiMTFjTzdaWkpFUDlBSGtDSmtKcndrM1hyNm0rd3JGMmdM?= =?utf-8?B?eUlEYlE2c3BqODIyWGloSTJLQnZPY09RT3VRbFhKL0tqQm01OVZ4R3ZCS2wv?= =?utf-8?B?MUltMk50bmxERW5GZGNnVzI4dWZzaVRrTU1lZ3ozUHVYQ3dqc2NGbzJBcE12?= =?utf-8?B?RmUrRDI2N2xNY2Q5VHVLSEpiWWhWV3Jyb0FkVFdTOS9CNW9lcFd2V3BWeDl0?= =?utf-8?B?UnpUQzVla0dNTGdJRm9EOVZJYXJZTzdkSmJRZk51RzhlS05reXA2YVZwKzhw?= =?utf-8?B?YWNvZ1UrYzFJMUlLdy82c1N2bjJiZHUxR2xmeHB3VytBNU5lTnJFWjJXbXU3?= =?utf-8?B?MlV1a0RuSjJYZmhSWllhemx6eUdWU29tR1MzVkJuNXFick82OUtaNG8rVDBZ?= =?utf-8?B?L3NUU3E0c3pTMjY5eGlVaC9rUWdkeDJHeCtoeGpoTUZLVm1zY0RFUTJ3S1Vj?= =?utf-8?B?TTZ2ZEFDT3pOM0lPM2JydWdwNHFET01ZMDkzQTAyL04zV0drUWtmREFuemVv?= =?utf-8?B?UmRGOEtYN0E4d040RVNNQ29PalYwRWtJWXlaU2U0RlBtc295NlRPNldMamJW?= =?utf-8?B?bnBqVmEyUk5vTGhXMkhtdGhkZUtWRVVpV2xrL2tqbXY0dGhkeWhOVjk0NnQ1?= =?utf-8?B?MWJuUjBKUFBkSVVDN1Q2UEFZSEl4UVFUa3kraVRjeHUyWVhWL3VPNHhrNnc1?= =?utf-8?B?MGc9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(19092799006)(1800799024)(7416014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R05LV3o2akk0QXZQeDV1WExxTERjZitwdktwY1ZFM00vZ1VKRzVkWkJDcUky?= =?utf-8?B?UVcxQytSZXgyL3F3Q1ZjTTBlc29VekdRUS9JSVBZUEs5bjgvQnlNVEFjSHJ3?= =?utf-8?B?c0h2cXRPQUQzazg2Uitja3NnTUlWeDZ4SjVZTE9CTlVabExPS0FnTGNmaUNl?= =?utf-8?B?OWRHZjl1VGZEZVpjUjFNMS9yT3Y1eUJEK2txVzVGaXR2bTJwV3VjSFFqQXRz?= =?utf-8?B?djU0alQ2RGp3Q3ZEaE54NTRlS1R1NXJoUis1U08vQXVzL1RaZEJBaVRYdDZa?= =?utf-8?B?UVYwb3FsM096N2JPeHJZbjA4RFhaRThrRk9xekpyUFFZRmxONUdxcUhqM1FC?= =?utf-8?B?TzFpdkluTVQ4R3oxSmg5WXRGdHlSZ3dSM2F4U2s1OG1WUlkyU3NzVGQzSnho?= =?utf-8?B?c3B6SEpvRTMrbmtpcGxMd2hwNjgwL0xYOGtIeTBJaS85QjdOS2pYaFplaVFV?= =?utf-8?B?UTVFcGZYSmpualphclpTYmU5ayttekw0c3VPelpIYzFFU2VTenFFZmdON2xJ?= =?utf-8?B?Vk1EK3JDNlZnQkV5MVNtN1NpdjhxSUY5emk0REt3MGwwdEl3dzhSZ0dvalJj?= =?utf-8?B?bi9VSjAraE9nRVJoN0RaWlhSSGdUSW9sNUZCUTlQY3F0YkJ6c0cxVWVjc0pB?= =?utf-8?B?YTJld2dKczhuZjFNcFlEL2Jaa096Rnh0TFo5VStUK2NMaVkvcmdjU3NLWmpo?= =?utf-8?B?aUtQcmxlN3FPZ05SaUIzOWtDOUplMlkxWmNhaVROc1JGRGl4SzdaUUorV2h0?= =?utf-8?B?d21ycXVqS0o2WWIybUhMb3JxanNzWklDY0lDenRiU0UxQWpHeGtqUmE5K0Jo?= =?utf-8?B?dmxTclpTc1lKSUNMYi92OUN4NVRNR0JiMU5vNDI5cm4raEVBOTVwVHhPSmtY?= =?utf-8?B?ZERwclZmTVRndUUrMEt0RUdTZ2JnVXlaL05sdkE3ZXlaejB1Ym54QnNkYXF0?= =?utf-8?B?OHhMZkVYbTQvSGQ5MiszTjV1UytoVkl5OGtGMkIwb2lXZ1NBWHRzR09YQm1N?= =?utf-8?B?K2RaV0w5UERRUUh5eDNJSXJxYXNVZndVRU5CTzZ0ZFczR1UzMGo2ZnZHSk5x?= =?utf-8?B?M1FvMSswNXlnS2hLNnNyYnhvQmE4VFhFWUlTVVFOdFNzaGUvWTJoL1M2WDRK?= =?utf-8?B?SzQ5dlJqR3pzNWFDbi9TVFZaSkdnQ2NCL011cktlK1h6dFlOaTlXTlZXZkJn?= =?utf-8?B?RkZhcWRoWUFLMHZCbnlwbmxnUFE1Z0tMZ2Zuc3NuQ0MwQmpNS1lkbVRsc2pi?= =?utf-8?B?TnZGbEdJMjk0akJPVW1jcW5PK3VLSUpaTzVCeXBrU0xiYTNlRXgrZ0N1eVIz?= =?utf-8?B?dkxySjZ6dExCWWZTMFRyNzZGVTQyOC9xT09mMzVHaTlETUgyWmV4bUdLWG5Z?= =?utf-8?B?WVN1ZG85MVg2SzNxdnE3R0NVeW9qRnRFK1h5Z0dnczhOQS9FRTdTdFNYM05t?= =?utf-8?B?bjZvUllKNGZwYUhNOXJ3aTlvSm1wMTB1S3ZxdG4zb2JldUhpU2x6Y25OdDM4?= =?utf-8?B?NzVJZmZZdW1EWlpLeVVURUE1SStWMksydWl4d0J2MCszS1ladUk5UXVLeHg3?= =?utf-8?B?TGxNVUV5alg1ZlZBT0JOTlhVK2JvbFBkaDVwdklxdEF2dnlNY0gyTmNwVnRn?= =?utf-8?B?UVplUHQ1a2dlZ3h5QzB1NkpXSEJRekV5NDJIN2lNb0FaYytGZklaSHg4Y1hJ?= =?utf-8?B?K1lCQjdmZ2wzVit3VlBzMUowa0JHOEpVSmFFTUFGdG1WOHdUQXhVbGJzbllO?= =?utf-8?B?eDJIZEUvbTdHbVlsSzN1Mm1raUJrK2hKU3BSTUVucmlVSnNtV3RrKzFkZlZY?= =?utf-8?B?ZVVpT1RiS09rczM4VGlOMFQvTDhrZG9YU1ovYXdBM0NjQWE0VzM1UlJ2WTFH?= =?utf-8?B?V2ZsTkNodWZZRXhxVEc1SmpxMkZlbXlPZnhDaEt0U21jUTNNQUg0a2VJOGI3?= =?utf-8?B?Q1gzUkFoelZ6YVh5ZEpLb0hXb1NvMWpOa0xYdks0aXVYMmk1aFNETHQ5enJi?= =?utf-8?B?eEg5T1VLMlNQaUR4RCt5N1NxRGJMSkZPWXFvc0Z4eHpwbTl3TnZjRVh5QXBE?= =?utf-8?B?Q3NhQ3dXaElQZXh5WHVCVXErSnFBRUtTWERpNCt2SzlLTHROeUlWa3FVcHRN?= =?utf-8?B?Sk4zMGlaK1FUbEtRUDhkVE90clMyMmtYZktreU12N2FSNXo4Tk5KZmpIckZ4?= =?utf-8?B?cDVtTWduOFJ6Ykdjbmh3SFZ5Z2JwOFNKQlJpbVJETmloRkZKQ0o0Tk5Ldkti?= =?utf-8?B?YmQzMU81N29iU3NITlVpVTFDd1dtWDF6VDBEK2lkN2M0T3ZsK252elZTVkNi?= =?utf-8?B?eXg5YkdOcE9XdDRGRnBIdnhUNTNncXZxZUplWnVrcTBONkxmNnh5NUtxcWVH?= =?utf-8?Q?kIQV0aNftiLRjnLE=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01f7577d-6b06-4658-64fd-08de6d6c6c54 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:37.6481 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4fsKUZXMPNiiDNlO2mb4Sxv4ZUpz8Qoq/dttV1VaxfiTeg+0JyvEGTvQ+1l3XgluuXzhgeb/8GIlmyH6oL7e4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB12026 Content-Type: text/plain; charset="utf-8" Updated linflex_set_termios to set the number of stop bits based on termios->c_cflag. Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 31 +++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index 36c8f90d975d..a5a34fd81bcf 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -75,6 +75,10 @@ =20 #define LINFLEXD_UARTCR_ROSE BIT(23) =20 +#define LINFLEXD_UARTCR_SBUR_MASK GENMASK(18, 17) +#define LINFLEXD_UARTCR_SBUR_1SBITS (0x0 << 17) +#define LINFLEXD_UARTCR_SBUR_2SBITS (0x1 << 17) + #define LINFLEXD_UARTCR_RDFLRFC_OFFSET 10 #define LINFLEXD_UARTCR_RDFLRFC_MASK (0x7 << LINFLEXD_UARTCR_RDFLRFC_OFFSE= T) #define LINFLEXD_UARTCR_RDFLRFC(uartcr) (((uartcr) \ @@ -124,6 +128,10 @@ =20 #define LINFLEX_LDIV_MULTIPLIER (16) =20 +#define LINFLEXD_GCR_STOP_MASK BIT(1) +#define LINFLEXD_GCR_STOP_1SBITS (0 << 1) +#define LINFLEXD_GCR_STOP_2SBITS BIT(1) + #define DRIVER_NAME "fsl-linflexuart" #define DEV_NAME "ttyLF" #define UART_NR 4 @@ -456,7 +464,7 @@ linflex_set_termios(struct uart_port *port, struct kter= mios *termios, const struct ktermios *old) { unsigned long flags; - unsigned long cr, old_cr, cr1; + unsigned long cr, old_cr, cr1, gcr; unsigned int old_csize =3D old ? old->c_cflag & CSIZE : CS8; unsigned long ibr, fbr, divisr, dividr; unsigned char ldiv_mul; @@ -521,8 +529,25 @@ linflex_set_termios(struct uart_port *port, struct kte= rmios *termios, cr |=3D LINFLEXD_UARTCR_WL0; } =20 - if (termios->c_cflag & CSTOPB) - termios->c_cflag &=3D ~CSTOPB; + gcr =3D readl(port->membase + GCR); + + if (termios->c_cflag & CSTOPB) { + /* Use 2 stop bits. */ + cr =3D (cr & ~LINFLEXD_UARTCR_SBUR_MASK) | + LINFLEXD_UARTCR_SBUR_2SBITS; + /* Set STOP in GCR field for 2 stop bits. */ + gcr =3D (gcr & ~LINFLEXD_GCR_STOP_MASK) | + LINFLEXD_GCR_STOP_2SBITS; + } else { + /* Use 1 stop bit. */ + cr =3D (cr & ~LINFLEXD_UARTCR_SBUR_MASK) | + LINFLEXD_UARTCR_SBUR_1SBITS; + /* Set STOP in GCR field for 1 stop bit. */ + gcr =3D (gcr & ~LINFLEXD_GCR_STOP_MASK) | + LINFLEXD_GCR_STOP_1SBITS; + } + /* Update GCR register. */ + writel(gcr, port->membase + GCR); =20 /* parity must be enabled when CS7 to match 8-bits format */ if ((termios->c_cflag & CSIZE) =3D=3D CS7) --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011040.outbound.protection.outlook.com [40.107.130.40]) (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 00CCA315D58; Mon, 16 Feb 2026 15:02:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254165; cv=fail; b=fAcp3c1K/J3AbGrpzikHbo76AApqdq0RlDzcoNEP2LZx9ds1Otao+/4SVOOayd1nFb7FpjtYZt1AJRIu60H9C5m12tJiLxf8rnKKGnddykqcrBw/0wPEMjP9h7cHn34xR39SbMRQ1n7TT//2gORBLRoLwu13sfuR97hO2qW0gqM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254165; c=relaxed/simple; bh=U/IxPyGZBTHpx/XXLCLn3mXpKKT9DdNHYbiQH2xmW3I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Q1dTGwjATOaKR8850oEUq8Wbsl17C3gc/Kxfu974ORoDBuC9SE6qlr75mTHJCu1l4cjrMjAN9tLV1LqbsIS9Z081YHMfZSD7iN8Vpl+VWKq6xj5lM2wOmAPNte7IxrUKgkpVeu5pj0w3RmKykLwvhtE0G9FQevNL/pyH3Nt3dgQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=yI0MP5cU; arc=fail smtp.client-ip=40.107.130.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="yI0MP5cU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WFW839YCFi9+WcKT0v24ioxaNJ/kDHEyJuRaZ2VAXg+4x+7Dm8b32T6qpaXzxPRJARL0Bn9HbvN1Q3/JERU+oB9weNCNjxqg/wEqSZFG65OK7g7ZzYv2jdL8W6G6Nqb2iNoDEDXZgeizTvtqK+SAyJuwYJ5103MsdBI9ydMudmxOLrWkMy8gTUg3iJaGB/w/o9v9fPbe3/URpgitzeRLMVs+4/0KGZKRhBvxrRjBjfXiLzsIGo+/fg9uR2dvEz4YjDBK+lbEe+TU6uGzjthkNfVqiZM5xY8ieG3sZUXJAv4vCskUlwcrSv+ndu8hP5cZq1Ee9ZPM2MGaS3H2gU5HXA== 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=iAi+UYoNutSn5ow3obQu/8mu6tOXB5ia/UqLHYmhGvM=; b=fr/Fb4PdRnqHKD1zfVxWOAWpDFzbGBA8m530wykrwnlb63xy/VEy1scIPPF12ibKu1ENt63HIP8Q9TD140Ai07T7ffF4MmxsYT4dj4EFJjFi8P9j60Oed9FUx2bJ5YWi5QVo9ACINamMBkGtBufa4xtr9YbKU9MJvfDFoX/DBmSWSVMB+DtHJB4miwX3DuNtKmBZe2nHU4mcyx1M4IrnSuDIxhPa7/N2e1mDnqlx1/2Fu0dk7tW0qDK3UhBD5EspaHO0DoSgSYXRcD3FLUWSubJ4SgjeIINJkIQ5UNeczPGsKo2m+B3plhVuKUxUZGd/QVpSWWvAwldWgnp+0YPlOg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iAi+UYoNutSn5ow3obQu/8mu6tOXB5ia/UqLHYmhGvM=; b=yI0MP5cUYzKXnXFWVhzA7MZfVwAAmsNPXVeeebyUOhFq/4E0MvcpKxkGha5I1q+NvQr0Eb7Pg/DKdwzpmVnnmjJXTECDTIm4b+/XwkVx5dYpdv/JjJi3vPP3ya7GFE39fjbQBXocaXpt9+cCtdDov6M7bBPIBOB7kBC8AuF90KmImrJVkOkhKqydTIjR2eDHOuR6oy64bwvlh7wI+g5zOjG5AuMgweMA9Dx/Ev6adtddA92ppRtSu0Pwj6t2z0BoU53hixaxHNC3+gPiP225tjrQsOgtD7XrI4P9lSJTyh17e4LgfCdiCjg/hYXxo/a1r5tU5a+W5CAgSthOKd2vxA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by DU4PR04MB12026.eurprd04.prod.outlook.com (2603:10a6:10:643::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:39 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:39 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Larisa Grigore , Radu Pirea , Phu Luu An , Js Ha , Ghennadi Procopciuc Subject: [PATCH 12/13] serial: linflexuart: Add DMA support Date: Mon, 16 Feb 2026 16:02:04 +0100 Message-ID: <20260216150205.212318-13-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0178.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b7::6) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|DU4PR04MB12026:EE_ X-MS-Office365-Filtering-Correlation-Id: 36cf8474-03a2-4d94-8c1b-08de6d6c6d69 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|19092799006|1800799024|7416014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TkllcUwvSHQrblNYRzNCM3F1bURNYU85ZElvTXZ5cTRtaWxVNlhVcmdsQnRP?= =?utf-8?B?bjJYZUpmRWdwTldSdkNyUjZpV2F1SjlyZG1mZm9aS1J5bDl0Y1JuNHJ5TGtQ?= =?utf-8?B?M1NpVFlRaDlFRkpOZnkvanZYSHEyQnAwODFNbVpFMW1Pd3JkT3h6aytPT2Ji?= =?utf-8?B?cERpcjRhN1RpTFdlbFRMakRGZWJUSWFzSDE3d0NZUnR2NW9lN2FITWNCWVUw?= =?utf-8?B?TWMyd3B6YVZuMmVKeXNxSjZZVEkrWDg5OElCekZPVzdtRjI4cEEyT1dtN3lK?= =?utf-8?B?ME85MEs4K2VSL1J6TXoxTzVVeU4rUnBQeXlraGI0OGI5YzBySDdZVHFkTnBH?= =?utf-8?B?dW1STzNHRHdKMmtsa1FXT1VyZkN6T1Nla0cvS0dtSmtNSzNPT0YwdHVxaE9J?= =?utf-8?B?QXFBSllTcCtPQTF6SUhaK2UrRk1qVlFXTXJDZDdOTzVpRjhIdlgxYmNPQ2N3?= =?utf-8?B?a3JENkY3cVFnYW9sbW14WVBocGZQUWI3T0Z2YkJGVnZpZTFyWjJDK0hjWUZo?= =?utf-8?B?NTVvTHg3M2Z3bGJOcWkzRGswUnFzVE5ma3QxS2tIaXAvL3BxQmw1K3ZTN2NQ?= =?utf-8?B?TEZ0VjN0eDJ3aGZhNmY0TVVQaCtwZllrYXc2WEVvbzEzZm13NlM0Y1JXUWRo?= =?utf-8?B?MzhZUklTRVQ2cDBFblIrT1BXQ2Z6SmpqdHV6aG5MTDNrNzVlRDdxQTFKNEVm?= =?utf-8?B?bW1LZHJIdWtGQ0RJOVRhVTVYZmNBdjdiNU5JOUhIZkJVSmd6eFBGUEJ5MDVN?= =?utf-8?B?QWtLd285LzRVUEdFQW1QdHczUHJtcW9sZHlLeUEwc2lPOWpnYWM0T0VFYWNq?= =?utf-8?B?Q0MxWXZNWDFXMnZQS0IxTFZJOGErZldubjdwMnZZekNmT2FZZXRJMmpjbGRS?= =?utf-8?B?ZWQyWXJnQUg2ZFlFTXVGNXNhMHpSY1M2aEg4RHBaWDA5UG9JNDVxU2lUajRz?= =?utf-8?B?bFU2cGM3MHBmNHhabzJNL3JsNFB3bVNZS2RYcmozaHhnM3Y0d3gvTVE0dTFQ?= =?utf-8?B?a1FQYUFTVjN4c1lEclBxWEVtQncyYzVJSkJzMjZOT2syTTBQNXAzdk40U0tF?= =?utf-8?B?czRMSjJjTGJPMC9ReDZ3UHVwUmlobjZkbmU2NFJvRjh5RFUrWnF0ZTZIZXQz?= =?utf-8?B?QVZJS3MxYW4wZWNCS0NaNEtLVjFhYnpLSlk4MVJ5b1BVSU5wRThGR0thL0Vl?= =?utf-8?B?bGc5WWNEQy9rR1hPaWRUTyttYzFITjFlSmRSYmNsbHdmUU00RGZua3UzdFk2?= =?utf-8?B?cnhwM05ZNGQxNFBreGMzanlBbjJqS1l1Rnc5aC9oN2xBby9qS2lraWpxZUxR?= =?utf-8?B?OFd1TEx2NDV3cVBlWXpDRVE5bFZVc3lIZERYa3JGMFdYZ3d0dTk4cHMxK3lo?= =?utf-8?B?NHhIQVRlTHNpbVdwK3FnTWtsc0kyVEpNTkhkd1BiTjZTQkp6SjhYaklnOWZk?= =?utf-8?B?T3U3RVd3SmVPaE5BTFduVms0YjNoVEtaUkJRcE80ZE15N0x5YXBESTlGSGFR?= =?utf-8?B?bEg2dVBzTlJYNWpoSE5aS1p6NHRES0E3SVBHb2ZYZTdGY1g5MmRzdFRWSXJr?= =?utf-8?B?aTFwSlFYL0FzdDI1NCtXazRoaU9CRE5HVUo0Qkp1a0VJY25qUHpUclluLzRz?= =?utf-8?B?bm9sZzhqd0NFNGthbEJQZEI1SDNQazRiSFFPMXFJci9WbVNFK0dXanoySlFy?= =?utf-8?B?d3k3bkoxbXNFY1kwcEMwRFEvdUM3bTd0WkJFUG5ua3BpQjcxTG96WmVrREZi?= =?utf-8?B?MkZpcWVpTmxmMFRxVnhWNldaYmc0T0NaTTJzbzk1cSsrNzJSeTFwQUoxdkJu?= =?utf-8?B?bklzWE1tUlk4c0RKWk0vaGhFWGs1cWR0alhNRm1HaUVzRitneFJhMlFDWnNV?= =?utf-8?B?cGYzTE5pOGNzeTA1M0xoYmd5bEJTUEszaDhtSmJyUUFNU2FlRUNLOVM0QjNS?= =?utf-8?B?VzUycGhHQmJJK2NnQ2psS1phRDRjaHVzMFJheDhHL201NmVpTHVMMFRDcWhS?= =?utf-8?B?SG9QWE4zd01pSFFwTlZoZkszZUJrandLSHdkcE5mVWNwZXcrd0VweGpzWDBu?= =?utf-8?B?M0M5QzRoT1EyVkJDM3o1RkMrLzN4eXlqRjRDd1F6SVJQN2dJNjVjSzA0RkhZ?= =?utf-8?B?VHVIVUdnMVdQbUEyUEs0WG1qU2NXMmQzenhsTzRkUUNsWUJwek85QUZvU0o3?= =?utf-8?B?V2c9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(19092799006)(1800799024)(7416014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YjRSSjh3OXZGdTNEQ01oV2ZLRERhWldVTXdtM2lQSFY4OHJGL1hINVVFcjM3?= =?utf-8?B?ckJMVG5uU2FXd1V4SUg0SFpvNkthWVlJZlRJYmxiZEs3bzJOMVFPQ1g5K3BM?= =?utf-8?B?Q2VTRlFjSnU4TVJ3cXZoaGpNQzBkWGVKREpia2RaaWNyWDdkQk0vRFQzcSsv?= =?utf-8?B?U1hQb1lKc1FLY2d5Umpnd2QxWlFnVVhzaStHNDFlWDFxL0FhUS94ckxubzNa?= =?utf-8?B?Z1hGYWc1RkpDV1hQanlWOVptdlpoWFdaYVVpUEF5OTREejlPV3JRQksxOC8w?= =?utf-8?B?Qjc3RHRiTGxNQ2lLbFdSWkJ4UXNWaUJiakdnQng0QXUvQ3dtM1lmc0psUjJU?= =?utf-8?B?NUhwdUZESFhYWk9IbzVNV1N4Y3Z5b2w2ZzZEdVV6c3RVUTMxQnZHRVNjdHN6?= =?utf-8?B?QWRUN0dVSHJUeS9FVzNUTkl2NDRoRWdFeFQ2eEVQa0J1dHAwYVNTLzBGR2t4?= =?utf-8?B?eWNDSCs1Rk5weWkwbE9MZEZib1h2YzR1azJYV2NNdlQxbW9JMytnOVJlOEhz?= =?utf-8?B?anVrdzdLb0t3ekFqTlpDelZpaGQ0OU1TeE91Sm5iRG84ZjYwcWlURm9LMEhR?= =?utf-8?B?dVpHT2cvTkp1K3lVd3hPZzQvVEZuVk4rN0VteEJCMDVHOFdubGlxdFdqMTF0?= =?utf-8?B?MFhqdlRVSWtoS1FSbmtyTUI5bVFvMDNZdVh3dVpyQTFMRjJadnBQRWxQdEZC?= =?utf-8?B?TmpaTGtiUGVzVTNGZWlSSlR1ekRva3NSR0w4TWw0SUlsNnJNRWs0bUJCZmI5?= =?utf-8?B?NnNJUlNHRFhUZVYvVHBaVEtyTy9qbTlQRTF3ck1oUzA0S2JEVXRvVG5HaDZO?= =?utf-8?B?VU9FRDJ4NVRPSDRPS3hpaWFEdlNhSW5mMnNCd3lJdWdtK25QamhxWGw0b1VR?= =?utf-8?B?aW1mc1g4SU8rcTQ4S1JGazRINzJIK0ZYOFFsdG1pejBTeG54NFRsRGluTTQz?= =?utf-8?B?aTVtSTM5R1kvVGw1Yk1VWlRhUnZtc00vczgwS2xCcWhNWkRqZlNsMURuQkZU?= =?utf-8?B?ZGFIVFpVTGh6VHJVdmMxV2psVjNxaTJ4ZW9XUEl3K3l5R3Vpa3Ura0dJeFZm?= =?utf-8?B?R3dpcy9LbHl5TUh2MmxpUkxSRldJUDZrODloYXkvbWt0K2FyRXdQZXRNaitK?= =?utf-8?B?Ri9QdmlOMmc3S1EzU1B4V1lCRnFzNzdZTE94L1ViS0RWVkZkaXVKNW1VanBB?= =?utf-8?B?cmNhY0dZNUdTNGV1RTRnb0pLS01VWUZIeFNvYUE2QmsvdUtSd3RvaWpXZWt3?= =?utf-8?B?NDlWNmxwdko4YU44VU1zdFhscytPUTlIemRwQkFTQm8ya1pXeENvMlBOSG1l?= =?utf-8?B?TExURHkybGJvejRFNVQrVi9maCs1dkcydjJGVjYva3p1TzVFbmZsN21vZmJF?= =?utf-8?B?RUhmL3BXdDdQc3A4NUFDcXFyVnFibnUyTWQwWDlmWVlXVU1OY2ZKSTBGVFp4?= =?utf-8?B?dWdLVWQ5dHp1dDZ5NUd6YmxvNTkyblYwbW9aR3dJSWVJZVNtTUl6a2VIaHF0?= =?utf-8?B?STlUeC9kOStiQ1FncVY1dk1GcTFTN0JValVyNzhac3NtS1lmaWwzTmY2NDAx?= =?utf-8?B?OVpWOGRuNGhvTUZXS2pRUHdXcFB4WjlPVnV1eXNqeUVWS0pGMEZDd1BpQ3hR?= =?utf-8?B?cjVvNFRUTk51NEFkbkx4WWdoVzEzTFFWSzkralJZZlg2QU5Zb2FDMGdXVmh0?= =?utf-8?B?M3Brcld0T0UzYUxrOVhXcjBHUGVzNUpzdzZldUxGUlN6dXYwQTd0VC9pOXhZ?= =?utf-8?B?aUVJcEZwV3Nqaklmc2ZXUURZWW5INXdIVzFjZGlCN01VUURPMmhGdVRnaGFP?= =?utf-8?B?MVVOZVptZmZmOFJZd0ZoQ0lmWTMvakFNSmZ3dm5kSis4OVZLYnFUcDVXS1RQ?= =?utf-8?B?ZkY3YXZ6ZnVCb3plWDdwdDZIUDJyQmpNY2VlSVlOZXhVRDFGYXJqNStsYlky?= =?utf-8?B?SXZSeGlqUVQ5eENZSGNKTkJVMmUvTHFESVVWLytHelFHWTQ3aG9Tb0I5RnVp?= =?utf-8?B?TFJKQk1HYS9aWGh0L2xhTkRuY3hNdVhZNk5ycHdKTnZua0FwMnB5Ukt5WVdD?= =?utf-8?B?WGkyLzdFc1hrK0dnMWJNNWV3Z3c5RVQrdE12MEpIeU9Fd1pLRUJPMHhzT3NJ?= =?utf-8?B?QnB6Z0sxZUg3QjhaWUI2VTQ3bXpmeGFVTG0zS3lmeExYMzg4bGYvRGg2YVZq?= =?utf-8?B?enBjUXhpRTJ1R1p0VDVlOC9qZlRKd3M1WU9IcTMzc1dwUmlrdmFtK2EwbVAv?= =?utf-8?B?TSszMFF1S2wxd1JOM3IzTTNKWVhqcjJMMC9lMUlCZHd6TWtvNjE1UWJpNFFF?= =?utf-8?B?Z1NUREp3dU9jYzNJMC84U0I0TzhLQTErSzhYTGJ3UGgzM1JwYlpmNC93QWtl?= =?utf-8?Q?wo0Icmlw2lD7AMxA=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 36cf8474-03a2-4d94-8c1b-08de6d6c6d69 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:39.4506 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Cxt16BNlKnISOhEcv7+/+Ah6U7WHK3Pusb1ElyjIaOqs1m8LnYfK7ZEVkguO5AmVmT7CgGgRuNOLqG0p2Xow1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB12026 Content-Type: text/plain; charset="utf-8" Add support for using DMA to avoid generating one interrupt per character and losing characters while copy-paste. In UART mode, the DMA capability can be used only if the UART Tx/Rx buffers are configured as FIFOs. If the DMA related properties are missing from the device tree, the driver will fall back to interrupt + Buffer mode. On the RX side, a timer is used to periodically poll for received data. Signed-off-by: Larisa Grigore Co-developed-by: Stoica Cosmin-Stefan Signed-off-by: Stoica Cosmin-Stefan Co-developed-by: Radu Pirea Signed-off-by: Radu Pirea Co-developed-by: Phu Luu An Signed-off-by: Phu Luu An Co-developed-by: Js Ha Signed-off-by: Js Ha Co-developed-by: Ghennadi Procopciuc Signed-off-by: Ghennadi Procopciuc Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 642 +++++++++++++++++++++++++-- 1 file changed, 597 insertions(+), 45 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index a5a34fd81bcf..dff37c68cff0 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -3,19 +3,24 @@ * Freescale LINFlexD UART serial port driver * * Copyright 2012-2016 Freescale Semiconductor, Inc. - * Copyright 2017-2019, 2021-2022 NXP + * Copyright 2017-2019, 2021-2022, 2025 NXP */ =20 #include #include +#include +#include +#include #include #include #include #include +#include #include #include #include #include +#include #include =20 /* All registers are 32-bit width */ @@ -42,6 +47,12 @@ #define GCR 0x004C /* Global control register */ #define UARTPTO 0x0050 /* UART preset timeout register */ #define UARTCTO 0x0054 /* UART current timeout register */ +/* The offsets for DMARXE/DMATXE in master mode only */ +#define DMATXE 0x0058 /* DMA Tx enable register */ +#define DMARXE 0x005C /* DMA Rx enable register */ + +#define DMATXE_DRE0 BIT(0) +#define DMARXE_DRE0 BIT(0) =20 /* * Register field definitions @@ -140,6 +151,9 @@ =20 #define PREINIT_DELAY 2000 /* us */ =20 +#define FSL_UART_RX_DMA_BUFFER_SIZE (PAGE_SIZE) +#define LINFLEXD_UARTCR_FIFO_SIZE (4) + enum linflex_clk { LINFLEX_CLK_LIN, LINFLEX_CLK_IPG, @@ -154,6 +168,24 @@ static const char * const linflex_clks_id[] =3D { struct linflex_port { struct uart_port port; struct clk_bulk_data clks[LINFLEX_CLK_NUM]; + unsigned int txfifo_size; + unsigned int rxfifo_size; + bool dma_tx_use; + bool dma_rx_use; + struct dma_chan *dma_tx_chan; + struct dma_chan *dma_rx_chan; + struct dma_async_tx_descriptor *dma_tx_desc; + struct dma_async_tx_descriptor *dma_rx_desc; + dma_addr_t dma_tx_buf_bus; + dma_addr_t dma_rx_buf_bus; + dma_cookie_t dma_tx_cookie; + dma_cookie_t dma_rx_cookie; + unsigned char *dma_rx_buf_virt; + unsigned int dma_tx_bytes; + int dma_tx_in_progress; + int dma_rx_in_progress; + unsigned long dma_rx_timeout; + struct timer_list timer; }; =20 static const struct of_device_id linflex_dt_ids[] =3D { @@ -168,6 +200,76 @@ MODULE_DEVICE_TABLE(of, linflex_dt_ids); static struct uart_port *earlycon_port; #endif =20 +static void linflex_dma_tx_complete(void *arg); +static void linflex_dma_rx_complete(void *arg); +static void linflex_console_putchar(struct uart_port *port, unsigned char = ch); + +static inline struct linflex_port * +to_linflex_port(struct uart_port *uart) +{ + return container_of(uart, struct linflex_port, port); +} + +static void linflex_copy_rx_to_tty(struct linflex_port *lfport, + struct tty_port *tty, int count) +{ + size_t copied; + + lfport->port.icount.rx +=3D count; + + if (!tty) { + dev_err(lfport->port.dev, "No tty port\n"); + return; + } + + dma_sync_single_for_cpu(lfport->port.dev, lfport->dma_rx_buf_bus, + FSL_UART_RX_DMA_BUFFER_SIZE, DMA_FROM_DEVICE); + copied =3D tty_insert_flip_string(tty, + ((unsigned char *)(lfport->dma_rx_buf_virt)), + count); + + if (copied !=3D count) { + WARN_ON(1); + dev_err(lfport->port.dev, "RxData copy to tty layer failed\n"); + } +} + +static void linflex_enable_dma_rx(struct uart_port *port) +{ + unsigned long dmarxe =3D readl(port->membase + DMARXE); + + writel(dmarxe | DMARXE_DRE0, port->membase + DMARXE); + while (!(readl(port->membase + DMARXE) & DMARXE_DRE0)) + ; +} + +static void linflex_enable_dma_tx(struct uart_port *port) +{ + unsigned long dmatxe =3D readl(port->membase + DMATXE); + + writel(dmatxe | DMATXE_DRE0, port->membase + DMATXE); + while (!(readl(port->membase + DMATXE) & DMATXE_DRE0)) + ; +} + +static void linflex_disable_dma_rx(struct uart_port *port) +{ + unsigned long dmarxe =3D readl(port->membase + DMARXE); + + writel(dmarxe & 0xFFFF0000, port->membase + DMARXE); + while (readl(port->membase + DMARXE) & DMARXE_DRE0) + ; +} + +static void linflex_disable_dma_tx(struct uart_port *port) +{ + unsigned long dmatxe =3D readl(port->membase + DMATXE); + + writel(dmatxe & 0xFFFF0000, port->membase + DMATXE); + while (readl(port->membase + DMATXE) & DMATXE_DRE0) + ; +} + static inline void linflex_wait_tx_fifo_empty(struct uart_port *port) { unsigned long cr =3D readl(port->membase + UARTCR); @@ -179,36 +281,113 @@ static inline void linflex_wait_tx_fifo_empty(struct= uart_port *port) ; } =20 +static void _linflex_stop_tx(struct uart_port *port) +{ + struct linflex_port *lfport =3D to_linflex_port(port); + unsigned long ier; + + if (!lfport->dma_tx_use) { + ier =3D readl(port->membase + LINIER); + ier &=3D ~(LINFLEXD_LINIER_DTIE); + writel(ier, port->membase + LINIER); + return; + } + + linflex_disable_dma_tx(port); +} + static void linflex_stop_tx(struct uart_port *port) { + struct linflex_port *lfport =3D to_linflex_port(port); + struct dma_tx_state state; + unsigned int count; + + _linflex_stop_tx(port); + + if (!lfport->dma_tx_in_progress) + return; + + dmaengine_pause(lfport->dma_tx_chan); + dmaengine_tx_status(lfport->dma_tx_chan, + lfport->dma_tx_cookie, &state); + dmaengine_terminate_all(lfport->dma_tx_chan); + count =3D lfport->dma_tx_bytes - state.residue; + uart_xmit_advance(port, count); + + lfport->dma_tx_in_progress =3D 0; +} + +static void _linflex_start_rx(struct uart_port *port) +{ + struct linflex_port *lfport =3D to_linflex_port(port); unsigned long ier; =20 - ier =3D readl(port->membase + LINIER); - ier &=3D ~(LINFLEXD_LINIER_DTIE); - writel(ier, port->membase + LINIER); + if (!lfport->dma_rx_use) { + ier =3D readl(port->membase + LINIER); + writel(ier | LINFLEXD_LINIER_DRIE, port->membase + LINIER); + return; + } + + linflex_enable_dma_rx(port); } =20 -static void linflex_stop_rx(struct uart_port *port) +static void _linflex_stop_rx(struct uart_port *port) { + struct linflex_port *lfport =3D to_linflex_port(port); unsigned long ier; =20 - ier =3D readl(port->membase + LINIER); - writel(ier & ~LINFLEXD_LINIER_DRIE, port->membase + LINIER); + if (!lfport->dma_rx_use) { + ier =3D readl(port->membase + LINIER); + writel(ier & ~LINFLEXD_LINIER_DRIE, port->membase + LINIER); + return; + } + + linflex_disable_dma_rx(port); +} + +static void linflex_stop_rx(struct uart_port *port) +{ + struct linflex_port *lfport =3D to_linflex_port(port); + struct dma_tx_state state; + unsigned int count; + + _linflex_stop_rx(port); + + if (!lfport->dma_rx_in_progress) + return; + + dmaengine_pause(lfport->dma_rx_chan); + dmaengine_tx_status(lfport->dma_rx_chan, + lfport->dma_rx_cookie, &state); + dmaengine_terminate_all(lfport->dma_rx_chan); + count =3D FSL_UART_RX_DMA_BUFFER_SIZE - state.residue; + + lfport->dma_rx_in_progress =3D 0; + linflex_copy_rx_to_tty(lfport, &port->state->port, count); + tty_flip_buffer_push(&port->state->port); } =20 static void linflex_put_char(struct uart_port *sport, unsigned char c) { + struct linflex_port *lfport =3D to_linflex_port(sport); unsigned long status; =20 writeb(c, sport->membase + BDRL); =20 /* Waiting for data transmission completed. */ - while (((status =3D readl(sport->membase + UARTSR)) & - LINFLEXD_UARTSR_DTFTFF) !=3D - LINFLEXD_UARTSR_DTFTFF) - ; + if (!lfport->dma_tx_use) { + while (((status =3D readl(sport->membase + UARTSR)) & + LINFLEXD_UARTSR_DTFTFF) !=3D + LINFLEXD_UARTSR_DTFTFF) + ; + } else { + while (((status =3D readl(sport->membase + UARTSR)) & + LINFLEXD_UARTSR_DTFTFF)) + ; + } =20 - writel(LINFLEXD_UARTSR_DTFTFF, sport->membase + UARTSR); + if (!lfport->dma_tx_use) + writel(LINFLEXD_UARTSR_DTFTFF, sport->membase + UARTSR); } =20 static inline void linflex_transmit_buffer(struct uart_port *sport) @@ -228,18 +407,198 @@ static inline void linflex_transmit_buffer(struct ua= rt_port *sport) linflex_stop_tx(sport); } =20 +static int linflex_dma_tx(struct linflex_port *lfport, unsigned int count, + unsigned int tail) +{ + struct uart_port *sport =3D &lfport->port; + dma_addr_t tx_bus_addr; + + while ((readl(sport->membase + UARTSR) & LINFLEXD_UARTSR_DTFTFF)) + ; + + dma_sync_single_for_device(sport->dev, lfport->dma_tx_buf_bus, + UART_XMIT_SIZE, DMA_TO_DEVICE); + lfport->dma_tx_bytes =3D count; + tx_bus_addr =3D lfport->dma_tx_buf_bus + tail; + lfport->dma_tx_desc =3D + dmaengine_prep_slave_single(lfport->dma_tx_chan, tx_bus_addr, + lfport->dma_tx_bytes, DMA_MEM_TO_DEV, + DMA_PREP_INTERRUPT | DMA_CTRL_ACK); + + if (!lfport->dma_tx_desc) { + dev_err(sport->dev, "Not able to get desc for tx\n"); + return -EIO; + } + + lfport->dma_tx_desc->callback =3D linflex_dma_tx_complete; + lfport->dma_tx_desc->callback_param =3D sport; + lfport->dma_tx_in_progress =3D 1; + lfport->dma_tx_cookie =3D dmaengine_submit(lfport->dma_tx_desc); + dma_async_issue_pending(lfport->dma_tx_chan); + + linflex_enable_dma_tx(&lfport->port); + return 0; +} + +static void linflex_prepare_tx(struct linflex_port *lfport) +{ + struct tty_port *tport =3D &lfport->port.state->port; + unsigned int count, tail; + + count =3D kfifo_out_linear(&tport->xmit_fifo, &tail, UART_XMIT_SIZE); + + if (!count || lfport->dma_tx_in_progress) + return; + + linflex_dma_tx(lfport, count, tail); +} + +static void linflex_restart_dma_tx(struct linflex_port *lfport) +{ + struct uart_port *sport =3D &lfport->port; + struct tty_port *tport =3D &sport->state->port; + + if (kfifo_len(&tport->xmit_fifo) < WAKEUP_CHARS) + uart_write_wakeup(sport); + + linflex_prepare_tx(lfport); +} + +static void linflex_dma_tx_complete(void *arg) +{ + struct linflex_port *lfport =3D arg; + struct uart_port *sport =3D &lfport->port; + unsigned long flags; + + uart_port_lock_irqsave(sport, &flags); + + /* stopped before? */ + if (!lfport->dma_tx_in_progress) + goto out_tx_callback; + + uart_xmit_advance(sport, lfport->dma_tx_bytes); + lfport->dma_tx_in_progress =3D 0; + + linflex_restart_dma_tx(lfport); + +out_tx_callback: + uart_port_unlock_irqrestore(sport, flags); +} + +static void linflex_flush_buffer(struct uart_port *port) +{ + struct linflex_port *lfport =3D to_linflex_port(port); + + if (lfport->dma_tx_use) { + linflex_disable_dma_tx(port); + dmaengine_terminate_async(lfport->dma_tx_chan); + lfport->dma_tx_in_progress =3D 0; + } +} + +static int linflex_dma_rx(struct linflex_port *lfport) +{ + dma_sync_single_for_device(lfport->port.dev, lfport->dma_rx_buf_bus, + FSL_UART_RX_DMA_BUFFER_SIZE, + DMA_FROM_DEVICE); + lfport->dma_rx_desc =3D dmaengine_prep_slave_single(lfport->dma_rx_chan, + lfport->dma_rx_buf_bus, + FSL_UART_RX_DMA_BUFFER_SIZE, + DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT | + DMA_CTRL_ACK); + + if (!lfport->dma_rx_desc) { + dev_err(lfport->port.dev, "Not able to get desc for rx\n"); + return -EIO; + } + + lfport->dma_rx_desc->callback =3D linflex_dma_rx_complete; + lfport->dma_rx_desc->callback_param =3D lfport; + lfport->dma_rx_in_progress =3D 1; + lfport->dma_rx_cookie =3D dmaengine_submit(lfport->dma_rx_desc); + dma_async_issue_pending(lfport->dma_rx_chan); + + linflex_enable_dma_rx(&lfport->port); + return 0; +} + +static void linflex_dma_rx_complete(void *arg) +{ + struct linflex_port *lfport =3D arg; + struct tty_port *port =3D &lfport->port.state->port; + unsigned long flags; + + timer_delete_sync(&lfport->timer); + + uart_port_lock_irqsave(&lfport->port, &flags); + + /* stopped before? */ + if (!lfport->dma_rx_in_progress) { + uart_port_unlock_irqrestore(&lfport->port, flags); + return; + } + + lfport->dma_rx_in_progress =3D 0; + linflex_copy_rx_to_tty(lfport, port, FSL_UART_RX_DMA_BUFFER_SIZE); + tty_flip_buffer_push(port); + linflex_dma_rx(lfport); + + uart_port_unlock_irqrestore(&lfport->port, flags); + + mod_timer(&lfport->timer, jiffies + lfport->dma_rx_timeout); +} + +static void linflex_timer_func(struct timer_list *t) +{ + struct linflex_port *lfport =3D timer_container_of(lfport, t, timer); + unsigned long flags; + + uart_port_lock_irqsave(&lfport->port, &flags); + + /* stopped before? */ + if (!lfport->dma_rx_in_progress) { + uart_port_unlock_irqrestore(&lfport->port, flags); + return; + } + + linflex_stop_rx(&lfport->port); + linflex_dma_rx(lfport); + + uart_port_unlock_irqrestore(&lfport->port, flags); + mod_timer(&lfport->timer, jiffies + lfport->dma_rx_timeout); +} + +static void _linflex_start_tx(struct uart_port *port) +{ + struct linflex_port *lfport =3D to_linflex_port(port); + unsigned long ier; + + if (lfport->dma_tx_use) { + linflex_enable_dma_tx(&lfport->port); + } else { + ier =3D readl(port->membase + LINIER); + writel(ier | LINFLEXD_LINIER_DTIE, port->membase + LINIER); + } +} + static void linflex_start_tx(struct uart_port *port) { + struct linflex_port *lfport =3D to_linflex_port(port); unsigned long ier; =20 - linflex_transmit_buffer(port); - ier =3D readl(port->membase + LINIER); - writel(ier | LINFLEXD_LINIER_DTIE, port->membase + LINIER); + if (lfport->dma_tx_use) { + linflex_prepare_tx(lfport); + } else { + linflex_transmit_buffer(port); + ier =3D readl(port->membase + LINIER); + writel(ier | LINFLEXD_LINIER_DTIE, port->membase + LINIER); + } } =20 static irqreturn_t linflex_txint(int irq, void *dev_id) { - struct uart_port *sport =3D dev_id; + struct linflex_port *lfport =3D dev_id; + struct uart_port *sport =3D &lfport->port; struct tty_port *tport =3D &sport->state->port; unsigned long flags; =20 @@ -263,7 +622,8 @@ static irqreturn_t linflex_txint(int irq, void *dev_id) =20 static irqreturn_t linflex_rxint(int irq, void *dev_id) { - struct uart_port *sport =3D dev_id; + struct linflex_port *lfport =3D dev_id; + struct uart_port *sport =3D &lfport->port; unsigned int flg; struct tty_port *port =3D &sport->state->port; unsigned long flags, status; @@ -316,14 +676,14 @@ static irqreturn_t linflex_rxint(int irq, void *dev_i= d) =20 static irqreturn_t linflex_int(int irq, void *dev_id) { - struct uart_port *sport =3D dev_id; + struct linflex_port *lfport =3D dev_id; unsigned long status; =20 - status =3D readl(sport->membase + UARTSR); + status =3D readl(lfport->port.membase + UARTSR); =20 - if (status & LINFLEXD_UARTSR_DRFRFE) + if (status & LINFLEXD_UARTSR_DRFRFE && !lfport->dma_rx_use) linflex_rxint(irq, dev_id); - if (status & LINFLEXD_UARTSR_DTFTFF) + if (status & LINFLEXD_UARTSR_DTFTFF && !lfport->dma_rx_use) linflex_txint(irq, dev_id); =20 return IRQ_HANDLED; @@ -332,11 +692,15 @@ static irqreturn_t linflex_int(int irq, void *dev_id) /* return TIOCSER_TEMT when transmitter is not busy */ static unsigned int linflex_tx_empty(struct uart_port *port) { + struct linflex_port *lfport =3D to_linflex_port(port); unsigned long status; =20 status =3D readl(port->membase + UARTSR) & LINFLEXD_UARTSR_DTFTFF; =20 - return status ? TIOCSER_TEMT : 0; + if (!lfport->dma_tx_use) + return status ? TIOCSER_TEMT : 0; + else + return status ? 0 : TIOCSER_TEMT; } =20 static unsigned int linflex_get_mctrl(struct uart_port *port) @@ -354,6 +718,7 @@ static void linflex_break_ctl(struct uart_port *port, i= nt break_state) =20 static void linflex_setup_watermark(struct uart_port *sport) { + struct linflex_port *lfport =3D to_linflex_port(sport); unsigned long cr, ier, cr1; =20 /* Disable transmission/reception */ @@ -396,6 +761,14 @@ static void linflex_setup_watermark(struct uart_port *= sport) =20 cr =3D (LINFLEXD_UARTCR_WL0 | LINFLEXD_UARTCR_UART); =20 + /* FIFO mode enabled for DMA Rx mode. */ + if (lfport->dma_rx_use) + cr |=3D LINFLEXD_UARTCR_RFBM; + + /* FIFO mode enabled for DMA Tx mode. */ + if (lfport->dma_tx_use) + cr |=3D LINFLEXD_UARTCR_TFBM; + writel(cr, sport->membase + UARTCR); =20 cr1 &=3D ~(LINFLEXD_LINCR1_INIT); @@ -406,44 +779,169 @@ static void linflex_setup_watermark(struct uart_port= *sport) writel(cr, sport->membase + UARTCR); =20 ier =3D readl(sport->membase + LINIER); - ier |=3D LINFLEXD_LINIER_DRIE; - ier |=3D LINFLEXD_LINIER_DTIE; + if (!lfport->dma_rx_use) + ier |=3D LINFLEXD_LINIER_DRIE; + + if (!lfport->dma_tx_use) + ier |=3D LINFLEXD_LINIER_DTIE; =20 writel(ier, sport->membase + LINIER); } =20 +static int linflex_dma_tx_request(struct uart_port *port) +{ + struct linflex_port *lfport =3D to_linflex_port(port); + struct tty_port *tport =3D &port->state->port; + struct dma_slave_config dma_tx_sconfig; + dma_addr_t dma_bus; + int ret; + + dma_bus =3D dma_map_single(port->dev, tport->xmit_buf, + UART_XMIT_SIZE, DMA_TO_DEVICE); + + if (dma_mapping_error(port->dev, dma_bus)) { + dev_err(port->dev, "dma_map_single tx failed\n"); + return -ENOMEM; + } + + memset(&dma_tx_sconfig, 0, sizeof(dma_tx_sconfig)); + dma_tx_sconfig.dst_addr =3D port->mapbase + BDRL; + dma_tx_sconfig.dst_addr_width =3D DMA_SLAVE_BUSWIDTH_1_BYTE; + dma_tx_sconfig.dst_maxburst =3D 1; + dma_tx_sconfig.direction =3D DMA_MEM_TO_DEV; + ret =3D dmaengine_slave_config(lfport->dma_tx_chan, &dma_tx_sconfig); + + if (ret < 0) { + dev_err(port->dev, "Dma slave config failed, err =3D %d\n", + ret); + return ret; + } + + lfport->dma_tx_buf_bus =3D dma_bus; + lfport->dma_tx_in_progress =3D 0; + + return 0; +} + +static int linflex_dma_rx_request(struct uart_port *port) +{ + struct linflex_port *lfport =3D to_linflex_port(port); + struct dma_slave_config dma_rx_sconfig; + unsigned char *dma_buf; + dma_addr_t dma_bus; + int ret; + + dma_buf =3D devm_kmalloc(port->dev, FSL_UART_RX_DMA_BUFFER_SIZE, + GFP_KERNEL); + + if (!dma_buf) { + dev_err(port->dev, "Dma rx alloc failed\n"); + return -ENOMEM; + } + + dma_bus =3D dma_map_single(port->dev, dma_buf, + FSL_UART_RX_DMA_BUFFER_SIZE, DMA_FROM_DEVICE); + + if (dma_mapping_error(port->dev, dma_bus)) { + dev_err(port->dev, "dma_map_single rx failed\n"); + return -ENOMEM; + } + + memset(&dma_rx_sconfig, 0, sizeof(dma_rx_sconfig)); + dma_rx_sconfig.src_addr =3D port->mapbase + BDRM; + dma_rx_sconfig.src_addr_width =3D DMA_SLAVE_BUSWIDTH_1_BYTE; + dma_rx_sconfig.src_maxburst =3D 1; + dma_rx_sconfig.direction =3D DMA_DEV_TO_MEM; + ret =3D dmaengine_slave_config(lfport->dma_rx_chan, &dma_rx_sconfig); + + if (ret < 0) { + dev_err(port->dev, "Dma slave config failed, err =3D %d\n", + ret); + return ret; + } + + lfport->dma_rx_buf_virt =3D dma_buf; + lfport->dma_rx_buf_bus =3D dma_bus; + lfport->dma_rx_in_progress =3D 0; + + return 0; +} + +static void linflex_dma_tx_free(struct uart_port *port) +{ + struct linflex_port *lfport =3D to_linflex_port(port); + + dma_unmap_single(lfport->port.dev, lfport->dma_tx_buf_bus, UART_XMIT_SIZE, + DMA_TO_DEVICE); + + lfport->dma_tx_buf_bus =3D 0; +} + +static void linflex_dma_rx_free(struct uart_port *port) +{ + struct linflex_port *lfport =3D to_linflex_port(port); + + dma_unmap_single(lfport->port.dev, lfport->dma_rx_buf_bus, + FSL_UART_RX_DMA_BUFFER_SIZE, DMA_FROM_DEVICE); + devm_kfree(lfport->port.dev, lfport->dma_rx_buf_virt); + + lfport->dma_rx_buf_bus =3D 0; + lfport->dma_rx_buf_virt =3D NULL; +} + static int linflex_startup(struct uart_port *port) { + struct linflex_port *lfport =3D to_linflex_port(port); int ret =3D 0; unsigned long flags; + bool dma_rx_use, dma_tx_use; + + dma_rx_use =3D lfport->dma_rx_chan && !linflex_dma_rx_request(port); + dma_tx_use =3D lfport->dma_tx_chan && !linflex_dma_tx_request(port); =20 uart_port_lock_irqsave(port, &flags); =20 + lfport->dma_rx_use =3D dma_rx_use; + lfport->dma_tx_use =3D dma_tx_use; + lfport->port.fifosize =3D LINFLEXD_UARTCR_FIFO_SIZE; + linflex_setup_watermark(port); =20 + if (lfport->dma_rx_use && !linflex_dma_rx(lfport)) { + timer_setup(&lfport->timer, linflex_timer_func, 0); + mod_timer(&lfport->timer, jiffies + lfport->dma_rx_timeout); + } uart_port_unlock_irqrestore(port, flags); =20 - ret =3D devm_request_irq(port->dev, port->irq, linflex_int, 0, - DRIVER_NAME, port); - + if (!lfport->dma_rx_use || !lfport->dma_tx_use) { + ret =3D devm_request_irq(port->dev, port->irq, linflex_int, 0, + DRIVER_NAME, lfport); + } return ret; } =20 static void linflex_shutdown(struct uart_port *port) { - unsigned long ier; + struct linflex_port *lfport =3D to_linflex_port(port); unsigned long flags; =20 + timer_delete_sync(&lfport->timer); + uart_port_lock_irqsave(port, &flags); =20 - /* disable interrupts */ - ier =3D readl(port->membase + LINIER); - ier &=3D ~(LINFLEXD_LINIER_DRIE | LINFLEXD_LINIER_DTIE); - writel(ier, port->membase + LINIER); + linflex_stop_tx(port); + linflex_stop_rx(port); =20 uart_port_unlock_irqrestore(port, flags); =20 - devm_free_irq(port->dev, port->irq, port); + if (!lfport->dma_rx_use || !lfport->dma_tx_use) + devm_free_irq(port->dev, port->irq, lfport); + + if (lfport->dma_rx_use) + linflex_dma_rx_free(port); + + if (lfport->dma_tx_use) + linflex_dma_tx_free(port); } =20 static unsigned char @@ -463,6 +961,7 @@ static void linflex_set_termios(struct uart_port *port, struct ktermios *termios, const struct ktermios *old) { + struct linflex_port *lfport =3D to_linflex_port(port); unsigned long flags; unsigned long cr, old_cr, cr1, gcr; unsigned int old_csize =3D old ? old->c_cflag & CSIZE : CS8; @@ -472,6 +971,9 @@ linflex_set_termios(struct uart_port *port, struct kter= mios *termios, =20 uart_port_lock_irqsave(port, &flags); =20 + _linflex_stop_rx(port); + _linflex_stop_tx(port); + old_cr =3D readl(port->membase + UARTCR) & ~(LINFLEXD_UARTCR_RXEN | LINFLEXD_UARTCR_TXEN); cr =3D old_cr; @@ -608,6 +1110,8 @@ linflex_set_termios(struct uart_port *port, struct kte= rmios *termios, writel(fbr, port->membase + LINFBRR); } =20 + lfport->dma_rx_timeout =3D msecs_to_jiffies(DIV_ROUND_UP(10000000, baud)); + writel(cr, port->membase + UARTCR); =20 cr1 &=3D ~(LINFLEXD_LINCR1_INIT); @@ -617,6 +1121,9 @@ linflex_set_termios(struct uart_port *port, struct kte= rmios *termios, cr |=3D (LINFLEXD_UARTCR_TXEN) | (LINFLEXD_UARTCR_RXEN); writel(cr, port->membase + UARTCR); =20 + _linflex_start_rx(port); + _linflex_start_tx(port); + uart_port_unlock_irqrestore(port, flags); } =20 @@ -657,6 +1164,7 @@ static const struct uart_ops linflex_pops =3D { .request_port =3D linflex_request_port, .release_port =3D linflex_release_port, .config_port =3D linflex_config_port, + .flush_buffer =3D linflex_flush_buffer, }; =20 static struct uart_port *linflex_ports[UART_NR]; @@ -690,18 +1198,16 @@ static void linflex_console_putchar(struct uart_port= *port, unsigned char ch) static void linflex_string_write(struct uart_port *sport, const char *s, unsigned int count) { - unsigned long cr, ier =3D 0; - - ier =3D readl(sport->membase + LINIER); - linflex_stop_tx(sport); + unsigned long cr; =20 + _linflex_stop_tx(sport); cr =3D readl(sport->membase + UARTCR); cr |=3D (LINFLEXD_UARTCR_TXEN); writel(cr, sport->membase + UARTCR); =20 uart_console_write(sport, s, count, linflex_console_putchar); =20 - writel(ier, sport->membase + LINIER); + _linflex_start_tx(sport); } =20 static void @@ -881,30 +1387,59 @@ static int linflex_probe(struct platform_device *pde= v) return -ENOMEM; =20 sport =3D &lfport->port; + sport->dev =3D &pdev->dev; + + lfport->dma_tx_chan =3D dma_request_chan(sport->dev, "tx"); + if (IS_ERR(lfport->dma_tx_chan)) { + ret =3D PTR_ERR(lfport->dma_tx_chan); + if (ret =3D=3D -EPROBE_DEFER) + return ret; + + dev_info(sport->dev, + "DMA tx channel request failed, operating without tx DMA %ld\n", + PTR_ERR(lfport->dma_tx_chan)); + lfport->dma_tx_chan =3D NULL; + } + + lfport->dma_rx_chan =3D dma_request_chan(sport->dev, "rx"); + if (IS_ERR(lfport->dma_rx_chan)) { + ret =3D PTR_ERR(lfport->dma_rx_chan); + if (ret =3D=3D -EPROBE_DEFER) { + dma_release_channel(lfport->dma_tx_chan); + return ret; + } + + dev_info(sport->dev, + "DMA rx channel request failed, operating without rx DMA %ld\n", + PTR_ERR(lfport->dma_rx_chan)); + lfport->dma_rx_chan =3D NULL; + } =20 ret =3D of_alias_get_id(np, "serial"); if (ret < 0) { dev_err(&pdev->dev, "failed to get alias id, errno %d\n", ret); - return ret; + goto linflex_probe_free_dma; } if (ret >=3D UART_NR) { dev_err(&pdev->dev, "driver limited to %d serial ports\n", UART_NR); - return -ENOMEM; + ret =3D -ENOMEM; + goto linflex_probe_free_dma; } =20 sport->line =3D ret; =20 sport->membase =3D devm_platform_get_and_ioremap_resource(pdev, 0, &res); - if (IS_ERR(sport->membase)) - return PTR_ERR(sport->membase); + if (IS_ERR(sport->membase)) { + ret =3D PTR_ERR(sport->membase); + goto linflex_probe_free_dma; + } sport->mapbase =3D res->start; =20 ret =3D platform_get_irq(pdev, 0); if (ret < 0) return ret; =20 - sport->dev =3D &pdev->dev; sport->iotype =3D UPIO_MEM; sport->irq =3D ret; sport->ops =3D &linflex_pops; @@ -913,15 +1448,25 @@ static int linflex_probe(struct platform_device *pde= v) =20 ret =3D linflex_init_clk(lfport); if (ret) - return ret; + goto linflex_probe_free_dma; =20 linflex_ports[sport->line] =3D sport; =20 platform_set_drvdata(pdev, lfport); =20 ret =3D uart_add_one_port(&linflex_reg, sport); - if (ret) + if (ret) { clk_bulk_disable_unprepare(LINFLEX_CLK_NUM, lfport->clks); + goto linflex_probe_free_dma; + } + + return 0; + +linflex_probe_free_dma: + if (lfport->dma_tx_chan) + dma_release_channel(lfport->dma_tx_chan); + if (lfport->dma_rx_chan) + dma_release_channel(lfport->dma_rx_chan); =20 return ret; } @@ -933,6 +1478,13 @@ static void linflex_remove(struct platform_device *pd= ev) =20 uart_remove_one_port(&linflex_reg, sport); clk_bulk_disable_unprepare(LINFLEX_CLK_NUM, lfport->clks); + + if (lfport->dma_tx_chan) + dma_release_channel(lfport->dma_tx_chan); + + if (lfport->dma_rx_chan) + dma_release_channel(lfport->dma_rx_chan); + } =20 #ifdef CONFIG_PM_SLEEP --=20 2.47.0 From nobody Fri Apr 3 01:48:27 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011040.outbound.protection.outlook.com [40.107.130.40]) (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 A0F4B32860E; Mon, 16 Feb 2026 15:02:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254167; cv=fail; b=aJP1jbSSKxvsT6leVqPpwrDppwn7f1DjW3pMCmz2PfEqKCVdRomdAc/rQ4u0unuQf/7N1iGGeYPxiwf2tIITAiyglzqG4LPnHD42J+sW+VWXQVBywFaEtoosjZ5YKLgO5igGuhpG1AXvmAnfc1NebULMzzGOovB6ShCJmqb1RG8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771254167; c=relaxed/simple; bh=YiArEPWxMYeBElPZEHZaxtA+x6hib9gg+2nJFuplUq4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=jhvUkDJz42ju8/GbiWUIf6PhmvtynlBhzAdJN/FCNs6rNVQVh6n+fugu0PP/D0+MddNn7A1xNPmfDu2x74MykMgJjs8cHzgH1huTrPeyxZYDeuO/hJO00BlvzQbnbin7up9VlYPBheElaYYDkFsvfEx+EF+7EOBZDbb70bFQKag= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=Ar4Q0rDT; arc=fail smtp.client-ip=40.107.130.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Ar4Q0rDT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=B9OpqAScS/nvCHB2+Ay14mHbvaPOCws0leo1AhT2gVu2X2gO/GXa7i1UTnikxZ+HLLhiVoKF+DX17rlbYtvxeFXHMB8hViFG5FnD2Bo36UX1ExEHjFI8AW8RxOD9nMcnZ+vOG+4S+KdkeaDlxoGGVsALomSC9lliRWfLzINP8NVhdaMY/C9Y/g+8qX7j2OpWD6746s5PGWF0/+IIp9O9sotcjmwmubdGeYBL9k8zztRRxq+/I6wiQPi2IRpDkzpOSY/0o/fWXU3ou2UKIb4fmk9U5OM+IA+RbftMU2+po17lSbjE/quVicnjsoBh+yJGvjl19J6JvwcTwMSg9JH6Nw== 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=KmX5oU8/dmKxwsz/rnUDA4IdPqZitxkBszm0hKYibNc=; b=yYOuCVzKzeHSxLHXXMOOCQs0okBsoH0vckT59Nt0hNUwn0ZqF6dw6v6nZ5IX8Mz34Tt9bQh6BtGR6uNjXqBgGtD9MQENrSIABXM2d/eYy5I3smrNwKg12+oX9f57eJEBla4dY8l/1WWqG9LEFcKzT9VoeyNfonKr/1QVagaFFyYZwOzp+kJYIqjpHeyKUXs6JpPfXH3FpNbNveovkmnltIHufuxUSlMv0aKedDmJ3tKuUn53d4Dr2qDpvXoPEoSYx8JOkDl++iQbzYPiThwMLBg7dXZiTI8p8Sf6W1I0DT2N5Y0FsVVHLjki7trTA68Y9HZIi7cTvjxK1gGKjh/9tw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KmX5oU8/dmKxwsz/rnUDA4IdPqZitxkBszm0hKYibNc=; b=Ar4Q0rDTPZZLttTHbM9qdTAC0Lxy/87004V+M57wBo/iceDjT2m5PZyEbnlrIFdniMVnRqqN/n6CENhfWn8OUN5WB9PkgCCcq0hqSJt73HNMB2vMSYBDl/SCeYvk+eOUcj8pPadF87+8PwpSyPd+D4sSSUVecdR7cb+NGq//Vf2jzmwuzCrCu+Tou9p6UUIBwPxs77m2C0ptpObKrm62vQ6gzPKTWsZ3pzercOav4W+fdBuunJgVmGTuKMVEsyNJ5d8wHCW1RQjEpTHO1D6MtSDfZPKbHrBhkUvUrXYlmaMlY9MkwRj5dhsQXq6hYkxXpynJ1Da/1MYqPktGc0Atnw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) by DU4PR04MB12026.eurprd04.prod.outlook.com (2603:10a6:10:643::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Mon, 16 Feb 2026 15:02:41 +0000 Received: from PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63]) by PA4PR04MB9224.eurprd04.prod.outlook.com ([fe80::8e54:4d38:df79:fd63%7]) with mapi id 15.20.9587.017; Mon, 16 Feb 2026 15:02:41 +0000 From: Larisa Grigore To: gregkh@linuxfoundation.org, jirislaby@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com, chester62515@gmail.com, cosmin.stoica@nxp.com, adrian.nitu@freescale.com, stefan-gabriel.mirea@nxp.com, Mihaela.Martinas@freescale.com Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, s32@nxp.com, imx@lists.linux.dev, clizzi@redhat.com, aruizrui@redhat.com, eballetb@redhat.com, echanude@redhat.com, jkangas@redhat.com, Radu Pirea , Larisa Grigore Subject: [PATCH 13/13] serial: linflexuart: Avoid stopping DMA during receive operations Date: Mon, 16 Feb 2026 16:02:05 +0100 Message-ID: <20260216150205.212318-14-larisa.grigore@oss.nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> References: <20260216150205.212318-1-larisa.grigore@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0171.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b7::18) To PA4PR04MB9224.eurprd04.prod.outlook.com (2603:10a6:102:2a3::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9224:EE_|DU4PR04MB12026:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d4636d3-d615-45d3-fa77-08de6d6c6e86 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|19092799006|1800799024|7416014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?B?N1NIMkpXK0F6TmdjN09mTmVoZ29WeVR6SGw4ZW9SZ211MkZsSUFBd2dpeGRC?= =?utf-8?B?RXY1bi9MVmhsditvY2d2TjJUTUhhNVZpR2JBZStGdEZMbi9JclVEQnRXS0lN?= =?utf-8?B?Njh2bXcyTEcwa21aY3F1RlNTSFhtT3RycWNJMFRRQmpubTRiOW5kZ1l3TWl0?= =?utf-8?B?UUJKU29oR01UblJkY3NqZlE5bGJIYVdlM1hBam5ZTEhzRnJNS25seDlQd1c0?= =?utf-8?B?ckExZmtDdkV0WDA2U1JwQzY4cFNOdEViOTJ1dFl6T2xLUEhxVU5kZTQzN0FC?= =?utf-8?B?ZHFuYUxrWStEaG90VUhlOU4yWFVCVUVwRGhHTTBuOHhoYUxOQUtsZ0VvdzQw?= =?utf-8?B?YnFHc3hMWm9OcW5pbzU2SEpQeTJIUnowUEZqS3lqTXVvNkJYNVdVQ09PU3dn?= =?utf-8?B?eXdacDNFbEVESXJ6Qit5ZWVSVWRxZXJIbk9SdlA3cEdzNytBSlFXOVpCM3Ns?= =?utf-8?B?UkVVTGtOYmxOSk40MFN3K3I2WldMNDlucjl0MVZJREd1TTh1NUVWWGdlNVUw?= =?utf-8?B?bktqellOMy96VTNEYXhxdEJCQmJrT085QTNsK1dQTmpMUkd3U2VhRTVUZ05z?= =?utf-8?B?My9Idnlab3plUVY2MXhiTHJvQlhQLzNQUU5vdjNoY1hnbm5lcDg0dlk1bGNB?= =?utf-8?B?cFgxbVdFMVI4NTJRUXFuZFdjMXROekV6RjZIYzhGdmZGY3YvUGRyNWlmZk9N?= =?utf-8?B?Q1pPR1o5SE5LOWV5ejRFcEV4bzB2Tis0dDlQOHY3SHJQMkRIRHluTmdmdGV4?= =?utf-8?B?aXVGMzQ1VGN1TlE2R29vY3NDZHg3Z0d3cG1vbnQwbi85T1BXU3MrV1FmQXlv?= =?utf-8?B?YmpIUTZyemZWbHBRQWFsdUx3aG1zanNCck9MeXFSUy9UaldjYkg1eUE5M0ZL?= =?utf-8?B?M3pqcGxMdTFITWllOTZ6MTVjVEozbEFEVlNTUytHMWZJcVo0UFNvTWtNSUJE?= =?utf-8?B?S3paZ2t5TTY0YVdocytLOXBuT0JCQ1NpUitTT29ZcThueTRpTzNyWlFRMHlC?= =?utf-8?B?N09hdnl1Y3A3SC9TTTdacTNiOWpKSnEweGcrQWZJZXB3NzdLWWVaMms1a1cw?= =?utf-8?B?Q1IwYlh5Ykg5c0hENXhrbTR4c1RXMUg1cFZjbUJVUWYwVlZuVXdHYW5mdFM5?= =?utf-8?B?OStLT3hyZC9VbWs5cTJQZmlIWWZpMnZXMkNJUGc1aytSSEcxZml0MFNVTStP?= =?utf-8?B?NFlnRlhjamlVVEczaDZNVUNTTFRyMFhJRk5JbFZET1JucGt2ZTFUc0FTRG1E?= =?utf-8?B?ckc3WFJGVTVSWnpROGYxZCtrUStKMnhpZzczTEt6UVgvc2tRRGp6VzlSR3hq?= =?utf-8?B?bUVRbkRGT2psR21Bc2puZng2dU41d3Q5VW5GSSt5K2ZidUh6czJlQ0cwZXJz?= =?utf-8?B?NGV2UzhXbXJxWUswSy9uMFdyOFNxVktlemh3ZDRvem9weWxpQzBnN0hyRVlT?= =?utf-8?B?V3VFZXNySnBQZkJ3QmJSeW8rVDVqOTFIczBNS1krbndQaW9RVmdxQlFrSE8x?= =?utf-8?B?V3hZa1dMUkI0MllPdHY2Vnd4dlFjREExQkNISGVVMzgzc2llT3ROSmszNTBO?= =?utf-8?B?V1hvU011WTd5OEVocnYvdkFxZ0xmNFpJSXdJaEhLQ25YRmFZR3dURlU2RkhI?= =?utf-8?B?L011WHdad2g3bUlYTXc0cGdqVTJlR25TVWF5dlh1RHovbzBQUFZyRS9MQ2hh?= =?utf-8?B?ck15ZURnV0ZrczlRc2trSFJJbjN6VEpvbjM1eG1ITUI0NWJ1ME1TS3oxaUVu?= =?utf-8?B?TG5BOWtlSTBZbk05cGNnRTVBYzA3dzh5RWp3TnVEVDRnS3hRdHNJTFkvL2Rh?= =?utf-8?B?Y3JrYWw0M1dtR3BjeXhsV2o2SDVkT1V6RVV3Y043OWhxUW02SThvcU5HeEhW?= =?utf-8?B?OEV3b1Y4NjdzTnFiN0gyVE8vVHF0dElIM2l4Ylc4YlRidThCdmpmK1g0Nmxz?= =?utf-8?B?NnRDNlhRVE9uc1pxWkN6Qy84VWgvTzFoN05Iek5VaEFnQ200R01abWwyU3Rl?= =?utf-8?B?Q0xYUUh5cVB0MnJSbUhqT1B0S0lrUVpOZ1BMdWlsekFhOWc2alIrU0dXQ2NL?= =?utf-8?B?TmdneFRPSHc1QnZLVWthMjdtbmkvVkZKTnRvVHRaUkZpYWlzcFdVazhEMGZx?= =?utf-8?B?Q3A1NnBEUHgvclBBQmNhWXZCd3V1RWFUcXhLVUhyd1R4eVJHWmp5bURkS3VI?= =?utf-8?B?ZEE9PQ==?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9224.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(19092799006)(1800799024)(7416014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VWZVa2xrSFM1QUMxZSs0cExkOXZUQUE4T3dEdU10WGgyWWZ0RVRGbGd2OUhv?= =?utf-8?B?a3J1TitZUWJGMWF4d09RYzZwSENHWnNVU0UzdHFrRUtDMmVTMHVCWEZrSExv?= =?utf-8?B?SnlyNGxZWE9XczZEbUJDdGxCVUMxRE9pM1ZmYlpUMk53VFJWNktLSnRjR0VB?= =?utf-8?B?VytVQlpOVmJGRmhXejlwWWJXVCsvc2VvQ0lsZDNQdFppeGM0OGNwZWZRd3dF?= =?utf-8?B?WXV0cVpMYlBJcVdqclBIM2pMR2dsVStXc256aHBxMWNiRXNZWVlrbHQ2cWRR?= =?utf-8?B?anZpeHZ2NmNLTWpJdVB6SzcrRDNxQ1BVc2ZpS0RrQ1JRek53S2thb3BoSVp1?= =?utf-8?B?LzllWTFxcTVucEM5ckJiWFRlM2pnZldRaDV4SW8rSXpPcmN2NWcvamlYVjY2?= =?utf-8?B?end1bHYvVHAwZlpybWdPdi82RWYyL29MNDJ1TE5wRGhONnNhUWRxZXhheDlE?= =?utf-8?B?VHZSd0R2ZXhsRXozNUZzeXFuQlo1UHlIcTY3WDArM3VydEV5UXErVjk5ZzFO?= =?utf-8?B?SjlyUWpoSyt0cDBSRk4yVE1sV2FqNXlCU09WbkRUWGJXcHdGNDRLbU1lM3pX?= =?utf-8?B?a1FCM2piZW1ESDdERDZ5a0RYb0t2ekxNb212SmozdTZHUjI5Wnd5UlZaSzJZ?= =?utf-8?B?RnV6R3cvVUlMZFdLdjBHMGdBM1pkTDNYeHhib2xFMG1TZkUvcFVmRDhQMUhL?= =?utf-8?B?ZEYwOTM4K1cwRFJGdVNoZnNpd0pBQUJVUGIrdC9BaUhFLzAyVURQb3ZWWjUy?= =?utf-8?B?eGxtMHpxQ0JkZFViSGY3amtIRGdvRlB5NUMzL2hOVVJvaDhabFJlVDhKcngw?= =?utf-8?B?Z1V2ZGtZK0lObjZ2YUljVTVRYy9RTzFHdXk0UkE0S2crV1RtcHo3eE4xMk9t?= =?utf-8?B?VG9IaCtkRUM0dEE1aXIrS1ZqZjVMcGo1QWx4dkI3em04Tm05d2ZlRXhHSEk5?= =?utf-8?B?ZkVYT0NMcVFMdDdZK0poTHRxbmNSZ1NPWlk2cVNtRkFzVzRyeDRJRmVzRHRE?= =?utf-8?B?RVVhNHl6Uk8xVlBlNjArWHh5bmhpRnUwdnNZZFlraW9yT2FZTW1vdzRqeWJ0?= =?utf-8?B?Y3FiSDBTMkpvekhObjFFakdtRnhWSlFjRlVDb1d6bXhSOFBmb1NyRkROM281?= =?utf-8?B?R1lGc3pNV3NnakxwcjVmelVWK2o1TjJxVWpHbXFUTlZPdUpyK3l1c0xOekFH?= =?utf-8?B?dmhqczl0Ky9YY0hORGV2bXJMZEZ6SWdVZUVzWDAySTFjcmFMOTZOU1FiQ09P?= =?utf-8?B?akpZRlo2ZnVnYyt1K2RtQUtUS1pKY2xaZkowZXUzUkVCK3ovQmN3S3c5UUZn?= =?utf-8?B?RWJTTXBBRkpoVElXK05kWitBLzlSMXdkSFEvMm9IR1MxcUdWY2JnTEc1OGVa?= =?utf-8?B?b1FJUXBRYys0L1k5a29Ic1E1QngvYlk5djlyM0NxRTQvZHo0cWpVUDg4bXhx?= =?utf-8?B?VEd4dUhRc1hiUnM5dXRLY1RxWklYVXh5Mlh5eGNMOUlCWWVNSFdJenlBamNC?= =?utf-8?B?UjRQM1NRMXorMkx2bzBYaU5JMlk2dGNyMndmdmFpTjlrZ2ZGTFhtYS9talBa?= =?utf-8?B?TXJ0MGlLSlZMeHdxK2oxNExjYVkwQitXSSs1eFZoZFRuaUQrdXpTT1ppQXZW?= =?utf-8?B?b2xUc0RWWnZUcjV0Z0Jhdm5XSFpiNWtnVGVQdW9iTXVkMnhHWHh2Z1krTFhq?= =?utf-8?B?ZTU1cHQzeW94QndMMjNkb3hjS0p1UWJWMDIrZjV0ODc4VnRSNk81T1pEVitX?= =?utf-8?B?Q1RrbnJGUitsU0xjeGJDTzMxT2JDZlA0Z25rWXBMa2pWc25vTjc5WHl3WStt?= =?utf-8?B?UVVqaEZNYmlwVm9xLzdlRzR1c3BOc0NGRVBxOFBtNTFPSXZUdEJhM0IwcGhs?= =?utf-8?B?S2FRZjFIRmhoT3NBYm9aTDFtRlRlNTV4RnE5MW9TV2F2SC9obW90UGdWbi9M?= =?utf-8?B?bi84Tk9TK3BSUml4YTE0alFGbklyRThVbFJUdWpVKzFiZmQvRmRLbEljUG1Q?= =?utf-8?B?ZUJuZlVCQTVsN1BXYlhMTG92Tkxub2dBbW93QXJJRDJSb0xDejlGWHRsRTBh?= =?utf-8?B?bW92a1F1Qm1MRWx0RTZ3Q2toREZIY0tTL3l1eHRCdWc0eW1zUStyTit2bVU5?= =?utf-8?B?dTE0a1BDZEt2VUdCY2JSUVRrS3d3WDdPMUVzamVzeUl6NFVoZklKZEYxTmJO?= =?utf-8?B?UkdUbm9jMXg2VU1oakwxMEdtWjRVcGp4OUIrYmdlOWZrR3Qzc2I3R3hoZFJo?= =?utf-8?B?T09CR2hQM1ZXdm9BdTk4NGFrWlJmekVVM1dybmNYTGsrQWpoSm9PekpBcUtt?= =?utf-8?B?R3lvaGhkNHJwWFdxd2RTR3hIbndmdnFtM2Y0ZnQ3bnJ2U21xbnhHeCtYMXBE?= =?utf-8?Q?7RnBK52+9W6GcMZk=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d4636d3-d615-45d3-fa77-08de6d6c6e86 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9224.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2026 15:02:41.3107 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SU1V07VkUQKopWg6u0wMheJpClYNbBmpP4Z478RkVeKtnacZ8RrHcjqa955PhLetvjR/qYQJE1cPaBWP38vMyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB12026 Content-Type: text/plain; charset="utf-8" From: Radu Pirea Replace DMA single transactions with DMA cyclic transactions. Characters may be lost between two single DMA transactions if the CPU is running at lower frequencies. Signed-off-by: Radu Pirea Co-developed-by: Larisa Grigore Signed-off-by: Larisa Grigore Tested-by: Jared Kangas # S32G3, interrupt-driven --- drivers/tty/serial/fsl_linflexuart.c | 119 +++++++++++++++------------ 1 file changed, 68 insertions(+), 51 deletions(-) diff --git a/drivers/tty/serial/fsl_linflexuart.c b/drivers/tty/serial/fsl_= linflexuart.c index dff37c68cff0..4598c7ff669e 100644 --- a/drivers/tty/serial/fsl_linflexuart.c +++ b/drivers/tty/serial/fsl_linflexuart.c @@ -6,6 +6,7 @@ * Copyright 2017-2019, 2021-2022, 2025 NXP */ =20 +#include #include #include #include @@ -180,7 +181,7 @@ struct linflex_port { dma_addr_t dma_rx_buf_bus; dma_cookie_t dma_tx_cookie; dma_cookie_t dma_rx_cookie; - unsigned char *dma_rx_buf_virt; + struct circ_buf dma_rx_ring_buf; unsigned int dma_tx_bytes; int dma_tx_in_progress; int dma_rx_in_progress; @@ -210,28 +211,63 @@ to_linflex_port(struct uart_port *uart) return container_of(uart, struct linflex_port, port); } =20 -static void linflex_copy_rx_to_tty(struct linflex_port *lfport, - struct tty_port *tty, int count) +static void linflex_copy_rx_to_tty(struct linflex_port *lfport) { - size_t copied; - - lfport->port.icount.rx +=3D count; + struct circ_buf *ring_buf =3D &lfport->dma_rx_ring_buf; + struct tty_port *port =3D &lfport->port.state->port; + size_t count, received =3D 0, copied =3D 0; + struct dma_tx_state state; + enum dma_status dmastat; + int new_head; =20 - if (!tty) { + if (!port) { dev_err(lfport->port.dev, "No tty port\n"); return; } =20 + dmastat =3D dmaengine_tx_status(lfport->dma_rx_chan, lfport->dma_rx_cooki= e, &state); + if (dmastat =3D=3D DMA_ERROR) { + dev_err(lfport->port.dev, "Rx DMA transfer failed!\n"); + return; + } + + new_head =3D FSL_UART_RX_DMA_BUFFER_SIZE - state.residue; + if (ring_buf->head =3D=3D new_head) + return; + + ring_buf->head =3D new_head; dma_sync_single_for_cpu(lfport->port.dev, lfport->dma_rx_buf_bus, FSL_UART_RX_DMA_BUFFER_SIZE, DMA_FROM_DEVICE); - copied =3D tty_insert_flip_string(tty, - ((unsigned char *)(lfport->dma_rx_buf_virt)), - count); =20 - if (copied !=3D count) { - WARN_ON(1); - dev_err(lfport->port.dev, "RxData copy to tty layer failed\n"); + if (ring_buf->head > FSL_UART_RX_DMA_BUFFER_SIZE) + dev_err_once(lfport->port.dev, + "Circular buffer head bigger than the buffer size\n"); + + if (ring_buf->head < ring_buf->tail) { + count =3D FSL_UART_RX_DMA_BUFFER_SIZE - ring_buf->tail; + received +=3D count; + copied +=3D tty_insert_flip_string(port, ring_buf->buf + ring_buf->tail,= count); + ring_buf->tail =3D 0; + lfport->port.icount.rx +=3D count; } + + if (ring_buf->head > ring_buf->tail) { + count =3D ring_buf->head - ring_buf->tail; + received +=3D count; + copied +=3D tty_insert_flip_string(port, ring_buf->buf + ring_buf->tail,= count); + if (ring_buf->head >=3D FSL_UART_RX_DMA_BUFFER_SIZE) + ring_buf->head =3D 0; + ring_buf->tail =3D ring_buf->head; + lfport->port.icount.rx +=3D count; + } + + if (copied !=3D received) + dev_err_once(lfport->port.dev, "RxData copy to tty layer failed\n"); + + dma_sync_single_for_device(lfport->port.dev, lfport->dma_rx_buf_bus, + FSL_UART_RX_DMA_BUFFER_SIZE, + DMA_FROM_DEVICE); + tty_flip_buffer_push(port); } =20 static void linflex_enable_dma_rx(struct uart_port *port) @@ -348,8 +384,6 @@ static void _linflex_stop_rx(struct uart_port *port) static void linflex_stop_rx(struct uart_port *port) { struct linflex_port *lfport =3D to_linflex_port(port); - struct dma_tx_state state; - unsigned int count; =20 _linflex_stop_rx(port); =20 @@ -357,14 +391,12 @@ static void linflex_stop_rx(struct uart_port *port) return; =20 dmaengine_pause(lfport->dma_rx_chan); - dmaengine_tx_status(lfport->dma_rx_chan, - lfport->dma_rx_cookie, &state); + linflex_copy_rx_to_tty(lfport); + lfport->dma_rx_ring_buf.head =3D 0; + lfport->dma_rx_ring_buf.tail =3D 0; dmaengine_terminate_all(lfport->dma_rx_chan); - count =3D FSL_UART_RX_DMA_BUFFER_SIZE - state.residue; =20 lfport->dma_rx_in_progress =3D 0; - linflex_copy_rx_to_tty(lfport, &port->state->port, count); - tty_flip_buffer_push(&port->state->port); } =20 static void linflex_put_char(struct uart_port *sport, unsigned char c) @@ -501,11 +533,12 @@ static int linflex_dma_rx(struct linflex_port *lfport) dma_sync_single_for_device(lfport->port.dev, lfport->dma_rx_buf_bus, FSL_UART_RX_DMA_BUFFER_SIZE, DMA_FROM_DEVICE); - lfport->dma_rx_desc =3D dmaengine_prep_slave_single(lfport->dma_rx_chan, - lfport->dma_rx_buf_bus, - FSL_UART_RX_DMA_BUFFER_SIZE, - DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT | - DMA_CTRL_ACK); + lfport->dma_rx_desc =3D + dmaengine_prep_dma_cyclic(lfport->dma_rx_chan, + lfport->dma_rx_buf_bus, + FSL_UART_RX_DMA_BUFFER_SIZE, + FSL_UART_RX_DMA_BUFFER_SIZE / 2, + DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT); =20 if (!lfport->dma_rx_desc) { dev_err(lfport->port.dev, "Not able to get desc for rx\n"); @@ -525,11 +558,8 @@ static int linflex_dma_rx(struct linflex_port *lfport) static void linflex_dma_rx_complete(void *arg) { struct linflex_port *lfport =3D arg; - struct tty_port *port =3D &lfport->port.state->port; unsigned long flags; =20 - timer_delete_sync(&lfport->timer); - uart_port_lock_irqsave(&lfport->port, &flags); =20 /* stopped before? */ @@ -538,34 +568,17 @@ static void linflex_dma_rx_complete(void *arg) return; } =20 - lfport->dma_rx_in_progress =3D 0; - linflex_copy_rx_to_tty(lfport, port, FSL_UART_RX_DMA_BUFFER_SIZE); - tty_flip_buffer_push(port); - linflex_dma_rx(lfport); + linflex_copy_rx_to_tty(lfport); =20 uart_port_unlock_irqrestore(&lfport->port, flags); - mod_timer(&lfport->timer, jiffies + lfport->dma_rx_timeout); } =20 static void linflex_timer_func(struct timer_list *t) { struct linflex_port *lfport =3D timer_container_of(lfport, t, timer); - unsigned long flags; - - uart_port_lock_irqsave(&lfport->port, &flags); =20 - /* stopped before? */ - if (!lfport->dma_rx_in_progress) { - uart_port_unlock_irqrestore(&lfport->port, flags); - return; - } - - linflex_stop_rx(&lfport->port); - linflex_dma_rx(lfport); - - uart_port_unlock_irqrestore(&lfport->port, flags); - mod_timer(&lfport->timer, jiffies + lfport->dma_rx_timeout); + linflex_dma_rx_complete(lfport); } =20 static void _linflex_start_tx(struct uart_port *port) @@ -827,8 +840,8 @@ static int linflex_dma_rx_request(struct uart_port *por= t) { struct linflex_port *lfport =3D to_linflex_port(port); struct dma_slave_config dma_rx_sconfig; - unsigned char *dma_buf; dma_addr_t dma_bus; + char *dma_buf; int ret; =20 dma_buf =3D devm_kmalloc(port->dev, FSL_UART_RX_DMA_BUFFER_SIZE, @@ -860,7 +873,9 @@ static int linflex_dma_rx_request(struct uart_port *por= t) return ret; } =20 - lfport->dma_rx_buf_virt =3D dma_buf; + lfport->dma_rx_ring_buf.buf =3D dma_buf; + lfport->dma_rx_ring_buf.head =3D 0; + lfport->dma_rx_ring_buf.tail =3D 0; lfport->dma_rx_buf_bus =3D dma_bus; lfport->dma_rx_in_progress =3D 0; =20 @@ -883,10 +898,12 @@ static void linflex_dma_rx_free(struct uart_port *por= t) =20 dma_unmap_single(lfport->port.dev, lfport->dma_rx_buf_bus, FSL_UART_RX_DMA_BUFFER_SIZE, DMA_FROM_DEVICE); - devm_kfree(lfport->port.dev, lfport->dma_rx_buf_virt); + devm_kfree(lfport->port.dev, lfport->dma_rx_ring_buf.buf); =20 lfport->dma_rx_buf_bus =3D 0; - lfport->dma_rx_buf_virt =3D NULL; + lfport->dma_rx_ring_buf.buf =3D NULL; + lfport->dma_rx_ring_buf.head =3D 0; + lfport->dma_rx_ring_buf.tail =3D 0; } =20 static int linflex_startup(struct uart_port *port) --=20 2.47.0