From nobody Sat Feb 7 17:48:56 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012042.outbound.protection.outlook.com [40.107.209.42]) (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 0C761246BBA; Fri, 14 Nov 2025 02:41:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088080; cv=fail; b=d3hzBL+i+AM9EyRzBHO2kyC8Ibk1QMaq/7y/jayAW/cdtUFASsLvAs0F1t0DqYVgVUuTg/enAqh5XqeF3jynL9LT96bNmuwmpL5y9/KT+xygbljoVThmxa+anCgVYywJMM2csjyu4XXz+ENX3ROGInHBJdgDIH8rxWlgSKLIzpA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088080; c=relaxed/simple; bh=zEEr5BszsSz33KgQiJ4ExTc1dH/+7pdglbH6tLrl6ZA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=QbiGDZn0U/ON9vGoZXmVJJg7ndyaHjtJyEJN20Rvr6deA1HO5N6oMYwc/nJYurF1jwyiCKLoIvMOtBiH+wMnafr6PFwyqPcs/mtEjKVoa/eux6na1r52YDVkC/GCn0ZFc/mMnTz4UYgfq5wYTTu/Mp47vesT+RdMTnvzU8Yy6Ec= 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=r1scG7mf; arc=fail smtp.client-ip=40.107.209.42 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="r1scG7mf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hc1RVixW8BAC9RFqrsxV8AvLKNcczWze4Wq2TQLlMOVdIiIrz49cl07eVe11ITObHligwJ5HtROJDEMncO14tqPR5dnd5Ij9fmKRzkuxLzuk8AmEZ1H1/WVWBDI+lI/D+DkKFQfzL6NZooo8QX2aTpFdR3ec/jmuXAfccObvyuDZDk/BmZr/VSKatwxIs80dD1WJ0Nn9MUnTgANSVDpOIzatsPqXLo19YsMJQENVw9tKFPYkKkVVbAe/cAixJtmt+eSGf5sHGXYtje8H+87a0nnGEOjlHnIE6M1PxxJE8vR3GmhHkOh98zYKRCR8rGhuUrfplwKns+a4JvX0HazY0w== 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=191FvbUz1bYnkUEDy7Y2j44hUxEyd2BaZjVrdeu/2p8=; b=Gs+l3LVnF3SJAfQkqwNqRPC6c+p+s0D07rtL7Ak6nQrMuzaCj5bYXo7nOiwY5rpw8dxRb1t+V4Z8hEQdQGQyYaNqeu5BeAxkR1L7X+vWK260KgyhyU2c0XF9lkL2GD1i9eDOAdGJrO5IiAkDF/4p4EQfiLnEukEhsZ1YhtUAvUgzrftQr1cTFqf9/CJzUSYwF3iq5kxgZ+KEOPDiNnYh1oHYN7BHBmfNhhDewyh9pnCzt5UczPtoPL0tPqoLvqKGv44M57AHi5NejZWIpA1t/G0KyzRpXh2+DID5RlC5NHTE8mCS6oUNhP1s2EhL4OMC0YuyftDWqpfnLrpAuM1wRA== 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=191FvbUz1bYnkUEDy7Y2j44hUxEyd2BaZjVrdeu/2p8=; b=r1scG7mfu4MuGrJyDxw/VVzMeJ68g8wFu2o+iLx2Jr8CnrlmQ/ej63ByIiis1PpLVvOMI9C4HQdV3KEuAAzoFmAUvRaVvobr/hsVFEHqSZPNfWlRniOvFr13rb1p474oSnQFjynPREDoRA+qYyIx9DGnIc+88mJoLZjNbTcvUsNvn3v8C2GQa38/6FLdlu32c0UrXbXrMykf9wFzfJ3rFUsGACoQaKHttCoxbhBZiyUrjEXOlS+1AsS+kyI5hZT785K3PdfHaX610aCj7/f7EJyaeYibg262725ysyooFS4mEF//Ytk5jiO5k8LZhQBc5WWdhm8OjVeu3v4zz2fwxg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) by PH7PR12MB7986.namprd12.prod.outlook.com (2603:10b6:510:27d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov 2025 02:41:12 +0000 Received: from DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb]) by DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb%7]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025 02:41:12 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH v8 1/6] gpu: nova-core: implement Display for Spec Date: Thu, 13 Nov 2025 18:41:04 -0800 Message-ID: <20251114024109.465136-2-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251114024109.465136-1-jhubbard@nvidia.com> References: <20251114024109.465136-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0370.namprd03.prod.outlook.com (2603:10b6:a03:3a1::15) To DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) 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: DM3PR12MB9416:EE_|PH7PR12MB7986:EE_ X-MS-Office365-Filtering-Correlation-Id: 61990430-fa09-4154-6e5f-08de23274621 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?55iptVwLA8ByOlIa8B2PJqDOBas6mCkOY/kAu871+mlgAED+97VKEiOR2rMG?= =?us-ascii?Q?ZBaad648hJNi4XKYJ6K3BPwqzBsTRpEX5LqBTU3uHfG/5IpOE/YMPE+oE5iv?= =?us-ascii?Q?FaymZvZbpN2N+C9e1I8/QA1F7s6N9In4LrnPjNlPK6Z4JEAXoaRkG5KIa4bD?= =?us-ascii?Q?ZaH2BGQ98waz6g1+pq0p5ciFZSf64JqchYSpRDG1U9yOu3BPrybNxSuziBEu?= =?us-ascii?Q?mopc7i3eq7GMKmsaHeSYg4t6hnqX4VgykTPc9TpW7v+d6e9i1B2/sKUugAte?= =?us-ascii?Q?ejmaeakSTaQg+eMXXXRKJfeVok63qH7hcwrKXWzAexfS2E4i2oyrN0vWz+kf?= =?us-ascii?Q?v5xrAPh1t56RWRZelo5XZGPQ655t/fv1UNlEiTZOgfAA8NUjoq0ar4fMuh7M?= =?us-ascii?Q?pgx86iXNZVHlZWit2hwtnJJ9+9qQF4jFl44yEFB62tUCsEN7h3g7x8G/2iuW?= =?us-ascii?Q?V9Ezb83MeuoY9/BMoPqNfhlkDbk976trW3mNDoEubAql+dEP1dVrtQd87Siv?= =?us-ascii?Q?TMrff/0Ek0B8TzxzVDFavYRVqUqC+twBhUuJzZO0krYcFmhAYpdUgrbFYGap?= =?us-ascii?Q?Sz6mFGPjnmyE+sVREpfyrkbgeXi47OyxfXAOEx/S0bwhC1QQxlYBMvwiH51c?= =?us-ascii?Q?L8sIsvJBa7A27AZMvFVva8bN/3Nobxxs9k3ANSpKwknnNylx2HGG1VsoXmCq?= =?us-ascii?Q?/PQo+9YI+OykrnYDkNzbU0ESbhuXGZrBk4L9iHL/QQrBHC6c+1+wjnwC3P+I?= =?us-ascii?Q?EIYAOxj617I1xMQEz4BOhvW6T6kYGpNV0QTHXkhLyr3B/tyvNGFDfjnHTqir?= =?us-ascii?Q?v6fQF2SSysPw0xaXl84OJIjvUWHFfA6v+0C+16rjwMgjjMGIQ8uimuigTYot?= =?us-ascii?Q?UkpwKc1XAqC3kaA8ykYxBA5O4Uhh4J/OkEmSOJM7sjquJKEzaSAPH0YNQK0m?= =?us-ascii?Q?hmwm6B8v91kFykMGReHprgsa57VrV++ZTJo5Sh4MqkTEH8bTftfWCd96ZwO+?= =?us-ascii?Q?3iRJjB5h9RmTKI92CMvzygX8f0t7dUp08i/SjwhvDOGNDFMpBL4BJxFYAhs0?= =?us-ascii?Q?BEMBCOchxwtX2A4EsiQL5xcIC0P6+Zall/lVk4anGu1fpayK82iH6LJXRzw+?= =?us-ascii?Q?Y90ZLdYymAr5DgDUGn6JIitysPCMhmPhRLV2hN3TWiw4xzAvove711S+5N0X?= =?us-ascii?Q?aeYToBlEe4OjgYHBEPRx6YvTDCVA2e+KzAvwmJqUrqp/fdeaANBIo0LEga3x?= =?us-ascii?Q?xGoQlcFHd1I/Qq02eio208st/e+quaVKGlkQzYXIF2/fbCjkTioOvLFzNZjx?= =?us-ascii?Q?0WKmsFYpspU9twAKmk7emR33vwm59AjqEv5yq68V3v32qqFZW0n0Lvks9PrR?= =?us-ascii?Q?+ArKDWlZQSgr1yU6eObScyhycfit7PMoVKKUo4pFN+JUIw8Oc5UYCAcLEsyA?= =?us-ascii?Q?EAaEX4wh6Up/DrVWZXokrRyH4L49KWVV?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM3PR12MB9416.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sVmwAS2GrSjIWX6tTAVrMqzzuelUJM4p3WC+MhFnGB53+RqCFbNCF/3BUQTK?= =?us-ascii?Q?FcnoSozfWIkc693U0fwrWrMOxlpk1lYb+N3vXOY810en9phvPghjxcdbIzdG?= =?us-ascii?Q?BSA1GkmaYw2XRXQez63aL5TS4w5sakZzuGzEc9VNv2NzzVvPzmZHkUaFpHom?= =?us-ascii?Q?M+Ti8cD6w2ZQHLuE9jAe7lYz4V/MANU0iQ2wNwkv4WJh1kjW+wgwTs1dEawT?= =?us-ascii?Q?U4/Q/H9Sogm2VK9a7zj7lBNWXx1br5Maw4y9ZwNKYMdlsX42D2FyExYu3sae?= =?us-ascii?Q?PIDH7PSd3vLt07a4Ebt+S0Ea7uJUqv7Vvty2m6bnIKwUCyvWPSbzWGZJmt6S?= =?us-ascii?Q?a18hA9Nw19CXyKuB2o3KKiq5Y+BXn6IxI2KjxD7uhVm5wh1BvmGIFn3Qms9/?= =?us-ascii?Q?u3+pd/G3H5SgZrARGbb7zxeiuGN8tdKD/KRk0RpUVE/PzN2/jvdG8ktL6IBv?= =?us-ascii?Q?4joO/C11QjGrYkzoZJ/TC8zZEdCycq2S/acU3QUbbDgZcQFa16zRlQUuHQZP?= =?us-ascii?Q?dqxi0G/4SG2Ny10P/Rg271nxnunhvNHroMeFpJkc81gEVhZnX35vVisOOl4s?= =?us-ascii?Q?3euuX5k9cHJxDTNFfnbzJHV0MLNxhhUAWpYROHWz1M3nBHqAjMMHxMHEZ0Gq?= =?us-ascii?Q?7KHL+iduasiYBjmuIQDXny+xQD6hoyrEn8BV1INfWjUJDYC02QyIdmoJyPX8?= =?us-ascii?Q?Q87PKWRjaIW7w5BfYL0DbWNEaUiDLWOCpYeU0lmyNn2thu3cKBr/v6pifVq9?= =?us-ascii?Q?GEsVYsDnw16QvSAbzCJ2jWlFHDjFTOja5H4OJzVdeJ9WAl5fy9yYwbYf5jq4?= =?us-ascii?Q?HfAKWVYh5fZoJsRNUuVd+yepjXl5RPiPjF9AO2AJ7KnodqDzPsglB/H9ZIqz?= =?us-ascii?Q?K/1R928NCmIvXHciN4U668EBvo/1+Xem3rJF24zXwRhoBnfEITcnNsfA4vkX?= =?us-ascii?Q?tWJVwlQeLp1u84ngYxevdorA8HUt/vC8nBHIVBF+jv7QEyLIW4CoRThbqbzR?= =?us-ascii?Q?rdW4RSWBwGSMoB4uANsOBv5NTkxzLqSx9KhVLqC+dH0tAtOCmerPDmE+iHtA?= =?us-ascii?Q?DO2SpmRaQy0Kc6Gi8OLz6ZQRZkIyxm1438p6CNmOM8WWxHwbwesC9IwjGqSm?= =?us-ascii?Q?AMt7lbuj4lZamkBAVCFBV04PQT8w2zQNU8Bb/1v5mRVdfl064we8u/iIe/H6?= =?us-ascii?Q?HjCF+JKfxO/jk7hyvjaJw1dzFb4RTjy4LWGFUMYXtqGpurCwM+4QEPwbQ5ca?= =?us-ascii?Q?Sp+BYdutWUMl6Gt0JBJGNJNbbXr9Xw+aLJB85whAJP0ubIOVlq3wSynktEWq?= =?us-ascii?Q?+QC48wTT2wo3GmuroqXTzDo4i77HQ840rJqzUj9zMq2RxlBAF7+6Ys2IIItB?= =?us-ascii?Q?sMBUAxMnO0vDkbqu6mmitddx5VS7hTDlgjEt6X06pHdBZsCn0MT0QgTLuoP3?= =?us-ascii?Q?sZlPFV2y36eSXjNDBOt31qYcb7W7IljeKyXGJ0u94K9yKaNw4R5Zcr88bwG6?= =?us-ascii?Q?pkMssEPZ88kKAqx/qHmDq3H6wg0U71aDWg5TySHMvu7OKkkNfr6S26vJG690?= =?us-ascii?Q?lXPZcSbiS7ftTEWDZGSf+6CRXflY74PY5U7ijHLl?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 61990430-fa09-4154-6e5f-08de23274621 X-MS-Exchange-CrossTenant-AuthSource: DM3PR12MB9416.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 02:41:12.2018 (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: cjM+BuUYAdSgbn1/uBKEAgeLL63FxJTMwnBLAMJEakegJ+CMsQtysoN+lANSe7PXwEzwjUJvOKStpK1ndHFY6g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7986 Content-Type: text/plain; charset="utf-8" Implement Display for Spec. This simplifies the dev_info!() code for printing banners such as: NVIDIA (Chipset: GA104, Architecture: Ampere, Revision: a.1) Cc: Alexandre Courbot Cc: Danilo Krummrich Cc: Timur Tabi Reviewed-by: Joel Fernandes Signed-off-by: John Hubbard --- drivers/gpu/nova-core/gpu.rs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index 802e71e4f97d..7fd9e91771a6 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -180,6 +180,18 @@ fn new(bar: &Bar0) -> Result { } } =20 +impl fmt::Display for Spec { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!( + f, + "Chipset: {}, Architecture: {:?}, Revision: {}", + self.chipset, + self.chipset.arch(), + self.revision + ) + } +} + /// Structure holding the resources required to operate the GPU. #[pin_data] pub(crate) struct Gpu { @@ -206,13 +218,7 @@ pub(crate) fn new<'a>( ) -> impl PinInit + 'a { try_pin_init!(Self { spec: Spec::new(bar).inspect(|spec| { - dev_info!( - pdev.as_ref(), - "NVIDIA (Chipset: {}, Architecture: {:?}, Revision: {}= )\n", - spec.chipset, - spec.chipset.arch(), - spec.revision - ); + dev_info!(pdev.as_ref(),"NVIDIA ({})\n", spec); })?, =20 // We must wait for GFW_BOOT completion before doing any signi= ficant setup on the GPU. --=20 2.51.2 From nobody Sat Feb 7 17:48:56 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012042.outbound.protection.outlook.com [40.107.209.42]) (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 E026E2566DD; Fri, 14 Nov 2025 02:41:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088082; cv=fail; b=hS0uG3ezwJAzxMtzNZLzn9vjl/6AVC+U0t9wgNzeRncTtmETd1+jrtSkYMwKrkE9i256r8/tAu4UJz4kd1Wke5OsdBLyOGo2DqhqysE2lGp78/KUrEKYzgUyE6xqmOMbTXypy0pQvpvjYZOD8L47XZ/E5kJ/oo5xQD6LV0TrlSc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088082; c=relaxed/simple; bh=EY+eo3RipSc+f6PUFF7TQJ7YmFVPYLDSZXifvRWxCF0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Vk9BYyJeZgaXTvzOv6sdmCYARF9oLMlsf+qMzq6OzgfpexHrr1560MUqXB/IrCkPCNb/Ajx6ToJDQKVV2I5ArkwUsiNVmeUaobvjV5tz5WYolWy4NyOMZl8aIV6Sj4x0oHvIXdIF2Rgy+zgmM5Mw0piq1sQS4HsuX2l8IEQy7f0= 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=YfsZHHlI; arc=fail smtp.client-ip=40.107.209.42 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="YfsZHHlI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=F3L7TxPzPC/fREa6MA7gBjFCqNKwqFK2VSfZ/pDuSEwwuptOYyRaqFKuimP/mbkRqs3VvdYpS+ITgZoJhGVbMSD1NIHITBzVxWVTp69GEJ+C0MTCdA4AYXDT5WevtAzjfQmd8xuH4tDPdBSG8r/yXQIGK6UEqmYBN2ZN5ueyrjnV1+AA+D2fzHLFP2AJnjU5sTpjDt2OSHSF6VnVaeBHAMZXr8N04WaR5+qJ/jOi62JG3zyhTC9XT0Jy+YjTmbX6e0rm8lnrkeEYDOHNGO8AWpDU89oxkqt3nep7cmN4WMTfxGP1Lb55mnSuJHAYjIqQ2sUmol3grTyfloEQf5Fj0Q== 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=D+Yu7gHduP6x9MiT6T83eYvPILyyoR8JXctTZ44f2go=; b=eNSlB3vMhjEks4DN2UJh15C5sN9nb+oTy0TnVuuaMrqkzGLfJocu08le5UjZ3Af5iOqkl0xZdOsrVNEYiUvYIPKordQjhL//EWsaV9SSCvCONfIKmIrh9YQhj+DxTFAd1Ol1BqkJYkYpewciXjArnNqPf/Vp092d3qG41DK9+9887SL4B3cstbWn4R7AwT2mi+c2drDY6zgMouuxy4E5W97M3H1PK4+SVJfD+HisnenQoByFS+g/CAtRVXfj/tRskjab28G+szduGtOdQ8Qn2MwH/JYNUWLU55p8764GyKIKZG4amxKbxoDJCv8e60enxGkd/Y49ch8L2h8AgMUC6g== 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=D+Yu7gHduP6x9MiT6T83eYvPILyyoR8JXctTZ44f2go=; b=YfsZHHlItsip0XxeZBbI2KTIu8c3OVjh6bWzkN0+ZdejWFvMRMNjzHzS94JyW6F+DBoSVNh8hVu03MXoeqFxytGP4V3O3if6pfdA6MeVrVODQAttFRYsCr9ZYshLmdxB3kwPwqV35vo0yhjtCk8btGH8nNyB70jezJS4zHPfQI04uLhsy+sZWm8HXg7j3Bb9CA5lZ7Pq+LO6RMVKII5mFdBjkYSqb01EQkPbvXOSo+QNHrF2vQHzGO5zQzZdzpBHB9mvmaynTzaGS1gI026uvDPwRem2pnaybo0DLdD8QmWVTmyB9JAjwsfo31Oo29YY3/zm77r3g19hjZ8/BrIJlg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) by PH7PR12MB7986.namprd12.prod.outlook.com (2603:10b6:510:27d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov 2025 02:41:13 +0000 Received: from DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb]) by DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb%7]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025 02:41:13 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH v8 2/6] gpu: nova-core: prepare Spec and Revision types for boot0/boot42 Date: Thu, 13 Nov 2025 18:41:05 -0800 Message-ID: <20251114024109.465136-3-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251114024109.465136-1-jhubbard@nvidia.com> References: <20251114024109.465136-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0209.namprd03.prod.outlook.com (2603:10b6:a03:2ef::34) To DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) 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: DM3PR12MB9416:EE_|PH7PR12MB7986:EE_ X-MS-Office365-Filtering-Correlation-Id: 46902b7f-5de5-4834-4ce8-08de232746f1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Zj2ekvvoyyE0d3kTZwj9HS/isbruieR72OFnOWtqDTB++YVfGUtgjR5+Q67u?= =?us-ascii?Q?1Curc/co0WJ0DU7Yg6NiA3kGzYMBVlZ/vAmcB1RUkYhL6moAQFIDn4W/J+sn?= =?us-ascii?Q?1hHjkHTwOEDzHoF57wMjwYIVnUnTfMzFk67rvHEJzjiAaclTVVLzsmHW7Oyi?= =?us-ascii?Q?p9ofKJGnwggbIradCnTtt+qJaZOqsQ2yAvdvtCQhNZVjUpClXqbS+CNAcSjB?= =?us-ascii?Q?s1oSNba7xqMyvmfVKBITJ0uGnYd1DgFFNyJ1MPUaZyxFRZ8OruyjnHThD/LL?= =?us-ascii?Q?XX8x+/fyO1snpxwiPNlx8UvSdIZRJB8FcmGVtKHrKkRR38Vh7nY4uz6hJIMx?= =?us-ascii?Q?4BvkWgV5UiETspuNIbyU4Lur+pkv7Jg5bCe5wrqji2YPEd57lWgpxLU+LsQ9?= =?us-ascii?Q?ig2diU4Vnk5cyYUkqR//knNNj5iOVYP5PddJAMxvNQWe9gUgilYBjMAUtfjz?= =?us-ascii?Q?11/jUcFQUkAbGP7RuMo0Stl+skgkHN4Ijgh2+IY6PyAMNMrYSAPRl3sKXA5e?= =?us-ascii?Q?MXIVYRxFYR8S9ZWVUXlhEqoObaZboT1qwIPJspYqi1H1erwAzg/rOoXA/ElO?= =?us-ascii?Q?A0hyLE2BMW4/FjCg1/8L/ads9PesroR5irvQDpqjbDiV/DM2SR8PzwH2YUYk?= =?us-ascii?Q?b44/GOv4fzdWXAxueTNLgnS5iByP8LHbl6t867JItKAPkBl65rVX22tAUdWj?= =?us-ascii?Q?A252JOV6KON1khRu6AcdgVOEJ9EgT8pdmaSD10kdyFKEXmUaa/oiClXQgggu?= =?us-ascii?Q?B+IBj0vPfY8zaEelhyJlaPpXvuPjHS9a4bnOMGXRYftmptYJAIGpiDqtHoa2?= =?us-ascii?Q?WDGMTOGNB9sdgOOYwII8bNcJ2Zon62F5zx6VbUEv9ruYTjd+aGEqoGsMj+nD?= =?us-ascii?Q?b/f6VJ4R3HIwL8uPm4eDXw+IhCP/OTMOjVZ9R2s5DIoHQgF8HHwSPHILxSi1?= =?us-ascii?Q?sdGBTGU3/yykvrzEmBvmd7a4uUN2FuXdVt25S/YiX+r/B/WkSU0T6IBVnogD?= =?us-ascii?Q?TYoRWopo+s2MyDOXBb+eIr8YYtHTVWQZqU3zz3zvqmgMrIk3baAYjhp/bZcX?= =?us-ascii?Q?3kp3g601qybReca/A4C247d+ahBVv2MBuIgH2OOw0XohOULzK4YvvSczusGP?= =?us-ascii?Q?pvfP3uED5+uU2qachCvdG3HKZoozbcrv/OeXCi4Hyk8y4zT8KsphHKC7GxoW?= =?us-ascii?Q?9zq3OEs6nHt1m+BiTWhydfs1jNq/8aI25369F/Njf4pnihbb8bvqQ57nY5aw?= =?us-ascii?Q?2dQwBR/EzbW1a1eWjc2K70rjBiZ7Ey+2eyHv0lXxeeRZAMAza7hFA65H/RK/?= =?us-ascii?Q?gw7FU6QPC9fX/VMykei8FXbwQ3KNeypoBHH3c6tas77r5EMiQgCxWyZV1VJF?= =?us-ascii?Q?nW/CR3ecEr904zNrAMT9wZHpwaGS5c6kRPGu5Xhq5dYfugcXeYW1xusZOm07?= =?us-ascii?Q?U2cbe/3RIkm5vFnRSsyExG7L5PEpju5U?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM3PR12MB9416.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/f/+JprbuRHov3jBifTV/69iynUHiDxhDrhMnLcvcm5hP2P2LZvovfXsQaxK?= =?us-ascii?Q?KS4M0lg9hIe67CfBMEZi448sRWpaI8Ux33tRkgdfYqL3WWngJpQ/9B0eUlp9?= =?us-ascii?Q?m3IaKN0K0FPrB5IfRtTmmO/wwgoK9UYn1Qz7/puD26rNdPb/QUaPRGYC8xwf?= =?us-ascii?Q?8EH72o0ydXl8CY8APtrLes1xdwZv097WzEeTpJ9iP2GNNSLhiXk2472rMohz?= =?us-ascii?Q?bUsGtkMmx1nyrF0z4y8oasTVUyiDeSY+POcqe1kE5X0fz6gIPqRaHyOdpNnq?= =?us-ascii?Q?YjNk8YFXvyyht0Sf4kpRWx+MXidDx/H3gpYdsmuOCYbd5oxOGzTa+JSTNz72?= =?us-ascii?Q?ljAZRlLwGOXMipFSjygpn495eVUQIPBl/4dQRDxPi6ZP/OjYO9K7ifFoNsQc?= =?us-ascii?Q?3h/Ylpp4xfMIR3vHrJf8LAi0sqcowLTKTJUDO6hUGJR8XS+cuEqF5pyPopkb?= =?us-ascii?Q?bdFuVM08NFPfpHYhr1BcLfkSpxCP4DDEdeqgAXdArRlPUBeyKN4VtzLBjFv7?= =?us-ascii?Q?iU9/9clTWdjdHMPDjnxgs7YmwEA//uhKNRhz3Uq0kzsWLmdOhT6Keus3w84t?= =?us-ascii?Q?KNwd9RhZzpsn9pCifzp9q4pK54kmJmLgx0ipWR4Zq4ds/wxJEL5I2hverA87?= =?us-ascii?Q?0eCqOXQCLxpRsBQ0Vus/+F/nYkwt0251wyjhrDK2cdTYV2jcgVIbT19as2ui?= =?us-ascii?Q?GiHWqVxTduNB5ifHKrEu/znoKyHUv7b0nScHhhZeOotF77xFyyNa3YKh5stH?= =?us-ascii?Q?mmNRrJyPN19CEltVHLQbPX4ZIHEdAAQ+oBxlGhFldk14rjI7dGCuv1Mt5aK+?= =?us-ascii?Q?VOb4/qBco64pyTYuACyT6LIJNm40Fgp+qFovmGJlzL8FVCG5QWCGA8VVogVX?= =?us-ascii?Q?TKU9GYZ2sKNG5u0S1826slTPQPV2bIm9LvyHm1QweInRP4Gwho4fULvHWNDS?= =?us-ascii?Q?0jiidW5CN3UOCmLQfyGFpmBL1hVmR7YFLVoY/UozyKp4tMWP4fdtQXYHqRGS?= =?us-ascii?Q?UzocAceDJxPDe82QGX/iV0CDqG/thieWfs8YOjw771jxCdsPCSa1D/yfQnIw?= =?us-ascii?Q?SaxGiITm02CvFyfYi6BRX71uhxjpDCj9UuO757alxmvSw5EF2eoLxa5gxsqN?= =?us-ascii?Q?fM+r1iwzdHKFPke5rl6XW1TrWaJZuawqY+Y00hMRRHfUQss9FNS1Q9TJjg8v?= =?us-ascii?Q?qPSkFtxPYhEcoA9TOICjnEZI4UHoS2hPmD4V9xzXsY0rECrzoe+mvr3KQVW7?= =?us-ascii?Q?jD80gNbt8djk/tsRj9inNec78shnSkHoiavQoxgYe5KajOsPX1K64zbWnDz9?= =?us-ascii?Q?jZUyQvCLPTCeatiQG3DpvAA7eKswUqZ3QRl9M3tRtFcMlZ/FnHCcmx8kaemH?= =?us-ascii?Q?Nd42zwG6G0XmWwRsk+Ia6JpC4dLUXdwEEQVZCb1mJ/T9SHpUTK7VJ6ruyCbq?= =?us-ascii?Q?0+GvnSky3nfGTqWj9sC9BZY144vmUmrVsXBxPAoQ+5dANVkJkU9eKT3cW14P?= =?us-ascii?Q?1wHWLP2lBmatezCVAyWayZH0vpKECqWxk3wJzCyhdnhwjFHkJJiZCk5Pgfem?= =?us-ascii?Q?QuWpAv9PqXeei1tjKo0roTHmgPnf+j7LNAAx3Egh?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46902b7f-5de5-4834-4ce8-08de232746f1 X-MS-Exchange-CrossTenant-AuthSource: DM3PR12MB9416.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 02:41:13.5522 (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: n8ZzInIyoAnx9bk+TdA/JoMGhtr3B/u4rC7GvV0B2kulO1tMtUGppNSJbTvkzRKmhEhGHD9LSPYQdWo4H1gJZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7986 Content-Type: text/plain; charset="utf-8" 1) Decouple Revision from boot0. 2) Enhance Revision, which in turn simplifies Spec::new(). 3) Also, slightly enhance the comment about Spec, to be more precise. Cc: Alexandre Courbot Cc: Danilo Krummrich Cc: Timur Tabi Reviewed-by: Joel Fernandes Signed-off-by: John Hubbard --- drivers/gpu/nova-core/gpu.rs | 26 ++++++++++++-------------- drivers/gpu/nova-core/regs.rs | 11 ++++++++++- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index 7fd9e91771a6..8f438188fc03 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -143,17 +143,8 @@ fn try_from(value: u8) -> Result { } =20 pub(crate) struct Revision { - major: u8, - minor: u8, -} - -impl Revision { - fn from_boot0(boot0: regs::NV_PMC_BOOT_0) -> Self { - Self { - major: boot0.major_revision(), - minor: boot0.minor_revision(), - } - } + pub(crate) major: u8, + pub(crate) minor: u8, } =20 impl fmt::Display for Revision { @@ -162,10 +153,9 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Resu= lt { } } =20 -/// Structure holding the metadata of the GPU. +/// Structure holding a basic description of the GPU: `Architecture`, `Chi= pset` and `Revision`. pub(crate) struct Spec { chipset: Chipset, - /// The revision of the chipset. revision: Revision, } =20 @@ -173,9 +163,17 @@ impl Spec { fn new(bar: &Bar0) -> Result { let boot0 =3D regs::NV_PMC_BOOT_0::read(bar); =20 + Spec::try_from(boot0) + } +} + +impl TryFrom for Spec { + type Error =3D Error; + + fn try_from(boot0: regs::NV_PMC_BOOT_0) -> Result { Ok(Self { chipset: boot0.chipset()?, - revision: Revision::from_boot0(boot0), + revision: boot0.revision(), }) } } diff --git a/drivers/gpu/nova-core/regs.rs b/drivers/gpu/nova-core/regs.rs index 934003cab8a8..8c9af3c59708 100644 --- a/drivers/gpu/nova-core/regs.rs +++ b/drivers/gpu/nova-core/regs.rs @@ -24,7 +24,8 @@ }, gpu::{ Architecture, - Chipset, // + Chipset, + Revision, // }, num::FromSafeCast, }; @@ -56,6 +57,14 @@ pub(crate) fn chipset(self) -> Result { }) .and_then(Chipset::try_from) } + + /// Returns the revision information of the chip. + pub(crate) fn revision(self) -> Revision { + Revision { + major: self.major_revision(), + minor: self.minor_revision(), + } + } } =20 // PBUS --=20 2.51.2 From nobody Sat Feb 7 17:48:56 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012042.outbound.protection.outlook.com [40.107.209.42]) (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 A4ADE25B1FF; Fri, 14 Nov 2025 02:41:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088084; cv=fail; b=SL+9zrocBaH6Eul7DJmRSlOedWI42cSNE+08ex/HZq1denELmNY4UBTLkHSPYhZL1E6CaKgPU94gp0cF4Zll0pS0O0ofGbM0P8eC9hygfld5yE5QxZLoHzYCJWPBfVYZw5lZO1kYIXIeqkELA4FSpiYZV5yhsipG9JiqiQY4sGA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088084; c=relaxed/simple; bh=8HsX69tNqfFGLNGan4bm57M8CsY/syy7g3L+3eoT+yc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=mW8vcBROyAVH6vvqG7MM1NOtToCN838YIgIyr2UM20UQS5PquM7CNiMEXff3t0XtcRlBJ6qrBovGfRLOTsxga3HjOC43tD+Y5ejo/tx3Abl04IRQgPSfu63BxDaLXthiUP9l8qsMdlDq0E7jTMFp8VkbOfjAZpB1UOj64toufS8= 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=tuB+u9Ux; arc=fail smtp.client-ip=40.107.209.42 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="tuB+u9Ux" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=s1JW8JxIvriNi4W4lMHSpl3Lgvob767/FqH0RYiInCWbI1eSHgD5PHRKH/t5IiItlJoBZb3j222LQWRlgMUBcMgkJeihjqgvZa3BIoAXVQ+mQtQZlxUGzRGM7xdWmamyGf949nCo0N1lUnfpI2UvAO1su7Ge6ULjjRwJ+qsFwCOrJRFohRSm+U3MaCq+g7kMxbGhsvok+bELh5rCESGtHx6Pj6clp0GXVxQEDTWMTLnC5wtyARQmmEAo5H733sxX6km205QaaZEAJPWGFRfCU3kUUqwaqKVGvGk5mgaYBmiiBNtrWyELvnI2pMUhLfr0dQo36CHsA4WqiIbWTk4iqQ== 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=bSTvbs9hexf7vlye8ulIsLmu1oT8As33MryWDkvib7s=; b=tcnJ+8h2RfpAJ90ApljEVOjzpV7OKD1i3beiIOsdmcfLd0h8ob3ejXOXFIhBxk54mc2RVSCPnateYgocVfQz4LidaJ7vwGW4UCJXE6IE28bTS+ZI6e7L5OOC91ryNxt5Zi+QyFLfkgZQMUClF1plYFBE9wyWqmX8CJDGObmXZhCkARbREFqFdxOqaMpbiSPUNaXFFr8HZ4tK6W2j8FgjpqEoP9m87wNHloZTaomi0vn7qWKQOctUjSbCjnU6GsGDs895Gy+M5thHfzEtKueRCrrkvsn5UqFcXGtd9cFmpD3niC54DXV054nl4lUJ77epSSYV8CfHkQ0umO+rOTmtFg== 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=bSTvbs9hexf7vlye8ulIsLmu1oT8As33MryWDkvib7s=; b=tuB+u9UxRiQolcuU9YA9QZVh5uH4h4CG3gLIjkbJRF3brbxJRFgitsMumE3klK9JQ9r4YeQZnKS+Ppk7c2mUp/tVY5d2UCaPGwYA16LR5HAHSlI2yVYp0nxCfPQ26J1gJUOwE1l4EcaV6qg9j7HydFy44z+2HFzlqDrizGsGbhaO/Jp6g3k4EEppGQFLLRxM3UVbbosIKkoZn+Izp7BS3IDbv/ITO7U9w3vmkks+Q58ZK09KGAJ+tczNEiX/QcEz7YLVegjnqax9FadyrgeBIZO0z90QiH1msTl4rgmke17rPgSuZ/w/QKb+bbRUpEkojQ+JdfR48mqpe6MW+wlOFA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) by PH7PR12MB7986.namprd12.prod.outlook.com (2603:10b6:510:27d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov 2025 02:41:15 +0000 Received: from DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb]) by DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb%7]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025 02:41:15 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH v8 3/6] gpu: nova-core: make Architecture behave as a u8 type Date: Thu, 13 Nov 2025 18:41:06 -0800 Message-ID: <20251114024109.465136-4-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251114024109.465136-1-jhubbard@nvidia.com> References: <20251114024109.465136-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0188.namprd05.prod.outlook.com (2603:10b6:a03:330::13) To DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) 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: DM3PR12MB9416:EE_|PH7PR12MB7986:EE_ X-MS-Office365-Filtering-Correlation-Id: e0a89cb3-fd14-4994-384a-08de232747d0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?q4SPvci2oVK1f2stcUcafJeP1neqFhQCLoHaT7uKgdr7yvpE9GeUVU9mUHAY?= =?us-ascii?Q?W/qZu7caAlaZjAuRjdxWUQdt+XyVVsR1alTgpP8tLpRQ9B/95HKQ7SGub0Bp?= =?us-ascii?Q?HqEkdaYdq0KJC1DHENSSdimqY4/vt9lXd6v8/J2yKkynUYOrmuVI/VysJofG?= =?us-ascii?Q?M45SRv+WAxycPW8CFlQB+pPfRyjV1wO+PPW8Edsi6z+eevHd4SJk6ksHKwI2?= =?us-ascii?Q?R95Xsc6PTsVX8errNoQ6KQeNBLb+9mF//M3M9f5ZMLTTxeggAaVAmhK6REb4?= =?us-ascii?Q?m8pm1Ik3BAY/BRDnmzkzgdRbKoolM1mqARmORb9kXFvU/m5+P/WEbBgjMFCW?= =?us-ascii?Q?dZ237bAcRhAbKVvfE/ntlS07ZxbvJwmLkZflJgcmx1rk76URrCfACXIT7vPM?= =?us-ascii?Q?qUjfPNcrsyjaUJHRKkgxWcYmawSkv5+0r7/fpIVzKrcp0oTAiGdl4lDxP9v8?= =?us-ascii?Q?NlyIiEbM6QqYloA259Ah4SmEQCkSKPrIzhdZnC8YgnJNalroZ2+lcP+4Pmqz?= =?us-ascii?Q?aUNa0PQtUSoRw5K6FQKom+BPD0JHTSNVWDPe7N6ZyIvW4nszrV1GvPW7mcDL?= =?us-ascii?Q?Qo7hAmbbnQLiFcCtWrrw9TJ0yczVIwhuiLk4BlWLVXPPg3QioeAr/LWGRpDh?= =?us-ascii?Q?d/w7/dsdy9OUCsig3ZvQWSCOKy5lU2hqn4AktcgJsFffh4SbyQRulRjZYD2k?= =?us-ascii?Q?hFBpo78dSAFOlKcyq7/YSBlVmYacUoVAJxxA2PhFR5McG1sh82xvTDZogp2M?= =?us-ascii?Q?cRzSoKKmsZeIlu4PFcxdmVU0/wWvArcApOeSTamGWbczpSRlOzpI2MDNIr1X?= =?us-ascii?Q?Dvl14YShJObLoehdk+yzAjxvjgDJV8qJ5mFxdVnQZDFncwHmcschrfv25WhI?= =?us-ascii?Q?D5aoqI+0jACJthnE7VJ2Jx1Qd1FJUHtYte4m0peOBb1Ve/5GaBKNWlRZKjh/?= =?us-ascii?Q?w4PRjpSGiZprarCtEEQeygJXDl1vqYPV6imbMxuXKpUzIHwmlguUTQRf9Bb6?= =?us-ascii?Q?9qW5Rky3odugrAkbxllimGSWc2TVD6yLPHdOSlmd2njxTqR8t4ktOwkS/ngn?= =?us-ascii?Q?MWXzzg8/cu//UIx8A5RS6XPqZ4/v8LswWCBrenN2a5eTN5wnPcl3FeZSzwcw?= =?us-ascii?Q?/VIQ5BwQ228pH0CVnytc6XpQgpfXelan0bcGXa/+qd4PVDZWPZUs77y8kA9C?= =?us-ascii?Q?xBw1dNCxvBMpI4kSWC8LkyvJkjF0aPIuxBzztGZCgWw94D/ZKn00om7ez1PS?= =?us-ascii?Q?ZWpppESeVcB9G2EC+U70WktEEvWfPmMKRwa1d5WrZTahdodfnCY93nbJryvv?= =?us-ascii?Q?SYk6XnzwXGnvUFChPX4z7ugUjuQ9LwhPOHb2l3JFxAXc0z6QNkS5ZZn0VwV/?= =?us-ascii?Q?lEj1l4IhGGn8lDX+V5K44UNqybDDWZq2BQKJoqwcfDj7DqCI/xpSg7npX4e9?= =?us-ascii?Q?Ye1rkdAeSmoeAQwqo+vzzO4uSStmyE5+?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM3PR12MB9416.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DR/r3evpounI7+psY1RpyaPhhfxgKpkjI1zjhyYntn7Qy6xpJq8t1BltEKKN?= =?us-ascii?Q?Ro5c4PfYulZskw/B+M4XbGXM1fuG4A4aEKIa7rip3c8l/JzRgjFz1LDzf8RV?= =?us-ascii?Q?Qz3uPYpPxoq1k52KaBjfm7d8J8sFkEMBY4rzxshCqLXm5gA3OFKdxWO/0ddB?= =?us-ascii?Q?WDA8xUhAivKFUJFUitryIiwtx6lwC1CJkqv22JK4mZxB4+jAozVYJNBo0Evf?= =?us-ascii?Q?Ln3kiJelGj1c5TgW7clgbyRe5qVorj/FH3uYx2sp1tCkl4q+6hXkpHC6Ga/t?= =?us-ascii?Q?XAym+L/8PWzECU0sH0t1p9rJTAmHrXs70a1zSKAKX+XI5Yg7tK2sENEkO/se?= =?us-ascii?Q?+xOSNpMQYoMEMfsMoglwSnmYRluU90b1/oj7g1E5mYeuvqpx2XKrFMqw3ETC?= =?us-ascii?Q?imrwYKSeFVlodQ6nGy1gbjZncudooKmFHuUWqQSQVBlcY8qlEF9eMNn0sLr9?= =?us-ascii?Q?u06JGs+afxls2/fN4IUDlK955/vMbBcNQ6PoYQjFnMRXG/49+8lDsT4tDwLm?= =?us-ascii?Q?9U/7FmY+qeMe7khU7U7RIwSbBzR+zdkMIQNsDAW2nYo4C4Fem8/TKSc0+IGk?= =?us-ascii?Q?UwBA8LrGZpfMLSw5FW7u03aZ0I2GyelsYSokpnj7xaRBN+CFMFGEKfiTIeRl?= =?us-ascii?Q?DlKOTcRxFxAGSklwE3xtRTpJiVbe0HUnVmboM1prNm4Be+OfJU16AcXK6YC/?= =?us-ascii?Q?4pxSaL+vLJ2Hh9XUN4OTyOESOkOFb6dhcpVWMZGMDCoxZDU0YEWdQZneBuQ2?= =?us-ascii?Q?buysruygtjNne8jx97t7mk6ByGrDJscehjjwR87FaC6vSH7hb0uiN0XRw0ez?= =?us-ascii?Q?FunRFC/cjndaFS4VCOo1tnRZqy0z3xZmFKeU+At+zA7CXsMlEywlp0y93Nxv?= =?us-ascii?Q?8jhX9aXBFCnvmrRv92968hkfTRt55VBzqQbZSAd3k4BuX6yuIaiwlTHSuDU2?= =?us-ascii?Q?TqYXttAViju10UXQyeTkGWV0TFT+L1PLiTKCfssxAj9aNO25B6ejtzYe8o1R?= =?us-ascii?Q?Ib8qCCk0QN1lYFa4lRrkK0DXaiqy5EVm9L0UzA/PhclFMdZfnBSgZM48j0/d?= =?us-ascii?Q?uTMXrITbRyrR7XJblvnFakYqniAFk44YIfBVNHRzKuZT/BQsEiiLxsqFrr78?= =?us-ascii?Q?fuaiYeCvP0aMXDbJ8blKD7J4lQp62NMtgHfq64vhS6Q1q7/I5FwUI7RZ7dBY?= =?us-ascii?Q?Yz67GMQXKkZyghX74hJSTy1/zdJS/1PB6q6RjMeE/MIYlHkfX8b5/AkMVOJ2?= =?us-ascii?Q?eBBptA/hN3KirwMtTMy2s6H4o/jJbaFDszp8qD7TvMjVqx84w2HLJNWqYkO5?= =?us-ascii?Q?p+h9LGhkY6kwgwukAXr1NCPvN2tWY94JYxuti1u3m+1XGbh3+jr6hyM2GsKB?= =?us-ascii?Q?en3AHH1y+bksuEBOsSh5M+CW/0q3N1H98aaljKI9HoWZFAHrPp4Oigt7p/S1?= =?us-ascii?Q?7ofI6G0/kICo6PbLj6bkQdJECluilvWEGQ7EkHahxkzUdx88WJEo6Qxe4eoJ?= =?us-ascii?Q?zfLf6F+OTSLewfVoW3E7EyZ9MTdP8zeOiIEwtTz3XT8dyAHAN2Vocse4z2Cv?= =?us-ascii?Q?HDRJw4BmgxLVPWX654YjF8bZto9ocTf4PRW7ejgx?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0a89cb3-fd14-4994-384a-08de232747d0 X-MS-Exchange-CrossTenant-AuthSource: DM3PR12MB9416.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 02:41:15.0746 (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: 66YybatbODnip71sDNq7tEB2fT2wUCtb0NOx5iLtI3V8lGcKaUASUfZQmO8UwBbGd2S8veAx1Ia9i5YYd8eJVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7986 Content-Type: text/plain; charset="utf-8" This allows Architecture to be passed into register!() and bitfield!() macro calls. That in turn requires a default implementation for Architecture. This simplifies transforming BOOT0 (and later, BOOT42) register values into GPU architectures. Cc: Danilo Krummrich Cc: Timur Tabi Suggested-by: Alexandre Courbot Reviewed-by: Joel Fernandes Signed-off-by: John Hubbard --- drivers/gpu/nova-core/gpu.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index 8f438188fc03..c1eca052968b 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -122,8 +122,14 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Resu= lt { } =20 /// Enum representation of the GPU generation. -#[derive(fmt::Debug)] +/// +/// TODO: remove the `Default` trait implementation, and the `#[default]` +/// attribute, once the register!() macro (which creates Architecture item= s) no +/// longer requires it for read-only fields. +#[derive(fmt::Debug, Default, Copy, Clone)] +#[repr(u8)] pub(crate) enum Architecture { + #[default] Turing =3D 0x16, Ampere =3D 0x17, Ada =3D 0x19, @@ -142,6 +148,13 @@ fn try_from(value: u8) -> Result { } } =20 +impl From for u8 { + fn from(value: Architecture) -> Self { + // CAST: `Architecture` is `repr(u8)`, so this cast is always loss= less. + value as u8 + } +} + pub(crate) struct Revision { pub(crate) major: u8, pub(crate) minor: u8, --=20 2.51.2 From nobody Sat Feb 7 17:48:56 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012042.outbound.protection.outlook.com [40.107.209.42]) (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 5D511260592; Fri, 14 Nov 2025 02:41:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088085; cv=fail; b=IBjI7ELG3m1wL1bm6WbL+JBaFBNEnDPTnfewHJKW85HrpCR0SygWUbVs0SIoIy/MJq/bvRcYV6p+r8zwH3hUlq7Tj64dEAPJHE6qShp/FewDckPV8+dQNmVpRZRXQF+4RQN5bgkIxszMfH08xrHNVEyKPA5ifXuY4+u75QgxFx0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088085; c=relaxed/simple; bh=BAMN3xLy+uY5cRt+/Z04hj7tZ6Bw/3YZsyCcpfbkUYs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=g5+3jTj39oT4qlhiQoxOSWegdLeqft6I/TBmVJIoDLaC4HnV2hhfwToUnamXnfEQ041IEFvSh4c+NbIrKtpc5+3pzA9vrE2z8cK428KVV/2ukcoxjWCsVvhEyixUlyCt+23xkk3tV6e+RYVIH9eM349BMS8he4EkOXnjpZprdBE= 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=hl/3gP/5; arc=fail smtp.client-ip=40.107.209.42 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="hl/3gP/5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Vri8nZRc5NTxrA3+Gixet5fpv/ltxg2sP19480HjnQFewVXUX+n0YOlKz9deWhkEWVm/an/3MJWypOVp+QGX/4+oJvYvpA/UmuJFCckl99WRO4FoTc27OQwjCVpM+yNuL75w99pB9V/iZAuSWXk7EYd8KJUZp3Tkf7VORUH3tjs5D7UhCNFYHUTDAsRh6k7PWee3qZE4uvC1RIoocHpd555KgwOVhudd2dvmPzbgun6ZeSjcl/0/vt+fGf1w+f1jzC98YSRxaGhULc8pJbKSMFKZuwAsZC9k9P8td0jQeLnLn9qxC51YzlWbuV8sdcEAh6vjTeOJBaf2m1ZyhuYfhw== 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=kFda0fFtbqTo4RxYvmb8vlXr7Yx0lXXAfUNHsKL+RTU=; b=E3kAl2TeO0cwRMp2xN7qjSsEO59FXaNXPaa1RJIm/C5VtrFodQXq7T4dAtrx0LtNKl53E6tQenI/ghCX+SY9UxTaaE+2Umuq9arV0kUBDrK89JAaRqFOupo3bnnjGwJbOzNxOVxsgKdvTXmR8GevqNgK+B3e5OT0sHSMYrL50qcEheu1TxsHQMkMv4QvEPn79LvI4gaLqs6Hp0cVMxjLCvPDi+r5aNX1ErPKQ70XV0Q5uDjZZE+sLccN73uh9dLXVKWQ0sqYvtJX7PHdCGr54C+kSjEyge/75VNgTMMTD+PTeEGGluXaM9zFIZZk8xPScIcSTay0TylXgA+r3tprKA== 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=kFda0fFtbqTo4RxYvmb8vlXr7Yx0lXXAfUNHsKL+RTU=; b=hl/3gP/52GejysjCyPdhl+oWY+/OSLMnoTv8g+jXB+w5A1oKRujnDFq92wkTjbDHAnGU/LK6icqQpEolk+YmeS1nFw+T/dVQiLg5sdvcUqc1gf2Gk4TwNW8ZZG+vhhLBzmDBJqvadrm/RBliYWFXKYwd2+gHZKIxT8vu8jqEOBfojfFW6hwXahLlMADx1o3iJ8PNOos+2e09gc26twaT3buF4ED19CrYQZTERZJeZ3BBRCUWZFbMkIF3jxJXc0IyF3yWQv8X/gCRvum6EQGaeoWAuDyWW4xckC6OhGBP0tM6SIAJyBIaDelzjP9dilkflMhCSRWHNTRZAikz52UhxA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) by PH7PR12MB7986.namprd12.prod.outlook.com (2603:10b6:510:27d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov 2025 02:41:16 +0000 Received: from DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb]) by DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb%7]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025 02:41:16 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH v8 4/6] gpu: nova-core: use ENOTSUPP for unsupported GPUs, in all cases Date: Thu, 13 Nov 2025 18:41:07 -0800 Message-ID: <20251114024109.465136-5-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251114024109.465136-1-jhubbard@nvidia.com> References: <20251114024109.465136-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0190.namprd05.prod.outlook.com (2603:10b6:a03:330::15) To DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) 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: DM3PR12MB9416:EE_|PH7PR12MB7986:EE_ X-MS-Office365-Filtering-Correlation-Id: a283d6b9-991d-4d8f-5b4c-08de232748a5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1X8s8T4CRc40KJJqRFW9ei1aPElnZcVjz4dTOUD43JHB3R+KnNU7P+McjNCU?= =?us-ascii?Q?uXW4htAioKSGD5yXk1qG+qsIW4D8DEkeS7dcEBMlIWW52rDAqnZx3Kzl89Bx?= =?us-ascii?Q?lgGYewUa6np6n6sCBQeBeC5ZLQdNG0SyDAUtBBzAPu1mOiB9N920SavrRQJ3?= =?us-ascii?Q?U3Xqk9cwl9EEZHGGE3o2BzcuPz5RluFke7MjyARc0VJzZX/6BE3UZCxdUWB6?= =?us-ascii?Q?uasIVE/CTKT61OZ0TztP1N8ENG16pDmoN96ePfPTDpogXUfmYQM+g+nwY49N?= =?us-ascii?Q?1EkPy4lcowECw7Ok3BJkLS2kO82x0Nesoc13VroyQXtfozS9WHn1fz2KoN1U?= =?us-ascii?Q?QJJny4HcuZoqhllqyS6N5rHLNSbk1eopkJYjmeGHy1EeYIfcRRPHDpZ34OXl?= =?us-ascii?Q?zp+nJmauRzUMQIPVfOA7NkiDPcnmTzat5NB1NNfvhIb5E/cm2xBwDdsDSyH5?= =?us-ascii?Q?yv+8kDHDvzRd/DJHbWgGZrUPEWVVqDAOM0LumUoGzu/yEFxrLEG2PUeNrfB2?= =?us-ascii?Q?84Z1zKx+ZVSwlvifjM9Ux2mGjb5viIDA6pXd3z26j8A4UKyrCPsGGLeVC3Tg?= =?us-ascii?Q?7oY0SO/5gB4BXVMHZZo72fAO/pBBwII3/tQt8vyUKDS/JEgfHHnJhU4ZYrOr?= =?us-ascii?Q?lROAbjSy673VQ9X5FihzOp84YfgyIpuFV7dB+extnRQJdfcMA8CFDHUvD03B?= =?us-ascii?Q?JpJpeoZexSWOkG4B1sSb4aJFNCIEDdQB7fvny41t6nxOCAC5n5T6VYhv0z4E?= =?us-ascii?Q?ioeaLsRWGWvXZp98apzrqEhEFEk28cqzmGldxz1fzVQJmcgX3Q1NVs5pLC7C?= =?us-ascii?Q?PtyXLGQuc8O6RAlWZlL8p5/jR1XBD626TzuFmby6hplmDFCfGMh8TG9gwaxZ?= =?us-ascii?Q?X5dimB8x6OIyfB1hC2EwrNSHVxqux1X3Aoyfx5o2oLeKR3dh1QwMNrIkcubF?= =?us-ascii?Q?8P6OLpEgg4qKECQFhosretES/R3VvUOttveecRyF4yi9m2zUZa6zyNs+63CL?= =?us-ascii?Q?In2WRtEkY9+P1mESFFkBnwsfT84jDdIVjWlT2UVsUW8zNVODHWGQEknSkJnP?= =?us-ascii?Q?D7GC9UoVEkkAIb1vV0DsWP+OTEwujXrFOa0TQgC5fAw2aVecsmYP3aFlukeJ?= =?us-ascii?Q?hDlKTdEq/TBkA2xW7ltOEa1QwaDL+AMdV853JT9lSPoZ2K7Vf+c7/7S4A3Nv?= =?us-ascii?Q?0Nel5iaPRIKtmxEXQNYDB7//NZj5/SoKD0Nt4N/H1Q25cIKfUjOWgXRy0Mh8?= =?us-ascii?Q?zYDEZuACqRdtQsa0Ms+CA+9m+8GNuHd2xHYOIbOrsJKd/Wv0yy6JV9x4IVAw?= =?us-ascii?Q?NZY68MikxwOGUM4CC0VmJkj+OxqaKqSc5POw0G98C3pfhfxzcE97KzcQtfui?= =?us-ascii?Q?XDfR0wxN89B6AeeSGfFgmj2YPLmsX4wdgZ89QgH6bKCxaXuPZrvVq3ful8tN?= =?us-ascii?Q?R/DTPobLvnZeDHSRjbO8Mr3SBwjhGOA1?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM3PR12MB9416.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?I8cX+RaCelZMcPjdYPjTmKeXmen6Wzshi6ltZ8cFx4aPkTF7mMs3F8lLcuhx?= =?us-ascii?Q?T0Ha4+RnvIV4DcpkgCl9O4CJk3jByUfA6iJ7NhiWfO7Xl2Wj2eB39emzsyQT?= =?us-ascii?Q?5acNkHPTDLsLRarL4Ewam+SXDIaPN3qKvE2o2JTl1AMQSbt59bHFOY4YWVc2?= =?us-ascii?Q?rwglt+ZPjfUGNjjDhEX/btw5xmVt6lWVgAx174sgWXS4FTfbiKRTYhzV5P6R?= =?us-ascii?Q?7KA9eDy0W5nmMiPs1Xn6DyHVIbFhFyZZ/UPmYeLPFHn0x0bwHYCNEnLcMrDi?= =?us-ascii?Q?a0KoKv82PsTS2nrOzf/4WbN150DHnTqAfBcjefMMPHRNi6+t6o0WLWf1zp9g?= =?us-ascii?Q?3GeZ6l8xnAxlZK8Hp2nY2DNZANr2duP9tkVQ98EzJ44VnBa/jhKL4jZjdDss?= =?us-ascii?Q?Dj2PbyNppPFXNQ5NlV1/1pBa47DOBnFIUWSmdaxAj4RO4YhPohuaBvn5QfxM?= =?us-ascii?Q?7bU38M+5+C8hTpCB6rPduSg+2SzNYmbFsIHRPMxZt+9Xc5mo7v+SSXbQa/3l?= =?us-ascii?Q?rGxBB7Dil7g6kE3K3Tn/9IysHqCMPfuA0QRxdQt052JB8ojYyqliJbNUK9e0?= =?us-ascii?Q?9kKLhl7/Jwb3sx2to27zfWBYdvp8XJien7n4f8+gvbxJqDEuUWsqXRGeLLL3?= =?us-ascii?Q?6V/0qPXYiMSXFhPYk5E3gh3fVLGoj5JN7Z3MbgqSpsWVUHgP9EVhD/sRlJcf?= =?us-ascii?Q?wH0Dg1/rKXE3CiwgC4ZkJ6t/mA6MxaxXgClDI+CKgLfze0O9x11a98FBejPf?= =?us-ascii?Q?jGrfjNmS+9HpveEptsdjmoDpcV+HsgqWNtb0Pxrfw0iICpzXNrnojqJAOKDD?= =?us-ascii?Q?w+5dDq2xdARkBHW7IYZwPYJ0ez6tTCtoAvliwmtVG8uscBCfv0LHtQoroRiL?= =?us-ascii?Q?QVu7u50gOdxHrv00XvwhLK+ux95+Q97VUDtq+Gr3NruTHWA9in602/7zd8iJ?= =?us-ascii?Q?7FkPDc5NqP0LSYTtqysenafuaHfv1UCYooLcs/GSti9ojDxDub2r5HHwChoP?= =?us-ascii?Q?ZHYeGPAykUWDSD9gfkcepPab6URntVzHUJNpg4hdGipDw4GygYcCU7zmdxLQ?= =?us-ascii?Q?+y3cHoRwysIc0H+WVDs3iwJD6facxkHg/VM0Jfa7i5iUnsfZDwebSdKAwa4E?= =?us-ascii?Q?D5R7Ny5YEqz+xa7PLNfF8MYGXv95VptmzzIe0w4+QGAgdLGypSg07Ww/NVsA?= =?us-ascii?Q?4anGIFmKKAOIeRUHqjuUFgpXsD0SvXLjeE4uxbC85tC1irhM9H09QmEPBk/1?= =?us-ascii?Q?Evg9H5VQ5FbNeK5b1HvFTS+C05h8mGZBM9egxrcSO6GoFl6f+KCF8gxcHk7F?= =?us-ascii?Q?qvFOYDNPYcLcBieS9TES1rawPyT2nXCBY+Aldk/mPM/6NkUOtrLk0ZSneNRD?= =?us-ascii?Q?B0pfh688dqLG/3JNtxU5l+wzxpj/Cim1RJhOYiYq1wBWNfVyD7j5rBQ92YvX?= =?us-ascii?Q?P0DB+WXRGeG9orxsv37QGrJvzw1SFg1bxprSpvGOFC4os9X+3CujeyUzNuWk?= =?us-ascii?Q?JdyuYj2KpkL/ZVYF7OgtXYt612dBWEaxEAig4DmD+NCH4uUO16e/CH266SyT?= =?us-ascii?Q?+PZsDFZX53Sx+BLI8ArM4xXOp9EQ6IcPnRpxeEhy?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a283d6b9-991d-4d8f-5b4c-08de232748a5 X-MS-Exchange-CrossTenant-AuthSource: DM3PR12MB9416.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 02:41:16.4134 (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: WvPy4bFn1l/ZL3mejiZH7QJa/tGfgOrN65TNpzjenYnS7gOzafa9GUY4IeFjxc/wfDrHTqZsJIVJLLmJaHLdOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7986 Content-Type: text/plain; charset="utf-8" Some places in the driver use ENODEV for unsupported GPUs, while others use ENOTSUPP. ENOTSUPP is more accurate, so change the ENODEV instances to ENOTSUPP. Cc: Alexandre Courbot Cc: Danilo Krummrich Cc: Timur Tabi Cc: Joel Fernandes Signed-off-by: John Hubbard --- drivers/gpu/nova-core/gpu.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index c1eca052968b..aa8e881dd474 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -62,7 +62,7 @@ impl TryFrom for Chipset { fn try_from(value: u32) -> Result { match value { $( $value =3D> Ok(Chipset::$variant), )* - _ =3D> Err(ENODEV), + _ =3D> Err(ENOTSUPP), } } } @@ -143,7 +143,7 @@ fn try_from(value: u8) -> Result { 0x16 =3D> Ok(Self::Turing), 0x17 =3D> Ok(Self::Ampere), 0x19 =3D> Ok(Self::Ada), - _ =3D> Err(ENODEV), + _ =3D> Err(ENOTSUPP), } } } --=20 2.51.2 From nobody Sat Feb 7 17:48:56 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012042.outbound.protection.outlook.com [40.107.209.42]) (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 E9BDD26B942; Fri, 14 Nov 2025 02:41:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088087; cv=fail; b=b2sqDX8CxGK6Jz86tmBSwHQ5CdV3SlC+Jw43/m7hlUYPTqrZCmd0lFwnIuNVbEcXg89ZXLwcat3UtCWEaEGh7sf7Pjz/BLYyL0TmNabIFoaIq8eUbl7fdgfhEpaB2NkQBSVgu3oJEWBJOpNP+QW5pSy7X+y3gmGJ+Bc0tp6leBU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088087; c=relaxed/simple; bh=9ThjfuWhX/4F3zs73dbfuNo/eZXnFEOYFL/Z3m1ticw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=KMB4lwrtMWyU+Bp9DPg1VdVje/J0XKMg/Ecw5y9ZEu/LUb/uHXS9dUUXWHykX1+E5YbOM51kdRUUz5oq67717VyulfKh98cgHE578hZQkYPAJnt9evHNKYzP5RO7mA4RD+HJXIDb7D6u2lzJriwaWlq3pDy8UZBIOZC0NSjfZHs= 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=OS3qFsAB; arc=fail smtp.client-ip=40.107.209.42 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="OS3qFsAB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RsI2ROgcem8ZXti1cW2E+xY9FwiHOn7lKA2QYFH1nCJNGdamwFw3+zPPZIuikwYqtFkPF28juffUpMWq1ioYbZecGM2fqGdHIlyeUtkAQdHfNy+JEXMmHo6prFOn6jseuc8AY2V/ORFwtGkuH9Fx/clxN9ZuzMsncqutNwAXuXGARU1YuK1vgNLpY8rHC2jLiXW2mYWVkqUfZIHEOE185wOfIACq+g9l6EuL0KG07mxb0Wya2f4cpJfhzZXiBIozRZnM5YqnEgvme2rpAgffcV2B2e+1jhzUpHrE/drItjmO47b5ZL+dS+ZnvQZ1q1Ct1m7Ogp+GjAvvkQcXVY1t5A== 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=I1kg9x3e+fF4tuXU0vh6mUs7OqJ/6fyyfH+kjJJFMmU=; b=pAjDPsPQP7LElTV1kh06xxKLztbAgPhPvQ5Y8XPKZ6cQr+FrO2fzu30RZfBjgoT0DNKw7EUpUEnczidQI4xHuuogNmnf6V0rs4sNuYh2W71rTWq7FOn/9+N05RpavUQ/M0bU4j6pS/0Ja5Hg8ZylCm0VYbyAWE7rn91KlLkRerf/DND8GGFFxYbbh4MKmj9WG4TcyTMqWqaTccG95nP3er8xtPoF+GBnd04L/zeTqzDDqailnj/UfUuXafczKlc0Rdf1ASzH74gKu/pgafbPzpr+5xIxdO8YwquhbhFA6C3DiGJHvvF1AfrQA216gvNk4LXwL+Kh+AJmaCIb6dd2dA== 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=I1kg9x3e+fF4tuXU0vh6mUs7OqJ/6fyyfH+kjJJFMmU=; b=OS3qFsABxwk3UT0MowSsbtePRHAMbBT7eFPsSUFNpOOAptz0bk28U440WUxO42oYLRjjP3DorZTwOK8h4TY2z90qGoXVnQ7zsWrlEaUoxyw21628dkMHMIQ+G7xBWeJGMeM/yo9pzTyBb1VQde3eJHmK0YjifrstzrSFsVnysBCWNgMe+PvAS8jS0vM9F8brv9RiMsfIwC8ZOlOTxon4pISIj1I1WFSYq55Ebp5VRoVbWDJUXyCPj/GcypNjFjIex+M/XOYpLuD4K4vUaInkPHXbgdzWjoNQkLqREHO26Lp9EqHQbj2vpjHvTpM8lph61oQuMCn0uQ8F8cApP/9brQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) by PH7PR12MB7986.namprd12.prod.outlook.com (2603:10b6:510:27d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov 2025 02:41:18 +0000 Received: from DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb]) by DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb%7]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025 02:41:18 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH v8 5/6] gpu: nova-core: add boot42 support for next-gen GPUs Date: Thu, 13 Nov 2025 18:41:08 -0800 Message-ID: <20251114024109.465136-6-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251114024109.465136-1-jhubbard@nvidia.com> References: <20251114024109.465136-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0390.namprd03.prod.outlook.com (2603:10b6:a03:3a1::35) To DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) 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: DM3PR12MB9416:EE_|PH7PR12MB7986:EE_ X-MS-Office365-Filtering-Correlation-Id: 7160f609-9dc4-469c-d85d-08de23274977 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?AXiOykrAjm2mbtxJm5YZsT0w8FAVz9sMRBcHOJnSOYZeWB+yJNdIZ1KUvc7O?= =?us-ascii?Q?XmnkDd25BRMkqKVB1HCnmPTbCgdF+1wLYEfW6nGFHCqYI2xy3YmmT001Z4aF?= =?us-ascii?Q?iompNUeOjjd347PMmOG1bDW7X552PJZWO58LQ8H6kMCNvoN3+uc5f/Qz4gW2?= =?us-ascii?Q?J45D0K/BRH+9wZ8zbk9657yIGINZlid0+mE/LnVSsu8dhh6uUcOXrlmeJwuF?= =?us-ascii?Q?qf9jebaMASqdCQLzDvtJEhoWdqR8q1UycLGtoFvIByKjgDI2NF1nFkEKy98y?= =?us-ascii?Q?/1KnYQqqW187qLfeOpSG6NDkWIRm/ki+jME9vxKmg33HI5iYtm1L4tU2TN6p?= =?us-ascii?Q?UViRMoBYYI85XuEKyhm5Upo25i7sNC91UuH5Xb9n8UQPETLEm8+9VzOAsIbY?= =?us-ascii?Q?5wYIVnsdHZikej03gQ6hKLcUzvd3NpMUT411CLps6x+Yx/G1e3cN8Z4sq6FE?= =?us-ascii?Q?PEPZzYoaUZV+wzpdlS8jG+IxsFjoJ7R885YNmbopY6X7pbylhguVdnTsedBL?= =?us-ascii?Q?+EHiAL2f/GSMxdGA3rvJI1bFaKq1a9doJZSMqjyz4Da0UXhrXe5gKo9v5GUn?= =?us-ascii?Q?jfKPu3tgCexb4yzLOxKQ0cXBhwQOtHQSerGW8OSxMko2kQHg7PjFEJnpw59t?= =?us-ascii?Q?17HPtZfQFADW+zW0CYd+NUqssbT5FtN2g6bBabYhLHRkEfKdJ9li7Z03kSPj?= =?us-ascii?Q?X7cPqF69VmeTtUQh7/VBQWl2Auu3SO1n7N4cLFBpj7Z1PtVuiKio45krQd+X?= =?us-ascii?Q?tcW90q/OvHbGqb00NDwu+kHmgtG0yyN78F01LGxvcKNEeUBATHdTiurP2R6T?= =?us-ascii?Q?z1GS9Onq79rbcaqyFMpoVZilKnPv+P+i5YhrPeLSE1v/HxGywSqfkE8FoXPn?= =?us-ascii?Q?Qv6I5gqMdmQ4FaBNGCgQTXTAQ5VqOPWqSTznJoFU+XqIlQ+M1Lv2mSQ1berK?= =?us-ascii?Q?V5I8sWANIZeACaXssqCTTJmij7NMpEqHCy0zCCWfibRgbVkcF4sqF2iYX9PV?= =?us-ascii?Q?PNNSzEd7d5MjZ+Z+bxFRfTs7fuP2tms1jlZj2QFKz9AimWCtG0xvF3eNQu8Q?= =?us-ascii?Q?dkecacvU2q/klOc4PACvkthpTArjjmIBwezgCbF4R1lVlgPv3E4U7ViSKP65?= =?us-ascii?Q?4HuhnJCcIhE3oHHmrRWYtq2Go24640qYqE8gloasAnfUBNzqZxtwzoQKHmSB?= =?us-ascii?Q?ChH3G2FqMJ7NX2c5awgFmymCukXzxOBl2tP7wGewEjXPKdT9reqS+0zPgrVU?= =?us-ascii?Q?A0/nO2u8lD0ycSBEfDKpSkZ5AFZ5YBL75sc8fe5IMuethkqJ49MU0jKs3K0q?= =?us-ascii?Q?xziB3g65SN8vgbINr3wBkYjDhlA1KNa1vcTVAvLub+Nr2M/UIMcAaTOb61rZ?= =?us-ascii?Q?FNVB9tyENH3tyRTB+mHwA13IRaBBcV49O/m5bOS94bKOQ+bh5FQPMm8ColH7?= =?us-ascii?Q?NoMAHavb5DycPZvP6H5eTPSvzzPSKcCH?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM3PR12MB9416.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8kQeP2rV3282f5REx30e1mImLuoN80uhGjuWbADOEqlLH3hMAt1tQ6y+KrZK?= =?us-ascii?Q?zVndXBiujp2aUwFeaK/9NC+GFsXyuRW/mQTr5/fY0uuViTyDh0OMc/iwb3Pk?= =?us-ascii?Q?naM7eMxHgo1xsg80VQ/+6VEH3/8/Htje2YQQ+rUSAu5rP/wXLN0QkVjdDJsz?= =?us-ascii?Q?+ZS5FHaJ+HB7UNNLvNunhmVsqV4NT+i/zJxNu/ztmU7+L/nFxOY19bHRyrDW?= =?us-ascii?Q?RViXTM1NcmqI1oKglvkvVLkrVGHFFb/xvYR427RmrK+e14CzUVGbFF/r5n3k?= =?us-ascii?Q?1qxH2FO0EOkF9CGuImpvXE4GFc9wXw1FowVXtRUtIPPQFvJ0iceHz7WTZRDa?= =?us-ascii?Q?ObqoRKCsh6GNtL0Hk8qzWwJelAA0XDTvKkQwi55nej25Q8eSkkUR7CpBQkzk?= =?us-ascii?Q?zpVMcpGo3J5eNEU0q7ea00mQjAmtfmSNhJw7Pk9S6ZfiAlD26w9vkRJ28DlF?= =?us-ascii?Q?dPnRwLQwmPhPaCEzPs88oMSb907aQVIP0Dgr5uQwnuulk5u+OyncLNB9+2vF?= =?us-ascii?Q?l5sxwv/6ndKJ8CGpSRy+dYZAzLmv9liDdUE4YVlXp8X/OpOMGUY5BZr9fSbS?= =?us-ascii?Q?aU36GA7OxCtVqlDpvrXH/21xazfkgG/VXb4FfDqHxKmPGDg0mm2fGkYnIWu/?= =?us-ascii?Q?/ktdKqvh447iQUMHxW7ji+uz+IYYb4ENq8tpKpFfy0OI1667PqEbh3FYQFtW?= =?us-ascii?Q?ecL571gA9IhsUhApecfhSHoN/i92ypIo9sR1kNBmmndZ7WRbhcsB0Jn0Ywll?= =?us-ascii?Q?XMYujaqbmsO2Lr71u0x0uJv/KnqnHFGnpTqDt/nZW8GA9vyVTq5jHvt8heS6?= =?us-ascii?Q?hdgSyGqrlAzjGvDItUZKrWhkfoGxHTI8CSoa5ZyZlBqhPkUC/O7DIRUKxkSt?= =?us-ascii?Q?iw1pnIkJc9X2Vd2PZk8tcwC0pJ9E5x4Y/G6RWS5K5qRwqmlaE1CPWGGIidfv?= =?us-ascii?Q?I2ePESGao+4tT07jnvwTTWwJsnnRMXXUyEa/ORIeWVc/w2NOcv4FnAp8Xgwh?= =?us-ascii?Q?IHHIDHU3M9/+n9qersVxGrMhKnbmDr6wr7zQffzDXpeNl2iBdcmtv9q3xbo8?= =?us-ascii?Q?//CSLTJMR2TJe6rqS4XdnqDqj8H8y9W+JnmYc/iDqG02COQKJjajagQcxbZy?= =?us-ascii?Q?6o0OwDq2LOz7KBc3JqR5deEeTst/h8uaPAOtZFJLFwFJSxXIMnYu72BU571U?= =?us-ascii?Q?Rfz8ztN7/CUmKRCdBIJhKH0Sc/VOD9bb7SRuBzG0/UiOHnlD2NrSs/ItSJ8v?= =?us-ascii?Q?mJMh4yaf6n0D85xgcn7azxj0B04hEATBnQgTN16gOevtghFYfmBEvL4/+fEA?= =?us-ascii?Q?RpG+0NGSd0zDj+Pu+JISbFNDEZSw6/oO7fWBGP5OpOHPXWGDlGD97OoJ9mCf?= =?us-ascii?Q?Mmz3rTlmYj9Q3puosfl/W3o0PtVQC1GOvax3tQ51ITKjh3LK2A7ahX9xJ/13?= =?us-ascii?Q?EPLSwPQZnuBaPtaGTR5576b3pB2Tiy4icVa2V9WJGZtHYNGcuTN0+AxNi3ve?= =?us-ascii?Q?MHpo7fRx2Q1o+uqenNIzxA1V3HgM8UuWmq08ENg9whLFPu98Zlnxobr1+RBn?= =?us-ascii?Q?DaVqYRkZ+QQDKPNihqkj2YHVKwmvcvQmT197LEfs?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7160f609-9dc4-469c-d85d-08de23274977 X-MS-Exchange-CrossTenant-AuthSource: DM3PR12MB9416.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 02:41:17.8831 (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: dI6oit4SKDIqA8jv1tcQCHjkKQ4hx4Oq/N0pWYXUty40SfpAHZuomfJCaqR6pC8rXdhf1NP9rGykRu9J+kNrjg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7986 Content-Type: text/plain; charset="utf-8" NVIDIA GPUs are moving away from using NV_PMC_BOOT_0 to contain architecture and revision details, and will instead use NV_PMC_BOOT_42 in the future. NV_PMC_BOOT_0 will contain a specific set of values that will mean "go read NV_PMC_BOOT_42 instead". Change the selection logic in Nova so that it will claim Turing and later GPUs. This will work for the foreseeable future, without any further code changes here, because all NVIDIA GPUs are considered, from the oldest supported on Linux (NV04), through the future GPUs. Add some comment documentation to explain, chronologically, how boot0 and boot42 change with the GPU eras, and how that affects the selection logic. Cc: Alexandre Courbot Cc: Danilo Krummrich Cc: Timur Tabi Reviewed-by: Joel Fernandes Signed-off-by: John Hubbard --- drivers/gpu/nova-core/gpu.rs | 32 +++++++++++++++++++++++++++----- drivers/gpu/nova-core/regs.rs | 22 ++++++++++++++++------ 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index aa8e881dd474..9bc94811741c 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -174,19 +174,41 @@ pub(crate) struct Spec { =20 impl Spec { fn new(bar: &Bar0) -> Result { + // Some brief notes about boot0 and boot42, in chronological order: + // + // NV04 through NV50: + // + // Not supported by Nova. boot0 is necessary and sufficient to = identify these GPUs. + // boot42 may not even exist on some of these GPUs. + // + // Fermi through Volta: + // + // Not supported by Nova. boot0 is still sufficient to identif= y these GPUs, but boot42 + // is also guaranteed to be both present and accurate. + // + // Turing and later: + // + // Supported by Nova. Identified by first checking boot0 to en= sure that the GPU is not + // from an earlier (pre-Fermi) era, and then using boot42 to p= recisely identify the GPU. + // Somewhere in the Rubin timeframe, boot0 will no longer have= space to add new GPU IDs. + let boot0 =3D regs::NV_PMC_BOOT_0::read(bar); =20 - Spec::try_from(boot0) + if boot0.is_older_than_fermi() { + return Err(ENOTSUPP); + } + + Spec::try_from(regs::NV_PMC_BOOT_42::read(bar)) } } =20 -impl TryFrom for Spec { +impl TryFrom for Spec { type Error =3D Error; =20 - fn try_from(boot0: regs::NV_PMC_BOOT_0) -> Result { + fn try_from(boot42: regs::NV_PMC_BOOT_42) -> Result { Ok(Self { - chipset: boot0.chipset()?, - revision: boot0.revision(), + chipset: boot42.chipset()?, + revision: boot42.revision(), }) } } diff --git a/drivers/gpu/nova-core/regs.rs b/drivers/gpu/nova-core/regs.rs index 8c9af3c59708..81097e83c276 100644 --- a/drivers/gpu/nova-core/regs.rs +++ b/drivers/gpu/nova-core/regs.rs @@ -41,14 +41,24 @@ }); =20 impl NV_PMC_BOOT_0 { - /// Combines `architecture_0` and `architecture_1` to obtain the archi= tecture of the chip. - pub(crate) fn architecture(self) -> Result { - Architecture::try_from( - self.architecture_0() | (self.architecture_1() << Self::ARCHIT= ECTURE_0_RANGE.len()), - ) + pub(crate) fn is_older_than_fermi(self) -> bool { + // From https://github.com/NVIDIA/open-gpu-doc/tree/master/manuals= : + const NV_PMC_BOOT_0_ARCHITECTURE_GF100: u8 =3D 0xc; + + // Older chips left arch1 zeroed out. That, combined with an arch0= value that is less than + // GF100, means "older than Fermi". + self.architecture_1() =3D=3D 0 && self.architecture_0() < NV_PMC_B= OOT_0_ARCHITECTURE_GF100 } +} + +register!(NV_PMC_BOOT_42 @ 0x00000a00, "Extended architecture information"= { + 15:12 minor_revision as u8, "Minor revision of the chip"; + 19:16 major_revision as u8, "Major revision of the chip"; + 23:20 implementation as u8, "Implementation version of the architect= ure"; + 29:24 architecture as u8 ?=3D> Architecture, "Architecture value"; +}); =20 - /// Combines `architecture` and `implementation` to obtain a code uniq= ue to the chipset. +impl NV_PMC_BOOT_42 { pub(crate) fn chipset(self) -> Result { self.architecture() .map(|arch| { --=20 2.51.2 From nobody Sat Feb 7 17:48:56 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012042.outbound.protection.outlook.com [40.107.209.42]) (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 B111326F445; Fri, 14 Nov 2025 02:41:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088089; cv=fail; b=Gzr0nYrW0o+QoFYiyUTbf5wuLsk+OFFASHEy40E1traKCD1HvSUkPJv2EXHYNQqAcMQcQxaariJV/04h8Yj00wLwEiUkQ/Z/n588/WRttNcXTDSK7Q7Qn++xYAwGYnTNBIabZnVL78Ys/N/j5uzkulCaaiVAwqyRJf8PJN+lb2g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763088089; c=relaxed/simple; bh=c1l+5t+j/IHX04O2YEj51VoTkkPDdkd8SWqVdmJ6Xqk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Rg59CevbktMrOPI/zFOADFz4FIVRKBWwMyL0u8tEnl9OJYajAJeVL/mMygUoFKJEcNhb5RAh7c1ssdoSoGbMnUxGyC88IUrmSa+casvnA06eMUqfkamp0D3r8OU0w79m5iYcbm2pcL+eSI2yz/v6Il7oTxcp5d96qJ7NrUG24E4= 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=Au3O177k; arc=fail smtp.client-ip=40.107.209.42 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="Au3O177k" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LNrUKnGTEH/UpvTC3GqeYHuwoI6pV7pzDnyh0oOhs4Gq584tUTwuaFQBfcYpKm8D9txmcVl8NprUk+xbaL6uCGgcmjU862j35X520UogvQ1zyY2aFAtjyW+MvSnNSKt3ISnEEVPHae74rzZpmldY+AZMG4/c3KpvN73svFkIZdrJUpeiS3fKCDUuYy5fMcF9KyVBbLYMBkwIGXMPp/1LPQYKLRIrZrUkOB7aok/Y4mcPq3XSiyJ5njJ7qKDlsPsEyHtMDXvzLYu7BGz73v+gYZEKoqByg6yi+GuQrJShtFexKiAaMG/xcawShTXY2u2LeHfOsGw70WdnzFcu34zMfQ== 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=pHDrGxFk1xXwl+7Zo7GfldaIueCCLzTq10XDUjZjm/U=; b=tJLyshgOu82uSt792NcuVioVZlKeVj7OGSmUUSYZZwgv6+4GKqm0vYPGqn/HIdpqt2w214Enx/mMgJ3L8PE5s/FF0yqvH9SkmKWOff//pccoMaSN/X3s2H+1pkdU28MXHjXHIBYbKSWb7AwbFDxsOJHZA5YNdEy3gNNUBC8pYsbfO58uCDBPybqX1GP7RQMvlNb3Q2S+gMa0e1H2YBLnSIPrTUlmbv4cUI3GZhBT1DyRZEYf22NesFAzuxTz3RDES33CVOxzzyc857+qR/X6f2NiQVE2kvS9Za9FrYo6eCU+co02WDYxDs1NbXlkYMVpsJ5k+TfLQsasaN1S219Agg== 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=pHDrGxFk1xXwl+7Zo7GfldaIueCCLzTq10XDUjZjm/U=; b=Au3O177kTCnI8tdaf5j/TPPO4m8GNGyIIRiOAh2uZebRZTr7Wwy1foPb7j9ME4zr07o+yduJAW+ztC9/E7tD6TJjV0C8odHBVNKpHcTlPjXOFnbvZHoL71GdVk4llhK650X/TKVal1NM/iNcHJQR8HE2XRAgp71y6FHroHZFW+mesoymUFGGS1KMg6WK54zWdZXTEJLOQIy8FwEnWVr5Awn1dy0hV0fmvLJcQIGNJHKKKYtrxPITgQVsEsR8eLTECvh2horft2dGmjjXgYCr4lZglFGFQl+ndT0D8c5XCmWPTFsVs7e4AzohL9R6pLVSSGMMhrcsjB0wOCbb6n9jsg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) by PH7PR12MB7986.namprd12.prod.outlook.com (2603:10b6:510:27d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov 2025 02:41:19 +0000 Received: from DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb]) by DM3PR12MB9416.namprd12.prod.outlook.com ([fe80::d622:b3e9:bfe1:26bb%7]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025 02:41:19 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH v8 6/6] gpu: nova-core: provide a clear error report for unsupported GPUs Date: Thu, 13 Nov 2025 18:41:09 -0800 Message-ID: <20251114024109.465136-7-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251114024109.465136-1-jhubbard@nvidia.com> References: <20251114024109.465136-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0P220CA0005.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:41b::12) To DM3PR12MB9416.namprd12.prod.outlook.com (2603:10b6:0:4b::8) 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: DM3PR12MB9416:EE_|PH7PR12MB7986:EE_ X-MS-Office365-Filtering-Correlation-Id: 781e39dd-e6fa-4af9-71cf-08de23274a5f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?P/uBX2G2Axs15QoDTfsX7807bQcwYXRXqG7s8cHbmJ40PrkcNlJb4SJjJK13?= =?us-ascii?Q?otAtVLAEDpZqobm/ye4zVOOJy/WOhA2HG9koyXwG3JR56ZAY2EG6rVeLCdCV?= =?us-ascii?Q?GeRfjpensxb1Ni+lCni6/J8U3CG/5asmZ4FY5fEBJYBygJdMC3JlhAcfrLhc?= =?us-ascii?Q?9yLHmSYzgzwtVFFICZUohcJlzBg4xBVSXsAzUxr5a3qutftylu12qzi0DwfL?= =?us-ascii?Q?TxX0mHbGhCH191uKtyp65R9mNois+6JwgVxGgOpNsZ8YOOFk8enBg1jxbwiy?= =?us-ascii?Q?ljAzNWRHF6kUCrza8NSD48G3RcZ/sK7MKVmDyo/wxdVDCRZQ9j1shbCrRxYZ?= =?us-ascii?Q?hAfxKPm3cPjceRtCelmfbHiGsZaYOu1VOWEUdQqY1NJOQ8v+fWlLBzeT8Igg?= =?us-ascii?Q?REbk1ky01B5A8ky666hojoK+4RLnhfHCt4xSm84pUAaRFcO6PYx9LbWuppgB?= =?us-ascii?Q?gjexkPNuHZYbSXHcul136jmlWMNIsDujqFTlh3XgFU/N0MFXm7n3Js3nEFDH?= =?us-ascii?Q?+vikdH9Yy88mDLTSriyNINtJ5N0E0Ip8fG61fzre2FGN+GU3eDLNoDJfPK1Z?= =?us-ascii?Q?zxFa0N1a0yEtbzW2yJ81Kk+7F+niv52+2OWNOG8rx+6kQQTs8nC7cpc99XkR?= =?us-ascii?Q?rIqkaFnYyxSeEH/35GgWrEMMRN37nBjKLjZdVCVGa10iCV8QSXFAp+OFlsXz?= =?us-ascii?Q?4K6khhi/hZ8c7fnY1uAhWWeyCeemoSN/rx78Q0JHVpyx9ct47wC/UIYbk8qy?= =?us-ascii?Q?R4R77666L3xcP1crUMenQ+9SUqvqfGOmB8GbFggtvgm1WiPIG3LLHN6EGhYS?= =?us-ascii?Q?Yr9VcbBrpv9LvozI3LuhaVG2fdyNMs3KHEMY8LxPwRKqRn839Qk7RF/CCExU?= =?us-ascii?Q?/saeFxOakuk7eFDdXV/lhTJZTIeG0iSEqo0QnBvRxH6uRdPh8oErLLrK/U/a?= =?us-ascii?Q?Yl/HDXeA4u6Nmmh6otcrZdN2zsdFKaCT+kqDSYJxJRzbWN2NzOW0qV6jGoOK?= =?us-ascii?Q?XCMBRGKlYq3ljB37fYB8g9PirBaKalzcwl/zQMR7lUKBrKMkZbLyEOW9cgaY?= =?us-ascii?Q?u3QBgBfsuErVXky0/988BRDNr/1vXGY3KWmP5+LTpfwlLLX0WC8PyI6fogmy?= =?us-ascii?Q?NWSdSddlEWtDuMOBw6+P2N4u0iNqiMrhZ6PnJ5NPcxFQlHZf4fwRIvUzDGCI?= =?us-ascii?Q?PSvq14bry8b9EEQaePU/wBBjcuYxa5dbye/YLVlaaweifb0G7/Bccq+FPyP9?= =?us-ascii?Q?vnDD1GX14RDs50adaOsnCFK/5pt3Ii6fQGx2e0+VY33PwIJ8L5wFFXhho1In?= =?us-ascii?Q?NrWAG5TDjW0zmr4yIRxVnVJRSOS55Lte1x2ZTvRsJBEAHmSA/IZCBLBgOvzi?= =?us-ascii?Q?mM0r4CA/zNXmaMT07NTyMq6FwFrC2RpGxeqnsZ9say4aA/S5sGZoiqCDrjxS?= =?us-ascii?Q?ZA77h/SDHZxOdd14a6DR3bEdcxUnG3T2?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM3PR12MB9416.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?s+YZHz/FqbyWlQZNXYlg8al8jaDtvsRqnWT4+km3e3KUVzDsqyQ91l2m4gzm?= =?us-ascii?Q?CTEtucGnsoXJnY/FJIrwz7gcVP7zLhE7TWJrGYGpAXsgCo13I+wyNAiI+evD?= =?us-ascii?Q?al4Kw4A1mFGvi31dzeV4kSqdHPlHfq4VtBzDcr/+FZJoiyq93UG4mtNaFrrh?= =?us-ascii?Q?XioQMUsSd/GAy8JbYxmuqixBoS/dUcYXKzmtqgZnzb77vJm7vDrpDlzas0o7?= =?us-ascii?Q?ctyVVFBYy3g0Qz6FTn5S8z5hdcZID6N7xJzCbK3KyXzKE/u57B8FpwBYBFCl?= =?us-ascii?Q?6/fiGlP/2iU5EwA+Ljoidy6NpOFOVUhKcuE/ouOSa050PsnWFISQmDQ/U5Zo?= =?us-ascii?Q?3DWW/kTMHGLCvzHCjGhI8wWZKDPygP1TU6fMPCDKm4LbSRdjf+SIXm8ApVhU?= =?us-ascii?Q?RrkrdSONluzWviIbaN9Z4NCYdsqE0rlNFxhvmTM7eSL8fHCcv3/+MidZ0h2N?= =?us-ascii?Q?q2ls9ozSo0izyZaH+StiPU9lU8xh3hi7PK559DFVc7lQODUZtSXb/0YB6QkT?= =?us-ascii?Q?vI+cyUmNTbLieXkwPmnVMHdC7BwIouUI0Qj1xMBoWnWMsS0XR8xGfIR9Dej4?= =?us-ascii?Q?Ymutx71EH1hGIkudIEaQO6Dc3OKc42JXIdAKCxTqUFFWXAnNL1vbj1+TUMG/?= =?us-ascii?Q?Km920cTSGECBdh8Ld3M2VI9lxL6FbqZUZ+C5CaBAAKsmUkka9qvIAJ00jNvr?= =?us-ascii?Q?ztdKxJ+08X/J0AqcHVyhgF02D7e+sXu74AjA6GIdX6mQDC18TWQgKm3h3wv2?= =?us-ascii?Q?+kycx/9hNa7ss30n3b1m2K4yu1xVz8Oz+OCnncy8pWJDjKMf13UhleRXZx6e?= =?us-ascii?Q?iEPBhK0OLb7FVnLrGy1CnmtCooDmiCOXmzyFd8M29J3sVAbn5/JzGbsU+AJ/?= =?us-ascii?Q?RQBHTlje1GuK9WBvny65hi5aJcDprQf14/+K3feBAmWiefuU+uh1FAfB5Lne?= =?us-ascii?Q?YdowhIoOHYyjgncmnZeiG5ObIeFyUVGhpA/Bn5ukbopvBsgPdC6FP0q4ippf?= =?us-ascii?Q?ogF9NgKpE2CYsWRJoP5j3Zj1zgPIjP634N/+qcwi4MoOgKGZxQOI9b6W6TZ3?= =?us-ascii?Q?UVK5wh9w8DFJDoUIGxjG5xCvdEdTcvufDCGrJFAG1L4Fs1EmdaagKmbGbOXy?= =?us-ascii?Q?F0EDyq+ATX3VuX7EdFaWmbrISe7vfEADyG5hY7rWSlHDajDp+FernhjErHaC?= =?us-ascii?Q?pd/WwxQG+jdOTMuO3DIEd0t1iGUvQOoVRUMxbSnWSB7agYvoJsjBS2JIxbXg?= =?us-ascii?Q?NpcRJe2iyG4TQUtPYFLExIz+Ez9a7H8r4QKoNP6YtKk+/QCbH6vQgXWKggfW?= =?us-ascii?Q?hry+spJTtEU3UYDnDmzcO6bGAMGkSLP+HBeu4svQGCes5TWiSTyNiy97S98S?= =?us-ascii?Q?9gV5KvGt30DldLvyBvTWYPEejk2E43pf1WbVXsCwXvGrdsGuUNBd5S94CsGD?= =?us-ascii?Q?XbMLDQ43N42QHeIBMLAmRN+Y6CvirHufc3Pctew7R96OguI7JkQUAUUmJDjW?= =?us-ascii?Q?/ie3dJ7vXnmwgbUh8MW23GwDOEyU0svFnoULzVuemv6oWlPnpP81AGyH6Xfj?= =?us-ascii?Q?UhOaMIaUcdiKmI0DSanq6TfJZSksPBB/6JMvZiLC?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 781e39dd-e6fa-4af9-71cf-08de23274a5f X-MS-Exchange-CrossTenant-AuthSource: DM3PR12MB9416.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Nov 2025 02:41:19.3459 (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: q3loe0QP6CEWbxwO2OIPCIB9Ua6DLnzdMjUEAXO1BRLhKh2+NDuCkj2knEuSqtZ7PfI75Z53D/10+OPlQxDL+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7986 Content-Type: text/plain; charset="utf-8" Pass in a PCI device to Spec::new(), and provide a Display implementation for boot42, in order to provide a clear, concise report of what happened: the driver read NV_PMC_BOOT42, and found that the GPU is not supported. For very old GPUs (older than Fermi), the driver still returns ENOTSUPP, but it does so without a driver-specific dmesg report. That is exactly appropriate, because if such a GPU is installed, it can only be supported by Nouveau. And if so, the user is not helped by additional error messages from Nova. Here's the full dmesg output for a Blackwell (not yet supported) GPU: NovaCore 0000:01:00.0: Probe Nova Core GPU driver. NovaCore 0000:01:00.0: Unsupported chipset: boot42 =3D 0x1b2a1000 (architec= ture 0x1b, implementation 0x2) NovaCore 0000:01:00.0: probe with driver NovaCore failed with error -524 Cc: Alexandre Courbot Cc: Danilo Krummrich Cc: Timur Tabi Cc: Joel Fernandes Signed-off-by: John Hubbard --- drivers/gpu/nova-core/gpu.rs | 9 ++++++--- drivers/gpu/nova-core/regs.rs | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index 9bc94811741c..7f8a5c1ed9f1 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -173,7 +173,7 @@ pub(crate) struct Spec { } =20 impl Spec { - fn new(bar: &Bar0) -> Result { + fn new(dev: &device::Device, bar: &Bar0) -> Result { // Some brief notes about boot0 and boot42, in chronological order: // // NV04 through NV50: @@ -198,7 +198,10 @@ fn new(bar: &Bar0) -> Result { return Err(ENOTSUPP); } =20 - Spec::try_from(regs::NV_PMC_BOOT_42::read(bar)) + let boot42 =3D regs::NV_PMC_BOOT_42::read(bar); + Spec::try_from(boot42).inspect_err(|_| { + dev_err!(dev, "Unsupported chipset: {}\n", boot42); + }) } } =20 @@ -250,7 +253,7 @@ pub(crate) fn new<'a>( bar: &'a Bar0, ) -> impl PinInit + 'a { try_pin_init!(Self { - spec: Spec::new(bar).inspect(|spec| { + spec: Spec::new(pdev.as_ref(), bar).inspect(|spec| { dev_info!(pdev.as_ref(),"NVIDIA ({})\n", spec); })?, =20 diff --git a/drivers/gpu/nova-core/regs.rs b/drivers/gpu/nova-core/regs.rs index 81097e83c276..d6da8bc2e242 100644 --- a/drivers/gpu/nova-core/regs.rs +++ b/drivers/gpu/nova-core/regs.rs @@ -68,6 +68,12 @@ pub(crate) fn chipset(self) -> Result { .and_then(Chipset::try_from) } =20 + /// Returns the raw architecture value from the register. + fn architecture_raw(self) -> u8 { + ((self.0 >> Self::ARCHITECTURE_RANGE.start()) & ((1 << Self::ARCHI= TECTURE_RANGE.len()) - 1)) + as u8 + } + /// Returns the revision information of the chip. pub(crate) fn revision(self) -> Revision { Revision { @@ -77,6 +83,18 @@ pub(crate) fn revision(self) -> Revision { } } =20 +impl kernel::fmt::Display for NV_PMC_BOOT_42 { + fn fmt(&self, f: &mut kernel::fmt::Formatter<'_>) -> kernel::fmt::Resu= lt { + write!( + f, + "boot42 =3D 0x{:08x} (architecture 0x{:x}, implementation 0x{:= x})", + self.0, + self.architecture_raw(), + self.implementation() + ) + } +} + // PBUS =20 register!(NV_PBUS_SW_SCRATCH @ 0x00001400[64] {}); --=20 2.51.2