From nobody Tue Apr 7 18:51:41 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010009.outbound.protection.outlook.com [52.101.61.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 3DAB630CDB6; Fri, 27 Feb 2026 12:32:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195571; cv=fail; b=S4HmiwoPLKikcMdLK+nC97KVgZDGqVY0siXHLL/mnbbfqssnjdc7wU3zEh2XLL/BSGyqka4uiDNI9ytad7rvJs/U/bRhiuYa77VFKc6ljwWf573JVIyihNL+JeQrMww9XpFzTrs61PZ8yB57wtYA5OpJeJLilMjJT0AIB25Q3YU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195571; c=relaxed/simple; bh=+ITEjcgCswnZyJ3gqQBwqikl7YnTpGMJlcV5Q2lyYes=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=K3em2qq9L4R/W1ftUjptFAI83vQACyRkURSGbF906a2B0ZcaOhxgmO9MZ1k6THDcvjcfPZr9BJSCWcUFNtIhirznjvWYt/We1z8clx0gabl1RkWgMzC3kqcKkNQv3siR7LNyYFJQ/RRyFnt1qgt++lPIS7HFpfy6lHP7KPFrbBY= 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=N/+2+Gc0; arc=fail smtp.client-ip=52.101.61.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="N/+2+Gc0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p4di6MUecVPQRFey1InMpykh/Q+D0qR/a1PEcLSbjH2/7VOuyOuo0ufGs0teK1ED6GUyNGFPT9XbfsRPnjWC2erPFKlNYA+qAZKVircHoLTaY0QVH2tpHW91cTP2+uIYp6nckNh5g5ZyD0StKdkmVJs9E0jfthID9gjhzxnRViVZSmzUc+FEPHLiJ3htCt1ddO8aB7lJw38HNGw61SOBh8WaqLdcE/FVIZxotzqpNLWtSSeQA9kQtaIqbNCaTdTxvqIy10xx9t/BsXpaG/fusHvxOEH6ym/rIuC1G4y+PuOalk1D2XcuFuKNQj7tYuHXyZfj8sKMKFAXUsDnDxOVEg== 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=5wHaLeiWym0mnWXOKFYtk17jkvO4aDmTzYsMQvU1U1I=; b=DJ8l4HEVwEmfkPQjrRfh5Vj9UGq6ZSzv37DrhJVwL6AIjzJyoSzrwHVSNR4rQqxBsKg7PsUYxAGQjvPfzb3o1p9oKTZ6RbGkbAt4Htnrn+NnTe8sQqXRqKVz/Dv4t8YtSmHhHPhjPc1L3/49IpsJKdI+M0lepf4KnQBeD20SBfIs6MRpwsCw/21aXZFfV/om9XMLTTnMa6H8ceEnpUoX+DKPpaVxtACfqcXkTTag4CBuK2C33wuutju9GkYT5v8lsgofjqsjvXWXYayXUR+w8voud8pUiqteuKODucD28yPECEY/XXiDiQIu7NK0SlT0JNRJ130w4sePBf2oJyhx4A== 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=5wHaLeiWym0mnWXOKFYtk17jkvO4aDmTzYsMQvU1U1I=; b=N/+2+Gc0TUBePjra8Z6cC67X6/Xqm/Dl8Y97kP5zm20r/NmtKZgdc2gKrbXkUHa4DiPbuzuIJgqNayZ/s6ed75OiF1NUunPoQ6G7BtiEFxl7I9OvU+P5wXeoU1ssb9wi5veaMrhk/gyB9FjVsDv0Q0foiLnea0rwUfxRLkPPob2C+ITReikq95aJ7Xo+8pFeKE8ncjdNrbYVUvTpUcv7wMA0p7r9zsDv1MWMgyj4GDoOTvb3wtVt9cLUZc6GCgMyOhl8bHGowHdluhmhYTca3TvS5Efe+LW3MQCMOZ7i7hap8Sfgqip7irRMyTUAezlCpQAqserIMIGnpWwT81Recg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb 2026 12:32:47 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.007; Fri, 27 Feb 2026 12:32:47 +0000 From: Eliot Courtney Date: Fri, 27 Feb 2026 21:32:06 +0900 Subject: [PATCH 1/9] gpu: nova-core: gsp: add NV_STATUS error code bindings Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260227-rmcontrol-v1-1-86648e4869f9@nvidia.com> References: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> In-Reply-To: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P286CA0047.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:36e::16) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|MN2PR12MB4287:EE_ X-MS-Office365-Filtering-Correlation-Id: 063f9af7-6f50-4d80-e7f6-08de75fc5048 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003; X-Microsoft-Antispam-Message-Info: T4sYECvPdA1SmszcdPIJSeVV3h8OCRsOt+fB2uJeO3VEYK739D2WDAateULjiw8yVGBWvMUzngzjgpZJBOSumvIrKX8GF88fxuhwl/TjitLDwyFtu5g1W7op4FFRLUKqXNENGZxJFYT7XRmbPjZI+tkflPF0l+CEaZkQCeOW23RgIxltYSreJ87nHyzqftkOQglGCMa2aGzXgtmolKTeXMO4Uv0Ki5q23OVXnZmCdFacRCPdseDmcCGXnDvkIqBDoNfvPjVZEsA6QjgxYjNnvUOADCaZmU7clIogYSWB34VlzT+zjPUqRLuTbUN3ePTfNB3wwklnKLOGdo8xF1qlIaFIjkOHEmzCHRR5p1Vlsj3a4smoyzIID0PLj4SRxrPMWWpYTs+b1tg0LLWEweJEAp9Maf0SLMwQ1OrPsrEewBenhsX9Qwx7wtwWVZiibRx6h+UjAYfbW2cok4FGBAq809BpCWEGjMfk2QL0S95rM3jgsWDOxmDyiPO1iSlEgXDGkluCMJR98n1fXnFrRItJIqmXyD71HXzqk0+jo3W6LWNAo3TAWhWYu8Nm2ZfR9lkJ+d14hURrq3mVfT+3cvwUTrWzd6XT177VZifFdyS6QL0x8x0B354vA1j5SGwiiceSrKEtlafvjGMFZ7USyWQIXVk04ALqHEAg5tnVh54vtPkH4rzy/QoEPbh/zblHq3MJX9MHQrAiJhb5k5AYr7WtSdiiUJq5yQC44/4tGurO+jg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?blFBQWRhbTVlVGlpbXZsVmJmNFBGWEkwSUpXRit5MXVzVGhiSk83cU9mcnl1?= =?utf-8?B?dFkrZGRyU0VhOVVWRmlla3F6Y3hyemVSUU9wZDZqblpxYTZJaUpXWWU1MWt3?= =?utf-8?B?V0w1YWgrY2J5OEVyWldQWnpCU3BVaFBVcVRmTzVCSEVnVUFIZTc2UWtFMStp?= =?utf-8?B?MHozVGFoQUlPTkh5UVpFcGdibzhxZjhwa2NidS9vbUcvRStaRzRLUXN6dUt0?= =?utf-8?B?V0Iyc2ZuM1dIVXhQZmpGQ0E1UFo5b1FSc0dMVE5NL2NFRUxSdkFsYUppQXor?= =?utf-8?B?dUJtc2YxNC9rQzRaa0E5QUU3dE1XMThnTGNuTm5LRFlhVGRkRlN1R24veVpX?= =?utf-8?B?ejVhSVg3cVZRR3VyZGpwTGp0dFVzSnl0eFlYSUx3M2E3bVVvRlpwV29kNmk5?= =?utf-8?B?c0JUbUg1Z0o4bVp3R3ZYN2ZjdW1rckc3UW9IL25uM0dYbXFWNnlaVXVSaFk4?= =?utf-8?B?K2FpS3hOL2kvZWgzUXlGUTlGWGJsTFkySytjMk9TK2JPSGJtSitmakNvV3Q0?= =?utf-8?B?cGFZR0VwU241d3JBUUdoUTZhbXNqT1E4WWNIcWV1d0xyTVk4UEtDWmRQZEVJ?= =?utf-8?B?TWMzd3I2Y0JmNlVldWFZM25JTm9oTGNEaDhlVzlScGwvZTZQS0VVbVpXZDht?= =?utf-8?B?NHJMVEdiRFVERjJEazNPaVhyV2N5RmNlUWQ0MlVhS2FkWFJqcHU5V2JiYnhr?= =?utf-8?B?eWhoOHFtbU5NdTRlZitKRzJkRXZxMlFRdm9BaDl2ZjRoUXg2bzNzVE5FMDFQ?= =?utf-8?B?WW5SSWlZOVYyc2dRR1JLR1dSWHRERjdPTzZFQ0IxVGpmVHAzVWdnR0tuTGZv?= =?utf-8?B?MkFTNFNhbTgwcXZsSWRBU1NBMFdMRUFWZXg2Y2hxMjBHR3dqV0I2Zm4zNnMv?= =?utf-8?B?L2FJMGl1YnpudWkwaWJJSGY2MUVJUFptWCtONXFHbTdpRGxnY0FWK01YUHFP?= =?utf-8?B?bDlhTXRnUFMxVTBYRTlSRzJMbW5GS2NoMmtIZTEyZ256MUtoNi9jQmd2NjZJ?= =?utf-8?B?MW15YXd2dW94MG5FaTcxd3VhbzNjV1BDS3h4WGtYQ1IyQ1YrUEF2VlFLcDZP?= =?utf-8?B?RHNUVU9zZElIS3A3aXpOL2dOVis5aDh6dUxmYUdrcmJDczVpUWpEckMvZWVs?= =?utf-8?B?bzhaVHRDbitPT2NWWGZFRkcrSWs5OUFMTUlxVllkalRrY0NDUkRsNXpFQzE0?= =?utf-8?B?Ujh2Q0V6WHhpUUJiRDhCUWdFSkN4Ulg3ajBmMVJEcmZhTGhlRFlEM3VadzJa?= =?utf-8?B?UkJsQm9wcHRWbjMvSHYzLyt3d1cvOGsxMEI3NHZwYjJrZ2R5TnA3S0I5QXF3?= =?utf-8?B?YmUwYWRkK2JrcjRNTWREeW9vUTU2YTRWVVVzMWtRQlBFL1lINmZSSHVQaWps?= =?utf-8?B?UlJhbXV0Qll6R3orck1ZNHY0SEZqdmcyTTNOUnloeDFwd1c3d3NFZHRwbERZ?= =?utf-8?B?M0RmNlZHRGNYMVhwNFE2RFlWb3pIeFd2SjNCbEJxOW5sbk14R245SXNud3J0?= =?utf-8?B?bUQ2ZWs3N0o1OFZLSkdBWFBxSlpOdnlRb0U4VnRCQ1BJRUVnbmRMTXFwOVdX?= =?utf-8?B?N0puWFZTY3RoUnZieHBuMmdCOXVrRTRxL0JPdEhldVQzTGpXR01sK2FRMEY0?= =?utf-8?B?ckpIaU5xNGRHc3lIdDhaa05RYUEySkJpU3N5QzBiWG92dTJYZW02Yzh3eEhK?= =?utf-8?B?QzFuUGJzaXp1clppaVZZblFCQ2dLNTROZW43b01tZjV6TTRmbVh6U01OVHNr?= =?utf-8?B?ZzNZMFZEa245ZE9PcnRuT3BLd1BZdTUzZnN0SmpweXUrTktZeHRicVBZbWQv?= =?utf-8?B?RktHTEJ3a0hkOFpKWTF3bmlRbk1GdUkvV08veU9rNG9lZHlCTDJ1QWdpbjRu?= =?utf-8?B?T1pHV0JNUGZSQ1FrTkFkTzdVMVRKcER2U2p0UmlxMEpIZUI1emtvWVg2b0tk?= =?utf-8?B?cnRxdFlSZS8vM3VwVlpPODBFcDRpMWF4WUEzSXBaVzU2SEpIdlFNa00yZThY?= =?utf-8?B?QkhhT0I2SmpySWJZS2I4bVFHRjlNMTErTzd2bkNRUE5UY3lVKzZ1WU9CY1p3?= =?utf-8?B?N3FXYnpYemdaaUY2cFFmamRXZVU3Zk94NERmeEplbmJjVHI5bzI4a1duMk9C?= =?utf-8?B?aVdhSTFaalFvZEJMSk9pckI2N2QwZGQ0OUZKWnBJb2lKR3MwL2ExWFp5UFgy?= =?utf-8?B?UmJSOTFpUm9CL3dwMlhPaFU2MDRRMjc1M3lOYjhtRURUTSt5NW9yZ0xEZUdO?= =?utf-8?B?NFM0WkVvQW4rcGx2MnRQSjNZSGRCWXhEZFFsbUR6Q3BmVEV3MGJaVlcvcllM?= =?utf-8?B?VVRQNU1VTXoxdGx2UVMrRlRZQkNDSFplNnZHVWlnRlRBVFhhc3UvTnhJY2hS?= =?utf-8?Q?ejcAPVs+S2uJYnmGbBbi6JW5W87KYKvQrjgPc4Vk5Y1g2?= X-MS-Exchange-AntiSpam-MessageData-1: +ZyywTj7qmtuRA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 063f9af7-6f50-4d80-e7f6-08de75fc5048 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 12:32:47.3218 (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: FUSE5SEqT4p7whcI2Hvw65OM+HKQ7XMWHHZU9E4ZVXygG8dDGEvAlBO8rdEwnRYJ8dXtMeCK/O+RvxYT0g8A5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287 Add bindgen generated constants for NV_STATUS. This is used for RM control messages. Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs | 144 ++++++++++++++++++= ++++ 1 file changed, 144 insertions(+) diff --git a/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs b/drivers/gp= u/nova-core/gsp/fw/r570_144/bindings.rs index 334e8be5fde8..dd37a7fd58c6 100644 --- a/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs +++ b/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs @@ -379,6 +379,150 @@ pub struct NV2080_CTRL_CMD_FB_GET_FB_REGION_INFO_PARA= MS { pub __bindgen_padding_0: [u8; 4usize], pub fbRegion: [NV2080_CTRL_CMD_FB_GET_FB_REGION_FB_REGION_INFO; 16usiz= e], } +pub const NV_OK: _bindgen_ty_4 =3D 0; +pub const NV_ERR_GENERIC: _bindgen_ty_4 =3D 65535; +pub const NV_ERR_BROKEN_FB: _bindgen_ty_4 =3D 1; +pub const NV_ERR_BUFFER_TOO_SMALL: _bindgen_ty_4 =3D 2; +pub const NV_ERR_BUSY_RETRY: _bindgen_ty_4 =3D 3; +pub const NV_ERR_CALLBACK_NOT_SCHEDULED: _bindgen_ty_4 =3D 4; +pub const NV_ERR_CARD_NOT_PRESENT: _bindgen_ty_4 =3D 5; +pub const NV_ERR_CYCLE_DETECTED: _bindgen_ty_4 =3D 6; +pub const NV_ERR_DMA_IN_USE: _bindgen_ty_4 =3D 7; +pub const NV_ERR_DMA_MEM_NOT_LOCKED: _bindgen_ty_4 =3D 8; +pub const NV_ERR_DMA_MEM_NOT_UNLOCKED: _bindgen_ty_4 =3D 9; +pub const NV_ERR_DUAL_LINK_INUSE: _bindgen_ty_4 =3D 10; +pub const NV_ERR_ECC_ERROR: _bindgen_ty_4 =3D 11; +pub const NV_ERR_FIFO_BAD_ACCESS: _bindgen_ty_4 =3D 12; +pub const NV_ERR_FREQ_NOT_SUPPORTED: _bindgen_ty_4 =3D 13; +pub const NV_ERR_GPU_DMA_NOT_INITIALIZED: _bindgen_ty_4 =3D 14; +pub const NV_ERR_GPU_IS_LOST: _bindgen_ty_4 =3D 15; +pub const NV_ERR_GPU_IN_FULLCHIP_RESET: _bindgen_ty_4 =3D 16; +pub const NV_ERR_GPU_NOT_FULL_POWER: _bindgen_ty_4 =3D 17; +pub const NV_ERR_GPU_UUID_NOT_FOUND: _bindgen_ty_4 =3D 18; +pub const NV_ERR_HOT_SWITCH: _bindgen_ty_4 =3D 19; +pub const NV_ERR_I2C_ERROR: _bindgen_ty_4 =3D 20; +pub const NV_ERR_I2C_SPEED_TOO_HIGH: _bindgen_ty_4 =3D 21; +pub const NV_ERR_ILLEGAL_ACTION: _bindgen_ty_4 =3D 22; +pub const NV_ERR_IN_USE: _bindgen_ty_4 =3D 23; +pub const NV_ERR_INFLATE_COMPRESSED_DATA_FAILED: _bindgen_ty_4 =3D 24; +pub const NV_ERR_INSERT_DUPLICATE_NAME: _bindgen_ty_4 =3D 25; +pub const NV_ERR_INSUFFICIENT_RESOURCES: _bindgen_ty_4 =3D 26; +pub const NV_ERR_INSUFFICIENT_PERMISSIONS: _bindgen_ty_4 =3D 27; +pub const NV_ERR_INSUFFICIENT_POWER: _bindgen_ty_4 =3D 28; +pub const NV_ERR_INVALID_ACCESS_TYPE: _bindgen_ty_4 =3D 29; +pub const NV_ERR_INVALID_ADDRESS: _bindgen_ty_4 =3D 30; +pub const NV_ERR_INVALID_ARGUMENT: _bindgen_ty_4 =3D 31; +pub const NV_ERR_INVALID_BASE: _bindgen_ty_4 =3D 32; +pub const NV_ERR_INVALID_CHANNEL: _bindgen_ty_4 =3D 33; +pub const NV_ERR_INVALID_CLASS: _bindgen_ty_4 =3D 34; +pub const NV_ERR_INVALID_CLIENT: _bindgen_ty_4 =3D 35; +pub const NV_ERR_INVALID_COMMAND: _bindgen_ty_4 =3D 36; +pub const NV_ERR_INVALID_DATA: _bindgen_ty_4 =3D 37; +pub const NV_ERR_INVALID_DEVICE: _bindgen_ty_4 =3D 38; +pub const NV_ERR_INVALID_DMA_SPECIFIER: _bindgen_ty_4 =3D 39; +pub const NV_ERR_INVALID_EVENT: _bindgen_ty_4 =3D 40; +pub const NV_ERR_INVALID_FLAGS: _bindgen_ty_4 =3D 41; +pub const NV_ERR_INVALID_FUNCTION: _bindgen_ty_4 =3D 42; +pub const NV_ERR_INVALID_HEAP: _bindgen_ty_4 =3D 43; +pub const NV_ERR_INVALID_INDEX: _bindgen_ty_4 =3D 44; +pub const NV_ERR_INVALID_IRQ_LEVEL: _bindgen_ty_4 =3D 45; +pub const NV_ERR_INVALID_LIMIT: _bindgen_ty_4 =3D 46; +pub const NV_ERR_INVALID_LOCK_STATE: _bindgen_ty_4 =3D 47; +pub const NV_ERR_INVALID_METHOD: _bindgen_ty_4 =3D 48; +pub const NV_ERR_INVALID_OBJECT: _bindgen_ty_4 =3D 49; +pub const NV_ERR_INVALID_OBJECT_BUFFER: _bindgen_ty_4 =3D 50; +pub const NV_ERR_INVALID_OBJECT_HANDLE: _bindgen_ty_4 =3D 51; +pub const NV_ERR_INVALID_OBJECT_NEW: _bindgen_ty_4 =3D 52; +pub const NV_ERR_INVALID_OBJECT_OLD: _bindgen_ty_4 =3D 53; +pub const NV_ERR_INVALID_OBJECT_PARENT: _bindgen_ty_4 =3D 54; +pub const NV_ERR_INVALID_OFFSET: _bindgen_ty_4 =3D 55; +pub const NV_ERR_INVALID_OPERATION: _bindgen_ty_4 =3D 56; +pub const NV_ERR_INVALID_OWNER: _bindgen_ty_4 =3D 57; +pub const NV_ERR_INVALID_PARAM_STRUCT: _bindgen_ty_4 =3D 58; +pub const NV_ERR_INVALID_PARAMETER: _bindgen_ty_4 =3D 59; +pub const NV_ERR_INVALID_PATH: _bindgen_ty_4 =3D 60; +pub const NV_ERR_INVALID_POINTER: _bindgen_ty_4 =3D 61; +pub const NV_ERR_INVALID_REGISTRY_KEY: _bindgen_ty_4 =3D 62; +pub const NV_ERR_INVALID_REQUEST: _bindgen_ty_4 =3D 63; +pub const NV_ERR_INVALID_STATE: _bindgen_ty_4 =3D 64; +pub const NV_ERR_INVALID_STRING_LENGTH: _bindgen_ty_4 =3D 65; +pub const NV_ERR_INVALID_READ: _bindgen_ty_4 =3D 66; +pub const NV_ERR_INVALID_WRITE: _bindgen_ty_4 =3D 67; +pub const NV_ERR_INVALID_XLATE: _bindgen_ty_4 =3D 68; +pub const NV_ERR_IRQ_NOT_FIRING: _bindgen_ty_4 =3D 69; +pub const NV_ERR_IRQ_EDGE_TRIGGERED: _bindgen_ty_4 =3D 70; +pub const NV_ERR_MEMORY_TRAINING_FAILED: _bindgen_ty_4 =3D 71; +pub const NV_ERR_MISMATCHED_SLAVE: _bindgen_ty_4 =3D 72; +pub const NV_ERR_MISMATCHED_TARGET: _bindgen_ty_4 =3D 73; +pub const NV_ERR_MISSING_TABLE_ENTRY: _bindgen_ty_4 =3D 74; +pub const NV_ERR_MODULE_LOAD_FAILED: _bindgen_ty_4 =3D 75; +pub const NV_ERR_MORE_DATA_AVAILABLE: _bindgen_ty_4 =3D 76; +pub const NV_ERR_MORE_PROCESSING_REQUIRED: _bindgen_ty_4 =3D 77; +pub const NV_ERR_MULTIPLE_MEMORY_TYPES: _bindgen_ty_4 =3D 78; +pub const NV_ERR_NO_FREE_FIFOS: _bindgen_ty_4 =3D 79; +pub const NV_ERR_NO_INTR_PENDING: _bindgen_ty_4 =3D 80; +pub const NV_ERR_NO_MEMORY: _bindgen_ty_4 =3D 81; +pub const NV_ERR_NO_SUCH_DOMAIN: _bindgen_ty_4 =3D 82; +pub const NV_ERR_NO_VALID_PATH: _bindgen_ty_4 =3D 83; +pub const NV_ERR_NOT_COMPATIBLE: _bindgen_ty_4 =3D 84; +pub const NV_ERR_NOT_READY: _bindgen_ty_4 =3D 85; +pub const NV_ERR_NOT_SUPPORTED: _bindgen_ty_4 =3D 86; +pub const NV_ERR_OBJECT_NOT_FOUND: _bindgen_ty_4 =3D 87; +pub const NV_ERR_OBJECT_TYPE_MISMATCH: _bindgen_ty_4 =3D 88; +pub const NV_ERR_OPERATING_SYSTEM: _bindgen_ty_4 =3D 89; +pub const NV_ERR_OTHER_DEVICE_FOUND: _bindgen_ty_4 =3D 90; +pub const NV_ERR_OUT_OF_RANGE: _bindgen_ty_4 =3D 91; +pub const NV_ERR_OVERLAPPING_UVM_COMMIT: _bindgen_ty_4 =3D 92; +pub const NV_ERR_PAGE_TABLE_NOT_AVAIL: _bindgen_ty_4 =3D 93; +pub const NV_ERR_PID_NOT_FOUND: _bindgen_ty_4 =3D 94; +pub const NV_ERR_PROTECTION_FAULT: _bindgen_ty_4 =3D 95; +pub const NV_ERR_RC_ERROR: _bindgen_ty_4 =3D 96; +pub const NV_ERR_REJECTED_VBIOS: _bindgen_ty_4 =3D 97; +pub const NV_ERR_RESET_REQUIRED: _bindgen_ty_4 =3D 98; +pub const NV_ERR_STATE_IN_USE: _bindgen_ty_4 =3D 99; +pub const NV_ERR_SIGNAL_PENDING: _bindgen_ty_4 =3D 100; +pub const NV_ERR_TIMEOUT: _bindgen_ty_4 =3D 101; +pub const NV_ERR_TIMEOUT_RETRY: _bindgen_ty_4 =3D 102; +pub const NV_ERR_TOO_MANY_PRIMARIES: _bindgen_ty_4 =3D 103; +pub const NV_ERR_UVM_ADDRESS_IN_USE: _bindgen_ty_4 =3D 104; +pub const NV_ERR_MAX_SESSION_LIMIT_REACHED: _bindgen_ty_4 =3D 105; +pub const NV_ERR_LIB_RM_VERSION_MISMATCH: _bindgen_ty_4 =3D 106; +pub const NV_ERR_PRIV_SEC_VIOLATION: _bindgen_ty_4 =3D 107; +pub const NV_ERR_GPU_IN_DEBUG_MODE: _bindgen_ty_4 =3D 108; +pub const NV_ERR_FEATURE_NOT_ENABLED: _bindgen_ty_4 =3D 109; +pub const NV_ERR_RESOURCE_LOST: _bindgen_ty_4 =3D 110; +pub const NV_ERR_PMU_NOT_READY: _bindgen_ty_4 =3D 111; +pub const NV_ERR_FLCN_ERROR: _bindgen_ty_4 =3D 112; +pub const NV_ERR_FATAL_ERROR: _bindgen_ty_4 =3D 113; +pub const NV_ERR_MEMORY_ERROR: _bindgen_ty_4 =3D 114; +pub const NV_ERR_INVALID_LICENSE: _bindgen_ty_4 =3D 115; +pub const NV_ERR_NVLINK_INIT_ERROR: _bindgen_ty_4 =3D 116; +pub const NV_ERR_NVLINK_MINION_ERROR: _bindgen_ty_4 =3D 117; +pub const NV_ERR_NVLINK_CLOCK_ERROR: _bindgen_ty_4 =3D 118; +pub const NV_ERR_NVLINK_TRAINING_ERROR: _bindgen_ty_4 =3D 119; +pub const NV_ERR_NVLINK_CONFIGURATION_ERROR: _bindgen_ty_4 =3D 120; +pub const NV_ERR_RISCV_ERROR: _bindgen_ty_4 =3D 121; +pub const NV_ERR_FABRIC_MANAGER_NOT_PRESENT: _bindgen_ty_4 =3D 122; +pub const NV_ERR_ALREADY_SIGNALLED: _bindgen_ty_4 =3D 123; +pub const NV_ERR_QUEUE_TASK_SLOT_NOT_AVAILABLE: _bindgen_ty_4 =3D 124; +pub const NV_ERR_KEY_ROTATION_IN_PROGRESS: _bindgen_ty_4 =3D 125; +pub const NV_ERR_TEST_ONLY_CODE_NOT_ENABLED: _bindgen_ty_4 =3D 126; +pub const NV_ERR_SECURE_BOOT_FAILED: _bindgen_ty_4 =3D 127; +pub const NV_ERR_INSUFFICIENT_ZBC_ENTRY: _bindgen_ty_4 =3D 128; +pub const NV_ERR_NVLINK_FABRIC_NOT_READY: _bindgen_ty_4 =3D 129; +pub const NV_ERR_NVLINK_FABRIC_FAILURE: _bindgen_ty_4 =3D 130; +pub const NV_ERR_GPU_MEMORY_ONLINING_FAILURE: _bindgen_ty_4 =3D 131; +pub const NV_ERR_REDUCTION_MANAGER_NOT_AVAILABLE: _bindgen_ty_4 =3D 132; +pub const NV_ERR_RESOURCE_RETIREMENT_ERROR: _bindgen_ty_4 =3D 134; +pub const NV_WARN_HOT_SWITCH: _bindgen_ty_4 =3D 65537; +pub const NV_WARN_INCORRECT_PERFMON_DATA: _bindgen_ty_4 =3D 65538; +pub const NV_WARN_MISMATCHED_SLAVE: _bindgen_ty_4 =3D 65539; +pub const NV_WARN_MISMATCHED_TARGET: _bindgen_ty_4 =3D 65540; +pub const NV_WARN_MORE_PROCESSING_REQUIRED: _bindgen_ty_4 =3D 65541; +pub const NV_WARN_NOTHING_TO_DO: _bindgen_ty_4 =3D 65542; +pub const NV_WARN_NULL_OBJECT: _bindgen_ty_4 =3D 65543; +pub const NV_WARN_OUT_OF_RANGE: _bindgen_ty_4 =3D 65544; +pub type _bindgen_ty_4 =3D ffi::c_uint; #[repr(C)] #[derive(Debug, Copy, Clone, MaybeZeroable)] pub struct NV2080_CTRL_GPU_GET_GID_INFO_PARAMS { --=20 2.53.0 From nobody Tue Apr 7 18:51:41 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010021.outbound.protection.outlook.com [52.101.46.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 588C43148DD; Fri, 27 Feb 2026 12:32:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.21 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195579; cv=fail; b=PBRyUt7zpThDrEmcicfy0VUjWHzy/XXGT0LvVN5Wa04T3efzj++y/RraPaOXt2jhIXG/k5WLC+qwRhEq2KE8HhWOlJqqJRkMr9VygYsZXDUMd3afKJ4IWG5eP6y+GVZJK6Qje8dMIycmggZZkAEv93SKiacn7rZSfKGO+WgxFtE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195579; c=relaxed/simple; bh=idYk/nvOunu+SQo3t0q5isq8QGSNHiE7ZMJUjcjRn7c=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=EnByviJ13qxqynPDyBi2kc34tvzDoAknIDSl5IKPWvd5GjW9TouNX4/vwJCiK+FIU/dJ4r78BP1acia/OpYlldPYb4+u2RljGR+cLOe5F+FatPjkTR+KS9NJyv0bqUpK9aBFL/VnLjQcbObzB9Xs/Seq0u0BBGIcE1UmQx/LjRA= 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=J/tMN/ou; arc=fail smtp.client-ip=52.101.46.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="J/tMN/ou" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pgb6kV5x21vuTKbnwIg4JxhfodD0gG5Wl6N+NLyV/0SyJGEe1hNy/bScSegwfHVUV6X7dXZETwtChNKKs803FO0uLdJemQxswCEryRBuOpnYD2nI5PctkWn8ov+tUfs6JikjODDSbdCHzqJ6EnvyLahk1lpzkt0EJI16mv6/0LxohJOwgAmzwU5qABTHFT0lOkc8mJcoug6E4N+4XASx/5mMcz1zc793VMiQx4J0HEpfLXB7H/in1u9hACrdVgS4sYaC50jqnEpw31HevDYtBTCOWdlVPOxywLyF6XFczH9ytkd6y9+8Gwo8jUJG6D1IscYx+DoHXL/gZChntXSCsg== 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=+cx/rHVrbSGINlDs63mZF1XN06AvbQrrravh97m13lQ=; b=u50dF/w8bJ7jqbHXZi0/R20MLnxNH3Dqk5+AasSnAGIkCZbJgYr70ar/8yZOX5Rb2NWccdHXDKmJ/XKMJFPzHOChmElLKuj2WLTnMgbzORZxYDg6euJc8OPKerrS8xWvR4rOGZppMJouSA/NyXtkKy6rPFko+Ef9dSzciFdDCcIJFqDYVa0i3go0IYq3G/rV/XIag5odlRKDetAB0jr6ScgrcKiPOXlqZj8/oSiHXsqcBVUinUP58JXK248fCVZHhdDjdN61AKMKB3FZNz5QfSXE4eNt0i+dul/Zzw8PKWNGOYiZna7mUT35POb/u/OfdliJ4i5W1CeMVv0jKm3yzw== 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=+cx/rHVrbSGINlDs63mZF1XN06AvbQrrravh97m13lQ=; b=J/tMN/ouzTLjhr8MgkF2NYVF0ln1PXsezUeI7U97pMq9QuvVOGp923Qh/dNX60M/Pl4hynqhH/vETAhK4traCHeuHV29BhV5z5OKZ8JYEF4yXLJ7n4RfH/ZZwL6yph+w+oQwQ8L11iIjuKFmxl4Wmfjfi+mi5Dmf6Ih7XBvpMzzeXWU79QLecJF/3+jljpeBy8zTXGmYWnGZaXTVSHomUGpMj5WxgKXsa7Ek89TJEdS3G0eCvTAz9VGHRWX5/Cc/EaRflh8JYek1t2x4637mKoiX8cDQ9iV2gZDHnHW8q3uhY7cIxmSVefljtsC05dsHWSDYH9DmoKwl94U6RhiWDQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb 2026 12:32:51 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.007; Fri, 27 Feb 2026 12:32:51 +0000 From: Eliot Courtney Date: Fri, 27 Feb 2026 21:32:07 +0900 Subject: [PATCH 2/9] gpu: nova-core: gsp: add NvStatus enum for RM control errors Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260227-rmcontrol-v1-2-86648e4869f9@nvidia.com> References: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> In-Reply-To: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P301CA0003.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:26f::14) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|MN2PR12MB4287:EE_ X-MS-Office365-Filtering-Correlation-Id: 601831b8-93c6-409b-8f5e-08de75fc52c1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003; X-Microsoft-Antispam-Message-Info: yuX68+F2yi8BJ49qzXChTM0Oe8kYNujTr6uqXTsrIFar6jhTs4BFW9MfFJmlc1C8PDQa5s7xBL1d2tRrnRljSpYDUJcldFC8jOCaO0zsGxvIbNN3vAbXOnwQiig+LQiKOHM3aVDBb3IFIoZ+0z4dTT4GP7nT5Wtbyfh75C59oN067pVScihh/z9I+hOVpFRp/XWUPHti721Q2MdB2Rx79yqUiohjBxTzPmMyIZvYrXtgwVYLmWj9z5oMXmAA89qR5oaT5FTmxyf8GvuUwoybqc42uJQYLCWP1MOLB7xKNuZE3YyTAB0BLoN4bf1LspZgvm1R/rnITIgmkLldUc4IXjn3TLhiMJDwrMiuEMjTKEtMkKxcZaLACODF/oRwJRh05uTS65AJg+p3sWVc7A+lI7RP4YDwO5Hs1DsdfGP3GLIPM7UoKrb1oCkRuckpwQsX5mGeL8+BewEDBY+/uRgtgl8DDs84mDt9xwimPElbieBS5cnwREeV/rcgoVgvtWddDgOb6pzdp+seu5gEh9PXLwE4t8cO5aCx3rxGpf1jN3S52jBO4oydooKP/G+Lv6kpakb+b/6t5PhVYa2V471Gj/s7/6CzrFmMB0ouCS32kXUghm5qCANNa4V33ya7mFfBGP7sxA3iy1f7kX2qwrk3494tIcAB05yzlq+AylTrTOl6IORS36IWSAAnjVshXMHBaNxoTeLxfuhMedcGsJQtyU3E0rj23u2hnrQZGc8PDH0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TEpSVVAwWFVob0toMGo3RkdoTTVwZjNGdGpFWWEyaWxSeUNKQ0VURld1a1NP?= =?utf-8?B?bG83d3VVS3IyZUdzeTJRN2dsWm9rOExqNW9aNlNqaDJCc3ZkS3R5SWwzRDhV?= =?utf-8?B?cFlLMi9BMGxHekR1WjFtSVBrYTNLV0RBTTVodFd4alVhSGFEVkVFRldhMjJx?= =?utf-8?B?YVp2bytCZ1hhSlEzb3Z0ejdaM2ZpMXFjUVhNNEx5eXpwTEV3T3dZOHgwdzRw?= =?utf-8?B?VUdFZGtBUHpkSkhRWFRRc0hlYUdlaXh5L29VNDVMSGtOTGpFSWRONS9LY0ht?= =?utf-8?B?UnBXNTZpMUFuNFdMdVpvM2RWRXRybnNmY3crTndmTEQ2eDFSWEEwL253TC8y?= =?utf-8?B?NjQ1eG1ydE40UjNpaTVWRzM3UXN5TWVjc2hRYWxCeVlFMmMralJJMXVuYTBC?= =?utf-8?B?RC81Qm4yWHVuM0orcFFkSGE5Q3d2bUxmSGNmeklyRzdSTmhQSExiamRrbjhZ?= =?utf-8?B?WTQ4dGp6N3ZCdE9FZjlLTjhBSWtEa2lQb0w4WU12bzVNV3NOTEtGV0Npd29T?= =?utf-8?B?UlF3QmtCakdsTnRQVGhPUDNFWU4rR3pMQlBlT1FFeXpWMjVzTWF4NWhGb0pj?= =?utf-8?B?dlNzZFJqY1d6UlhPQk4rSmJ0R3BWYlVnNmlyQkFxcUhOWmtyNEYxaXVLa09s?= =?utf-8?B?UktXMmpyQ3lMNWd1bXQwbWhpdTVsYUhQeWtubmZJSUFXVUI0OTBjYzE5dzhq?= =?utf-8?B?b2p3eTArZmx6UThDUS9scWh5c25YRE9YL0p2Zk9ITllOQUprRDV5QWJmZ3Rw?= =?utf-8?B?S1FCK2ljaUl3cExOQ1JpVndVbVppQWlBTkwwbVZVUWNCbGw5aGtzdmxXQnNQ?= =?utf-8?B?TjBncU5JeC9GSCt3VnQ2U21Ebld6bFlPeEJTRTlickxEQmQ1bEkzNkE1OW9r?= =?utf-8?B?YUV3ek5rUXpxZTB3SVBXZkUvdmJsNTNIZnFzVVRsVTg0VWtWMFA2MVBIWkxq?= =?utf-8?B?VHB4MWtkZkpVemY2S1haNkI3TmhlcmpWdXdJdDdabVE1cmZ3bWJabm5ZUFox?= =?utf-8?B?akUyMkN5ZG0rVEtUUUQvWUJZckhTWk13OFhGT0NCYzJRa2lzU2ZaMm9ERWho?= =?utf-8?B?VkxBY1IvQ3VqWG5uVm1XWW1WT1JRTW1Vem4zZGhFa2p6K1N1c2xpSWtUSmlj?= =?utf-8?B?cUdVZFpxakxpMElOTUV1M2RnczZnQWNYYW5nZEptTXkvMWZISWJyd0VKNEZD?= =?utf-8?B?eDdXTmZrMkN3aFExQVlqYnVEVjA0TEJlU0VqOXZLNXJZZXBhczVpQWQ5ZW4r?= =?utf-8?B?RGtORWozU2RERlBheGVLV3FveWF3YSs0VDlEZHRHRWNUZG1mWHZydEFVZ0s1?= =?utf-8?B?TForZlZIcDJ4c0I0ZkpuU01qODdwSldKTm9zVmR2M09YdmZXeDlFTzhLSFFD?= =?utf-8?B?MStHK1dEZURVdjhmYVRhNWwvUUpiMEpNRXp0UFk4SnVTc0IrZkF3TXljcUtl?= =?utf-8?B?b0g4YkJGbktYVWIxRjh5S1ZTUUNBTXdtcFgrT0Z2NWRqM28wdWU2ZkNXU2l5?= =?utf-8?B?T1ZZbkhvdVNLVzV1eDRkQjFpNlVhSE9mcEhJMDVYSHBjV2hWcndQanRiMExF?= =?utf-8?B?TVZUMUZaRTVDSTlEdkxRbkRSdW9BdGFRaDMwbWQ3SWdDYjlOc3Q3d1Y2RTZr?= =?utf-8?B?cytBKy8xb3ExQko4azhZR0NHYVRSL3dJRHZOcGVnK0NpRm9oODhuSHA4QXMw?= =?utf-8?B?RFExQXYzeWNrU2VPaGw1eGdxOG93T2RDK1I3ak5ScEhocGRSNXJNV3I5b3Rj?= =?utf-8?B?bHFBOFZ6dzM3dE51bnpsQUxlWlpCYWhQWlVjZjZQQzJjRkhsN1VPTU4yYmpp?= =?utf-8?B?d0V6Qnp0OVdpSHBVN0tZdEdvNnJHZlE5NjliQy9NTHVvWlhEblRDMStHTHFj?= =?utf-8?B?U2pJZVYrWW5ycWUycGF4am50Z1VzVE9uT3NLMk5XRksvSTcxSVVSTHlyOWpY?= =?utf-8?B?VTJSMjdMbC9ROTVNZVVKVVJTU0NnVVlMeC90VTNJZXRmTzBkeVRSWGJCMjVP?= =?utf-8?B?UmpCNUtjazFtTmhsWlc5UFRqYm9TNm1rZno1Smhtc1o4aWdvOGZCRm1wa2c3?= =?utf-8?B?Ly9iQzBkRmJ4YkJuRDI5Sjk5aVRaK2JFeU9sR3hNbnYrOXROeWtSdEtweWtx?= =?utf-8?B?UlZTL2grREYyUS9FWFF3VzROcnlDcWwrbGhXQm80cHlXTGdBRzBwa0pDSW5u?= =?utf-8?B?eEVNRjhadWVQN2s5eFZTU2Q2QzAxQkR1dWF6eWpFVFp6cnRuRmpZMDluek1q?= =?utf-8?B?ZGEwTmhucGQwRzBJQUxnT1lYQ08wYzFxNmU1ZVE3STZ6a3huN3FJWWFNOEJD?= =?utf-8?B?M1NLYlF2djJSdjU0alpyZUFtRXJuTTh0OTNaSW1VZUdjSEwxMjlLK1VQQm5F?= =?utf-8?Q?j/CULSyN12Zz+wVos9Fk5mdJBp3W57Yh8p3f64NaPDl6g?= X-MS-Exchange-AntiSpam-MessageData-1: c8yZ1/2GIsU1BQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 601831b8-93c6-409b-8f5e-08de75fc52c1 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 12:32:51.4814 (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: UzpAMpp71iumPDoZ8PdT2P6m76IzcxnuRP4eD9oiYm0eULvYJoZzF0CBGMEGHStjI5iBXQN/gyzvecBB3tHmPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287 Add NvStatus enum that wraps the raw NV_STATUS u32 codes returned by RM control RPCs. Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/fw.rs | 401 ++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 401 insertions(+) diff --git a/drivers/gpu/nova-core/gsp/fw.rs b/drivers/gpu/nova-core/gsp/fw= .rs index 25fca1f6db2c..c71c45462efd 100644 --- a/drivers/gpu/nova-core/gsp/fw.rs +++ b/drivers/gpu/nova-core/gsp/fw.rs @@ -43,6 +43,407 @@ pub(crate) const GSP_MSG_QUEUE_ELEMENT_SIZE_MAX: usize =3D num::u32_as_usize(bindings::GSP_MSG_QUEUE_ELEMENT_SIZE_MAX); =20 +/// Status code returned by GSP-RM RPCs. +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub(crate) enum NvStatus { + Ok, + AlreadySignalled, + BrokenFb, + BufferTooSmall, + BusyRetry, + CallbackNotScheduled, + CardNotPresent, + CycleDetected, + DmaInUse, + DmaMemNotLocked, + DmaMemNotUnlocked, + DualLinkInuse, + EccError, + FabricManagerNotPresent, + FatalError, + FeatureNotEnabled, + FifoBadAccess, + FlcnError, + FreqNotSupported, + Generic, + GpuDmaNotInitialized, + GpuInDebugMode, + GpuInFullchipReset, + GpuIsLost, + GpuMemoryOnliningFailure, + GpuNotFullPower, + GpuUuidNotFound, + HotSwitch, + I2cError, + I2cSpeedTooHigh, + IllegalAction, + InUse, + InflateCompressedDataFailed, + InsertDuplicateName, + InsufficientPermissions, + InsufficientPower, + InsufficientResources, + InsufficientZbcEntry, + InvalidAccessType, + InvalidAddress, + InvalidArgument, + InvalidBase, + InvalidChannel, + InvalidClass, + InvalidClient, + InvalidCommand, + InvalidData, + InvalidDevice, + InvalidDmaSpecifier, + InvalidEvent, + InvalidFlags, + InvalidFunction, + InvalidHeap, + InvalidIndex, + InvalidIrqLevel, + InvalidLicense, + InvalidLimit, + InvalidLockState, + InvalidMethod, + InvalidObject, + InvalidObjectBuffer, + InvalidObjectHandle, + InvalidObjectNew, + InvalidObjectOld, + InvalidObjectParent, + InvalidOffset, + InvalidOperation, + InvalidOwner, + InvalidParamStruct, + InvalidParameter, + InvalidPath, + InvalidPointer, + InvalidRead, + InvalidRegistryKey, + InvalidRequest, + InvalidState, + InvalidStringLength, + InvalidWrite, + InvalidXlate, + IrqEdgeTriggered, + IrqNotFiring, + KeyRotationInProgress, + LibRmVersionMismatch, + MaxSessionLimitReached, + MemoryError, + MemoryTrainingFailed, + MismatchedSlave, + MismatchedTarget, + MissingTableEntry, + ModuleLoadFailed, + MoreDataAvailable, + MoreProcessingRequired, + MultipleMemoryTypes, + NoFreeFifos, + NoIntrPending, + NoMemory, + NoSuchDomain, + NoValidPath, + NotCompatible, + NotReady, + NotSupported, + NvlinkClockError, + NvlinkConfigurationError, + NvlinkFabricFailure, + NvlinkFabricNotReady, + NvlinkInitError, + NvlinkMinionError, + NvlinkTrainingError, + ObjectNotFound, + ObjectTypeMismatch, + OperatingSystem, + OtherDeviceFound, + OutOfRange, + OverlappingUvmCommit, + PageTableNotAvail, + PidNotFound, + PmuNotReady, + PrivSecViolation, + ProtectionFault, + QueueTaskSlotNotAvailable, + RcError, + ReductionManagerNotAvailable, + RejectedVbios, + ResetRequired, + ResourceLost, + ResourceRetirementError, + RiscvError, + SecureBootFailed, + SignalPending, + StateInUse, + TestOnlyCodeNotEnabled, + Timeout, + TimeoutRetry, + TooManyPrimaries, + UvmAddressInUse, + Unknown(u32), +} + +impl From for Result { + fn from(status: NvStatus) -> Self { + match status { + NvStatus::Ok =3D> Ok(()), + + NvStatus::BufferTooSmall | NvStatus::MoreDataAvailable =3D> Er= r(EMSGSIZE), + + NvStatus::BusyRetry + | NvStatus::DmaInUse + | NvStatus::DualLinkInuse + | NvStatus::GpuInFullchipReset + | NvStatus::InUse + | NvStatus::KeyRotationInProgress + | NvStatus::NotReady + | NvStatus::NvlinkFabricNotReady + | NvStatus::PmuNotReady + | NvStatus::StateInUse + | NvStatus::UvmAddressInUse =3D> Err(EBUSY), + + NvStatus::CardNotPresent + | NvStatus::FabricManagerNotPresent + | NvStatus::InvalidDevice + | NvStatus::ReductionManagerNotAvailable =3D> Err(ENODEV), + + NvStatus::FeatureNotEnabled + | NvStatus::FreqNotSupported + | NvStatus::NotSupported + | NvStatus::TestOnlyCodeNotEnabled =3D> Err(ENOTSUPP), + + NvStatus::GpuUuidNotFound + | NvStatus::MissingTableEntry + | NvStatus::NoSuchDomain + | NvStatus::NoValidPath + | NvStatus::ObjectNotFound =3D> Err(ENOENT), + + NvStatus::I2cSpeedTooHigh + | NvStatus::InvalidAccessType + | NvStatus::InvalidArgument + | NvStatus::InvalidBase + | NvStatus::InvalidChannel + | NvStatus::InvalidClass + | NvStatus::InvalidClient + | NvStatus::InvalidCommand + | NvStatus::InvalidData + | NvStatus::InvalidDmaSpecifier + | NvStatus::InvalidEvent + | NvStatus::InvalidFlags + | NvStatus::InvalidFunction + | NvStatus::InvalidHeap + | NvStatus::InvalidIndex + | NvStatus::InvalidIrqLevel + | NvStatus::InvalidLimit + | NvStatus::InvalidLockState + | NvStatus::InvalidMethod + | NvStatus::InvalidObject + | NvStatus::InvalidObjectBuffer + | NvStatus::InvalidObjectHandle + | NvStatus::InvalidObjectNew + | NvStatus::InvalidObjectOld + | NvStatus::InvalidObjectParent + | NvStatus::InvalidOffset + | NvStatus::InvalidOperation + | NvStatus::InvalidOwner + | NvStatus::InvalidParamStruct + | NvStatus::InvalidParameter + | NvStatus::InvalidPath + | NvStatus::InvalidRegistryKey + | NvStatus::InvalidRequest + | NvStatus::InvalidState + | NvStatus::InvalidStringLength + | NvStatus::InvalidXlate + | NvStatus::LibRmVersionMismatch + | NvStatus::MismatchedSlave + | NvStatus::MismatchedTarget + | NvStatus::MultipleMemoryTypes + | NvStatus::NotCompatible + | NvStatus::ObjectTypeMismatch + | NvStatus::OverlappingUvmCommit + | NvStatus::RejectedVbios =3D> Err(EINVAL), + + NvStatus::IllegalAction =3D> Err(EPERM), + + NvStatus::InsertDuplicateName =3D> Err(EEXIST), + + NvStatus::InsufficientPermissions + | NvStatus::InvalidLicense + | NvStatus::PrivSecViolation =3D> Err(EACCES), + + NvStatus::InsufficientResources | NvStatus::NoMemory | NvStatu= s::PageTableNotAvail =3D> { + Err(ENOMEM) + } + + NvStatus::InsufficientZbcEntry + | NvStatus::MaxSessionLimitReached + | NvStatus::NoFreeFifos + | NvStatus::QueueTaskSlotNotAvailable + | NvStatus::TooManyPrimaries =3D> Err(ENOSPC), + + NvStatus::InvalidAddress | NvStatus::InvalidPointer | NvStatus= ::ProtectionFault =3D> { + Err(EFAULT) + } + + NvStatus::MoreProcessingRequired | NvStatus::TimeoutRetry =3D>= Err(EAGAIN), + + NvStatus::OutOfRange =3D> Err(ERANGE), + + NvStatus::PidNotFound =3D> Err(ESRCH), + + NvStatus::SignalPending =3D> Err(EINTR), + + NvStatus::Timeout =3D> Err(ETIMEDOUT), + + _ =3D> Err(EIO), + } + } +} + +impl From for NvStatus { + fn from(value: u32) -> Self { + match value { + bindings::NV_OK =3D> Self::Ok, + bindings::NV_ERR_ALREADY_SIGNALLED =3D> Self::AlreadySignalled, + bindings::NV_ERR_BROKEN_FB =3D> Self::BrokenFb, + bindings::NV_ERR_BUFFER_TOO_SMALL =3D> Self::BufferTooSmall, + bindings::NV_ERR_BUSY_RETRY =3D> Self::BusyRetry, + bindings::NV_ERR_CALLBACK_NOT_SCHEDULED =3D> Self::CallbackNot= Scheduled, + bindings::NV_ERR_CARD_NOT_PRESENT =3D> Self::CardNotPresent, + bindings::NV_ERR_CYCLE_DETECTED =3D> Self::CycleDetected, + bindings::NV_ERR_DMA_IN_USE =3D> Self::DmaInUse, + bindings::NV_ERR_DMA_MEM_NOT_LOCKED =3D> Self::DmaMemNotLocked, + bindings::NV_ERR_DMA_MEM_NOT_UNLOCKED =3D> Self::DmaMemNotUnlo= cked, + bindings::NV_ERR_DUAL_LINK_INUSE =3D> Self::DualLinkInuse, + bindings::NV_ERR_ECC_ERROR =3D> Self::EccError, + bindings::NV_ERR_FABRIC_MANAGER_NOT_PRESENT =3D> Self::FabricM= anagerNotPresent, + bindings::NV_ERR_FATAL_ERROR =3D> Self::FatalError, + bindings::NV_ERR_FEATURE_NOT_ENABLED =3D> Self::FeatureNotEnab= led, + bindings::NV_ERR_FIFO_BAD_ACCESS =3D> Self::FifoBadAccess, + bindings::NV_ERR_FLCN_ERROR =3D> Self::FlcnError, + bindings::NV_ERR_FREQ_NOT_SUPPORTED =3D> Self::FreqNotSupporte= d, + bindings::NV_ERR_GENERIC =3D> Self::Generic, + bindings::NV_ERR_GPU_DMA_NOT_INITIALIZED =3D> Self::GpuDmaNotI= nitialized, + bindings::NV_ERR_GPU_IN_DEBUG_MODE =3D> Self::GpuInDebugMode, + bindings::NV_ERR_GPU_IN_FULLCHIP_RESET =3D> Self::GpuInFullchi= pReset, + bindings::NV_ERR_GPU_IS_LOST =3D> Self::GpuIsLost, + bindings::NV_ERR_GPU_MEMORY_ONLINING_FAILURE =3D> Self::GpuMem= oryOnliningFailure, + bindings::NV_ERR_GPU_NOT_FULL_POWER =3D> Self::GpuNotFullPower, + bindings::NV_ERR_GPU_UUID_NOT_FOUND =3D> Self::GpuUuidNotFound, + bindings::NV_ERR_HOT_SWITCH =3D> Self::HotSwitch, + bindings::NV_ERR_I2C_ERROR =3D> Self::I2cError, + bindings::NV_ERR_I2C_SPEED_TOO_HIGH =3D> Self::I2cSpeedTooHigh, + bindings::NV_ERR_ILLEGAL_ACTION =3D> Self::IllegalAction, + bindings::NV_ERR_IN_USE =3D> Self::InUse, + bindings::NV_ERR_INFLATE_COMPRESSED_DATA_FAILED =3D> Self::Inf= lateCompressedDataFailed, + bindings::NV_ERR_INSERT_DUPLICATE_NAME =3D> Self::InsertDuplic= ateName, + bindings::NV_ERR_INSUFFICIENT_PERMISSIONS =3D> Self::Insuffici= entPermissions, + bindings::NV_ERR_INSUFFICIENT_POWER =3D> Self::InsufficientPow= er, + bindings::NV_ERR_INSUFFICIENT_RESOURCES =3D> Self::Insufficien= tResources, + bindings::NV_ERR_INSUFFICIENT_ZBC_ENTRY =3D> Self::Insufficien= tZbcEntry, + bindings::NV_ERR_INVALID_ACCESS_TYPE =3D> Self::InvalidAccessT= ype, + bindings::NV_ERR_INVALID_ADDRESS =3D> Self::InvalidAddress, + bindings::NV_ERR_INVALID_ARGUMENT =3D> Self::InvalidArgument, + bindings::NV_ERR_INVALID_BASE =3D> Self::InvalidBase, + bindings::NV_ERR_INVALID_CHANNEL =3D> Self::InvalidChannel, + bindings::NV_ERR_INVALID_CLASS =3D> Self::InvalidClass, + bindings::NV_ERR_INVALID_CLIENT =3D> Self::InvalidClient, + bindings::NV_ERR_INVALID_COMMAND =3D> Self::InvalidCommand, + bindings::NV_ERR_INVALID_DATA =3D> Self::InvalidData, + bindings::NV_ERR_INVALID_DEVICE =3D> Self::InvalidDevice, + bindings::NV_ERR_INVALID_DMA_SPECIFIER =3D> Self::InvalidDmaSp= ecifier, + bindings::NV_ERR_INVALID_EVENT =3D> Self::InvalidEvent, + bindings::NV_ERR_INVALID_FLAGS =3D> Self::InvalidFlags, + bindings::NV_ERR_INVALID_FUNCTION =3D> Self::InvalidFunction, + bindings::NV_ERR_INVALID_HEAP =3D> Self::InvalidHeap, + bindings::NV_ERR_INVALID_INDEX =3D> Self::InvalidIndex, + bindings::NV_ERR_INVALID_IRQ_LEVEL =3D> Self::InvalidIrqLevel, + bindings::NV_ERR_INVALID_LICENSE =3D> Self::InvalidLicense, + bindings::NV_ERR_INVALID_LIMIT =3D> Self::InvalidLimit, + bindings::NV_ERR_INVALID_LOCK_STATE =3D> Self::InvalidLockStat= e, + bindings::NV_ERR_INVALID_METHOD =3D> Self::InvalidMethod, + bindings::NV_ERR_INVALID_OBJECT =3D> Self::InvalidObject, + bindings::NV_ERR_INVALID_OBJECT_BUFFER =3D> Self::InvalidObjec= tBuffer, + bindings::NV_ERR_INVALID_OBJECT_HANDLE =3D> Self::InvalidObjec= tHandle, + bindings::NV_ERR_INVALID_OBJECT_NEW =3D> Self::InvalidObjectNe= w, + bindings::NV_ERR_INVALID_OBJECT_OLD =3D> Self::InvalidObjectOl= d, + bindings::NV_ERR_INVALID_OBJECT_PARENT =3D> Self::InvalidObjec= tParent, + bindings::NV_ERR_INVALID_OFFSET =3D> Self::InvalidOffset, + bindings::NV_ERR_INVALID_OPERATION =3D> Self::InvalidOperation, + bindings::NV_ERR_INVALID_OWNER =3D> Self::InvalidOwner, + bindings::NV_ERR_INVALID_PARAM_STRUCT =3D> Self::InvalidParamS= truct, + bindings::NV_ERR_INVALID_PARAMETER =3D> Self::InvalidParameter, + bindings::NV_ERR_INVALID_PATH =3D> Self::InvalidPath, + bindings::NV_ERR_INVALID_POINTER =3D> Self::InvalidPointer, + bindings::NV_ERR_INVALID_READ =3D> Self::InvalidRead, + bindings::NV_ERR_INVALID_REGISTRY_KEY =3D> Self::InvalidRegist= ryKey, + bindings::NV_ERR_INVALID_REQUEST =3D> Self::InvalidRequest, + bindings::NV_ERR_INVALID_STATE =3D> Self::InvalidState, + bindings::NV_ERR_INVALID_STRING_LENGTH =3D> Self::InvalidStrin= gLength, + bindings::NV_ERR_INVALID_WRITE =3D> Self::InvalidWrite, + bindings::NV_ERR_INVALID_XLATE =3D> Self::InvalidXlate, + bindings::NV_ERR_IRQ_EDGE_TRIGGERED =3D> Self::IrqEdgeTriggere= d, + bindings::NV_ERR_IRQ_NOT_FIRING =3D> Self::IrqNotFiring, + bindings::NV_ERR_KEY_ROTATION_IN_PROGRESS =3D> Self::KeyRotati= onInProgress, + bindings::NV_ERR_LIB_RM_VERSION_MISMATCH =3D> Self::LibRmVersi= onMismatch, + bindings::NV_ERR_MAX_SESSION_LIMIT_REACHED =3D> Self::MaxSessi= onLimitReached, + bindings::NV_ERR_MEMORY_ERROR =3D> Self::MemoryError, + bindings::NV_ERR_MEMORY_TRAINING_FAILED =3D> Self::MemoryTrain= ingFailed, + bindings::NV_ERR_MISMATCHED_SLAVE =3D> Self::MismatchedSlave, + bindings::NV_ERR_MISMATCHED_TARGET =3D> Self::MismatchedTarget, + bindings::NV_ERR_MISSING_TABLE_ENTRY =3D> Self::MissingTableEn= try, + bindings::NV_ERR_MODULE_LOAD_FAILED =3D> Self::ModuleLoadFaile= d, + bindings::NV_ERR_MORE_DATA_AVAILABLE =3D> Self::MoreDataAvaila= ble, + bindings::NV_ERR_MORE_PROCESSING_REQUIRED =3D> Self::MoreProce= ssingRequired, + bindings::NV_ERR_MULTIPLE_MEMORY_TYPES =3D> Self::MultipleMemo= ryTypes, + bindings::NV_ERR_NO_FREE_FIFOS =3D> Self::NoFreeFifos, + bindings::NV_ERR_NO_INTR_PENDING =3D> Self::NoIntrPending, + bindings::NV_ERR_NO_MEMORY =3D> Self::NoMemory, + bindings::NV_ERR_NO_SUCH_DOMAIN =3D> Self::NoSuchDomain, + bindings::NV_ERR_NO_VALID_PATH =3D> Self::NoValidPath, + bindings::NV_ERR_NOT_COMPATIBLE =3D> Self::NotCompatible, + bindings::NV_ERR_NOT_READY =3D> Self::NotReady, + bindings::NV_ERR_NOT_SUPPORTED =3D> Self::NotSupported, + bindings::NV_ERR_NVLINK_CLOCK_ERROR =3D> Self::NvlinkClockErro= r, + bindings::NV_ERR_NVLINK_CONFIGURATION_ERROR =3D> Self::NvlinkC= onfigurationError, + bindings::NV_ERR_NVLINK_FABRIC_FAILURE =3D> Self::NvlinkFabric= Failure, + bindings::NV_ERR_NVLINK_FABRIC_NOT_READY =3D> Self::NvlinkFabr= icNotReady, + bindings::NV_ERR_NVLINK_INIT_ERROR =3D> Self::NvlinkInitError, + bindings::NV_ERR_NVLINK_MINION_ERROR =3D> Self::NvlinkMinionEr= ror, + bindings::NV_ERR_NVLINK_TRAINING_ERROR =3D> Self::NvlinkTraini= ngError, + bindings::NV_ERR_OBJECT_NOT_FOUND =3D> Self::ObjectNotFound, + bindings::NV_ERR_OBJECT_TYPE_MISMATCH =3D> Self::ObjectTypeMis= match, + bindings::NV_ERR_OPERATING_SYSTEM =3D> Self::OperatingSystem, + bindings::NV_ERR_OTHER_DEVICE_FOUND =3D> Self::OtherDeviceFoun= d, + bindings::NV_ERR_OUT_OF_RANGE =3D> Self::OutOfRange, + bindings::NV_ERR_OVERLAPPING_UVM_COMMIT =3D> Self::Overlapping= UvmCommit, + bindings::NV_ERR_PAGE_TABLE_NOT_AVAIL =3D> Self::PageTableNotA= vail, + bindings::NV_ERR_PID_NOT_FOUND =3D> Self::PidNotFound, + bindings::NV_ERR_PMU_NOT_READY =3D> Self::PmuNotReady, + bindings::NV_ERR_PRIV_SEC_VIOLATION =3D> Self::PrivSecViolatio= n, + bindings::NV_ERR_PROTECTION_FAULT =3D> Self::ProtectionFault, + bindings::NV_ERR_QUEUE_TASK_SLOT_NOT_AVAILABLE =3D> Self::Queu= eTaskSlotNotAvailable, + bindings::NV_ERR_RC_ERROR =3D> Self::RcError, + bindings::NV_ERR_REDUCTION_MANAGER_NOT_AVAILABLE =3D> Self::Re= ductionManagerNotAvailable, + bindings::NV_ERR_REJECTED_VBIOS =3D> Self::RejectedVbios, + bindings::NV_ERR_RESET_REQUIRED =3D> Self::ResetRequired, + bindings::NV_ERR_RESOURCE_LOST =3D> Self::ResourceLost, + bindings::NV_ERR_RESOURCE_RETIREMENT_ERROR =3D> Self::Resource= RetirementError, + bindings::NV_ERR_RISCV_ERROR =3D> Self::RiscvError, + bindings::NV_ERR_SECURE_BOOT_FAILED =3D> Self::SecureBootFaile= d, + bindings::NV_ERR_SIGNAL_PENDING =3D> Self::SignalPending, + bindings::NV_ERR_STATE_IN_USE =3D> Self::StateInUse, + bindings::NV_ERR_TEST_ONLY_CODE_NOT_ENABLED =3D> Self::TestOnl= yCodeNotEnabled, + bindings::NV_ERR_TIMEOUT =3D> Self::Timeout, + bindings::NV_ERR_TIMEOUT_RETRY =3D> Self::TimeoutRetry, + bindings::NV_ERR_TOO_MANY_PRIMARIES =3D> Self::TooManyPrimarie= s, + bindings::NV_ERR_UVM_ADDRESS_IN_USE =3D> Self::UvmAddressInUse, + other =3D> Self::Unknown(other), + } + } +} + /// Empty type to group methods related to heap parameters for running the= GSP firmware. enum GspFwHeapParams {} =20 --=20 2.53.0 From nobody Tue Apr 7 18:51:41 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010021.outbound.protection.outlook.com [52.101.46.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 37CE930C343; Fri, 27 Feb 2026 12:32:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.21 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195580; cv=fail; b=VHIVwAItZIXmJOTlW3w4nMfnTOwOlFO30u+hBcDXNh7mmZreFBAqIIG5+ka4r3WiskMiO2KsoF/eJpb2uSn/t3CW4EKHMELX5u8cLFh3JuHNk50cr3PEjIRIJz/AZ9Bh4GwMIpmWI5e7aA398B0XEtbJ3F4kiQNG5v6j+Qobxnk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195580; c=relaxed/simple; bh=6Z8zr0KI2AuXiOdIa0C08QSKd7ZmcmCgKCa3Hb8mnCM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Asvopb6MdZZYx8uAW4N0NIbdT3SGZisXiMDyHq7f8x7CmgozpHnuwQWBVR40LP3ZMo8ROj7DsoWbY6IECTILpjdKTY0nQ9ruFdLWDPPS93s9pfgjd9GIqSMnkX1jWWCEop65V2SpqOcuM+mfDyHrNtlPSTMfXrxLXcdAb7xITr4= 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=ej7FoZ6p; arc=fail smtp.client-ip=52.101.46.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="ej7FoZ6p" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=J62zsUUGiTWcAnIM6ZMpQwfNF6zL/fqSf4W65LY4FwIFbyqHTPNTEXi3w6qsfCT9kLaTUT7uJdFijRm6FUtE96ftr0AcEq+Wl8g1spENBXgrf1E6kIZCdffplnMU99NUY0MrtUScTyufvugG9IDI2g/58VC/N0PRlei4dSYVgNKUXB0PlONopE3rS5qZVtXCtm9cJ2CbG2ghtssLNAnaKmUKhqLeDTQmWLKjVuBt4GAXAOLTFsqw1twSdjiZryOQus4/XhffwCdOQ9i7cMHeMWlE+8elML+PgqwxuJ5EZeKhQUDttlbHt7Gf/EBntTerrSOOulWaugHY5PocA1Golg== 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=CwS7GEVEGDH/gsnjPS8r22Ta2ROIR8YDVVe5yXYrYcE=; b=TfJVwutyxO5sL84fuhPneilMp6FYvZMuifgFMkLGRVUsT74fzksnc/U3ytPfP4xx1FeTEwLGwvQdm4p/DcTFHHAAC+N1GAOFLPsgJS1u+eG2vUVWX1LzDCBJ6Zf+lFqakXYK42sPxoXKiuNb3RLJmJvnyhuFvxTLdS0YJryi4SU3BAF4+vzjm3VlGT9DJugwJicHcI7Klwyqv6VLrOb/wMQa/oiVkaq7v/gfe64vBkON55drbeaY51GYo8ab9FcRATS5LzpOsgZJYgJh5pJKcUiGmh3wrJOy3VeyXHAN+YzkkxGX2mLlU0WuNZiBXGc71uc3fGK/8kT2qzVbFAddYg== 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=CwS7GEVEGDH/gsnjPS8r22Ta2ROIR8YDVVe5yXYrYcE=; b=ej7FoZ6p3zyYRpj04RskQaNKT16HHOUg/a/W/l5K+L9AAuSi6mEA9zrw+umy5G6GPd9cSXj/ytjeWawmfcdlR6oIcJGz5j3bV7vdCeKjWjgORTtEqHLAgbq+Cj5dYNeNa6Mrq6JXbv8hgjycwuEvIw8R72OPOMURRkBciVL+GtEJGSW9WIMV/h6pCQHT53OBQxfPhBmqRIH9KoUKyEgna1qvuApWtHqDbj1Hvf6Fo0LbaCCLPZdEbX1z48njgL4zzYplGfLxyHvnTS+59T0hpRm96s8mcAlSBwHZulo/CCRyj0kj3CXjQhPFzSR7HcaUAHi/a2YxcgiS1kwk+2AAfg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb 2026 12:32:55 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.007; Fri, 27 Feb 2026 12:32:55 +0000 From: Eliot Courtney Date: Fri, 27 Feb 2026 21:32:08 +0900 Subject: [PATCH 3/9] gpu: nova-core: gsp: expose GSP-RM internal client and subdevice handles Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260227-rmcontrol-v1-3-86648e4869f9@nvidia.com> References: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> In-Reply-To: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P286CA0127.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:37f::15) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|MN2PR12MB4287:EE_ X-MS-Office365-Filtering-Correlation-Id: a3df107d-8ba6-4c86-d28f-08de75fc5521 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003; X-Microsoft-Antispam-Message-Info: ne80Lp+/1ODiz9/xzQFpW+2DdDM54Yh/nYHfUHcPeRdPV9AChOem6yPu9mCgNcH8TRLo1khd/N9WHggEmvBCVLOp/yIhLfq7wvH1DRnVALTPbmWk0k3K33KfQzGoVJMpal1IxsZHycAyiS6CoOkhnVgTQ1+XDdE62nX051CTshN4TBXBeQQCpTxra99gNjbFUI5AAOQ7Nam/SgiNVq7N47+iUkrvznpspXEYBR/4ea5ID2VT3Qxfq96GUhVkrLl6sqgRw/cFwlUNtpfUpapu4V1BVEoWk+w3xWZD72jncDJ4WjJM5MZHRY73GvNn8+Whx3AEahfSDzvQRsplAkcEcxza7Fx9zIO4oxicWXVQPdc3l3rq4jWyLu1XIuhmNqaLmQPjfMSJtBIRqh2j4VkjJ62nfj8Kjjudz8TZUlN3scxXH3AT2FOVK+92uZ2nFvh0mvmg2qad512bmudl9mR26Bz4IWzQOX2BOduIDgpWe+LAt03CzfWnVMamB+M34kkUA+rs5MiWV8EnMz3xQZlyU88HlnPmnEzbSJ0tJQgiVSw4XW489su8ssW9Oafo35GoXP9pEBj2p2uWEhl0htcI24Z9SOrLFQssdXgtX8SK6oRerNZiv9fEqQRaaUcRjvztFO2MBL/IjB5bqHIXK6SJ+TGZhji7YllVafnHhZJCOaWP57Hvp29iJJ6VMLyvlIf+H6MHPhebRNdQLGN4nUOE8jDFo0jKOH8LeaWeiwnkkho= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ek9TbnRTN0V5SzZudUhNeTR1bnZDejRUcGpxSVoyRExsbDVsT28xU1NyUFgr?= =?utf-8?B?dWxlTTMrNTJKU2xvRjZ6TEZlY0ZsQVYycmpNcTJwK0x0b1NoMVpIeFJPd0FV?= =?utf-8?B?bTJlN0t0L0xNRUkrdUdGN2U0d2dwRnhHcUVXTVV2djAzWkg0SHFGb0ZnY09K?= =?utf-8?B?cVlRZEN6dkh4Znh4TUJBNjNNOFRaZmt6Wk5yVytEa1NYa3dDQ1J6eTJaVTRw?= =?utf-8?B?YmhPYnNpQ2FSRGZFdDFzR0M2NnlaVkU1bndHeCtCSTYyenpTRGJXNTlNU25R?= =?utf-8?B?c05zeGdwcWpJc2U5Q3RjRUxWc2FVUkdJRU5vYnluS3lRRFZYVGVVTXpub0ls?= =?utf-8?B?alVnNjhQQlNQSVJoelVuanFFZXhnL1QwemlKbEM2Vksvc3FSclUrN2t1dzNS?= =?utf-8?B?bHFoSSthZmtWUS9FK3RCM3pwekdCZFVZTEV5U1BFRDBVczZxT0VpUmNPbWF2?= =?utf-8?B?cnE3ampwYlc3U1M2OUl6OUpBRTNEV3g1MzdKUmI2aXJENkdYelRrVGRkd3ZR?= =?utf-8?B?eDJqNm5Qck5IeVFYc045eXkzRDAwNXZ3TnZJYks3YzRGM3hWOHZFR3pzYURZ?= =?utf-8?B?KzRrSU5ucjc5UHlVdnRHU0FiMnJJemM2ZXIwdTFrc0lhZkxCUzdHcEVXbHpp?= =?utf-8?B?Zm90cHhtbWdOVHZmTkUxWDE0S1A1dHo1Wmx1RHAzWXJENnhuKzF6OGtodWZ6?= =?utf-8?B?MVhkWTZlTXRuOUtGMmlVTnRLdEExRmRvUHJBaXZNSTdQbUdkbEt6Ulc0OW9I?= =?utf-8?B?b3laZXFic2VaS0ZkMGN0QmRpUjU3NVR0ZmdrVjN4TENkbTB0M1FGaDk4c2Ju?= =?utf-8?B?eHZRNERWdkJ4OEZJU2dnaWZLQ3pyOGFLSGZ6ZEJnSUhlLzk4dDFJTmhXZGx5?= =?utf-8?B?TFdHN3hWMDBRTnF3UUJIcjVWcGJneWxKQXgvV2RtUGtBM2pxSjlKSmxRM1hE?= =?utf-8?B?SWZhYWl5cVF2L0EvRGh6SVN0dFNxNjNKWkNVUHE1OVZoREJqYUFMZTB4TUU4?= =?utf-8?B?MTI0MlIySFNLWUkyZlN0U0dRQjEvR2hVN2QwY2RvajhHL3AxR29seFk0NGov?= =?utf-8?B?SEdhbk8xZHBPODV0Vmx2SDZ5OTdvKzVxU1R0YzVjTUw1YUlXdktQV3g4SnR1?= =?utf-8?B?OGMzNUJDaUYzUGRZUlVNWWY0dVkzQTFxSUZPbnpIamhRTXlIWG9yREVGczdL?= =?utf-8?B?c1JPd0s3SzUvb3NlampaVjNRYUU3Y01oVjRyMkRsQVA5bkUrZ2xmc0hWd3Y1?= =?utf-8?B?LzNGOVhXZ0F3cmp1MHhCN3lkd29LekF2QjlNOGVlQk5uMUpwQ3FGWEQ2NURn?= =?utf-8?B?WDNMeUttUW5pME1KRlUrM3NoVlBab1VxOWZ1QjNLVzB3VFVUbkxSdTdhR2pW?= =?utf-8?B?R25rc3p6bmJoTnV2ekFUV0kwSkZ6VXhxMENBVk9RSm1BQ3ovNFRYY0FPY3ZD?= =?utf-8?B?M0J6WkV1aXVXWDJDWVlXVnh3a1gyRkxRKzBzV25Qc3pwdXpsZnI1eFNIcnV0?= =?utf-8?B?Vk9YUWdCZEl3U29hdGE5bE4zcWd5U1pOZ1NnKzZPWm1LTmxKLzlDd1JQWmpT?= =?utf-8?B?ZXVkK1B5bnBpMVhRSllpV1ZXRC9UaFdvN2Q1MkZ1UmFIckRWamJXR292blVD?= =?utf-8?B?VjFMZjlwZnUyVDR5amZnaHVrOTBnck0xeWdod3B3cDFWOUJPZmZrWXZHOWV6?= =?utf-8?B?TlNxTS8zRW5kRXJoa2QxSVFYUlVrWk5UUm8wVGZwa3MyYU9FZkI2K1Fmdm1P?= =?utf-8?B?SGFNdEhUb291SE5HRGozOGZ0UWxUenpTcVZ1Zlp4cUhVQnFESnFGWE5PTnF5?= =?utf-8?B?RDAvd3J5a01uM1J1blZZZU9xS2FENlZiaFl0ZFFsSzZTSnk5YS9ETTdFTi9O?= =?utf-8?B?WG9NUUNpUEx5bW15a0xFKzhSU2Mwa0o0NEl5RGkyTUZPUEV4RUNhNFN1ZDJ2?= =?utf-8?B?NzJSYTN5ZDk2em5oSWt2VE9XcE5ldG85MWpibzhLdFB3Znc5SUtFSGxLYWpK?= =?utf-8?B?K2VLNm1vSDdMUCtIaE5LM3ZrbzJmaGZncHhpR2RDaTJ0bS9uSWM3MllDbndJ?= =?utf-8?B?NEZNZUYwR1paem1xUUdneWxPL2xJZ25sMzlpU2owTFhxdlVMYjQ5R2hxQzhj?= =?utf-8?B?RmNwSjlUaTBsaFBZVW5jVUlZclBvRU1sMlpocXRFdkRjNjNDOFE5TXN4azJG?= =?utf-8?B?ODVaV0ZQcTRobmZFb08zSnRuTjIrSjdXMFh5OTRSeEgzS3VqMXZiTlFTT3lB?= =?utf-8?B?SjYzUC95OGgvWHVrNDFzZTJ5K2FNcTAxTUtkS3EvQ21BNmZnNXR5UGhvb2Zk?= =?utf-8?B?VHMwRE9tVWRwV0N0ZmtJSktBRlRobXJMbmxrZWN0M010RlhxQkhGc1h2R0dD?= =?utf-8?Q?X6ffqCdGsGi5a3JyAelbSVEbyj9MzXvtoy3T9pLBsjzpM?= X-MS-Exchange-AntiSpam-MessageData-1: EAkeIGifkwYsUg== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3df107d-8ba6-4c86-d28f-08de75fc5521 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 12:32:55.4543 (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: uuaGY9kc/3P6R58ZKfw8AboG3Ka84kvw11Hq6MhhbJ9pWTZf/ypy+gxPVPCPl/GePCEXNzLEForv2R27eBz4SQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287 Expose the `hInternalClient` and `hInternalSubdevice` handles. These are needed for RM control calls. Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/commands.rs | 16 ++++++++++++++++ drivers/gpu/nova-core/gsp/fw/commands.rs | 10 ++++++++++ 2 files changed, 26 insertions(+) diff --git a/drivers/gpu/nova-core/gsp/commands.rs b/drivers/gpu/nova-core/= gsp/commands.rs index 4740cda0b51c..2cadfcaf9a8a 100644 --- a/drivers/gpu/nova-core/gsp/commands.rs +++ b/drivers/gpu/nova-core/gsp/commands.rs @@ -197,6 +197,8 @@ fn init(&self) -> impl Init { /// The reply from the GSP to the [`GetGspInfo`] command. pub(crate) struct GetGspStaticInfoReply { gpu_name: [u8; 64], + h_client: u32, + h_subdevice: u32, } =20 impl MessageFromGsp for GetGspStaticInfoReply { @@ -210,6 +212,8 @@ fn read( ) -> Result { Ok(GetGspStaticInfoReply { gpu_name: msg.gpu_name_str(), + h_client: msg.h_internal_client(), + h_subdevice: msg.h_internal_subdevice(), }) } } @@ -236,6 +240,18 @@ pub(crate) fn gpu_name(&self) -> core::result::Result<= &str, GpuNameError> { .to_str() .map_err(GpuNameError::InvalidUtf8) } + + /// Returns the internal client handle allocated by GSP-RM. + #[expect(dead_code)] + pub(crate) fn h_client(&self) -> u32 { + self.h_client + } + + /// Returns the internal subdevice handle allocated by GSP-RM. + #[expect(dead_code)] + pub(crate) fn h_subdevice(&self) -> u32 { + self.h_subdevice + } } =20 /// Send the [`GetGspInfo`] command and awaits for its reply. diff --git a/drivers/gpu/nova-core/gsp/fw/commands.rs b/drivers/gpu/nova-co= re/gsp/fw/commands.rs index 67f44421fcc3..aaf3509a0207 100644 --- a/drivers/gpu/nova-core/gsp/fw/commands.rs +++ b/drivers/gpu/nova-core/gsp/fw/commands.rs @@ -115,6 +115,16 @@ impl GspStaticConfigInfo { pub(crate) fn gpu_name_str(&self) -> [u8; 64] { self.0.gpuNameString } + + /// Returns the internal client handle allocated by GSP-RM. + pub(crate) fn h_internal_client(&self) -> u32 { + self.0.hInternalClient + } + + /// Returns the internal subdevice handle allocated by GSP-RM. + pub(crate) fn h_internal_subdevice(&self) -> u32 { + self.0.hInternalSubdevice + } } =20 // SAFETY: Padding is explicit and will not contain uninitialized data. --=20 2.53.0 From nobody Tue Apr 7 18:51:41 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012011.outbound.protection.outlook.com [52.101.43.11]) (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 61D7A30CDB6; Fri, 27 Feb 2026 12:33:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195583; cv=fail; b=UQG3vJ0hcATIhfJEXmvMCXD6KC8sep986b5AN5gpDsZlu6EfayhnkwsZq+A1r1VN9ysH5udmLjBLhnzNiXCnbRA3hBDJhLpLUL+UIsYMkee35j7fj+5Xc70t94wPYgrAuEScYE6XZqX1eVEN5MWip9puBSkFbBvz1N7UGbs9G8E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195583; c=relaxed/simple; bh=YlbwiKSqqT4a23Icq34LfUsvVwwtSB4/6eHWf7ZtjwY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=GVjDOBuOo1RNMEKxUmA2PkDxkDlk7GwEuWH5/T+cIcIqTp1ms4IJarzH3rhJao72UiN+3kgxJlQcG089+9xKMtO911BHTS4Ex6+MUpK8+j9aKsavb5fGY7smWseDFiDFf8j7g/PLYyfU+rmkegGUXDKKl8yRnAEFsexEoELDDQI= 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=B1Ug0hse; arc=fail smtp.client-ip=52.101.43.11 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="B1Ug0hse" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wwhwQBNbcN5E02vI2FKOPK6P+CefQnj4sN7+qTsf3qUSvD3VMlXEgV3UkHWPvgETbhz2Ev44ZQ+or2Udia+IQM4Dx/ZHsFlsb8De4lR+/WB20ZBq6+hgzIvW/9YFz+aMBnCS98D3G2KnF2vaNbG2KXZYcufPHSt6Ni5hN4Jg/3IVCp+xaSqWgYzbaOa6WdfOhCNe4yQ6Gss/OTgvaSCFK0pxyrjUlnxNtJ9ZXZsxkE5x5ImE/9Gos+7W0m1xMQTvYomPt4y4TXcOs/k47NYbfiW0/crjHGUeZHvSONw29mREe3bKOrbRXhRPrkrGjwU03QSfm0mHS+XVEQZj/Rpt8w== 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=HRW1aL/d5DYpWRV5ydij8rbP624UomG4dN2QXf48veA=; b=wGqnVlxgQfysZbW8HDju+TfuF/XUvLLDek0Toi8iXbHgP5u6Bjw0NJ8LgQMc8lgJowJE0amkv9mktqx9SYnp0C3DjFZbbaMyew4cuGVnpM9c6AiW6NHMv0FTSecPg5891UXL/7CHkUI151Y16z6oqvEDvko8PxXGaTQI1/EoT//rz2Gf4R5jcToXDwurYweb7sTiOEzv/TzLOAoAYlmZc15teJIkJqnB/U2OYMcwCCvt5fed2s8fAdEIlYinn0W8BYKVxX4fIQRcbMhd5mwJe60gGM+FQpeRFfksCgi1M9yQ0vnW9NqP8/yPI9l1RiQcxPNWCCu9X+xpNkOuBpyNoQ== 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=HRW1aL/d5DYpWRV5ydij8rbP624UomG4dN2QXf48veA=; b=B1Ug0hseIkWLpZQ/X0ifTyRIHoZsrvGP2KhSDtDcG/liHA2T4ZQZadVNw2DXocWz2QGv3gQkqI4M0/AfNrXwwejC1ACP+9jE/IT/u85ABu3a9q3QpuQ0m4Q3TbN1b7PjkcBqs1uqCX1DmvVM2Qxty8bZsiAnzeS+mGBvQx3OtG/HSu4em2ez1+Fc9lKcj8K3lU+ilF8d8jYnWaxSVY572WfLTMPu29IBnFi52L85mO4rcGA/C23Oh/3k7LnzjK4A31yBEXrnuVY6yPXPjVYvrRJ+d9C2MGg0uZ/9EJqwFh8xS7Ub3s/41FUCXA1qcVQbR7sy7Nkxe97m689eLmjCOQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb 2026 12:32:59 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.007; Fri, 27 Feb 2026 12:32:59 +0000 From: Eliot Courtney Date: Fri, 27 Feb 2026 21:32:09 +0900 Subject: [PATCH 4/9] gpu: nova-core: gsp: add RM control RPC structure binding Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260227-rmcontrol-v1-4-86648e4869f9@nvidia.com> References: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> In-Reply-To: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY1PR01CA0202.jpnprd01.prod.outlook.com (2603:1096:403::32) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|MN2PR12MB4287:EE_ X-MS-Office365-Filtering-Correlation-Id: f0be3937-7172-4d08-e27f-08de75fc5792 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003; X-Microsoft-Antispam-Message-Info: +jKeQVfdL5+TpJXv/VGxxsCGRbhTNozIMTbhCQ6IcSiNzhhCYp4T5v6eo7LVUn7piG8clp0aEgxFKL2VSXGw0XBosqPPPP1OJX4kOv/7jLJ4RN26YeJu/U4BMm4O0MWkX+vk+P83fNgwBf94YCpmB6H5D5V+qL/6mXWNUW0z2teWM1KG8MSu4Fvbl/RWWS80gfBzDmbfCl6B8CmBA1IMm3xnkP0M8O4KPqcy4Diw4KPbGN8CFNdQ6123hUH8wyaHOIlUmx4ddiCG2Kvt54/W1XRJORIYJyhPtFSoe5rcKNFGkdzaMZiEz8sdiaIzqo24H+LzjkwvylX96ot9dDjMUqIcK5ayzNSj8zrybB2PljpID7zawv7HFvHMS7J1wPIbqu/vTtGh2parvA8/v0XTGEeKkBn/MhrX0pYfouFX6yA4zDe38x3b7H7uzfbG3t4beXwVUUxq56aljgCtgPzQgyyQ/85EkqEw+DYfidE471jSQdFW36xFl3hai4FvkmGgHdVO65uBHSTo5dAf8j9E9yn2BV9zAB+pSlMV3pyzst5B9CHZManqVFF3HqVBabAyexg54YAXiH+6J0GopOq8EFvOzPxC+8mEH8f9QYVQjFBneSkM9opHad5OMxh2mdcZVvJ3pfRSFIfXQVztUKZCdMyqNVOtQ+MBwpHbXPA6qAc3cx9tLpc1FpbgTlLSt8j6FKhvugDnEnspQ79wFuHM+1cSrSNMys2fWoSZCMhaxWs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NDlza0lvWEJtZUo2NXVDei9iTWRRVGU2V3I4M3lJeWtpcUlUQXcwcGdOTml6?= =?utf-8?B?SW1JVlBZMkdmRkJ3bGs0UmVISEZpWEZwQSt2TU5MQXhsTksrU2hOVEhmNFVl?= =?utf-8?B?ZE5sRVltRWJVcHQrRzdXSjlsUUlBT0wrWGtFTG1McVk5TWdXbDRVOUlXb0Rz?= =?utf-8?B?V3JESEx4MlppMmhVTXM2VS81M1BSbmVzMDNINXZiZm5RUWx3Q3NKN3J3eHQ5?= =?utf-8?B?Z0IxNzNmQVY2STZnSkFkRWYxQ1JES1B5Zm9ISEZVRGRnZklXVmxMaytMZElp?= =?utf-8?B?R01MUUJLUDZzZGY3eFpITWJBQXJvR3ZxRDM3UkhKTkl6Y2YwUE5uYVQ4RklM?= =?utf-8?B?bVM3R0pwWmp0Y3plUGNTNlEvRTlFLzVGelhYRHJld0VQMGxMTmxXT3VBRVBD?= =?utf-8?B?Q05qbUdxbEs1VWd5KzV3VzY0Y0ptZmF6eXNLSmcyblc3eGdrL282NnpYencv?= =?utf-8?B?OVJXb3Z4RkZTTTBOSzk2bTdSRDZseXhBN2pnYjhSMW0xV01YMDlrYXZ3eExY?= =?utf-8?B?Nm5UUTYraTlaUGxNaXk4dnFLTU9zdmpvaXlSVlAzc0NlQnZCTEltKy9Xc1BV?= =?utf-8?B?S1dQbmk4VTY3bTYxdkc2d1ZkK0pQaVh4dnpzMTMvY0RhUmdESnh0NmNTc0Np?= =?utf-8?B?dnV0Ny9Dd1JENzdqa0k1ajhBaXBPUDg2bVozaXlPcFNGTXloQUpSU3VlRklJ?= =?utf-8?B?RWYwak1IQU5FcDFRdDgrNENXZ0hrNzJpQUZTVnlLR3d5WU5rNVAvcXU3Q1Br?= =?utf-8?B?dVR1NDVTK213WmltZWVEOU9JRlFRenZOWExOUjVHTEZTYWxSRk1SZi96NzBK?= =?utf-8?B?YUg4WnlCWWM4YldTSlBsS1k4SkhCUENTZzJadTlZbkcrN2FRTjNWcXJwOTFo?= =?utf-8?B?R21QU21pdUFwWm93eVNJaWJLZ3RlWEhvN2JYVStMREFjem84c3l0S005cUFK?= =?utf-8?B?WmcraWVRYnBTRXlRTldGS01NcnVWREl1Ri83MWZQSjJEcEYvSytsbVhib3Bt?= =?utf-8?B?akJIYVczM3IyakRUWHV1eFNKMFRIUlFmNTJlbnZiU0VHL0ZuRXFCVHZTYlc5?= =?utf-8?B?YTZKaUFTYVo1U3pyVzFBM1krSkNNaXRjVkZpQ2N4ZXI1RG45bVNEbjhTNERr?= =?utf-8?B?dzhRdXBUVkE5dzFTcU9jVWNnTkhjR1E4eXhJMGZTd3RRYWEzNkJ3SFFhcmpF?= =?utf-8?B?Y1BGRTY5QkJYMGRtQUtIQnlNanJLVlpxYkg1SjVQZ2lNSEVQVEk4YjVJZkdx?= =?utf-8?B?UVhDL25MbThFbEtzR0UrWkFnMnBkcjVIdWF0RW5mSWZ1N2ljRllRVXF1SEFK?= =?utf-8?B?aFZaWFJtNzFIT25SdElWck9BV0Jvd3grMkE5R1c0K2lMNitVdXhVMG9vcFhj?= =?utf-8?B?UmZySFIvSmZIRE9SVW5lL3hVelRjMG4vSDJrbGc5MlhzR0Z4TjJTR1JINEZo?= =?utf-8?B?ZnV0eWJoeHFianBWV29IdmlkSjExc0d0dkgyT3dCWWdjanBiSGExQjNMcDkv?= =?utf-8?B?elRoR3VmbFB3c3MrRHlPSFRUcFFON0xlN0R6L0tpM0E0cGUzR3JNQWxka1FH?= =?utf-8?B?QTFKY2ljcHcwckw5ZkVXU1VNR2ZyNmRLbzBLN2FMRS95OW90dXFvNStVbWtp?= =?utf-8?B?YzVvUEtjZ0thWit1eXdnZ2hSVHo3RmRBbmR0Mzc0Q3dyenJuWG1iTHJkVWla?= =?utf-8?B?cUo0M3JHcjIyWTF0aEJGK0pSM2JNVm0xdFp6UCtyWmhIaEhMdE9yaU9abTg0?= =?utf-8?B?Mit0QmZ5Q2lxbHdtdlVVWDlCZGF0WkJCNkZlZCtqd1NBWUtJYlFYV01iZzBX?= =?utf-8?B?d016SU9YYzVRY2U5TEdtUzlGbENlTnVadXJ4aDJpNng2M2NWelRzaEdkMHR0?= =?utf-8?B?RjhLeXlHSnFvbUp4ZEQ2NDg0MitLZmRqdXV4VWZQellsSFpGWlpmVU91YXMy?= =?utf-8?B?ODhuQ2VBYWNsY2pvZTZlRFB3THJvK0RKblR3ME05VURaVFFrNkt1ZEZqdjBW?= =?utf-8?B?aU01ZXhiV09Bc3NzWWwzQitjTlNrcUtHamx1bU1yazVRZE94NXFnUGhETVRR?= =?utf-8?B?MWZQK25hUUV0VnVwYUpQQWwvYVJBa1Jicy9kTDl3aWdCd3J1R1VwOWZuTXY1?= =?utf-8?B?ZnZzalNYV3FOMVFENzljeUIzRW5zQjNvdFZyeXJRdmtGU1N4K3pUNEYwZFFw?= =?utf-8?B?Qy9pU2dVQTBMNlA1U1ZUeW5RclB3NStZdktVdld2YmFtUXpMd0k2OXNHR0NN?= =?utf-8?B?REJ3NVp3TjB0K0QweUNIc1A5akRBcERvSXl2eS8xRGovczc4Ukxsc1RaenZQ?= =?utf-8?B?RDlWTThOcnAweUwyVjNBUlFjSmlRRVJIbzZZZ3A1ZWdKdm00ZXR6ckZtQzg0?= =?utf-8?Q?NORrqQizg86U6KkdHmnEUilk1erA8kYG3O206RacbQs1r?= X-MS-Exchange-AntiSpam-MessageData-1: /Gb1UnsDHaRnig== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0be3937-7172-4d08-e27f-08de75fc5792 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 12:32:59.5555 (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: Lr0HxVcCkLQnSlQjT0xrI+cPbLr3fII7dZFjztToXRGrA/13iUd076Mnrho5yTTy4O2Xag343sx8O5UXn1pQCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287 Add the bindgen rpc_gsp_rm_control_v03_00 structure. This is the structure for sending RM control commands. Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs b/drivers/gp= u/nova-core/gsp/fw/r570_144/bindings.rs index dd37a7fd58c6..05e205e6dc58 100644 --- a/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs +++ b/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs @@ -1025,6 +1025,17 @@ fn default() -> Self { } #[repr(C)] #[derive(Debug, Default, MaybeZeroable)] +pub struct rpc_gsp_rm_control_v03_00 { + pub hClient: u32_, + pub hObject: u32_, + pub cmd: u32_, + pub status: u32_, + pub paramsSize: u32_, + pub flags: u32_, + pub params: __IncompleteArrayField, +} +#[repr(C)] +#[derive(Debug, Default, MaybeZeroable)] pub struct rpc_run_cpu_sequencer_v17_00 { pub bufferSizeDWord: u32_, pub cmdIndex: u32_, --=20 2.53.0 From nobody Tue Apr 7 18:51:41 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010012.outbound.protection.outlook.com [52.101.201.12]) (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 8E11633260A; Fri, 27 Feb 2026 12:33:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195591; cv=fail; b=R1kri692KvxWXOvy22mrK5ScTe/THNncpzQRsZRH7sy8J2mkKtMHdMBZzi9PxEeykbsn8w2D/b9vKSvsPRP2rn7y+HiunoR2F777blDmbtw3oRTiGJX/Bvb0prldysBE6C/AdNoUMSmxZB3xSwo9sf6Y3HP/xOtUt//TToGONrU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195591; c=relaxed/simple; bh=H4B7DfURXRvUP7I3y9VTcxuqhAJeGOCNdF9p8VtGjls=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=pZHuk5RpN40ZIyK0MX9zs4HhfRObWEfRMwh5y5xCFy36GBUC6GD1tKvo6tZRqqbA2rOhKGE7CJrgZzvWyv6LqYZPfjdLt2ZLcWsWfZfSS8dH+4xuOy+FqefPAJhGeV08hUhGKDMLIvONPXKCetUbxxb9yeqJsRVdpIQ+AIwNN9c= 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=UpOOV5OW; arc=fail smtp.client-ip=52.101.201.12 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="UpOOV5OW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DgZ+0PJae5gkYRevfavszmrEpJF/eiUIwYQT+3uIDE2s3taEBUT8ays2ehtmOVNJivYZ4LwPdBa0PlH/guHB4P3fruUeSKvHGNsOs9/uOIOV9eK3BIwu3l/wyTAe6fg1u6JcZ029FR4T0VKq/Yuv2Nhx3z6ZYEw+5SpxILyLmVwebgERKXSRxbakCksVZfTGKlTKj47lYHvBW/tof9WaqHGVtYhTAfge3yxXYFzUO3hHCGY2NfQl1jZApMOeu9FFZGqaAaGp6ihahxV76aEqlqcF3M/mUv1ZfhuCyMi5DiPttTsES4YQVdYGaDvszyuM/JwLI+qZEe95AIHD2ylmkg== 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=o1VcUb6T6Ku2vjx7NwTEEsSEtHkDqguSoXQ/nDmJzDo=; b=qE0vcmkcm9DyPxPBjOMYf781tga6CzmnlGqbqzHGbb1CXSD4juHt/Bf+o7aZWENao1S5fMIv0oaJvspx28aT6rW47TGqdA2pescA+u0jXbe8WaIpp4lPEPwP1zxFs16BaSFFoJsZpUTVIyIN4pdlM3YGnTZlQZ0ASgBBbzt3w4j5BxlZs2ec42lZAA3za3rBFvqXdvWw89vpBDLFImnEoN2qEpICSM1Cs+Wzj6Mx2Zy9ZjEifUXW/gtWsu6yjlxKWwn0Z5eaqFtoP6vwFKqoIGGTKCeaTkXsPTlP32R3ayPFmU2cAjlKJj3PSgyWoKctOTbK2GlXYRSGaqphUBNdtQ== 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=o1VcUb6T6Ku2vjx7NwTEEsSEtHkDqguSoXQ/nDmJzDo=; b=UpOOV5OWhEWIqQM0PlUrZ50g4u61MWThDl8kppIsTyqfC8lIgmsYVhXzL4tPbV9OA2FwCwJTlcfFW8gNtGoVBnYxGoLBS5Nu1XeOarHDrgB6ShX4rKMhS5o+plWWb4O/7I/AC/nQ8v70dPBQeH/68rt6UeSp8a7HSCsXatWLHDQjuancenkvC/8kecNmhQUB3OVoe76Oxdy/esd42lGXvCaZvXKzMr6/tnDTWbx7YQgR4E8rua2g8y/v6NGFXlqRnyIY8xm+vohku3zXCQMxVzeVk895C3fkKmixeiIqTd5bcTVaLxGdodA7L4khwqw/peZd0f6uiotlY+4XH4QRzQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb 2026 12:33:03 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.007; Fri, 27 Feb 2026 12:33:03 +0000 From: Eliot Courtney Date: Fri, 27 Feb 2026 21:32:10 +0900 Subject: [PATCH 5/9] gpu: nova-core: gsp: add types for RM control RPCs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260227-rmcontrol-v1-5-86648e4869f9@nvidia.com> References: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> In-Reply-To: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P301CA0126.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:37e::7) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|MN2PR12MB4287:EE_ X-MS-Office365-Filtering-Correlation-Id: dee898ad-ddc4-413f-1158-08de75fc59ce X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003; X-Microsoft-Antispam-Message-Info: BItH1kzprXApP+Polw1hJSR5MM2dc9fXyFMnkGFLxGMk4dreBvS09xC9SpwsGRCzslR4LRV0j4abR/bGft90+5KeylNPmN9VlZrHHk35DPNIai3zwWw57D32jgMsiwuLyzUpeU3JF6ZTtSCLRm7qd7V/apkOFMofmW5oVR7ORFrsUg3vmkxviIkmpeIIQgAYhH7Bh0ZpKJT+FsXgMmFCmUMG9Y/SAUi9v7Ek6bSn0EQVit1HN2C8XjUAQv7YHiPXo5e4a7uuywulfwI69P/rj3y0Hk7cK2epZ+SXojAM8nWZQ2qf/1WhTzODzI22LJFq+YBovdVO+3AdMi45bA/690fG4VwNpk31ugiZ1se4tkaKWKzRW87PZdVs0XwgOi/0B+i8EOBTa2d9JEbGA7bs2ObtfqH+t6Isy5smov+5hozUphvzLb1dZr2eZFpUII9aLVcXSm6Cee4Y/ddD0VwmsJlddFAilQs7MmNygoRpf5WefaA/kjj/BwZJQFHT/RPT7PZ2x5dEm5fjck2Xh1WewQwQ95PxMupw+FfrOhM6OXb3g7BmOhoeWV+TSbNuZuTL93nCd+q82t5wrOyjAACJ6DqvoSiySLPfa10XbsN+XBYSgWLwbe1zNDttmA3dblkoPWtSXAsINPvPZl4NRV0DDLlWYtXGTHQ3pE2CHFIF6P/xNRqyW1wM09KnKcq/L7sj705ODjOZVBxbCc8EGI86ica44kwSjkDgtrKtVf8Cx4U= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?S3F3Slp2T0FoSVJXSnFFM2FBaUx3OHNidVNEU0M3MDVBSWtJbVo3K1hYVVhY?= =?utf-8?B?YjFWell1M1J3dFJ2RlhLMVQwVUlnbHdwZWRSTTJHam5nbHFhNUE0KzdKbGds?= =?utf-8?B?Y3MzY2RBMEk1ZWFTdjZndktDRitaNmNYTVhjSG9nTmpkL3RkY3dBd1huWk82?= =?utf-8?B?Vnd0SWc2bFdSWjVjRzk0bDBISG8rQU1wYmQzRElJbVVvMU1SU1IvdmtuaEhU?= =?utf-8?B?SlVoZGJXN0NKZDJiSEwvUVU0UC9MOU8zby93QlUvdHE3Y3lxYW5MbUhBVjYw?= =?utf-8?B?YjZyNUF4Q29ZUnpFR3FXR1cydDZEOC9TTkVMbFBmMXZVWGw5NlVnYkROSkpw?= =?utf-8?B?TkRRb3owWFpvRjBHVEhqVjhZRHFzRHBMa1pEQ0E1RGFkQVlhdjdEZmdQMHlN?= =?utf-8?B?Ni80SXVuVTVoL2lxTmhvcXplcFptWFJhR0oxYUREc1RnaHlWeHBaeWppckZS?= =?utf-8?B?WEYzWnI5MW1OWFdMWDVMbWhwWm84K3czTWR0a3Q3b1NQSGdxSnZkV04wTXN3?= =?utf-8?B?YzFTaXA3TGxPQVE5eHZLY0k0TStyeFFmdTdoZzJvaE1tK05ySUsyNEtITmVB?= =?utf-8?B?dnNpUmJRRE9KUTBqU04xZ0M0dUE0endsOWVWVHovRVhWd1V3TzREMzhEenYy?= =?utf-8?B?dGprN2NhUEFpVGJxQ05NWjIyaVVla1ViZ1hnQ0N4MEdDbk5ZVTg4UmFCVG5W?= =?utf-8?B?aG1tdHIwM3lJdklZaWZGbmdWSDdNMU5iUEZrWWdaNWNFcTBodUxJaVFlS3k2?= =?utf-8?B?QU1oVncwZ0g4UXFIcXhDaXUxbkE0SFh2NjBPL1lZQzRqL0xIMThGclNBTnhs?= =?utf-8?B?U3FMa0ZxYnpuSU1aaTBqZnR6V3ROc1ZSd3dhWFRncEtWa3o2SVFBSjFhaS9V?= =?utf-8?B?MngyMGl2cUhVdUViYnpMaHV6Mk5rTWhNTHZ4RC9UVGdqMzdnNDFWSXI3NVVV?= =?utf-8?B?T01mR09uanNTV0ZrSXB5R0x6ek03UjgvSFlUVDgwa0VkcUNSZkw0bTJ6MVh1?= =?utf-8?B?dlE2em40UnZKL0dkYkJtT3FJL005b2pManpRM2pzaEZqekUrTDlubFJkUHZZ?= =?utf-8?B?V3hqeFZTZ1YwSFM4MkY2OENqZTNXbGtRSWM0K2tiYSsyUGpWZnY2Qmx3WkNW?= =?utf-8?B?aWNjRVk2K3dYYnVHclNUb2xWN1dHYkRjWFp3cVE3T2dHcnF6d3ZMRmZNajV1?= =?utf-8?B?eHg5TER4ZTJ1THEyQkVwbk5jc1B4dGVXcjV6cTNzRitJS0duSDkzaGtVTW04?= =?utf-8?B?bHJWaWY5cGFuZVhoaXBMOE1WeGpVUXNNREl5WmdVdkFmcnlvbWRWdEk4L2Jm?= =?utf-8?B?bDRLMkNOckhUcjY4N3lTYkxONHNmck54bVIrRXJjNVVESDN0Y0lBZ0hmNWpK?= =?utf-8?B?UmtrQjN3T3pqbGhlZFZOd0Q3OTc1NFovK3FjczM1cHkrejhBVHFPUVV1cEdW?= =?utf-8?B?UWF4YzJzU3NqT3BtZjI0TUhLaDkzTDNDZ08yY2dZYmlFTmFtWGo5d2xEVVBQ?= =?utf-8?B?bUFaWDZDdktYam5leXczTnBOV3pyTmRHZlVmV05NM1RuQkJESXhzRGxJaGg0?= =?utf-8?B?WjBvR1ZBVlVCMkd0L1MzSGc1VzNZNnRBZEtXdmo5ckRoM2F6aXNKQzVOdE92?= =?utf-8?B?bjJRNUFMbkhhemNkeFhKR21hWW5TUGNNQjNMZUZFcmExZVRWbWtUdWN6WS9W?= =?utf-8?B?UkpuditVNjBzbUp2cVpLT0xwR00yeVdaTllwREZBRldndVhHVmFvc3RmdHRx?= =?utf-8?B?UExBWlV5MHFIdGVsdldDWWhrSW5QY1BESkhLR0FjNFdldG1vSzhpQUZ6blhK?= =?utf-8?B?L2xZNll0MFpQUUFRK3lpS0F6OEc4Qi9ieFlodXZleWdqVVFXdWdjbnF2VHMv?= =?utf-8?B?TGhxWGtaaTYzbi9BNnR1MGI2bmVlSUZOR0laOWRCQUlIOUpQNm1RMU9QRGlr?= =?utf-8?B?cHpSdi80bGg4YmNnM2sxN3lhQWxmQWt2SmNNNGtkbXNSQkQzSjdQc05xb3ll?= =?utf-8?B?TzljSTkxcVp6c0VTN1I0RDVSanFpdGRWcnJlcGdoeklSbnp4V3lnRXdia3pu?= =?utf-8?B?N09DNWpsYkZsNkg1bkIzSTJ0ZFVORmFKYjB5alhzTGd4aHZGOUZ0Q2taU0tn?= =?utf-8?B?VkJoWUpMaWVNZmpaZjEvZEQrTGFpc3hTK1dEdkVYVGFGSFJ6UjFMejYvQlZ1?= =?utf-8?B?VFBNblpzeDYwWmNFZjNxL1RMSnRCdVp5aFhTZW1INXNSV2szdEQ2Q0xaWkxW?= =?utf-8?B?ai9yM2RYZGVXNThkbVJ1Vm4yRytxd09yU296d2QxN1dqUGl1cE9hZFl6cUoy?= =?utf-8?B?TXBoS09jdEJSbnpyT3QzUzJEajNzL2h2Ym5CNFViUE1kNkY1WWNwRVlhQlQy?= =?utf-8?Q?VCeIbM2AIWSOOIHi9EMA9fxUgrKFwlN/Xyk2amGtC0G4U?= X-MS-Exchange-AntiSpam-MessageData-1: Odn7+I0mMpaafQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: dee898ad-ddc4-413f-1158-08de75fc59ce X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 12:33:03.4484 (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: 1x+KPX3+quK0yNFl3KoTnc6UgAlXwQtKeRYEWJUqbuD67vGQwZ0i/6/Ol2AQHW/fThs6bW1Lsw95kBoOtciJSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287 Add `RmControlMsgFunction` which mirrors `MsgFunction` in fw.rs. This denotes the type of RM control RPC. For now it contains a single discriminant only (which will be used later), which is needed to prevent compile errors when using an otherwise empty enum. Add `GspRmControl` which wraps the RM control RPC structure from the bindings. Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/fw.rs | 1 + drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs | 1 + drivers/gpu/nova-core/gsp/fw/rm.rs | 82 +++++++++++++++++++= ++++ 3 files changed, 84 insertions(+) diff --git a/drivers/gpu/nova-core/gsp/fw.rs b/drivers/gpu/nova-core/gsp/fw= .rs index c71c45462efd..0796e6c0baf2 100644 --- a/drivers/gpu/nova-core/gsp/fw.rs +++ b/drivers/gpu/nova-core/gsp/fw.rs @@ -2,6 +2,7 @@ =20 pub(crate) mod commands; mod r570_144; +pub(crate) mod rm; =20 // Alias to avoid repeating the version number with every use. use r570_144 as bindings; diff --git a/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs b/drivers/gp= u/nova-core/gsp/fw/r570_144/bindings.rs index 05e205e6dc58..ece31cc32f5b 100644 --- a/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs +++ b/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs @@ -44,6 +44,7 @@ fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::= core::fmt::Result { pub const GSP_FW_WPR_META_MAGIC: i64 =3D -2577556379034558285; pub const REGISTRY_TABLE_ENTRY_TYPE_DWORD: u32 =3D 1; pub const GSP_MSG_QUEUE_ELEMENT_SIZE_MAX: u32 =3D 65536; +pub const NV2080_CTRL_CMD_CE_GET_FAULT_METHOD_BUFFER_SIZE: u32 =3D 5452702= 80; pub type __u8 =3D ffi::c_uchar; pub type __u16 =3D ffi::c_ushort; pub type __u32 =3D ffi::c_uint; diff --git a/drivers/gpu/nova-core/gsp/fw/rm.rs b/drivers/gpu/nova-core/gsp= /fw/rm.rs new file mode 100644 index 000000000000..8bb7b11736b9 --- /dev/null +++ b/drivers/gpu/nova-core/gsp/fw/rm.rs @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: GPL-2.0 + +use kernel::{ + prelude::*, + transmute::{ + AsBytes, + FromBytes, // + }, // +}; + +use super::{ + bindings, + NvStatus, // +}; + +/// Command code for RM control RPCs sent using [`MsgFunction::GspRmContro= l`]. +#[derive(Copy, Clone, Debug, PartialEq)] +#[repr(u32)] +pub(crate) enum RmControlMsgFunction { + /// Get the CE fault method buffer size. + CeGetFaultMethodBufferSize =3D bindings::NV2080_CTRL_CMD_CE_GET_FAULT_= METHOD_BUFFER_SIZE, +} + +impl TryFrom for RmControlMsgFunction { + type Error =3D kernel::error::Error; + + fn try_from(value: u32) -> Result { + match value { + bindings::NV2080_CTRL_CMD_CE_GET_FAULT_METHOD_BUFFER_SIZE =3D>= { + Ok(Self::CeGetFaultMethodBufferSize) + } + _ =3D> Err(EINVAL), + } + } +} + +impl From for u32 { + fn from(value: RmControlMsgFunction) -> Self { + // CAST: `RmControlMsgFunction` is `repr(u32)` and can thus be cas= t losslessly. + value as u32 + } +} + +/// RM control message element structure. +#[derive(Zeroable)] +#[repr(transparent)] +pub(crate) struct GspRmControl { + inner: bindings::rpc_gsp_rm_control_v03_00, +} + +impl GspRmControl { + /// Creates a new RM control command. + pub(crate) fn new( + h_client: u32, + h_object: u32, + cmd: RmControlMsgFunction, + params_size: u32, + ) -> Self { + Self { + inner: bindings::rpc_gsp_rm_control_v03_00 { + hClient: h_client, + hObject: h_object, + cmd: u32::from(cmd), + status: 0, + paramsSize: params_size, + flags: 0, + params: Default::default(), + }, + } + } + + /// Returns the status from the RM control response. + pub(crate) fn status(&self) -> NvStatus { + NvStatus::from(self.inner.status) + } +} + +// SAFETY: This struct only contains integer types for which all bit patte= rns are valid. +unsafe impl FromBytes for GspRmControl {} + +// SAFETY: This struct contains no padding. +unsafe impl AsBytes for GspRmControl {} --=20 2.53.0 From nobody Tue Apr 7 18:51:41 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010012.outbound.protection.outlook.com [52.101.201.12]) (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 11B072F0C48; Fri, 27 Feb 2026 12:33:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195593; cv=fail; b=Yv46UDC3zmbHVAyH4k3T5GPY2aTUpbJvaZXvfExho+mDqBjpNtg61Z6Mp76g2j17gF9/fe7iOcH6txCk7H8UtT+a8D0qdeAzOxLENdsMTNuc52C2yW5ipuXxeYEFCu0PIwsQpbERzgvcEgN/xKwfN4nzQusFU7QTDw4/GdO+Llk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195593; c=relaxed/simple; bh=UTjpOezMB9prqhIc8R5PTgLl7F9lS5BmXQ08k3b5K5M=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=jy/eYIlntgG9g1PIjKuEIYhuVvU2vFBj7r6WMUOQxCcD0TI/5f2EMlvFBlzeGRSaozkXZOtGQgr9dmG25/igB+Li8gaPDwtW2U+qgOhd8OwM5v/pzCdH/gSC39nssyvhHq4JGyo1+bYRDXO2V1hN/RQFAaQrhKpYD8BuB/vuHXI= 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=OjoPhStL; arc=fail smtp.client-ip=52.101.201.12 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="OjoPhStL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a36FOqLyUFU0zB/FA/Og+00yFiJlzNhLSr8G/Og+J6MH8tQ3K5SfzA7RILclNklcrtY1GbMIMB7JktBdCpErVOX6bDJmKlH7hjgCk37nEqpob2IcBKDIvVgRwB9roMDGN4TknNhx5tYBhYJQwaTCauyNb1XB/gz97nG5DOzD+7b8AXZN8Xzd6gPhdXmkkvU/XD5ouimZDN3drFa1U3/zD6sEufuniBqcABGbXQ7cl8Jm3l/DCXQMctaWDj6TkW8A++5ahBspbLW3+A9k9GUmfx4bMZw9GPoxp/HR/iiutjTBwQ+xakPQ/x1eitxB3Nz2D5len1GbvTaKeXy5LO9x3A== 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=qZ9S3HQHvMdRn4u8U1LV8Zcbl4liAGJkFutSnpVVJiM=; b=agNoczqFkWO0roiSE/Zo43Q2yOcctByQszCH3Aa2uH3F8bUcnD1ARZgoVlCUGS8g0pgbQg3yGgRq4BmT2zwlOPLSROj4NNlbCVA8d8x12/C8DcmsqE/33t8/wEdaAeN/lh80bGacCE8nOgIpbcdJN/2uZltrN3L1tzAavI7jSaekzog69Zo5nmeeTDGVvakoTD3B7L1TnnK5cjJGo73un7CFwY3W/E7vEoaimfUaB8vbv+yNc4f2LsutOHAv1HYFfXhY+23XbDf73+lkzKDtQsb98jrmXdFknAjPR08e+4W4bJLHGhxuRqtCTZY+OaAgbc5xf2KmsNTlPxTrohDr6g== 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=qZ9S3HQHvMdRn4u8U1LV8Zcbl4liAGJkFutSnpVVJiM=; b=OjoPhStLCM5E8jqnsTozKmqEjPUw/znoRxfV/i9kzgelKHKcNUoFp+mtVYKVCZkvsfjo3+lo5EWQ3tiFwzppFPF+/APJzEhUSWLnupFNUYl8jvEP456t6u5mgKOqhSXXFbLS5Nfs5busQGW0tGhy4Mrmc6YF5rZ7j0JQXVs/d+eR7TeOiURnij91DxZPoxk5YiiO8zZzSC0CMDH2b8VABxzHLa1XFDmflSgf+MoYXkAm83pyiDzXNVjuMSJbh8uwPtNG7ooqK2nNPDwIRiFMvLhXT5VgnJXhaU+08DH2tP1DfIDtAYY8rUNXXYPJDvF42mEd0P4bm1lccQsO6YVo1g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb 2026 12:33:07 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.007; Fri, 27 Feb 2026 12:33:07 +0000 From: Eliot Courtney Date: Fri, 27 Feb 2026 21:32:11 +0900 Subject: [PATCH 6/9] gpu: nova-core: generalize `flush_into_kvec` to `flush_into_vec` Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260227-rmcontrol-v1-6-86648e4869f9@nvidia.com> References: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> In-Reply-To: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P286CA0059.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:371::6) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|MN2PR12MB4287:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a30342e-780d-4082-9900-08de75fc5c81 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003; X-Microsoft-Antispam-Message-Info: Dzn4b297p3rzk5ugqv+xdLx7zsZzVMbkF32Gis8o6p/zpJYVSLegTgSvCNpPX4bdkiDHeFyLXBTy92iZ8B9WEh5gxqDgays10A7kqflspwp0ZGGI1P07k31xUVEBsO47uGtorxmZPVd57yOqOW4Ip6iopWJw1mjvopq20VJdfcOpnj1frXBxEE0eAmjiX8WwSyKJDd8OvPVuq3pYzStGG4KDExZ5NBs/RtEhEVXQgxpdJiLqi7VsivZLsCdGx78CWDgzwmXhLlmaA1L4Wxpb/88rp4X5JApg/CJM2nUCU0aYF79sa8LOQER3H7dvT/7vK+sCuxUsOf7Btqy7Y99th2HhBdGBnA0UgZp0qas07U5D7zTLCEpU9JEavw4aZWAHDnlj/LAvTTfzkLGgdMqjZrf3caB/q5OCe9u1eC0GZvk+ZNAKIxQp4Yvc0zENdp0TPcii+bLjjtnWCybD5+MwSdtkakk/Q1l01MWAGjUZtkYFLqr8sWL3rmsWUW7LIcG+rfJmWLnWZl6vFm2UgnJvGLucwydV2AlMgtIfqAADqpOsif1lChbB01Me+Ny1bun7jMk2W7P/XrEHWe1YgmDmW5/r/jGWf7//sXH3dEP2xpiFuT+mvMbgfSLPU4Y1V9RDnIMTOBqK/84MrILbmIbtErMdg68zbhc9kxf9jlB+++P9rUzOYHZsU/A4U9heWY+rs1JbP4znU+48tCMY94gHRazjwFD2zbmmDi3/jkp0cSs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dW1RNE9VWkNkMUR2TlViUThhQ1VuNVlMWCtkQXU5Zlo4NEhKL2VPeU84L1My?= =?utf-8?B?TWY2RGhHMVRyazRQL2ovblNVdGo4OEF6M2lYSFBKUGl2aU1JVWhPM3ZlcVgv?= =?utf-8?B?cGtvdnUyTDEwQmUyeFVpUVFWQXZ0Nk55bkFMUmhQRTlROEQ5ZTFNekEzY2VK?= =?utf-8?B?REZmWDUrcVIzYmxKR01pVjRuUEppWEhDYkxHcFRJYXkrdVR3RU5ZbVRmMEFx?= =?utf-8?B?b1h6eDhLSzRXS0UvejExZEFyclZtdHpLbFlLSjc1NHo5Q1kxQUtiWVZVVDVI?= =?utf-8?B?YXhGaTR1MkordVdsQ0VJT2V0ZHNqWUgvUysxeW1hbnpjb2dFemwzRmw5ay9u?= =?utf-8?B?UlFYRjMrVjhNL3ZYbVJ6RGlMTHUzM1pHb25SY2dPVTBCd3B4L3hJdjRaTUJw?= =?utf-8?B?SzlUR3Z5cWNWWnZieUdERkorMUJQOG5BRjh2eEFPS1BJbmF2Qy90cXVGRkhk?= =?utf-8?B?aDRCaENRcFIyK1lST1dQMjhZUUF6bWtqejEvWkxTeDU3STcrQjhBdFY4c2w1?= =?utf-8?B?Ny9OQldNdjhDT2trTk54KzNMNVdrNGVHYkdlOU9oR09RRFNnQ09RK05LYVBw?= =?utf-8?B?VldZeVc2RVZOa2hYdW1KV054VWxrQjY4cDNFVEo1Sjh6dXZ1L2FOY2NJOU5U?= =?utf-8?B?MnRncnE1K2ZnNUMwWTA4L05WNklGVDhkeCtySG5rSEFFREMyTWNBQ283ZXlj?= =?utf-8?B?SjRMcDNDVE1LOERPTnlsYzBXYmxXZHQrMGROcUFGS2RvZHRlcjJuQVBTNldw?= =?utf-8?B?NEg4cmZrdit6WFdjKytNc0Y0ZGI2K003SzUvandXZUV4b2c0Qkw2cnYvaHlV?= =?utf-8?B?Z0ZYYTh4Y2REai9Ud28weC9KcTNEeEV3S3NwUGxEL29QZ3NXTStsb1F5V21L?= =?utf-8?B?Rk1mcEJ1Uk80NEhyUGZSUmlXVEVWeVlPLzIvK2pjSXQxWlZ5bExaL25kWjhD?= =?utf-8?B?eCtGVzVsb1lFeDA5YnhpTVEwV1IraUM4U21DRitzdk1XbHQ4MjU0ZjRuNUZo?= =?utf-8?B?OGRKQlNodVdIdU10cjNhblN5eDVHbWNrQVlqOFpHNm5rZFRaaDA0YVR2T3c0?= =?utf-8?B?azJqRDJXUjA4NjZLbkRQTkhUWStMMnovQ2t2b1N6bUNNT3c0eEtNOG9UMVRM?= =?utf-8?B?QzZ1ZU15Tlo4ZFNjdXQrR3dXTWJ2ZkoxMHVjUFlKUk80L3pub0dZaDZ5NnRK?= =?utf-8?B?RlhYVExNbWMxVmtNS2htQ29aUXk4Qzh6dGtDUzJaQ1ErQTJ5NjV4MDRpdEFQ?= =?utf-8?B?ZHE3SnozOUI3OTZIRnJNYklVK3BHRnhjS212RTY2a0huZ3BCRUN3cHRzODVZ?= =?utf-8?B?UkRUWGdkMHEyU01RemV0M01PUitNZHB6aFhQY2JKazZCZkU2c2JpWWg4N1pn?= =?utf-8?B?ZjhvalowOEhPSWc2S3RnUmxweTgweTlvblQvOFFnbVVxbXM4YWh3MGtNRnRQ?= =?utf-8?B?bkdNWWJGV0ZoekEzNEdFdHNsR204Szd6Mm16N1ZxNkwxSytuWFZmVi9DU0RT?= =?utf-8?B?eWdCcVhrL1NkUWtvTXpGNjlWZkYvZ3JTQ0pjOVdmK1J6UkpuVkN0dVFQcllI?= =?utf-8?B?bW85c1RwSzVPSzdwRG51RkZlOHNYRUNReVNzZ1kvWDkzN2IrT0JOSXN0WGRG?= =?utf-8?B?YXNtV2VlMnJJY0liTXFoWnErUGxrL1NoYnZOYndWc3dWUmtyODRTT0tIMEI1?= =?utf-8?B?TWpIamdZQXBWaW0yMEJiNjRJamlaYUZsRGZUVnRnTWJrTkt4cWNPbFJodTNa?= =?utf-8?B?SGd3Y3pKK2lzMXdnditWZXg0Z3NnTFYzV1BFTjRzYzgxWi9GMmJhQ1dFc00w?= =?utf-8?B?YSs5RGh5bG9Ta2o3RnA5R082UVNZT0ZGVXg0eUt5anhOYlZSa3BwVER6Q1cv?= =?utf-8?B?L2ZZYjZBeEtQOENzYTY1aytEZG9oWktWbW0rOFJsaWtYRUYzeVo0NFVwUlk5?= =?utf-8?B?RU1KQThEa1FDZStuVjRSaHlPa2V2cVh1di9aNXZJMVFweXZkTm41YTBZV3cz?= =?utf-8?B?WTE0RHNFYm9DZmlHMEFpdVlFVEV1cllaQkFuM0pLbC92djZRUi9mMXZZd3dF?= =?utf-8?B?Wjhsc3JiZkNEa29SQ3lwRjJxUzhUbU0rdmJBVG8rdUhOVTkyOVZaNVA0ZEUz?= =?utf-8?B?ZUVtQzRjelVpN1k1ZW13UG8xdCtSekFrbzhVNHYrRnRrMXVSWklsbURBbXdY?= =?utf-8?B?VVQzb3JPVDRPN0o3cWlvU0dmUXF2clpORU1HSUp5MDZkTWY5dUlBQWlydUwr?= =?utf-8?B?Z2ZFRG90UHNzYzBhTWRWODUwdFphT01VSi9xVmpuVnpLdmQ0eFVPcWlpNTlQ?= =?utf-8?B?NmY3UDYxK3JGSTRxV0dSWERYSisrbkNxcUdHQ0NiRkU2cUF0d1NNREZMdEJM?= =?utf-8?Q?NcWp8ayfWkj3McVpeTBUbH75JM0WYjaTerbuYdHP11ZBZ?= X-MS-Exchange-AntiSpam-MessageData-1: F+mqrC1p9DnjbQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a30342e-780d-4082-9900-08de75fc5c81 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 12:33:07.8166 (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: GE2R9cQ+lac8O4PiIR+LZrG6emWinMMc3mOvvERLSFwo5xFBmcXf4sCr5JsxGGARjC4DPtJDdUYXuZWtU/5cvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287 Add general `flush_into_vec` function. Add `flush_into_kvvec` convenience wrapper alongside the existing `flush_into_kvec` function. This is generally useful but immediately used for e.g. holding RM control payloads, which can be large (~>=3D20 KiB). Signed-off-by: Eliot Courtney Reviewed-by: Joel Fernandes --- drivers/gpu/nova-core/sbuffer.rs | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/nova-core/sbuffer.rs b/drivers/gpu/nova-core/sbuff= er.rs index 3a41d224c77a..38f8a8426521 100644 --- a/drivers/gpu/nova-core/sbuffer.rs +++ b/drivers/gpu/nova-core/sbuffer.rs @@ -2,7 +2,13 @@ =20 use core::ops::Deref; =20 -use kernel::prelude::*; +use kernel::{ + alloc::{ + Allocator, + KVec, // + }, + prelude::*, // +}; =20 /// A buffer abstraction for discontiguous byte slices. /// @@ -162,11 +168,14 @@ pub(crate) fn read_exact(&mut self, mut dst: &mut [u8= ]) -> Result { Ok(()) } =20 - /// Read all the remaining data into a [`KVec`]. + /// Read all the remaining data into a [`Vec`] with the given allocato= r. /// /// `self` will be empty after this operation. - pub(crate) fn flush_into_kvec(&mut self, flags: kernel::alloc::Flags) = -> Result> { - let mut buf =3D KVec::::new(); + pub(crate) fn flush_into_vec( + &mut self, + flags: kernel::alloc::Flags, + ) -> Result> { + let mut buf =3D Vec::::new(); =20 if let Some(slice) =3D core::mem::take(&mut self.cur_slice) { buf.extend_from_slice(slice, flags)?; @@ -177,6 +186,20 @@ pub(crate) fn flush_into_kvec(&mut self, flags: kernel= ::alloc::Flags) -> Result< =20 Ok(buf) } + + /// Read all the remaining data into a [`KVec`]. + /// + /// `self` will be empty after this operation. + pub(crate) fn flush_into_kvec(&mut self, flags: kernel::alloc::Flags) = -> Result> { + self.flush_into_vec(flags) + } + + /// Read all the remaining data into a [`KVVec`]. + /// + /// `self` will be empty after this operation. + pub(crate) fn flush_into_kvvec(&mut self, flags: kernel::alloc::Flags)= -> Result> { + self.flush_into_vec(flags) + } } =20 /// Provides a way to get mutable slices of data to write into. --=20 2.53.0 From nobody Tue Apr 7 18:51:41 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010012.outbound.protection.outlook.com [52.101.201.12]) (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 97245355F2E; Fri, 27 Feb 2026 12:33:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195598; cv=fail; b=a8DIQExkB7hbH3LDub2nvH+r1l2UmDQCp+66AiU/8SfLUgtKmOD2avvbUw4BYITAgIOOlS658DVTcJwlwXV+wMFqk1daQlD0gr41dznPZNBDNYekxI0dBa3KkaC+Ev2p51nxkyPZ2HbpYCiwvpQh8FdZHt3Sh3VHYrEXiQ6I4XU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195598; c=relaxed/simple; bh=yLVqh3/tUIgZ6154vYVenzlJEypXnafhBLYWkjrBwYo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Lebc2anS80N67CPEi+ByDLoGuzD5xfIFp2/7JReeg3Yh4K4pEHlY8bCcgXX+Ta4xdF94b4MfbuR9r7t4Vp/zQbQZCKfrTixqBpD2Zp0K9NjAafLOVCBnD7hwH5a/Y/fA9kx9FCaILnDenxj41qLRA/6yZ4rGSk0qWOcRXzOxHiM= 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=KX6t5gcl; arc=fail smtp.client-ip=52.101.201.12 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="KX6t5gcl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LoaD6MTLq6cxH+o1tW+akUVpAA9x3fUnHL+9CNlGAdFU4xpLrStUJEYjAo1KOkwT7GlgqLh9RcxzlaKSxQwzUgSXA8m2uah8K0Eq6bhRqQBL/NPfdxhb6j7uVmEhwmiMO6YTTnTTReOfD15F4TGQwYd7yrqPi46X2pHX/Inli+AMXF9eGrQ9/MKGAzIBUaqORjdo/6/UIudBGDzb++YBV0YOmMQKbAkCoNUZPTyHdOMq/dWE542/DTPiXXobO4miSugS3ZW7l7tTRPcHchgOlSljgDCD4UA/VhNeJYmszm4WrbrFUtKHf55V7xMSbrt5Ynd9TdyhXgMlIQRiUAJH0A== 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=UkQUAiI8BO1fZwi7EThFcxQOmc5ekKkvjpN3rSueTuk=; b=AWd6RiQsWdJOiXgrcqALJhSRvBQAAwkkuDsHMuLb5sS9lRCu0MWr3NzDPFKZzUGZGeMG9Y2pVCsPA0GAB20w6Pj1eA5UeQE9c2HpeekskUkIVb16zo0+AStW45rm+PATIVypAqHwM4VBypSBwU78dWkRji3jIE86Wwf0QiJPjm2zs549VAGh2w1mqlMlWd7rEDORuP3Gltd1sj04Bven3dLiHx1tEbYixcYdgWIJesJ2eLVbB2U/X4Z0bCRRh9we0owWEM7aY8dFKlEph/1kaAuKI5ggA8xeNyUnBZZvrw7PdImtp5+pZSnI/V5TOYmZOfua/x72Hml7fpCQOx6uBQ== 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=UkQUAiI8BO1fZwi7EThFcxQOmc5ekKkvjpN3rSueTuk=; b=KX6t5gcl1RdLCOvegph26GWHhxv/ZYLJMQK6Hk52uWSHtyW5nj4ST9lhQM4GDIrv3/s16X0gmk5uozsq1jFU1GLgwHhzLgz3X/kHCSCcqyscdmUP6CH28enNPBowm16lju8tRsXjYIlyiEepAtYBK2dgK72zBK5MSIFj2VZhyekGf6Tsz4jrP4quby8Q0ql3Be2zHQUPOLvVF4roVA4tNMoeEzuBJnI3RKLbt+migBg74oBayZx5LccD9Yui2O7/InmPbkssx5CimryhyAjEWmpWvBh2QU85PebqZQN/TXEMLwI7Og2/Ftj6RjUMt2Pmtvypf2SsnSK/I1kUwiBtkA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb 2026 12:33:11 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.007; Fri, 27 Feb 2026 12:33:11 +0000 From: Eliot Courtney Date: Fri, 27 Feb 2026 21:32:12 +0900 Subject: [PATCH 7/9] gpu: nova-core: gsp: add RM control command infrastructure Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260227-rmcontrol-v1-7-86648e4869f9@nvidia.com> References: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> In-Reply-To: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCPR01CA0159.jpnprd01.prod.outlook.com (2603:1096:400:2b1::15) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|MN2PR12MB4287:EE_ X-MS-Office365-Filtering-Correlation-Id: 22a5d3ca-8836-4544-0101-08de75fc5e95 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003; X-Microsoft-Antispam-Message-Info: BnPSG6SFOk23G54qceeu9xkyoSQei0M3Ic0ipMon8iB/VDEYCf/XnTcMHJqnepcl+w225J8Yiw/WNm8RJGtDfFkeMYv/V5vGZKSUln3yR01zMMekBsF9W1Y52YkIrUhn4aXGQ6RWtcC+00W4/nBQAKpaQ51/96jdX3RLh3dnB3LFow0i4Mjk2bP78VXPyJwNhjdYSu00VXyFiTCaOYOcMR/GZChnWHtQYc+QyF9i3PuKDQ23ulB3HSKaJglmgJXJP3Vx/OFw/lxCPqYQ5bVYdeWiUgQAPNxaJ0y9KchaaaJW4E7n7cT4DxuiOWA6ZmKehZOaAZ1G6SUclebemqCkpdG8lmc3E7t9NOTe3tGPk+8RCF4/g2ltwCx7zucG+ALLRj1e2LtVDrXo6OfWHxvrj2SCAaJNxvcDe1rcimoSJwGPg79Qe9Jd1KhXVmLtnnkRZP2LHq9Cstz3sVbNbOskTLJofwIbq71rkHwOsIUZvj0uIm4x4PuyUDwx8xQ7D1FG/YiXk7wVamisRoLTd0bai7a503YrNbhkWjIiuQWBgllAg1NhYweyS1WtLw1hzS0EzPBs1odE8PJThCZJLjTn2jUH3KIuv7dX8G3e3xeaVg3AJfKpmeggYRvSKc/MCxoD0Lz17qGN9uFJO08ksS1tXYf1XAEMIk3gHjjBQJ7fkf07M9pJvCBj9/LkLWjFK/wg7nj+vC3hzz5pwsXgFDZcB08u/Kh5br/2z0bkdMNpBu4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NjFyb3ZyZzFuU2xtVnc3eFJacmxEVVJJWjlNUHFLcldQdFNNNXFsSW16aVlC?= =?utf-8?B?MEtaTXplTW54QnJnUlU2Q0RZOTYvYWRhS3oyYnR5T0Vrb3kzY292a2I5aE9q?= =?utf-8?B?T01GcDhjeW5tRFcxYUVhejZoQTZDbGgxQWQ5cytJZ0t0OGU4SW12TWV6YXQ3?= =?utf-8?B?YitvaXFCTjM0Z2tmUm9nQlNic3MwNzlzK0xqVmU0TjVKSmk2eDRiZG1qRTRS?= =?utf-8?B?Mk5VNm1OTHk3bmxVYjBrMmVkQ2xiZ1Robmw3T1NldXJiZ1lTL2J1Zko0Y1pl?= =?utf-8?B?REk3UlRDRUN6TGZGWTFLbHYyZVpxV3FRRkRIaERWM1NCcWMyNkhuOTZZdXFw?= =?utf-8?B?VG0yQ1JoMGFJazlqTkxndUE0enhmOWViczFlSEk2WWJ3R3pqQXVZNzBpcXdK?= =?utf-8?B?T0g0RGo0eVRTKzY3cEpydFk4dk5hODl1bTlUdEFJdEdxSXd0YWwwb3NyQzh0?= =?utf-8?B?d0tvcWpsYnpsZ092L2pYWE9MbkRMbURMcW5ncTZGRXZUb2FKRXkwU2xhME9l?= =?utf-8?B?VGxvR2Z5N3NwektaL040M1hOaTVwU29KRWZQWE94U3ZrVUxIV2F1QWJaUjRE?= =?utf-8?B?UWFDcUl4Q01KSzBJenEvTXJOTVhNUjU4eEFDSmVBZjNMenoyVmQ3YUptekkz?= =?utf-8?B?dUo2TXJ3WUYycWlZZ2VhcmRlZzlXRVl3YklNZng1dzVTbHRVMm9zTm14cGlQ?= =?utf-8?B?azNBNFc0Mk9Pdkd0eUdPR3d6bWdDU011VkxDcTJhcFZ1UWtIWUZDWlJtZTFG?= =?utf-8?B?TERMY2J3OWlhWi9rYWwwVGtEbVhsRWtQRkh5cWN1eWZqTkVRZDRnQ1N5Z0NN?= =?utf-8?B?Z2ludmtmeDZOV0ZMbFJDYTh2Q0RjekMwbjV3T3h3U0VldHd1OEU4ZGduVS9C?= =?utf-8?B?K3ZRTmdtOEdtZ2tnTGs4S1VuMFBHR0ZLT2xTOU1GOFgyVGU0ckVEeG1ycWds?= =?utf-8?B?WG1Kb1lvSTZVeU9FQ1dlV2dTOG4rK0hqM1NNcVZPWWY1ZEk1SHFFQmFwOFRx?= =?utf-8?B?SFBpajBSa0ZFYmhIdm0rT1BKdWZOL2dYZzhUTDQvREdCVFVLVDVPN21EMVBq?= =?utf-8?B?UTJjU2VjaDhNSGptbGp6Mm5iWHZhLzBHc1dkZjI5ck1ZSjFMM3dTcE9tanlp?= =?utf-8?B?QXp5TW9MaDJmRG5Ed0hDa0xJVlpGZ3FHMzcvdjhNYlJsQW8wL1I3aWFpYmNQ?= =?utf-8?B?eit6TDJiUjFTU0Zqa0xEbkRINFBoTHNOVjV5S0pHYjZ6VFRua1NjZ3FGZ2Q2?= =?utf-8?B?MkRnZWQ2T2xzY05jZm1YQW5qMzA5d21ZYzhPUkJxVS9ISk4vVzBLSWxSeGZH?= =?utf-8?B?b0l4U1VoODZxMyszWkN1MW5ZVWw2RHIzdDdOd2dJMXprV05ISXJkWlpFWEhS?= =?utf-8?B?NDRGQmlzNkt5Z2lFa255UndZcmVyaHYwL1Q5UDNtRForbHhjTFM5elZiQ2t4?= =?utf-8?B?QlUxYlpTWCtQK0NpTi9BN2ZPNXIwTVdEVFJUcFFSSkFjbTRFNDRyTHRyY2cz?= =?utf-8?B?cTRqWkFEeGtMTk1VVFd6V0R5MUNVdVhZdE5uazh6SFVFS09OZlhOUmFLb0ZQ?= =?utf-8?B?WCtLYkllTWkwN3NOYzgzSC9mQ1VDVkI3bmp3T1RaTUc4SkV5dm03ME5FMHBl?= =?utf-8?B?M21TN1JwMjh1dnZmdXpDdW9JOXQzelVRL05pdS9yTVN1YWoweXNYY0JZajN3?= =?utf-8?B?WGo5ZG8vNWV6NkgvWUkwZ1RZRVNZeGQrLzdLUWI1RnQ1TlNsZmVxVWpaNjBh?= =?utf-8?B?R21MeG5DbExVa2RZZkJXTjRQcWxnbnEzK3dPcEdnNE80QkZDcG0yOGNQWDBX?= =?utf-8?B?WXRUTTdNRkJldlV4aFhGME9zWjFhcys1RGg5M1p5UWRVSk5tTXNTOUo1bUhM?= =?utf-8?B?ZUZLNkI4b3poOEo1YkVLa1lrZm1YRG8vTFdhQ3MrVXByYTdTLzhRS0dIdnhQ?= =?utf-8?B?RmN1bmx5RzkxNXpXU2l0dDZwZzlXdzFuTFpueStTRDAvUmd2QkhLVEdlUTJV?= =?utf-8?B?enhyblZNa2RPZmtncGxFU293MFpVN0tzaTdrMmZZWHFpNmxlY3VWdXJxbTk0?= =?utf-8?B?ME81N081SDNGUkFqZ0JvQkNZNWZCYWNjUzZjcU1NQjBSNFc0SGQ0ZDZEQm1X?= =?utf-8?B?bHRHS3FteXZTaVluczkxeldvRG9HbGg2NlREcEYrN3lXWVFsQytadkNaSHEr?= =?utf-8?B?cDNBU3Rpa29ydkZNS1JCdVM1RHlaR0M1cWZlTVR3L29LSjFiMWNaWThxMFA4?= =?utf-8?B?enYwdGFFOUVuamd0ZWlVa0h0QUkzVEhYZDZJMkgvUmxkZFVadGxwWFRMWkMv?= =?utf-8?B?TFZhRzBTSUI0dEN1NXVqZ1BHdUEvWTl6OGcvRlJWZkJJb2hGcGxySmthc3pL?= =?utf-8?Q?1+DdJK0Kxg4Cdu4ESKCgt1Vqah2I44kcGn0kJZrN0w/+v?= X-MS-Exchange-AntiSpam-MessageData-1: zJReFz0ipqnlEA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 22a5d3ca-8836-4544-0101-08de75fc5e95 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 12:33:11.3100 (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: xnyB9bJR8rlCd1VBqr8T3AC1s/evcw5duBQzJf88CASkdJiFp7VqmpXG87n5YcFQuyjej3D3D48M2wu32qHOsw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287 Add `RmControl` which implements CommandToGsp for sending RM control RPCs. Add `RmControlReply` which implements MessageFromGsp for getting the reply back. Add `send_rm_control` which sends an RM control RPC via the command queue using the above structures. This gives a generic way to send each RM control RPC. Each new RM control RPC can be added by extending RmControlMsgFunction and adding its bindings wrappers and writing a helper function to send it via `send_rm_control`. Signed-off-by: Eliot Courtney Tested-by: Zhi Wang --- drivers/gpu/nova-core/gsp.rs | 1 + drivers/gpu/nova-core/gsp/rm.rs | 3 + drivers/gpu/nova-core/gsp/rm/commands.rs | 111 +++++++++++++++++++++++++++= ++++ 3 files changed, 115 insertions(+) diff --git a/drivers/gpu/nova-core/gsp.rs b/drivers/gpu/nova-core/gsp.rs index a6f3918c20b1..1a1c4e9808ac 100644 --- a/drivers/gpu/nova-core/gsp.rs +++ b/drivers/gpu/nova-core/gsp.rs @@ -17,6 +17,7 @@ pub(crate) mod cmdq; pub(crate) mod commands; mod fw; +pub(crate) mod rm; mod sequencer; =20 pub(crate) use fw::{ diff --git a/drivers/gpu/nova-core/gsp/rm.rs b/drivers/gpu/nova-core/gsp/rm= .rs new file mode 100644 index 000000000000..10e879a3e842 --- /dev/null +++ b/drivers/gpu/nova-core/gsp/rm.rs @@ -0,0 +1,3 @@ +// SPDX-License-Identifier: GPL-2.0 + +pub(crate) mod commands; diff --git a/drivers/gpu/nova-core/gsp/rm/commands.rs b/drivers/gpu/nova-co= re/gsp/rm/commands.rs new file mode 100644 index 000000000000..16bcf88644db --- /dev/null +++ b/drivers/gpu/nova-core/gsp/rm/commands.rs @@ -0,0 +1,111 @@ +// SPDX-License-Identifier: GPL-2.0 + +use core::{ + array, + convert::Infallible, // +}; + +use kernel::prelude::*; + +use crate::{ + driver::Bar0, + gsp::{ + cmdq::{ + Cmdq, + CommandToGsp, + MessageFromGsp, // + }, + fw::{ + rm::*, + MsgFunction, + NvStatus, // + }, + }, + sbuffer::SBufferIter, +}; + +/// Command for sending an RM control message to the GSP. +struct RmControl<'a> { + h_client: u32, + h_object: u32, + cmd: RmControlMsgFunction, + params: &'a [u8], +} + +impl<'a> RmControl<'a> { + /// Creates a new RM control command. + fn new(h_client: u32, h_object: u32, cmd: RmControlMsgFunction, params= : &'a [u8]) -> Self { + Self { + h_client, + h_object, + cmd, + params, + } + } +} + +impl CommandToGsp for RmControl<'_> { + const FUNCTION: MsgFunction =3D MsgFunction::GspRmControl; + type Command =3D GspRmControl; + type Reply =3D RmControlReply; + type InitError =3D Infallible; + + fn init(&self) -> impl Init { + GspRmControl::new( + self.h_client, + self.h_object, + self.cmd, + self.params.len() as u32, + ) + } + + fn variable_payload_len(&self) -> usize { + self.params.len() + } + + fn init_variable_payload( + &self, + dst: &mut SBufferIter>, + ) -> Result { + dst.write_all(self.params) + } +} + +/// Response from an RM control message. +pub(crate) struct RmControlReply { + status: NvStatus, + params: KVVec, +} + +impl MessageFromGsp for RmControlReply { + const FUNCTION: MsgFunction =3D MsgFunction::GspRmControl; + type Message =3D GspRmControl; + type InitError =3D Error; + + fn read( + msg: &Self::Message, + sbuffer: &mut SBufferIter>, + ) -> Result { + Ok(RmControlReply { + status: msg.status(), + params: sbuffer.flush_into_kvvec(GFP_KERNEL)?, + }) + } +} + +/// Sends an RM control command, checks the reply status, and returns the = raw parameter bytes. +#[expect(dead_code)] +fn send_rm_control( + cmdq: &Cmdq, + bar: &Bar0, + h_client: u32, + h_object: u32, + cmd: RmControlMsgFunction, + params: &[u8], +) -> Result> { + let reply =3D cmdq.send_sync_command(bar, RmControl::new(h_client, h_o= bject, cmd, params))?; + + Result::from(reply.status)?; + + Ok(reply.params) +} --=20 2.53.0 From nobody Tue Apr 7 18:51:41 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010012.outbound.protection.outlook.com [52.101.201.12]) (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 D8006331219; Fri, 27 Feb 2026 12:33:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195601; cv=fail; b=RrrpMPnFaQXwdFI6Wcbw72wHx91A/8dJcM0sw3nEu/VKL9BpxR52q6BcZ+lFF05Nuqcea3unk8+MtA3BM2HoCYuug/U2AJ74+Tk0dr7I4bE7wEtozjKwvlQhU+VX91+KZQEFFNhfIu8YRjCSohwXdjG/Ddr9Sxn3QobHpVTy0iY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195601; c=relaxed/simple; bh=tLziUxR/Q/bnrJ4hBNURmJVOsJsoctTJCKerQq44J50=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=HbKjUWfrkB8ruIhFakI4D/LPh3hNKHuhupkH9ERQUkefGNoRa8XEEOoqXLDz9MApsSj2z1W6WkVDV6AVo7rNlfLNphmZ8+fjmewDdpXUz/1E6T+b2pIkYJuHyqDQXeOthhhCNgD/Gy+CfbHSjPFknHS8Wb7QltbH2Us6drHW14U= 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=h07VZzHb; arc=fail smtp.client-ip=52.101.201.12 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="h07VZzHb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Pg3sqGb90gaUSetBKLLHsDT9eaNEhY54UsxzOWh9bZVmrHSLJOZjWu0umMur9pG230fUFp83IvoWzOwXC0RIsJ1pH5nU2t1yHJbaiZzQ6bh/BVwblITbaf+6eY579Ah0m61qJGz1/KNv4/ehRt2g6qRGJYCJ+IFlv8aqawDwNgbSpmfXIdtwPXPTk+8/I1KYoST6AR4Wu7SVJE9NHW252gkAiiO8yqedUq1siuwqoYuW523k0xrRdtnxSi6gyHlTI2/9iSZLz7b1kCoZrWI+DvKMUo7gchr+vuSlwDH/pZg6M6qFB7lYymhMiaqeAiYU75uD0snqIMFeF452RXyeNw== 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=o5nhcZAQ2gJL9MOPZGcrmtYVN8hyZP9rB+yj5vICLNg=; b=v6V6xoWQKWyDvPYdfPzREzhrhgVoG+7nDxT2kC/n/khbST0jjOMTRQix3kbARuBHxe6Vjn9tQfPsekXAB3Gbf1f+5z9BgNcVNXCamvWpVV9WhsxAM/RC9vTUvXNhs97YXyr3LbJ0GKZw4PJQukgK2MXbrQm0vCEPUTA9ORlUYGHuYCoiVaYcUygMUC1dLGbyWtL2WldXJ8+Z06TEfOB5czFAOqSevbgPKXDsNYxRRAdwxWBJkUKB2uzoK1yMGfqzqCNKGOPBTJZd47xFN0+WGwWe8bTA5gz2ntBHF8k2mgF/RBzdm46xWB3RaBG7ib+8beXJaNIjQRUn0T5fpGnwng== 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=o5nhcZAQ2gJL9MOPZGcrmtYVN8hyZP9rB+yj5vICLNg=; b=h07VZzHbsrXaqq7FBgtBs+WInIPQcmDdqNDtgT6Tbj8cJgQIP1TsdZcMOOXHShI4R8X7ths3/FMhtAmkw+4sZUvUh9TrJOjPMyWqmVX6ATkyNrUgpPdgWOjzgrQP0zg4dF9Yceu6Q4GQacDkRhB3XqgeW0Hd155MGyejt9bsnug29LFCWYXAck1fJ0mpcABRP1wI2lVXS0WqCGnsfc6ukOYvKxRjMPhx908PFHRz8pLhWBxt14RZAJd3pBBuzWrzOMrj396Loe9EsG+gGb6qd4gOSvVFPhrMQoRgblcYNgHulJd0VYuUXu5XeQS1jQr5McH+VXQ7g8za10KTcGI7Eg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb 2026 12:33:15 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.007; Fri, 27 Feb 2026 12:33:15 +0000 From: Eliot Courtney Date: Fri, 27 Feb 2026 21:32:13 +0900 Subject: [PATCH 8/9] gpu: nova-core: gsp: add CE fault method buffer size bindings Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260227-rmcontrol-v1-8-86648e4869f9@nvidia.com> References: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> In-Reply-To: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P286CA0060.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:371::8) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|MN2PR12MB4287:EE_ X-MS-Office365-Filtering-Correlation-Id: 15eb758e-c107-4f2c-03d9-08de75fc60f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003; X-Microsoft-Antispam-Message-Info: ejZI0j1eejd/RQTEPzJFqBJFIR9Itflbb1VspPFoDQaDULSsaMuCqdYhMsJRaz2uCtl5wyAJ0GOuvE2DRlPOjXbxboZIwQ+z01LGIsqF6ZykO4HgpjoCBdtPEA9B93ASh/Y6jJmMhAwihxvgJl7MIAtMK0xolwyBQi2vIEVqIiVoreqMQysxi0DnneUT9V5Sefd372bGs7KKNajDZ823Dvi8+HczJT2Q2nH7YeAmc0uo7iM6wf7p0IcGCFrrCoWZs0AqWZV9LM6Ahm5UgA4kixn4QXfYOePAdnrbBaw0XRpYk9Mcg8RXdNBIl7iENpOQjdkF3vNAAoIrL8L5QqqPAQ1k26fUXrjou2uUQJx03aqP5fLzVxsM4m+xd0GYiyify2xSxKT6LlcpN+sqNsf1g7Q7QLeBdKA7gIiKmL1+v5BiUaZygIQ/NE+AwmSjr8Y3e0IaZvLa7f92O8I3kydxQG+Pb1PfECSjcSQIoP23DlNs6kLRPmuEhvmJH1M8fuhPeH6LliISupfJD0LH0K4JOXATf9PzLEvltqHzL9evrA1zgz0KeRb/sPG/fH3N/uqDQd6x7NuR3kQ1OgJX5EcZGFpQZ7NuAT6pP51QW4hCL0UgAONmBdjNbIa9cmOcu81D8q0pr1A5aOosXYmXvQqRwF4m5vnGTP4+L6EIiPywTkdWOeM/NlI6SJOmCQOAaIUgFbVadbnTGswF0dA89hToX+z6Wa8DgkMthZ1Sh8j0EEg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZlM2NTdoOXVVKzJiRzJia2Q1NVA1YnhPVU54SnFpVjJpQjZGeTFETFZGN3E4?= =?utf-8?B?VXM2UVg5eThuUzlOVDVTUG1wa2t1Qy81Sk1KRkFWbGcxVzBmM0FycEZqb1VE?= =?utf-8?B?SHVuejJ3cjlJRUVSYW42NEtKaHBvMEhLbS9HeGNoYStTbCtTRXVaaTdzN0hX?= =?utf-8?B?aTd3TXJTWFRVaTNuRHRPUFJJWUN4TkJyYzUyY3AyMzQ4dExBMFA0Uy9ZTGo0?= =?utf-8?B?eWRkaDI2cDMvMGJrZXlzWVhWSi96MUltWkNwT3VZTzVBVE04ZDU5bHh4cEFh?= =?utf-8?B?Z0lhVVpvUDJPYXhzUmVUY3lselJvQ29BcmRtN3hLQThWRGF4M2dwOFlLVGxj?= =?utf-8?B?b3ViOVB1eTlpNEFjeGFxYzFGRTh4cmJVaEdUUll2d2tWQjNzd1g2WHJxR1ZY?= =?utf-8?B?eVVmK0YrSUdCREJVWlY3RmMvcktEbC83L25TK2hzeU95dVV2RkY2QmpFdVF6?= =?utf-8?B?WkpVaWFzM2w5aHNwMXVKWmgrQTlMdFRxVWd3SWdXaldGdlZKV0FQdzdrbzVq?= =?utf-8?B?bS9xNE5jeXF4WFhnQjFFdndqdnJIT2ZFckZNVysvcW05eGhtd0NSaXlxcHRR?= =?utf-8?B?VXF3OCtZMVRMem9qQVM5M2RTdnRrWHU4SUFYVXBRckFJK2lEbmRZK0wxbFQz?= =?utf-8?B?Tk5JM1hKdndiMmY0OGlkRlJNeFB1VDByVVhrMldNTVk1MENPanFQNjllWkw3?= =?utf-8?B?SHNmNVJoYlM2NFAzajVHNzA1S3U2Nzc2V2dDdXlTVzBjbDVJVXBFaXV5Zngz?= =?utf-8?B?WGpPTGdXOFp0SjU3QkJaTmVNYmdlR2VBbU9VYkNTY2todWJHZUh1ODhrOTY5?= =?utf-8?B?WWJQbEpXVkJnVmVhaE9HQWt4dGNWb2ltUk5tNmIzdUNhcFBWTSthU29sRHAx?= =?utf-8?B?eWt4SnN4MHB3aEVFbjhVVE5FR3dSN1UyU0NCc3I1L0xyRXFWUVRRQldYQTFM?= =?utf-8?B?aUR5Z1c2ekxYeTlGVjNFekFOS1M4M0prajhjSHdDaFNyNEI3eUQwMkVjM0pH?= =?utf-8?B?T1ZnUXZNa0dJSHZCQllNM1c4Y05VVFVmWEFRZktwb3JaMythSUFOOXpkSzNn?= =?utf-8?B?VnFneGlCYVhKR1pDNW9uM0pBY3JwcFprSjEvTjNoL2swK0UyZXo0amUvNUhq?= =?utf-8?B?MUZZUHU5ZWY3cG41QmpVWDVrcTFFWmIyOFFlYTFjVjl2TmxISGplZXFqY2Ey?= =?utf-8?B?cjZOaElJU0E3NGlYUmUwbm40Qnh2VjhRM0ZrbWRHKzA1akkybnd4bWtkK1NP?= =?utf-8?B?YTdnaG5qTXlKZno4UC9HMllTMkJxcjB1dWNyOWxIdVlDZ1NoNUtjbG5yWnZN?= =?utf-8?B?MGFkZGFyKytOL1IzcGZuWjl0aUkvQTdieVBhODF1LzhOMVV2Nk51MFNkWDIv?= =?utf-8?B?MWpQNGxGemlyazYweHgzUEJ2L05XMWRsY1M0UkVuY3FvZnRHQjAyT0lDbVg2?= =?utf-8?B?cEdmOUt3ZnQxc1hQTHU2NWFDNlVhaG51bE1tSm1rSldjRTRZN1A4TXQxb0xm?= =?utf-8?B?NkhSR1BXa0tqS2pRNDNyVENJekdXdGtaYUgyNzlPeXhnVSt1QURhYk1mSjR5?= =?utf-8?B?RnFDYjhHU0I4R3ZUbndQL0tsL1QyV0pqeTRnTUtJdm1BTHY4QkZ1Y3Q0ZTQz?= =?utf-8?B?MXpUT2NBZE42V0Y0UG1haExkak5kcG9xbjY5VHFFaWc3eFBJelp0c0pyZEJR?= =?utf-8?B?UlJIM2ZYMEFyU1Z3clZieXBWNEdxK0NJdkRtaitBNFA5YkFVaHplbUI2bEZL?= =?utf-8?B?NDVOS3lhSFAwdW1MVXliWXlleE1Ib2RucU1ac1p3UUFSOGNCZTF1TlV6cnV5?= =?utf-8?B?Z3VmeFdVek1hQVlCeTd1SG1NNWZTcVc1L2g1clpLNW0wRDFhNXVIanZDbTZl?= =?utf-8?B?dy85bUlzbUFrNHdkV0ZUdG5obEthc2VkVFdhNEd2dVNkcXV1ckFMNmVEdUFx?= =?utf-8?B?VDVrTVMvMDR4VTNOL3poNjU1Wmt2YnNpUWxtYWhoV3ljamxCQjJXWE1wdUd6?= =?utf-8?B?d04zelZBTGlEc2xuZFpjcE5ma053SVFYdWNPSjVyRjJteExMMEl6Y3lYYzhw?= =?utf-8?B?YXpMWnNNUFVoRHF1ZmYwc2lOTHRVN0E2WUVsVEsxMTBvWER6QmtEa2N2QzBT?= =?utf-8?B?RVlTSmZHZnFQaGxVaFZ1ZnhzazdDc3JzSURURFZyb0NhaXRNZ3FtaW1IRUMx?= =?utf-8?B?eHBDTmhyVkVVYlZRNGpnUmVBSlBrVlhQM0JHOWFHNGNmSlNsUFo3RDRjT05t?= =?utf-8?B?WkxkTE5CaXFJWWkzRmo4eklWNGo1OE43RzBoMW5OcytzM055V2c3N01QL1JC?= =?utf-8?B?aFhvODdLZXliZ2o4Rk1iZzdabDlCWVBtVEdLUGpiSDNRY0VPUU1NUkNDTGND?= =?utf-8?Q?tn0BkPC5EOMydOWoWmSexZz/EofGOrExJharCDIU9Irl8?= X-MS-Exchange-AntiSpam-MessageData-1: djPRMKPFbxs4/Q== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15eb758e-c107-4f2c-03d9-08de75fc60f9 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 12:33:15.3070 (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: QtUgOKddju842gsYO+tWxUqYr8PCAQrZt4xswQ/FbimEqiLEum8LdYKbl3ZMLsoKJqezBBowGNy5x/7Ve2JtNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287 Add the bindings for CE fault method buffer size RM control RPC. This will be needed for channel allocation and is also a simple way to demonstrate the usage of the `send_rm_control` infrastructure for now. Signed-off-by: Eliot Courtney Reviewed-by: Joel Fernandes --- drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs b/drivers/gp= u/nova-core/gsp/fw/r570_144/bindings.rs index ece31cc32f5b..354ee2cfa295 100644 --- a/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs +++ b/drivers/gpu/nova-core/gsp/fw/r570_144/bindings.rs @@ -1025,6 +1025,11 @@ fn default() -> Self { } } #[repr(C)] +#[derive(Debug, Default, Copy, Clone, MaybeZeroable)] +pub struct NV2080_CTRL_CE_GET_FAULT_METHOD_BUFFER_SIZE_PARAMS { + pub size: u32_, +} +#[repr(C)] #[derive(Debug, Default, MaybeZeroable)] pub struct rpc_gsp_rm_control_v03_00 { pub hClient: u32_, --=20 2.53.0 From nobody Tue Apr 7 18:51:41 2026 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010012.outbound.protection.outlook.com [52.101.201.12]) (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 929E938552F; Fri, 27 Feb 2026 12:33:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195603; cv=fail; b=CzIRBlgv0h8VSHSJ6psxQ/24uFMpb8qP2FHvIlw9Lc5xyFdOcD9IwcTj1po2nyYDY/m1quy4Og9z1Oz0M1YCQyK1pX55yxbKPu1/8ftTpnc0QgYKYrStFVsxMKAetigTkoP8G/Vq9Z4a+qTWr24EEx6WMK7NeOxGa6IA47SGghc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772195603; c=relaxed/simple; bh=x90IZujL3ogCQBqs1tcO8qQXkRc9JK4tJ20Ito4pvFE=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=FJlLpJ0wyEKJ5RUmWTOynDNKJ4PFfeeZs43gwcFLbkO9lbKZ+A/HhBDg8zpIdVV8qJDrYa5bzn3lPHuGIRJLIqzy/AQFuU8OU1kkDViSUjCnfjhbPpeyeSd8kcJCkuPDCcxrEmEW9mLQ5wf1HygdFQ/ofiyE2nbPJy2Z/kvq1Ps= 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=QOWqds3K; arc=fail smtp.client-ip=52.101.201.12 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="QOWqds3K" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aG+oZ4Ojlar8/UvUwrIJdQTHLItbS+1vs0OdBw9md+PLa4sE0CIpg3C0Es3iT7RJtUcyUqB0Vryr38Q4JazZoM/sr1QdbyN3PFARIYJiVJyWWCOxX2zNbhHdHIiggZ3i55Jwy2Q/dItkSGVTQkysozknMM2B9mIOKKCuqTzar2JKe0gmJzImkpmo9I1Yx3WtJGhI+DT2hqA2brU1lwr/ybB742BUDHf2GJu5iRDv5L1IeaO9M5jAUriFCaeAovtkNSD54cYOv//8K2ZiaPDCdBfMtDU/tdiM12+IycIt9kjT+ROrTCcPFAAnmqfI/eTXqkWUzxeU0n8TooSgJJx0xQ== 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=uUgOf8gqaS9MBp+1f3yf85jucr5csgO7u62YmDFwvxk=; b=T58apS0dZ5YEjlmv5AiEe4MfgxoL81NVC2pMThQwO7LIHT9174/hUlaZREWsPTcw0Zt/7vS1F8Xv7M7L08NnZdn1DZA+UxlYzbMRcWkPPAlwGgOKxCmytTwuiXTEo71Xc5l8DaGxE06zai91BP2WULuWzfa7vY6ltxIBLJUkCFloYZkKt6exbHF0HYX1uTnwQSplfaImULtGExJ46K7TmnqkpJTn+csg0PxdZq9sBxgSFRJOtVhOHtxEF1gDMm4UKBONF/HKJo382VXooATKWCWepsFlBHjZP5RMtdh5qMGWG22q5TqnCeUe1AiYRmT98FJk4xbIUkoAxTPTjznzhw== 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=uUgOf8gqaS9MBp+1f3yf85jucr5csgO7u62YmDFwvxk=; b=QOWqds3KCcT3FRPDfYnQAZ4U71pYqkneLI8kXtfjBBRTrmJYh50bcnbTuqneey7nJntyOaYS0xQb4IymF4zaKnaWChpn3jadZPCkCFZnX5dkFi/Db2WnhyH00xvOsV9YSMrwnzwqAELoraqW2MoVMM7thReu5uyyM3tzTODXTkQKyrOD+kgcGoxfLoRmneyW+CsAnpZXNGuC558DL/rY8tc3uhIUe1m4SN9eQyhxRiKsmMN9bAY5K/i7c30IcEi95y+elWkQccP0V4ADjgapslWeyN6YBmNIDGpjSC60R/wLZFcouVxT6v8W6wuOC+k+dr50cU5khrCrzilffuZn3g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by MN2PR12MB4287.namprd12.prod.outlook.com (2603:10b6:208:1dd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.15; Fri, 27 Feb 2026 12:33:18 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9654.007; Fri, 27 Feb 2026 12:33:18 +0000 From: Eliot Courtney Date: Fri, 27 Feb 2026 21:32:14 +0900 Subject: [PATCH 9/9] gpu: nova-core: gsp: add CeGetFaultMethodBufferSize RM control command Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260227-rmcontrol-v1-9-86648e4869f9@nvidia.com> References: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> In-Reply-To: <20260227-rmcontrol-v1-0-86648e4869f9@nvidia.com> To: Danilo Krummrich , Alice Ryhl , Alexandre Courbot , David Airlie , Simona Vetter Cc: rust-for-linux@vger.kernel.org, nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.14.3 X-ClientProxiedBy: BY3PR04CA0026.namprd04.prod.outlook.com (2603:10b6:a03:217::31) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|MN2PR12MB4287:EE_ X-MS-Office365-Filtering-Correlation-Id: 7d15318c-400d-4361-d45d-08de75fc62d5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003; X-Microsoft-Antispam-Message-Info: 6upAkhLLljRrRImE8N8YZxcpVESJYuUZdPyzo5pGDdoLfOwpOOxagH8OUjiykPYxTeFgaJtetLZi83DRRqLE4ykrTF4Nxs6LCJxcbp0OSgvRTTrznjLur2OoO4iNOSo5fuvOOaMGrow8E6u9Uf89TEPKdivBFpHXT582P9EIYyOcOa6wSRA+7oyYhZL4XOh8DIjR1aC3SinLl+7WVPBy9d3MPsyWTIEnHe2r5lUQbJXj2HTa3u/ZEKLd9oD/OzJ+KQC6jvIk5kzL8DmA5PMzcsGcz7DGekmE+d+BPtSxS0Y3mImvvxxGfH5sAFiDXaw3ih7f9ZSjlqwcDolZ+pM4zfv0pzvQ1NqqOvGG1Khjo8rExzcraFTgk7MXzuLzBQoL+P+qGqIh0J5z2IvBNt1NT8j/nfRPkHJGNNtkF41yPfBxmvDqGCx1bgThofrxZQeYV6KS9XRmNbprY0y8zt4yPKNIu1b3+NNExlYlAG1nB5sM8Eiab9NWr/nTsj/xC/lu2aYXG4QaklEJOYwM5o2Gkjtetx2K6klkavk669L94r8KLs/fV/l14J7JYdMS8S9NTpyaJI9y9Wru2UV8UtW11eTunC7+mzeObr/8A8RMV6cLJ8Qdf+s8MZsTzQ1FNTxYfyNe9ODQDKiWVLuGhOvcLhioWhDQp9wqFuKzULZjLJk94ye06Zx24RXKmWOqOj8mKEFFH4VoM6OMcCw2z8AGVJlEqy7bZa6yz2KPKkCQSaI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eXFrcXJ6OE81a2JGcEVCYXB5Tk1saTVXdVZTaGYzbXFCeGt6akhkWnZRdDFi?= =?utf-8?B?M3paYVZnZ0FjcTdrNGE0SXV6QkVqT0NjVmxHKzFka21lNHpBU296eVQ2T0JU?= =?utf-8?B?bTg4d25TNVZwYmIwOEpGQktoTVp5WjZjTFV2OGc3MktIK3VXb3J1WlUzYTVV?= =?utf-8?B?VldhR3hXckFRZlRiQTVYaXZnSGtyemdNSkNPYitZVFV1dEJLVkZUU1FRZkhy?= =?utf-8?B?SHRBV1poaHBOYW5JcTJ6VTRpQWt1YnN5VVFGNExaM0hjcnBwSktteXhFT3pa?= =?utf-8?B?NGI3RXdZQUhqeGd3Y3JSRzhjTisrSFAxNGVUTzFHc3J4RndJZjFTUEpTYU1u?= =?utf-8?B?bWEvcE1XcWtONDlVcjRmazZTVXRkcktuOWl1bWR3eFVXRnJaVXBHcU8vb202?= =?utf-8?B?TFE5RlFtWm1JL0VEaXBOSktERWJEY2lyVlNhMm55d1lmSHdaUDJocjByMjhU?= =?utf-8?B?MGJ2RG5nUVQ2SUJpVDdoQ25JR2ZGbnY0aDNTeHBMV0lZSG5oa1FVMUM5cWhh?= =?utf-8?B?b1h6QjBKeDliTmRsUVZTdXlqRllqeDJrYXdURXYvNDBUd0xCajExcGlNWnUr?= =?utf-8?B?anEwVWNrRU15cTc4MWVYZlJTNTBmYk92Wm0ydzF6N2ZsakxDMU5OZmtwbGZM?= =?utf-8?B?WmdLRUkvem9rN0J5MC9QWHQ5elZBUDV1OXJnYnNWclgrSXdzT3Z0RTZtclZX?= =?utf-8?B?SDBITEhJcXRYYkJ0Z0Vtc1VkbnVzeHh4em4yUlAxL0hWekR4elgxbkFlbHdq?= =?utf-8?B?YzFINFZKOHllWXh4VmJoa0k4S0IrcVBZcG1hb1p5RkJlb0U3TE5SQlROWnJy?= =?utf-8?B?Q0I1QjR0elNxYTEzVy9LdjVvMVBrQm1pVERWRHlEMktUdEJvckRlYjBkQWht?= =?utf-8?B?RTY3WU1sb0JMOU1YVWxkWDlXcWNONzA3U3dxcm16bmtxb091aFo4TzROSitn?= =?utf-8?B?MzY0dE11VlRuZ0RHSE9XdkU1b1BmdFE4K2lwVEdwbjJxQmhvWkpUajhISjBl?= =?utf-8?B?UDhEV3pZaHZIZ0dGaHZ1S2R5UkRMTWlPaVp5SFlvbGxER2lxeUtBVVZwKzNT?= =?utf-8?B?cmFkRXJodTdSWEQ4NjlSS1F5VktvcFZjNHdJdExRU2lydUtwV3pid0hQeGVW?= =?utf-8?B?VzA1ZDhRWnNPYVAwVmdsK1AzWTgzTkhrVXEvbmw5NmU5MmJJZjFjSXdlaVhk?= =?utf-8?B?ZW91cm56WHN3MmdRYUJMQy9pOXhzSDRrNmlFSXY3WGJsWEdyS0g2YmdaZlJr?= =?utf-8?B?R0lmSS9JeDE5SXNPNUZPTmQrYjVoWWV4NXFueExuZTFZVmRhTDB2N3FlcTl5?= =?utf-8?B?eFByRkZCVGVDc2lPVURheDFwSCtmVUcwUGpGVXdnN2tHSU1yN3RuU25leGF2?= =?utf-8?B?K3llcCtKdlI1ZFI2L1oyY2V5bHVYRVpQZ0hveGZFTDZVRnhobENzaC94bDFv?= =?utf-8?B?V0pLcXRvSWFTaUpNWlEvRHUyOEFMQVBaSUlsWHYzS01LU0h3bGpRT0VtY2tB?= =?utf-8?B?SnBnTWllM0t6OTRQaU1RL3NqNlRZZjZaa0E2Y3VkVGQyUDhYWjYzR1pMd29o?= =?utf-8?B?aUg1L3pXRHkwRDQvS2R4cjlzY0ppMjAxYlRwdTd3Yzh6R3h6UVhycVdYYUV1?= =?utf-8?B?Rk43TnFVV0FaNVZuZThEbThZOGo1dERSa2diVzJBZVVud0hwRTNkYSt0NDE2?= =?utf-8?B?YmNJMERSTFhzLzk0ZTB3SG9qbURYdTFYaW1tM01oZ1o2Vmx4QmsySHozaWxL?= =?utf-8?B?Uit5alA4dTZyQ0JjNmZKd2FMY3hFamFLb2UzUXM1MHBqKy8xSkFvR29LR2Ru?= =?utf-8?B?blpHSVRJN045OGh1cjJuQlZYaTB5Tlo3ejN5WHVCT3JGWSt1c05QcDNmYUYy?= =?utf-8?B?TyszS040VFR6aDk4MUhod2dFU0U2NU5rbzY2RWxHMGIvYUc5MndQUW0reERs?= =?utf-8?B?S2VBcFUvMzRGdTY1Ykc4aFNhZXhQdW5ZbmZta2EzVW9ZMVZQZ2Y5WnBMRVNj?= =?utf-8?B?dkk2ZVQ0RHhlM1dtOUhRbERMWEhoOG5nOHVmN0lMSW9MbEtUalltdCtPR3dE?= =?utf-8?B?N1Fwdlk5QzBQdlc3TlpRajdYZUY1aEUrL054ekVhUC8reCtQUnV3a2NaYjRr?= =?utf-8?B?ZTIxVDI0akZGT0pEYXc5ZTR5Rk54L1FERFFxQjNNMU9jVnA1b2Y3QTdQWkJj?= =?utf-8?B?T2NFelphRGlIa2lvOUc0RGYzRTZ4TXp6eWNVNE56TFMxeDdGMWszZXpJNjZs?= =?utf-8?B?UTFSUm45OGpNczV2L2RUNG9wSmx1OFRCVkZtbkNYOWl3ZWxDRml1VE5BcTUw?= =?utf-8?B?d2R1bElaQlVPWSs2YU1oNlFvQW9JYm9jSkgwbW1mK3RSUTJiQ0lkVk52Lzd3?= =?utf-8?Q?tlcRMVKUwte+dAVLKm5j/uOqav5c7MW6Cg0UwqXo25tmz?= X-MS-Exchange-AntiSpam-MessageData-1: g/cnz0PU+fqckw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d15318c-400d-4361-d45d-08de75fc62d5 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2026 12:33:18.4539 (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: 69j3aka092kLfzw1fee1SyZ89vduaCYgXGB7JWHzNYhGkKk0uxiXtdexHklA3vasgF4hTEteJ/rtAvVqnF03kA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4287 Add `CeGetFaultMethodBufferSizeParams` which wraps the bindings. Add `get_ce_fault_method_buffer_size` which sends the RM control RPC and returns the buffer size. This is needed for channel allocation. Signed-off-by: Eliot Courtney Reviewed-by: Joel Fernandes --- drivers/gpu/nova-core/gsp/fw/rm.rs | 17 +++++++++++++++ drivers/gpu/nova-core/gsp/rm/commands.rs | 36 ++++++++++++++++++++++++++++= +--- 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/nova-core/gsp/fw/rm.rs b/drivers/gpu/nova-core/gsp= /fw/rm.rs index 8bb7b11736b9..9f1e3546d39d 100644 --- a/drivers/gpu/nova-core/gsp/fw/rm.rs +++ b/drivers/gpu/nova-core/gsp/fw/rm.rs @@ -80,3 +80,20 @@ unsafe impl FromBytes for GspRmControl {} =20 // SAFETY: This struct contains no padding. unsafe impl AsBytes for GspRmControl {} + +/// Wrapper for [`bindings::NV2080_CTRL_CE_GET_FAULT_METHOD_BUFFER_SIZE_PA= RAMS`]. +#[derive(Zeroable)] +#[repr(transparent)] +pub(crate) struct CeGetFaultMethodBufferSizeParams( + bindings::NV2080_CTRL_CE_GET_FAULT_METHOD_BUFFER_SIZE_PARAMS, +); + +impl CeGetFaultMethodBufferSizeParams { + /// Returns the CE fault method buffer size in bytes. + pub(crate) fn size(&self) -> u32 { + self.0.size + } +} + +// SAFETY: This struct only contains integer types for which all bit patte= rns are valid. +unsafe impl FromBytes for CeGetFaultMethodBufferSizeParams {} diff --git a/drivers/gpu/nova-core/gsp/rm/commands.rs b/drivers/gpu/nova-co= re/gsp/rm/commands.rs index 16bcf88644db..1d045e6f1afb 100644 --- a/drivers/gpu/nova-core/gsp/rm/commands.rs +++ b/drivers/gpu/nova-core/gsp/rm/commands.rs @@ -2,10 +2,14 @@ =20 use core::{ array, - convert::Infallible, // + convert::Infallible, + mem::size_of, // }; =20 -use kernel::prelude::*; +use kernel::{ + prelude::*, + transmute::FromBytes, // +}; =20 use crate::{ driver::Bar0, @@ -94,7 +98,6 @@ fn read( } =20 /// Sends an RM control command, checks the reply status, and returns the = raw parameter bytes. -#[expect(dead_code)] fn send_rm_control( cmdq: &Cmdq, bar: &Bar0, @@ -109,3 +112,30 @@ fn send_rm_control( =20 Ok(reply.params) } + +/// Sends the `CeGetFaultMethodBufferSize` RM control command and waits fo= r its reply. +/// +/// Returns the CE fault method buffer size in bytes. +#[expect(dead_code)] +pub(crate) fn get_ce_fault_method_buffer_size( + cmdq: &Cmdq, + bar: &Bar0, + h_client: u32, + h_subdevice: u32, +) -> Result { + // Stack-allocate the request; CeGetFaultMethodBufferSizeParams is sma= ll (4 bytes). + let req =3D [0u8; size_of::()]; + + let reply =3D send_rm_control( + cmdq, + bar, + h_client, + h_subdevice, + RmControlMsgFunction::CeGetFaultMethodBufferSize, + &req, + )?; + + let params =3D CeGetFaultMethodBufferSizeParams::from_bytes(&reply).ok= _or(EINVAL)?; + + Ok(params.size()) +} --=20 2.53.0