From nobody Sat May 30 12:36:03 2026 Received: from GV3P280CU013.outbound.protection.outlook.com (mail-swedencentralazon11020110.outbound.protection.outlook.com [52.101.75.110]) (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 DFF47364943; Fri, 8 May 2026 07:01:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.75.110 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223704; cv=fail; b=NI1g31/Po9E6v8XK9KMZEwzYiO5WhOiQbw+GotNKvfwkC2SZN246380Xm+4KoIwdnEfVuu4rj+QYNQjcO3/u7wivYMFIJMyV8JVrdwKQmZzhRgHxVCWLo72X9Z1rOuSO6wrD4FVmx0/5V2GECngcBvaHffxjCXSovwVCFqWjboQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223704; c=relaxed/simple; bh=iHaGKjbe+QlLqqxHRDlVGg3BbJGp9G3RQ6CpJ6Q/5OY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=NiXrhWZRcYJVmEnOUgz7M3y/MZhk7YNFrTELlo8991ivkTJFZJe+7tAyI85QgoDaOnwAGmtMcWDTjrkUwmnUf19JqXAMOIDXtaujBJEWuIIyl9ynqMjBT7l45oyDeMOlZYJ21vt3QyMb4nwxbFsWbdgoI2HEiOpecSIli8Lt8Zs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=WXm1UE1E; arc=fail smtp.client-ip=52.101.75.110 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="WXm1UE1E" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DdAn/pOIb5obxKJrhtd0uLgJLJBWwig7IqjMwjQkfzuCDNheF3FyTgMxgoptTTti0WVluO4OMfIhG48reEFtSPdXVIy3EirETt55amUIKHxh7fZHR4UYgZeUOu99pTx8QR4tpm4FF2CFhkcQD+6l6mgH85lYcQcFyKE1tBpEuQtdCyiC8oOwwHmxpQEgReikqkXtnOyV8xC1pOyYy7tTYyiW1xa9LcTrgOWJwyizcW1g33RoTHqeBhNOIBrNj7bR903vgfH0+p2hjiSiT7V1jmJAoA+gjFrhkNYsC6Dcke6coRckI8fLGyGb9ME+OivWHD4Kjrm43VTlVAXoXyZjaQ== 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=Ib0glqtaDPjZfamUy1qCbdjc777gfEQHnGzoalLfnYA=; b=iiwfa0jOr5+77qjsMcOWR0KYpUnFixEPcu5wVNTwr2bmVmgRnjuGBPHg5D3fWGIo0nUydB3svDswSKz9PdVwFH4+p+mTxnUvBw2/cP8bMyzVbwCVZb5TL76ZLkXnmH2InD6VxQzk/nmuWc5TwvVvpw9OZAfe9okYGV2AXYdbQGyVq/9XKSr6sDf+/EGjk7R9jN7UzlkR0zfVNog0Nbd3rRJDK0HJnh9YErldnJECPAWlaCHQCHQJi+Kxmu+H3u4Xs+/ODzvhc8Exu74udPtjxTe0xdPn2Vork58QTeRebxlgGGeUvyQtrPTiERHBZTCN/JMqdQGYfe8rGNosFD8Lyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ib0glqtaDPjZfamUy1qCbdjc777gfEQHnGzoalLfnYA=; b=WXm1UE1Ed/CHbQS8OPXS0jlOBs9GL6oIpqt3ySIym5DLWIsnxp5onZ0ADTfHQeon2LfvlKclj63S0A7KNe7iYr7wdu253uts4S0bYSiy4WC4Xx0v+O6rKHnM0PumIM5ijfqxUqGrUQQLd2AwYV6b1WhjLTAaF7NaV/r9PBN83PhskI9NOaIFJwY6ibhLE32QolZaiKOcevSoF9CU4Yo9mwOvaKN0bob0j3pPQf0KT9qAhTcjy9f0QgdDfhfKcaOiHBEBdnHqGicEFigkUFuExRk4qoMXA90Q5uZe49QfAnYj4IrD9VN7xl73T0wCjRoBO3bQ6wlSwVy4ajsN/n3QxA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB1876.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:24e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:33 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:33 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Ludwig Rydberg , Krzysztof Kozlowski , Arun Muthusamy Subject: [PATCH v7 01/15] dt-bindings: Add vendor prefix for Frontgrade Gaisler AB Date: Fri, 8 May 2026 09:01:07 +0200 Message-ID: <20260508070121.6918-2-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB1876:EE_ X-MS-Office365-Filtering-Correlation-Id: 28e32c73-f138-4e63-afaf-08deaccfa323 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|1800799024|366016|376014|38350700014|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: H/v7TpgYWQaj6tI4zg+UvjgihX50hd3wU+4Z8IdPxudcyPvs1V7ZeC2oO6fPrtroWYqTxxMnDjIjLxClCBsa97Bdnq/mLYLwItnQ6sRhFR9YedfvvXzKulrOJzDA7VjBSCHwzf1BgAX2w8+ji71fGG4YpE1VTxKfY2EAI2SqFgFMqNtCiziKSPyIgsbLBdshqAWDdnfu2rmJWZIvr0c4ywEokTbkM6S20nTHiysp1+YSgMmIGGuifU/Km4SdPCcb6kZNWuXtXSs+1TuejkwWZ73iZzFZDcNe3I8/1FYaobGJq/qqkn46V3WYEqahlrEWbWCl1hhlb5cWaIhMU9Jl7KRiJNxP2W1+Ili3z9RVoXILh16Ym5+8Dv6ktGpTqhFvDobossC4VDfOeWS1lJndsAktm3MCMt8TTO+JeY9eHl+XvAMU6E1r749eQ2QVJ/vTEGBZwuYo6wSugF+Foq8Gu9T/qjOGDEWKS5S51ieiljtUpF9I8ZPPSHeZte2hgB8apMc4HiCI/K2LdXmNfHOb28t0u0UYF+A7jY30//fhfEU0MYP1AhloqrFqiQY8H1KWsGwUHosluLIXrkXKwnWkXuVs88rXCdPLbP5hLt9MpJFbWCrS+aKkri/+7Fv8x+RIE3gNmkEs3LkTpa/viuc0ydVPVc0RV9V3XD4YMy6XLSJLOxi2Fk/qg5eQGZNvTRaGYOAw3316oBbg3gduGhf3Pw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(52116014)(1800799024)(366016)(376014)(38350700014)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ylV/op3gf3WgfYo4VhOoRfhd1j/uLcrHsStbpI3Dk6JWQeOer0eV43E7gPgK?= =?us-ascii?Q?18y8U/q8QwSgtnksqMmEg1satcKGH35Adzs3vtimWWM1nFJ0McRGngOS7shZ?= =?us-ascii?Q?LX69/kbjVrK22iWJY9ayeP5QM7QombOpoAESqDXOimRf0ZHqLqMrdP9NWT4M?= =?us-ascii?Q?sVaImM8GbFlB2XjcACeZOaHtq99MuOqao4Ii7t0N/aoEMO0p32/m+5G3Mvh2?= =?us-ascii?Q?Q92/fYglKII7pwfqvplSBffjFU2jHRu4i5vIaqUruwMX6uirGSd2ghinpB5R?= =?us-ascii?Q?7Oz3N248zfBsE/LKqNS5wQX6a6Q7AhnYjpXucxiFcEWJXsgw+TdFPXojhhBh?= =?us-ascii?Q?yWnXMw7dlDXCmykg0IKiOLOalxuEBfbp1JvPbd3M2xdrlhWU4HI6gqlxFew4?= =?us-ascii?Q?CcVUTEy9YQFLCLrB6gS7SZrcHzWU283gCCemjz9l9lH8Cu3yG0Ui2nkKucOH?= =?us-ascii?Q?RbMYBrdcgIWOo3SJK/dDf8De8H9rl61sOkm4Apl6vdLRPbtvV1UYwBJZR/Xz?= =?us-ascii?Q?lycwnarNlOoXIu9ZjMmpPL3ebaaEWQx+/rz8VOtP9krvvyPa/jrpLPkPZ0BG?= =?us-ascii?Q?+Cwacqs5PWg/XgXHiT7r18trp3RmlHTfuHJfV7l6WJb+FSmE7KrmofbChhpU?= =?us-ascii?Q?XVcJQSaLgUxpWLlja+JeYUXjv1IQiuAgJbCpBKfuXLtnfY9VghVrdvMMk/Er?= =?us-ascii?Q?6ESKv8bbVrAS83sKBBb/9T+2MzyfaX5UPNeL1wj/hvVLPsNpIscdnO3blsoC?= =?us-ascii?Q?Y0b0zbUc/jl/X4izAkfdh7ad1Pq65/0oGI2qZPaZuvVUUu7MEgU3GRLMo9AK?= =?us-ascii?Q?rUAbmO5PHIOrzdd8LR7K7yO57B5p3N2COpBu9ImnhZ81qr0zaryHfhoz+Rnp?= =?us-ascii?Q?qGbTjK1Id+sYU0Xvwg3yMk1t239uAdGpqi2ETvYtDFgw1/vPZEFbu1oMuSr+?= =?us-ascii?Q?vKESBdF84ubBVnpA5HslLaM0WlNkRrCqILNxD5fo/8otJlw4ZoLAILCVbcZ5?= =?us-ascii?Q?AwNTWsahZHzAhZXxo9luGD6TYs0mr5BUrbUrlGhqSIiPtjEB/cfb8ZaCEKLG?= =?us-ascii?Q?OLxEUQ3clow/9fLDS69dF+uhPgY7wGCXR02Ow0xRhSIVturopG0dVP32ZHiR?= =?us-ascii?Q?GqiBhuWxGfhkKpQ5KS9o13uqiQRHPfJsFACsv7ZOmG2DHKxLkPWpmWDHOQBL?= =?us-ascii?Q?TqXXTmHF2QJ724NzmlXOGhum838tcf0v9bKizZFLzBM0k89Nai2UbQRgTKRB?= =?us-ascii?Q?1IyM0QYFpIVN56w6/AijXqs3aB8c0tiu1pO4swJ0SXS0vUwaN4Bjl4BsNgxT?= =?us-ascii?Q?0fbw3xcp4af3uq1Rgffu1f7IA0ruhoNU8+1soE2sYbxmcrkj3AMFkYzZQulA?= =?us-ascii?Q?iBCE2MFVSQy9r0xmUnY77dZiNmssCGjKldNZvcnNb9LJbBlchxodMlHaWDb5?= =?us-ascii?Q?ykB/Pg+8+65qVkmTCPwJD2Oixc8kCXZ5OZiti0vpud39yVrzEs0eRxsIjiZr?= =?us-ascii?Q?3xq6dOpKDk/GBbY62QHrMP6z+4ogQwtfbx8IUAPXWwKIaY3N2DKFAxm2rpCC?= =?us-ascii?Q?fskBDITDBrjd9XFxjPGqcBEOl4gULXQXsw5IZNjjtMLzeZatH5pQfi99vPg9?= =?us-ascii?Q?5eiopVL/v2TEay0YjTwR2gJq/BLTm7W7pHAaMS8RrhN7GC8JLrDA6Gct4W70?= =?us-ascii?Q?JDKXZir8KeuDZwBxXFxoal6Ic+rawx3GS3xMhyDarAqeJ7TjSI7mlB4MHa6Z?= =?us-ascii?Q?rapPnWmJRPpAlVIgc11Odg7CFjUwIGs=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 28e32c73-f138-4e63-afaf-08deaccfa323 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:32.9574 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bfL+L+L0yuDuxYoIqIGNYX9bgM7y7ueD9ChG0GwPAmqstt50UCPp3+MlBAVIplIDbNzOSHom3MqpdAVy7dkgz+VGtfn6FsKrSyGwllEDIVE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB1876 Content-Type: text/plain; charset="utf-8" From: Ludwig Rydberg Frontgrade Gaisler AB provides IP cores and supporting development tools for embedded processors based on the SPARC and RISC-V architectures. Some essential products are the LEON and NOEL synthesizable processor models together with a complete development environment and a library of IP cores (GRLIB). The company specializes in digital hardware design (ASIC/FPGA) for both commercial and aerospace applications. Web site: https://www.gaisler.com/ Signed-off-by: Ludwig Rydberg Acked-by: Krzysztof Kozlowski Signed-off-by: Arun Muthusamy --- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Docum= entation/devicetree/bindings/vendor-prefixes.yaml index ee7fd3cfe203..d70ec6226f0c 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -610,6 +610,8 @@ patternProperties: description: Fujitsu Ltd. "^fxtec,.*": description: FX Technology Ltd. + "^gaisler,.*": + description: Frontgrade Gaisler AB "^galaxycore,.*": description: GalaxyCore Inc. "^gameforce,.*": --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from GV3P280CU013.outbound.protection.outlook.com (mail-swedencentralazon11020110.outbound.protection.outlook.com [52.101.75.110]) (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 4BB2D355F2D; Fri, 8 May 2026 07:01:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.75.110 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223720; cv=fail; b=jMr1a0VEC1BnwBts80pQDxXMjpuY7MYRA+ppchnoVLYfVO5NU7UxwvKFkPhrMfYmzF/zk9PS3aPsFMjJ2qs0E5192tL0d12BqlPTFtVOZfVHlSaMnso04knd914D/k9mfbSZVGiCG9lgLVGHLG8iuECdwHiTJUtbpUVJEgvRv78= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223720; c=relaxed/simple; bh=bgxiL2CenjSgTX8ZyWNi0qXCIeEd1o7ChPjVwhCLiCc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YwieXXRmrExHp/y39c5V85f/G21Ps4x9zCic6lBdesXDv2//L+/CNuiBfo2jlYQFjtCnH8pi7XdHZ13EUkL4FxaKO6kJ3UpeXumtNZes0n4REg6BbJOdU6ZgFBadkcigjsFiPToMKOL3JC8L7RWQmsxT9NAj10rqmUdrrqci6jo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=J+jJ+cnt; arc=fail smtp.client-ip=52.101.75.110 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="J+jJ+cnt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DxaqeMfQtp1g6AVGgeesOr83vBoaJ1OX6I1yXJZ5ukySbomiWPZj+wbE20dtt321hYTRC/BKCcoetCpX1gujS86MMnt2iacWe9rKYkY9VHCblCHQa5iYTLSlKFDVbtEqKo+iuCACdno5gHWxBOIkW6FPFl3KkJrG8DWP1F7D8Ejzp1Vy+CGcz09JAvyjtb3KfAAt+0LIVHkieibY/eknOgbiW3/NhtxyYp684917wj6I8fqmH21KkXv8pEq/k6jN2O1ZmHfa2gSa+1XI8DNXGsE9SssR81ot6Mjygc73J8Bt0XiD7EQ7YuDx58pVC31HqdJJyGL/IRYlXg4GbnkXMw== 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=sKdKbsysS8VkeCXJuVcT399Xxcd+y14MQjnvsfRAtQA=; b=ypfgrcFTm/Sz+yd31NeZBTxTBdAVoWHdpKDXmT4L8n7Q3jEhrMn83NCa0cSzXm4Jd7bNUbRYnspHpUrP4SkLvfHjCq1dKbfiiplaZp5yA8/A+EoVX7MY5AMy2Xkt+mEeb4AN9qANCDXpyaB35xxgOvQ39QU8JFGI3XiuU2Hcy+5b80HKOdHlRhfE3DU6j88YQa1rgJ2san5NMZayxe1UCcMYP7WLmIPz+1SuGTaoGbWxxyUIsvKKN6AoJLPqqmP4IRiXod1U8zvBXWh3Hvz2c5zNGhGYPgK5e1ZVgHuBND1huPuCMW9SwoJm/1KrjST0KiY/+6qcpTyEWHOj2RHmow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sKdKbsysS8VkeCXJuVcT399Xxcd+y14MQjnvsfRAtQA=; b=J+jJ+cntnm4bzQ26BNH3W1WD0KKlqB+k2RrSB5IVp64JsIGZDzhG8pg98rkLTgGFMK7PYiBvSrBWUcUrt8nBY21feff0fO7MQ7eP0QgZo90xQLo3oFwVVHc/udZrimbFZ3A/xsX5R57q6n31X7qsLELr53xJ2AhYmLE8gpyXUgxATV6nWm6Js1/4UyvG4A8OAED8nn54E9dGOa6xaIez0v8zTzXeBl0GeoT8JIWRe1oLw6zkbpeT6jOLUENTb0IHDonrKXFTEIrBOh7biwn9zAzRAets6dsJ17OiveeEg20MLBFhJpeLvWT96OnK2Xwxvj+gLEd8fhLZ1pMwLLAAdQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB1876.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:24e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:33 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:33 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy Subject: [PATCH v7 02/15] dt-bindings: net: can: gaisler,grcan: Convert to DT schema Date: Fri, 8 May 2026 09:01:08 +0200 Message-ID: <20260508070121.6918-3-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB1876:EE_ X-MS-Office365-Filtering-Correlation-Id: 3961909b-4810-420a-c88c-08deaccfa35c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|52116014|1800799024|366016|376014|38350700014|3023799003|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 3NHA4MqJmvVqHG5m8b3IGq5TQCsHqmHCE8VQzhouNo3HEtk0jqxBPtdW2Ynu4J9/s9OMVoT78q5vGu1iaamJFhMa/3Mhs4pUcCe6nKDyV6MFPUMRKcsTxBIAdMiviUq6c1RXffjSofr9VO3sAKbhTSlMhNo2QmbeseogTKg2e4HnKqBqvKh5O9Ois1jMXXTSF5mksOg2nrq1qQ+lojNZQ2PqneAaDWG5o0ACHGuZjHABhi+bFHc4aseBROvc9nnpOfq2IZJsCAnO3s7yFQ5p0Kc5qWqfdV0IV8qE6xNqHbGMdvwfyvDbRvR6l8am9+ppyOMMj4YyetsDwsCRxlhJVTlHKhpeqBl4oXcM2iqFdkRX4ffEJna2lLn2dkYYvSVwG3dmJpJlSlsQuZ0el3kiWHAxSBmoAg6wooJzQYjkOCmKdpqmL+buDh2mIRFobYTEFqRCFxuBG0bnsxRKT97S5JXHBu5Y41ttYP6X6qT6Dmpx7xGCWqV5ael/1+ZQh9FB4z2NHh68tpC2AkiYze1v7iuCRaXWMJbnaFStqnladKp2AivkDjd9/dqBjCBnpPpPL0pmhoVZYjZ7xErKoUO9jYO2S560YCynfHturQsk/IIMOmGvkk73vD3KN0srSEJE/10qYlSzgL6wXgfh34ondOu3F8jTtgD5K4NGCxQXScUSC4xPJZeU2sOwjZrp+RcSJoL5iq4zlMMJ7UNKVK20KQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(52116014)(1800799024)(366016)(376014)(38350700014)(3023799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oKiYHdYQM5qn2Ydq+NH61D0fBLDnpIFyiOLAOkAaNv4lzxHI8ebI5qSRHMdh?= =?us-ascii?Q?2CDJz+CGci0hs7UsyufE6/j17LeyxnkpZrEgpqfAnivMPo/C4H8P5Gw1s0p5?= =?us-ascii?Q?fkwNRB1OBP+1XjiFwjCFXyp5hfuW9hI6RkzzfAmqa703Git5ElEaKZtaJpP4?= =?us-ascii?Q?Z6fUDR5CfAZDOaUSJuro3zEjOkchsxKLdQCSa6MlJ3wndo8yoalGmke9PRj3?= =?us-ascii?Q?OSa/28Z6fbgSoBCdky3jN35dQUxdDG/j3oggblM2z/dr6syUKcUYbFHlRE57?= =?us-ascii?Q?V4I8nbanXgSPbdRHSfRcoRgtj4WEQQq19imS5yk6XspIkH+PWgcIWWgoU1HU?= =?us-ascii?Q?uJDS/SEKGoogb76gEeZ9eSlB8gsRyK3Oip/nvWF5BdLySzQd6qnO+tyMZBw1?= =?us-ascii?Q?2A6Cql/LtjlPsbCHbvL9jR+Vm7yGpcgzE4B2PWLEnFWg9w8jEs/2typdnhTD?= =?us-ascii?Q?qppvrh5BdKvBMq5o2/uLcPdOx//9qA/XBfVbAix5TVcHS+qN3AXfKojKRHbP?= =?us-ascii?Q?I9MTwl91heCxQ/qCk5H3jVQ3M0uETcNeOJwsjKl9D3Qg+yM+evPZwA/HEONX?= =?us-ascii?Q?TZqJ1XrxpgHppQQi6+16vuDyVDLxCl0djjiWo7mpZgBNQQXRwhjE3uJ2mLBW?= =?us-ascii?Q?pSnmpfqWU1VhuZriEdWi+rfFedZFfqR6NXaXqViwf+Y/Nuc/GFsasJv54mI2?= =?us-ascii?Q?Z3gpxyMgUmhmYO40KPSDqJoT9c7UJc2lHR3atpsrOP29m9ndrtlI5R3RLmUJ?= =?us-ascii?Q?kBK2QRqQOw6HLvGSwOFGNAyBfNSD91cb6RL4xfBRW8yaE4WfMmmYm1AByqvu?= =?us-ascii?Q?zr7B13uqFB1ohNSa2OtSh0Ril4aN5fDcdL/9ycB4c4miGCEkqNcQ3tIjLWVN?= =?us-ascii?Q?iwmzmNh+FRcDh7HN8WCqoFYxnlpeSOflmNer31yOUgFSmRaScG309xB0yRCb?= =?us-ascii?Q?SyWz7gMZKx+JxrfbOggNwS0wyOZVA0DwX/ewk7C2SHgrbZbIH0y/lAKr3JcB?= =?us-ascii?Q?n8T0hhDCok27Z+dN5Oxk+XrpzXG0xfHbp9UGIGuG81wLC6LLz2V0cuW3jENB?= =?us-ascii?Q?ZtoyB4wzbE1YPLUfL2pgewO/nNcliG6/63xUCsXkLgSeKSCJIei0zvxg++1F?= =?us-ascii?Q?P63uKdGDcwgYaY6pDd3O3se14wZX4UxHUeHJQmxbSpiDd/tzqaOzy/urwiXY?= =?us-ascii?Q?RHwhG1WB5HwVLnR82jNz2B36nCpvaQUIqI0ELr1uoejkg+O9xXbmvIMzRtse?= =?us-ascii?Q?vxnbu/BvLx5xluhBU9/sIjlrWQUTOEMEVzV3LjOmTbffLEL1T/M5X74rrAQt?= =?us-ascii?Q?VK6UpD2bbHf2pNNFpwWlTFpp0+taazwX2uWir9+QU3R9YUh1/ouf9ZKI+Xnc?= =?us-ascii?Q?2plKDtpa5uOmjj7kWE6mIqoyh7ZEGZcQXkzAJNA0FtoKbG9ZEOQRnVmq0Ff/?= =?us-ascii?Q?bDyo6tNlESViTIuqIzIuRVAo90Nev0Tp/k0f27WOrJWk4GWrksYr66oJjz3/?= =?us-ascii?Q?9BzX8eWhkin11Pe8CxevgRnBLyUKkNuO0zXL3LNafeQzfAL3nzoWLyd7dS8Q?= =?us-ascii?Q?3gJKwd/fWK3u+cVxdybVS+Fr4ovzc+ObSMckPq/mgb4W5inAK2hfsJ+Tfr6t?= =?us-ascii?Q?dOAIt6GrBVdAfg9QTPvGjRMJF3DyZK/rbKbjKSbbFYXx96PXeLFFde8+49XZ?= =?us-ascii?Q?EltLXugxODzs7ePzywjQ96tcepCwj1fPNWZObpJ8CkDYDrniBXTrzYsDwtmh?= =?us-ascii?Q?n8eg1ZNIGbiP2A0OvjFvGXzULsCqSik=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3961909b-4810-420a-c88c-08deaccfa35c X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:33.3197 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6rv9U1cfcGXHvMGdAkfP7BaTo6peUwi19pmkeHwym7HapuEfvgdAbSea14TI9EqO0GULER3Rp3GGEkdUqxWJowmzPEc0Xowhy2vuPkfSz8M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB1876 Content-Type: text/plain; charset="utf-8" Migrate device tree bindings for Gaisler GRCAN, GRHCAN and GRCANFD CAN controllers from a text format to YAML format. Additional changes: - Remove stale systemid property removed in commit 1e93ed26acf0 ("can: grcan: grcan_probe(): fix broken system id check for errata workaround needs") - Make freq optional - Add clocks - Add compatible - Add example Reviewed-by: Rob Herring Signed-off-by: Arun Muthusamy --- .../bindings/net/can/gaisler,grcan.yaml | 62 +++++++++++++++++++ .../devicetree/bindings/net/can/grcan.txt | 28 --------- 2 files changed, 62 insertions(+), 28 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/can/gaisler,grcan= .yaml delete mode 100644 Documentation/devicetree/bindings/net/can/grcan.txt diff --git a/Documentation/devicetree/bindings/net/can/gaisler,grcan.yaml b= /Documentation/devicetree/bindings/net/can/gaisler,grcan.yaml new file mode 100644 index 000000000000..8fea97c7319a --- /dev/null +++ b/Documentation/devicetree/bindings/net/can/gaisler,grcan.yaml @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/can/gaisler,grcan.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Aeroflex Gaisler GRCAN, GRHCAN and GRCANFD CAN controllers. + +description: | + GRCAN, GRCANFD, GRHCAN controllers are available in the GRLIB VHDL + IP core library. + For further information look in the documentation for the GRLIB IP libra= ry: + https://download.gaisler.com/products/GRLIB/doc/grip.pdf + +maintainers: + - Arun Muthusamy + - Andreas Larsson + +allOf: + - $ref: can-controller.yaml# + +properties: + compatible: + enum: + - gaisler,grcan + - gaisler,grcanfd + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + maxItems: 1 + + freq: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Frequency of the external oscillator clock in Hz (the frequency of t= he + AMBA bus in the ordinary case). + This property should be used by systems where the common clock + framework is not supported. + +required: + - compatible + - reg + - interrupts + +unevaluatedProperties: false + +examples: + - | + #include + + can@ff400000 { + compatible =3D "gaisler,grcanfd"; + clocks =3D <&sysclock>; + reg =3D <0xff400000 0x400>; + interrupt-parent =3D <&plic0>; + interrupts =3D <6>; + }; diff --git a/Documentation/devicetree/bindings/net/can/grcan.txt b/Document= ation/devicetree/bindings/net/can/grcan.txt deleted file mode 100644 index 34ef3498f887..000000000000 --- a/Documentation/devicetree/bindings/net/can/grcan.txt +++ /dev/null @@ -1,28 +0,0 @@ -Aeroflex Gaisler GRCAN and GRHCAN CAN controllers. - -The GRCAN and CRHCAN CAN controllers are available in the GRLIB VHDL IP co= re -library. - -Note: These properties are built from the AMBA plug&play in a Leon SPARC s= ystem -(the ordinary environment for GRCAN and GRHCAN). There are no dts files for -sparc. - -Required properties: - -- name : Should be "GAISLER_GRCAN", "01_03d", "GAISLER_GRHCAN" or "01_034" - -- reg : Address and length of the register set for the device - -- freq : Frequency of the external oscillator clock in Hz (the frequency of - the amba bus in the ordinary case) - -- interrupts : Interrupt number for this device - -Optional properties: - -- systemid : If not present or if the value of the least significant 16 bi= ts - of this 32-bit property is smaller than GRCAN_TXBUG_SAFE_GRLIB_VERSION - a bug workaround is activated. - -For further information look in the documentation for the GLIB IP core lib= rary: -http://www.gaisler.com/products/grlib/grip.pdf --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021092.outbound.protection.outlook.com [52.101.76.92]) (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 6F97F382289; Fri, 8 May 2026 07:02:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.92 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223730; cv=fail; b=dSsAcN6AVZUMF5NCRCc71P4QngN1eKndCJM1Zi4bjQZC5femZgyQcBQuuoWrlpiKlMp+0ywWTocgTzLlkzRt7eDIGuEBnK+DvSdX4dWEbJ/Te+YQpk3W58Y7XIfi40iUSBXBZNSv+UNFa5AnaRf8ybSkxTKh2s+gTtkBbEkw4vc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223730; c=relaxed/simple; bh=5zkipCXGag4FuLHwvRv64hDYJvgKefjNobgEY0BNYgE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=dhj7mwcFh+Fv6oQysAb5eQtIurLsrRfqqmYZejFaYhEUr4jK1abUwkNYdFvnSneWZyiB4RhmknevtcGiBBl3xGnGeJmJdVwQuR1Lt60apXOIt5KVPZyXbN3e6YodzU0tDlmrT0cDM16GaPs/e3o/9hag+Vrffa1PkgLhbGZY4Ow= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=EtmTmwAc; arc=fail smtp.client-ip=52.101.76.92 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="EtmTmwAc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=twQ0HAAsih38YS/UYW/s3ZWZLwDkSb4UI0xMks6CCbfXlrG2bLtdReCKV4B6x30f9vlzlVrtQ3psvIilTxiZqlw7MKfle5HvxNkCHHzQr4i6ngP15Ag8RkIJ03Zy/UjxxxCkCRkNB0nNOX1m86SFP/o0pWw+bbbuOtTzSaTPRl3x/CvxRuWbmBbbO+h5d9NcrxY0t9IgRTA4FZywHoG2KAyyG4MPJ4Od4xEZbBETzPK8GRj/R4vzN0IjfCjbH3zbA6y+xK0e8nNmmZOH4m2F5KGq3qxHWXMs/rqrd0ipMiaqenwiubxfUKF64KW0U9MqRheWwflkc7VEhbkXTX4s8A== 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=qojfoq0VJ4RAW1ZLCCwvXPc9MEm2rqjzxKLfmBdADos=; b=XKuP52B6HJEfXKAG9UummqfP0J4I8L7s8p0IpS5Mq3FUQFM7SJ2LLdY9XYxWfqahfOBSJFnp0XVwGRXVAqp0MRbGdkpmpxmWzVhMA28fofQdbD8sap9hxteizWHkplkXJ01rh99w7U96Q0oamm27JCAUJJahO1tvf+7R1WyVH4BtDal77v55qPookxK70bEBZiHmi/zX8GZjYtCJX1cm6xsLnapM2tihrEnYciO+rrqEExnWmce2r+qZ7GBy/mZIqoExckykbbq7Lu/Ci0e2pjzbHNPdzsU/VRAqQzG2awkWBGgMbTbyYFXvmEk1X0IX/gXzJ2NpwHSezPECMXoxIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qojfoq0VJ4RAW1ZLCCwvXPc9MEm2rqjzxKLfmBdADos=; b=EtmTmwAcX53o/I7xzB4MFHeieL0vXTQPMUf7pPSALThcmB1ceF+lRRP7RxJpCVRzzriHNloXYQ9pDqAmGV6jwb4sgTvwGOmWGzjGAUl8+tih35CGqxrkR2VP+sqzWtrosf5DNxrK8oEo01Ywd7iMhgZZmbn+/jkiB4x3/Mr/lLjc5HmUL/3EYcyHbbLWO9yZddH7WKz36O5O6o8+9f5MLJK+ZXaqvzEjDwmKmPX18j/rWPHGByGcrHSXoDO3ce95RPbN1YiLexzQRLlRysVdndUHa+6c6qRTgMS1akODNgVmqXfS4t+p5aBf6JqSITGzLkaMVolP7psQKkkBPf4oIQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:34 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:33 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy Subject: [PATCH v7 03/15] MAINTAINERS: Add maintainers for GRCAN CAN network driver Date: Fri, 8 May 2026 09:01:09 +0200 Message-ID: <20260508070121.6918-4-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f67d5a9-316e-4073-afba-08deaccfa3a5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: 6E0dya4ZaH1/ap1+s8dgkvl8u6TVYJtRvXIy+eWSrj+wqhH72Mj2bCbHD1OuwBH1itXuhxto6zHn+LO4TqF4EnlTe6wuszwlbQbEa0SFj0iS490OdGfRS9Ekhd9PlnZtyWqK/IJzgOiUNJ3vYrArzqkRpnYn25qJ2uxhV2170iAL9sduIB4uS8d7Ui6BXVDNgTeudBp+Bi7q7UumEQbog1OaL5VbgdoCdrYjDgdcg2iHzeFhY+2BfpMxDgSlWqYtGwXZQsUiDiptcIP/ZvoaraIxCTQCZtBxpOyiXuGy+wDFSPVqQQToPEpxqnhYUNGhfLlwvHaY+uzz1xq1ZMQ2d5qvfsXIII27WGPLFzG8MVqwjCPwlvdhpCwkV5JeN5N1nOh2l82y2U2swEyh1K1GLasaM0r34F7B0HFeE9OH+KjE+g9GVPHs4+buYb3o7UsZTxi8a1upXBLvI3x7MfnvR+noRSLPvaVls/yfvd32S0zRGQz+tmkNyPS35nSImoMoOwTOr8NI4M5zI/pPc7DqrfR6E75pUKYSIkEbuK0jhBDRKOqYIEYB4ZOA53YDvc5DdhvGgrcPBxjwC0bfK12Bg7kNHpFrYU1QSLalB4YzgP122xQh1xj7BXZ3SslBbGcvZGkr9JzLhhEhvwE8jp+r2hqe26TkiLrB4lRlRCoPzDwjwTQdgTDXOssCosr6CSbRAKiDgqUTjspXFEEVM7V5QV7NbFIaaFcT1MdV020DhsDHsNxJBrnILfItoQb6PVCX X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?nuvyuF/LwzkQcjO8EQ/VmIPUXiGPWzZTUPYxxgYaQcTY0G+c8KCVB615oVtR?= =?us-ascii?Q?Im0+dbfyUKBESPRvfDo+78qSzpEQhVMG7PMziYoMtMJUPJbagTmwtNw1EReN?= =?us-ascii?Q?449DabrR5JMRLXKsDYXJNMDSofZAy82lCiOJwYGbMi3x5nVmMeQXO4skSV4V?= =?us-ascii?Q?nBnklIamQeUa/GtARInvvoBjZHtrdW++a/SzA9QMaBdFUZyvQWeHOZuhLoQC?= =?us-ascii?Q?/eryvd47Qs+0oOd1+LVVFXTyuyyMCWYDtaYHXYtugiXYDYeA6IWKFZolRjYu?= =?us-ascii?Q?lCYSGODJxXQT7XQ9rPx3wpwPB8aivPcQUVytACZyQ9gJSAZPtOYBWSfyPDtC?= =?us-ascii?Q?IBNDD8y1f2rbF+l9tVJxeWL5CAtJQSBxgEuUyw3zIR7XZW8EQDdGFpS3RZxy?= =?us-ascii?Q?Ect6ZmuehLLfubsO6L+OHWr51hPaTLqVhCqTK/QlduGVwNK0riD/u4LufXa/?= =?us-ascii?Q?puZCyvI1oaS25troyW9kvqcC5U6BEUoE9xzRePwxn/EVk8Bvg6JOqPbu7JAU?= =?us-ascii?Q?lgS/PyfeiBLrUpV7Gg1CHHySCFLThcVcfr5lsdNqy3ayphRCuVar15E41ABQ?= =?us-ascii?Q?5wo92j8hh9wn4zC7cjdUoHCz0vzJC5+CfAC36Klt7m0bsx0rndiVTthz+PDb?= =?us-ascii?Q?41Jm6f0yPfI1VwiUJF3ySM3SO9toTMgJ+C6IORDsWtLDlunv0TvhVesfmT9C?= =?us-ascii?Q?0tQJ+rxLZ8NoleMaOJnqLS8/8N7fn6zujOdVq+P5/+hO33s7QQMVgdvjpw+W?= =?us-ascii?Q?3Zmeq1ZIxZIYdEPeYFUZSKsxXZd8UqUZ80+4Fs7syTRaLAeegC/d1W1mZJih?= =?us-ascii?Q?rV0Y1QRxvuXpkvTtW8yHiWf44grtKmW5AU9tgH7Shyw6ddnYoLF/vL67oF7O?= =?us-ascii?Q?9XxIjBYBBk725PncPMcZUWJ0HZRtVSIflEVeeYyTweATXFIRULDXiJYhco8G?= =?us-ascii?Q?9BoVqdfp5NuDTEkeXTSpDQNtw+hfCz+y3n6nqPmkW2wSWJJBE2VEKguUSLq3?= =?us-ascii?Q?HQJFv5MJchKmnYRIyUyo2lfeX0qv7e00HfZSF+bRUuRZNg4o8LhyIYPkf0zz?= =?us-ascii?Q?xmc3yU5sIp0UcLD51Thh6GEhAAEpcombfIiRrzGginV2MLTvXCzJgKOuIYME?= =?us-ascii?Q?VCSpxdVB5X4nbnxbdsIHysdrxCQ4dQlfy4whgBJ8JZld6fLgjvQJvEYrbc0b?= =?us-ascii?Q?xurjptrZZ/Xkqt5/vRUbnXThbCMW856D1+5eJrDdWsl4Bz1Gx8Ek/aPuVNVE?= =?us-ascii?Q?BsKlBlzVcrs7s4XAgTFRCRaZNymk+4QidbXkXZWi+Ii9d8vZAz8AFjqka8Jp?= =?us-ascii?Q?7suCTXLKo5TJgIteeLih/Vo7woVbr0Zg9C7ASX2LYpaRv1TKpXtjFFywHhey?= =?us-ascii?Q?43l4JuugVGlRd/+N57aFyfARqJvc6eBDHRwCBbudIV2vUKRiL75W3p9c5FWt?= =?us-ascii?Q?++MG8NvISTLuaiqsR/IrfPsqDj/UtZDvo2aOuOFF7syID8VVreeTVGFvIyET?= =?us-ascii?Q?QO4KGaYEdKTVsnYWoeX5+GP3OB68Uci95zHjbN1ecNhJUEbszEs9XCZBE2j3?= =?us-ascii?Q?VNoFqdAW0rMAvtQ2JqZ6s8/Os77dzhpOj9iHh7OwCiepai8quH62IBXJLJnb?= =?us-ascii?Q?J8Oyx92mVTIU7jv8WsupWxB68ftQ0G+LQdpB6mCz8ZAV4xye96MSL7N1O3JC?= =?us-ascii?Q?FnO2xTknn+EpgKxaAzsh0NPZqQDNFlPagL2dDgXOmUMZwvcsYtb0t2LS+Rzg?= =?us-ascii?Q?lo0saHrFRK5e3rQ56evnM39VCKbFLYk=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f67d5a9-316e-4073-afba-08deaccfa3a5 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:33.8095 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bBAUOXC5lJIYbf9HWPT6P5pt0kfIr6BIOfKNluq1gZa+9SfECLsdbsZkoRV5okhEq1tqwXVZeZHc88uvJ1PDyfV+4IkwAnhrsivFm0LKxRQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" Add Arun Muthusamy and Andreas Larsson as maintainers for the GRCAN CAN network driver, This entry ensures clear communication channels for maintaining the Documentation and driver code associated with GRCAN. Signed-off-by: Arun Muthusamy --- MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 7a2ffd9d37d5..60b5d6212207 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10972,6 +10972,14 @@ F: drivers/gpio/gpiolib-cdev.c F: include/uapi/linux/gpio.h F: tools/gpio/ =20 +GRCAN CAN NETWORK DRIVER +M: Andreas Larsson +M: Arun Muthusamy +L: linux-can@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/net/can/gaisler,grcan.yaml +F: drivers/net/can/grcan.c + GRETH 10/100/1G Ethernet MAC device driver M: Andreas Larsson L: netdev@vger.kernel.org --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021132.outbound.protection.outlook.com [52.101.76.132]) (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 F167E3783B1; Fri, 8 May 2026 07:01:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.132 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223705; cv=fail; b=QQS64yD1kvWkSuogBgEyIItsqhKnrj9ROb/kB+Po1NdcXG1LplSA6aSuYNaQLeTR/RUliuIcxRIlLYzpmKjF7NAztXU2DwTcx92eFZbuVe7DpDSluKtS284lCFJ5RN3mMr0sh+njn3IIqlRDThgrJZGQbs1VkRGEiNXfkPoNQBI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223705; c=relaxed/simple; bh=3LFE8CzyrZ/p20GVqI5aJ5/Wr/1VHCvebowKEoxQHcQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=F7Yddi7x2+pvOMEp3GQF3VRFkyxtNfW3f+engXbWvRkCOnbb/8gbd7JEE64ioww1iOFT36cIqI+BFIuyaxyDuQJA6TpEDZs1V7ZyJp0iSie91grm0lxAQK/oM3cISv3JNg1J4sQ0a4mgLJPrHN3Aplc3WxoFep5dTfq2EtbwUa0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=FAtMXN+b; arc=fail smtp.client-ip=52.101.76.132 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="FAtMXN+b" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vD8FubzRU4wNmuk7tuaAGZgWMpgJ1HrXhDgBnYPqv09VpfZuhN45ZMD6w9vyBc5Zx6BKVuDiEB6o/C/FTfevMZUJKpYzNw46jWijc7F55jyLVgfQRks7/xANqCtyifgIV8wyT0GHm5D8Pcd1kYB6ECfD+FYfHVeQ8+IB6MANddmtZgUPHCrMeBDEfubUlb9+WYSRA0OisC6ihdHwUMFzNi3VPgueFl+DOvXHaIE+2cqVaYQe502i5UiPtN0Khc84G+E5DGf0WL47teI8G9V4k1yx6nscCvXTUW4pX9SUV0aFo3jmx9H83ciTznQxF3ywbizEQZLUuF/hNhi8ne7uMA== 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=+qCN5JrFpyFQZI/qdZzwdP2aAE4CcSJdh5LU7VVuuqk=; b=HDf9cCgRA5gGw/0ZcGQGvC8I2jmjJ+nZNl9lF0L3RsEu+WCd5mqKbO95TAfLMtn5say28PA7Xj547pOOnh3FFgyH6fOqChByn5212iBatrsehV2h7UnkZgw7+fXAZ1U8z41viO1ywz/b7N/4AzXFp05QHSqoKimdOKbbO9TywTA7LBAw0ElfsaYEjweAD9oldojGsckocPdxoBsyQlsICM2W3Tsc/+GOMQuz7QCE/2hU4FrDYuCeB2QccChZP4VlRvHdTkxwa3iYGRQvTTS1zwJKAaTcclp8JyyVM/rWAuoMYpibnUI4teGRLtPEznGVQDfKkVLR6AqiyvLAmN4NHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+qCN5JrFpyFQZI/qdZzwdP2aAE4CcSJdh5LU7VVuuqk=; b=FAtMXN+bp0M3AMDLoZh8yWgjJm0dt1QrkFx6vPRx5ChdfrV0G2qQQalDFxeOOQ5XJC5Q1Ni6znpTZjXRAnN9YVpyb6bqDxSn4sKPRPFX1LxwwbJZBKcwbhxrwA+XZdBKjWYQyreLcHfhqdTcfOO6fSS6mIuF15AiTjKAb8eEVBF8bthD+iDFlilEhxP/RswxCqs0pko6cKQ3FQX1zBuhV9s5SBY9VSWOQCXgQlzE8ID3aXrcGmK4iVuIO8AZ+loGbrPyE/vnAuOiCwUvt1oDHsIHqNoOpOk++Tk6HFkldfQDPooTo/LxcCvfGCh3M7PsUFgtD9cPfxEZbCOWGYkjgg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:34 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:34 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Daniel Hellstrom , Arun Muthusamy Subject: [PATCH v7 04/15] can: grcan: Add clock handling Date: Fri, 8 May 2026 09:01:10 +0200 Message-ID: <20260508070121.6918-5-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: 13a7807a-3ab2-48c2-4caa-08deaccfa3de X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: OFjsL+jsuUSO2PrSEuVfCJIL9NUW41WxtA7r5O+pRJ/mBJT20AZTsIbUjfL0S1CQTg2ls49v+qH+d7Vd53Va03Jg4IJr6Q4f/z97XAMPcBXmr8OwiJFkmu8eexYbZSaHYIhHBZvi8iTZyeqrsqqmcJxSgCh0jVqVHSirJLyhKSBgM21XxvmaWXJ2VY/8LvPAHHd9ihJEUId/zmA49A1OqUsdvY9kiEg+Kc+/YaZC+WfxHtNTqy0dwD0bTfso9ndZZ44Nvu8ZoaVY64AqDM5Kv2/DaQ76fKmDlwPYr2JAse4ONXBlmPt1Ax1ztOc0dvmqbxpnrmHuDKMDvO7paIyWXlt7kY6QPhU2Y9JOtbaT/O3Q10Ltfc1IHAfxIyTWTSTnlAa4rCUijv/v/8JXfKyf8xuZlMetiCHhrPbgcQtxg06D0ozBeLGTLOeQcyBlm+ooa1T/YHZMpcWKrZjmzRovrFImJQ5DK9Gt+8IvlW0vBPvFY2vnl+Q2++F13I9EIYRYtCIFNDZVsi3MZGwxV//GDA6JRjFu9kT1Nc5Ol6dkzLXV88o7sU3f51ptQ+eKO3fGzRrY40NW85m882DxXlKBWu6ADAcLUo7Dsqi4p0rJG1tX+EcNLtlSoAtPLPJGah2RmDTCdr7uVAf6bw+bJjGItczI/ue7/UzBdpkQq6+yWU4xwZHrPOYJ3NtdkFie/AQ+a4NxmZBQjJ7DvRc5gGTDTjrsVEsG4aO69XsOqq2Gcqd4qef8xQll03itdo8C9kvB X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kYqeBxcQEN7uX9dPVH+tJ1jKetDOxG9XAXgarjWVEiRNTnXtO26Z54g1oxM7?= =?us-ascii?Q?jLk0tew/IjJNl7dQBNDHLPl5zbetPyvevB7CCQElSdfnZjoVSa0UYE2ss2cA?= =?us-ascii?Q?exUMskDhSML4/onKP5sNlvXkGU+3SgjF2R63Khrj3bmLHgxftoaDymhACo9S?= =?us-ascii?Q?eqIH33zRBnDo/aBV61BzFOCzr6JxXgmEOwYm9YX4T7rYqLQwYa8TZ9rFxqPR?= =?us-ascii?Q?6/zi8dS1FT/Jqnl53o56Afb4+QCBiLkQShe0i2B1/ZFkY4KpndEmpMlKKS+k?= =?us-ascii?Q?q3ydWNY/s4GB8/sGvycU4czEyOEYfRaLky+vljv1rDtLQ+tyKDNGQhTG9PnH?= =?us-ascii?Q?63q9PFG+T0cozpq7pvFDaryB4Jx+UUS6LBzooTxhpU3i083yWzxE/PDPAQj5?= =?us-ascii?Q?k8VWb7EV0YTiB71w2BWfTh3LEv/mKRVrIJ1EHCGNxFzV81ni4oOKRn1FDWkE?= =?us-ascii?Q?pGa5I5KOzQZYjRlXgDcPiNaHe8Mdkld3AsmAIksODpnSxc5lXQqv9SrYi9/Q?= =?us-ascii?Q?D+Nm1YppnqwzPRcdWAt+VBPyXZ6pnoD0AnWYr4PlPxS8j/ZlcEq4j4eT+Lwu?= =?us-ascii?Q?kI/OGLshmYI5AIcXIiJR3oa/XP2PIw4mbzbsNvKF6WpTwG2oyksn6I34VZVW?= =?us-ascii?Q?edFFh4kjWDXfRgTEivTwTZ0LL4mlPiRY3dnLp3y+YKj3PeClb1v4kWQ95smZ?= =?us-ascii?Q?8gX30yiYjOuP6XfZiBCx3MHHtAsVcz9IFxPSSQyOfa+C7os6wAvErY9dtI2R?= =?us-ascii?Q?FvQtNapZZanYrohGhtSwaM4GCuYlPwuDG0rpPFxvCgpFpdnStCSYZ7krzvAI?= =?us-ascii?Q?0RLz0kObn4/Kh/srmxSSVfdlHsu5+YS/90XzWElIuKV+mXf/mG8m8WDJgTs0?= =?us-ascii?Q?v1WjluHcXPJpUpCWGt1Z6Ir8LR4tQfryKxkrzBUu5SNzo9MaopNBJ2PC0nVM?= =?us-ascii?Q?qgCOgcDOx5uH1S5kepg4UNcMLu36C4t08uQy36fOKa7B/NQlt0FVUIulfmPa?= =?us-ascii?Q?4PRPenXcu6znhij5Dr262g0jL1fc+7NbrdpJFLFZdDR5FUk3hZu3TiF9dXZc?= =?us-ascii?Q?xBhJTSuJkCpz24w3zQ3R017MuUq0dczy+mqHlAqLveEoyWa647sCXRWtUUvP?= =?us-ascii?Q?EW9CVtBNcNPRHhLwl234n9kynvWi0QuqKTRBBUMsLhQ+ZPG9sEabYSBg1IUy?= =?us-ascii?Q?Mf6yc2xdRcJoxddHORtjmDZpcKw9evPkv5h3hyHfquyt2+91h3YVrYTgALnU?= =?us-ascii?Q?ibOLk3/PUvsy+FrPX2ydXG0Ri1P3Z+dXiNbw7EBd1H/nglF1eMzWs8CMjJmS?= =?us-ascii?Q?/rD6bXMLGSj8+VnNBz311cBVgjfbqRstPHzPeklvF700sQG0whW0G7WrhJqO?= =?us-ascii?Q?xZWxie9eizQqLk7Bvt8KhqmDxwi/qSrYJ2VTqz9Xczi8MVhjWm3mA7pQAmip?= =?us-ascii?Q?obdIv+gANdPqebVGTS4brYXNuKAsKh3Jec24k9QZ61VV+vlaExo4+yXqYZbS?= =?us-ascii?Q?RkvB8gaSqIT3wTdkFzCFKQFCjh5mZxUfq6nBvODpSaZH1G9zsT+C6jVO1e1s?= =?us-ascii?Q?DezTkgt3dWOgbo+g0Hzm+flOOg8N87mLhS0NICzvncbN5CclOcthZglxPhi8?= =?us-ascii?Q?JGzoNDXsr71MFDj/KPrJ6fRrSy0GjXDKLDZ4Pd+K2gO4aifjMTVgOjQbOUYB?= =?us-ascii?Q?c2SbUNF8Tju6nmsPnv1kRccBjxxefv9F3RNpnh3sa/rI+KEB5xETKWjiZq3c?= =?us-ascii?Q?lxff4Lotwru10xdX4xz1iylXkqh15zg=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 13a7807a-3ab2-48c2-4caa-08deaccfa3de X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:34.1811 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tkX+pQsjW3v4gIKbptHHQB7jjX5G2yioe2Xntrj3yHxor8rEM9rAUwyl34h5QRXT4aZeFgp5xJdywQyOJl313pUfMRuU2Hnhz68jnt7m7+s= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" From: Daniel Hellstrom Add clock handling and add error messages for missing 'freq' DT property. Signed-off-by: Daniel Hellstrom Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index ce12fa6df56d..a5f750d7e2d8 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -34,7 +34,7 @@ #include #include #include - +#include #include =20 #define DRV_NAME "grcan" @@ -1643,6 +1643,7 @@ static int grcan_probe(struct platform_device *ofdev) { struct device_node *np =3D ofdev->dev.of_node; struct device_node *sysid_parent; + struct clk *clk; u32 sysid, ambafreq; int irq, err; void __iomem *base; @@ -1662,8 +1663,19 @@ static int grcan_probe(struct platform_device *ofdev) =20 err =3D of_property_read_u32(np, "freq", &ambafreq); if (err) { - dev_err(&ofdev->dev, "unable to fetch \"freq\" property\n"); - goto exit_error; + clk =3D devm_clk_get(&ofdev->dev, NULL); + if (IS_ERR(clk)) { + dev_err_probe(&ofdev->dev, PTR_ERR(clk), + "Failed both to get \"freq\" property and clock for fallback\n"); + err =3D PTR_ERR(clk); + goto exit_error; + } + + ambafreq =3D clk_get_rate(clk); + if (!ambafreq) { + dev_err(&ofdev->dev, "Invalid or Uninitialized clock\n"); + return -EINVAL; + } } =20 base =3D devm_platform_ioremap_resource(ofdev, 0); --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021139.outbound.protection.outlook.com [52.101.76.139]) (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 137771B6527; Fri, 8 May 2026 07:01:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.139 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223712; cv=fail; b=WAbd1aH588FfZsMzqWaEfYRPMInTe+CN584iNQRwKiTYpJv4Rh78JjN1e58zJWeMPS4s5zJkOG53vJkWndBtPc78oaURedl5noxnecaDVJsMVqt5AVJxF6ZZFLWy+L9QKVwSAJ9QhpGiiGRqCuE5ubQjmJnF+LpqC6r9P+Ze1QQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223712; c=relaxed/simple; bh=Y2YnclN31Y11o/f370dWt2CkcvwhRa1BleFTyaBumFY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=nMaCrBOrsQFoyadLfOASampXWAsWM5GuGwcHjmdKaN5tH3/iVO+q/6VoV8OwEmU5fpgfIUy5NaRhGFsvT7xDpI40QsAPBBHRhkqZU5wL0EzbmNhOJ1E8UvFAdG9w4xSa7ZjMYOqtdjtJLbL2Bi2gG1FoxkYUHIbIkjh8scrBIcc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=YHs6haWI; arc=fail smtp.client-ip=52.101.76.139 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="YHs6haWI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R7oQUiKKxflaQHFR38khyl3nxoFGu+eXDHln0gXgFPhkDIffuIJuMLm0pGWKNUKpJNwPEF49bjRSwImWYZmRKdTNQ9IL5ssqPg1g7vK8BJNPpbE7xkmFaKuazmhhPJSfkumrJqfqS/6AOIZ4aTvMqZ3boG3awu1fMHrf28Fof+APLF0HXw/ZPrXLbXjd45lobnjJFBr4jXsJGdOZHCxj9hDsbpiV/xM9UKFCfGN85D9dDwkhypSmtFxIkEbUIJcfISr/R/PznLoMOD87JFfKxloqMI4s1uy8ofGsXZsmxefhE4mNMUYnS4v//gM39uur6Sjgd4f2aqoMBNrJFTEv/w== 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=EjezKLMwKyz4V/jypTMtZXeabjB6bJUTtswONRYhbRs=; b=jjR3n15AVX8Ht7ACKBh3lAzWeTB65MQoj3BF82wT6XKcJDP7nH124O6uXMx3meI4kRiYPwXDEcSzYq641Zt5Vl75x1srpaE1j9I0uX578x0aVg1Mk+EiIYJsiBlMFNcZeCdWietIv0SgSiBATSs9pWLCpKijcVgkSPkKuYq/nAfDYE/SsO9TpXEh5li++fGidSOr23s/No9WWnGE2CkFhq4X6AJ9vdVx3x+hcze0xeOvyrh/DRwQodzmLSxFSIxdLCqMnyzvMuoG8jH8a0qWsHyjOe2nu+d7DTdDYoa4/x8CJlAa1dpTnRTxH6Ihm5DxHwwoxPTs4EnH2wQnOPa9mg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EjezKLMwKyz4V/jypTMtZXeabjB6bJUTtswONRYhbRs=; b=YHs6haWIfB9fyBsFOGJeb+pDyqOjaORFsBRZWVASnXCx6qyojqgiBAcSO1rzgZZndH20fH/CaFdtj/QwkAssgG/3aVrbOCyLdcPD9GjJUhQSnmVaV0Vcxdx6iaXWEodGT9PCQKXY3A3a6+buFlnDDFCBtaVDh0sgMypqM9YLPElGV0iPCNoWNwaJ7b+7Jl9JCYTJqzrFbZgI1uOYGtCbYwoZK7mQ83GVFxo8KG2T0fHiBkMP+DwVVLh8Bps7bU+OO/1edvcaSid5pBsHijfEmFZKT8l0GlMe/zIAyTf4zLYclNxmH1BOA20EQ9xPM7aFrNWRZUxUD+QXzDHiwmskXA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:34 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:34 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy , Daniel Hellstrom Subject: [PATCH v7 05/15] can: grcan: Replace bit timing macros with literal values Date: Fri, 8 May 2026 09:01:11 +0200 Message-ID: <20260508070121.6918-6-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: f2f3e324-e151-4968-3592-08deaccfa417 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: TLKJIxnNochP1EBB2UBKYuFVhLIQyRX/AacB7Ew0J0z4040jmxVEA/DdsRGWilgN8lBDgktwmqmibREMsu2W8nYNvsfjy+PXzp2w2fe/mbkniBs5OAxVZbC3rObjG43DGEYmzkmOez4m34wYkdLj7mdxlzU4ywItmL/ciQqhRzbJ530lkVSP5Qk26Cj0+CU5xBUWdSMtcUiVfHzkKjrb8rFJIuVsbk/V5PRuk6ZUGHiPMcFE9zq1BHlQY6ufYALya0ggdGTj3t3rUbg5FnTBm4yDYhgq8mybhJKu/VCeUsgH/7kw7ZVHTyfJE32McyaQoW9kfI4Qq72IZWCzWtsRbRmJr1FzbLGQPkfijS7OiHbVQow6BsXZ4559RiCGoqDXLffqJ9AqveGBr2c26GxMI58iPLKQ/tt/qR7KLWVk+AGl+gsrXebSeX37GgsDSzQSPwQoYF/qsHtU9L85L5XriG1Rmc6i0t+T0GRldUu3tRRbKA4eVG0g25Ii9XmnDJvPOJspoDoSlTU7HjXtuXTcwCw6u1ZJGi+Mu7W3Q22r9vJTFRP3Mba+kzDBJg0GSJO+eaLDqJy6vSaNbSYJOSfqasatQUrFL096a8PkWWrHaBKm/yUJXpbOfxLgTYL2EMOxI7BfCAp+slRuy9sPg9hrv0ZlMyh3+w1zJAFWtHSVuBny9zT41giw924I5YkiyURrusU9dx3dGDcXL91Pfy9z80klmvIWKUh/z/s8DAnB+uhqpFu2BNegp1HBKFfdpIVx X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AjQJHIJ4vrv1BwXA0KwWIcfUD4zKM3jRn9YYwDrt4bJnrpbOz6uLQ45E5WFY?= =?us-ascii?Q?k0FO42VQuBteYoQGd4tWImynm0XIWkr9chp7oEC9FDFXEs6Av5qDN8XPINTI?= =?us-ascii?Q?KAERY+Am35I/YG4oW3iIAKLLU8HdZTuaz1yqNL4sstjyE8j2xIVMWxQQk3fT?= =?us-ascii?Q?/mXkZaoVA1u93vd09zVFCSV22Ww98qfpJDbT3dVYFaeGdIvcq6YlH/jNNtyE?= =?us-ascii?Q?FverffAJD9ZZY3fI1rFr1BsFjkKOiDDl/g1ZYrvJRyokGWCTgHM9HXl+raB4?= =?us-ascii?Q?QwKhyNXUVa+xKsjMB5qwq7VObcmAXsAquzr5ceZh0WFGs4yyhkQn6R/rON3G?= =?us-ascii?Q?/0S1XhcA3EyIopR8gcrXpDVSizHXFiDYkq8MmBFrVnCXRPdffW4PcMYIT0VB?= =?us-ascii?Q?cW0mqcq/ArKlpLwvp59IlufNfOSZepqpA24L4DOUu4agRMseTUf9m07Ew2nV?= =?us-ascii?Q?ocp5fETiJcg9ACqmHpJtNF8uvUqq7gZeewxqeXE6SMXzJLmabgWcCJqHdPQN?= =?us-ascii?Q?LHKpFA5v/FwI3hbnry1TF5zGmi23KdcfKJpBPqw8Ntcd+JIXUhv4kg/YIIrL?= =?us-ascii?Q?TSBZjaiWOpALVm2YX0tRAoZ7Z68bhDMiCCaowlP6nCinDIZG/Sn6fnlK36CG?= =?us-ascii?Q?7Mt/wXvMAa4Ufw84sn5r2da4j1Ks/ZLjaSVrutzb/XUu5qw+Anh9d1KvZmyF?= =?us-ascii?Q?uc2Y6Uvnu/lwlUSx9qq6gozPHQ5ZSwgJnWsWOarWQBYh6+F4GNm1atVx3Un9?= =?us-ascii?Q?4KkNc89/sJcrGFtIjVATQwdsXFvbne7+pD2gg1klO4CT+N21O0ghE9+eHysE?= =?us-ascii?Q?nS+QO9QvbzRsFrO0erJj91cqasNcLJJ4CIm2rdYmHGf/qYsE9ch+/tVtXKVr?= =?us-ascii?Q?Uj9PKuXHd7SPey4qYiX7TlDNOXKN8BUi+m9wjX1TsUk//zKHpx0LjTEPEwPi?= =?us-ascii?Q?ZOqAERvJ3H4EHLvrZO2DSFidrnNN2v0M+acrlQoCdrMGoMTPk9w8/cdF7R5e?= =?us-ascii?Q?hrAKN+zjKDFLaMRyFxDvt/fDcZpDN8+8jwov1kjjISDD3Dj3yndZOVPnMMUT?= =?us-ascii?Q?crr17QJcFZrGCcUSrXuZ0F0OpbscvXjauwVayikx1zOepXwnIO1xlbYBjwPP?= =?us-ascii?Q?FBLtI2DU3ZQ99LqxQ14EZ1fvdosUN9laWQX6ZMpaHX220OVsNnKLpVl6wgMC?= =?us-ascii?Q?FSch2kavT5RYsTccsvB8IoWLF8ZzeDv9pzQPqVXNHjS3woksQIEBLKwVYKvn?= =?us-ascii?Q?ZRAO6f0zAfEL2hO0fA2355VmSUmNwtfHftIIaPdEq9DH4H1Y0abbLvcTuRCP?= =?us-ascii?Q?2/ZlFj0C4HocvDsmp/vnrFQDV4W3NEKTTASUkicuJ42rqC3Lh9LOZtFg4nH7?= =?us-ascii?Q?Qs1on7pSxUWFZ+UroN6j+C/CL1kvQnsNsAfPo577vQwtSp1f6V0VWHLF15U8?= =?us-ascii?Q?ImqTXWmvX1avhi7pil5ewlR1Uo1gM/4uoZJtW++TUP2CauWEO8HYnKFZMyut?= =?us-ascii?Q?EtwIk6KJ2VySZctLSnN3YXbM7jN8kDKYg0P/u2uAVt6Ka9YVm+08eDZvH6AI?= =?us-ascii?Q?klTfNeSn/TMl8opvztoxFROXbSBo++N6VTOyOGRSUJV3rWAiERO1FesczQ0t?= =?us-ascii?Q?NKp4hTQprYGlucYZOdNHCqKOcgHQmRr5M4KN8Cs6kNfXVKhJMXv9G7b4bY5A?= =?us-ascii?Q?XEANvFA9idZAR0+f8QK1EwenAv2aGY8fyfELvAygkxF7zv/yqFjU2bR8l8i7?= =?us-ascii?Q?wGnaLYskSUp9S8KuryETAdbrg5UCwAs=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2f3e324-e151-4968-3592-08deaccfa417 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:34.5339 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HyZcU7CsVFdXwZGQIFB6czo+xG7QAQ9EJVilTASoSW/cX6AiXFLqOaZwelKQi4bbET8yBTk38TkHeM/dQnDxBxtpmv9AAnOrVjUvq4qp0XM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" Refactor the bit timing constants in grcan_bittiming_const by replacing macros with literal values. Signed-off-by: Daniel Hellstrom Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index a5f750d7e2d8..8d7bde1c006f 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -36,6 +36,7 @@ #include #include #include +#include =20 #define DRV_NAME "grcan" =20 @@ -93,16 +94,6 @@ struct grcan_registers { (GRCAN_CONF_BPR | GRCAN_CONF_RSJ | GRCAN_CONF_PS1 \ | GRCAN_CONF_PS2 | GRCAN_CONF_SCALER) =20 -#define GRCAN_CONF_RSJ_MIN 1 -#define GRCAN_CONF_RSJ_MAX 4 -#define GRCAN_CONF_PS1_MIN 1 -#define GRCAN_CONF_PS1_MAX 15 -#define GRCAN_CONF_PS2_MIN 2 -#define GRCAN_CONF_PS2_MAX 8 -#define GRCAN_CONF_SCALER_MIN 0 -#define GRCAN_CONF_SCALER_MAX 255 -#define GRCAN_CONF_SCALER_INC 1 - #define GRCAN_CONF_BPR_BIT 8 #define GRCAN_CONF_RSJ_BIT 12 #define GRCAN_CONF_PS1_BIT 20 @@ -392,14 +383,14 @@ static struct grcan_device_config grcan_module_config= =3D =20 static const struct can_bittiming_const grcan_bittiming_const =3D { .name =3D DRV_NAME, - .tseg1_min =3D GRCAN_CONF_PS1_MIN + 1, - .tseg1_max =3D GRCAN_CONF_PS1_MAX + 1, - .tseg2_min =3D GRCAN_CONF_PS2_MIN, - .tseg2_max =3D GRCAN_CONF_PS2_MAX, - .sjw_max =3D GRCAN_CONF_RSJ_MAX, - .brp_min =3D GRCAN_CONF_SCALER_MIN + 1, - .brp_max =3D GRCAN_CONF_SCALER_MAX + 1, - .brp_inc =3D GRCAN_CONF_SCALER_INC, + .tseg1_min =3D 2, + .tseg1_max =3D 16, + .tseg2_min =3D 2, + .tseg2_max =3D 8, + .sjw_max =3D 4, + .brp_min =3D 1, + .brp_max =3D 256, + .brp_inc =3D 1, }; =20 static int grcan_set_bittiming(struct net_device *dev) --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021092.outbound.protection.outlook.com [52.101.76.92]) (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 103E01F418F; Fri, 8 May 2026 07:01:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.92 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223706; cv=fail; b=mTTqbDC0o/XeYOLbK+CpFNRKvzUI1dhCrCPeH0RfGRkpi0zOKBpgkNVN+clNO5Lfurvdhi9V+aJEg/s5UOlh/n/o6k1Vcn2buJEi2T8jDt7R6sW1XkzSReZBhoQ4fp44dRUSOISgbYUn7aor26ydXEeoUvFI2gE62QY/3uFZt9Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223706; c=relaxed/simple; bh=9CyR0DT/N7PqV9h6K3XHEcN7eOp1HULpOQhHBrCM0AA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=N6tN/oRpD+DrS3R7qEfnuzrE5kI/4rSJLuJRzQhMkcSPPiuLLd57JsBHsRHx2Yune/f4SOzVKrWtti+TjmtAYyzL+nz5JTJn433jiIs8cyqA/6TL9srf3s3sS1DFv/J04h6NJfTb6/GdyrMkec0RIeZvnIbKNZSeXihWh9oZGcE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=gCXcRzRJ; arc=fail smtp.client-ip=52.101.76.92 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="gCXcRzRJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=daf9mN2exuD9cNmnG0KQsppYA10eSSEypbP4jugtC2jeRrY0+Xhr0zOVabcPb6Ev+rqlT4PCZ6or/WXJur7CYWzmWMrhxbbnE2sZIYcwwkYV+P2X5cm2PzPzJc3GcnYaW/+HyI/aqkMqqQA8LVo2RPYw9wwsG/f/p+tzVfjziwOJmfx0dFVnWRiLNo/SB1ix7z7RgsWt6nYFCciCRLAMoeqTl2feiFcPV0RhWWwa8EAMAdVHU/fh9XdtAwfTLrY1CCayn+vHMMQGimdrp94aHUKIFwsg983aKfJkS5d6Tbk+ZezdZol9UHxRkD5x+OdS5Kaq88hN/wdBW5Vxa9JbXw== 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=hxJH45HiYzU06/vJimChCxNkU0THpCD8z0Uafz800Co=; b=D4olil3OePt9U/dr4sO2CltwZJIwl/yuxSMIMRhPyYcSsqrSpUmcc9W006Eg9BJErLY7nJ5o+g2s9csjPXLpczQzmYUAP09nSp8fAX06qeFJXwrLv5aZg/wkih+3EVTL9YZCTh9yRcUTRxrpPM6uc3VPHz9u6i7g/DwoUD4O0uZEIXT8TyjHLHfjEfKag/20ACTUfJq1G7VAxirW77WvGqSIlLYv5Bg9+iMmv4dpqgVW4JiiiQaJr1Zi2LQlCY1bYu7nYi6Lhqi17Lkn6SWxr2ls13aZEKRpFE9JMppJgnmKW9UidJsVNa0LodHA4v9FxU2KlFg2tYJOQcEfmq/aiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hxJH45HiYzU06/vJimChCxNkU0THpCD8z0Uafz800Co=; b=gCXcRzRJ2MgHLSgyAixVzE9lQ74LnPj5ZeyW0ix0VUnMbMqOBeG6s4uvLYUJNYcz10Pmbps/HtcpkXuGr1pTRJaamPGxx+eYtHZb4vETsmsaRsR130TRgQxx0dXigVRjiUkbpyWMTvsYHOtz1kl1qx1N19FIzaTJWo6u36OmOV3fI9u67y4FQ+p8xsU7kdQGAL1CVOuEgf3AM51wPJKO5Q6o2rKyk5pCwKq7HQA4gd99MYTsZmUxqus39UsMjG/5gK+/btmeiOzf/8mdWSM3/XqZVSd9JGNrGef66m3wD25OKcyTS/6b40GejfFOOTFf1jP+JbHx+EWI+JOwQhD9GQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:35 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:34 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy , Daniel Hellstrom Subject: [PATCH v7 06/15] can: grcan: Simplify timing configuration Date: Fri, 8 May 2026 09:01:12 +0200 Message-ID: <20260508070121.6918-7-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: 07175b52-32c4-416b-9bf5-08deaccfa44e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: hCJwncR5Mi4EpKnh5wFJdDveAk/gMKF0m8EVxom40swF2FmfhExb9OVRAO3W3Dlra7pcaJz0qMwjUNa5h9Oan+ir53XD7fp75Mx//WbWw4654qG1KG2C17hmHEisjzsXxHAyzzm/7Ncr6++USEp4iyZV4jdOekAivKAMkRGXxYygecxJ9AavoI56Hukn4stm7v6wKZiWEwqCu6dylYWUsCrGqQ8ZYoXctAD2u1E97JOOete7DutQtnhZccO6esiPzRFS3UTNBNbruxbTt9vNwtQuF0zedvOXYHGWMPm/m7G2W97dJNg4HMK4+nhFqKEdoZnRaXtZLp2FWYcuO0x9PCNlA0dPI6rYJUxroVOKAxR2yA0DdJMrMeIM2UUuY+VMw0WBJg1w+n6J1+/2JVEOTJaQ3ntZZ1rC+oD0QOqCpKP9FDxXK7hWxj0P3UqIOAS5YbGLsE3p2h5MP6NggRiPpSC+ZTjr5iz7dIocI1e42DoGhjUXtm/8Gifad8CuYoJDior3j26beqNn2YERnwGOg1XO+GkS7H91Ok5Dvf6RXm5kb83MXi2tWbL6RYpFwPDV3MVH+ay8C4B1Jg+Ay/x7K2JbXIxfvujlaLM6oQM5oZgZAFSElC290+By0CgESOOJADuI6OQVNaEZHXj5MtOLC1jCKkCOxyIw9eiMLQ7C+IoQSY0X0O4MKgcc8On7AnbDsAh3FYqeDJcnONYL5sG8BCENI2Mg99zBFEIQmaPDnzqWuE8tIG2XlKdah8rTjAX8 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ETKEelaugLeolQ2rXs5W1kyyGIBEHRI1L6qMsD5AB5Qvrrq0xj/7dIWwZnXN?= =?us-ascii?Q?8X95Fo+qeKgyrqSTLLMzTy46CT8wvQjaXQPhZO6wAWw2TBE3IneOByYl1enC?= =?us-ascii?Q?K6h5MRa7f52EeXEaOwS9lLGdNZLf961fHn1Ie+sysHpbwpiCBxCoX+QXij/K?= =?us-ascii?Q?cfAtdIeDWNT7Q4sgVFrbV0ArTF3+VadLmRUmLIPvU8wdCS5Y82CN3Oya5FoE?= =?us-ascii?Q?zo9Zl0Us2l3eGVvUdRnSHN0nKFrmVn1LODnGtX5N4qeA6u8l820hM9hPGQZU?= =?us-ascii?Q?vHdHIEe6OE8idhVG4m76wHUXMsBi3r1FDbmZMq6OjepKBq9eZU3f0/8K0WIT?= =?us-ascii?Q?chXh2TjfkbMl2ka3Vp+EQnNthPrrUTkdYn+PUni1EIJ6FahgdMEZUeK6Xox7?= =?us-ascii?Q?04449qCDdH+wgiFsL7CdnSpnyE9pmO/JESdvKUzRosVcFBqWm6Y+k5xWuQls?= =?us-ascii?Q?HJ7SAgNzcBXHWB7ayCG+r2IZwxA/FePz6uYFTBeZDuUqnaoP77fBiuX1Ot8t?= =?us-ascii?Q?6tQ5V1CWAsGZNE/wDuuLdboBjSdd8OZzS2wrq8fS5ttSiNW0H/hKFUuWWZbb?= =?us-ascii?Q?JLEsh69IOoMW+WVRpzyOYsvxFFgJDbmJk4Xnqn0rJDeBPWLaOr06KpFd0xMo?= =?us-ascii?Q?kzwmLAaNelrosdFvKbpBvsCcLcJXH5Y+2IO4miFFQ4OCKTex7UBHgjsE8gqN?= =?us-ascii?Q?NzLaFjOMI2Y3D75VEwMNGdVriKrUXrLbs1Q6nN/E6BUN2Io5mtwCDdG3DIpY?= =?us-ascii?Q?BzF0Tf5f877ZVaMdOVG7csrJcA1eQdn8g6LaaxNKKLHw0GvNikRkefMyjOAU?= =?us-ascii?Q?1/aTRODzgyUPyaRvhYTOZAJCJddvAYs+h6VpxImekr/NCeWRFkJ+Ykio4lWt?= =?us-ascii?Q?blFMasxBaWzs/MOMxicrcYU9KgkDW2LJwtL58uEIecBgdBz5LO5794xdwP8z?= =?us-ascii?Q?IEhNCMt5B2TSrCsqFl49I79PYODsTDJw5GXK59+xGjCyUHHe27Hvk+Oq3Z2e?= =?us-ascii?Q?F/DQvlpwpWRdhdyNHD7mUoxCdH1jbqGReBv9gYGNJYPIo+cNoMHnRpNOKEWU?= =?us-ascii?Q?xig/adYZzC0afDZGN83FHyp650X4DjJO8MDuKGFIXoEghdhqUyiMy2qRKynd?= =?us-ascii?Q?mIKSu6y5LgTr+7bLo5xsrVMRSYJ8/IDpLmX8ApoayqU7EdOqwqnZ5Of/E9vu?= =?us-ascii?Q?nZYDESoyWYuggXiFj7WX3XsoTdLXp1MAQu/P3qbF28a7qoqxEkVrIYIPS48U?= =?us-ascii?Q?2+TLiSbHPnUnHfNpudl+hmmOyR+g4M4UzV0nG7zQgflD2DYKo2Xc1tfUcy8Q?= =?us-ascii?Q?rVZr3UMYxkjr29V1VqpvqqLt0h/lOm04aJ8Rl+2Ay3b5khak/CfOnNdInSFZ?= =?us-ascii?Q?SVB1cE1t/szlRYbPrq0NnFNZBl83X3DZhXmF09ZsoO3pqOWyMV/ousRuM2YC?= =?us-ascii?Q?vqVKhx6yqFr1ZbvtQeaeDb6NBPD3UucdYElC7DNUBZy1Mw9/ZeGCWMRx28Bq?= =?us-ascii?Q?swrKHGDiz+NNvr53LpkGhFa+j3pcqnkvFHGOSzSt/dqeMwNVxdxvTSejAmmD?= =?us-ascii?Q?b2AI9Z1lH/dC80brQF/v2muSNeISo8YVRBatEdlbQcW6YJ8G6K3W/J6Mtrbb?= =?us-ascii?Q?cvY67NKCqO/6B0xMfntHQ5lZIyApy3zvQQ12HZ8Yx7QwA455Py2bwA+DXGOs?= =?us-ascii?Q?J/JFd7O0mHcRWiHlzesZR1D0e/z7s5vP3PPvm/I8I+PAmI/Pr/RzH+qz+IU5?= =?us-ascii?Q?GnRzT+GeyA6jOm3QD10Hs5F1S+SHFMw=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07175b52-32c4-416b-9bf5-08deaccfa44e X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:34.9264 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: L4HfJ/biQ5K8p/YomLDtdy3D+WOC2RgMRgRRjbjQWEG30sH+ZL7yrFj37wS4W+wluFv5kGRD4rMUnqj+LJv8lVMkwCUyT6NODq4JgvX0B6k= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" Remove redundant error checks and use FIELD_PREP for bit timing assignments to simplify the timing configuration Signed-off-by: Daniel Hellstrom Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 41 +++++++++++++---------------------------- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 8d7bde1c006f..8ba21d94e87d 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -396,41 +396,26 @@ static const struct can_bittiming_const grcan_bittimi= ng_const =3D { static int grcan_set_bittiming(struct net_device *dev) { struct grcan_priv *priv =3D netdev_priv(dev); - struct grcan_registers __iomem *regs =3D priv->regs; - struct can_bittiming *bt =3D &priv->can.bittiming; - u32 timing =3D 0; + struct grcan_registers __iomem *regs; int bpr, rsj, ps1, ps2, scaler; + struct can_bittiming *bt; + u32 timing =3D 0; =20 - /* Should never happen - function will not be called when - * device is up - */ - if (grcan_read_bits(®s->ctrl, GRCAN_CTRL_ENABLE)) - return -EBUSY; + regs =3D priv->regs; + bt =3D &priv->can.bittiming; =20 bpr =3D 0; /* Note bpr and brp are different concepts */ rsj =3D bt->sjw; ps1 =3D (bt->prop_seg + bt->phase_seg1) - 1; /* tseg1 - 1 */ ps2 =3D bt->phase_seg2; - scaler =3D (bt->brp - 1); - netdev_dbg(dev, "Request for BPR=3D%d, RSJ=3D%d, PS1=3D%d, PS2=3D%d, SCAL= ER=3D%d", - bpr, rsj, ps1, ps2, scaler); - if (!(ps1 > ps2)) { - netdev_err(dev, "PS1 > PS2 must hold: PS1=3D%d, PS2=3D%d\n", - ps1, ps2); - return -EINVAL; - } - if (!(ps2 >=3D rsj)) { - netdev_err(dev, "PS2 >=3D RSJ must hold: PS2=3D%d, RSJ=3D%d\n", - ps2, rsj); - return -EINVAL; - } - - timing |=3D (bpr << GRCAN_CONF_BPR_BIT) & GRCAN_CONF_BPR; - timing |=3D (rsj << GRCAN_CONF_RSJ_BIT) & GRCAN_CONF_RSJ; - timing |=3D (ps1 << GRCAN_CONF_PS1_BIT) & GRCAN_CONF_PS1; - timing |=3D (ps2 << GRCAN_CONF_PS2_BIT) & GRCAN_CONF_PS2; - timing |=3D (scaler << GRCAN_CONF_SCALER_BIT) & GRCAN_CONF_SCALER; - netdev_info(dev, "setting timing=3D0x%x\n", timing); + scaler =3D bt->brp - 1; + + timing |=3D FIELD_PREP(GRCAN_CONF_BPR, bpr); + timing |=3D FIELD_PREP(GRCAN_CONF_RSJ, rsj); + timing |=3D FIELD_PREP(GRCAN_CONF_PS1, ps1); + timing |=3D FIELD_PREP(GRCAN_CONF_PS2, ps2); + timing |=3D FIELD_PREP(GRCAN_CONF_SCALER, scaler); + netdev_dbg(dev, "setting timing=3D0x%x\n", timing); grcan_write_bits(®s->conf, timing, GRCAN_CONF_TIMING); =20 return 0; --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021132.outbound.protection.outlook.com [52.101.76.132]) (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 E66FD37AA91; Fri, 8 May 2026 07:01:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.132 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223710; cv=fail; b=uAXJEXbH3lWLzLmI63aI5hvgk9ZscAfQbv5e0JB7sLbn1pGl+MuHB5DpRrVZ3br0GvY+wCSjTK9cRQeqDxPMaCTs2EzRh0NDHAY0cajLvtZvYYHuPS7jYQTyvyh+ONzDp3w2NwxX/XNSqAqlRNGb0tVS6bIaCSe7ZVTTHYe+mv4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223710; c=relaxed/simple; bh=Km12ixrosbVGmhYR2GbUSbl8hKhtuJJ0eFwVzgmHNuA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=mOqesabVwFvcFDOVuVTlKorbxPKj24OiBpYgs2MR2bP9vY0+TOeh+S/N/UF4NebSUJdJ1RJoYjX4HSnMvlvXnqBGia84DCJQBNN9BLCEw04T7kGAddbhcZ3EyoJZrGObXP+6BjjpfoWKvKuDmLemkF4UqDJVba3Hyat6mTHihZ8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=A9ZIGB0D; arc=fail smtp.client-ip=52.101.76.132 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="A9ZIGB0D" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q3ncCgV8UbE4wcrBT6e++OkDxTLGhqELi0D7M8F1yOgJL+MbADxMtOnJHn2jd4zzukn4SLOzaqZZfVBu3cESZNC1jYPmydsdwOfD1+pN4Db9A4SuQvKsMcrX+bsD+KCD5bS4urOCqpNWlO/iSoAWRJJN74ILDHRLIvIV+EOFvl5ezbHQokywTce+rIv0l+OBXOA6KeOQSIMydfkBAZbYQy5awTQpI5BWLfBM6VffzJwldUPQPo0rj8dwKetDNKC1GoeeL52DHVqsjRj90jJzA8LwTInQ5NODuvz9bl4ZcWK4WSsupMknZXWEYWsUKhIpg5taMkjymhHgx4tAs6R8kA== 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=rTCRGPFdNyxk+jkgnOtOUE4qdEl+tgH4XYmKSPlDThc=; b=sgEyZ1QF4s3ct1IuFugfE94SbGxUWuPCFVgMi1oGfJa65A44/JleRYM8YqFhXENxbBH53Ghd+XwAzoMFgWGWyrPHshZ+/FQDpvagYNHMbMtV6GHcYmnjHkEMFOGyy5P8NjgXva1cS4y+CDqRRrziFCtWZdHTRvVsmGDIwndYyJUZBDB26ozbjP/TpRkgPxTX1bmKEVVKjOGNhqc0lw2xIwav//7sDreVNSP2OmGEZ55KaDvD53mDrmEUc4J6JFpaQ+4S38nl95T9/sgt5I4VBCPEljhB5RKdR6agwaZmf9xRnZpnYRCmlHYi9QukxsGfevbKE0qmvHmVfCf1Cjn++Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rTCRGPFdNyxk+jkgnOtOUE4qdEl+tgH4XYmKSPlDThc=; b=A9ZIGB0D34qvoxIYF4/x6ztnXtpzxcb53rn/im1wMkGECukNusvCA/C/KX3uTyiYnf9ZCYZ81YdUlq3jjJ2H2sG33wpaftz4qs/IpxDsrfbIN1iz2FoHo9gvE1wMPI4n3WdPy+kOTnPO5sSO5r04gU5acrqTfBy3sOScuHusFrrvt/Jj0eTsNFR2X85gOxD6EWEmk6OhfMXE+dxo5EwYjGPaKThiKg37q3ZxizQFlpni7FIFGPP8iNe38fA1ObNTD/ol4zy6Iezf2j+K0AwV7vRjx3LZ1xVYzEFci57j2ZiNy3QiZAvsNF8WuzRyHYjNCJnwJsHrXQJEHuOBDvjHnw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:35 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:35 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy , Daniel Hellstrom Subject: [PATCH v7 07/15] can: grcan: add FD capability detection and nominal bit-timing Date: Fri, 8 May 2026 09:01:13 +0200 Message-ID: <20260508070121.6918-8-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: d1c491b8-3d21-4397-0155-08deaccfa489 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|3023799003|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: ar7DRX4z5kzhKbduoQCYy4Py/lgSfRFGBnCsttAP64AWKsl/Hspc8gj4AlYhxrmtterkQ35roJFibpaGUHvN+lnuu/GHZlpTnHYkmWQturbtYGENgPQuQ5BtrfUCHlueu6xD4K1jZYEyY+ptg+LfRlbmjHICBE/fWp00iiBdFPJFEJdeIj3KjL4nzzu35qTEC52QhW17YO1OxtF0DkjrpjhxORqDvT5vsyTdZ9W+0oN/zNH2n+LUB81aw7SPHABqQETRQICX4z8YSz+ZSgUWJWmzsrv1BEIuN+LK7fxc85xJA6rw3ikk9uUB60HabkfEEtvS2JsiQdgN9sF4PJdOKVJpciB68CdGwhLI0B2vngDeo1z7CrqHmS4IolNqyp0rEOPEzVTU4xn3F+SBnSo/Mv36VzfoIYcyaz7QRi6HvEVoBR8RKt/CSF0y+CgldZI3IrNs+sv1n1ZZihmmfit7FGM0KlUWioXC5X3GOBfmioD39ksDNB6mV+Z9IWNmRXpe33Qb9fnV8DES6+RP9e0pWjWi4nhGbGSKbtFCMLBiTJh0XEFhu3djWW6CojTjkNAQTiBQOpJaRb335NL1OHx6ojmshAMYslfSaUH251WHgdOokolQVlrgMhibqWa/s7Lq6dS6ba19AaHZd+nBSqxf6aMwqzo1UABDijvQwxPhYrj78X2Fa7qg3D4sOYOjaTndrJx3Nk1nMnnR5kmf4AKDOOsepgH9ySaYdfj6bfcO7jc3AH8VC1TDzi8FU5K4/TJm X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(3023799003)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?p/V9niDT6W8KzyRCsQ6jxvSh58K7wrqXJYiG1Dqwcac7IM3tZ26rOUpHOK6h?= =?us-ascii?Q?qusvK9Ub6ST94IBTO2VSosMjTiLDl29Zu03EUduH/3LD7YZeVg55QHYeCcj3?= =?us-ascii?Q?G5p2AeZLbdRMdvXmxnwXXh9Qf3+Z0+g1M4NL0xwqVMJRdW1mhO8N6dPzz35/?= =?us-ascii?Q?8UKMkP26bCG7StSUaCWYH8ETu7tFHGcDA0T5kssdZ/O/4xQ67FufRG8gmcXF?= =?us-ascii?Q?diDIrY/YZWa2YyzUQrrk6GnYxrsDinBco4TZXqxs31O0ex+FKKQN3Vg2mBQi?= =?us-ascii?Q?su9zm3Z0HkkhY8bVXVNOyGx0a2rwnt8Qh9voFCzjjlDYv48jVn4ZoDGnAsEF?= =?us-ascii?Q?U0ZHKPkqddZhSMOydJU/gyyfa0veNGmKuE8zkPkN/y/Byu2aViP/pomPXatA?= =?us-ascii?Q?eyHWWrlr6+9kggUF1ag/fh3m3+epP/r0SlqnIke4K1xP/uEXhOX1EgMfr2QH?= =?us-ascii?Q?caWmBtmJmWkznxCGKmiXToyh0LosxkpeIdBCT2v15SB71n7F0X9fJG58PkPP?= =?us-ascii?Q?cqqMvdZKYMVHdMXTOR9e04gvB5IeUbl8ByNPEEgvhUacucQiSkoCaMDouA9i?= =?us-ascii?Q?OzK5eZkVWLy8O3wyc6NiKS9iVmRxlqclU94ArYQN8UKspQudXqi5xhCcld5m?= =?us-ascii?Q?U3Eyx3LAzACMjsec/m0z48/CpxVyqUH7Km605zrDFWeOgrcBUupsc8idL33V?= =?us-ascii?Q?2534VXqconhUSmdAYPgXZZIuQJ8ZmygVqVr8+pO8SRFRcerZnOjh1Ea4MWpO?= =?us-ascii?Q?PKj9MWi5gHofVC7yubVAZ22Q83tf1IjyfBfT5Dm2qJdJkHwcWhNbvBszhKNj?= =?us-ascii?Q?H2IzF55xwnk0Xi2Mi04/RC2cKAMO8jVMKXx1G6pK/7BNSNdd6gXa0hpBojZ9?= =?us-ascii?Q?7//bTEhqPvvwODoP+U7//DZWYVwQu37dcgjUuvOFYrKbaIsoZNw9J3m9jFuC?= =?us-ascii?Q?dHjWXt3r9iVD9kxWmdgHp9HIyxjwh6jAEzHs6aO8D+pL30WglNjSj4fdoL4a?= =?us-ascii?Q?IACO7PnNEkWpIOH5OBKDKHSy8zWYTS3I7r1i+QbjnLNzpAUFdXMuBavrlXzz?= =?us-ascii?Q?aH7u3/E1cLmSR8f2oSohwtK70PPj6yt7Cw3m+nczp+XbnMCSeXWLqE9sfWlZ?= =?us-ascii?Q?U94B0X7g+iYHqYOdK6HCgnhz5YPmC2Ngc5/QHg65NCVTN9V6RKMhKZFS+ZJk?= =?us-ascii?Q?/8q1XCl3l/XNPyFErWo+1bOJBlw68mWVgdrKpPWYifg8eBY/c7P/V4MBNSUu?= =?us-ascii?Q?1MKh5hBKDpE1Z3c+GL429CEtr6x2XO5Jj4+UurBPvM4B1m0FGOM1deNJvRe4?= =?us-ascii?Q?hxGpdtWdS3SIXSMhK8BpFyK6QNq/LV4QwEXfZo4jaWLNiUI6gsKmdvOReNsg?= =?us-ascii?Q?x9PgEt23JrvV9sJAUgvH4LW33o/3PuGbSQtnwpjRt2bRWoemivBanKKL/sIX?= =?us-ascii?Q?v6uy5Q4o/Zx2CXHqxTTjSIPa5TaeepHVoXdbekFVoFHXC5njaYCc7sq9IasW?= =?us-ascii?Q?MU+mRimWdPd1tbcXIFPMZ4zcSH6v3bsUdZfN0I7zHOVJBNiLG/eaZYLXDq2v?= =?us-ascii?Q?55M1jhns7Tljr+CD7CM1Zf0oGclpJ4zUiaWdJM+ONd6XBT1O0f1vxarLFWzO?= =?us-ascii?Q?3U62f0kesPGppLlJk2l5d9bboadMGDi2hxxn/WeMYFUKu/FVA8kQ5m9WWeH/?= =?us-ascii?Q?NjRmKvQ5g5JQTI2Fjp2BfoMpMCPeENR52Kvbkw7QfTX1OKFTVZNpTSKPYHmZ?= =?us-ascii?Q?1umSERO7PqKHTjd60mIEThPdsJBM++s=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: d1c491b8-3d21-4397-0155-08deaccfa489 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:35.3222 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7eQPyuljLXMVyUtxvQlSfeWIbPLqLhwxsU+au1Dsz3h1WrFcZNNmC1S/tbJFP90sBPko3EBR592p6tDo8q6V07qrXwzoi59/Cp7HVJYZjSs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" Add capability for the driver to detect CAN FD support and adjust accordingly. Introduce structures and functions for setting nominal bit-timing for standard CAN FD. The `grcan_hwcap` structure defines hardware capabilities like CAN FD support and baud-rate options. Additionally, improved device tree compatibility by updating the `of_device_id` table for better matching of GRCAN and GRCANFD devices. Also update Kconfig to mention GRCANFD support. Signed-off-by: Daniel Hellstrom Signed-off-by: Arun Muthusamy --- drivers/net/can/Kconfig | 6 +- drivers/net/can/grcan.c | 137 +++++++++++++++++++++++++++++++++++----- 2 files changed, 125 insertions(+), 18 deletions(-) diff --git a/drivers/net/can/Kconfig b/drivers/net/can/Kconfig index e15e320db476..83b7dc8c925c 100644 --- a/drivers/net/can/Kconfig +++ b/drivers/net/can/Kconfig @@ -150,10 +150,12 @@ config CAN_FLEXCAN Say Y here if you want to support for Freescale FlexCAN. =20 config CAN_GRCAN - tristate "Aeroflex Gaisler GRCAN and GRHCAN CAN devices" + tristate "Aeroflex Gaisler GRCAN(FD) and GRHCAN CAN devices" depends on OF && HAS_DMA && HAS_IOMEM help - Say Y here if you want to use Aeroflex Gaisler GRCAN or GRHCAN. + Say Y here if you want to use Aeroflex Gaisler GRCAN or GRCANFD + or GRHCAN. + Note that the driver supports little endian, even though little endian syntheses of the cores would need some modifications on the hardware level to work. diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 8ba21d94e87d..c9175a6a013f 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -51,7 +52,11 @@ struct grcan_registers { u32 __reserved1[GRCAN_RESERVE_SIZE(0x08, 0x18)]; u32 smask; /* 0x18 - CanMASK */ u32 scode; /* 0x1c - CanCODE */ - u32 __reserved2[GRCAN_RESERVE_SIZE(0x1c, 0x100)]; + u32 __reserved2[GRCAN_RESERVE_SIZE(0x1c, 0x40)]; + u32 nbtr; /* 0x40 */ + u32 fdbtr; /* 0x44 */ + u32 tdelay; /* 0x48 */ + u32 __reserved2_[GRCAN_RESERVE_SIZE(0x48, 0x100)]; u32 pimsr; /* 0x100 */ u32 pimr; /* 0x104 */ u32 pisr; /* 0x108 */ @@ -203,6 +208,39 @@ struct grcan_registers { #error "Invalid default buffer size" #endif =20 +#define GRCANFD_NBTR_SCALER GENMASK(23, 16) +#define GRCANFD_NBTR_PS1 GENMASK(17, 10) +#define GRCANFD_NBTR_PS2 GENMASK(9, 5) +#define GRCANFD_NBTR_SJW GENMASK(4, 0) +#define GRCANFD_NBTR_TIMING \ + (GRCANFD_NBTR_SCALER | GRCANFD_NBTR_PS1 | GRCANFD_NBTR_PS2 | \ + GRCANFD_NBTR_SJW) + +#define GRCANFD_FDBTR_SCALER 0x00ff0000 +#define GRCANFD_FDBTR_PS1 0x00003c00 +#define GRCANFD_FDBTR_PS2 0x000001e0 +#define GRCANFD_FDBTR_SJW 0x0000000f +#define GRCANFD_FDBTR_TIMING \ + (GRCANFD_FDBTR_SCALER | GRCANFD_FDBTR_PS1 | GRCANFD_FDBTR_PS2 | \ + GRCANFD_FDBTR_SJW) + +#define GRCANFD_FDBTR_SCALER_BIT 16 +#define GRCANFD_FDBTR_PS1_BIT 10 +#define GRCANFD_FDBTR_PS2_BIT 5 +#define GRCANFD_FDBTR_SJW_BIT 0 + +/* Hardware capabilities */ +struct grcan_hwcap { + /* CAN-FD capable, indicates GRCANFD IP. + * The GRCANFD has different baud-rate registers and extended DMA + * format to also describe FD-frames. + */ + const struct can_bittiming_const *bt_const; + int (*set_bittiming)(struct net_device *dev); + bool txbug_possible; + bool fd; +}; + struct grcan_dma_buffer { size_t size; void *buf; @@ -245,6 +283,7 @@ struct grcan_priv { struct napi_struct napi; =20 struct grcan_registers __iomem *regs; /* ioremap'ed registers */ + const struct grcan_hwcap *hwcap; struct grcan_device_config config; struct grcan_dma dma; =20 @@ -393,6 +432,19 @@ static const struct can_bittiming_const grcan_bittimin= g_const =3D { .brp_inc =3D 1, }; =20 +/* GRCANFD nominal boundaries for baud-rate parameters */ +static const struct can_bittiming_const grcanfd_bittiming_const =3D { + .name =3D DRV_NAME, + .tseg1_min =3D 2, + .tseg1_max =3D 63, + .tseg2_min =3D 2, + .tseg2_max =3D 16, + .sjw_max =3D 16, + .brp_min =3D 1, + .brp_max =3D 256, + .brp_inc =3D 1, +}; + static int grcan_set_bittiming(struct net_device *dev) { struct grcan_priv *priv =3D netdev_priv(dev); @@ -421,6 +473,32 @@ static int grcan_set_bittiming(struct net_device *dev) return 0; } =20 +static int grcanfd_set_bittiming(struct net_device *dev) +{ + struct grcan_priv *priv =3D netdev_priv(dev); + struct grcan_registers __iomem *regs; + int sjw, ps1, ps2, scaler; + struct can_bittiming *bt; + u32 timing =3D 0; + + regs =3D priv->regs; + bt =3D &priv->can.bittiming; + + sjw =3D bt->sjw; + ps1 =3D (bt->prop_seg + bt->phase_seg1); + ps2 =3D bt->phase_seg2; + scaler =3D bt->brp - 1; + + timing |=3D FIELD_PREP(GRCANFD_NBTR_SJW, sjw); + timing |=3D FIELD_PREP(GRCANFD_NBTR_PS1, ps1); + timing |=3D FIELD_PREP(GRCANFD_NBTR_PS2, ps2); + timing |=3D FIELD_PREP(GRCANFD_NBTR_SCALER, scaler); + netdev_dbg(dev, "setting timing=3D0x%x\n", timing); + grcan_write_bits(®s->nbtr, timing, GRCANFD_NBTR_TIMING); + + return 0; +} + static int grcan_get_berr_counter(const struct net_device *dev, struct can_berr_counter *bec) { @@ -1544,7 +1622,8 @@ static const struct ethtool_ops grcan_ethtool_ops =3D= { =20 static int grcan_setup_netdev(struct platform_device *ofdev, void __iomem *base, - int irq, u32 ambafreq, bool txbug) + int irq, u32 ambafreq, bool txbug, + const struct grcan_hwcap *hwcap) { struct net_device *dev; struct grcan_priv *priv; @@ -1567,14 +1646,14 @@ static int grcan_setup_netdev(struct platform_devic= e *ofdev, priv->dev =3D dev; priv->ofdev_dev =3D &ofdev->dev; priv->regs =3D base; - priv->can.bittiming_const =3D &grcan_bittiming_const; - priv->can.do_set_bittiming =3D grcan_set_bittiming; + priv->can.bittiming_const =3D hwcap->bt_const; priv->can.do_set_mode =3D grcan_set_mode; priv->can.do_get_berr_counter =3D grcan_get_berr_counter; priv->can.clock.freq =3D ambafreq; priv->can.ctrlmode_supported =3D CAN_CTRLMODE_LISTENONLY | CAN_CTRLMODE_ONE_SHOT; priv->need_txbug_workaround =3D txbug; + priv->hwcap =3D hwcap; =20 /* Discover if triple sampling is supported by hardware */ regs =3D priv->regs; @@ -1619,22 +1698,29 @@ static int grcan_probe(struct platform_device *ofde= v) { struct device_node *np =3D ofdev->dev.of_node; struct device_node *sysid_parent; + const struct grcan_hwcap *hwcap; struct clk *clk; u32 sysid, ambafreq; int irq, err; void __iomem *base; bool txbug =3D true; =20 + hwcap =3D device_get_match_data(&ofdev->dev); + /* Compare GRLIB version number with the first that does not * have the tx bug (see start_xmit) */ - sysid_parent =3D of_find_node_by_path("/ambapp0"); - if (sysid_parent) { - err =3D of_property_read_u32(sysid_parent, "systemid", &sysid); - if (!err && ((sysid & GRLIB_VERSION_MASK) >=3D - GRCAN_TXBUG_SAFE_GRLIB_VERSION)) - txbug =3D false; - of_node_put(sysid_parent); + if (!hwcap->txbug_possible) { + txbug =3D false; + } else { + sysid_parent =3D of_find_node_by_path("/ambapp0"); + if (sysid_parent) { + err =3D of_property_read_u32(sysid_parent, "systemid", &sysid); + if (!err && ((sysid & GRLIB_VERSION_MASK) >=3D + GRCAN_TXBUG_SAFE_GRLIB_VERSION)) + txbug =3D false; + of_node_put(sysid_parent); + } } =20 err =3D of_property_read_u32(np, "freq", &ambafreq); @@ -1669,7 +1755,7 @@ static int grcan_probe(struct platform_device *ofdev) =20 grcan_sanitize_module_config(ofdev); =20 - err =3D grcan_setup_netdev(ofdev, base, irq, ambafreq, txbug); + err =3D grcan_setup_netdev(ofdev, base, irq, ambafreq, txbug, hwcap); if (err) goto exit_dispose_irq; =20 @@ -1696,11 +1782,30 @@ static void grcan_remove(struct platform_device *of= dev) free_candev(dev); } =20 +static const struct grcan_hwcap grcan_hwcap =3D { + .fd =3D false, + .txbug_possible =3D true, + .bt_const =3D &grcan_bittiming_const, + .set_bittiming =3D grcan_set_bittiming, +}; + +static const struct grcan_hwcap grcanfd_hwcap =3D { + .fd =3D true, + .txbug_possible =3D false, + .bt_const =3D &grcanfd_bittiming_const, + .set_bittiming =3D grcanfd_set_bittiming, +}; + static const struct of_device_id grcan_match[] =3D { - {.name =3D "GAISLER_GRCAN"}, - {.name =3D "01_03d"}, - {.name =3D "GAISLER_GRHCAN"}, - {.name =3D "01_034"}, + {.name =3D "GAISLER_GRCAN", .data =3D &grcan_hwcap}, + {.name =3D "01_03d", .data =3D &grcan_hwcap}, + {.name =3D "GAISLER_GRHCAN", .data =3D &grcan_hwcap}, + {.name =3D "01_034", .data =3D &grcan_hwcap}, + {.compatible =3D "gaisler,grcan", .data =3D &grcan_hwcap}, + /* GRCANFD */ + {.compatible =3D "gaisler,grcanfd", .data =3D &grcanfd_hwcap}, + {.name =3D "GAISLER_GRCANFD", .data =3D &grcanfd_hwcap}, + {.name =3D "01_0b5", .data =3D &grcanfd_hwcap}, {}, }; =20 --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021092.outbound.protection.outlook.com [52.101.76.92]) (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 D4B6537B407; Fri, 8 May 2026 07:01:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.92 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223712; cv=fail; b=Ziz5HappiOi4Kh8MU9+Dc8LX6Y/9fLSu4SMIaDlIVEcTaiTd+qkufqIWWdT6zLYhySplpkbamzNMq2JKCRIvY8Tv/7hyBaOeZr9zH+fftqadOABAboDJTScUnIo31yLZbzCPY65rsfBj5s2Rp/W+AaUkyVR/l99mrsVK8bI7SCc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223712; c=relaxed/simple; bh=vPFbemLrkYcl7/RXUPVEuGX/n2XsyzKHCggm8oMnfbc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=NpirDk1QqWMSkjcmCHkhVR2LDB1Img9sqIdEnP19QFCm2bCCdwxatiwJo5dM7m1LFcFPNl3g4zox/7lCEZaoL4hiLDchUw96k3ePL/tcI6rUbB9+ziC8lxsrV+rpGVRH7zy1/crHccnI/u7TMfZk9L/CZrak4McoG60VjxxTDJY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=RJ0m/sVp; arc=fail smtp.client-ip=52.101.76.92 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="RJ0m/sVp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dUH2kjzLXRUA1U38G2RlgumFUSisV4dJ0lyjnlfw4jupJBr6b7xpHIaS5tysiGrt0E56AWfe4f79zVujbmngnqKc86rgPYwdm/UA5fsqou2fTNyP0+DEAv1jXVU6fCpSNa0MK42ukTX8pi+H9qf22JxEKSeUXvPO9zzrd8tfP3nneSzC/l+lVqGKq/HWaht23jDFPVNRHmh4RBIX6g9L9Tvt6PrUTNuJiiDyeTdFbrkprADWM4oOUMlRknBY4N//QFnTdzAmF3Otv7h4Js7R7hb5XJsBAxp4Ypzs62rzWXamIC8QA0ay7nm5NxVSi1ZGihUuHEiRl/atOAWLBWlVTQ== 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=4TTP4gzRqMVGkRzvcxjC1YZWMrs55xA+qmg7LfUvTAQ=; b=iCsEG5ejHcqdOyS1Yqig9AEbchcpKGlSu99AHsdboAylpwyQit4vsjbReqk41QEeYTPljrowMiADlJ7i5Ud+AavjMfFMYznMk5pfzfKdGJ6XtmoBxJ3UltqSnrKh3t2o0aRjS+zY2ewZutN/n/svsn/LpB1ax/RRpcX4m6NqXhVqG5lQjEUspCmEU4QRxm/Y6q+ujnEsad5qN0rS26zJkT0hzSQviVcO0wPbW3n/6HHfOjvvcDW6LOEppOdWMyuUrsDcNSu/o0bgMHc2/n3OSZhwTwN00TIv6QFFTJmDtBqzBMQftS+FSPhPWdy+hmuJ/cGvh93X/1NnXwL1PlAd7g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4TTP4gzRqMVGkRzvcxjC1YZWMrs55xA+qmg7LfUvTAQ=; b=RJ0m/sVp0RR+N8G/1jomrrFIPzi68MCrGgFOukPwa8eRkCerduFYSDKOPv/VEmM0XHHdYEU/Kr2QVccewouRpXDqf4HUQNuzT9W+n7WO1ZsegcYec7EKZhbCExllDTLXjTmoak4QVn8Frmte4a9F+A2NZMWZN6OS9/Tuae2d3oM8VDvKiIsNjrj/JOm1j5dIyp6SfaBK4K2Us9DatIt1G9UNymi63EM8bGcRty3qFTanPvUUPIumTkycqt+UHWraPYe4x51+UVoiur/YEZr6qTphkuvVS4wb0nyvFaghfmpwZSizyGjRkPbGXIyfLKHWRFwZ8wyB/FABq85a6IszDQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:35 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:35 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Daniel Hellstrom , Arun Muthusamy Subject: [PATCH v7 08/15] can: grcan: set DMA mask for GRCAN and GRCANFD to 32-bit Date: Fri, 8 May 2026 09:01:14 +0200 Message-ID: <20260508070121.6918-9-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: c250866d-dd73-41e6-62e9-08deaccfa4c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: eaXJMeEStsl/wIrV8mVle+pUtMR8ap1NhhS3HQBCfjjHfiIz08KhU8D//S8EyKrG64fvBu5w2LsFOaGCl3VcHCeq/bUSWlv4rmTq7JDBhTso2/Zi1AoyNh//AGZ3zSLYGmS5I3q5HKjaq+491U792zBeFYYax4uPmGaFRgIrv6oBX0BjHsicGQVN6eDPRWgEy6BqWdq7/5bOp1C+9pK6O3/jN5h7qfQ11JeH2HmN6F9VyVj3rfpNa6lDjl6eSp6EEHR/IrLZ7NKnNApS/7lDzyFZ6YfX987Jw8FEMKXEP2pHa3G5KTn2fOSCDXTuDrlHLrck5u+UlvGaq9TQfzrq21LFj3x4suKWb2r5+FDjd6EMyTOQjmAyrC/UjzJyke6AVAiX9PiMxZ1apGnuImDiILl1KEyCr7cyWufpgU1EDm5gP5YDXRb28/+77Q8OacQ3+PqEBvksRqiUQd4+eCkGTiEFNUvnDhzN2BUUDH07KIu0/3HhbvGR4Glw0JpXO6ZMxRHJa2+sW85h8Umt2DgviwycK2g07gqrrx8rrQkkXio9kS08qXPZwXkmCBRJRGjd92SHfBN8/NbukfTfGthV331of33SShNqpErv09yiygkIGsjdE9b/hHjiW5b+XRqv8IkOTRX2vTcUn5jNFpMzjtd5qAh3ybYeNsjRO8T7NTC2b92+rbPfcPkKhzD0clloyzeWdwlZdMcJqoGKKSka/LfCRJVOXzTi4oX5urq5RBDO8ra2ad2MZZHe04FnVsXZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fEswKXiIeIcoRoDNyb2WBXcDcanJoLkfpoBKJkYaTzU2CjnxueBDDoOBZetx?= =?us-ascii?Q?2BXq/tB1ShJ4JRzNywdYvac0l75RFICeTVr9AOwqK+NEd+sh0zwBTULhRSTR?= =?us-ascii?Q?Ck1smmJBUrLQIeW2qnkYzX5PfGd67cdwOWTjabyz+baWgUuVaWBpjWu4KZU1?= =?us-ascii?Q?I+I3UVVBrcFhLZjHDt3dSJAYO+1kWUPyRbv8feXjJ+eC1zQIp2VkdaF1fNMb?= =?us-ascii?Q?mNoFWxRZlfu8fyqju3GsPooWxaFjCHyqaWLWea38r8bV9POABV9ldDu/Vhs7?= =?us-ascii?Q?FYlnoCoBL4ZSh4CUXZ0lBOpQj2amr4fVjEBXLXkVodSB8IDajtR24KtwXR3O?= =?us-ascii?Q?yGChhRWMwzZ/GP1rkVmXY4VFbVo0SV7R33XU4rlKmnGG1rCkgqXhiyJTbONZ?= =?us-ascii?Q?A2r+jueD9yFE3zFkEC9YYIDPJAyT3XQGwaQvSAB1RhveT1Q23kmjgzx3wkNk?= =?us-ascii?Q?42WBriY8PLVjHn3KESo3p1fmWyHye3fRsYOlX9CIu5/lUdTburLNSkplZhbe?= =?us-ascii?Q?DI4jtXruHL5yFEjirzSQvyLOyOejzT+AcEPvHwTA+F/4bjWBSj/OpwDtffs7?= =?us-ascii?Q?zsq7v7rFOerk/K6fLZTPnFbKchzbHlX6L1N91FHALakQPxgXKc2jOYj6OqYN?= =?us-ascii?Q?bJBfqls7AFSYCq6LGcW147VRENAVa6AGlkV1OvX4en7eV3L2V9Pu7mdiQRC1?= =?us-ascii?Q?Oc1lUfh72j0UuVneWCpZ+UDMtdRcqExrPnfE5FNKQMkCsLjwRez7iGuY35RN?= =?us-ascii?Q?7nbvM5k5pmxEe5usx/3uAmL9rFm/wqu3Pedj/FAAFmES3InfHNvsf7hF7Tm2?= =?us-ascii?Q?dwAzgExx0aR4ZA/9zk/pgUXTIXl/N2rxFm0FVX6Uq1XjJ5nlfXNIqVKygVdf?= =?us-ascii?Q?4u/2Xn6iJZySToo33tVL3De05sR1rXSupdB3fO0QxJJLNOsysBlNz3Aq9VtD?= =?us-ascii?Q?N6cPs3lMgNciOsG2jVEmgxgQsoX8dRN1qP4+s0fPOZ8WgUc7SmpXfCtpp9W4?= =?us-ascii?Q?4FqY9eO97ZugtKM44bGyeI31dsMAVIXoQY+N2x6SlqnVnwsRf8NJ1Q2GpWBe?= =?us-ascii?Q?BiskbUJ9xcVmXCuzkw1m8VBZaiiGcLkBYHWfOAQ5rrRJssBh20kQSoa937c+?= =?us-ascii?Q?MibKODjGX8NIJa1kW+hl+66qgnoBFChCy9KVWpPipfWEQIuuciI31NlayU9u?= =?us-ascii?Q?uKsliuyWaoxFbmQ/Tu+8VH3M9XQxGpmReMRZSbA5nQ+Om9oJCiB1PEawFlWZ?= =?us-ascii?Q?YdZOG3D1XQHcXI4bCxw7Q9KTw37yeQ/fxvx7iKUpjuIkqbKKfnaJ9dHEv6Wk?= =?us-ascii?Q?hwNFjoGcwai2mA7Nkm0IcPPeELxDz0Qeed0uhShb1XHPRgBAiQ3VIZ8AJeFr?= =?us-ascii?Q?9VDnp3JapifNFI9iuTMJh6Z1SruoACmHwk35U/7PhLgT25IcUM5RxZgb+k3q?= =?us-ascii?Q?++LfbuzfGTc/ieNjEZR9wn5msMriyEKFQL9qEcDb35+UiVW3cKWU4F5QMC8P?= =?us-ascii?Q?E9f/fngu/IhN1z7lruPefflXy8OR05fStHfEzB2p9vZmaZXigitJX6Mayn6n?= =?us-ascii?Q?4hJVVL85PzRb3hYaQYkBU9y6HK3BxzeBa6OypWmuLWNK6Je/xKtztS3tRI7W?= =?us-ascii?Q?oj3CCLPpBT1YsRpKp/rdRCuCXAoZE5rLmWXVFyOUMd+VUpIdaf8uy48226Rk?= =?us-ascii?Q?vrmydPN+wTn78pkT4+Y/0M1yMAVHmfxWB7WtHPY7bkcjlsKZcq+/oeG8C0ej?= =?us-ascii?Q?k+ALdU5ydy+Ubw9jLWw2e3PFp0ZTXJQ=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: c250866d-dd73-41e6-62e9-08deaccfa4c6 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:35.7101 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ayoNchOEfqKn3QaE+it+/BCWF092W/XXHpLzamxSib5l4Xy681QvcPaRzMwVNzD75ZNO1YAFGPZzUL50qKYo4Lk6OpL6oLjZk8IOBQxDP+U= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" From: Daniel Hellstrom Sets the DMA mask for GRCAN and GRCANFD devices to 32-bit. Setting the DMA mask and coherent DMA mask to 32-bit ensures proper memory addressing during DMA operations Signed-off-by: Daniel Hellstrom Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index c9175a6a013f..6e0a393785e8 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -1746,6 +1746,13 @@ static int grcan_probe(struct platform_device *ofdev) goto exit_error; } =20 + /* On 64-bit systems.. GRCAN and GRCANFD can only address 32-bit */ + err =3D dma_set_mask_and_coherent(&ofdev->dev, DMA_BIT_MASK(32)); + if (err) { + dev_err_probe(&ofdev->dev, err, "No usable DMA configuration.\n"); + goto exit_error; + } + irq =3D irq_of_parse_and_map(np, GRCAN_IRQIX_IRQ); if (!irq) { dev_err(&ofdev->dev, "no irq found\n"); --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021139.outbound.protection.outlook.com [52.101.76.139]) (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 B8ECF35F8AB; Fri, 8 May 2026 07:01:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.139 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223718; cv=fail; b=F51E4Sr2NGgQiDi1m58N/NYK8jdNwEray80IdN29WDBuZuxeMVvkDtAr8hyXSaehG4Z4Glm4QvX47QAPpiwCStvOT71RqiupHvj1YnAbl3iCtR7oLL5Azgk4TY5aRAnDQpldXSEsk0AlGSH3g0OctD/2c2eSEiXUYvET07VbgS8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223718; c=relaxed/simple; bh=Vf2CBWJY+w8dRaG/8/8xC5f9zZH4W2KXoF870P3Tv4c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rLw5fn/YgFnb5lJFZNlgYM2hTRyrIFVPzQtqQ/Nn0k9irLoB+nvZx17TaxKa/O/ji19nznpyDEDoQwBPXBAYyRo5TPcRlWdtUHinz4X4r/Se1lzB1Ln7+TLWQI6INJe0qE8B8OPqWgxrbVZIn8AeyhaHsN49Oe/3Gp7eT4qfK6I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=PJsupBDY; arc=fail smtp.client-ip=52.101.76.139 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="PJsupBDY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CgC5BTYoou/GTYqbwiWiwRZ0gOmaG6H24kNjFCtnCQoYyTpUxql4/pfrGEiTeym3wGyt5xFXpltQx5wQI65Rndlj+dMOXJaxTzd7pTfnRv9L3FQWkoia1D/M5r1a/vKESOn6/Iy97hpYG6qkuuVkqBEQuA/SzbYFW03AqqH7nOjQYfmIYHCZEIWHDesb2nw/+zIivOsIQ8s7QmMNRT7XcehmRczAm7SL0jSXwEqEDyfQUgv14ZSf3pb7jRWeAb9xrdWo092gde2rCSS23PUk7EVo3Btg7Do7b/eVh0u3WSlvljdwLT20XlUW+bqmd6YXqtqNyo5CGsxnoi4Q+SOjqg== 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=8glEZ82uZBY1CvyitsTBirLmVTkGitAPrvRmBDFMt+Q=; b=byEGuGOys+rtFX408raVJPKmBGpetE7c+wEhy/OUwnROplkpZ+bsllWX4E+AyF0Z1nmgT1G51peYT4i84laC+0V3Ny4KJrCV97PMMbwpr3iHVuHZ6A9asoxV3Gq8rsC4WpoFeNJU2HBhEtSs3xZFCMPckggJku9zhnp5nGJ+F+19867IktgEBa8R6bpgRNVq5U/FSaWiSpIVepE0cMiGwadMLvZGpsDSQbV50BYtpZLpN977FNpcnvQsxG7BHwhSPe5Ghaht9df2HzdH5VextPTShBd1pSINae1J69i+5mvUSQrdzvJdwCAWETIYTY8tZyKH0LO6M9Z2FaMVFwAUTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8glEZ82uZBY1CvyitsTBirLmVTkGitAPrvRmBDFMt+Q=; b=PJsupBDY9E6QEK+o9xf+GE/zlVEJDEczLeYeZTtaSZ2OwXMpaynrCRTwjveQ2qq7XjJwHPXyNJusninwFfzOHCeMdR75jnK2x9HzsxTIpexhhELLwNDHETY6v734v5gDmZj+30sA4+o21fZyah1hrBh/wVDxOJ2eRnSAz1HLvQBBlh/krbbEgovhMx2jJnxLvhh1G0Bls6n5A4GOWEdrZWTf5W0efqsS0mta7V2u4xRfpOX7UeKPCz7masQFnKiFnqEHsi67NWd1002ZAOYVxGdRmpD2TgMZLBsHpxfReo6p9Q4KIDVIrHxmCImLAT4hmwx7TTFogNyd29HJUAgWaA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:36 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:36 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Daniel Hellstrom , Arun Muthusamy Subject: [PATCH v7 09/15] can: grcan: Add saving and restoring of CAN FD baud-rate registers Date: Fri, 8 May 2026 09:01:15 +0200 Message-ID: <20260508070121.6918-10-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: 6164ae91-b6a1-48a6-57b5-08deaccfa502 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: GwBGZudm/hmDtWc42dTC+m0XbfCbp+cQTAO55deNgkGc9MxrYSACJJQ6UtTk38YB+9SzJRCRT1C61lTyjhjhgDetRWlz/nQOmkolVjchW5LSj0QhlW3Yh2POPMh8tBudIYONiIkeRh4GTkENySh0H7Vg7ciO/Gab2QKjXI7i66Gx6aXyJbDKsxFsvO35t56XlSRUuJ1WKd0L4LdjBAiIxIzwGR2N+YnmQw4wDMrw42+rQKkQsbCIvSpsUqUCyWAzFRqYsZkclYNZJbeJbmSOXvCIoOUPd2Ri+n2Z5Jz/ELYvVOWFx5O1wgHO6gqd3QTaKWvhTwIlcl4wUh4fFk7lEAVbegpZZ10RHwW4iB9eTqv9IHJY+pUxl3z/NeY9YBdbyeKA3QYOAOOcP/vMCOqmfH7wpPAuWHenCfJc7WJrzTLcULWfNb6S1ME630hVOeW6MooczfeKY2TIfhW1N+binobzUtpMVzCtQLMlDnEnwJDM0HU6IcUwBabPiFP/ap9RFM2Yqufgpuv5beMCGeU2AfwrIXwRGvxRjAcl/LEgtV/cpyBzolZAhQAGlEb9dEh4XaeJM6PseEtlDszn8sBNFIwvk2s61XvfX3yhJMChIUUMpDfFLFZyMhgRmGqKkM2+KT7XTVeyoOPSnJcDUZ/jdEmckiVAVjqN+z/JbZ6GlRO0Zd6s/KT/QShH+cbgW8FsEh1R78kSD6JJ6uI+Lqi/7BGzwsxp/uy57zCrQjnIIdg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VxE2OYcq1o2XK3a1McgenttxzCp8jDNe0WJW6Ha5NqwJhem7HVeB83ydez8e?= =?us-ascii?Q?uKDY2js74AvqlSgZpWAFsKMAz0t6aU4HMsiHS5Ff3Lfxuk7YRqLYBBhUziz9?= =?us-ascii?Q?+CTe4lbMrGS4IJeI2xoY8VtvDRXVCafTmgJ5y4FyCtoo53atyE3BiId0iM2i?= =?us-ascii?Q?GddQT/3zu1ohhC1fm+pVCrJY2URNYJzlqgD55NohzHUf3D4EERHwUgOawaNF?= =?us-ascii?Q?vzGu6qZeVUnY/mUDqDuwoc9ovf8VQPc5m9ZmdKZT7wDFQmmKgl7b+Rglpwfm?= =?us-ascii?Q?A0PnpadsWyZCvt7FS96LR77wqNOlXoeKu7Z71E9vzWs/YkZeZliINAW9/x0x?= =?us-ascii?Q?p8zyjkzuElBk4vjfnaUzzg46Cw6j7Hv5JIW33yeNPAxw+2Gf9S3UYJ9cLnz1?= =?us-ascii?Q?tWj8qspGXceWu/b4i3LvRdMafSTW4E3WQokApwBHQHiaM/9zr0O8DFlF3XE9?= =?us-ascii?Q?/XrO5cgtngBPbVcXubIHmVbqJ2pfrk7zD1jf9PNaz3dAfGk9P8mLvtG+ZOsB?= =?us-ascii?Q?ikiX5KRAyWriwoTinxyEO+NY+UcgqS9BdkAQmbWQL9zF8iup9+pJrKLe7YGK?= =?us-ascii?Q?svxgrBPgh4aGMhe35N7BRXHqNhwptOy0LyFlh/7/9bIBJCox7s8NvPa6jJ5A?= =?us-ascii?Q?pu8JQEO2ZSIeMaA9UNDT1hawisfi2CnHIc3k2lXlL+wBadPwUcGBSFRoIXJ7?= =?us-ascii?Q?ZQNkZ+8FhjUXmxotJ9o+BYq14ThKPr+o+/YPqcGns0oQD4aFdaTy1lE6iA2m?= =?us-ascii?Q?bt3mCQ9Hj8gpnZbKoe0hJE22HicJkuq1ztCCJr3nvGFXS/OebRl0QyGEofSZ?= =?us-ascii?Q?0q1Ut1NR0jkLMBSsLGCBOr0h6SddwhvEDQUyOvKKAoDdSB/Phkxm2wj91CtN?= =?us-ascii?Q?mzMIoN4OgWsqp65kJ0G705jPzJ7zU4lZusMynjeGHeFOduMbSZxtA8vK66PV?= =?us-ascii?Q?hLDE0ZDJFFlSaVuwfJxsA8mbLi1A8ZNNXygIh9D5Do7PN7lA24CfxU8UOdE4?= =?us-ascii?Q?QJq2UrKylEknWsvjY7PEADTzmJZ+cNgUy75gVTQmlB+h2x+EgTbwKWskbAXJ?= =?us-ascii?Q?NQK0NiGgsdc4AmaLeXWXqgxJNIm7jE4Wg6Mg/3OsR/tAxZEo9mF04JMLhV5q?= =?us-ascii?Q?YT+AaFoNoXrtDMRSElQk385W5qUH+g3/oqWuWk+SeoFFVualXDR9FqebFPay?= =?us-ascii?Q?JDyeNKlIGmZMJ4Qg9E1dLvqcufuObrxLN053Asd++u3XUM4YJiSS2k43ygzC?= =?us-ascii?Q?HFUP/gX09kpIMXm0wqf4Eao7AG0dgw86e3Q77YILV8uS8RNeu+BYR3t/P6Qg?= =?us-ascii?Q?xKID1MFBUaXgWbVk0UbdhujIUJQS8ilF2BYnjvLLY+vQflk2ww0a+g75VEE+?= =?us-ascii?Q?4TmPgpIQz/PL7sLEDY5p4YseshbQCwcpXhol/5MSM5WlG/LUEkXMMcceSWsf?= =?us-ascii?Q?IvdyJUKZcrrtpfwUHR/XvfLzgXjqFq81V5kOpb2G+szPLip0sixd+HPxt9qu?= =?us-ascii?Q?9AO3PA7KDpKt/f9mHsxKCrv55nHvTfSZSjjoCdVhm6/2CbB6n+vXGWi3nyo9?= =?us-ascii?Q?xGu/paAQnT6C0oZbrcUYc2qKUfJn6P9ZGlKVX+xud5m7GDka2xYdyJKewwvC?= =?us-ascii?Q?7ViyBj7XIotjtlLeYeLJUW3F4wIZR1F9I0EFVTodnpzXThAaAvi2NoANZp8V?= =?us-ascii?Q?m4vUkiOurOyQo386FdvgegHPCn1zVb2238SdFB1/VUWQws+G+QWtBxi8p/4R?= =?us-ascii?Q?XnHV002F4QJ/RF0zts3Vm0y0at4P+Xg=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6164ae91-b6a1-48a6-57b5-08deaccfa502 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:36.1229 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U1ZenrUPjrbnankXy9qQXLZlbGzL2EBvl8ysJfc6X1rVuyhzghhDq0K/SDomrP74YoyBOQs6tP9uU26IQrGDSmmEXbqnjaV6I9TSToB98Rg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" From: Daniel Hellstrom While reset the GRCAN baud-rates are preserved, since GRCANFD has the baud-rate in different registers we need to add saving of those registers too. Signed-off-by: Daniel Hellstrom Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 6e0a393785e8..ccf4032ed642 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -528,6 +528,8 @@ static void grcan_reset(struct net_device *dev) =20 /* Turn off hardware filtering - regs->rxcode set to 0 by reset */ grcan_write_reg(®s->rxmask, 0); + + priv->hwcap->set_bittiming(dev); } =20 /* stop device without changing any configurations */ --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021132.outbound.protection.outlook.com [52.101.76.132]) (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 1350737A4BA; Fri, 8 May 2026 07:01:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.132 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223716; cv=fail; b=cSfrMGfczZHrGb7ivF8dDrVvorfhUlEMzRpsxX3eyhZVhkkYb1XcaA8BQjrMq2RKKGc3L/JTdr2/8lZ9fyECaSJ4LrvmoIGWK7HssDU0mg9EpS6ioK6DW3UWD65Lzc5gHEnOWYeQdSJeSfNe3TLKXl16Jz/df+eOZOkHVlJMbaA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223716; c=relaxed/simple; bh=4qOCsCEzaGJZotvHiVjnVObw33R0hRNl2MgU1DvYQXM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BHWHqTQ++ohkhWAjAOn7huhG0C8a5J7VjNYZAORKkORuT9imggMalrk5gBRekpxCQX4gcviYSwA4doLuEvwjxx/N4zKtqhcILf4LtZJ95BWY+d6Crhm0r/nzreEgAg3SBUrF5ukaCwm5qv4i7PdTEOgCOxigjLGfcwAS7hZPh00= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=tal1fOLv; arc=fail smtp.client-ip=52.101.76.132 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="tal1fOLv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rgXDbiAGGULBFypYWLWVBuzB0ejVlsI/n/e4YdhBa09H0iHq9Plqzk7DcYchbxAZq024iEF/m3b05G6ktu7RMCFDDJ4jIOb8um/C0FSgLbEA2535hOJP/ROrHYFLnvNWuiVU039uTGp6IvjjMfYZfYIovF6w+uSuwzyVxtkh27vT0CEzmAQWzKXcz7d7tG9PdYBhPsPH6II0iVeLR9j75mhg7TAniKHfzReWkroV9spqg464OUJyKNohmeT7mPxRLEvc9IuMLv8QxZgUCFSEo6VvB9DDTj3bclW3ubEmJ4SiKABJbvE8LjPlXMTpyjiso9pJpmiBwyCvvkFLBRYosw== 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=I1VBFildY8PzzWUDOCE3NZmRyuoQ9/bfo+ai+BqYlC8=; b=lTLhnOXxjnXvr86aZsHs1nQWf/bflJPdRIXcmYtHR3dda9TcKHrRJTUtBDdLKBgCTRyy4kxNe+8uHqtzfSOSTU6+cQGOD/Nc5TXygLcxBoQO6vhTbKxvyzUWCRV69pvF8qffWFG9nDmhoCW3sRDEogCAz0n9FWyZtqk8fx+slFjuW2Swqehp4aTaFXV1c8Q0dfzLPXS8Tarp+Hic2FHrGvD43ELHMZ+zDgef2EGEIleewEgxClYv292KoXCxGRWW/EbkoKNlvwIc/b2UANHgdD/new03i37q57tzr0gVczI5b3S6t9lpgVW1PfuQUdxWtUrtMVuXahYHi/9462IXTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I1VBFildY8PzzWUDOCE3NZmRyuoQ9/bfo+ai+BqYlC8=; b=tal1fOLvbK+X9x3giFtW9Es6UxlVdaTRDLzya7rogX6wQEZkCPVwRNmSp0F4WigsPfxIn3bxmYk0r3QXtEtThhMjqauRul0aGnMkowE2KiEwfS14TOZ0m4+bclwTa0aPctTs7srS/d7FFFwiordbv2YFhxwEvwf0R5Hw2Utauv7oc/0taouEc8VaT4ICk7Hns39R5Mdq8sxIYUpo5UQPvNCC+X6JSggFVqJ5ZP8V9VGeQ0XJUUeBB/ZMk8neuaHE8eRuHzk3esO0DM34XxjetC2k47UfHuZ6DH9A+jlK1TQqTH/BBLFKivKFGCTFwTrdH5VI0a85F2WjSVCAHD39Fg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:36 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:36 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Daniel Hellstrom , Arun Muthusamy Subject: [PATCH v7 10/15] can: grcan: Reserve space between cap and next register to align with address layout Date: Fri, 8 May 2026 09:01:16 +0200 Message-ID: <20260508070121.6918-11-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: 61275157-ba96-4097-9f02-08deaccfa547 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: NR1ILxF1Ur1BrzN337N2knIxa8G5Gcg/37HUfNSEqxUHUdsJ+Rwr47rhqmv4/sch+4MrDn1PBsILJLC6Hv09rANCGYnds1eQSecOr+XzK0gwFTf0EfUTc51keEU2A4A+IO5EAA1NrBEtP9OJRlGnTSuM44H5oaDuVCKlJiyS3tdidpDAfRj2o9B7Wfudt00eay2PoS3S4uXEgiVPxkJbSrFIYCgJ3aDbEGqkEj79XnzV5Z4HjzeXx9ALkcSajB5rwZcrOAktlgcTTC0d6+cfbvYgOGL0/CXXNFHHnCme7IstWAJuCbfKv1zrpNycs9XDbL/3AmYTP6FNRjfVle22+7TVMzq8cjt6tss9Y72BEbJAfsp8ID+GW6PaOl6YZYXB3m11jV4TTqCoyAXCWRnnG7pbr/B8+duJcSPZYYY8Q8K07y6NRhANk4iPG9GYZNxZIfwCADd3BhFJw93r/dDpkR5eQY4ufuLUXAWpU/ciI0wLIIZCPOrY8Nh43x/aaVQbHcjyVtOFEC9cpjCZ817p8CHg786b5gXWueXqOCtfwGutpocGmeeFtS6bUvk1LeTDJT2Acmfnm+NJl4E7TBsbpQLXDG6DYX5juK+0KWpS6NnXOi/DsuszhYUs55kJtZjjLGq+SDAGBU1RV/YDL8Dg+N+hfWF1ruOZ+RB6I2tBztyJz6rqaRKoMbWlfo/eyF9BdRuO8OInkBuFPEtgLTybgZHuKXjrheE2eRNl23MQkNPetrGjCCJ1VcdbG9K87Rfp X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iuuiT6GUGTL58zLbjeW6dpQBT/Eig5QQ6x77yEbRDfXu2GlyrZmvdlXfX1AE?= =?us-ascii?Q?qmF4Xa7f5i68iBp7vNMphM7+B7RBdBz7gxqUX8SYezqgVfvt/BwlKX3VbVXG?= =?us-ascii?Q?MaLDcxyCNS+sS8DtaPlx3/R+8pg1Nt/Gmkn/k6mqmIZM/+rqHRlyPJk+qenk?= =?us-ascii?Q?aegbobpbk9zrBQKHrbAWF1jC2S5PnJJSKUbAjbBU8vDp55eP1K4W+01DOlLU?= =?us-ascii?Q?LcGY5cAVgjkJM947WOEhwWUKq6osdJZwwsMPqXELAjf9w3n3jIf+xKbP7eVv?= =?us-ascii?Q?G2zF2YwHhXL8yMWMen1eeDPFywj5WubzU1PAxSzpma33OxYOWS4vFspP5Nwt?= =?us-ascii?Q?e4C+ziBDo/zxKZlvqbl9+jQjH7umg0uTofR3B9o7dDGYzwRlMb4riPtPAWYq?= =?us-ascii?Q?3uCbPufc3nfrRgU+slP5RR0XW6AlySwdDwtaP3MTxXwmn+iwBbCMvNMsbJ3w?= =?us-ascii?Q?5ajErM9loB+nqTV6LyHeIlsWGzPVXatzuXHX0uoiED/aSYEYo2m5LJEd1U3h?= =?us-ascii?Q?nUIBtBvFyIMUQ3iyRGOzKMpUhe85vuV6nnva9g5ZhfNs7AreqPNJIs2nbnfu?= =?us-ascii?Q?Yd7W3KDr0+1lK8lnb2rA5iKHRmHuzwrJXikpLEQbjr7MG0zqD8l4Floeq+vG?= =?us-ascii?Q?cd91AAJ9P2kUqrsT7KZGUZqhhmmUNsI0pcdzrq3LJoNs92ZJq6jwpInI/gy5?= =?us-ascii?Q?xxhWdrFei1fTByq1/aet5oY3h/PXpCm0aCVJykB5w8aE3DgilP3RTQjcUAKK?= =?us-ascii?Q?MzLG5I7jQ7b60vVPNB6qsD5aSbeQD1DPrgaqPogp6YGbswkp3iy/nlobelD8?= =?us-ascii?Q?3TDHNmd3nBYdx8fO1HeqSBasIhPWziI2fEGE+hbp21GNg32Ciy4Lpa8hHTv8?= =?us-ascii?Q?uqLDUMv3uiorESuY/a2+HYLRFjZEzULzverHMTA5jOGBRrI18Fjer4I9WzbH?= =?us-ascii?Q?JBP+fvNiITvIExQotSNLSTJR2oPDVL/n0Uvz6xXecr63Vg6LGdgS24MCsAqm?= =?us-ascii?Q?8iPOCqOKoa6TCBUN33ZU7qcrXui9RqduaVtoKdt2e7lSl/cKtZcJih8mEZdt?= =?us-ascii?Q?aAXXtiTgNJwrwnpCLaAoQ2ooA+bsbMyXz86zHIJyJ9jtNK+UO06pYb2GQSx+?= =?us-ascii?Q?vY+Jx0IU0AulJjykV8+ET+yd0jlhAVIbZ2LCgZ+iHdyX16zg1iOEJIjyZIDj?= =?us-ascii?Q?wLSNGBX09hKPZttRjeq2O4/odu5UvU7IOOD4pHnzA+AEEgrrX+Hm4qYiV3zf?= =?us-ascii?Q?BLNKhPFGp60tZ+mpyY0dwh3xCDbTrw8EhVuI/oknx5sAYRV4mFwyVXklO0bm?= =?us-ascii?Q?jhZAQ2CKrVHt+oY+gLypSQGGPgMWFy25UQ2PYSOxGuVEc4iGu3fytJU1GDBR?= =?us-ascii?Q?uMbDIRyjgk7J4Hy6TI70NbU8Jes2fwvQY5jBJJoG2p16wFRsAchn0Z1x1x3z?= =?us-ascii?Q?CeQ5kriGBptM7WPVZyjveoYQyju5UHFe6HUJVdo6dTDk8GG/w57XNYkLBj4d?= =?us-ascii?Q?Rv4MVq8yXMjZ+K+7KvGppiiLOOhgvFDeSy2EXDmM3b1q0IL/QpWl6fLRJKQF?= =?us-ascii?Q?pS8ExEgKtENfmOxLUDENRo1Jhoyrn75T9rd/Jy9aC6d2NlKNYt8e7P1c+Vgm?= =?us-ascii?Q?hkV/y/B4vRMUnLfnZrReiqLoo0lrD4x7YSY+N7RwbfetkCCN+epGthJkqW9z?= =?us-ascii?Q?7NHDb8zqhBMRALT2XaZ2X2Nkh5xdJwQYMQ1ccdIrUsUMz+u8l2fXKcKXI9A7?= =?us-ascii?Q?TzxTN3UwHDDt5MSdsFTxg+ecs7E0iBc=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61275157-ba96-4097-9f02-08deaccfa547 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:36.5539 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BFYXpuwTRvz/q6KgKaXgi2QapPHqtH/mbtP5nghul/7ib4pP882yp/H34GaKyvlc9qaR+VhfQfU9a1RwW1wMPatjATPIIsdqcvhEMvFrTPo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" From: Daniel Hellstrom Reserves space between the capability register and the next register within the GRCAN driver to align with the hardware address layout. Signed-off-by: Daniel Hellstrom Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index ccf4032ed642..b5527fd9e02e 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -49,7 +49,8 @@ struct grcan_registers { u32 conf; /* 0x00 */ u32 stat; /* 0x04 */ u32 ctrl; /* 0x08 */ - u32 __reserved1[GRCAN_RESERVE_SIZE(0x08, 0x18)]; + u32 cap; /* 0x0c */ + u32 __reserved1[GRCAN_RESERVE_SIZE(0x0c, 0x18)]; u32 smask; /* 0x18 - CanMASK */ u32 scode; /* 0x1c - CanCODE */ u32 __reserved2[GRCAN_RESERVE_SIZE(0x1c, 0x40)]; --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021092.outbound.protection.outlook.com [52.101.76.92]) (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 B8B6834CFD0; Fri, 8 May 2026 07:01:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.92 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223716; cv=fail; b=qWLqxZpqI9Trt7DfozdoiF5Nkewejw0D+dfbkg7cV8mb4rXltWf6oy0C97SAtuH+0+j50Vxiobdwqyq49kDD8bhHFsthCDo97giVFFE30vv7X15vHhHKynT12sCJeb0Xm2TRN0FNNCFBWg8zEmw1e4xIq5Rre36F+ZvUXJJQa90= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223716; c=relaxed/simple; bh=fiyZ9WDdUUK9w0iQsAFL7WSxh4bkj+tgZTmyhIzTWw4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=aIMcOp2lYqXeysOKz9CcaqcDbwbZcNbNB5n2aBCZBEXQ/iEBmtbCIRuq2hBMgbMR7noesm875fAwlTkc5P1f3NwVnIJcS+lUdpCb0aNHQPwbwWvEhhx67sKEui2dTruDx/j6NKZvB32jaKmOrFpz7NlnUC4wO0z9BgCzqWx3+wU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=YJeinS9x; arc=fail smtp.client-ip=52.101.76.92 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="YJeinS9x" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bK9wXG4jcidxRc+gOPW5/du9okOJa2r2GBsuh1xVSaMrC79F9NTy5drr7p3ZfdDx3YmY2d1ZREFnoxKT8OgELugmaR4xlfW1mGjc5Z/uqS3Zd9g2vLWbRdnoLjm2L1u2rx973BGKv+YRausW5Ih2Xiaq0p9EmJn/InSqD9F/uYeakHmW9oGpyBYjDtXnpnokUfqpCYdvvR1uJle+rPxxRFg5w1VHnFqv4yJnJKjP3mPL7AAez9X8f5r5vZCRxKrRoCyVIfRg8pQuIlN+xFDZGzIvucImepepMnyRuWgu5yoOIMlffhdXTqZDmdyUDUey+0XhlbSf7OnMNW7r4mFxdg== 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=6Vxflx08YBJ7pIfyfW2fUAN4CLE1+E38zUAj7s/cvsI=; b=roVnfKZoobpYZ1SGXBTA2kdlUcrcJcc4r9x6jp/3g2TQmMEWo7/V43dZ+a67J7jGZtnV5SYLDO3zV9yOMJQwTRxY7H78T6h4IVF1dV1fA3w7AAeurL/CreJCk1y7ohXUWkDtSl3fBlFpe13vHurSlE9pDTrGO8fm/ZFYsV60F4P2ROV6TLvebjVN0y8esfbH+0M8Yo8D2iXYDQMGebxupYxJ7dOZBqZ5CzER5untb5PLuRM5iqxcvwAG50JHdkIMRRv6m9sZbRUcTg3yIskE4ZJ02y2jFqKz/Qkc/EAW4LYqid2ys+mvmFX//MPn61j3Q/y0cP4Vxsl1jORnYu29Sw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6Vxflx08YBJ7pIfyfW2fUAN4CLE1+E38zUAj7s/cvsI=; b=YJeinS9xVMOsSCyq4bXh1JddRKYL5SKKZbtBf5JVwTyWos0S25ccYFoxzaGuh6T74lmywII91zVhfaq74xfFPPQAPMli+eWzeSQ/lLwvP5pK/7dEo3DYQvy6OmyMzgyae81rVfL1zw8fkawBJHQErdGUKD691Ewqw4crqWW0IZqX7jVtu+LozLb+Plx85Di6hNrzk98vqcw9d3WHDrl4983BYiVq6j3xjimJuNfmiPwVErq45pb+RXGSgfm0FluXlYrsz+mLWCD7do0PIaXExQZFoLNgRRw1za1ZOxrOOeD3vkR4VSQQRme5gtOO/KIw6z6BlYO9imoyRjiTzty9PA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:37 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:37 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy Subject: [PATCH v7 11/15] can: grcan: Refactor GRCAN DMA buffer to use structured memory layout Date: Fri, 8 May 2026 09:01:17 +0200 Message-ID: <20260508070121.6918-12-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b389005-fb82-4d00-4465-08deaccfa586 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|3023799003|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: 2Uo5gB4+7XbMi35sqthfb7Neih5W/JFSR35kYRVjFkoZjh+E5/4dxzAL0vuZs+BkUPiiojSuvr5+dR4ByxPqykm9C1R1F6syHQ1DrXmny704CH0CERK7LcHBZxkaXZvN0bJ2T4Rsw6sQ5sBwf89xqf2tQrkNo+iBhH6w2VuxE9JotYjFYczGX7KU0crOyhXVz5xt4hcuGkBk2RjfYgDBICZgPnJpZAsXWXJXEgPUhvwxAHGhoKCI6LIFvsm5sTI9pYKQJJ84WrbKvKgddKkZxlYWo6rtRnDa2QvNEzB2f8COn+a5FFF1XhOuaFrCMjDxTr/pdfqqHfBjRj3d94l97qjDIBaxDV5eCHBe3J/xHNJJRJWEbiB5M5iuYwpAs5UrczsAdW48qgu63VJpzZSsG/d91E4dsNcEymX5Tlfm9akj3GiWErsCFasKTvanxP/2JKZw7j4XgeXiv57uNKsOc7vAw5lIlu/3OxVToEeMAKHI5SeoJUGbIne/WYDXO+fcLA4D8YggpjWYdSHJrwIsjhoEW3ptoncSRb/7HV4BevXONz+NyiLehO+v3EWZvviVcqaS+LLOIr/8Sy9Y2vGfHLD919y40dMGLZraRXEOaCozQGUk+B+XqBLHXVueWsEyM1pkFub+81f2gxgFWMSlRq4TM5lavlwl2z3zR6h0IQ0Pr6KPf71YtJmBqmBBxCw9SExaah/4Imos1BOfq8LvTyp/C3W1WoH2XYdGOJ0Cc25LQ2ZeTr0KmgcorWetj53S X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(3023799003)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yNy5Mh343d9TT5cmCWf45SijgQze/ozQwtNcjfeRMiAAZPZXmMoKAv46HMGb?= =?us-ascii?Q?H7JzGWPdAwbcatXblkLBFIVf3GmiX2cF5Q+iJQXp9GoCSOnHIFMtDSxBSZQc?= =?us-ascii?Q?QHgeXZLMQNod03+1jt/LtBFCK25c4ubE44SLH4JzUSaYAIs0RWS2/iA5jNr1?= =?us-ascii?Q?a2vmu746+WesZvMBto5Wv7ur6DrK40Fvg50CkN+ED++xr4cyGdxg3lqovJYX?= =?us-ascii?Q?tdez0GFjqfTw7QSiqrU1hS9PHiz507sh7IMn58JL/DympCg6o5G6OOgOVl1q?= =?us-ascii?Q?X6Mvbi9HPwUZVGvsbcXzfnCJdpMfiiknQE1A47swUQFA8mvDGkqP7ofAFrcH?= =?us-ascii?Q?oEttkcwOC6Nzb1f9rhTtHoEjGf91vIOSUM3vJ5CaR83+R99fgPAhfeXxpt1K?= =?us-ascii?Q?8isKjysbvDHQNHruol9CRd/9AD5oZP80uKdWZBk+q9JOjC4sFsQ01C61c9PD?= =?us-ascii?Q?vFZeSI8IDTeqyTU6KWsAAYdhgHWv4k3RhwLmbaKPBOh7kHSrHT2QpJ9Sainx?= =?us-ascii?Q?36z9zq+aNjv0d4EvtN8L0TDYHTq0rY6/X5Ozujk5coti2hlsEOZWdWbFA2OT?= =?us-ascii?Q?Cjf8HsgpenlNJly/kXC8eAjuuIUpnfQAAmh9XPT2SFeaZRSUzFgESGPdO1kH?= =?us-ascii?Q?b9Z6LXTaF5VR465rKi4VmjMJPYfitpl0bIFccqUzwcL/XxwWlJ2nx99F0tS3?= =?us-ascii?Q?DIB08L0APcG23CiS1aO2ss+NrTusCjlDijDYg5Ik9LDfMJcO8UVYzt55BuP+?= =?us-ascii?Q?LDQCFEyj8sCuBqk2wcyo0qc1q7oDIMi0eHrYEN7PH57uU7BA40aa61iIZPkO?= =?us-ascii?Q?BUpYKK12Kj/zRBQF1npby2tJdHphAA0LAJk6ykc0FCUUQYd+w5jpbf9TLAWR?= =?us-ascii?Q?+pAx5fvHVDvs9UqFDXUzY5yWVnJnYECrv2mWbH3oRbYcrwRMkC3DckXeOFE8?= =?us-ascii?Q?naBcK2pTA++3s9R1Q62lMe+pyywOF72dQb+TlCj2sK5oE3b60Ld3DafcNk/M?= =?us-ascii?Q?ShwckvUiLNzWMdqroF2Hq2zZ7CBOuiSh7dsT8dNI02kPM0nq01CWrqyCnFSD?= =?us-ascii?Q?c/coP2rc+pEaD7tbnpOkF7L4KqsVLbuLvbhgB7arbkj/vkU4fQEw9inyQcsT?= =?us-ascii?Q?bLbKDZbEum51dikHMyhWCMBZU/j58JIfDhmGV+BzaAJq9QaMkIUtAEOEwmbw?= =?us-ascii?Q?czj3zTxdxlw6S7s1m1PJttwwLIZLYvL8iVhXn3hDrSNwKYUHhUhYb8gxva/G?= =?us-ascii?Q?Hec4YsEmDevyvVlC1t3EsCCF84SLc8yA7KPSOJs0eID1ilLM3+VIs5Sxhnrt?= =?us-ascii?Q?JmNk326gZbYf/22da8nFVBhycofu/7FdNv6STJcxXKswa3CFiok/S+ednkZg?= =?us-ascii?Q?22q8SIC7aCb3bUdxFJi94WwU+McOFmWcR9MrbyFuklDCaIwUSbMmxRzBWTNu?= =?us-ascii?Q?6VTzZXn+0qvtzawzTPCOvNQ0ZscrymelILj28UtZW40TKJaLakkRRf/wrWZi?= =?us-ascii?Q?uvai50B+moPc+sh9op8mf0dneGx0FGxH4/E9I0TT5aaaTAsJSS8ycv9vGF3S?= =?us-ascii?Q?cTRY4T7cDKFuElb+39+AyEHJj+PhcDlUoBIiKU3xiesoyTWodOV5w3olODRK?= =?us-ascii?Q?ZedCIEf3NFeZAXHIZeBLrTVJsdTCQUQgoyATcfOyiLtMLLkFmO97Ka6F044/?= =?us-ascii?Q?5ubi5d+p9SYw625s1FtYDG2odKW4MgUkoZmFYLDJ3l6BZJMKJtVi3GpVgPSz?= =?us-ascii?Q?PYFEQjbEeG4f1aKr9l+yMGXSnIFxebw=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b389005-fb82-4d00-4465-08deaccfa586 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:36.9383 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 202xxrDUESumGR6dbn94+RBaKYZtnKceXnNQxgQi0+pIiRRehGpOcAcY2vajVcWKyUP5Zsih28dhBJ1TVp4wZDlnqwqHAAamh25ZDysmESk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" - Introduce a structured layout to represent hardware memory using struct grcan_msg_header and struct grcan_msg_fragment. - Updated the GRCAN receive and transmit functions to utilize this new structured approach. - Implemented helper functions grcan_msg_header_at for accessing header structures within DMA buffers. - Replaced array and bitwise operations with memcpy for copying between CAN frames and header structures. Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 80 +++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 31 deletions(-) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index b5527fd9e02e..4921da349a0e 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -195,9 +195,6 @@ struct grcan_registers { #define GRCAN_MSG_OFF 0x00000002 #define GRCAN_MSG_PASS 0x00000001 =20 -#define GRCAN_MSG_DATA_SLOT_INDEX(i) (2 + (i) / 4) -#define GRCAN_MSG_DATA_SHIFT(i) ((3 - (i) % 4) * 8) - #define GRCAN_BUFFER_ALIGNMENT 1024 #define GRCAN_DEFAULT_BUFFER_SIZE 1024 #define GRCAN_VALID_TR_SIZE_MASK 0x001fffc0 @@ -242,9 +239,23 @@ struct grcan_hwcap { bool fd; }; =20 +struct grcan_msg_header { + u32 id; + u32 ctrl; + u8 data[CAN_MAX_DLEN]; +} __packed; + +struct grcan_msg_fragment { + u8 data[GRCAN_MSG_SIZE]; +} __packed; + struct grcan_dma_buffer { size_t size; void *buf; + union { + struct grcan_msg_header *header; + struct grcan_msg_fragment *frag; + }; dma_addr_t handle; }; =20 @@ -417,6 +428,12 @@ static inline u32 grcan_txspace(size_t txsize, u32 txw= r, u32 eskbp) return slots - used; } =20 +static inline struct grcan_msg_header * +grcan_msg_header_at(struct grcan_dma_buffer *dbuf, u32 offset) +{ + return (struct grcan_msg_header *)((u8 *)dbuf->buf + offset); +} + /* Configuration parameters that can be set via module parameters */ static struct grcan_device_config grcan_module_config =3D GRCAN_DEFAULT_DEVICE_CONFIG; @@ -1215,11 +1232,11 @@ static int grcan_receive(struct net_device *dev, in= t budget) struct grcan_registers __iomem *regs =3D priv->regs; struct grcan_dma *dma =3D &priv->dma; struct net_device_stats *stats =3D &dev->stats; + struct grcan_msg_header *hdr; struct can_frame *cf; struct sk_buff *skb; u32 wr, rd, startrd; - u32 *slot; - u32 i, rtr, eff, j, shift; + u32 rtr, eff; int work_done =3D 0; =20 rd =3D grcan_read_reg(®s->rxrd); @@ -1239,30 +1256,33 @@ static int grcan_receive(struct net_device *dev, in= t budget) continue; } =20 - slot =3D dma->rx.buf + rd; - eff =3D slot[0] & GRCAN_MSG_IDE; - rtr =3D slot[0] & GRCAN_MSG_RTR; + hdr =3D grcan_msg_header_at(&dma->rx, rd); + + eff =3D hdr->id & GRCAN_MSG_IDE; + rtr =3D hdr->id & GRCAN_MSG_RTR; + if (eff) { - cf->can_id =3D ((slot[0] & GRCAN_MSG_EID) + cf->can_id =3D ((hdr->id & GRCAN_MSG_EID) >> GRCAN_MSG_EID_BIT); cf->can_id |=3D CAN_EFF_FLAG; } else { - cf->can_id =3D ((slot[0] & GRCAN_MSG_BID) + cf->can_id =3D ((hdr->id & GRCAN_MSG_BID) >> GRCAN_MSG_BID_BIT); } - cf->len =3D can_cc_dlc2len((slot[1] & GRCAN_MSG_DLC) - >> GRCAN_MSG_DLC_BIT); + + cf->len =3D can_cc_dlc2len((hdr->ctrl & GRCAN_MSG_DLC) + >> GRCAN_MSG_DLC_BIT); + if (rtr) { cf->can_id |=3D CAN_RTR_FLAG; } else { - for (i =3D 0; i < cf->len; i++) { - j =3D GRCAN_MSG_DATA_SLOT_INDEX(i); - shift =3D GRCAN_MSG_DATA_SHIFT(i); - cf->data[i] =3D (u8)(slot[j] >> shift); - } + if (cf->len > 0) + memcpy(cf->data, hdr->data, + min_t(u32, cf->len, CAN_MAX_DLEN)); =20 stats->rx_bytes +=3D cf->len; } + stats->rx_packets++; =20 netif_receive_skb(skb); @@ -1395,11 +1415,10 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff = *skb, struct grcan_registers __iomem *regs =3D priv->regs; struct grcan_dma *dma =3D &priv->dma; struct can_frame *cf =3D (struct can_frame *)skb->data; + struct grcan_msg_header *hdr; u32 id, txwr, txrd, space, txctrl; int slotindex; - u32 *slot; - u32 i, rtr, eff, dlc, tmp, err; - int j, shift; + u32 rtr, eff, dlc, tmp, err; unsigned long flags; u32 oneshotmode =3D priv->can.ctrlmode & CAN_CTRLMODE_ONE_SHOT; =20 @@ -1422,7 +1441,6 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *s= kb, space =3D grcan_txspace(dma->tx.size, txwr, priv->eskbp); =20 slotindex =3D txwr / GRCAN_MSG_SIZE; - slot =3D dma->tx.buf + txwr; =20 if (unlikely(space =3D=3D 1)) netif_stop_queue(dev); @@ -1438,6 +1456,9 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *s= kb, return NETDEV_TX_BUSY; } =20 + hdr =3D grcan_msg_header_at(&dma->tx, txwr); + memset(hdr, 0, sizeof(*hdr)); + /* Convert and write CAN message to DMA buffer */ eff =3D cf->can_id & CAN_EFF_FLAG; rtr =3D cf->can_id & CAN_RTR_FLAG; @@ -1447,16 +1468,13 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff = *skb, tmp =3D (id << GRCAN_MSG_EID_BIT) & GRCAN_MSG_EID; else tmp =3D (id << GRCAN_MSG_BID_BIT) & GRCAN_MSG_BID; - slot[0] =3D (eff ? GRCAN_MSG_IDE : 0) | (rtr ? GRCAN_MSG_RTR : 0) | tmp; - - slot[1] =3D ((dlc << GRCAN_MSG_DLC_BIT) & GRCAN_MSG_DLC); - slot[2] =3D 0; - slot[3] =3D 0; - for (i =3D 0; i < dlc; i++) { - j =3D GRCAN_MSG_DATA_SLOT_INDEX(i); - shift =3D GRCAN_MSG_DATA_SHIFT(i); - slot[j] |=3D cf->data[i] << shift; - } + + hdr->id =3D (eff ? GRCAN_MSG_IDE : 0) | (rtr ? GRCAN_MSG_RTR : 0) | tmp; + + hdr->ctrl =3D ((dlc << GRCAN_MSG_DLC_BIT) & GRCAN_MSG_DLC); + + if (dlc > 0) + memcpy(hdr->data, cf->data, min_t(u32, cf->len, CAN_MAX_DLEN)); =20 /* Checking that channel has not been disabled. These cases * should never happen --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021132.outbound.protection.outlook.com [52.101.76.132]) (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 3B2FE37D11F; Fri, 8 May 2026 07:01:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.132 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223722; cv=fail; b=CNt+fy9dEda7zGvdE5Uc4o+S1wisN12sNfcGu1JC+JSLAOxRB1Z+fZ1PlJs8m66I61CgCxsQJGKBficJ/W+7uIa0Xo0gNbODQiM6LZ9vSuVX00gqwzu9mSnlEso68sKQq8ciZo9PcyyNK8HgKUznWOczJRjuzTquRsIv45wq7g4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223722; c=relaxed/simple; bh=C4z19fojw5CBrQI/z75Z8XPVDqlW6LcnFRgF1BMVjD0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kOhjDa5AHZfWrL1eQgMMwN5aZqF75QHkK9eG8Kfp7iR7E7lIBfFRUXriLzYIsOcJudZaFiuKE++OljwCjxE1oLqR/f4es4Jp8Nk5rhTdRZOiSPD/KiTMwwSmktbLAyYYXOFRZzKv26r4TCsuduhASyz9Sv/bPlryBq57ximX2AM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=nKlQRnSV; arc=fail smtp.client-ip=52.101.76.132 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="nKlQRnSV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iyVtuUcGhlYu9ptw4JNESXW4qf9NeiC+WcD920tlcx8Zf6Q7CIfBPoS4sj9EpCPgmEJicQcGJNJ1Pg4wdF/RJeKOyOYXr2PEbmuLOaq9W/UeHEUH9i4TnYHZHiP+tYBwUjizkX3OHXV4vN5hEQT6YV8wIytpRICkNLGCrF7RmGCx4BMzPu+7Kje2xTlJoDNb8WYIZgZPv/dYR9KC9ts09lB5/fhBfkNFE/zFLMAorNTFznyR5id8usWzxhxq38wqf6nYOVqHFyjRi8xa6+Tv9b6KV4FPF+WrY8JY++RVo1XsJljEmOhIMyIOdTrOSeNAjROf6HVst4u23ZPXJgJG4A== 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=dUlqkDnY+yfLtJfJ6iaUABf04gc3vvJj57UPU0T6QWg=; b=t1Th42P845xZBbTkXvuE+E8jd4jWEc6ELCaCP7ctpLuzVrhRaVu6kl5iF7HuKT7x2wwE5sCKojaBzY9Cl24zOVl5az7eqEnTOkUl2C9R41Uujv8yXtVzVl6n1l9xxFWAyqnlEBns0pkZcznhAlNTxndr5CJDqEJlqSpA3mZ4pzhLWFzEo+OWCMrJ1vPx0C9ckhihevCMhW6VzuNXQVprVw1Dm4w2q0kT073nHPhBGjCw56QIJiEPCOFofKRFXH+Z6yWBbfOzINfe8HsPzfTPHePPnBFwVhNazarZPBQSfQTVdH8s8HxR5ylAEngKdmXxeTplMzE2FW4OqbDEBrufBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dUlqkDnY+yfLtJfJ6iaUABf04gc3vvJj57UPU0T6QWg=; b=nKlQRnSVWTexc+FJ3zvJRBy3WnmcB/fughXErdGwFzhZ8EFSCL5GiRk7e7dLuMPzIQZ1Xjjif6C9AK9wtZNHP+LBiOb9cLis4VdhwDRIHYKBcKhF2fJvIay32jDq7d5MV6xQsamXtULciZI22o6+Aew+VlKseg+omWhkscAfn1jX+MWJzTQX+ZT2CKclLqPLqrO5qsIkBSluTcIf39BfdMHQYcHHj61YgHlqJZcNAF8pT9x2HJKFuTUZ3g0UUQEbVPNC6l1Swgvkb8hi2XLwMWS1itmLzPxqUn6vqFqKZnNBkXQGxl/SC08AC/+ya+V+TUwPfY8tWKv/PS6WtnfbjQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:37 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:37 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy Subject: [PATCH v7 12/15] can: grcan: Add CANFD TX support alongside legacy CAN Date: Fri, 8 May 2026 09:01:18 +0200 Message-ID: <20260508070121.6918-13-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: 6603d25f-3159-42e1-e2ea-08deaccfa5ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|3023799003|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: lUWMvyHgya6zzm4yUG3PmgMNLSkiGMovsjUx+YgV40etJ8FIL3h3vc5S6PAbFQV3DSdYD3/4OCQ//QGQd+zrEQ8eGYPviHIxTccRf4OK2jSVI4JoBPITijgSrodXVWxG/zPCTho8qsC1euY/dx9OP8VFqnGb2RVeQwUob5CH0jQwuy8Ft1v3KUtFKRv2H1eOUp6g0f+l4RdxAKS+xIn4Od5/inWEqz0MxNoG9Pke0NqjCW7qrAzSgPimRO+6K7gYQjqX3FB1z5SeXIP9z6W3J8Wz6r+n/E2Krtg4j9FnNZw6+d4x/oWpn+0AMt1B8c2nIu8ES4RNlBHWEN9XLG8AvWNnq+yW4gkWEYCAkwz6nQi7VxLfe/gr3Q3YSlm1Lwvk3gtJtsmoVs2UEP5Xy+Dzh7Z3mYnPakRR1WnbGvXsMR5eC6Z588lWktWz1SMLrf02tkt+nRgg/13PqaEBJJXt7GhmHeXmmAPQQRDS/kfFDHFzEUMkUpcJjqXdI6YwlJ+sAKTA8YVaGeH//WSJH5YjRr+bRUf6Bc9cuNBbKv2C4PJqtvCoHWSineSE1M5oL/264AdZ7+YUewRTYRbkP91xKP9qA+PlNOCGLz1hImBuzRoFc5+JJMEhDS/VlnCM979Va3b5x6XdTRuA5XaYucu439lpnp9ipfyX6esAYf2QGjFGwjxGSfhD1quraZ3gn++KzX3pAQxSyk3NEjHpSncGswXUjpz7rqGfm/+5nfoTD9VOfMy7S640Zi1WDVOLc+kn X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(3023799003)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wBeHX8dbRzVGlGwIsJSyv8sLz9PzvJn6A4XXz4bYF4bcOT5F8V47EruETXFe?= =?us-ascii?Q?ih7ukaoxvxtzMDF6B6aYAN22/KCUeWaXbStJatrPPxMMdZYNc90rcPWK6rXP?= =?us-ascii?Q?mPUgbd2O5coYmZupFtabY36hdG/jlyo4OhCd7EjSxDZ53HnRa7Mbkfp2isEd?= =?us-ascii?Q?lcLwxnuBAe5lxmj8QDit3Wm+1HqGyXB4a0zw4D77k6KTWqQQGxdkUzg238MK?= =?us-ascii?Q?kzsMCSqK0qQF8x5vZqGxT2k5nBLGtemlQHPEr6kMNKpWVLrhejBnUHxLf9b5?= =?us-ascii?Q?FwRy2WBeoAifDGNmvwq1uMIrDbCnx93JDN2bbXJAPnwyG4rWNHnfdI/FTV1Z?= =?us-ascii?Q?BpTkgStAqJqQNirxc05J/Jnxajv/jMZ13D8WNshFyL+aNSGm9NMoiUNKyVwu?= =?us-ascii?Q?b21ZWuOpyvpPEtLGDotzdTx6TRD24/GPxmWL4AMawIJ6faf2SEUTTY9sVOCP?= =?us-ascii?Q?NQzhTgDJbov2J3Y0GgY9fEvJJVLpOduQ1Nf6R0xpTGMIc9x5EzdSSGSWuYKa?= =?us-ascii?Q?ZyeHO4bPwCvwJiT+9BqGNAs15O+ScUQMlN1CBqduGdFYqBj3e/cwbJ2Iciy8?= =?us-ascii?Q?8bcxDAT4Ke9tSy24Oi0Dqg7lS6kgZWOKb1fZQeWK4RgPPJJusamkRYcEuLL5?= =?us-ascii?Q?kxhM4oWeUekc60P8adTBa1kNwP4wbwFT7Kl4FZVojK4M8dX12lyogrGARUTM?= =?us-ascii?Q?ZE03S1yzK1vUOf6LPcx/p+HaShqS6EoC5cb3ZieL+gqEWwerN6NZ+gwPKJf7?= =?us-ascii?Q?5ie+fd022objle2OpujxLpBg5eopbWI3K7RsDKOjqTUIALp9lDjYxtUHgbxi?= =?us-ascii?Q?Cf2trwiQsKKC1B09Sy9/aU5ea2aquQ8cMAcB/B75cMtQoaybn02HiHBHQlOq?= =?us-ascii?Q?Y8LuA4PfubRsm5vN1aq66tactAAr5nkypOI7Of/XskKajufs/vLUcWqeqYIr?= =?us-ascii?Q?OciDITyEPGzo3m1gxK5HWjMpyLX1ZD4vRZvgh+91JoSIlcSdyHbwLuinoBvI?= =?us-ascii?Q?T6p1Vc4OOlXVdXSQIJz0cTsAPUizPhnztSRJxXmtuTQbx0CpXNYwyd/G4rNc?= =?us-ascii?Q?d7OdJ47lwz1qfj4Rq0/Vr1zTNuIKftZ/ZFWDM/6c4kCUjQsACw0t/xjXBJor?= =?us-ascii?Q?sI5jCbWwM/wc9dEPZdIpykE/f3LJW50RYuO4soeT1mn91pdMZje/QmMKZv8/?= =?us-ascii?Q?AIY7QfItBleNr/ZXoWl23amYYgXBl1W7L+o5g0RNvJNdS1KjbUP9iH6JyLOW?= =?us-ascii?Q?5619AtxGYR3vw7HJbB3/Dp6/UDzNZRqoBys5PXpipRwVswcplYwSm+vc1/Sk?= =?us-ascii?Q?VHZ/2eV29TrIX0faNJUEVw5bXb/1laIq+YRCuPRKtwG4qSaHPh3qsi52RMwl?= =?us-ascii?Q?N+a3w7+f+K6JZjJVaKIBct6qe1FSpZM4vsQ1bmSV41I3pta64KwUsFOg6Di1?= =?us-ascii?Q?NnDl1WGBbwD8utOHMzN5dGRjtjfgEIbVEUN0K/KoVdKxIdJi6WoenyVMMdkn?= =?us-ascii?Q?FvstERg3EtOJuvuRHK0nz4siwDekS19mjR5yLqnbQpALItri1rKzrdDTYMFI?= =?us-ascii?Q?uMX2P1h1yN+GPfKiwFrYymijrcLiY+DRarfssxumfTd98ngE9MZiCsgPbx+O?= =?us-ascii?Q?AJ4I9sORYI7uyeVXCUW4KPh0B3aw+mNV/9ukDzvCl2SFFfHnY6q6ovJts5hX?= =?us-ascii?Q?EEJGjrrRKkPeJ05ykmqLL1N5ImVV1tztKI5lbFdOlON/JNbUO3qJ3GzBRx2C?= =?us-ascii?Q?aFNU/StUM7XVWFdO/LoTlEUfJo86lnw=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6603d25f-3159-42e1-e2ea-08deaccfa5ba X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:37.3012 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8B/hH1CkX21MB0dF0jHrvRHeaYNJwHfdyTbifdPd3qE1gEsUHNyS93SKLkKAhBvIPSmT319wp+5oOcviB1F8v2BIdiWsUNI+Jwo5LJbpoOs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" Include CANFD TX support with the legacy CAN support, enabling support for extended data payloads to provide higher bit rates. Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 117 +++++++++++++++++++++++++++++----------- 1 file changed, 87 insertions(+), 30 deletions(-) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 4921da349a0e..690e07c7b1ef 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -174,6 +174,7 @@ struct grcan_registers { #define GRCAN_IRQ_DEFAULT (GRCAN_IRQ_RX | GRCAN_IRQ_TX | GRCAN_IRQ_ERRORS) =20 #define GRCAN_MSG_SIZE 16 +#define GRCAN_CLASSIC_DATA_SIZE 8 =20 #define GRCAN_MSG_IDE 0x80000000 #define GRCAN_MSG_RTR 0x40000000 @@ -195,6 +196,10 @@ struct grcan_registers { #define GRCAN_MSG_OFF 0x00000002 #define GRCAN_MSG_PASS 0x00000001 =20 +#define GRCAN_MSG_EID_MASK GENMASK(28, 0) +#define GRCAN_MSG_BID_MASK GENMASK(28, 18) +#define GRCAN_MSG_DLC_MASK GENMASK(31, 28) + #define GRCAN_BUFFER_ALIGNMENT 1024 #define GRCAN_DEFAULT_BUFFER_SIZE 1024 #define GRCAN_VALID_TR_SIZE_MASK 0x001fffc0 @@ -227,6 +232,9 @@ struct grcan_registers { #define GRCANFD_FDBTR_PS2_BIT 5 #define GRCANFD_FDBTR_SJW_BIT 0 =20 +#define GRCAN_TX_BRS BIT(25) +#define GRCAN_TX_FDF BIT(26) + /* Hardware capabilities */ struct grcan_hwcap { /* CAN-FD capable, indicates GRCANFD IP. @@ -434,6 +442,12 @@ grcan_msg_header_at(struct grcan_dma_buffer *dbuf, u32= offset) return (struct grcan_msg_header *)((u8 *)dbuf->buf + offset); } =20 +static inline struct grcan_msg_fragment * +grcan_msg_frag_at(struct grcan_dma_buffer *dbuf, u32 offset) +{ + return (struct grcan_msg_fragment *)((u8 *)dbuf->buf + offset); +} + /* Configuration parameters that can be set via module parameters */ static struct grcan_device_config grcan_module_config =3D GRCAN_DEFAULT_DEVICE_CONFIG; @@ -1226,6 +1240,14 @@ static void grcan_transmit_catch_up(struct net_devic= e *dev) spin_unlock_irqrestore(&priv->lock, flags); } =20 +static int grcan_numbds(int len) +{ + if (len <=3D GRCAN_CLASSIC_DATA_SIZE) + return 1; + + return 1 + DIV_ROUND_UP(len - GRCAN_CLASSIC_DATA_SIZE, GRCAN_MSG_SIZE); +} + static int grcan_receive(struct net_device *dev, int budget) { struct grcan_priv *priv =3D netdev_priv(dev); @@ -1412,15 +1434,24 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff = *skb, struct net_device *dev) { struct grcan_priv *priv =3D netdev_priv(dev); - struct grcan_registers __iomem *regs =3D priv->regs; + struct grcan_registers __iomem *regs; + u32 eff, rtr, dlc, tmp, err, can_id; struct grcan_dma *dma =3D &priv->dma; - struct can_frame *cf =3D (struct can_frame *)skb->data; - struct grcan_msg_header *hdr; + u32 bds, copy_len, payload_offset; u32 id, txwr, txrd, space, txctrl; - int slotindex; - u32 rtr, eff, dlc, tmp, err; + struct grcan_msg_fragment *frag; + struct grcan_msg_header *hdr; + struct canfd_frame *cfd; + struct can_frame *cf; unsigned long flags; - u32 oneshotmode =3D priv->can.ctrlmode & CAN_CTRLMODE_ONE_SHOT; + u32 oneshotmode; + int slotindex; + u8 *payload; + u8 len; + int i; + + regs =3D priv->regs; + oneshotmode =3D priv->can.ctrlmode & CAN_CTRLMODE_ONE_SHOT; =20 if (can_dev_dropped_skb(dev, skb)) return NETDEV_TX_OK; @@ -1431,6 +1462,18 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *= skb, if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) return NETDEV_TX_BUSY; =20 + cfd =3D (struct canfd_frame *)skb->data; + len =3D cfd->len; + can_id =3D cfd->can_id; + payload =3D cfd->data; + + if (can_is_canfd_skb(skb)) { + dlc =3D can_fd_len2dlc(len); + } else { + cf =3D (struct can_frame *)skb->data; + dlc =3D can_get_cc_dlc(cf, priv->can.ctrlmode); + } + /* Reads of priv->eskbp and shut-downs of the queue needs to * be atomic towards the updates to priv->eskbp and wake-ups * of the queue in the interrupt handler. @@ -1441,40 +1484,55 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff = *skb, space =3D grcan_txspace(dma->tx.size, txwr, priv->eskbp); =20 slotindex =3D txwr / GRCAN_MSG_SIZE; + bds =3D grcan_numbds(len); =20 - if (unlikely(space =3D=3D 1)) + if (unlikely(space < bds)) { netif_stop_queue(dev); + spin_unlock_irqrestore(&priv->lock, flags); + return NETDEV_TX_BUSY; + } =20 spin_unlock_irqrestore(&priv->lock, flags); /* End of critical section*/ =20 - /* This should never happen. If circular buffer is full, the - * netif_stop_queue should have been stopped already. - */ - if (unlikely(!space)) { - netdev_err(dev, "No buffer space, but queue is non-stopped.\n"); - return NETDEV_TX_BUSY; - } - hdr =3D grcan_msg_header_at(&dma->tx, txwr); memset(hdr, 0, sizeof(*hdr)); =20 - /* Convert and write CAN message to DMA buffer */ - eff =3D cf->can_id & CAN_EFF_FLAG; - rtr =3D cf->can_id & CAN_RTR_FLAG; - id =3D cf->can_id & (eff ? CAN_EFF_MASK : CAN_SFF_MASK); - dlc =3D cf->len; - if (eff) - tmp =3D (id << GRCAN_MSG_EID_BIT) & GRCAN_MSG_EID; - else - tmp =3D (id << GRCAN_MSG_BID_BIT) & GRCAN_MSG_BID; + eff =3D can_id & CAN_EFF_FLAG; + rtr =3D can_id & CAN_RTR_FLAG; + id =3D can_id & (eff ? CAN_EFF_MASK : CAN_SFF_MASK); + + tmp =3D eff ? FIELD_PREP(GRCAN_MSG_EID_MASK, id) + : FIELD_PREP(GRCAN_MSG_BID_MASK, id); + + hdr->id =3D (eff ? GRCAN_MSG_IDE : 0) | + (rtr ? GRCAN_MSG_RTR : 0) | + tmp; =20 - hdr->id =3D (eff ? GRCAN_MSG_IDE : 0) | (rtr ? GRCAN_MSG_RTR : 0) | tmp; + hdr->ctrl =3D FIELD_PREP(GRCAN_MSG_DLC_MASK, dlc); + + if (can_is_canfd_skb(skb)) { + hdr->ctrl |=3D GRCAN_TX_FDF; + if (cfd->flags & CANFD_BRS) + hdr->ctrl |=3D GRCAN_TX_BRS; + } =20 - hdr->ctrl =3D ((dlc << GRCAN_MSG_DLC_BIT) & GRCAN_MSG_DLC); + copy_len =3D min_t(u32, len, CAN_MAX_DLEN); + memcpy(hdr->data, payload, copy_len); + payload_offset =3D copy_len; =20 - if (dlc > 0) - memcpy(hdr->data, cf->data, min_t(u32, cf->len, CAN_MAX_DLEN)); + txwr =3D grcan_ring_add(txwr, GRCAN_MSG_SIZE, dma->tx.size); + + for (i =3D 1; i < bds; i++) { + frag =3D grcan_msg_frag_at(&dma->tx, txwr); + + memset(frag, 0, sizeof(*frag)); + copy_len =3D min_t(u32, (u32)len - payload_offset, (u32)GRCAN_MSG_SIZE); + memcpy(frag->data, payload + payload_offset, copy_len); + payload_offset +=3D copy_len; + + txwr =3D grcan_ring_add(txwr, GRCAN_MSG_SIZE, dma->tx.size); + } =20 /* Checking that channel has not been disabled. These cases * should never happen @@ -1516,8 +1574,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *s= kb, wmb(); =20 /* Update write pointer to start transmission */ - grcan_write_reg(®s->txwr, - grcan_ring_add(txwr, GRCAN_MSG_SIZE, dma->tx.size)); + grcan_write_reg(®s->txwr, txwr); =20 return NETDEV_TX_OK; } --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021092.outbound.protection.outlook.com [52.101.76.92]) (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 555B437EFE3; Fri, 8 May 2026 07:01:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.92 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223724; cv=fail; b=Mn6zlg34Lvmzmd+GDf2GWhO3O3So+cj0UI+GLc4wGbpLhKvbt2XBszg4BGE0euiI5weM4l5ZxKfCIY5oYlTRIOP9YjQC4o6QIVr7ZUcejo/lZoiUEjKkCr0pazs0amIn2EOdtlC0Q8txTrUvexxRp5lc33VyPbD/xKxvWplAm6c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223724; c=relaxed/simple; bh=k946LPdMfpqMjGLegc3iG+aOJEmuf1sJkRExwhsvixw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=LCmEZL6wU4Gqu9lJ9ZEjAlHJq/jx2FjocfuF236bPDL7PgkmAwrtIPuUltSKZHee5Y9eTZRjhOvyMt3LyepOBJqLdkPr650z7hxxbrPpIolcSOkVEI9Mzti9yOWVF6e8j6JKm47gWrCk3++d384UZkfnEgrEWKHTzrntPUcVN3s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=pUnKyLbA; arc=fail smtp.client-ip=52.101.76.92 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="pUnKyLbA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cMZJHSGgQq2MEc5eqfqP3s7I2fTKGV9iKS95CtS9hI1KdraTrvGv1OB/MzA+2xAJ5qv18UblcUInCHJ86gAXnE0Qz+7t7I8jp7k4cNAtPAljdcazxu8DsXvhDgVxdNSdhrSS+YyKW8+PMMqju0d7Iv8qTs86e/BV7+B9uNvxPdtDlBsU9FZjlukPYvXeg7MpBK61BBYkqqzdBK7tBbrqsnUQp8ugL6jxcsaSRzJ8g81ZottA5Zp0AjdX8qobHIGLPxkNPAIGZD5vmecIjPhPLKCOeZdAyUwFHW19SiEEK/iETblS96NHdQsIombpGewNiQEax4tXQIhXYvLOFW2HVg== 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=ASEJxSN5QGmQNYSe49lw9LkHrlcBRAxe4kSPic8VNGc=; b=GYVkv2Dt+lm6cyWeg+AYB6Gh7+E6yf1pHFl2BIi+OZ4Zr010cYGaOaxSAuwtbiPfeVh8UsSvsDh6CpnwFu9N3B8kopJlq/izGEMWhx+w0eA9Evo0/gYcn/tTElqR7lovd8dwa/IqEcHlx4aOIWd62v1DLDg7ZpyPLeC8nnbzmaxzb0uNFnJkVmsOsekmSBE5ZghRx798VUpybbEMKIzUAWUUFu+igiC8OBIPmGxasJLPASmaleOjX25AFWKAWs1uyCZNix2inBypu18BiiPw9pE+gvAN90OTg4Sj/MJNuBQJ/wxS5TUpygZ/4huirrc5b1e2YnBjDBfAnUfv3Zm1Nw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ASEJxSN5QGmQNYSe49lw9LkHrlcBRAxe4kSPic8VNGc=; b=pUnKyLbANfITiG6IButzYXmsaaN9Tw2HzAbPkxbDlb4wtEdKUKgQmqNCblnY+ivKyEWqaynVvj2NIvY4zF1JQnKIZTO0Kof8IBsacsQvkJ/SQgqYEuTIz6V9Sa3OD9zE9GIakdrE0z/saf5ezZA0XT7//Qq9s3VO5JgYnA39yD9qxBp54bc8l2H6ta2NcLukKp85A4AoUX1QxBuqVAZLkR+KFCiPZ0il7ldv7T+U8QrLNKss/aqvRYuGaB9x86ddOIO5sa+jk/SBfV/S+QFmdVIMg2dYAYesIBlKdmPn3SeBPRGgx+ee1etPgC4+7CvwSagB4yBiHvQt5O5rckoUug== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:37 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:37 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy Subject: [PATCH v7 13/15] can: grcan: Add CANFD RX support alongside legacy CAN Date: Fri, 8 May 2026 09:01:19 +0200 Message-ID: <20260508070121.6918-14-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: 39bdc81e-883f-4a8e-7de0-08deaccfa5f1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: YiVFye3HP3kCK72hTsSrOpM8+v69ortvH1cPsd3MoW3r1FmW8xzf12VAC/xjjuInyyJPZ/QTuKIlwrpIOCMp17oigJw0ASprmVFCbnySkFp7CYxtae920dBb+LwXJ1NeaAENmQ8ClDV/KP8H6yYn3pKsBxNVapSw4qCHvXtyK5JF4mKYf6OwN38I5p4I4zPKTHHupjo+s3o4k3uLpN3VVr2YYFDTE+f0c8LXn0wlzWGcwPt72ecj9fxeeuWE1fiHCmWebsH7Wxzh+Nm4V8V9iQ3jBl0X2VuSU48WQzZRedx+AuE4AX7iupMcqcwWfiy3Z3lIGbwzHzW7c4NLaALMLd3fVDW7krJtIOuOfW7FaSK5NQy2zSbSAlaQKFerlYE8e/h7WE0Ul7GqNB8gkssHRUIzGpQLqf6tU/VtgWGdOOiFXHcdDIKBSAUCx/cCTwZogpuJeF0+BRk1hAwn6EED5sNkAUKiPli98sc89Z3d8fFTaAp4ObEwxFZLiP/96qwapdOxmFpPNf7VSLSZ48nEklSreMtd7D/AVZfVXWuRnwfC0IIpU5uTH1s9TIsln2Yrs/+DxBWAS2gwIw3Lp4BSXO5EsDscLFfK0LpK+nY1/D1XRPUMxQdvZjsrs8GYvfjk/3C/g+say8QRO6nAbb8ax21iqMy2KNRyLyUvIE04gMY7aupTMvpwnqq1wG0hXAD4dkBbNlcDarcEh4iOSRsTodjIjCCBfFLWkCyy9/yUxLBvT8t6OV5cVkSy0H2vFU7M X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wu2vSIkdzoVrcmEA8nej8LGiJ1SQEFsOSR1cdhWCwoO65ILLiLeU5FXH/Orc?= =?us-ascii?Q?ym3SZ6AwWK8KU4KEOQZehew+PvXykaMBHIdiikOD1FYuxA3zHPsAv7Q0K5ql?= =?us-ascii?Q?vbpH/e93IrPPhD2QhD4sRRAUxY9FZZennDlnnt5eZvyGHldasC3i4qbZ34u/?= =?us-ascii?Q?DQ9LAg6GM0AEdqoOBNC7pIY0kYVwrRE9IkrbAhKj20W6Wi4dPkEh01adjQhk?= =?us-ascii?Q?BBUDUzlAnwfAKmtnPkLTKdM9sLkOzsDbwcvm86EAAOr+p30BrxMa0o49BlLm?= =?us-ascii?Q?7C0Raxr8ZFwEBUg/Icm1Uop3tJ1/derPb4E/1Li7BI3u8pZdi+QlUeSj2CwG?= =?us-ascii?Q?W44nHd+UydopjY87P7dYmrkque1J0jF3k41ZPLPUsPel4a3cYKMMh155lfhr?= =?us-ascii?Q?PSRBdHqAQAi7oedhyswYYKLum/vHgB/3X3kQmwizxbZPfQvFnKr/+kDUDM/w?= =?us-ascii?Q?L3Y+SnQFTvv6OANuHZoeUhotLg37PMFek/C0KfnAnVt71dBQyVO5HqZ/MpSP?= =?us-ascii?Q?5C2f75cJmaDd1jtWZmfGjjdS7HnpftOdI+FUZ4ZA7VVAnKDCHcZCG1ycd8BJ?= =?us-ascii?Q?eVp5Nzrs/ZqjjH+3Bc81BT8dSXu94MVMWGe9xRgdiSJGSmFwzRym73YoSFEL?= =?us-ascii?Q?gn+3/OkJv3u6NPWlkZff1xrlv98IfNhVsWzY9Pc4ZoXZX0UFkopyue3XX2xQ?= =?us-ascii?Q?7sIBC1bk0mYMTydIXENIaGgNLCMYFvBUHGgz7QHNEW+YsKT+MmiQu5nwGbZ0?= =?us-ascii?Q?FKgFbz2B2/GAK8GD6jGQYuZy+u7jCMdt+01mmTnzvkuUs4YPurP+5rsiJUsn?= =?us-ascii?Q?sAJKxEBdotGUbgGw1g6k92y+lmgWenYZC+BeEVZduLRfKjxZJ96Yt7qfvlci?= =?us-ascii?Q?J9rbCCO6ybZ/oOg+08bwDom0dCsk9GcJfWkb++SGBDk2BFQAnTTwyd1RnIXc?= =?us-ascii?Q?iHcV/2LHgj8ZEV1dpd+3zkaIbx8Bxv3555vF+9D5LbR9XNPTUbCP+/dfzE1o?= =?us-ascii?Q?J5pu+5r89RWeJHR82Ox43fPXW+bde16pl6j91hyv7BsfRZ4ZkV/OAbksVjJn?= =?us-ascii?Q?D0CsyawFwIxMwCBhUDgpTsxMZ+RkoI5RXL4ndylja/7pHNfukha5MWdsNhK1?= =?us-ascii?Q?O4BZDpRFxTODBs8uklQibC+COusircsSKrlbPdhZRFWrjR6H+gxdXOcefx6I?= =?us-ascii?Q?PSO/GKq46OqMOSVKaCmKeO2Ha2qOKUcG8HJ3ux9lmQmhNNp+i2HyeTHd69ce?= =?us-ascii?Q?e67WCgLzUpWAmDRvqjTmPGGaVIEdRv1plJ5bhr/lMfzX8DQbvxG8KXOt0MF+?= =?us-ascii?Q?PtT8TlHiT15DVDSqcHqFqeMzUVWi4/n0wVy/DBAm8+kxMxZTxl/1lrNdaD7g?= =?us-ascii?Q?HeTB4RDpyd2aOY2fioZ8yv+gD3Z8tYTICC1suUQ+SA/CMZfarN26p3eLyT1o?= =?us-ascii?Q?gNcdn5J+BLFylU9f7QATUt2VVjHVhtn6mLYDRAuV4pMD+82jNB3mkT/PIUJ8?= =?us-ascii?Q?j3ywUrWMhZzTDuXiyr4CLV0cxXBn99IHLKT1EC7kDtzPzyFP8kk7vU+LT1U2?= =?us-ascii?Q?tMX0d1zPQcuxbGkOIICc9olhxFviVXLGQG5KGHCbud2u01aCCDi0DHsoNCIV?= =?us-ascii?Q?YVin2bpF0qaF8ZBRarIPCPh9ddosXvKjCstlycRmsfWCkv/zwFtPjbf1ts+Q?= =?us-ascii?Q?A6+H9/n2FuQq2b4vuSpErJVMSeTGIq7XUHuGd2+X6NasxoK3zHMqV7al9ce4?= =?us-ascii?Q?zZTAp4GrUlmApFglJJ+CuDJELwmZC3Y=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39bdc81e-883f-4a8e-7de0-08deaccfa5f1 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:37.7904 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NgRubtAvV0jkKjHUu/RO+CkWJspKe58W+74xd1NuDFYhGLzpqCdzZjaOp2BDBy2tMx6qvsBOGcqdgUJBo6vava9XGeGSZSDttVijMq7OL6c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" Include CANFD RX support with the legacy CAN support, enabling support for extended data payloads to provide higher bit rates. Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 72 +++++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 25 deletions(-) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 690e07c7b1ef..eba52701c882 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -235,6 +235,9 @@ struct grcan_registers { #define GRCAN_TX_BRS BIT(25) #define GRCAN_TX_FDF BIT(26) =20 +#define GRCAN_RX_BRS BIT(25) +#define GRCAN_RX_FDF BIT(26) + /* Hardware capabilities */ struct grcan_hwcap { /* CAN-FD capable, indicates GRCANFD IP. @@ -1250,17 +1253,21 @@ static int grcan_numbds(int len) =20 static int grcan_receive(struct net_device *dev, int budget) { + struct net_device_stats *stats =3D &dev->stats; struct grcan_priv *priv =3D netdev_priv(dev); - struct grcan_registers __iomem *regs =3D priv->regs; + struct grcan_registers __iomem *regs; struct grcan_dma *dma =3D &priv->dma; - struct net_device_stats *stats =3D &dev->stats; + u32 bds, copy_len, payload_offset; + struct grcan_msg_fragment *frag; struct grcan_msg_header *hdr; - struct can_frame *cf; + u32 wr, rd, dlc, startrd; + struct canfd_frame *cf; + int i, work_done =3D 0; struct sk_buff *skb; - u32 wr, rd, startrd; u32 rtr, eff; - int work_done =3D 0; + u8 *data; =20 + regs =3D priv->regs; rd =3D grcan_read_reg(®s->rxrd); startrd =3D rd; for (work_done =3D 0; work_done < budget; work_done++) { @@ -1269,47 +1276,62 @@ static int grcan_receive(struct net_device *dev, in= t budget) if (rd =3D=3D wr) break; =20 - /* Take care of packet */ - skb =3D alloc_can_skb(dev, &cf); - if (skb =3D=3D NULL) { - netdev_err(dev, - "dropping frame: skb allocation failed\n"); + hdr =3D grcan_msg_header_at(&dma->rx, rd); + if (hdr->ctrl & GRCAN_RX_FDF) + skb =3D alloc_canfd_skb(dev, &cf); + else + skb =3D alloc_can_skb(dev, (struct can_frame **)&cf); + + if (unlikely(!skb)) { + netdev_err(dev, "dropping frame: skb allocation failed\n"); stats->rx_dropped++; continue; } =20 - hdr =3D grcan_msg_header_at(&dma->rx, rd); + dlc =3D FIELD_GET(GRCAN_MSG_DLC_MASK, hdr->ctrl); + if (hdr->ctrl & GRCAN_RX_FDF) + cf->len =3D can_fd_dlc2len(dlc); + else + cf->len =3D can_cc_dlc2len(dlc); + + bds =3D grcan_numbds(cf->len); + payload_offset =3D 0; + data =3D cf->data; =20 eff =3D hdr->id & GRCAN_MSG_IDE; rtr =3D hdr->id & GRCAN_MSG_RTR; =20 if (eff) { - cf->can_id =3D ((hdr->id & GRCAN_MSG_EID) - >> GRCAN_MSG_EID_BIT); + cf->can_id =3D FIELD_GET(GRCAN_MSG_EID_MASK, hdr->id); cf->can_id |=3D CAN_EFF_FLAG; } else { - cf->can_id =3D ((hdr->id & GRCAN_MSG_BID) - >> GRCAN_MSG_BID_BIT); + cf->can_id =3D FIELD_GET(GRCAN_MSG_BID_MASK, hdr->id); } - - cf->len =3D can_cc_dlc2len((hdr->ctrl & GRCAN_MSG_DLC) - >> GRCAN_MSG_DLC_BIT); - if (rtr) { cf->can_id |=3D CAN_RTR_FLAG; + rd =3D grcan_ring_add(rd, GRCAN_MSG_SIZE, dma->rx.size); } else { - if (cf->len > 0) - memcpy(cf->data, hdr->data, - min_t(u32, cf->len, CAN_MAX_DLEN)); + copy_len =3D min_t(u32, cf->len, CAN_MAX_DLEN); + memcpy(data, hdr->data, copy_len); + payload_offset +=3D copy_len; + + rd =3D grcan_ring_add(rd, GRCAN_MSG_SIZE, dma->rx.size); =20 + for (i =3D 1; i < bds; i++) { + frag =3D grcan_msg_frag_at(&dma->rx, rd); + + copy_len =3D min_t(u32, (u32)cf->len - payload_offset, + (u32)GRCAN_MSG_SIZE); + memcpy(data + payload_offset, frag->data, copy_len); + payload_offset +=3D copy_len; + + rd =3D grcan_ring_add(rd, GRCAN_MSG_SIZE, dma->rx.size); + } stats->rx_bytes +=3D cf->len; } =20 stats->rx_packets++; - netif_receive_skb(skb); - - rd =3D grcan_ring_add(rd, GRCAN_MSG_SIZE, dma->rx.size); } =20 /* Make sure everything is read before allowing hardware to --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021139.outbound.protection.outlook.com [52.101.76.139]) (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 A422637F743; Fri, 8 May 2026 07:01:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.139 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223724; cv=fail; b=GlBOacseZHRcI6imVyLFuUfpMmXHEG/T6dT5urY0/17OntCptNDoJVRnpWvzLZr5y8MDIccyQ83gu5hreUeGSqdClk72nMim34cryWsRQgZPINh5ecqBjKf0Z5eow29cKiJ4hU8kO/jtKYuVodEGMaNbgx0Xj0ostlU0yY+AUFE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223724; c=relaxed/simple; bh=/nUGDTD3llQDxFSb/WuFLVdYQrXzw7KhS48bOoyBjU8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eFcUOm4dfEO1B4TDfAxcSaHmrCvrYH8sR8aS48XtjKf/O/2CEMKhVz5w8Gh3KFsiSfqbem+NXH3Nk48VihkeD0KK3GYrAMNgynk0bKZfu0mhVgfTgFW3y1eVA7lEcN2BE4E3p3JHgAzo7M3YKKuVG67R6egZFuU532nEPG4yx6g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=r0rpQRXw; arc=fail smtp.client-ip=52.101.76.139 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="r0rpQRXw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XtFFiAeDfSAku2y+XL/WG7EUFnEJ/iL+wCwF8lhhvEr9HDJou+lH+Z3M8XjffiWFdVHvdYNofkQpleslX127p4k/TrioGMKn0282TEDVXMGKHmBqdLQCERSsV9NdA3+hrHyHzw2cakNCv5vAQtPawHegZWiqbGUO+jeBZSiHKShwvB/pU9OwVEdf3znJYrsprhhXyoCo9EimRfzRm9mahZ5m4nb2g4skscYBkUpKtgnS8FeYdltyslvIBGUwmEi3ecFkueHIPJvYmi3tZVOu4EHLH+7Lh8VdbKnQsJ8CkF2zWiTwvqaDHU2qgN8bZwDfP5skr+9XskeKfw1JUpMAaw== 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=xcChQAunjokGQIQQ9ojwgInPsEGmgOvlZMheeMYor7E=; b=xM7tUEdACWomPwXHEWKgyWcCOEBAY5A3QUtn3dpAhyjCeF+Y9DKV0IBxMm6+z9HW/gMH2LBQU6yXUmRSOxdIXF7X5ZqQicXK5GypRmChw+gMFX/s+lvvGuUdr0GovmKBvmmW6seefjh/hyBBpxJZqH5YjeRPzkOYYy5ge79bAC8HgINQsOEKwZYvR0ssCnWHFIMgLxRuY6L/rOIWrLp/MzJrZHzhOmapnXaQMMwAb/UrygzDd0na/Aunmw9JmbkfRqUbXywMX/ouTmux9pt9NQzVbfRGsxXK+THgpn2QLaDOqWgNUsag/KG3xkm//lKgc249Ywl3PMogGo1rHPJBog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xcChQAunjokGQIQQ9ojwgInPsEGmgOvlZMheeMYor7E=; b=r0rpQRXwwJmAciTARN3dZyRISXRu11c5xB2fYCaTBcoXlVvNxz9FaDD+rLkHYFz4p0EsPT1COhbNAaG4cABgAvQ7FIqHcoStXix8SU+PzcYuR6lKXtXdZKV21gxOi3BksY7jLgQSmIp1WSjFQz/OlO3bfXYEVHeJ2GgtUm0Xqj65JuYISdSxaEtvnRovoltxV8tqPPKwKQaYb8zsBW4pjsJl7VHtl09YA1WLBi7rpLaNMUmdBhkzNuh0y2okFdpDVS86wLNrLo+8KSZSvCcNLV/diyjGw7d/SVR9lNZoSWAMETSnPZytDs1o6vsJQi6YWT75JA4mOxW2DGCcX2VKtw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:38 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:38 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy Subject: [PATCH v7 14/15] can: grcan: Update echo skb handling to match variable length CANFD frame Date: Fri, 8 May 2026 09:01:20 +0200 Message-ID: <20260508070121.6918-15-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: 38c2fba2-fdfc-489d-b007-08deaccfa641 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: 8duno92EN4miaDrGbH61982fdUSVBdvACn1Llx8g3osXXCB2gDwDpPJK7NDAcKW5C9hyW1not++SrsODY5zpSFEOpWfIJKLxKGVfKBkTzLHJ3kiXgXepGtXhR67qeIUZdz2TzrAyj/SH1lG9hopGEg8TWipMQ4J4MmNhnbKlIiKMgiwbMSvczpWLKQLM8Hl2z0mbC63kId1v+4IiLTFn/ufgpvVBmwZdT6rrcHn540rCjCQx7AIeKaMSjq084OACKil6jk0skgMDX34J3hW1sD/wK6Q+SQhu+rvgw97xYIQ637+8VH+Ym1a/+ltLaYKO81rHiUnuGb5G9mAS9ujkNyVefbFqfMJvoIhdVcH/Pm6vY4qcE+wsakbGtH3rORzdE6IMqxoIm7h1RhRktNbXiUfVTbAbn1QOaugEOw56EsAGYJtzHsUcnnoslBYx913eNTx0U48j2j8ZuSNCMP+ioStb/1S3QiWLg+h3u98kxDjTqhjc8UGPlGyu19FdkX5xhjQQkTE3xxiU9j0Mwg/M0gW3QGUmPnmLZVPRMjyb5QVVFrwe3Fx+ZTQcqGX+zyAgG8MbtCtQn2ftD+quAIRASt9aNY/JXJQ5ixLI7TZya4g0GK2ETEZiifivUMglEzDubPh9kTzoALrFbjDw8pfvFuJ+GIx8LLkV9PCvKf9FtiqrkbL8Vnnv0XcUDX4x6Zv3nERiBoCIUCam5cXHa1iGL7TV4cBcQjFiCuZkv30MYLb5Tc+HLCOfoAQW+OP7pSTc X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Tcmir71q+IpgAyO7m2mqKRQto+8EMg7XgH5sQst2mvVQngmKIis89qTQBaGP?= =?us-ascii?Q?XA79T8aMbBtMJ0xBWagiFFbg1CFxXuJSrnN8BRJt3WZMGI6k1VPOyvYANI2h?= =?us-ascii?Q?EzNK+TTA/2GBJwwIWdsQgi/8sfJ8umCEFMwuzo92HH/YKAC8Y7TzKh1nO0lZ?= =?us-ascii?Q?cTRYFOlIBj+Hsxiqev73EQ3n9paEr3ehiPd+6x39Kz2j2dE7FdehIfN3eDZ3?= =?us-ascii?Q?NmdBr9NKe0kf39HwnZ8hwWcZPNcpXYAuhQ1jn+/KozX4AY0uIwAteBSgMBfm?= =?us-ascii?Q?Xam7se8ZsiLKZt0OwRQAcrA53U7k+yA4vHFHODRjgR3lIyoAPup0psKWPDOw?= =?us-ascii?Q?cwDGbLmciq4VfddyLUUvEOMpKkNCbqr6AC2i5KT73/J+IwuMOKrPQGu+RgSW?= =?us-ascii?Q?i3xFy6d6DTtGjKHmxpxTlIiOcgZU/5NFme1c87jT8kccOFXqoXtjP4NjvbVd?= =?us-ascii?Q?EccknvNFtnUtNfS/Whv51N5bOgnDc8FF0z41B1SaY1odvbAwofNSPeUZfU/3?= =?us-ascii?Q?Wt+6wWJSYLmrnT127Oa838GPr3bgm+VeU3XsK50GGhG4DzuQJxD16JiAZpRv?= =?us-ascii?Q?VJWGT3epDULNs8tNGqI4DRNpNaei8SysZPwRbN7Yh5wZI4avtAVo/PeBYfgd?= =?us-ascii?Q?+i+aD27uCxA/vO4h/u7znOVou4z9L9Ht0BFHQ/I2koJ80Q+SPhqAjWxYf373?= =?us-ascii?Q?zoLDkusQtnNjqIV5jIDaE+RWasQ4cjo5IJPvYDi1ZoUN9yG1kJ3glykevVjK?= =?us-ascii?Q?HD2AQrxE19bTVGKTpjR8nPPHVre3JiIJSHihMsnjT3JNGM7b++q3TRkvWxne?= =?us-ascii?Q?bIYCV78NrDFy6td/tjmQEOjg/0LzCp0ZLEELHwjFoDUfqMr7cE4FDoYdgI3B?= =?us-ascii?Q?04WxAUuQs8HBjKaVs2WR2OkhTkFtXo+z9TpSdJsIb6FvkEXpTQ2lToJHiJQY?= =?us-ascii?Q?yUODy46AUepeguc22XuejS1kCXGlaLVabu05i8+wr7eLTaKueM8n6QlC/Fp1?= =?us-ascii?Q?Tx1NAqjSAsGF720jYcKLh6XZz2z6k57XjJZ+RFnznnr3mwGNxQ19HwSDk9KO?= =?us-ascii?Q?k/yxGz5gcO0exBnd+cZebnuJ0/a//DA9kyw3/Jjtvv+qaucc8w+5tm7lGBcq?= =?us-ascii?Q?EZ91na+nr8EJK+3hRy9jiQgQyRy2VxIvAloIOnKVaRDsc78DMQRGvEplru1p?= =?us-ascii?Q?QuHF9Tg7Ly0lmgLlDyuW2Uqs0xkxqU54WzcFqESc0IjFcImdwcx1gS5jkhrT?= =?us-ascii?Q?1r+Zpqy6TCGUTwOhIlyJPHZV4CdO/NtrPMjT2b0BTJrwWW31rfy/P+gfub4Q?= =?us-ascii?Q?Y0Kkoev2TSzu10U4Dz92ItT8YlYzBEdftu+6xwkIphQP1/G2jDlAVtMDKnbK?= =?us-ascii?Q?xEAcBDYTV3wf8Nb+DMjnoyNlcYKn/SPwJmoswBz+UThjlk5gk3/VkELrtq1s?= =?us-ascii?Q?vvjUQOlPck2duC0g6olbtKf69d9vMMzd5kaGzw4jrd9g/K9PGwB8Ys+lmhA3?= =?us-ascii?Q?kopjGlqA5rr/v9uFXczflr7byf4CApQjmHlAzuPP2ULjK+JS4dQ6paZEG19U?= =?us-ascii?Q?516VlzpA92tUiGfY7PxGj7G99bZblOXLeOq4KYxsuuEuNVXaejhG9Q1lFPsi?= =?us-ascii?Q?7+xPshqbBBGzmVVkDvEU2ab1QumbVQwAHLj8z4xuV1CS0wUsf2IUH7fsmw9s?= =?us-ascii?Q?actzxCY6q3u21CvlokmjxeCPZZAZORE4h34J9c8DoBn6DsROvTCwu4ctNPb/?= =?us-ascii?Q?KWP4CkBuz4/8mDIVAjbuStrxpvuzlG0=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38c2fba2-fdfc-489d-b007-08deaccfa641 X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:38.2147 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zYUgjs+Mhjjnd2Hqg/ylhPR5LNSX3G5lfcryr+H6WyC7vOVP23jA9Pqh/VzkpQj85eCpM8aJu/6AIDo75PmO+QcJiKV6XE2jA50vdaDGMlM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" Refactor echo socket buffer management by introducing dedicated indices for current and next echo slots. - Introduce "echo_skb_idx" to keep track of the current packet index in the echo buffer, and "next_echo_idx" for the next available slot. - Adjust memory allocation for echo skb to calculate the number of slots based on slot size. - Enhance logic in catch_up_echo_skb() to correctly process and free echo skbs. - Initialize "next_echo_idx" in grcan_set_mode() to ensure proper starting conditions when the device enters proper modes. - Improve memory and index handling in grcan_start_xmit() and added a check to stop the network queue when necessary. Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 53 ++++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index eba52701c882..06ef081970a2 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -312,6 +312,15 @@ struct grcan_priv { =20 struct sk_buff **echo_skb; /* We allocate this on our own */ =20 + /* + * Since the CAN FD frame has a variable length, this variable is used + * to keep track of the index of the CAN echo skb (socket buffer) frame. + */ + u32 echo_skb_idx; + + /* Next echo skb free slot index */ + u32 next_echo_idx; + /* The echo skb pointer, pointing into echo_skb and indicating which * frames can be echoed back. See the "Notes on the tx cyclic buffer * handling"-comment for grcan_start_xmit for more details. @@ -593,7 +602,7 @@ static int catch_up_echo_skb(struct net_device *dev, in= t budget, bool echo) struct grcan_registers __iomem *regs =3D priv->regs; struct grcan_dma *dma =3D &priv->dma; struct net_device_stats *stats =3D &dev->stats; - int i, work_done; + int work_done; =20 /* Updates to priv->eskbp and wake-ups of the queue needs to * be atomic towards the reads of priv->eskbp and shut-downs @@ -604,19 +613,22 @@ static int catch_up_echo_skb(struct net_device *dev, = int budget, bool echo) for (work_done =3D 0; work_done < budget || budget < 0; work_done++) { if (priv->eskbp =3D=3D txrd) break; - i =3D priv->eskbp / GRCAN_MSG_SIZE; - if (echo) { - /* Normal echo of messages */ - stats->tx_packets++; - stats->tx_bytes +=3D can_get_echo_skb(dev, i, NULL); - } else { - /* For cleanup of untransmitted messages */ - can_free_echo_skb(dev, i, NULL); - } =20 priv->eskbp =3D grcan_ring_add(priv->eskbp, GRCAN_MSG_SIZE, dma->tx.size); txrd =3D grcan_read_reg(®s->txrd); + + /* Grab the packet once the packet is send or free untransmitted packet = */ + if (priv->eskbp =3D=3D txrd) { + if (echo) { + /* Normal echo of messages */ + stats->tx_packets++; + stats->tx_bytes +=3D can_get_echo_skb(dev, priv->echo_skb_idx, NULL); + } else { + /* For cleanup of untransmitted messages */ + can_free_echo_skb(dev, priv->echo_skb_idx, NULL); + } + } } return work_done; } @@ -1124,6 +1136,7 @@ static int grcan_set_mode(struct net_device *dev, enu= m can_mode mode) if (!(priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY)) netif_wake_queue(dev); } + priv->next_echo_idx =3D 0; spin_unlock_irqrestore(&priv->lock, flags); return err; } @@ -1135,6 +1148,7 @@ static int grcan_open(struct net_device *dev) struct grcan_priv *priv =3D netdev_priv(dev); struct grcan_dma *dma =3D &priv->dma; unsigned long flags; + u32 nr_echo_slots; int err; =20 /* Allocate memory */ @@ -1145,12 +1159,14 @@ static int grcan_open(struct net_device *dev) return err; } =20 - priv->echo_skb =3D kzalloc_objs(*priv->echo_skb, dma->tx.size); + nr_echo_slots =3D dma->tx.size / GRCAN_MSG_SIZE; + + priv->echo_skb =3D kzalloc_objs(*priv->echo_skb, nr_echo_slots); if (!priv->echo_skb) { err =3D -ENOMEM; goto exit_free_dma_buffers; } - priv->can.echo_skb_max =3D dma->tx.size; + priv->can.echo_skb_max =3D nr_echo_slots; priv->can.echo_skb =3D priv->echo_skb; =20 /* Get can device up */ @@ -1467,7 +1483,6 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *s= kb, struct can_frame *cf; unsigned long flags; u32 oneshotmode; - int slotindex; u8 *payload; u8 len; int i; @@ -1504,11 +1519,9 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *= skb, =20 txwr =3D grcan_read_reg(®s->txwr); space =3D grcan_txspace(dma->tx.size, txwr, priv->eskbp); - - slotindex =3D txwr / GRCAN_MSG_SIZE; bds =3D grcan_numbds(len); =20 - if (unlikely(space < bds)) { + if (unlikely(space < bds || priv->can.echo_skb[priv->echo_skb_idx])) { netif_stop_queue(dev); spin_unlock_irqrestore(&priv->lock, flags); return NETDEV_TX_BUSY; @@ -1588,7 +1601,13 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *= skb, * can_put_echo_skb would be an error unless other measures are * taken. */ - can_put_echo_skb(skb, dev, slotindex, 0); + + priv->echo_skb_idx =3D priv->next_echo_idx; + + can_put_echo_skb(skb, dev, priv->next_echo_idx, 0); + + /* Move to the next index in the echo skb buffer */ + priv->next_echo_idx =3D (priv->next_echo_idx + 1) % priv->can.echo_skb_ma= x; =20 /* Make sure everything is written before allowing hardware to * read from the memory --=20 2.51.0 From nobody Sat May 30 12:36:03 2026 Received: from MM0P280CU009.outbound.protection.outlook.com (mail-swedensouthazon11021132.outbound.protection.outlook.com [52.101.76.132]) (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 8BBBA37F01E; Fri, 8 May 2026 07:02:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.76.132 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223728; cv=fail; b=eItsY1vYjW0uueAHAHN81TTbDrXrW0pspJ5+7x3zw4Lt5ffUVg9IxTkDoJPKBZxtJm9sklJyEkqDRUtibUBeTlrXpTIlLh7LWWQGdkOW1W2d1DIkWPxJ1yYcbdGb61r/I/YbjKaAPGV+HodxDPStewXXeQ1kU0Hos6vJWWGAQAw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778223728; c=relaxed/simple; bh=hNwBCdTFnz+MLuoh7eP1sWn4BlM1TJaKoAAQHhMUUQA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Gt+tKnMo29scXGWSCGEdFaaebIVH3VoOYYWyXPnzVvHy6008eSFRq2H/3qZbq1iG5zRo9YDrnC2MaxT8Q0IkiDGbT64Tj2RlNnvZt1XSh3LgDTeJJW50jRd8VHgFp5/kwv7nyvbxe+KmcodPXBhRTKWxNRQGYKExrzgOODUvJfs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com; spf=pass smtp.mailfrom=gaisler.com; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b=dxH4i5AO; arc=fail smtp.client-ip=52.101.76.132 Authentication-Results: smtp.subspace.kernel.org; dmarc=permerror header.from=gaisler.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gaisler.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gaisler.com header.i=@gaisler.com header.b="dxH4i5AO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LBYNdlstgIv4+Pv9TogMfEvqixCpbKsoLaujbLD1jwOJTdiJXFaRz5V1VqEH0OBY3HWsHOE0tWaMHnoK5IyZiL4P7IMNxEwhDBByBZI4jlI7b82qPEbM2XW9qxBkOhtPADIpd8zkKVZ600WuLCzu7v9hw96bm9C/qltT0PiMoeJaz02BxIv0iUqh9Lvne3q8gwzDDBuhEu/LCLM9NZWOTsIVkuQLrOlwHfiZialnmMo2GlyxlGu66VymUM+SgIbFNe/KuKwGVwvcrJ94NLrfSS4H8PKoDcpTjCPd5ouHpjY3QfF7YNUYBOUucnBeT0P2ycE4R1rYYOIB44T+juKR9w== 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=N6IL80wCwzNe6o5x0Z/HfLS3KMekXH8R3lcu9EH9kiI=; b=xcNLtFEkXSlePU1LLEmJToTOudGDKINGrsBuKMXKY/03yYrTWRbxBg+wqHDgvMTzO8vPBLwfNMRCpI+mvsFNthmgC1Lh3ffDJGs7eviz+iXNcpBL9QmGpMy9LpRaCgY1G94ggExgQLrBGQ388pVlXgs8pKjfmZF+UUaEWRzq6Rqh3GDysw7XUySdL2XQstHE33jdhGRRFwKmAnitJnPa5/AjNlzXH2beD0GhC1AbMV5QkUaFq1KO1m++bKG3LRfZeNj4QpeSBP1vQstByIjXiGCm14KGHCEoFyYVEN56jvmElK7L5fAEYRp/6uGppig6vYW5nZ4wq+KOCyu9kdxEBw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=gaisler.com; dmarc=pass action=none header.from=gaisler.com; dkim=pass header.d=gaisler.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gaisler.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N6IL80wCwzNe6o5x0Z/HfLS3KMekXH8R3lcu9EH9kiI=; b=dxH4i5AOv4omZsAkmSxkb5o3EpAyzKjfGmpghE3o6GkUbPU/QYp3ViD9O3/JsQzeW0SCFxx7V4kQIfnro4bMuyWlMRIJ2sXZdHm91Tgrcnh1n+eF0vpT/FSKTNxlIPGmYOWav69ffU1CmSY6x+D0aMTvLfMTJ/r5n9LdFZd+1tyC6TOXlKIIEmBWEysZp25s8Tr7t1+HfKX5GdGstdOwAwg0V6XLt1m80YXGiQNYXUAmTOsoGN6PVkXN3vKVAbHXIOt/CO0PLoEJcmJet2BQeumivOhgCcxNXPx3MOw+eEQfyAy9ubPOOKDIZM1Q9HtOt+GYxKP21QxGWyA1vhZ5mA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=gaisler.com; Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) by GVYP280MB0889.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:ec::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.19; Fri, 8 May 2026 07:01:39 +0000 Received: from GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e]) by GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM ([fe80::a74c:fd98:dc12:8d1e%6]) with mapi id 15.20.9891.016; Fri, 8 May 2026 07:01:39 +0000 From: Arun Muthusamy To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mkl@pengutronix.de, mailhol@kernel.org Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, Arun Muthusamy Subject: [PATCH v7 15/15] can: grcan: Advertise CANFD capability Date: Fri, 8 May 2026 09:01:21 +0200 Message-ID: <20260508070121.6918-16-arun.muthusamy@gaisler.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260508070121.6918-1-arun.muthusamy@gaisler.com> References: <20260508070121.6918-1-arun.muthusamy@gaisler.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV2PEPF00023A0B.SWEP280.PROD.OUTLOOK.COM (2603:10a6:158:400::212) To GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM (2603:10a6:150:188::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV3P280MB1530:EE_|GVYP280MB0889:EE_ X-MS-Office365-Filtering-Correlation-Id: c61ecd6a-e858-4bc9-81f2-08deaccfa67f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|52116014|38350700014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: azRAA4BeDr+tzRmyRwVMNzRU4SYcLghnO6aO+XhlykpvNHS7uW0qebnFnB/Ny2pariocyvCC3uVPT1+HgCwfLXpvvOJMCBo+MHt4wKHf6nyFf3DHphRzqytjRFvyxXMPvkqHKsecNQhxJA9rOnvH8iU+MApPl6DRAs7q0PxSKoNqNg5yIn2POxeYEpi6/7U5DqkCN6IMrApPjNxenKMC+kHsd6bz4DZOVEeuSdwF/NsXbf6uHkzXBut0gKvMIFcTAUD3RXQo7xYKDP1ytjvG9LU0kyh/opQ3YUeQDePwwK/Bcc2vFPKvr+n69xazTOZ5MEBN5dbj2hfkBtgpT3Gm5CtDvFTFZ2W1FuYztvCCCbd7UPfvuwdUHYcC3X4vn5CinZxeTpRsBpLUeW6Oaqt5OwT6uY3JhRAEN7B0S9ODlELB/7Qw6sMWofjmA45uAPlK3z2A0Pt2ywWem77f+4wz0d2QTdHWtZ5+mlKHxaT5IG/us1rfQ8HXEHoxzCYbXBSGgi+WQGmUMa15u66U1os9LhCMsUzrl/z6pn4i7lwxag8134anijhh6S8wXIVIUv9Lj+lNGORNplrOFG161EDFUuflcCtNG4oWpMvoR9bQx4Vu8kmS1ezeqL0zytKwjs8v6sOcU8Ixm6jtpoVdBxDzQFkC8CONI9jcepzzxgKrvLwhuoujCTlVgOQUyonO/LGq47Ts/Nj1IP875S186aoZ8SLmIZttZc9kpbQuw+csIq8QHFLpcyGzXMr0gZNtlGKE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(52116014)(38350700014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5NQo7dOg9aPr7B8iEWp/Mzp2yvtUnUeR19zXcWhgD4jOjEX5MPfLrDzGEoT2?= =?us-ascii?Q?CCysIZG3muWMbxsK4xAiOMngGIFODqjZLEFaTLwL+XdF1dsXf5YSxKGVffQt?= =?us-ascii?Q?kCtgvuRV+DzQ8xK/w8RU3XsEseizYnRTiuiWjSYGcWdzdm0LTi09MvQnagVj?= =?us-ascii?Q?7Oq1yaro1HwR2wIheWNea1UyiWQo4P1NI8cNoLA0VFxIWAMoZ5DgnYyKiMM2?= =?us-ascii?Q?42s7J0mQVWO4ueg1G62RIY9Xps0SPJgnOOcaP53IMUnvoTBtP6Gd3u08Vv++?= =?us-ascii?Q?nSwWh5E6kr2/vkKhcgZbEsAHQ2fEDP5cXMqdpO3xSgeSKxeo67kqC0kMsk+r?= =?us-ascii?Q?tHIm3NVW/xopLfS52+dwF/wtXomWGbpZWxJ/CoIojVurtUb7bV0Z0gFyAb1Y?= =?us-ascii?Q?w/afDr9d8fpLBvFTIZc9VnvienEAuTY4vX0RPz8oGwmDf3fInmOvcGHcBaKA?= =?us-ascii?Q?dRe2L8UUGmWI8533XGsuFuXYF9elAdLkDfGRfvqYAuXHHhViswObCaxZh8M4?= =?us-ascii?Q?1RVC3Db1RLVpNvHLKb4zNnuY7jQDnC2+538ZUEqNynq+ISQTLH2w/uuggo2l?= =?us-ascii?Q?++A9LYJnHBQUBhRGQy9ODu/nluSIPBpcftRZiRDpRQxY2Mc57E2damohBlVi?= =?us-ascii?Q?gLQAlxbOPa8SVuce+HM8xOIlaxUyx7BqzumI9zTj0Q1MwD0o8Rfx6rdBoEZO?= =?us-ascii?Q?h/m/WzGr10M4u2J1qwr0CvhApXmNJq/3R/fstQJbsWkWBjvFmubvsfD7cD1a?= =?us-ascii?Q?A3CBjge2wY/E5hEtdespQI9YTHn3ZgcvlpeC0y+3964CpbNLjsQj5+44CpjO?= =?us-ascii?Q?/o5qyIpexjM+7J3miV/oFXqS4Xwv6JNAZoiwLUpP+wN8akSuLghSrY1rBWYK?= =?us-ascii?Q?8C2KwpUtHWFVhGdnY+bodayY0CRKPiQLHyRXeH9l9GmduIYZ0ajeRa44zzf/?= =?us-ascii?Q?CauP7E2AGgMnyxVTidOuVe8GnIlXhXJixcIjdxFOLTHRMLt8qtz8Cs4/Hruh?= =?us-ascii?Q?CQxW5AYXm56+qiIxFz5KDGx2LflNjCe4hTaaMa4aWIdmMDQkAJXjfssQIerg?= =?us-ascii?Q?tbx796PCo0UsM6NYg65TC4vYIDWKjjud6SU746u+prSJMWiGqofpCY3xEsmb?= =?us-ascii?Q?t/nqZCKVXCIsPP0irl/ZkHwAV2jjpIqmcw4h/KL3rQnKFOa+7NiRDqDy9hSX?= =?us-ascii?Q?mFYyaZIDpgA8AkQRsH/mGb9byKJkCQEHX6IGHqpjzsXZgvnTopsUTYUHzsCC?= =?us-ascii?Q?FWNsKLhj8ncbTNfRq753VE51ILgXl673LDxuzo06QZjQ5IUNC/KkgWKstjgZ?= =?us-ascii?Q?h2QSMnFAQL5XefoTs6BAqAzhTFhpoEUK4Z6fysqr1AlaJapMlpsZWPaZa9uz?= =?us-ascii?Q?Qbh7zv2drzk541+9wAA48NSHETPmv4NenzdPjb1CbKFBS4Z21JklDbyOCi5S?= =?us-ascii?Q?WV1vw3B8PKCNpgmskr/HAltTD9KgRX7lADujjAqneNJy7eEeLgxlwYjs1mL6?= =?us-ascii?Q?cwvULwJfaIz/KGLbQZyu9JaNXZ2RsJfo4xFjzC846sVsDniR1PZmD/IyGGQq?= =?us-ascii?Q?WoBHRi4L9DulRj4Fmv4+ky/nGCf4VW8kSf0MVMA5po4lLBRlegelMURetmHS?= =?us-ascii?Q?RxpXJjKl2q/TMwYRTroF7Kp1y3UJFREzcp1PmyvuhYlQVJgvs+9ICLnc+M8m?= =?us-ascii?Q?Cq8Xm++gmG7sqUVxzODV0k80LFDzXh2seO4xy6PiAy1AR1XIve1x7+T6M/SL?= =?us-ascii?Q?JUeaIIJcyOH3T66lWWDwajvLFTnQPL0=3D?= X-OriginatorOrg: gaisler.com X-MS-Exchange-CrossTenant-Network-Message-Id: c61ecd6a-e858-4bc9-81f2-08deaccfa67f X-MS-Exchange-CrossTenant-AuthSource: GV3P280MB1530.SWEP280.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 May 2026 07:01:38.6108 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 91fa4a59-2167-458a-8318-e45d80469d7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Su4wUuw+nG0zQvXB1PT5W1pHSJzaqLCRM2VEnzgkjOR95da13KF/3MlErhiiAV1TDtllgOmGM3jlU/BvaAvjZwvkxAd11Rub4BLM7JFAbHs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVYP280MB0889 Content-Type: text/plain; charset="utf-8" Advertise CANFD capability for GRCANFD hardware by enabling CAN_CTRLMODE_FD flag and providing CANFD timing operations. Signed-off-by: Arun Muthusamy --- drivers/net/can/grcan.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 06ef081970a2..060031df8192 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -1766,11 +1766,14 @@ static int grcan_setup_netdev(struct platform_devic= e *ofdev, priv->ofdev_dev =3D &ofdev->dev; priv->regs =3D base; priv->can.bittiming_const =3D hwcap->bt_const; + priv->can.fd.data_bittiming_const =3D hwcap->bt_const; priv->can.do_set_mode =3D grcan_set_mode; priv->can.do_get_berr_counter =3D grcan_get_berr_counter; priv->can.clock.freq =3D ambafreq; priv->can.ctrlmode_supported =3D CAN_CTRLMODE_LISTENONLY | CAN_CTRLMODE_ONE_SHOT; + if (hwcap->fd) + priv->can.ctrlmode_supported |=3D CAN_CTRLMODE_FD; priv->need_txbug_workaround =3D txbug; priv->hwcap =3D hwcap; =20 --=20 2.51.0