From nobody Sat Jul 25 00:56:38 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010065.outbound.protection.outlook.com [52.101.56.65]) (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 96D2A370D4F; Tue, 21 Jul 2026 11:00:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631647; cv=fail; b=JrlCa7yDGQ/HGn3ajIu0Wt9YB9uWW0EbMMyjzwIzWewO2rqxnNDeERE/Aspflay99JSAmt31/jTcQOXay99e+xJhiOIY8XE9KTtiiynPx6pgX0plPRgO9kP9w4QUc2X228L0kFiVUdT17ZPkqeBKLuK1OniU/AqrLEW5AEvSSpk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631647; c=relaxed/simple; bh=ggm8lKDbcdu3YdqiK2cv9/5+DYXJf9J0C8SaYQTd2xw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=peMoujN8XLd0Ma3FW6DDbWdVKzbWh6ly3v9psdHUcvptN0U90tEIFZOAuqu9jTmadViysZYL446RRmRY1XIoeDKj5IiTU3vybyJ6mVEVVL3yGF+qUIAKwumNBpUedejMmFFdZk4A87xhL5D2HuO9vbifNayoPWS+g0MaDVlkShU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=kaaDbZaA; arc=fail smtp.client-ip=52.101.56.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="kaaDbZaA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XQzwC2ow9M1ADSg9ZC3aUDc8hnbBbq0dnPVleEIxewkUNSBES/0YYVqqhXAGykNL9U+tOXqezTi3kfHxTOSa5Q12XGA36MWbZ3f9D2GFVFHZ3dd45cFBzSlEf7pF8FgvpL2eOfa82bLdcGImdgEwQdjFSrnSvKUp85GlS9BTP3ibDqYWgD4o37jLICt/idle+GeOtoREg1reztY7AgDfyCW9C7bxjfCcXZ1s5iyi78qi7nt+XZSvF0qw53RjkG0f4OxS4EBYyC/G4oBCGkq1kMkzDDs9RR7d/pktdyIMFgbd+x8IpUWpCJmM28ND/g8n3ReZ+E+llKQFDY8brL8dCQ== 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=mDlH+YVH8tHI+csmJ/+plzj8sveApw79WjimdUzy+qE=; b=WZ0QQ4NHqR41LloScsBpFGZ8Z8Ho/1VOw9Xy2enxi52+13PSPC8hHsumZZKyqctwfcxiEjz1G1cmVdAC1EX1Lkp/spJkv+k/eslAHpli02R+8Bc7kAS+6kfH94gBt64CAyg+ft8VeTl0d/wNnCH0tqwR5c0+LmFVVVN7dDGK5+/grCD9jobWLn/hgKXpqF9d4HM2jxpfU4oS+Mu8wXj8gqVFGE2Ugg62duuuIw65YgYkrkglu8K9PPuKaiyy+yXqXTjD7rr20plmo/vjiq/KF0Xvg0MWnGFMwJFglk+QJILwRmyWqHSUqS+s7k2IkyFzrc8lSmTLh367+jNIdoe0ow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mDlH+YVH8tHI+csmJ/+plzj8sveApw79WjimdUzy+qE=; b=kaaDbZaACaWGYoWe/shF+cLa/l/45KOedkkp7IlxPFfyGfIlen5bnZVfPOhuyLC0XM7Xx1ZMRbCmA3jNclIuPrNKNr8/Fie/443OrxHRVo19AkDkQC+KeA+ui0jVXegiL5mCahReXSgPmZGqkoDJo9VAgw5DI5AmVXbfrh8SlhehnCRPGkrzIRF1gfzY4j81WLUXLJoTr4VN6r/eots6q4BZPDl4xIjF00VRW8jBV6hmpD7sPMtXg8bHgB99qbq2quSvAxw+bOHbh/8z4LL+QA51/f9W3gxcVoP180rkRXJ6tpyJZkcy+yC9AHkzIYVQJRnuvppQUANMofVb8blotw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB7667.namprd12.prod.outlook.com (2603:10b6:610:14f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Tue, 21 Jul 2026 11:00:38 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0245.009; Tue, 21 Jul 2026 11:00:38 +0000 From: Alexandre Courbot Date: Tue, 21 Jul 2026 04:00:10 -0700 Subject: [PATCH 1/8] rust: io: register: dispatch fixed array shortcut internally Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-registers_fix-v1-1-3711b2317e1f@nvidia.com> References: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> In-Reply-To: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Tamir Duberstein , =?utf-8?q?Onur_=C3=96zkan?= Cc: John Hubbard , Alistair Popple , Timur Tabi , Eliot Courtney , Zhi Wang , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: KL1P15301CA0052.APCP153.PROD.OUTLOOK.COM (2603:1096:820:3d::10) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) 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: CH2PR12MB3990:EE_|CH3PR12MB7667:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e0df14b-2f99-4803-352a-08dee7174c6a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|5023799004|11063799006|10067099003|6133799003|921020|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: ivLgetTgpz1U/E+lyWA+SKkf8D3pq3vRcX3XaBi2dLgf+TPfMZV+h6EQWYOoQNdQoGdDAfCBr71jHJbpybx/m+epnTCS5q+JNVghXq0Bs1P1RdKr+zo9eyxrqUOMLUUxJB1bcEY6RBI9HfWzm6Ka8Be4vJ2c6e40N3X6Yxg4BmJSoMSmdA9arL5Ouc7P3Fdl2yyM92f3idf2LZPK5qUiYJxKG6GKCUXEf3xf+patONqWYuikgcvnwiCbfl5LRCe1+G2eyIkDGZhGaVlK17/yCAp6end7iSouwlvhR2PTh8hAIIRDGAYUlYpim4Nigm9pT1UG61eG+nrpnUH+QVnyMH0cPTjeLiKihUN0Vfq+MgkGYT3DaxfMH+yYSB/CESAwVLFtaIk8nw2g5Z394d8Nl2K/IQJoxsG4doYXPO5OQirYRoo3w7YZPzltUWrxBKVC9ByydG0ha0Cu4F/1UPJNFBMAP8FCb8eKXPc8VmFGSwUXJ0wC0vq80sajzdRqksvAZLCcZegnIgO6MgxQ4Q0ui9kJmOVUCDxNg/5Tc/Q5o5W7FygBQui4Uq+Cy3ceCXc73bnks7mYvrr7ePJXY8dv5ZwdoKGC+GwZZhgGOnuj8t1Wa0UBWom761LUYXMXl2ztQh5eLcBTRVU2s/PA9NgpGPk3xTNGMX3al/Mv9bsIH3avlEdERTmRfpGcrn3Vap9VjB2eAAsdWcwQG7EHj5MqWg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(5023799004)(11063799006)(10067099003)(6133799003)(921020)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cmFxWm5DK3YvVXZsdGZoZ1BFTDUxZnFjeGFPVk1QNnhxOXBnRmJDQUQwdm5C?= =?utf-8?B?dS9xM3FmMXFXaHNTdUFZUTNHY1RZOWhxMXI0bzV3TW5iaytvdkdyNm10Tk9K?= =?utf-8?B?aEx6ZG9OSERlZjRabXlITEZieDZiclJTUlYrVVdQSTR3ODdxTERNZnQ0YjYv?= =?utf-8?B?VjV6VkVLeFFkWWZFN0EwSjRsa2dpQ3MvOEcyWGFhRnF4SEgxTEtUM0FSbDNS?= =?utf-8?B?aHZxRm5mdHZLbDZwYzcrQ0xudDk0Y2N3ckY1NzRRZzk2ZGJVS2hmRDRzQWQx?= =?utf-8?B?N0kxY1ZUUHAxUC9hSnRISVhQT1NBVTk1eFFsdGZ6bmQxUkhuUFBQWWlPYUxP?= =?utf-8?B?aVYvVkJDNHBYV2ViOWdJOHNPRUJINms4blNxSDd6ckdISUlybHc4ZTB0bnoz?= =?utf-8?B?MC9qdEJoamZoNmhnODlCZVVETm5uaXd4TU9FVVBxNXNTUDNZK2x1RllqODY4?= =?utf-8?B?TjRnTU1jV2J3SzJDOE00RWpMVi8rN0wrak92OFczdXFrc3FINWlSSUdhUmpX?= =?utf-8?B?ZlJaU1NURmk4WXZyd2IwODF0Y3A1NldPMnRhSU02VTJDY0RscjVnMDdLdXA5?= =?utf-8?B?RU91NXIrYm1EbEs2WHRSc041ckt1OGxPMkkxZytwNmk0dzc5cnluN0tyaTNQ?= =?utf-8?B?R0w4NFUvVnkzcGFoSXlYeGpkeHhHSTlLSS9Oa3VDMWM5TEcxZ3U2cDNneUZQ?= =?utf-8?B?U2h0SGZSdmVUZ2IzN2lmNjlUVVJyS1ZiQnNhaGpjTk0ydzMvZmtMVHFCdWND?= =?utf-8?B?czlwNWxxVGpOMjFBYnVreVIrK0djT2JFZU1YK2ErellxWER6dWJrTVF6dnBN?= =?utf-8?B?RHB2cVpWMVVzaHM5ejRtTzkzNVBNb1BHL1hBeHE3cWRRQnRteXNoR1piWHNO?= =?utf-8?B?eERxY3g4K0cveFVUYlFxNWhZU0dRYVozZlk5b2d0RWw0Yk9uMEFEUGduVHFG?= =?utf-8?B?TmRQL1hFbkV3aWtiMEh4TGVaTGgyaVpLYzlnelVxY29rSGtoTnJKQ0VCdDRm?= =?utf-8?B?Y3hISU9LaFRsNWlWN1gwMXgvUVczeVlaanRKUTJwUnlueWRWVWFNcUlnY05Q?= =?utf-8?B?ZW1JWktpK3Bqc3RJRnpjT2MvRXp3MStIdjA2cm1KT1pLNDNEenNXUURMd0xQ?= =?utf-8?B?Wk1ETTZFK0FBajVlMStJWGJjMFQ1aE04MW5EL3FqTzhWSFVLN0hMcVM3SHg4?= =?utf-8?B?QkVUdXlqYTFRbTY1NGFpbCsvVFdRRmRjTXdGSnpYQnBiR2lnd1plNzBWc05J?= =?utf-8?B?ZlJIZ0x1Nyt5UTBqQ2dCRDRUZEwwSEZRNW5RdDBvZEVCU1lLWFdPYXEybmQ4?= =?utf-8?B?a2NnM1N3TE5wdGtaTlg0YUp5Z1lGeE9zVjh3UHQ5ckZHZlRjSTlVcVIrRWlN?= =?utf-8?B?T0dNZG1wVlYyei9FcTBybmtOSkJleWtLZ1paOGlmaDQ0eXVzUE5FVVp6anh4?= =?utf-8?B?RjhSc2hZMmMzZjhuMnZNQnVvOHpYeVFsaG01ckgxYi8ySXdJRTh6YzBZMllD?= =?utf-8?B?NUNobFZGWXFDNnR5bkN1bHlsQzNJMWFUYVd6d0cxeHk3Zm9GQU9CcktWTTVH?= =?utf-8?B?STB1Y2JDeElnTE13QytFMFNybU9ZYk1DcGJ5aUZKbWIzVUc2dHJTY1AvV1M5?= =?utf-8?B?emhJUDJtN1o5TjNiaERQeGt5OVdjQzBFSVVnU0JwOGtiaGtsZG0rcDRSQWdz?= =?utf-8?B?ZnZoL3FuaElVUElwU1F3dlJQTDRVNHBOOTVpR0QyQW1rR3ZtL2k3UUlSQnda?= =?utf-8?B?NlREVlpxL2JQc1dqSFNTenF3Um11S1JDVjdzVm5PZUhZbGdjSjZ4MkhvOXdY?= =?utf-8?B?S2I0NmprZktya1I5VFdYZStOVk1WSEw2dzVVby9JWDZFVDFtTGpIdklaZ3F6?= =?utf-8?B?MHdxeVVta04yNWlXZmtvZFBEWXlZemRIdWZ3MElleW14SUQ2VEtzSGE3enhu?= =?utf-8?B?aFg1Z21zQmozeWFGTzNOOGN4dFE3RjlwSnVib3hiSzcvOGJxYzFmNjZ3dGdu?= =?utf-8?B?eXVWLy9ML1p3ZUphSjgvTCtmK3FtdHBZMFN1NFdrVllkWGJFTEZCdWJic296?= =?utf-8?B?WHJ2VVZRSzdzNzM2ZGM2aFpEbHRiMXNXWVZtVE9YVjA3TGhHTjdGRU9TV1hy?= =?utf-8?B?Ym1uU3EyM1BkMFZMdjFtSENjOE1yUUVMOEU1UW1lTUV6TWw4bTluaTQwQWVn?= =?utf-8?B?S1I3SjZmd1lVZ21CQjNxaENnc0h5TDNubFdIdkNkV21qbTBqR0hLYjQ4TzE4?= =?utf-8?B?RjFIeC8yQm9QdGxqVG1jcGY2dzNlaDhDM1BwL1NNSndrUERiUXlnK3h2bmdS?= =?utf-8?B?R3hsUFhncXJxK1BwYmJjVXUvdklzSERTZzd2ZkZRbjFJSjZLMXVMZz09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e0df14b-2f99-4803-352a-08dee7174c6a X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2026 11:00:38.6867 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FqcHV3i2bIMKdyhQl/mw2QFo2DZqcROKHMbg5xN94krJ3FU8wlCGDKwaoE5KqU9OogOKNxgs3a25svroEaMlcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7667 The contiguous fixed-register-array shortcut redispatches an already normalized declaration through the public register! entry point. This is unneeded - the public rule should only be invoked by users. Dispatch directly to the appropriate internal @reg rule instead. Signed-off-by: Alexandre Courbot Reviewed-by: Gary Guo --- rust/kernel/io/register.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rust/kernel/io/register.rs b/rust/kernel/io/register.rs index 80e638a892d7..27a9fe45b06d 100644 --- a/rust/kernel/io/register.rs +++ b/rust/kernel/io/register.rs @@ -888,7 +888,8 @@ macro_rules! register { { $($fields:tt)* } ) =3D> { $crate::register!( - $(#[$attr])* $vis $name($storage) [ $size, stride =3D ::core::= mem::size_of::<$storage>() ] + @reg $(#[$attr])* $vis $name($storage) + [ $size, stride =3D ::core::mem::size_of::<$storage>() ] @ $offset { $($fields)* } ); }; --=20 2.55.0 From nobody Sat Jul 25 00:56:38 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012060.outbound.protection.outlook.com [40.107.209.60]) (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 E230837DEA2; Tue, 21 Jul 2026 11:00:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631653; cv=fail; b=ip2dMY+WckadC11/0tD0YhVOwHrLF3D/C0E4xp2GqmxevX6cpwNvuKdq+9b9UIsB+C11GPF8Ns9lui8MKsH3uLJUItAN0slSdLX3TWNwhTWcFHiDISlE6JeLFvxIYwX6MVhAC1ZE75kcqyoCNIUoezs0XWOoVMx8lyY4E/wOiOg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631653; c=relaxed/simple; bh=/m1rv7LtQF4oBOQ4zdcdbp9AlgYjSucz/72X8T5xPxs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=GS3nFIILCDnP0bTJvRabGCkTO6Il4SMz9lVxGgKrkNjE79fcuX5WdtFAB6MC8yQNyWGV5G1/tx6ksIfNFO9IGKr8qIC3u4S0MiO1TBSf65aCCZkd9IO8rOB4T/zU7dGCcSGt8J+QTDVdZRxuzREYOOxBiuTodFiVwsEMB7592z0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=BG3t0ykI; arc=fail smtp.client-ip=40.107.209.60 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="BG3t0ykI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IDfcJOrW/yMJ71fsn8uB72A2JPU54Dmt10q7nOy7C4K0APFJNehGiP2hnck2/rGTMoahM0bKwZdVCToqpR79pvotpAJtRXl3x4odLexgVuc+QFeZ+K4IdICrWZz+crGBM+4s920jXqWQpSKuwSnqwkbHoVg9VZROx8uNexa9mKse73g6UlDUDtjqkW3023sr+VR0CvkWcqymcXamYSkYJDspBfx3oDuVmVC+cf8rtM58Kznl0hHh7/K3bdyM15X0wzALPwKZOrYDA7fO39raYFOHvoVAIWAQdRjbrNlkBlKKX4Hu84XUkVLtYxfwwKunjNa4t5LNZWxz9YAirvMeRg== 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=ZyKa1BSq82m9/dqjjdW8sYP2tagw8HuQ+NPSc4t44w4=; b=Vkj8/l64EmDkivK+vfSqosUYEOmbS/DbgUYYGLc62NigH+5qyQW5KJYT/OnF8lz84QqAxsi2xMweGCUwQFTNY4qrYtJWUEHs3pvRTIjdfx0yLSTeQw2k6kU+bGYW3R0Rvb8EAkUd1sSKLo1DbTfJDJ8kEf108LO6jCeOI8TXvWSyWfNAv02bGs798WG7IwjTcvLcEwHnkeM186AAj+sd0y2gPs4aTeoNkYjWDhQ4r9KdHensM0ajW1qM50D+DByXgM833Q9BVOqcVnw8VJnbovsPWjuZcz1t6IN7qV4SXk7O+ErMoVNfGKU8vZDMn90LMyoG/5TIEB1fi11HHSoBwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZyKa1BSq82m9/dqjjdW8sYP2tagw8HuQ+NPSc4t44w4=; b=BG3t0ykI0IsZ3wMly8TzZpvPd4hz8NmOL+sgvN03xhAF/UpJUBX1p19HT8C2OTveSA7s39+apb/oq4KVT6TLkTuV3eh17ElaJuY6Khb7z3LA/4TNcDWB2vVenxyDqiRbqhYDdQgjUuju7/Dd7DWcrUhv9uIlrp9/185h0Rt93LX+ft9WJMGud7qze9cBZRFB51j7waP17Ybg2WwDufU/TLTWU1zPV7WaGye841odIQGtyBof97DnzmJH4YUr/pqyZFMYpdsuzHQ2TZXtv2M+erbyrc8PMikcx8c+dtgXjG4TdxxGyrlY2sWpMIcc3k2XIA2TMTccrpOFhnjD+24xFg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB7667.namprd12.prod.outlook.com (2603:10b6:610:14f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Tue, 21 Jul 2026 11:00:45 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0245.009; Tue, 21 Jul 2026 11:00:45 +0000 From: Alexandre Courbot Date: Tue, 21 Jul 2026 04:00:11 -0700 Subject: [PATCH 2/8] rust: io: register: remove unused rule arguments Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-registers_fix-v1-2-3711b2317e1f@nvidia.com> References: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> In-Reply-To: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Tamir Duberstein , =?utf-8?q?Onur_=C3=96zkan?= Cc: John Hubbard , Alistair Popple , Timur Tabi , Eliot Courtney , Zhi Wang , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: KL1P15301CA0062.APCP153.PROD.OUTLOOK.COM (2603:1096:820:3d::13) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) 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: CH2PR12MB3990:EE_|CH3PR12MB7667:EE_ X-MS-Office365-Filtering-Correlation-Id: 6d2b5854-e88a-4cf2-c6d8-08dee717502c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|11063799006|10067099003|921020|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 1Fnt+TJuTvovwKPzca6oAlgrTa958osKTwS5ZMLTJWKNcgJ+mvMcnGeEX3onnfxrJlWk3tTeGL/h+CMC5mk3qev2cktVh9eanlC27zpF5Dg2M7zoTnXIN4YRmJCJtHLyTlVyM5ZFGNDoyQtOBR833gXPIuO9ixaJdy7Z3IPsqBBvyF5qHwa0Ont+XBXjP+rZ2r1c13rSRJVFi9hqcYLCXu5ZVziWdifJILyJyL7y6WC/XsGNbaxGwvP00bA8MQH3mgU5hTrdAIYeRMoePPvG6sIMb2OTdgOT+/6cb0USuqk9caOv+sE1jVKCYKt8adUIkLuIdJkKqmqw3iuaCPCX3VIow5/xXgDKS+fRH5Ks1Hfadzf0fm7txWY8BwN5WVb3KHjl+I0CWTKDQTaTLJ8tUPwUQ4R9McQclgq1XSKhQsJWeH7mJXnOM06rQuMwtp5rXeftzycMBu2Z1Lh6L08QNVCDWWo5w5MUqtRHJlISdeNQMDInBRRJmpoOQjkAL+IpH8JzYnrtiPUI0XjTQXb7FV/2WRHNQOcgOaV7gfWyQgT670jQEtOPg+/HlOcDLr2TOGX8jeqfy2xkLcbWcjJy1qSPgTS36o99QY0QGQJR+yQKHJVgsH+NanM6R8XFQU/NMGvTXUDslJUJKbrBVUEzq1Kw5GCWxqGPqqBUJXzkGE6A8UPSI1yTn6gootppaZp0FHCag9YE8NlsmNiJFqls6w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(11063799006)(10067099003)(921020)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NS9hMklkMjV4NHVWNXJadHBpWWJpenI2cmRjUzZSTUxDYWN3QmhzVXM1TjlZ?= =?utf-8?B?RFNaUWhuSm0wU0R6cGFFUGhUd1h5VGwrNXNLSmF0Qk8wOGJOZnh1dWxLd0g0?= =?utf-8?B?ZEpnTmNsWEl1NnVrSEM3b1czbk5lRVdiWXEwcC9RZXdBU2FTMUFDUzhueEp2?= =?utf-8?B?SE95OG9uYW51WlE1ZEVCOEpSM0RWRFRTb3FubXNuT1lPUU5vODNuTTFxelFL?= =?utf-8?B?QkNKQXMvTVUzTEpkN2JQVlUyRVRsZE9MS01KV3RjcDExNXBxZkpYNXI2bFRN?= =?utf-8?B?dFZjajJNUkR2blBXMGpybWxNOWFqU05NUTM1YkhIU0Rvc0wxOEdyTHN2MVpT?= =?utf-8?B?d2h4YmptUnI4aklVUnJVRlZrNlZFRG5VSjI4TzU5NzZIbEhQOW1USjBDR2xH?= =?utf-8?B?T29QRWlLeFJIYlRNWDV3VUlTTkptV1MyL3hrdi9mZEM3SnB3RFgydHkzeGFt?= =?utf-8?B?VitIMWRPR200WXdvMkM4MWtlWm5HajdvdTJrY1FpRDYwTnlDYUZNTjdtaENG?= =?utf-8?B?VXZTOC83WXF1SXdTR241L1l5aW41UXFqd1p3N0VnWnRWRlJKZEszY085b3E4?= =?utf-8?B?cTdEUk9CdnNPLzdPSTRPYVRvV0cyWEtkazM3K05lK0VHVUdqb045TXVVNUNr?= =?utf-8?B?RDl0N2VqU3Y5enYxY003U25DNXd6RGJDTnBkRXoyRkdpK3pmaUdwcW9rUThF?= =?utf-8?B?akRrL21hQ0pMWDVuSXpJT1QyQlpEeEFmODI5QkplcEhxQXo1cTBHMktuRTJE?= =?utf-8?B?N0hWcEJQU0lqZFIvaTZuVXgySjN1TmZtRjl0RlFQeHI0U3N3d3ozNUt0bEV0?= =?utf-8?B?Z3VDc05Zak9QUUl2aFowSHhJanpNT2w0YXRDOTVQV09xTUxQQXFTRFk3Kzk0?= =?utf-8?B?emJ4cWdoNVVuZzlnM1hNRTJKWFYwQ3NxUVFoRm1jWGZrME9BSmpzUU5QeW5O?= =?utf-8?B?M3d6VXFUNXIxUDBLRk5RVjdoRjVmYm1oeGYyV3JLeWtDNUpMMGNzaWVZRVVs?= =?utf-8?B?cWM4T1ArbHZwOEk0cmJVbXZQbnNTaUJtS3NVbkh2UW1Wa3JINmFsYmZuMndC?= =?utf-8?B?eHB3dlhwSHE4aDJBK2Q2L25uamdrZkJuSDZ1VkE0UzVzUWk5NkdCTCtqWVo4?= =?utf-8?B?WEttVmc3dnlVSFFONEFROTI4N2ltamJvdFVDdjdOOFFQbnhCYVFGckIrV0RV?= =?utf-8?B?T1dKaEszNFh3eGUwaTdBL09RTEl2UEhTNzZ6NkloMjhXOVpSYTZmVlFaejlI?= =?utf-8?B?aEVDcWhjWlp6a0NCakRuZjY1bStkZGlQK3NvKzA2OWRwa0phTnIyb0tXR0RN?= =?utf-8?B?aS9pa0hQZnh4ckR6SmVHbEgvdE1zSTlld0dDbEtMWFJLMFd0SHVaczFYMVJM?= =?utf-8?B?aFRkV1hTeWlybjByS3B5ZFlKbTBsbzBjdlBhMjlHaWZ1cG91akxVRkN6MjVn?= =?utf-8?B?SHZxd0ZsSVdNNDZDT2QxRG1xQ0p6L05WNjJXdHlIeHQ3ZUF3UTR3cHRSSGFs?= =?utf-8?B?Q0NqWDdpYTk3VUlTcTdwSm41akJXUmF4L0VCSEM2cGhtYUhXVzJzbzhLbDhB?= =?utf-8?B?NU1tZmVXazE2THkxKy9SWDBLbFBVV0FQaElGSldrV2xHMWVzV3dJTlc1SjRY?= =?utf-8?B?Z0IwcEtxQ0ozMTNSS2VRU0MxNGdTa2VwVmZwSnBweXRzQzVTYU9XQ2Nkbncv?= =?utf-8?B?TTB6RmQwZEJlZXNuYktqampKUU56eE01VVYycTJrSjRvZXJTQ0JLdll6dkR6?= =?utf-8?B?OTlvRHdTY3BlYXdXSDh1TktPMVkyTy90d3h0NlVTVkM0SzNFMGg0ZU5FMy91?= =?utf-8?B?WU9rdDdBLzJnaWhWaHlpQnlsQTBRSGJJMzFYVFNua0lkVG84N0xxMG41VXAz?= =?utf-8?B?RDgyb0tZc3dGMnUwS1lpUXhwaDZTS2FmVmE5d1pjUm1PTWJ5V0xGMTdIRzZ6?= =?utf-8?B?RnFDeVZOYkNPR21NS3piWHFYbkN3dXBiTXhseWV3VFZOWUl6cDZ6ai83VmRk?= =?utf-8?B?dmwzUjZ2UEhpYTZNK0Z2Y0YwZ3R5dUhUYjhkZk4xSks1RkxGVHJtNGlVVXA4?= =?utf-8?B?Y2ZpdHJWNVhQN3lLTm1pbS9NRXhEaXluS044SE11K3pMaTV0VTMvZVZHbVlw?= =?utf-8?B?UjhHaXg0YXNMU0cyNWd0dFM5N2dPVC9ZYmNFU1RoYUhyRm15cEg0anhHUTJr?= =?utf-8?B?WkZKVzJPQzhpUys3eXEraUpyWGRzaW1PSmZLKy9waU5WVXlNRFc5QlIrbnVh?= =?utf-8?B?RmhkRFNXTDR3eUZza01LdHNrZzV6TzdPb21mZjFXclhiNTBmdGFnOVdaT3F6?= =?utf-8?B?RGhpOXZLaHg2UXo2MVpUbW5XMEtHclN6a0xjc0QrZWhvQnZkbStGQT09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d2b5854-e88a-4cf2-c6d8-08dee717502c X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2026 11:00:45.2098 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6j4HHPwwxTZYvZBf4/37JDQLWtlcXTZRrFqhfd7NB2ooW1Tqp8tHHgEHdvLJW8tMsU97ZP24pm5L/SaDqG7QPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7667 A few arguments passed to internal rules are never used and just add unneeded complexity. Remove them to simplify the rules a bit. Signed-off-by: Alexandre Courbot --- rust/kernel/io/register.rs | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/rust/kernel/io/register.rs b/rust/kernel/io/register.rs index 27a9fe45b06d..82f674aea45a 100644 --- a/rust/kernel/io/register.rs +++ b/rust/kernel/io/register.rs @@ -832,7 +832,7 @@ macro_rules! register { ) =3D> { $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storag= e) { $($fields)* }); $crate::register!(@io_base $name($storage) @ $offset); - $crate::register!(@io_fixed $(#[$attr])* $vis $name($storage)); + $crate::register!(@io_fixed $(#[$attr])* $vis $name); }; =20 // Creates an alias register of fixed offset register `alias` with its= own fields. @@ -845,7 +845,7 @@ macro_rules! register { @io_base $name($storage) @ <$alias as $crate::io::register::Register>::OFFSET ); - $crate::register!(@io_fixed $(#[$attr])* $vis $name($storage)); + $crate::register!(@io_fixed $(#[$attr])* $vis $name); }; =20 // Creates a register at a relative offset from a base address provide= r. @@ -855,7 +855,7 @@ macro_rules! register { ) =3D> { $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storag= e) { $($fields)* }); $crate::register!(@io_base $name($storage) @ $offset); - $crate::register!(@io_relative $vis $name($storage) @ $base); + $crate::register!(@io_relative $name @ $base); }; =20 // Creates an alias register of relative offset register `alias` with = its own fields. @@ -867,7 +867,7 @@ macro_rules! register { $crate::register!( @io_base $name($storage) @ <$alias as $crate::io::register::Re= gister>::OFFSET ); - $crate::register!(@io_relative $vis $name($storage) @ $base); + $crate::register!(@io_relative $name @ $base); }; =20 // Creates an array of registers at a fixed offset of the MMIO space. @@ -879,7 +879,7 @@ macro_rules! register { =20 $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storag= e) { $($fields)* }); $crate::register!(@io_base $name($storage) @ $offset); - $crate::register!(@io_array $vis $name($storage) [ $size, stride = =3D $stride ]); + $crate::register!(@io_array $name [ $size, stride =3D $stride ]); }; =20 // Shortcut for contiguous array of registers (stride =3D=3D size of e= lement). @@ -909,7 +909,7 @@ macro_rules! register { <$alias as $crate::io::register::Register>::OFFSET + $idx * <$alias as $crate::io::register::RegisterArray>::= STRIDE ); - $crate::register!(@io_fixed $(#[$attr])* $vis $name($storage)); + $crate::register!(@io_fixed $(#[$attr])* $vis $name); }; =20 // Creates an array of registers at a relative offset from a base addr= ess provider. @@ -922,9 +922,7 @@ macro_rules! register { =20 $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storag= e) { $($fields)* }); $crate::register!(@io_base $name($storage) @ $offset); - $crate::register!( - @io_relative_array $vis $name($storage) [ $size, stride =3D $s= tride ] @ $base + $offset - ); + $crate::register!(@io_relative_array $name [ $size, stride =3D $st= ride ] @ $base); }; =20 // Shortcut for contiguous array of relative registers (stride =3D=3D = size of element). @@ -954,7 +952,7 @@ macro_rules! register { <$alias as $crate::io::register::Register>::OFFSET + $idx * <$alias as $crate::io::register::RegisterArray>::ST= RIDE ); - $crate::register!(@io_relative $vis $name($storage) @ $base); + $crate::register!(@io_relative $name @ $base); }; =20 // Generates the bitfield for the register. @@ -980,7 +978,7 @@ impl $crate::io::register::Register for $name { }; =20 // Implementations of fixed registers. - (@io_fixed $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty)) =3D> { + (@io_fixed $(#[$attr:meta])* $vis:vis $name:ident) =3D> { impl $crate::io::register::FixedRegister for $name {} =20 $(#[$attr])* @@ -989,7 +987,7 @@ impl $crate::io::register::FixedRegister for $name {} }; =20 // Implementations of relative registers. - (@io_relative $vis:vis $name:ident ($storage:ty) @ $base:ident) =3D> { + (@io_relative $name:ident @ $base:ident) =3D> { impl $crate::io::register::WithBase for $name { type BaseFamily =3D $base; } @@ -998,7 +996,7 @@ impl $crate::io::register::RelativeRegister for $name {} }; =20 // Implementations of register arrays. - (@io_array $vis:vis $name:ident ($storage:ty) [ $size:expr, stride =3D= $stride:expr ]) =3D> { + (@io_array $name:ident [ $size:expr, stride =3D $stride:expr ]) =3D> { impl $crate::io::register::Array for $name {} =20 impl $crate::io::register::RegisterArray for $name { @@ -1009,8 +1007,7 @@ impl $crate::io::register::RegisterArray for $name { =20 // Implementations of relative array registers. ( - @io_relative_array $vis:vis $name:ident ($storage:ty) [ $size:expr= , stride =3D $stride:expr ] - @ $base:ident + $offset:literal + @io_relative_array $name:ident [ $size:expr, stride =3D $stride:ex= pr ] @ $base:ident ) =3D> { impl $crate::io::register::WithBase for $name { type BaseFamily =3D $base; --=20 2.55.0 From nobody Sat Jul 25 00:56:38 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012053.outbound.protection.outlook.com [52.101.48.53]) (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 61AC637A4AB; Tue, 21 Jul 2026 11:01:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631664; cv=fail; b=EnktJG1cQT0vXx9Xxvef5vsNy4wMjlKlcMf7jAkhp6XWy72np6Fe/xf5KCSy8qh07egSPxqc87m2asU7MwUZrt5G2EDBt0FCvvwDYb7mvygHaAEIcXSgxNaXvtKM7Qk//183cH3BBDutK0V8wHrlKrkx8nQtvyr1UyeSi3mNQwA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631664; c=relaxed/simple; bh=OFb73VUHCZcFJ4G6GCnuIPXl4PSjvcepgemDT7VoNEs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=qO7uCsG5Ay2fp781ZuPJ9SsKu+JSsnnPyIgJ6XENfaM6hZwRvfUCh7384IkCQj3rSIoLbF3yq/ZPt0OcbZSvrhsOBtQytqSg1Rp1pD3kR7meVlbUpg0CNypyrnzrpgJSHIjiXxxytHfFmPJ3yDbnn4H+SqDU0l/X54Jc31Tstxk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Z9hbI1nm; arc=fail smtp.client-ip=52.101.48.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Z9hbI1nm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qhGEwsxX/yOCzKdfL4keHwrILqlIzdRigqem24zYUZFlIkggnxOdozvmCl9uHbX/XF/H/ca5guG2SfWxaOZ8/+MAKwbetMs4T2sQZgyB785SQS4/HP51YleRyxec/+YTnENE4MdF8uvmf8Kb7oPg+/ZSgzdD4z/YTCYkWx7b4YR8j9el5XVMZSIfZrpwQ23KXVHI45K0VNFjuq3UhEeOyYDH8xbrlCoc+zll/io7L9S07cU+HiANOuWP/Bla3Pxoc9auPu4euCbeXA0R1i251uc7KZR5Hz+eCtKb8n52HL8tJ5CCpFQtHLZzw+Smg+dPSP8iUmNWR9oKx8gsI3aFTw== 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=s64U2lacdai+bDPET/mJpx6CwUcyH/DYr4RdHth2T3U=; b=iuqiFvqp885cHJX+KcIFg1DN1EWdIBoZr1xTieAhmyhg7XnnX59DEPwUS1DooXi19hcTOQaDhIP4tC+hn4GyBOmosxAydfB4nKyi8bcI5S82w5gTrGBWUfIzVYq12zFsCmkrQaiBEHQq3CSpdMdL18DUzhh3o5g1XR74LI4unqb0xXh7nLrqOKgVrXfgTyweBWI7bXxioi1caxDgwm4c4XbFTy5qmeqCK8SsZXLiJrfzyF/RLKAo6e2yHoUvlySg3wUJyEn/dxJqpUUSGB8cgchbnEOxeU58TuC/rBqg6Qu4n0SCCZ8TWje5ECgXHYUYrs/Jy9mdHQpsp/gS327EHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=s64U2lacdai+bDPET/mJpx6CwUcyH/DYr4RdHth2T3U=; b=Z9hbI1nmdBemSrV0/WeJlwhcMkEcD8Hls3npF8Y9PvPqT/yTHUxjtNKtiF3E5kpqOJtjFDxjl1mtYd81C2R6FhsFkkJluYwT/dRFbvSEuYRKFVpI84TjZwgTgN6uB+1dYG6bzDzzDyZakrjQkS0khQoFhIlIsiE2DjXnM1Q7B4Cv1qDPfwj4WGgbbpMuFgX0fbLuOLnPqWMAGYfrSqfjT152fpvPAabpNEUIgd3b4+ZdH+P+k3mNq3+dLQRnYtw/8bB/1Zdj+jnEh8n0BaqzZAD2OzyNLFhwnBuSVbw580Z2cD6frkrsMAPxcqAd2ISmSaarc5m9NGhFT+a47Y8gWw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB7667.namprd12.prod.outlook.com (2603:10b6:610:14f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Tue, 21 Jul 2026 11:00:55 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0245.009; Tue, 21 Jul 2026 11:00:53 +0000 From: Alexandre Courbot Date: Tue, 21 Jul 2026 04:00:12 -0700 Subject: [PATCH 3/8] rust: io: register: use path fragment for alias destination Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-registers_fix-v1-3-3711b2317e1f@nvidia.com> References: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> In-Reply-To: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Tamir Duberstein , =?utf-8?q?Onur_=C3=96zkan?= Cc: John Hubbard , Alistair Popple , Timur Tabi , Eliot Courtney , Zhi Wang , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: KU2P306CA0028.MYSP306.PROD.OUTLOOK.COM (2603:1096:d10:3b::18) To MN2PR12MB3997.namprd12.prod.outlook.com (2603:10b6:208:161::11) 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: CH2PR12MB3990:EE_|CH3PR12MB7667:EE_ X-MS-Office365-Filtering-Correlation-Id: 20629ba3-b57c-4cef-fc91-08dee71754bb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|11063799006|10067099003|921020|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: jciw+O5+aWW4J8lYda3wB/r+zdicOLZBzcjDQpAsNB/ZK3c1H+TlRNghdCHaWE35h2eikpyqypeW76Zj+iX46AeZCdkPxxT0XS68O5K7XO0mS1jU7TnC/6XIUmC0X3nd23BLEGhR0zTVhTXnciVdQyRy09kyt5Mvbg6BeFytf2Th0jkShdpWvuQNkOMcEfRA6JdKVUuZcMgSdxG6ypeQE7Oe5I07VkREqbwAvmPg6HfYNTSjvVUUfpCcj0iIIGY3zBrbpkL8iChWm8OMMX/1B8FaIO8uCMYzJXRTklCRA+A5vUdVJ9rt8XWUK1TQZv2aqp6FI1+Bxc4deRutK8AEn8HM2uIpHRJy2IiFYb5FNzIh/xrZIDEQ2ulbzfXlGyL5cI/iU5GMkBR6a5NF/NbZEM5S0jYBCywbYAPk6IADkcesOEt9UBwMQgRR8o4jfE6XTkAVwpopmZeIpUCyG6AlfE0AjTTxz+IGCCWb5SDRjSATwyD/OwRED62dJlVMHmWo1DbwGA7uOu6+QTuEOniS9mLHBGEV+s0lEHMgGH4yZ72BqxPhw8MD2nF/bg6QcxYzeofBPKq9lKUJLyGW2q+6qw8IhSXGmUojVHAiy29zcSrxJqYiOaV3MZ2El/5yh4MXGqVC9nF55Pfp3suXNcHsEyL9DkwdgJHxmX/lXaPhz7RSy5nUASVBdgr34bFa3NpRY8MjukJ57HTjdUWyyz2UfQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(11063799006)(10067099003)(921020)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dzZjdy8wRUpTNm9SSjBtTXZ4eCtjVFFVUmlyNTEwZUVTSXNLanEwTEpSTk05?= =?utf-8?B?SjVvaWlYTk1aaUtEL1h5b2o1aWpoZDdTVGtrZnJUdEJFSGtaTnZkLzJobTRr?= =?utf-8?B?UzVuRitCWGdPbUxJT0ZRTlRkNi9lejRNNUJYeEFtaWtwYTBMRU5pRGJIc0px?= =?utf-8?B?RzlVRk1nbTBOOG1zNVNqM2tQQU1zelQrNUtaUURTLzZtTDFpcTJsU2F0dXBD?= =?utf-8?B?SVdoa2xpanhiSWJNM3NtVVh4VEZjOXdocXJOQ3QwRWsvMDJpNGEvSnovTHFh?= =?utf-8?B?UGlvTnlQbDhpV0s5RnFXSEZwOXN4WTFmeGFTeGlqNWhTd3lGVVNYNVphVWN2?= =?utf-8?B?dmZlMHhLMWkyNjNMaTBjcXFwbFRnaUlaaEY5QWMwSVRvZ1c0a21rLzhqcitR?= =?utf-8?B?dmFmeW44ajJKK2huRFR6TGppRTlvU2c5dERjT3lQTUR4VFc1VnhOQzFLeHN3?= =?utf-8?B?NTZHcWg0cE52UmJTUzRud1hORnAvOVNOWUwvanZ1QnpvZ1VvaWNPVVRWTkpo?= =?utf-8?B?WnZKazVYUHFCNWpTSlhCbjBvZGhraDBXRllGWGw0WUV6OE9wR1k5SnUvNkt5?= =?utf-8?B?Um01bW9YRHd6bVI2MlJZVGVXcmx6OTJlTEpObWxlZDhxdXRobkVDRlNaTlU5?= =?utf-8?B?UzU2dVJhL0FSU3NuUldVVE1jTlhmNXQrUUh5dUNpQXpGQkxBR0NtNUxGRy9n?= =?utf-8?B?K1VnN1FvVzE3TFdvRWcvNFh2aEg4R0FFMmloakFDa2czYm9pVFd5NUtRTFRM?= =?utf-8?B?amxlNlVNT2VHNUNzRXQyZHplYmhaR2ZHd3hWUGdvVTlFRERjT0gyOHpCamQ0?= =?utf-8?B?Z0FDbzFFSmtPcTZaQUhHL0NaTzRrY1g3UW56VEFmQjRGa1pwb00wMzFkRTNQ?= =?utf-8?B?bmFRRUVDTW9Jd1dWMCtNdWJXTWpWd3kyNU9NNFRiRWZvRngrRzFvNWZ1cnVQ?= =?utf-8?B?VTVNNGcwUGl5MDRsL2N1WjdMb3M5UXI4WDFhbUpFRUw3MEZRVG10MzJsVjZq?= =?utf-8?B?U0s5VS9MVHNSY2RiRk12TEtYUXVGY3M1SHIzeno4RElXdHhFUXNkdUpheU5N?= =?utf-8?B?UFZUL1RZMDNwVDV6ZmtlYldOTlZaWFhJSVI1NE1iSitkSGg4R3ZOZkcrV0Js?= =?utf-8?B?dk9TeDRrYk9DWkY0MDZEZXdFYktGTWdNdEdCWFFvNi9tLzR4QlQ2bU5oL0RK?= =?utf-8?B?ekRkK2hBQnpvUlA3clZnYWZKdDRZdDhHaVFzN2FhbHNCVkhUZGdncUM3Z1pn?= =?utf-8?B?MzBwcHVZNWZXb2V5NG5sQjRQaXQ3K3ZMSjltcHU1NlpiSFhSbTZBa1RnN0E0?= =?utf-8?B?OGRiNEk0ZG1NNE1UTTN2RW1VVHVJQVlmaUNnYXZ3VVYwRGZBc2Z4V2daRXR0?= =?utf-8?B?WkkzNXJTM2k4b3pLbVdGWkE1ZWo1WERpY3cwelpVT2NRRkNjRXovYzBiR1RR?= =?utf-8?B?c0MxRlBYcHVEYU9LQkdraU9SUWVoSHNEczlaaHZyYTNQRytBKzVDU0I1UzRI?= =?utf-8?B?dURNZ0xCUXdTalRTMG56UGpCSjJvQ0FKQU1QdCtOdjNpU1VUQmRBVkdXTEVr?= =?utf-8?B?Q0sxVWIrdEE3dDk2eWtSeEkxSStCNWt0TWt1Tzg2SGVkakFuQnh1clFCQUZI?= =?utf-8?B?NEgzUitkSzRvUEFjN1RFUXlhK0pLcFcrN3BBOTV0VXlxVkpaVEFWZkFqblZH?= =?utf-8?B?MlVCQjJ4RnRtUkd4Qm1BaXNnM0h5SXVxbTZ1aFFlalIzVzJtRzIxSmwrZW91?= =?utf-8?B?ZWlmU1hGUThEYTFQaGFjT0FEczRnTW04REl4K1pjdzcraWNESm5PZysyQnF4?= =?utf-8?B?K3A0TmZrSUp4Q1BiSVIxbnpBb0duSzUrT2VkKy8yRFB6MmFJZWJEOWs2Q3dK?= =?utf-8?B?cFZXZys2dkR0bk9tZUJtb0NIekNNeUE2ZGdMbEluTEhHWnp6RVFyeVM1QzlC?= =?utf-8?B?dTMyNVE1NjRkYzRiS2U2ZTJjZXpvNk0wanFSVzBvU1ZnQ0EzN0dpMWlaajR3?= =?utf-8?B?MituUXJUTlQwZko4L0lhcjZTRUlEcU1zSzBMZnB5NmhnZXQrajFXZzQ0R2k0?= =?utf-8?B?STFqVkRZMnZ6UHN4b1ZINVFiV0ttbmt6YnQxYzNhbmtsWVExNmtuODBjL2JF?= =?utf-8?B?R3FWYmlBTDFvY01NaDJwOHVlQ2plaUhxdUhidDJlc3hTbTBzSThoNHkxU2Jz?= =?utf-8?B?OEVURTBYS0ZZL0g0Z2FmZkIyS2ZzcThRUEtobnRGMFVpa0JUMk83dWJDRDJH?= =?utf-8?B?amFFNEdpYjk4ZndJL1FRZ0N4TythZjRqckRPZkhDMSt4RjgrdEM4dmhtVUhM?= =?utf-8?B?NHZTb1pwdGtKZzk0MldhTGhlN3lMemNSNng4QldpaTJDWVNBbjBWdz09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20629ba3-b57c-4cef-fc91-08dee71754bb X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3997.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2026 11:00:53.4356 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZqAs6avd/hXnDk9G3oCZS+HWuLq43bwYJRZXGIkJsilBaKrc6NSwmROAyznlRYSZJRZ8SNYOAbr3a1bjIyQiVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7667 The destination of an alias, whether it is fixed, relative, or indexed, is always another register, i.e. a `struct` type. Replace the `ident` fragment with a `path` one which is more accurate, and allows referencing registers using a qualified path instead of only identifiers visible from the current module. Signed-off-by: Alexandre Courbot --- rust/kernel/io/register.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rust/kernel/io/register.rs b/rust/kernel/io/register.rs index 82f674aea45a..1e0e23e4233f 100644 --- a/rust/kernel/io/register.rs +++ b/rust/kernel/io/register.rs @@ -809,7 +809,7 @@ macro_rules! register { $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) $([ $size:expr $(, stride =3D $stride:expr)? ])? $(@ $($base:ident +)? $offset:literal)? - $(=3D> $alias:ident $(+ $alias_offset:ident)? $([$alias_id= x:expr])? )? + $(=3D> $alias:ident $(+ $alias_offset:path)? $([$alias_idx= :expr])? )? { $($fields:tt)* } )* ) =3D> { @@ -837,7 +837,7 @@ macro_rules! register { =20 // Creates an alias register of fixed offset register `alias` with its= own fields. ( - @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) =3D> $al= ias:ident + @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) =3D> $al= ias:path { $($fields:tt)* } ) =3D> { $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storag= e) { $($fields)* }); @@ -860,7 +860,7 @@ macro_rules! register { =20 // Creates an alias register of relative offset register `alias` with = its own fields. ( - @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) =3D> $ba= se:ident + $alias:ident + @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) =3D> $ba= se:ident + $alias:path { $($fields:tt)* } ) =3D> { $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storag= e) { $($fields)* }); @@ -896,7 +896,7 @@ macro_rules! register { =20 // Creates an alias of register `idx` of array of registers `alias` wi= th its own fields. ( - @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) =3D> $al= ias:ident [ $idx:expr ] + @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) =3D> $al= ias:path [ $idx:expr ] { $($fields:tt)* } ) =3D> { $crate::build_assert::static_assert!( @@ -940,7 +940,7 @@ macro_rules! register { // fields. ( @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) - =3D> $base:ident + $alias:ident [ $idx:expr ] { $($fields:tt)*= } + =3D> $base:ident + $alias:path [ $idx:expr ] { $($fields:tt)* } ) =3D> { $crate::build_assert::static_assert!( $idx < <$alias as $crate::io::register::RegisterArray>::SIZE --=20 2.55.0 From nobody Sat Jul 25 00:56:38 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011009.outbound.protection.outlook.com [52.101.62.9]) (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 99D61371876; Tue, 21 Jul 2026 11:01:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631670; cv=fail; b=rPW2j9mnQW37jzUwUCG6gWZ+w3E+aE/AZJPUExlIXIuGkB5aO9p0M3w4MOv76i9Q150Ro9ugBpbcZ4DlcEQUJ1FUxmngXYRXB0kGb4oa6UexUnQNSUeEZtl1ZE61Xf30KBRil3DJZV0/oLHJvjipdVRTcljZm/1P8Hx0Q5W0BpU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631670; c=relaxed/simple; bh=a9OCLwpIuj16G0VwA9CfiUjzF93J3kc51nLPkllGPMA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=mmtwvcCcRCUMwbpypy7RSgsFKPJqmfqxWbm3SaAdOAo+AePk4Z15G2bhVIgJEV2aJ/z1GoyE1qDyV5v1EPvRd5KqALsAjD+P3RD9gZZ7doDjBmv1s8Lz4kqyixx7rDZqKe0iD+BZe1P3PRQWCDmh8HbDluT2JKVZkp9NOwM3Ul8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=AA7e7TH+; arc=fail smtp.client-ip=52.101.62.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="AA7e7TH+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fj1jMa5oRMWmTf1nOJS0mxzz8+dmIMF0U5ON8NpUuqwg1a3797BcOorT8JZcRojHEEq5KMlpvoAkQ/HUqVMEHegyU2/Wi0jmUrgUgMLEeKOJSbTeuZVZPSSvdLBdZbum9XInMHnCASv8YKgpcJwSNmIulvKwAGsdZox0uRhS83Aj81NEeQFKLCLQiAt3XT6WOphppFK4xa3EMJy24yU1f9vPg+bmkwgYNWUF2EdcV+QdlsHMve9ur+B20mqNVtCpSIHm6K+lAFXrU1fL/iKAw3ChcknnuR4qsG0RgX3U5ktkz+ORQZDAAswjR6sV5wKdASs2l83Pa6WepM8dXhdpdQ== 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=WAeLg/yYoYWetpIFYa06Idbw51eJQ8r4V8vit4cOMlc=; b=GIRLxkRtw3ym9OK2xgcVz6ngjEo8nH7iEsiKn06dbt18WdXN2eLI+D1LKn9F7spGhqud40ow6VKwd/8oamwxGoPkTIg2LfvhbIxvC8NINhVP5NluWvJmIAZIA/uf2Tvd9Mj+fKwqSMGwbayU4Afn3932Hsbupsxzd53UjBRpQzF4FaUYioeCC43r9akg+6nE+KgvDGvAL1sTdedfiR1wgD60EibGrS3rN8qDEPFDfnNx3LSteA0IA5qB8edZiNf3gRCscdqiuIs5ylzzaMa05qZWCZAmSXuWwQAMNzM5sryIcwcGMO8G8/3FAulP5XWzD77XlSikIFl5EBMLtjvsLQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WAeLg/yYoYWetpIFYa06Idbw51eJQ8r4V8vit4cOMlc=; b=AA7e7TH+5Zf7vkZhGY7XueYQITMJDiYSpWPmpSERIGR1ghs/uB+wB4oNszNKW+EtZxKt639thsgHk6lKwlFMu/lJED3vDIlxJOejDDI/e5ByoqsLQpVmz3hILd/sQd0OVH6/URRAD6CThA0Kl3ND3VH2kbeaX3tW3Tiitn4a973OGe+VxuYobLZoJ8wvPLDu8OKBGIPG/dGR3AA8zaMYwsGsOsFe8xOqzLCZ91N5FqlxkiirCQndc2+cd8oYpTD4GmbiXqCyiC5J498b6qPhM+F2BJMtaANg0vFf+Iz4pAvlgtKaBgIzpzKuCByRJLWDeHtfOpQIxrBCYLRZ0NKxjg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB7667.namprd12.prod.outlook.com (2603:10b6:610:14f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Tue, 21 Jul 2026 11:01:00 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0245.009; Tue, 21 Jul 2026 11:01:00 +0000 From: Alexandre Courbot Date: Tue, 21 Jul 2026 04:00:13 -0700 Subject: [PATCH 4/8] rust: io: register: use path fragment in relative internal rules Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-registers_fix-v1-4-3711b2317e1f@nvidia.com> References: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> In-Reply-To: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Tamir Duberstein , =?utf-8?q?Onur_=C3=96zkan?= Cc: John Hubbard , Alistair Popple , Timur Tabi , Eliot Courtney , Zhi Wang , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: SI1PR02CA0026.apcprd02.prod.outlook.com (2603:1096:4:1f4::11) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) 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: CH2PR12MB3990:EE_|CH3PR12MB7667:EE_ X-MS-Office365-Filtering-Correlation-Id: 24fd754b-1e4d-48c4-6acf-08dee7175917 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|11063799006|10067099003|921020|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: K29Jled9ywm7ju3s8AJjA+6muYpcDVyAyQI488go2FRGcVYOeAcXuOG9Rq8h9CmIWC5h+yOhpJnEhfO/mbXZAj/hBtkAMTHlqERDNaqQG6FpgX10zXGgOdIWcwtexwSjEmvicgaEjjO0Qyda5ynAYG8lgQmHE3611JUc2c0AVemKMjZgfR5U8ttdwLAF49gsX1FXKnTMTOXTwCRGPehsriHPcLEPGaBzXH07caMv11ajvowICslfh+yMmLKRY+qL0CiirKPosf0UTrYQ4gM8yMvLC/xrv7mFVnfi5XA2hVnkrTGhGdYrUEzEqOPcdbbLSLiou0PlCAge9wA5NzBaIklWphuTjcFt06MDq+uO3f0v+oe6H+6Mz72NHBs/3SaxJMrcxLYV1jy3sBRC+mRYHl/eXbCabodnRoZK5EdaZyGFNLNQy+F6aSKZNrt2SsEhFbQFhpAPOrcwNmqqUkXw+mwyTVIHrg4YM5pI4ISNZcHJnYjx7Fic9MmSvVCPL8KhNK5etjdNFh6kcCP/ewHR1ZUOkkaZDJZpy9KpR25zC9m7zrMClD7spXd4DkHsSEndGtWRDg6UjGfEm01WWLvAZVGKLwFHzGqYs1tXdw3dc5XzubwUkAMZs+KyAjD3gTxEbnxNWc0o3eZlJzaFJV/VecRIRApyo9Y/MUUxoLTdiP5xtkG1hhZ0QQUG2d1DOJF1/pqHH8CU6usJNj7znbHggw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(11063799006)(10067099003)(921020)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dFR1MGNTLzRiQjZaTU9SZ1czZ0UxUWRsV05XZmxFWkhlT2E1ZzZpQmd1RXpq?= =?utf-8?B?N2tlWmdVZzFPbFozbmQxYzR0YTdZY2dqcG5FMGMxbi8xbnNYWVJmZVY1Ulcx?= =?utf-8?B?eWJjYXVyOVUrRGpHTWV0SHZjamdEeDZoY3ZNNUVNZ3JIMUtZd3NEZjR0RFpa?= =?utf-8?B?SFc1aGNiczh2bDFGRUczMkFXSlNoWGFKVDBuV0lvTDFCN1NVSzd6aUEybFlK?= =?utf-8?B?Z001eWM5bWZGWCs2clp3eC8vR1JHaW9aRFFaejAyRTYrVUVoUEtHUzZLS2ZW?= =?utf-8?B?RTBYTUxDakt4QU9MTEN4alo5dVZoRUQxa2RyV1Z6c2dhcUpxMEVRaW9KK1Q2?= =?utf-8?B?eEt3ZDlSc0NGNkQ2d2RIUU5nMENhRVRNa0lCNm4vZ001dUxhZEU3S29iZ2p2?= =?utf-8?B?b0lwSktRMERFOUVROENHVzR3NWJ2anlaVXI4UWVMRlliQXdEY25YaEtZaW8w?= =?utf-8?B?cEUzU3J4bDgwOHo3Y1FrdTdwcUs5VTg4UEQ0Zk5CcVlhVVB2a2d4blBqcVMz?= =?utf-8?B?eE1BbWpqZGtBOVNvVllwR3h5TkRTdW9xdk4waGRQNWJsTUVDQ05uUVZQV2RQ?= =?utf-8?B?MXVSSmNmdFhmbHBmOVk5SmEvd0FQdlFtYTdVYVF3US9aRkVLQ2laYm9FYzI4?= =?utf-8?B?bk53R1hJWmhoTDcydWZnQzZVU3ZZNTZ3cWU0NDNZVVYvYkVPVXBkZ3Y2SUhP?= =?utf-8?B?Y2pEQ0tjNXAxSG1QbXdqRElCZnhhem56ZzIzTWtmdnVjRjFTa2UvLzNBUzBW?= =?utf-8?B?cGc5eWs5Z3d0V1grRjBkb2lTSVhydzltdHkrcE40WGFySFl2bWF6Y2c4Y0o0?= =?utf-8?B?aVJ2T1V6ZjBBSTkyTE1WM0ZlUEc5NmdCY212TWlzSHM4aXlvYWR5TWpPcjdC?= =?utf-8?B?cVAwWVdZTk0vRjdKMndLSGRFcGVXZEFNMmdiZ1M3MDdCTzF1a2IyaDFFU2tD?= =?utf-8?B?MWZCbzhmUTlEWHVCUDdhZkpKd3JzMWxDQ3MxWkpzSk1rcXdaR0M1eEJTckFI?= =?utf-8?B?SDFhdkV0dG5hbmlMS2xTTVZ2RHJ4aEVISUYwZWNIRHh0YkxQTWZJTThNVCsr?= =?utf-8?B?dmlTK0dPOEZGZGk3bVhYWjFteEdVenMrbytYYW1MbG5rd2pmTzR1TWl0UlpB?= =?utf-8?B?cFJiYlkvQ3h0dXhaM1hPUEtzeElmK2xsQzZ0OEp4aHo2RS9nT2oyanJiZ0tz?= =?utf-8?B?bTR6ZTFvemUrYWlDZktCaEttZ25EQk1pUVZhRWpiNkF3Wjdvb3l0VUlFMTBR?= =?utf-8?B?TCtjUUZTS1l3YzIrOWpRQS9tZUFFQ2lzVHFEMjY5MVkvZ0grTms1QXAzaVZS?= =?utf-8?B?RFM1aUZBU1AxQ3ZKdldmQlZ3MXExV2tld3VCdXZSZExKZTlLQ091Q1Zzc01R?= =?utf-8?B?QWQyQmlrMXlCalZQREhBazVtTGVvZm84bUh1d2tzb1Erb3R2Y1BnVXlJYTdP?= =?utf-8?B?Y2gzTWlyaFBNTnQ0dzY3NnJTVVFvTFU2a3NSaGNuK2pmVmlocGdVaXIyUS85?= =?utf-8?B?ZzdHSTdHREtTU1ZLa2VpbVZwb1NpT0hSMnNoczRWMnFlWGdCQmxSczNkQUsv?= =?utf-8?B?U3hxb1MrYWtJR1UvVFE2UDdKUXYzSWpLampCeDBYZFlXRzBSb3hYVi9oSWVv?= =?utf-8?B?anBnbktlTEFyc0xtSTU5eWMzS0pQTW9keEVORlFaWUEvdG04ejhPc3dtajNi?= =?utf-8?B?b3llNGZpYTF4MzYzMW9KTzdyOXdUYmF2VDV4NnRKdFk2Q2JFYlEwZ0RTbE9D?= =?utf-8?B?cVJBWjBpMmlzdHFtdEhaK2xGdTltOEVLZFNSYlllSFRGNFNEODk4QVZJa2tD?= =?utf-8?B?N25YUVBZd1FrUE9mZVhvWlJpOW1ZRXk0dTRkY2pDNWpzY1pTcFBHMzVONlp4?= =?utf-8?B?U0lyVFlWdnRwNHRhK2pJVTN5K0JjYjJlL1pyKzJOUmRyaWFCankrNUMwV25r?= =?utf-8?B?bk4rY0RUNFNzSy9wSk5yazlWMTUwOUhReUY5SEFmSUpvVExvZG5LenVRaVhT?= =?utf-8?B?VHZrVDlPVE95RUJQdzN3VC9xcUJVdzJsbmhXMkNlbTRKczhuK0VWNzgwYVRG?= =?utf-8?B?b2ZCeGo1Z1FRWWVlSC90dm5ndVZkQ0M3TmQxcXBqcWF4MG5BVHV2TC9IRndt?= =?utf-8?B?aDlWbVFJN0ZBMjk4WlAxaEZrY0Mybmt4bDk0RGhIT0xvRGJ6TnFkTngySThr?= =?utf-8?B?K2c2VG56YUtRS25lT2JrVXJ0VEFpRkVGaUY4ODA4bFNIRGZ6ZGk1NGNVUjg0?= =?utf-8?B?T0hwOFpFV2I4UzVUUDhLbytHeUlyR0ljcVlhclZJdEg1VGdHU0JwaUs0Z1FX?= =?utf-8?B?ZnVBMjZUMUpKL01BTnJNNXJiL1lLc3ZKNXpMSmNQTitCSmpuRURhZz09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24fd754b-1e4d-48c4-6acf-08dee7175917 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2026 11:00:59.9629 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KspKD20IqZWhf6AgG3HctB31PVVZpQFrXs+g3xos44ajECM5GSzEhMY58LXkfswqnzToTPMMn/GzWnV2ncEpdA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7667 The base of a relative register is a type, but its current fragment is `ident`. This prevents referencing bases that are e.g. declared in another module. The `path` fragment is more accurate to represent relative register bases, but bases are currently followed by `+`, which is forbidden right after `path` fragments. `:` is another separator that can carry the desired semantics, and is legal to follow a `path` fragment. Thus, replace the `+` separator with `:` in the internal rules so we can change the fragment for relative register bases to `path`. The public rule still uses the `+` notation and an `ident` fragment, so there is no user-facing change yet; only a minor replumbing of the internals to better support the new syntax introduced in the next patch. Signed-off-by: Alexandre Courbot --- rust/kernel/io/register.rs | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/rust/kernel/io/register.rs b/rust/kernel/io/register.rs index 1e0e23e4233f..62208f52752a 100644 --- a/rust/kernel/io/register.rs +++ b/rust/kernel/io/register.rs @@ -816,8 +816,8 @@ macro_rules! register { $( $crate::register!( @reg $(#[$attr])* $vis $name ($storage) $([$size $(, stride = =3D $stride)?])? - $(@ $($base +)? $offset)? - $(=3D> $alias $(+ $alias_offset)? $([$alias_idx])? )? + $(@ $($base :)? $offset)? + $(=3D> $alias $(: $alias_offset)? $([$alias_idx])? )? { $($fields)* } ); )* @@ -850,7 +850,7 @@ macro_rules! register { =20 // Creates a register at a relative offset from a base address provide= r. ( - @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) @ $base:= ident + $offset:literal + @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) @ $base:= path : $offset:literal { $($fields:tt)* } ) =3D> { $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storag= e) { $($fields)* }); @@ -860,7 +860,7 @@ macro_rules! register { =20 // Creates an alias register of relative offset register `alias` with = its own fields. ( - @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) =3D> $ba= se:ident + $alias:path + @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) =3D> $ba= se:path : $alias:path { $($fields:tt)* } ) =3D> { $crate::register!(@bitfield $(#[$attr])* $vis struct $name($storag= e) { $($fields)* }); @@ -916,7 +916,7 @@ macro_rules! register { ( @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) [ $size:expr, stride =3D $stride:expr ] - @ $base:ident + $offset:literal { $($fields:tt)* } + @ $base:path : $offset:literal { $($fields:tt)* } ) =3D> { $crate::build_assert::static_assert!(::core::mem::size_of::<$stora= ge>() <=3D $stride); =20 @@ -928,11 +928,12 @@ macro_rules! register { // Shortcut for contiguous array of relative registers (stride =3D=3D = size of element). ( @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) [ $size:= expr ] - @ $base:ident + $offset:literal { $($fields:tt)* } + @ $base:path : $offset:literal { $($fields:tt)* } ) =3D> { $crate::register!( - $(#[$attr])* $vis $name($storage) [ $size, stride =3D ::core::= mem::size_of::<$storage>() ] - @ $base + $offset { $($fields)* } + @reg $(#[$attr])* $vis $name($storage) + [ $size, stride =3D ::core::mem::size_of::<$storage>() ] + @ $base : $offset { $($fields)* } ); }; =20 @@ -940,7 +941,7 @@ macro_rules! register { // fields. ( @reg $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) - =3D> $base:ident + $alias:path [ $idx:expr ] { $($fields:tt)* } + =3D> $base:path : $alias:path [ $idx:expr ] { $($fields:tt)* } ) =3D> { $crate::build_assert::static_assert!( $idx < <$alias as $crate::io::register::RegisterArray>::SIZE @@ -987,7 +988,7 @@ impl $crate::io::register::FixedRegister for $name {} }; =20 // Implementations of relative registers. - (@io_relative $name:ident @ $base:ident) =3D> { + (@io_relative $name:ident @ $base:path) =3D> { impl $crate::io::register::WithBase for $name { type BaseFamily =3D $base; } @@ -1007,7 +1008,7 @@ impl $crate::io::register::RegisterArray for $name { =20 // Implementations of relative array registers. ( - @io_relative_array $name:ident [ $size:expr, stride =3D $stride:ex= pr ] @ $base:ident + @io_relative_array $name:ident [ $size:expr, stride =3D $stride:ex= pr ] @ $base:path ) =3D> { impl $crate::io::register::WithBase for $name { type BaseFamily =3D $base; --=20 2.55.0 From nobody Sat Jul 25 00:56:38 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012021.outbound.protection.outlook.com [40.107.209.21]) (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 C5E0E3806AD; Tue, 21 Jul 2026 11:01:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.21 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631675; cv=fail; b=mkCZsdXTM8YsOHwATgiNwBfVesOj7d/A46HMJGy6iTcbAdkSy8aRek4xEtPshBf0SojVELXfIvEleM7cZX6qPwMs36HAjstBCTv5bXr7kiWnWt1z42ieSsD+OmbF3yNqjdTPiPSKyTAB2ZhcGfewF9pFSin4SCoE1cg2INYjg7g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631675; c=relaxed/simple; bh=1cwHLdCkmFq3Xna0gOidwWyT1unjLA19mv7lwlaDuG0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=IpLsXO1bOuqXSxQTZAtLvVfwPkoyxo4aCUohGxxqZEH18K4XQxsqsSV/pezJatCWyT7bw+HnWSciXy6VYhVCui8O5Vnj7mhJEu/tLtwLvDCw7+3hBfv2OUU/X7uyI2/PZ/aPPTt7knN44b02eDVYkJuuY5utM9o5yWI9f/Xzm2k= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=eqHW+oRV; arc=fail smtp.client-ip=40.107.209.21 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="eqHW+oRV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DXQP2XpQ2YnF4xhHhzzTDocYWF9ZJ7JkMUmnIyOffpo7cyA3Mu5zMWbOG1vuKCGmRZ27zL2TWK9PNc4yX7dGymQedk6TMSGRDyt10oS3VOG82buZkMHS28dDpSOu4y9OzEWeywy2GhMePXfWirKBNuXGS8hWbHA3Tu1xodKtCD0Kxh3fsbAKcN9dMF4gHfTehYbOpRUDkGhx1gRVOrmumbRCmeP2CYg9vOX1UB7rJh+iYOH2Y6z1pLUfHNXEVrcjgUxA5wmz70Czweys6vNxgdhlRFhaLyEnXzeI1ZxWmX05EUFqbOKxXNRxBuh6expJ9d3JGU0T0Upazv9KetITvQ== 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=wDitVsv9ey9jfk8U6j1+CCawDAPGDz1fktxgkXsaYkc=; b=e+zHFUL8qXH48HTL+xbBHSPYSq53Pve+EMGmDin3vldtkgnsg4Yce/FchmUixmDkH/OP5hnqOE9JATECVdRxatfVsv3IzUlUVLzUqY8GsCCwtZf05YzNy0Ak8vWobDomDWi0STUEUWvFf/PFFDCkviJsJv+JRnUyEbspheY7gUReoL2omLXqh8MbwXB8xgrEVLhfpwdNECXY8fvOS1w7Y+EDJwJoOYWd/bCwLYLY9zPGE0P+BxrxYcIV1PPBSoDwd+ahB4ZxcP295iGufNnruIUZHk5+rCaak2mY/pv+HDKRg9qLldgHJTuuVD0S58yVwWQR/NiS/zmOxJYkubew1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wDitVsv9ey9jfk8U6j1+CCawDAPGDz1fktxgkXsaYkc=; b=eqHW+oRV3PS2HtqGEGrFy/C4BwPMkduLmeKe1O5+r4gwG0iRPRZhFfUpRtqz/P050ANFmxqiutKxbQakUlhKZmks0jlb9nsLteNQzdAC/2vAcsF+zqJanRL2MnfwTMlW6Ie3JrLezIxNA2t9apkoDyiqbQZejBLJsi+LeQNJbGmjausifcNMhoJCHzgFNc+zHQujP7i3zlxz0kVtP12IzCZ9hmFeOdSyKAb5vzmURUdM2z9isK60MmVe6U9WVOorXW4V2R47EQn2HdovUd9wERMDR4HZUxgCW3b4MoeIBcLYqdRLKZDkaqVVbXn7LMzzMJYSyqeC24DqwRT3HUiBcQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB7667.namprd12.prod.outlook.com (2603:10b6:610:14f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Tue, 21 Jul 2026 11:01:05 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0245.009; Tue, 21 Jul 2026 11:01:05 +0000 From: Alexandre Courbot Date: Tue, 21 Jul 2026 04:00:14 -0700 Subject: [PATCH 5/8] rust: io: register: allow paths for relative register bases Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-registers_fix-v1-5-3711b2317e1f@nvidia.com> References: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> In-Reply-To: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Tamir Duberstein , =?utf-8?q?Onur_=C3=96zkan?= Cc: John Hubbard , Alistair Popple , Timur Tabi , Eliot Courtney , Zhi Wang , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: SI3PR02CA0001.apcprd02.prod.outlook.com (2603:1096:4:295::8) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) 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: CH2PR12MB3990:EE_|CH3PR12MB7667:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a645807-75aa-460a-596a-08dee7175c6d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|11063799006|10067099003|921020|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: +OW7WBh0YrQfaRbT/QymUg4M4VI3qg6mEMblPpXfch5FbkGmr6wyGJltWOgnZawaSSdh/UKeCp02UWJ8e9jslPfSbahOA6c8eHvMhYc70C0mIez3tx5Fu8UtQTUnMmBGlDVpJiIi649BAm/HwkjC/QU6+NPVnm9cqzzmqpXtVN0ie6Aggvw+Sk1q86uZBzVf+aStFOBZ6Zegw3KhUcpdDQKgjL2Pw0IcfMQrtnY2E7/nTRChQ1Zy7uo+lAIILUj69cu8nOOQ6as0Gh6rpmdpbSZD4gzCWAAGkmGmU0BPyhmTNRHURZw7ju4CFxKvQDm5XYqpiwaModcQh2yy5j96mAZ2VGOAmTI2PuZKsN1d8R4vPMNFuMpM3qOT+kfp2ImkbV1vXd0lQ/8R2FjCg244G8Onp5ZdKubFBlIi7w7GyzjTjDGTnDWGp0pFxBFRQ5SAbk4I+E6vRFqXNjbVMXgpqcn5No46dX7/YofL4ClKi/kFSzxft4oYZ/OjNWgMT2vPrys6lMjDxqrxiCSPhCz4H1F+Hq/THO5y7H72WPKetNy6DB62uXIR6dpswsU0NhzmCKWU29rqgvLnh6k1UWTIrW3PaqjoevudEA1ggU4rBrmdnSeUwPtIyyKO1VlCzhfy6JqTDuj3i/udgnXLZs3qSYextiXqGqjX+OZaEtMq+owutDPvXoy7Cj4z9JCKOJlr2qd8DUmEAK/2me6Nlwt5+g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(11063799006)(10067099003)(921020)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cnYxRlREa2s2YlVzbk5JY0NESnEzVFQ3LzNDZnlUdnRDSStiT1RlR09pNGdY?= =?utf-8?B?NS8xOWYrT0I4eVNxTzJPREZYRjlnUFh6WnJUSSs3VHZCMUNqM0docWEyUVpV?= =?utf-8?B?YzI4NVNiSmU4enJhcWIvUlpZK2RzanE1aDdFVFdWMzBBRThGbDZNaUszTEtJ?= =?utf-8?B?SmV4MUNhNWhUb21tNndTd0hKSU9QMG1aUldyR2I1MnA3Mk9DUlN2SEZ1eU9T?= =?utf-8?B?dDZqcWpzb2JXMFBSWTVFMmNUV3NVOTJKcUY4U215aUl4WUtsYll6aWt4RU9m?= =?utf-8?B?dG83L1ZNSC90RGx1V0ZKeS9hMGs4MVZ2eDdCS3owdnZaT01mU3pCVi9IK0RW?= =?utf-8?B?R3dIK2N5a1FVMnhNb1I3b3ArcnRzSDYwb053c1UyZ0NuVldsd21wQTNQbUNV?= =?utf-8?B?QnArdDl0cU9EeFVXYUZkanpsRkhKSmYvcGxqOWhSMUZRYUFHUHBWaVJVS05G?= =?utf-8?B?c015US9wcGs0dDh6YmNHZVQyWTBBWC9tcStKTitBTWszSVhDY0tSYmhTVHBG?= =?utf-8?B?NjJpTWFaemFpSDBaRVBmUW5XcGVDa3BXVjJYYWY0VFAwQ0lhRHBWekpmRCtq?= =?utf-8?B?MEQ5Q3YySkx6M29nRnBscUFUWWxpUGNjNUJGVWNEZjEwdFdCdU9KTWVveGZM?= =?utf-8?B?Ykl2TzRZR1l0WUpjZWFlRmljNGhSVDViQWlhc1BkZXN2VUVRLzExRlUxcnZP?= =?utf-8?B?ZW4vclllU2VBc1N5eXRFejNxeGJXbkFPbWk3UjdZS3pRTjFUc3l6SVNESXM5?= =?utf-8?B?RjRZaXVBcXpHVjRwRWNvTGRkVnlTaW10Y0YrTTVnWmNLYk1BeFc0RGtqRzNP?= =?utf-8?B?RHZGV1JZOE9nVXlQVk1YUXZGZGpScW5lakR4bjNZbGppK3JpNVJMR05SNHdq?= =?utf-8?B?VzdONjBHY0pwMEpFWk9aZWFrUnlzVzYxd2dSd1o0QzVYc1d1UDRkdDVUZVNx?= =?utf-8?B?QTNZdXE0R2Y4TlFLSFpQWjJyWmVOOGVITUQ4dURKR3YxZDhFY1hnQkxxTHda?= =?utf-8?B?YzEwbi9nNGl3ZjhoSjg0enlsTUxzUUNSMlFOZXFkaGpBUGJrdUhIdTFXdDdu?= =?utf-8?B?cWxnKzd2ZDBFL001VjBWME1XSVJNMG1ZVjJBZDlaQWtiN28xRy9QdGEvUUJB?= =?utf-8?B?b2UxSEtMOEJzNjFqdkRodEF3d01YL2tLL3lTQVRabEFZb2Y1UG12YVIwVldj?= =?utf-8?B?dHp5S05JdUhDdHJQa04yN3gvOFNEbjB5ODBwUnJFTS8ybEdxT255aXltUW5F?= =?utf-8?B?d0c2VzAxanc2SGduM1pCaENvYTJKdHBCTGt5Q3RZaXh2V1hDMnA0TWNrYlpQ?= =?utf-8?B?RmdrM21nUElMK3M2UmFBZHI5cldoWS9WNzVudHRBalA0R1V3QmtQQWZGRk03?= =?utf-8?B?cytIWGUrRDg3UzlBdTYxQmpXL0UrWGVSRFJwNU5VMXNTSDdBaDdTRE9pZlMy?= =?utf-8?B?MEVEdU9Yd0xKZ0ZOTkFwNm1TdlQyT1FnYkhHMGhkM2Rxd08wb2p4amh1MnY2?= =?utf-8?B?L0dQMEQwem1EUFIvTmV1clpMYmFxT3JaRjZDZytIK21HTmxYVklMallBYVdJ?= =?utf-8?B?ckNIK2VUZmNKd1VrbG9XSXlZV1lubnozWnh5c3JiTXpVWkxCZ3gvODhDaW5S?= =?utf-8?B?R1RYTGpEbFZYRFBqTFV1ZnpNZVV4QTBpM3JKVDUwN2pEam5iNXYvbmtPVWla?= =?utf-8?B?cm5KVFVlSGc5TDc4Z0NDc29tZmQyb1F3N3NKcFdISlpWZlBpT3NLNGhKejRm?= =?utf-8?B?VlhLNERVbUhyZElMYzR6Wmd0OTcwSHZkSEJBNEc4ZEluN283NzJPUUpGZzFt?= =?utf-8?B?NTZOd2FaUWU0TVZTR09FSllIdHc2eWNac0dNQUIrejcrdkNMMkZzbWlQeWNv?= =?utf-8?B?SUlaNEV1b29CM2Y2RFNQNmQycW1mSzhoVnBSRWIxZHFQVTdIYzNiRGNBMHFS?= =?utf-8?B?TDQ2bUxtZ1djbE15WStuYXJCQkRGZFpvNGZDWDZQek9BY3k0M0wxY0RqSGZ5?= =?utf-8?B?MDZ4bk5rMG9PMG1KV2lBTzdhZlAwTkF4UmhJZ0dNOXRzTFZ3REVaRlRUT1kx?= =?utf-8?B?Z1Y1am9vUnBiR0RRUUZOYlorbHFJeDR0dWRmeXplMS9vYmlXUW9pLzRNTGtH?= =?utf-8?B?a05MYlBkdWtib05YV2RWTXVWVFk4c2F0bUg2bm51eFA2QmVzelMwbWxtVy9C?= =?utf-8?B?bVgra2RVR1dCNWtKbWJYQWk3WXhlK0ZrQzFrOFhvNU5wbXE0OStwMWY2OEJp?= =?utf-8?B?YzRMdFBtNE1hazE4ZFlFRCtlVmlibk0zYkJKK3BiN0VoS1lIaEtLbGQ2bGRU?= =?utf-8?B?YlVNdzFNOElXYnpYaTA3MldJbHBVS3ZTTkhTdURqNFBtaWQzM0VKZz09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a645807-75aa-460a-596a-08dee7175c6d X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2026 11:01:05.8034 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lyAA6qOu2atn8D3SHqoFshSn9EqEhPnbA6ii4IRsknfuYn9GOn6dkRyQrmPr/kR/adkNc4qvCapElPbTJ83u9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7667 Relative register bases are currently matched as `ident` fragments, so bases declared in another module must first be imported into the current scope. Add `Base: Offset` and `Base: Alias` forms whose bases are matched as `path` fragments. A colon is used because macro_rules! does not allow a `path` fragment to be followed by `+`. The old form continues to be accepted temporarily so in-tree users can be converted in subsequent patches. Signed-off-by: Alexandre Courbot --- rust/kernel/io/register.rs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/rust/kernel/io/register.rs b/rust/kernel/io/register.rs index 62208f52752a..4070fabb00f4 100644 --- a/rust/kernel/io/register.rs +++ b/rust/kernel/io/register.rs @@ -801,6 +801,26 @@ fn into_io_op(self) -> (FixedRegisterLoc, T) { /// ``` #[macro_export] macro_rules! register { + // Deprecated `+` syntax for relative registers and their aliases. + ( + $( + $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) + $([ $size:expr $(, stride =3D $stride:expr)? ])? + $(@ $($base:ident +)? $offset:literal)? + $(=3D> $alias:ident $(+ $alias_offset:ty)? $([$alias_idx:e= xpr])? )? + { $($fields:tt)* } + )* + ) =3D> { + $( + $crate::register!( + @reg $(#[$attr])* $vis $name ($storage) $([$size $(, stride = =3D $stride)?])? + $(@ $($base :)? $offset)? + $(=3D> $alias $(: $alias_offset)? $([$alias_idx])? )? + { $($fields)* } + ); + )* + }; + // Entry point for the macro, allowing multiple registers to be define= d in one call. // It matches all possible register declaration patterns to dispatch t= hem to corresponding // `@reg` rule that defines a single register. @@ -808,8 +828,8 @@ macro_rules! register { $( $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) $([ $size:expr $(, stride =3D $stride:expr)? ])? - $(@ $($base:ident +)? $offset:literal)? - $(=3D> $alias:ident $(+ $alias_offset:path)? $([$alias_idx= :expr])? )? + $(@ $($base:path :)? $offset:literal)? + $(=3D> $alias:path $(: $alias_offset:path)? $([$alias_idx:= expr])? )? { $($fields:tt)* } )* ) =3D> { --=20 2.55.0 From nobody Sat Jul 25 00:56:38 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012071.outbound.protection.outlook.com [40.107.209.71]) (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 31244346E51; Tue, 21 Jul 2026 11:01:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631679; cv=fail; b=rbGmXQ2N/EDGCY1dXfg3cTTmh0p2n0uwS5whC1K9lSV3Pez9DuidYkwdhaux7J6qwMBL3Wib68f5Iu84G6htxDbu6saNNE5mkR3pTZTsLSDOQmw+QBltxtNwDUH8vawZyv+mOugrO0BBUXJBQ3twzhqV92L4MBQ+3bmzpaPXi5k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631679; c=relaxed/simple; bh=eAgS3Y+aS81BvCwnjCbOdxJ/j9POF+UDIWcdM3lf8sQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=YF30aX+3cOWccQoZqRZuPFBPN4Y6FGeZPOBIkZQxDLOlEU4xXXjuX0V2I5cxKr2NqwFFvt44zeMiJDEPhwrYuSnkV8bpLZLrXjwrhS5iHrjWJF7+bwB1+vP2z4Bz7+idBKB8Lc/N+/oHvU3Fhl5G8howeIGMkKpH0NTWs2Y/ziQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ST93bLG2; arc=fail smtp.client-ip=40.107.209.71 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ST93bLG2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=obGR8xw6mjkdlVrtgUKjShiayokoy7vd3+Pd8ohGrRsWZ5yAPFWexgDPKRtpqAcHrS6kXfsbVYGiXjcYj7lv3PXLJ6f2hJ4PAlcgVB2pjgZTixzVqL7dbWsFckDpdkqqoSP2aLrYCwX6/uJgFq/s+kTIGpEaPPjhsa/czW3VWxK83wSag2qYvFopEWTRNDnvT8g/28HL4sWnuAOIAUfjabF5OVbps8VwTBHq1oLN37TOChjDdls4MbRJjSZdHVrjP7+9SMHlXKzRh6tKgOl2ELE2ZwLQzjv9gPSBZmTkKH4qD3wk9dVxVx4bVNb8HmwP4d43tn7tLdj6CrV5syIa9A== 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=wiIXc3wRV0bBy7/4f+ir2NnrA7JRfyv0NDCWqXY2CL0=; b=d0WH2wNy9QBrkS16Hu35Ptwclpi6xVcZ9K3F6qLUOQGjjAkSXVh3s37c0UIjb9Yaf5t1dgiBdbBZs7cttAIaVmM02vNX+SMk4/eK9AIO/CDTrg5DlM/nambqmsHJyOHLyhnrEw7dohGNxfd/XLWarOyEcO84+m3XPH6npOYyS1ORfDvHWKVfs8a1t7e2g3U4qSA3v3ZH9rufE20dXwwP7/L1e4kR2TnNIWK7vXFvckosaPopYfugXeeL48asadT8sD34WSlo/7AE/lGidbfrFn05a2SCKNeGzk76USDEY8UiWHNDVa9+HMYpZ8wqMuTDi8aXl+dtQECouH2zVbpsAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wiIXc3wRV0bBy7/4f+ir2NnrA7JRfyv0NDCWqXY2CL0=; b=ST93bLG2HecX3tz75D/b0Stfr3j5ExQ+kRTgCBWYqB2b+wqdfM5LVOjlnCnH2QFYTBftoy9dJI/4dt5qe7bEbmhj3TQ77aTPxeiXFzUYRSLEh+8E7Z9srJwYcYcp4RRYbhI4ckrS0tJ2n4A+qL/O7K1U0rN/qhLlzMcNGGnST7Tmdbu34qeV3nuidkEESEMkAz04wsPbQnO9jQFjqyQoFcc1aBIGZLBihjgOBNn7sYgJ/+2tJd+28uKnu7hEi/ysmzPkiD52SlR5uFZETghtSPDE6CuF3VUwZtLM7JvEPgmrNvVzhhImEk5/oQcIZ+0IbMeUaNOPN23afhUZ+YnGKQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB7667.namprd12.prod.outlook.com (2603:10b6:610:14f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Tue, 21 Jul 2026 11:01:12 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0245.009; Tue, 21 Jul 2026 11:01:12 +0000 From: Alexandre Courbot Date: Tue, 21 Jul 2026 04:00:15 -0700 Subject: [PATCH 6/8] rust: io: register: use new relative base syntax in doc and examples Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-registers_fix-v1-6-3711b2317e1f@nvidia.com> References: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> In-Reply-To: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Tamir Duberstein , =?utf-8?q?Onur_=C3=96zkan?= Cc: John Hubbard , Alistair Popple , Timur Tabi , Eliot Courtney , Zhi Wang , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: SI2PR01CA0015.apcprd01.prod.exchangelabs.com (2603:1096:4:191::15) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) 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: CH2PR12MB3990:EE_|CH3PR12MB7667:EE_ X-MS-Office365-Filtering-Correlation-Id: ae3cf7f3-e69e-43de-4c2e-08dee7176029 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|11063799006|10067099003|921020|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 54KKaLRQPMRcfJTsPbdVGxw4imMAv5M3wGQQx3TvHK0S45mLT/JgujOJ4uNxdmavXBX47tmK73yd7Sbcb5OIbzBheuMm7AnKSbR5OFaurTHvyL3/JLHgh7fATtAROmFxItrXr2rECokzIuDEJgZA1uouMfGB/lz01Jr0HpuZInG7IWGt4FdFonQ3uz3tTStbIu4pzB6sqQmhOH1PVK2GqYo6HSoYp1kcxPP3dmKFZToOLN1hfN35R7znq0L+NlKYHEr2DcY8wREc3xT/6tc93N7Y0FECFKPmgIpjlD3N5pUvYpmq9WJ//woCo49hJ8HA8MeJ7E5iJiCnwnloeb6y9aOY0tbNNOnOf2mR8EQfFCFnuSgtr9Tzypw674okKJ7u4UGajGBhOq5RWwXeqzVufcn0Ua7yM12mbEj1FJ+FeUOJSuVOAgVFvFduotoLq51kBw8CVnEKm70yc62xwCwgk/UdZzO84X0YQ8L2iqUMW06Pnjuu8Aba7N0pclckOX/rL7QrO4RNLG0Vxu3/dYjziP2rKiVRQN/cE884VXAXvfFpOPw7DKJrGCM9kCLsjbi1wpR9uk0i9/ZNDnREu2lY8piiGLUUJ61o0+ouCgQUvtaW7KblW2kpfvA+N0Y5kKz4uaND2NwybsHTLMdhUAkc9jQtSN9aPUMMqOtZ/w7DCf0rUI42p82nMGFBtbrp6Yq278kn6/nbycHGP3m+FHVXcw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(11063799006)(10067099003)(921020)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c3lGbDhCQTBmM1gvcVZkVGFTWDRxRXVLdnpheVRKNU5oUzlEalgvcm8wZ0RW?= =?utf-8?B?TXNjVElIcXlEVUZ1Qy8zNjI4Y0hMdE96Q2ptWTB2VHlWZmNrRDNiQkwwSkR2?= =?utf-8?B?TXJLVHFWQ2kzT2hWaTJKb2RnOEVYUVlzaVBCMUJCVXlLYW5VMlJrcG01Z1pO?= =?utf-8?B?WjhyRWdYYXpwQWxRTUdnRVkxRFV3ZXRTa3VLQktaMm5lMm5ON3d2cjM5WEtD?= =?utf-8?B?c1hXUHlwY2FVZGdzMkZ2NHhpVHVjVHIwbjlOd0NFcVEzdEw2MDlTM1l2WEo1?= =?utf-8?B?U2drVW1Cd0FJc25CYTBNN3dwaE1TWkhQNCtCVUhjcWhnZHlXenY0TjJDTXVW?= =?utf-8?B?bzlzU0QzaFlLWHdTeXNmYmlZTU5FSlliMERxUW9qMVhncEFnTXlYZVFEa09V?= =?utf-8?B?Nm5NWGxQS05DQzhwZ3ZCOFJpM2NSV3dCQXNsNjkrbTFZM2xaSFJCbGRJV0xZ?= =?utf-8?B?YnNLLzhXbUlFT3ZSdTJzWmxIOTZxbzZxUWgwQWdQZ3V4TlErakw3VCtLSWdi?= =?utf-8?B?dVJiVm9PTWdMUVlSWG1JTmZlcTdrWENyR0x2MERmdHhpazNwUFVJdFZtZC9C?= =?utf-8?B?Z0QzUWdBMWV3cEdQY2g4QmgwSXFtNVQxZkFTUkdWWU0xanZBUmlXeXczTjd5?= =?utf-8?B?UGQzdVk4Y2VqY3B6SXpIVFY1K2RPd3pkYjkyUzlGQVM1TUVXb2ZPcXhyUUI1?= =?utf-8?B?MlpCTThXQ25kem5peHVtK0lTV3V3ODZXaEU4S04wd2xjemhuWjc0YVoreFh5?= =?utf-8?B?YmNzYmpENEJrQ0FyOXJocHJrQktVZ3JjY0dEay9xb0pHam1waklFK1VyR2w2?= =?utf-8?B?YmRTWGQ2Z2ErQWthS3crSGxOWEgrZCsxcGVMUUR6TkpRVzRCUUtsemx3T0la?= =?utf-8?B?SExEZWlGS0h2aE4vVkdsT0l6bE1jMGZSQm5lWE9BQXpEdldBUEdkUnZwbFdW?= =?utf-8?B?UVZtdi9UYUVlWkIvdlBXTnplRUZBcWVNZW5rVzM1QWhFZXUzRElOYXZkd2o3?= =?utf-8?B?Y3RneENURjVKY0llbnlEQXk4ZW1wSUNpVVJBTEUweXJGNDV5ZXMwb3F5R21Q?= =?utf-8?B?b2RGQ0FYei9TcE4zaVlVOXNiWmZMdE9GOEVnNEtEZXA5eWkxRkZ0VkdQdlVH?= =?utf-8?B?aUt4K0ZHSmV4a3B5NWhkWUw3NTI2eXJYcWUwNXcxRFFwNzV5VWZGNkkzcWRz?= =?utf-8?B?R3lpL1orM0JVb0l5c08wZkR5dGNDY1JTdktvcGpCeDNCQjZkaFFyQ3J4UVY1?= =?utf-8?B?TU9Ybzl1SmRlbWVwNER5MTVFNzFKR3hJV291KzRGdUJ6VEpLVWNWaWdZZHYy?= =?utf-8?B?ZGhvTTN4Lzhmb081ekNhNk1BR0c1aFRGWVZJN2tlMzdpMUNCRGZhMVZQRW1i?= =?utf-8?B?OTVyOVhHcDdTQlo5SXc4QWl4TDF3TlJQNTRaS0orRXZDMm5vZVA4TVhPelEy?= =?utf-8?B?QXJncnc0cXNtYTBDTkRKeFhqcG9hNDhDazJXZDBKVmVBaEMrVVQ4NVY4Yi9v?= =?utf-8?B?aE1rQTFQOUpNcThKZG9KUnE1eUFFMUI2S2dyWVFvZm9kUFozRG9kaHl2R3pJ?= =?utf-8?B?Q0UvUzJSWjhkVnJuaGp4ejZUN3g4OXJ1U2hwTjRRSmF3ODBHRkFNZERJc0o5?= =?utf-8?B?VTZQcFNnc1p0V0N2YVJFL0ZMUzQ5U254RVYvbmZ3Y1ZwY3YrNU4rQmxxL1Uw?= =?utf-8?B?b2ozVzUvNkFYRzVaNXNDZkZEQlIzcDJjZWt1d0h1amZUQmFibWIwdWJ3dkdL?= =?utf-8?B?UVorUlppbXFMLzgzbi9WRXc1NG5wb0hqUDlZVFBHYXNOeWoxN3ZTbFlXcHNq?= =?utf-8?B?dnY1dkcwV2pVVFVzRTZoU1F2Tm1zZFJsTW5DOUVJVG1Fb1QydWw5THBYSlV3?= =?utf-8?B?WkdsdTlaRElUWDdJbksvODQzRko1UDU3ZXI5T0x1MndZZVpGZnNWL0hWVkdw?= =?utf-8?B?M1EyTGIyeExDRDJGZWtPZ1VhOHpTUjBocHNCcDhXbFRpT0xJYUdsOEJia3V0?= =?utf-8?B?WHdGNXFWbnJVVGVlMUpFaW9KRHoyYmlVYzAzZTFTdzRva01mS1dHcFQ4MTFH?= =?utf-8?B?elJQUU5LelhLY0hIRExTQlRNeTdxN1hXam1wSklRbmVZcE9Gc1E1aFpaenNo?= =?utf-8?B?aC9RdFR2ajJ0MW5uUmFybUs2ejV6VjVEeEV1SVUwOGlmY0JBdFNTZDhmYXFp?= =?utf-8?B?bEJqNTNmN3M4NzA3Sk9TL3drUkdlT2RudEp6S1ExdWxNcjFENzg5cHNOQTVY?= =?utf-8?B?c05IQ3IzdjhEcTlTcDZjZi94R25vb2ZCOGd6eWg1U0IvUzFEd3FHSlF4SnBJ?= =?utf-8?B?K0tlU0lUTitlSUtuTFd3TDdsRHAvUXFrbWtSQjRIaGJHU1Nha2VWZz09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ae3cf7f3-e69e-43de-4c2e-08dee7176029 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2026 11:01:12.0195 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2bLeUtJYvO+cWAQenVdwt9acBQw4dydrd58ITElYsORPCiChpheLmkSfhUbFOhVjvdcnznw7YB4rDznrx5W0Wg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7667 Convert the documentation and examples to use the new `Base:` syntax to specify relative registers bases. Signed-off-by: Alexandre Courbot --- rust/kernel/io/register.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/rust/kernel/io/register.rs b/rust/kernel/io/register.rs index 4070fabb00f4..eeb7f859f8b9 100644 --- a/rust/kernel/io/register.rs +++ b/rust/kernel/io/register.rs @@ -527,11 +527,11 @@ fn into_io_op(self) -> (FixedRegisterLoc, T) { /// space segment. Since both instances of `CPU_CTL` share the same layout= , we don't want to define /// them twice and would prefer a way to select which one to use from a si= ngle definition. /// -/// This can be done using the `Base + Offset` syntax when specifying the = register's address: +/// This can be done using the `Base: Offset` syntax when specifying the r= egister's address: /// /// ```ignore /// register! { -/// pub RELATIVE_REG(u32) @ Base + 0x80 { +/// pub RELATIVE_REG(u32) @ Base: 0x80 { /// ... /// } /// } @@ -579,7 +579,7 @@ fn into_io_op(self) -> (FixedRegisterLoc, T) { /// // This makes `CPU_CTL` accessible from all implementors of `RegisterB= ase`. /// register! { /// /// CPU core control. -/// pub CPU_CTL(u32) @ CpuCtlBase + 0x10 { +/// pub CPU_CTL(u32) @ CpuCtlBase: 0x10 { /// 0:0 start; /// } /// } @@ -595,7 +595,7 @@ fn into_io_op(self) -> (FixedRegisterLoc, T) { /// // Aliases can also be defined for relative register. /// register! { /// /// Alias to CPU core control. -/// pub CPU_CTL_ALIAS(u32) =3D> CpuCtlBase + CPU_CTL { +/// pub CPU_CTL_ALIAS(u32) =3D> CpuCtlBase: CPU_CTL { /// /// Start the aliased CPU core. /// 1:1 alias_start; /// } @@ -703,7 +703,7 @@ fn into_io_op(self) -> (FixedRegisterLoc, T) { /// /// ```ignore /// register! { -/// pub RELATIVE_REGISTER_ARRAY(u8)[10, stride =3D 4] @ Base + 0x100 { +/// pub RELATIVE_REGISTER_ARRAY(u8)[10, stride =3D 4] @ Base: 0x100 { /// ... /// } /// } @@ -747,7 +747,7 @@ fn into_io_op(self) -> (FixedRegisterLoc, T) { /// // 64 per-cpu scratch registers, arranged as a contiguous array. /// register! { /// /// Per-CPU scratch registers. -/// pub CPU_SCRATCH(u32)[64] @ CpuCtlBase + 0x00000080 { +/// pub CPU_SCRATCH(u32)[64] @ CpuCtlBase: 0x00000080 { /// 31:0 value; /// } /// } @@ -774,7 +774,7 @@ fn into_io_op(self) -> (FixedRegisterLoc, T) { /// // Alias to `SCRATCH[8]` used to convey the firmware exit code. /// register! { /// /// Per-CPU firmware exit status code. -/// pub CPU_FIRMWARE_STATUS(u32) =3D> CpuCtlBase + CPU_SCRATCH[8] { +/// pub CPU_FIRMWARE_STATUS(u32) =3D> CpuCtlBase: CPU_SCRATCH[8] { /// 7:0 status; /// } /// } @@ -784,12 +784,12 @@ fn into_io_op(self) -> (FixedRegisterLoc, T) { /// // registers of the two declarations below are interleaved. /// register! { /// /// Scratch registers bank 0. -/// pub CPU_SCRATCH_INTERLEAVED_0(u32)[16, stride =3D 8] @ CpuCtlBase = + 0x00000d00 { +/// pub CPU_SCRATCH_INTERLEAVED_0(u32)[16, stride =3D 8] @ CpuCtlBase:= 0x00000d00 { /// 31:0 value; /// } /// /// /// Scratch registers bank 1. -/// pub CPU_SCRATCH_INTERLEAVED_1(u32)[16, stride =3D 8] @ CpuCtlBase = + 0x00000d04 { +/// pub CPU_SCRATCH_INTERLEAVED_1(u32)[16, stride =3D 8] @ CpuCtlBase:= 0x00000d04 { /// 31:0 value; /// } /// } --=20 2.55.0 From nobody Sat Jul 25 00:56:38 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010001.outbound.protection.outlook.com [52.101.193.1]) (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 6D3CE390986; Tue, 21 Jul 2026 11:01:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.1 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631685; cv=fail; b=orp6YauuDOJ/Clo/e8UWoayMalLf13EaZcG+pzWd00NwxtwtBqjmJqvzFX+XjZIY5YxFe//DaOPxwixPW5zvVkJ9q8L+7YdrFECnwNMApSS0ior41/SIIiIN1R3ZbCV/nWaUT1Fj6OjMu5XJbx5mlqVqj0m3hzUTdfeEZvnM56M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631685; c=relaxed/simple; bh=gxta1MSonV6u6Dnft51mQwieobujorWDGq1oqLhm0lQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=DpKhpDEkrEpAaPcsy3muo9tirxxtz1/L0YgPBcpJRvjFQhMA/NLx7Wv+q89skycdqWIi4GXH+fTxqUt2NJoaDP8nD02UbItlr/bA0UjGtMWUmYP2VLsxg0BI2k/B0+I4YzCcjgv+BbpJoea4s/ZASWkHafyOTcrztNwbxoSUw7Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=rV1gnc0A; arc=fail smtp.client-ip=52.101.193.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="rV1gnc0A" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MVt2yMmMFMNQUgaWEv0cj974zPpJGgu5RpFrXTCIcu7r/pB0FCwCZjENnnSp+2D+1ETiwch8Qmop5XLl9t9lK7p8QdiUK810KIkuRTQm6EzOj68ljfnFta2qlnh7Rzs1QRdmOpQn9FV0eKTMcNZ2TMPnt/P7FxUl7vJmQlx39s/lprFV/VLSoaZPRE8wPNro5hbhkwdz68Xp87gEQ5HsIuZOF+VbZxRV6qjLJaCt93y+sA6f5ZtDGxy6qJDVOSqHevIDHD2JS7cBmIbaEnQsIfmHcPVsUINFsANGjBF4eLhYj34NDPRenwPikQhWAxcgYYgIxBAO6qpISS8iDjl2SA== 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=K0uH93Hmn6DG86otbDsoaCULddw9unWdF6WEYZa6fUY=; b=NJpNb5NAy5NtkYNmlLNEVs0l1IXQ4qKQUghcHSIisNgoWMVrX/rCDUFaiC7wNMVAEvVNtkpaD276HDI/ggzhaZaKiF+F/CJSlxzb9Aq7mTe4croHXC8Vyaur3MoeVSLr9LsPG+yJ4zr7ecChXN/rXwpa8iKQTfkliYrwrBmX95NAOUSrfNvj6FTKpWFI1FhODMghySHRY4XkOYEZc+ptLc2bzvVuZmX4ShJv1bwjcB+H34ZtNeIEhP3RwLR/vwFcOAEBY0KDex3jZvPomY1kHULlOW5oUD+2WXxR3czt9HsmGP9eIJGiBUQmdx+q8lllEJSvU4Sv75vhZkaxg6YKxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K0uH93Hmn6DG86otbDsoaCULddw9unWdF6WEYZa6fUY=; b=rV1gnc0AOUYdKkHN6xBJn/27CKAp3ef+1ct3aHpWVSEX3gKRm7tCIIo2V1Z4rjTVnG3DbUNC6Zvj4PtQ2Jqad0JG3ymOXCDbdExS4ggf4xKWOcLCshl+wIxtho3F5PfMyM3eI3WWjV6UF9EaWGyrlTnxSKLSlH+VSmnLsPNy4a8ZyUJIQH92v3TSKGG3W01T42U9qtCU6Ozz/dtMh8r7golZlWPkdBuztNKc6oBlsgJs3RcBETQ6Cxq0dwoebiV2ebXXA4xzkUqRXHvEd+GRxmBPwA/rpt0viWT7NcLSEE0yYwJPfr7XjJhKXFqsiHeqCD+VII/hzbIFQjNSfZ4NXw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB7667.namprd12.prod.outlook.com (2603:10b6:610:14f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Tue, 21 Jul 2026 11:01:17 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0245.009; Tue, 21 Jul 2026 11:01:17 +0000 From: Alexandre Courbot Date: Tue, 21 Jul 2026 04:00:16 -0700 Subject: [PATCH 7/8] gpu: nova-core: convert relative registers to new syntax Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-registers_fix-v1-7-3711b2317e1f@nvidia.com> References: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> In-Reply-To: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Tamir Duberstein , =?utf-8?q?Onur_=C3=96zkan?= Cc: John Hubbard , Alistair Popple , Timur Tabi , Eliot Courtney , Zhi Wang , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: SI3PR02CA0007.apcprd02.prod.outlook.com (2603:1096:4:295::9) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) 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: CH2PR12MB3990:EE_|CH3PR12MB7667:EE_ X-MS-Office365-Filtering-Correlation-Id: 3401be1f-432c-460c-99ef-08dee717638e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|11063799006|10067099003|921020|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: k/WBjrljg5b/sD4zzNtut8yHDlVmfBtaPMUvlbXT/5BfWZguWNGwhEdkHn2f933s2dlE9CEq+l25QKtEXsLaavINMlzmTf5EfEpR/3WyB2OOQWJb2H6TUISGsiWM/1+R6eUZo/FOeW54Qo96CpmcQ50Gf3N3Uq49bdUBaEbzPsOLqS16mnUDIvJDUB2BafGGzNLuSPOSf2+vD8PY7MpmvXr/1djCKcnW0kcfsYU4pQ7vR1FCGxw9BIm4p9IignNK8ohQSwgUUxmY7ErI0qgvCIhbniEHFEw9a+pyHd4kdFRoMrWxnw7HQqBuW+8Iv22jOAFXWA50xMddo5gjQ/fMx/L75Sl2PHKbDIPGTUPt66754NIaHnBGO9UH0AHwOiIDJ63bcgp3PVhFNHbjuVqHOjFmeEVOLWtqPxJuZNpElTuaz6xL0NeLeh3H2VjvXt08nKKA3pVKo5AUEOB5SNMtcBZSQ2rMuoSXm0xBk/DAliP8zll0JRh/c7hqsI3E8Nk0bh8M9a57yMaGvRRpzzKW+9nhsyWEFH0xw3RDrpTwNihpkPWDGvPq8tjGkGO4JfZaGHLUVoz5hLDBztcq7b6ceQHsXGLNPGbeuJ3U/SrFYEu15Fv3j1VOtNZ6L2At9fcDjxVbp+OSW/vAecgere9bFCNAm4g292msjBBFKUmrrX2wZ9mJ5KxsvC4IuS0lqoZor6UsRy34lICiO7XK9ziTBw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(11063799006)(10067099003)(921020)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bFdZY0k0RFlUc0NSMXBiRHg0MnpaaVIzUmRUdlNrbGxtWjlnSUlsOXFDdFFU?= =?utf-8?B?Y3pOWXFGdDg3Z09mbFRldVhUVDRGVkY3ckxGcnRPVEF1cm5NZUhNekxIa3E1?= =?utf-8?B?dU5rQUlyRmVXeWdaOUlrM3N6U09UczJNREY4K21xZnpLNUxDejQzMitJZVFN?= =?utf-8?B?ZXQxa0x4QjJKVjV0QUlVUFFWK3J6aU9QQmsvKzQ4N1ZiZ0hjQXQ5UUNtNzNH?= =?utf-8?B?dG4xa2ZMSkpMdHFTVGE0R01sVnJXQm5Ham1RbjBwOEpyQmtrNjU5ckZ3dGhp?= =?utf-8?B?eEtudC9MQmFISTExMTByRzB6TnJEZDk4K1cxL1lvdjBmRTFiVVM2VzVISjBs?= =?utf-8?B?dzMwbVNFRWtWSllzNkR1ZTZVcVdiekczeFlRNDBFMTYrMWtPV0ZoV1ltOURn?= =?utf-8?B?RldIMlVGY0h0YUxmTXlBWDZTZkRITHltUWJJaW82QUE4b2RmVG02dmo2alRx?= =?utf-8?B?VkpQdm9CdDJnWWNFM3AzTGo4SXMwOWVySHVyUVRMMGJISHRqNFE3MlhhdHhI?= =?utf-8?B?ZnRraXZhTjI2ZHlMQUMrOEVQUG0vdk9SNk1GekJwS1VzOHltS0RCWllVbm5N?= =?utf-8?B?aFJoK0w0SzV6d3pqekNpWThUYUN5Yys2M3habm1qSXVYWUNjVWJDd3pPcGVt?= =?utf-8?B?dG5aTThQRE93cFVEZm5GbVQwV2RzaGVhMWFmdzJnN3lxUWJqRXRDYWJENkZF?= =?utf-8?B?YmR2NnpLZlNxMDlyeER0T2JMTWZ1a3RxaUNzTXY1a1VVVVZOTnhXd3VnSmlV?= =?utf-8?B?c0pBZXNoYysybVA3T0huWVRveHB4Y3RvT0ZXOVc0R0VvYUc5ZXVybi9FOWsx?= =?utf-8?B?dzZZNWkxbU1pQUtGRFA2TGZtc1dkbnRPQzNRdExDd1o0OHo0THBBWU1ScjBR?= =?utf-8?B?RlB1NEZYeUhRR1lBdHg2aTFVRDBJNkRNUkJ3cmtiNlBpdG5yZ0pWMi9MWU1H?= =?utf-8?B?UUtlQUNaYlhyQXNRSEI4MmFkVWFoWU1STTd5WTVmYjF5Vk5aUmlBR3E3b0tV?= =?utf-8?B?MjlBR3pLWk9mT3oyRExtZHluVXdYWitmUzVCbWJIdm5UUjNKRm54SlQrZUV1?= =?utf-8?B?WE5GNGUyUnBKSEhqNStCeHVqdlE1U2VVeTNmS3JkZXh1WkVjMFpDUFNSL2ly?= =?utf-8?B?S1Q5aVpNQlphc0JtZlg1eUdYTlc0TXBKWitzOFRHbU94Z1BNWHAxcUdoUXFK?= =?utf-8?B?bWhuMjJLQ3pXcDJNK3Y0MFZ1SnFYdzJ0eEtJUC9CNXlDSktGOUZCVmFhQm1k?= =?utf-8?B?dTc5dWUxbEpTbUxtS0tWZ0tUNHErQjRTdmxONmtDMVNqSWhHS3FJd0VWM1JN?= =?utf-8?B?eGFWdkFrVEc4cUk4dnlpK1JQMmlDZmY5UmpjNWFuUkxoNVdwcTl1a1Q0a3pY?= =?utf-8?B?cWtybVdYLzJ4TkhnSy84cXRwYVZ5TFZkVE1yUCtyZWlXMlJTRHhSeEp1U3Vh?= =?utf-8?B?OFU3RUhveGZYR1dVTWs4V3NNK041emladnhCd0RhNi9zcWRlUDVGeU5yVVZD?= =?utf-8?B?LzA0bHFxSUZ2T2N4Y2VveFlMQUZSZHk1d0djakNtSXhIR3dnNW9aRytOTkxk?= =?utf-8?B?U2RWV0Q4cWwrc0hlQ2EvLzdHeU4rRHlNd2FYT0Z0UmUxNXVuUHhxVGxFSFJp?= =?utf-8?B?L1FXUHhEbUMwZy9xMTE3RTk2dkFuS2d5Wm91SUZKRmtaUjFTcmY1R3FacU43?= =?utf-8?B?YUtoSGY1L0ZVMnkxSWR4ZGI1UjVlNjZDQmMzdEtJY2pOMlFZRG1FMk83aXhh?= =?utf-8?B?Y1RmSFh0czU4RkI1Q29QSmRyRmVVNGZ3aG5ubEsxVXd1KzZISHRnV1oxdkVh?= =?utf-8?B?cUQ2WVV5UzBpcXA4L2tYbXhVRTRtZHI3OGlxRFRlaUZFRVhhSm9RY0FzUndN?= =?utf-8?B?YnZla0Y3bHhwd1pkY0tvbGFScDF6NnRWSGN1WFpwRUd3ZFo0b2RTbXJtZ1NN?= =?utf-8?B?ZjVTWUhBSlN6eExPRXgweFdmU1NvVG1HZlMzUDltM1c3dVd1MTdWTDVPSU9J?= =?utf-8?B?cmc1eG96MnordUpsQXJ5cjhnWUx1Rk9Ebm1OeVhsckF0VWc5RVpNRS8rdmcr?= =?utf-8?B?bHoyZ3F5alplVEpqYyswQU1ta3htd0NJZzdacjhqeEk5bUhGMHVqOVRITnZS?= =?utf-8?B?OHVqajJhQ0g4WEUzU2lrU1RGVTNWeEtjbDVoRG5aMG5Uc29oWVQxNFRRTUZi?= =?utf-8?B?SzJzTU92dEhZUit0bFNsNjJpeGZxekxabzB6YnJsdGVTcFJnU1pqZkNkOWlh?= =?utf-8?B?cVBBeXJINEFqTWROaS9JdnZLRnRKSm93bUtKUlJPNHRsUkR1VTBBNk5hR3Ry?= =?utf-8?B?cDZaUmF3S2FpMWl3NzA2bVBwTXFuRnNmc2hUelU5YzFPTXNLMXJUdz09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3401be1f-432c-460c-99ef-08dee717638e X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2026 11:01:17.5745 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0BA3wQNvqOHGfqYgfHiYxApK8omAeSDp0GleS6Ds2dWTg5VtJF4KidYSM0shVQarPGAGwQD8LomMQKuGjVoF2w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7667 Convert all relative registers declarations to use the new `Base:` syntax. Signed-off-by: Alexandre Courbot --- drivers/gpu/nova-core/regs.rs | 74 +++++++++++++++++++++------------------= ---- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/nova-core/regs.rs b/drivers/gpu/nova-core/regs.rs index 397124f245ee..744c6087220e 100644 --- a/drivers/gpu/nova-core/regs.rs +++ b/drivers/gpu/nova-core/regs.rs @@ -158,19 +158,19 @@ fn fmt(&self, f: &mut kernel::fmt::Formatter<'_>) -> = kernel::fmt::Result { // through a primary and an EG (egress) pair that must both be program= med to the same // address. Hardware ignores bits 7:0 of each LO register. The boot pa= th uses a fixed // HSHUB0 base, so the multiple runtime-discovered HSHUB bases are not= needed here. - pub(crate) NV_PFB_HSHUB_PCIE_FLUSH_SYSMEM_ADDR_LO(u32) @ Hshub0Base + = 0x00000e50 { + pub(crate) NV_PFB_HSHUB_PCIE_FLUSH_SYSMEM_ADDR_LO(u32) @ Hshub0Base: 0= x00000e50 { 31:0 adr =3D> u32; } =20 - pub(crate) NV_PFB_HSHUB_PCIE_FLUSH_SYSMEM_ADDR_HI(u32) @ Hshub0Base + = 0x00000e54 { + pub(crate) NV_PFB_HSHUB_PCIE_FLUSH_SYSMEM_ADDR_HI(u32) @ Hshub0Base: 0= x00000e54 { 19:0 adr; } =20 - pub(crate) NV_PFB_HSHUB_EG_PCIE_FLUSH_SYSMEM_ADDR_LO(u32) @ Hshub0Base= + 0x000006c0 { + pub(crate) NV_PFB_HSHUB_EG_PCIE_FLUSH_SYSMEM_ADDR_LO(u32) @ Hshub0Base= : 0x000006c0 { 31:0 adr =3D> u32; } =20 - pub(crate) NV_PFB_HSHUB_EG_PCIE_FLUSH_SYSMEM_ADDR_HI(u32) @ Hshub0Base= + 0x000006c4 { + pub(crate) NV_PFB_HSHUB_EG_PCIE_FLUSH_SYSMEM_ADDR_HI(u32) @ Hshub0Base= : 0x000006c4 { 19:0 adr; } } @@ -323,30 +323,30 @@ pub(crate) fn usable_fb_size(self) -> u64 { // PFALCON =20 register! { - pub(crate) NV_PFALCON_FALCON_IRQSCLR(u32) @ PFalconBase + 0x00000004 { + pub(crate) NV_PFALCON_FALCON_IRQSCLR(u32) @ PFalconBase: 0x00000004 { 6:6 swgen0 =3D> bool; 4:4 halt =3D> bool; } =20 - pub(crate) NV_PFALCON_FALCON_MAILBOX0(u32) @ PFalconBase + 0x00000040 { + pub(crate) NV_PFALCON_FALCON_MAILBOX0(u32) @ PFalconBase: 0x00000040 { 31:0 value =3D> u32; } =20 - pub(crate) NV_PFALCON_FALCON_MAILBOX1(u32) @ PFalconBase + 0x00000044 { + pub(crate) NV_PFALCON_FALCON_MAILBOX1(u32) @ PFalconBase: 0x00000044 { 31:0 value =3D> u32; } =20 /// Used to store version information about the firmware running /// on the Falcon processor. - pub(crate) NV_PFALCON_FALCON_OS(u32) @ PFalconBase + 0x00000080 { + pub(crate) NV_PFALCON_FALCON_OS(u32) @ PFalconBase: 0x00000080 { 31:0 value =3D> u32; } =20 - pub(crate) NV_PFALCON_FALCON_RM(u32) @ PFalconBase + 0x00000084 { + pub(crate) NV_PFALCON_FALCON_RM(u32) @ PFalconBase: 0x00000084 { 31:0 value =3D> u32; } =20 - pub(crate) NV_PFALCON_FALCON_HWCFG2(u32) @ PFalconBase + 0x000000f4 { + pub(crate) NV_PFALCON_FALCON_HWCFG2(u32) @ PFalconBase: 0x000000f4 { /// Signal indicating that reset is completed (GA102+). 31:31 reset_ready =3D> bool; /// RISC-V branch privilege lockdown bit. @@ -356,17 +356,17 @@ pub(crate) fn usable_fb_size(self) -> u64 { 10:10 riscv =3D> bool; } =20 - pub(crate) NV_PFALCON_FALCON_CPUCTL(u32) @ PFalconBase + 0x00000100 { + pub(crate) NV_PFALCON_FALCON_CPUCTL(u32) @ PFalconBase: 0x00000100 { 6:6 alias_en =3D> bool; 4:4 halted =3D> bool; 1:1 startcpu =3D> bool; } =20 - pub(crate) NV_PFALCON_FALCON_BOOTVEC(u32) @ PFalconBase + 0x00000104 { + pub(crate) NV_PFALCON_FALCON_BOOTVEC(u32) @ PFalconBase: 0x00000104 { 31:0 value =3D> u32; } =20 - pub(crate) NV_PFALCON_FALCON_DMACTL(u32) @ PFalconBase + 0x0000010c { + pub(crate) NV_PFALCON_FALCON_DMACTL(u32) @ PFalconBase: 0x0000010c { 7:7 secure_stat =3D> bool; 6:3 dmaq_num; 2:2 imem_scrubbing =3D> bool; @@ -374,15 +374,15 @@ pub(crate) fn usable_fb_size(self) -> u64 { 0:0 require_ctx =3D> bool; } =20 - pub(crate) NV_PFALCON_FALCON_DMATRFBASE(u32) @ PFalconBase + 0x0000011= 0 { + pub(crate) NV_PFALCON_FALCON_DMATRFBASE(u32) @ PFalconBase: 0x00000110= { 31:0 base =3D> u32; } =20 - pub(crate) NV_PFALCON_FALCON_DMATRFMOFFS(u32) @ PFalconBase + 0x000001= 14 { + pub(crate) NV_PFALCON_FALCON_DMATRFMOFFS(u32) @ PFalconBase: 0x0000011= 4 { 23:0 offs; } =20 - pub(crate) NV_PFALCON_FALCON_DMATRFCMD(u32) @ PFalconBase + 0x00000118= { + pub(crate) NV_PFALCON_FALCON_DMATRFCMD(u32) @ PFalconBase: 0x00000118 { 16:16 set_dmtag; 14:12 ctxdma; 10:8 size ?=3D> DmaTrfCmdSize; @@ -393,15 +393,15 @@ pub(crate) fn usable_fb_size(self) -> u64 { 0:0 full =3D> bool; } =20 - pub(crate) NV_PFALCON_FALCON_DMATRFFBOFFS(u32) @ PFalconBase + 0x00000= 11c { + pub(crate) NV_PFALCON_FALCON_DMATRFFBOFFS(u32) @ PFalconBase: 0x000001= 1c { 31:0 offs =3D> u32; } =20 - pub(crate) NV_PFALCON_FALCON_DMATRFBASE1(u32) @ PFalconBase + 0x000001= 28 { + pub(crate) NV_PFALCON_FALCON_DMATRFBASE1(u32) @ PFalconBase: 0x0000012= 8 { 8:0 base; } =20 - pub(crate) NV_PFALCON_FALCON_HWCFG1(u32) @ PFalconBase + 0x0000012c { + pub(crate) NV_PFALCON_FALCON_HWCFG1(u32) @ PFalconBase: 0x0000012c { /// Core revision subversion. 7:6 core_rev_subversion =3D> FalconCoreRevSubversion; /// Security model. @@ -410,12 +410,12 @@ pub(crate) fn usable_fb_size(self) -> u64 { 3:0 core_rev ?=3D> FalconCoreRev; } =20 - pub(crate) NV_PFALCON_FALCON_CPUCTL_ALIAS(u32) @ PFalconBase + 0x00000= 130 { + pub(crate) NV_PFALCON_FALCON_CPUCTL_ALIAS(u32) @ PFalconBase: 0x000001= 30 { 1:1 startcpu =3D> bool; } =20 /// IMEM access control register. Up to 4 ports are available for IMEM= access. - pub(crate) NV_PFALCON_FALCON_IMEMC(u32)[4, stride =3D 16] @ PFalconBas= e + 0x00000180 { + pub(crate) NV_PFALCON_FALCON_IMEMC(u32)[4, stride =3D 16] @ PFalconBas= e: 0x00000180 { /// Access secure IMEM. 28:28 secure =3D> bool; /// Auto-increment on write. @@ -426,17 +426,17 @@ pub(crate) fn usable_fb_size(self) -> u64 { =20 /// IMEM data register. Reading/writing this register accesses IMEM at= the address /// specified by the corresponding IMEMC register. - pub(crate) NV_PFALCON_FALCON_IMEMD(u32)[4, stride =3D 16] @ PFalconBas= e + 0x00000184 { + pub(crate) NV_PFALCON_FALCON_IMEMD(u32)[4, stride =3D 16] @ PFalconBas= e: 0x00000184 { 31:0 data; } =20 /// IMEM tag register. Used to set the tag for the current IMEM block. - pub(crate) NV_PFALCON_FALCON_IMEMT(u32)[4, stride =3D 16] @ PFalconBas= e + 0x00000188 { + pub(crate) NV_PFALCON_FALCON_IMEMT(u32)[4, stride =3D 16] @ PFalconBas= e: 0x00000188 { 15:0 tag; } =20 /// DMEM access control register. Up to 8 ports are available for DMEM= access. - pub(crate) NV_PFALCON_FALCON_DMEMC(u32)[8, stride =3D 8] @ PFalconBase= + 0x000001c0 { + pub(crate) NV_PFALCON_FALCON_DMEMC(u32)[8, stride =3D 8] @ PFalconBase= : 0x000001c0 { /// Auto-increment on write. 24:24 aincw =3D> bool; /// DMEM block and word offset. @@ -445,29 +445,29 @@ pub(crate) fn usable_fb_size(self) -> u64 { =20 /// DMEM data register. Reading/writing this register accesses DMEM at= the address /// specified by the corresponding DMEMC register. - pub(crate) NV_PFALCON_FALCON_DMEMD(u32)[8, stride =3D 8] @ PFalconBase= + 0x000001c4 { + pub(crate) NV_PFALCON_FALCON_DMEMD(u32)[8, stride =3D 8] @ PFalconBase= : 0x000001c4 { 31:0 data; } =20 /// Actually known as `NV_PSEC_FALCON_ENGINE` and `NV_PGSP_FALCON_ENGI= NE` depending on the /// falcon instance. - pub(crate) NV_PFALCON_FALCON_ENGINE(u32) @ PFalconBase + 0x000003c0 { + pub(crate) NV_PFALCON_FALCON_ENGINE(u32) @ PFalconBase: 0x000003c0 { 0:0 reset =3D> bool; } =20 - pub(crate) NV_PFALCON_FBIF_TRANSCFG(u32)[8] @ PFalconBase + 0x00000600= { + pub(crate) NV_PFALCON_FBIF_TRANSCFG(u32)[8] @ PFalconBase: 0x00000600 { 2:2 mem_type =3D> FalconFbifMemType; 1:0 target ?=3D> FalconFbifTarget; } =20 - pub(crate) NV_PFALCON_FBIF_CTL(u32) @ PFalconBase + 0x00000624 { + pub(crate) NV_PFALCON_FBIF_CTL(u32) @ PFalconBase: 0x00000624 { 7:7 allow_phys_no_ctx =3D> bool; } =20 // Falcon EMEM PIO registers (used by FSP on Hopper/Blackwell). // These provide the falcon external memory communication interface. =20 - pub(crate) NV_PFALCON_FALCON_EMEMC(u32) @ PFalconBase + 0x00000ac0 { + pub(crate) NV_PFALCON_FALCON_EMEMC(u32) @ PFalconBase: 0x00000ac0 { /// EMEM byte offset (4-byte aligned) within the block. 7:2 offs; /// EMEM block to access. @@ -478,7 +478,7 @@ pub(crate) fn usable_fb_size(self) -> u64 { 25:25 aincr =3D> bool; } =20 - pub(crate) NV_PFALCON_FALCON_EMEMD(u32) @ PFalconBase + 0x00000ac4 { + pub(crate) NV_PFALCON_FALCON_EMEMD(u32) @ PFalconBase: 0x00000ac4 { 31:0 data =3D> u32; } } @@ -524,21 +524,21 @@ pub(crate) fn mem_scrubbing_done(self) -> bool { /* PFALCON2 */ =20 register! { - pub(crate) NV_PFALCON2_FALCON_MOD_SEL(u32) @ PFalcon2Base + 0x00000180= { + pub(crate) NV_PFALCON2_FALCON_MOD_SEL(u32) @ PFalcon2Base: 0x00000180 { 7:0 algo ?=3D> FalconModSelAlgo; } =20 - pub(crate) NV_PFALCON2_FALCON_BROM_CURR_UCODE_ID(u32) @ PFalcon2Base += 0x00000198 { + pub(crate) NV_PFALCON2_FALCON_BROM_CURR_UCODE_ID(u32) @ PFalcon2Base: = 0x00000198 { 7:0 ucode_id =3D> u8; } =20 - pub(crate) NV_PFALCON2_FALCON_BROM_ENGIDMASK(u32) @ PFalcon2Base + 0x0= 000019c { + pub(crate) NV_PFALCON2_FALCON_BROM_ENGIDMASK(u32) @ PFalcon2Base: 0x00= 00019c { 31:0 value =3D> u32; } =20 /// OpenRM defines this as a register array, but doesn't specify its s= ize and only uses its /// first element. Be conservative until we know the actual size or ne= ed to use more registers. - pub(crate) NV_PFALCON2_FALCON_BROM_PARAADDR(u32)[1] @ PFalcon2Base + 0= x00000210 { + pub(crate) NV_PFALCON2_FALCON_BROM_PARAADDR(u32)[1] @ PFalcon2Base: 0x= 00000210 { 31:0 value =3D> u32; } } @@ -548,19 +548,19 @@ pub(crate) fn mem_scrubbing_done(self) -> bool { register! { /// RISC-V status register for debug (Turing and GA100 only). /// Reflects current RISC-V core status. - pub(crate) NV_PRISCV_RISCV_CORE_SWITCH_RISCV_STATUS(u32) @ PFalcon2Bas= e + 0x00000240 { + pub(crate) NV_PRISCV_RISCV_CORE_SWITCH_RISCV_STATUS(u32) @ PFalcon2Bas= e: 0x00000240 { /// RISC-V core active/inactive status. 0:0 active_stat =3D> bool; } =20 /// GA102 and later. - pub(crate) NV_PRISCV_RISCV_CPUCTL(u32) @ PFalcon2Base + 0x00000388 { + pub(crate) NV_PRISCV_RISCV_CPUCTL(u32) @ PFalcon2Base: 0x00000388 { 7:7 active_stat =3D> bool; 0:0 halted =3D> bool; } =20 /// GA102 and later. - pub(crate) NV_PRISCV_RISCV_BCR_CTRL(u32) @ PFalcon2Base + 0x00000668 { + pub(crate) NV_PRISCV_RISCV_BCR_CTRL(u32) @ PFalcon2Base: 0x00000668 { 8:8 br_fetch =3D> bool; 4:4 core_select =3D> PeregrineCoreSelect; 0:0 valid =3D> bool; --=20 2.55.0 From nobody Sat Jul 25 00:56:38 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010007.outbound.protection.outlook.com [52.101.85.7]) (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 D309D449B16; Tue, 21 Jul 2026 11:01:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631694; cv=fail; b=j04YRVa9J0fOA7w32hkVPYvgvRX3LFFgk2tgaUWC8wz1Q66vuzRBia+KpIjtRqmc7ccz81+rOlxllsvssVCRHkjNB/JGrVNdCdz/GoC2b/BE60Y2cZQ1bqkcJzaLLNJ2jOGUAG09LcUx3NYmxM1YA79DLBGNHwWZQWI5Dr46QQc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784631694; c=relaxed/simple; bh=cWpSr6Upc1BERB7mOa5f2bkLZr7Ce8xX4QsmuVrVXho=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=W2iucfz13cZAf1205+jxUGohUDmxOxV4HJRFoKSMMVIbhDmNAbod5P1kZMY9GAeoXQ8xxHqxy5PAKjZO/su/UXD6LWteM0fEsMLGxNiynQ3chMEVuDd3r7W73kKQMppMq8+NvWTJdK/UZ87PFvk0IRrmBnPUXXQQiI1V+A2wCno= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=lp0fPofI; arc=fail smtp.client-ip=52.101.85.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="lp0fPofI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E92vkY3SK9XXWpdS7sWDbP4KTf+MDSKoKhRJ5cZ7sQJE5UyDdM0Tr+wR2F9x0pHuuRX6hzErKRsFNVfEVGFTAdW7XKcNjhAwOmVo8nyFHusFOJNdVCd0Due8YHy+F1pbId4Z9NBmPdr7FpGAoa9qra7nhQzZ6/4zx29ZqPVl9Nzd5tijr+zIjr0HSc4ZKbvnJmqJGshu6NKGq5Xi6pEmDpPzMc+rQavcw/+NZ/mWEhLb2Kr/5v3y2s6+lyCPC63hJGW5z5ReX96ez4qGRjlLCvrxK+fQA5XYwLysAl11KBBvUuRVBGmiKBWvGO7wku7r4y24zj6XZy4uusL3iJ5sSg== 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=7qtPw4WvS/IJUeKdZuUP7VnjY20rtwIw0y8xhQcyJZQ=; b=UgaAEBDfVrkricEfzZ2o8Ahn1ip/gLiDZAodK7dVcn1T3kly+c0yLcuL5xtlswQ03mDPlMGESB1yvVGBv0AT/qh0CgPKnKJwByXXYpguqnY9a2x+9j2NBn3XnnTgn2MXXJmL6q64jAvsIlqpiwVf3sFy8q0iXOk8R6FaDOrirKpTviON5Sy4NetHPkV7/1Kz3Zuu4nk2OykN/Ll9a3W6gGA964X53f9dTZmbBfuHZ9GvpnUqUsohZrot5N2+xbe9U3p7M1x5gnViWMjmaLHEPzBn+2LxZ0kHyRnetwf6eESXkw83TUCBqNZuL9xNF/TwF82aAKPikCXIONfhx+mIYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7qtPw4WvS/IJUeKdZuUP7VnjY20rtwIw0y8xhQcyJZQ=; b=lp0fPofIrrQtQRD+Xd9bPDF5fc0ph4mCU7TWuRNeUoVJdFB3PvsMEcecCQoKhdP0ksQ/dr7+TkORESreVE8XGT0V+giN9ubHMcfe/lwij2xo3uXfuNQiQZ8hzgP0YzWkg9c0d2gbPwh8VBNS7k4SryGKVH0olypecoXKE5nzIX4IzrS/3VI5Tpm1KS6pNU8HHDfozAPK734rFckX+BKAWC2/jI/232ZRbTyjK0eK/EymhtfTdNwft+NuJCunY0lrTxaPDmPfiS02cD+7U5WyP+cy0IK9WNYdsvGmCyAgK/ahQ8l44lxV3tJ+Z0k2dKHcyentrYO+VnFoOo/TpFiQvQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB7667.namprd12.prod.outlook.com (2603:10b6:610:14f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Tue, 21 Jul 2026 11:01:22 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.21.0245.009; Tue, 21 Jul 2026 11:01:22 +0000 From: Alexandre Courbot Date: Tue, 21 Jul 2026 04:00:17 -0700 Subject: [PATCH 8/8] rust: io: register: remove deprecated relative register rule Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260721-registers_fix-v1-8-3711b2317e1f@nvidia.com> References: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> In-Reply-To: <20260721-registers_fix-v1-0-3711b2317e1f@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Daniel Almeida , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Trevor Gross , Tamir Duberstein , =?utf-8?q?Onur_=C3=96zkan?= Cc: John Hubbard , Alistair Popple , Timur Tabi , Eliot Courtney , Zhi Wang , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, nova-gpu@lists.linux.dev, dri-devel@lists.freedesktop.org, Alexandre Courbot X-Mailer: b4 0.15.2 X-ClientProxiedBy: SI1PR02CA0026.apcprd02.prod.outlook.com (2603:1096:4:1f4::11) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) 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: CH2PR12MB3990:EE_|CH3PR12MB7667:EE_ X-MS-Office365-Filtering-Correlation-Id: c9276800-8fbb-4d3f-1c5e-08dee71766ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|7416014|376014|1800799024|56012099006|11063799006|10067099003|921020|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: qBeAtGQk0s1WcRxfooRJkAcfXbryFG/27F06NckVfxAjyXCV4H+9x0IDynlrNeoYtKqqxepvr3khaWK8FyGSR4remOo5e2X0RiZy+AQgALJIQA/W0ByviphMzXnB7MEgRk5/QwwWxKP5cKbUHHPbXp/5aZS7pYUUqF9qMCkNXKTCePMrkWTiDKA67E7Y33m18nAYvChFgVwq2g93hV6sXfDd7+7ti2+4FxnR1G1SXnTqkz0WxYpVI4RUN5Cf5H3Nw/o7L1ykAbP69o0AUMUO3HMrY7qFMmouJ57mR9t7PwtlnINaEDed3tSWOQeaRpHZSg6cmJZqcyAz1V+2v1uSZ2H2xOF3sZ2lDUIfaUrsiqlfECTDkDwrzvoXs/eBzVX/NyM5m9+y07CwuvpfkHCzFsaRFZbUplVPNmqVRr7eYKX+WRpa0UPu1VQQbCtogUnnyNNkbDZG1BDAF1OScThGdY+FtXtnZBmXp3Y2ZMuMrEw4NtxTFcVgfeaMIYDR6Qpiu8YpgU4e/nP7XIFisRrW6g/lyhjg7IDz4tBS15z3QhUADwBhcylKHhsun1wsPs2i2mPS8ST4yvQuCFOHtDRPwGXa+6sPS8uoOnWG/DGWZxLBD3Lb1Yjmt4q9P6fUVCoOG7az7EnBE/S3eEMX/62JDitogBTGNrMGWPHIjfa4a+3pFMUZxVQFRGJy4X/eUU50ldlXCUVdaiJDuunXX0ooQg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(7416014)(376014)(1800799024)(56012099006)(11063799006)(10067099003)(921020)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MVBGVGkybDFJKzY2UkZqcy9oMTB6U3Ftd2VnVFg4TFpmVXptNmxoR1lTZFVx?= =?utf-8?B?bmhrK1h6SVI4ZElOZDhmVExHbHdMaWtCWS9UQ3ZTVWxjK25RVGswQ3dHd3c5?= =?utf-8?B?N1A4dXRkaFk2Zi94T3lXM29OTW5yc1FWdnNNcmpxb200VFVFY2FaaWRhb21X?= =?utf-8?B?NHYyMHdsVkt5VEU5aFFlL3kyd0djN2pNelcwOVBkNk9ubUJ5aC9ZVFF2bmpR?= =?utf-8?B?UzZOWGRUZ3JYcG53Vk5HWXoydmR2Qjc5d3doMnhUL3llTDZDOXgwbWNsbXpO?= =?utf-8?B?OHhnanJvYjk0M241cSswSkJ0SzQ2U1ZpNDJjazhCRzBnQS91bmd0dFZ1eTJR?= =?utf-8?B?TjZVSlNpNk1mb2lTc0R0MHZROXdQaVFEYlpXSzRBM2pESFFKV3lxV2hlbmxh?= =?utf-8?B?eVBxc2N1a1BsNXNsYUFlRHVzMUZsalYrVUs0U0FFc0paSHdhcWN0dXkrdFlw?= =?utf-8?B?cjBpaHovNURaZmJLNS9hVk52dW1Xd0Q0K1Q5ODNvQWNtckZEdEI5RTJTc1BN?= =?utf-8?B?QWZqcDQxWUVwSHFHdVJ3dTRGUUpweG1STXQ2T1pXc0dlbTlwazVhMmNOY2d0?= =?utf-8?B?ZEd2QmFyMDhpaFRZYm5YOHNzSjUzSUdIWUo0R3hQWGx6eVVZRjhSczN1aW03?= =?utf-8?B?d2VEKzZjR1pxWTZDN1FSekNCSnM4aFhmTjJDOVZwWWRlK3pWWnpXSCsrZENZ?= =?utf-8?B?V0U5MmpkOTBRTFJPWWZwcXJyZHNmU1pMbDQ0Uy9CZ3l3YXpDUHVXYWRHWXNh?= =?utf-8?B?eS80VmY1SXpsMTZCZUZLbUpDL1VkRVpxRkhtU1dHSjNHM0p3QUJSRjY1RzZi?= =?utf-8?B?eWNNSjk0b25INXZZVlh0akFLL0RaaGcwNlRwRkZkY1Zid1hrTUQ2dEtnVTNP?= =?utf-8?B?SERQZFV2QWEwV3gvK08vd1ltNWlBYStrcXFxM1ppc3o5OHdlRncwNXQ0Nzgx?= =?utf-8?B?d2FiMFd3UkpaSEJ0aDRGbkdHZnNGT1ArWEFwbzdqTlB0aTdFWEF4bjNZTHRw?= =?utf-8?B?UENzK1FFNTdVZGo5ZFFjcm0xdzYzdVVpSjJrdDVuUlJuYlA4WjlobnJVUmJs?= =?utf-8?B?MDBIekR3am91S0p5cU9sVENFQlVZN0dLbWdrNEttUGEzeW5BOW1JeHhVcDRX?= =?utf-8?B?N21Gd3pBOUJvRytPMEp6NFVITHVhR2tkS3R0blFwTVFubzJDa0ZHcHRDVjFU?= =?utf-8?B?WU9iZ3hLZjdId1NCVnMzRUkwendKUEM4SFNDSzdwVlBlM2tvd0ppaWcwamo1?= =?utf-8?B?bFZyeUJoem9pZ3pEUWxLRlF3NDM0ZEYwQ0pqcUNQWnppM2FVbmpGZkdmaHhx?= =?utf-8?B?cmFhTE5MY3MwUlZpeEtsQlJqWDNCZHhDblU3aDZBdjl3YXFhd0l1SW00R1pO?= =?utf-8?B?S1dpT0ZzSWhFNUt5djRZb0UxelBjYXJQSDQvRzRIb1RuR3lETHBGcEJCT1l0?= =?utf-8?B?cmlLMVN4MzRiaXVOcjFqR1NrZnluWVhjdHFJV2liSGg3TkVEeS9TemowMG0r?= =?utf-8?B?MkNjQ1NzZWhoVitEM1NNRXV5enNuZWdJTG1abnM0SVVuUXEyaFFKbHkvWXpZ?= =?utf-8?B?c2pIL2I2YmcxWStoNUhuZGJBTkZtVjhFTSt6bkkzUUpIczAyOGpudUcvRGZ4?= =?utf-8?B?SUh4Wm4zQkQ2VVZFSEo2dnZmUFNjU1FxNmRiUG4yK0Vmano1SlhSSEp0TUZy?= =?utf-8?B?T09MM09BdDc2RjJnV000bFJ1R2U4eWF3V2ZhUEdKVG5FOU05Tm1GMWx3NHNr?= =?utf-8?B?V1FhZlJwZHlTWWpzOGhPTmtNWHhBUU8vcXVmTGlZZVpaMUxVZjc4YjFKUnRa?= =?utf-8?B?b2JlbU5mQVNuaGFJVk9WZys3NE42WGdLOGllYk5pUGw2cFFIb1BGcmlTWDlh?= =?utf-8?B?aWpBZjF2ZlBJVTlhOGlpblZBelFwU3h5a2t6NWp0MXM4ZnJvTWNWaFArNVRq?= =?utf-8?B?aHlEV3JUUzFYTEkzbzlyaTVhN2ExVWdab2lxc3A4N0NEb3ZNSjZDTHRNWDVD?= =?utf-8?B?aUJyWGJUdXN3WDEyU3hPc2ZHZCt5Mmw3ZUVxL3NwVDAzUVNDaURMNDlOWExT?= =?utf-8?B?Zlo3RFFpemN5alEyVkpXUjI4T3Q2UWlKKzU2V0poUjk4UmprQWJpbHZyUHJ4?= =?utf-8?B?bWxSL2JwaThKWFh6dUVOT2VTNjI5UVFpTFZzYnExcUp0Z3ZFcktxdkdhLzBP?= =?utf-8?B?Wjk0bUY3U2Z5YTB4SDZFWTlReXQwclR6TytkbzhlZk9XWWxibnZ5eXVzQS9T?= =?utf-8?B?VWx3ZDBmd0VRTXBkdnZrQy9ER3dVZkxwYUFrVis4SG12SGY5MVh5aXhVZlpx?= =?utf-8?B?eXF2bHFYSE1wa3VmQVpzWlNqMW42U0NYc3l4dXBPSDhRQnJsVGNhUT09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c9276800-8fbb-4d3f-1c5e-08dee71766ba X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2026 11:01:22.8295 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /7hRjwNoJ4WP+bYG3Spxe3G+C7mWPWVPviO7oJc1iNKVQpJcBrYpxJ6+8saT4s3WIljHrHEHH07pnX/GUbWylg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7667 Now that all users are converted to the new syntax, remove the deprecated rule for the `Base +` relative register base syntax. Signed-off-by: Alexandre Courbot --- rust/kernel/io/register.rs | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/rust/kernel/io/register.rs b/rust/kernel/io/register.rs index eeb7f859f8b9..2c88ebf0057e 100644 --- a/rust/kernel/io/register.rs +++ b/rust/kernel/io/register.rs @@ -801,26 +801,6 @@ fn into_io_op(self) -> (FixedRegisterLoc, T) { /// ``` #[macro_export] macro_rules! register { - // Deprecated `+` syntax for relative registers and their aliases. - ( - $( - $(#[$attr:meta])* $vis:vis $name:ident ($storage:ty) - $([ $size:expr $(, stride =3D $stride:expr)? ])? - $(@ $($base:ident +)? $offset:literal)? - $(=3D> $alias:ident $(+ $alias_offset:ty)? $([$alias_idx:e= xpr])? )? - { $($fields:tt)* } - )* - ) =3D> { - $( - $crate::register!( - @reg $(#[$attr])* $vis $name ($storage) $([$size $(, stride = =3D $stride)?])? - $(@ $($base :)? $offset)? - $(=3D> $alias $(: $alias_offset)? $([$alias_idx])? )? - { $($fields)* } - ); - )* - }; - // Entry point for the macro, allowing multiple registers to be define= d in one call. // It matches all possible register declaration patterns to dispatch t= hem to corresponding // `@reg` rule that defines a single register. --=20 2.55.0