{"id":2225517,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2225517/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260421-nova-unload-v2-3-2fe54963af8b@nvidia.com/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.2/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260421-nova-unload-v2-3-2fe54963af8b@nvidia.com>","list_archive_url":null,"date":"2026-04-21T06:16:13","name":"[v2,3/5] gpu: nova-core: do not import firmware commands into GSP command module","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"86a44c66188c00c0204d056546556c8be253a999","submitter":{"id":13521,"url":"http://patchwork.ozlabs.org/api/1.2/people/13521/?format=json","name":"Alexandre Courbot","email":"acourbot@nvidia.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260421-nova-unload-v2-3-2fe54963af8b@nvidia.com/mbox/","series":[{"id":500739,"url":"http://patchwork.ozlabs.org/api/1.2/series/500739/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=500739","date":"2026-04-21T06:16:10","name":"gpu: nova-core: run unload sequence upon unbinding","version":2,"mbox":"http://patchwork.ozlabs.org/series/500739/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2225517/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2225517/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-pci+bounces-52814-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=chdytXPk;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52814-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=\"chdytXPk\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.201.51","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com","smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=nvidia.com","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nvidia.com;"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0C143gd6z1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 16:21:28 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 256CB305616E\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 06:16:34 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id F1473369236;\n\tTue, 21 Apr 2026 06:16:33 +0000 (UTC)","from PH7PR06CU001.outbound.protection.outlook.com\n (mail-westus3azon11010051.outbound.protection.outlook.com [52.101.201.51])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 77F3635E947;\n\tTue, 21 Apr 2026 06:16:32 +0000 (UTC)","from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18)\n by CYYPR12MB8749.namprd12.prod.outlook.com (2603:10b6:930:c6::12) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.15; Tue, 21 Apr\n 2026 06:16:29 +0000","from CH2PR12MB3990.namprd12.prod.outlook.com\n ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com\n ([fe80::7de1:4fe5:8ead:5989%4]) with mapi id 15.20.9846.016; Tue, 21 Apr 2026\n 06:16:29 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776752193; cv=fail;\n b=tzEs6IzA64QofJ+FrjQbEBzigqG7CaG/mjzhEX1cm9nl4H2rQeH5cC7qGXr9U57Nx1+Wl5WkJa/Niv8Li3U0nHLSpqt2bw6Kvgg6YFj8OR8MuiE6oGx85vrCujHd/5dfYEAgL7SRt+ypZ+tfEExtvpjKEhYlBZm7rC4Bebxy1Rk=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=yGEuKXFumGC3Bkfmd+28wmhPsPnWDoL4bnjKVFNC4+YhmXcpieMq9scbA3DVYPZHEtQczTC/8+QSiunUgDZLCqTqd1FixziT31A/PU3SyFGuUgfsOyEcAUXxisWqsSQmAN1cOpEWiCFXDt3AEgi/KoYlGZRc0fSnAM+RQWi2thr6B9k6R1qnbDt5GrzGGwNCGnw2sPXYB9vMskdQ+o8xwxVnlmfsj1hpn2F47/c03yK5ZTvVEcyoYKtan9ZoHMCf+OZCH4LBaqXUAjvyYHWCUBOVaHnjYI1LwCK2TLYbjYMx4nJyr4VwcSAB4BVbuTkViMGLX+endwnZIBin7jD0Sg=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776752193; c=relaxed/simple;\n\tbh=T/8ZzJeoRy0uQIgxGJyrBqCuJ8SdDMS4wUtGgO4Fbe8=;\n\th=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To:\n\t To:Cc:MIME-Version;\n b=Rq5LP5f6Nm0rvSW10n4QtM/sQmYPGUwf1t4nAIsRyL4taekVvFIGiPNM3YypP+olja2a8ZYDQtoSEsgJCjNV7qHPsvHFMUKnInNfeRNt1ztFAk30XfbNQtQiKjBQKwl7X80zGw1Tm30J6jjCm+wXFk/aNIMEc4EgH0Tkc1LAOe4=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=aej0PGHVgBDJBO7afDycLS+eCbeq7lFtVUn4AgBSJI4=;\n b=ysFvDCtMTIMxzWX2piKhVH3/LOvLVbNs6MKg37Hermxg04yH86S+y8BMiRIlK6TAY4EXfr6jlMYvd1gshD2eKPaf0nzzpHmv9ex57n45pcSti+jzBcowZ64navNnQR46NyWsAXCwYxARQD0ohZISh5VKLwBXg+Yvxa4sDuopbDwvEUyRkC238HJt+/PDOIR86OPMsfyGPx0UeVf31k/AvLKaRSLjzNwcgPy4J9n59eSPk/WXY6l66btP4Gnnn2bD9mz1ws+zys22SyPPBm4yAeOE39J3rJirKWH1e8JYyi8/TqiY+iGtxGO/bRHYpia/cCvVpBjq7s8Bt6FufH5dXA=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n spf=fail smtp.mailfrom=nvidia.com;\n dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=chdytXPk; arc=fail smtp.client-ip=52.101.201.51","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;\n dkim=pass header.d=nvidia.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=aej0PGHVgBDJBO7afDycLS+eCbeq7lFtVUn4AgBSJI4=;\n b=chdytXPkT/LrkIPENVjxBkD3eJzoLZ50r4ExAyd+h5aciUDRrclcoUJ2HTWWE2A74j+lV1u0NI1Z52tiwK+Vi2ncXy2kcQ3Ux1GPe8wM5mu+AHEreYtsBT27xAcJJrhLlzuWhgR4lSgTleY02kWsGm6DbbLWWAV581evpBxHZc29P8J+V4GX24B1G40iAEOdDfmQ8sSTa//8Ghq8vi8qQvSpu9UG49I1nZurCojj7cTgRraJ6y9VHoyw8Pnn1VfaZswx0wh23MfYTjKEIWlspKFFsXeRkGNLRoA2GRNU9MqWavpn5IiDllfL4iPXw0vBr83c2sao8RNCfm/08kVGuA==","From":"Alexandre Courbot <acourbot@nvidia.com>","Date":"Tue, 21 Apr 2026 15:16:13 +0900","Subject":"[PATCH v2 3/5] gpu: nova-core: do not import firmware commands\n into GSP command module","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20260421-nova-unload-v2-3-2fe54963af8b@nvidia.com>","References":"<20260421-nova-unload-v2-0-2fe54963af8b@nvidia.com>","In-Reply-To":"<20260421-nova-unload-v2-0-2fe54963af8b@nvidia.com>","To":"Danilo Krummrich <dakr@kernel.org>, Alice Ryhl <aliceryhl@google.com>,\n  David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,\n  Bjorn Helgaas <bhelgaas@google.com>,\n =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>,\n  Miguel Ojeda <ojeda@kernel.org>, Gary Guo <gary@garyguo.net>, =?utf-8?q?Bj?=\n\t=?utf-8?q?=C3=B6rn_Roy_Baron?= <bjorn3_gh@protonmail.com>,\n  Benno Lossin <lossin@kernel.org>, Andreas Hindborg <a.hindborg@kernel.org>,\n  Trevor Gross <tmgross@umich.edu>, Boqun Feng <boqun@kernel.org>","Cc":"John Hubbard <jhubbard@nvidia.com>,\n Alistair Popple <apopple@nvidia.com>,\n Joel Fernandes <joelagnelf@nvidia.com>, Timur Tabi <ttabi@nvidia.com>,\n Eliot Courtney <ecourtney@nvidia.com>, nouveau@lists.freedesktop.org,\n dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,\n linux-pci@vger.kernel.org, rust-for-linux@vger.kernel.org,\n Alexandre Courbot <acourbot@nvidia.com>","X-Mailer":"b4 0.15.2","X-ClientProxiedBy":"TYCP286CA0127.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:400:2b6::9) To CH2PR12MB3990.namprd12.prod.outlook.com\n (2603:10b6:610:28::18)","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"CH2PR12MB3990:EE_|CYYPR12MB8749:EE_","X-MS-Office365-Filtering-Correlation-Id":"90b8b458-a38e-495d-7b41-08de9f6d8640","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|376014|7416014|1800799024|10070799003|366016|921020|56012099003|18002099003|22082099003;","X-Microsoft-Antispam-Message-Info":"\n\t7aOFt33bhemAiW9MxuK8LTfd1SRLMqfDxvparlf/FANessjijawPfKvVSIVaDTAY5xhC8rrz7RvDZaR4yL2b6Zyn1wOrHKPuVRXOORUsRXWTN70AyTxPiuHHzKKekIIZKMKYjUU0neBG7sw+ux3YQoaNAHdC6XSY4fytT4OMpjBphDhb2g/933QoZGHPYDnzMCgWSDUAThoBaAounTa4PCmyEJIM+R8jDv8X2P3GsjjWTXjdb78NAy80xZ1OXAx/HXHdkCUaxVKIFBUv8BuK/o2oLTpO6LDLdmDjmsDG1xJou4SiLPOy8GTPe7ugE+V90Ev/SmWW0O4u56tFhpZtRehNO6ZdDCwowd04F976zQB2bDFLb+4Au3rbjtcB1CzgSJOE24cBvP+WaMp5X8In4FE04jLho1uBhZ4jp4bNMEantSEXwZzZRRMv5ygKr+9sZtTrswc4xnzXDF4h0IJdb7ZXFblT7BSAVKHcs/sZJdEtwnIBnahZPdSzdnk3rhzhp2fC6grY+K6WUkBpzbbpiVfUWCD2QiRK9C4YkZfMchCUOs47SuzQFlisLucQ4RpAiP3XRWdnIp3vzts1mwlIOP7L7sSVCmL04AeJryib3uhvZDeUHnIn4F9ZNFH7r2bR1Ryqkt85VpalrFVeFmKxentRwwQY2liPfa73TdeRr3UaIidUX9pt0dxL55uduhOsvkfT6flO0BtUubJSbi9rlyblDxf94ehtCdmAV50Z7FEXh1fwjFqPZGF8l6145ydwbN6Spb3NuUVPRxu835w1hw==","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(10070799003)(366016)(921020)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"2","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?mgLtE57xj8FyaR7R7fuwt2X2q6uY?=\n\t=?utf-8?q?F/Txu6YxtSEuvFSi9zVfQHNwjyNOJudDlubiyCsVmW8eOmkKCZQJ9qqrmwdHcKTze?=\n\t=?utf-8?q?oudk739ngqLHbBBO8r09vK62WW9XkHKbybxu1yN6b508V7QHjCDUSXqsUqUSA4TLH?=\n\t=?utf-8?q?7Wetet3HRsrps3j3wdX5rH0hiKF4YPgHiW+6KxKB/zmpWW/LtBG151Am5XToXO1e2?=\n\t=?utf-8?q?PcGXpNrRmV7brEJnS2JoXMfoPFuEX6TLBLOyunEvbm+z2chlxuChbNfhbFh2dAZlG?=\n\t=?utf-8?q?viF7g9n7RlEL00XdzQwWDI16S/DGNTVLudometVz8+N9mv4UQQ9ZYIjMr2fd1oiNc?=\n\t=?utf-8?q?7doJuGvzcBDjanWp+PZcEETmlmuNK+GrGoaVeNdCXMJSOL9yXeuaY9pa562RCnJsw?=\n\t=?utf-8?q?L4G7IsPEaLqHCXX3Woc9b00trhFP8MeYmwUMASIMZj2SykHRQK9AEEfHuiC3c92JC?=\n\t=?utf-8?q?jfnV+z95JoHg3Fq9qj9tXH2U86njCkmK+PnP5xTs28Tmsh+sP7UwtLle7BGb7WVhX?=\n\t=?utf-8?q?xF0BIw6PUO9cHELo9ltFbm4gBj5GliLupiIewP4CpYDsil8myrxZvOeDCQ8Cu+vRf?=\n\t=?utf-8?q?U6njsxpA78Zotpeu6l9cu2CIQGslXcnUtC/Mia6jyb0W90gL+9GURXR4f2h0OKa8N?=\n\t=?utf-8?q?YiwZKwFo8cvaHW9f1Hv0U0yZR6zSIIiWw1ec48BE4mHKA1hEL274imwjRgQyxo6lK?=\n\t=?utf-8?q?yNnecKSCAqi9Dx7qRhwX3fY66yb0m/7PlUi5Tap4oUCJf6yrfq1+C0eIllc6yZhUu?=\n\t=?utf-8?q?Iww3lYkhh3y1HlYTcOE5NXud/wbMt7MpQF70ChNFnwwBTNhO9CCuTvcJKxYJwH57U?=\n\t=?utf-8?q?mU6dL7hsMTJm6qYAAimgb/V/4MPNlvTYioobZ+/K8H1Kns+gwXKt6pRvMs9THhlSL?=\n\t=?utf-8?q?/QkxMlk9Pk82Pox4KGtO8CjIZeG2YjXA1G4QirOoQiUGA+6rzbDbCkI07VdIgYw5w?=\n\t=?utf-8?q?aWsjlmWXjH+vfcf6o2jsej50sPaU3NTjityVqLM1Y0b4IkEbfThC2MPNZ2UDvPLOy?=\n\t=?utf-8?q?29IZsbAHGwW2QG4rPRW8ZqQZZQaGKbXFtYOwNjOZD0CCHdSiPv+GuvbXm3SpvQ9r0?=\n\t=?utf-8?q?/Nma6jVsBnFmq1yFx6NmEIftu3kZSVR35jSjf9YCH+lv1R0TcgDF3Cmq3ZRfbI2rv?=\n\t=?utf-8?q?7CozmGSheA60DLql/WgM37GCaq2IAFGK5aofqH3jssOTthv9PBNWXoxvHxwJGzWBF?=\n\t=?utf-8?q?LCEGp5hqornEizq/ifn75jve62IEoqlP42GY72f6vnQdAiYnA+5+xXVzkVL821saG?=\n\t=?utf-8?q?s9Xdcy5sF4a3FP+8zNnZNV/eIi96qUQBTXzXNLI5TXF9aSdS/qaBP9hX5F0e9Meex?=\n\t=?utf-8?q?uUjnsj4GAxqSTJASheq/t8EdqHRInewsHM/YLzZ/5YglSmWkXbWbQSvp/2JsGYMWY?=\n\t=?utf-8?q?GzRxayzku+4M7YsrWWMNhXryQN+B4HU978LqmnnmkYxejWxaXpNAWttYGZxNE457R?=\n\t=?utf-8?q?MKQrngZO/S67KC6kQufB4L4Cif4cpyaTW+1QtbYh0B4RDENI2MaCwXCKo3swb2aq6?=\n\t=?utf-8?q?h3uy8eTe15Z5MTJtI1D/9YNU/1MBmN1YPU3Sv1o2P9GiiU/Ksv++R51wwhlBEfhOR?=\n\t=?utf-8?q?JAvc01eZ4oGr/8CqwGWhuA18xZBAKLRtQ1FMub9oSzQ9qirjBHQq4ULqpE6+n7DSm?=\n\t=?utf-8?q?8HE6WsJyImWRowNahjjSAX3C3UH7UZdhk8pJKxbCOCs0yCBviHCyMEHspHWvTWQLG?=\n\t=?utf-8?q?LE5n04Lq87vRF6cz9?=","X-MS-Exchange-AntiSpam-MessageData-1":"fUObv/q/ITHzSA==","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 90b8b458-a38e-495d-7b41-08de9f6d8640","X-MS-Exchange-CrossTenant-AuthSource":"CH2PR12MB3990.namprd12.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"21 Apr 2026 06:16:28.9071\n (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":"\n MLGssUGoWjrEKx+e/1b9aWNgI0WsxYR1W3P9shVRdvJw6E1pmNQyRHaafyhwhOFE29/l1LV++A92fsO9NNaZ7g==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CYYPR12MB8749"},"content":"Importing all the firmware commands like we did is a bit confusing, as\nthe layer of a command type (fw or GSP) cannot be inferred from looking\nat its name alone. Furthermore it makes it impossible to create commands\nthat have the same name as their firmware command.\n\nThus, stop importing all commands and refer to them from the `fw` module\ninstead.\n\nSigned-off-by: Alexandre Courbot <acourbot@nvidia.com>\n---\n drivers/gpu/nova-core/gsp/commands.rs | 24 ++++++++++++------------\n 1 file changed, 12 insertions(+), 12 deletions(-)","diff":"diff --git a/drivers/gpu/nova-core/gsp/commands.rs b/drivers/gpu/nova-core/gsp/commands.rs\nindex c89c7b57a751..c80df421702c 100644\n--- a/drivers/gpu/nova-core/gsp/commands.rs\n+++ b/drivers/gpu/nova-core/gsp/commands.rs\n@@ -27,7 +27,7 @@\n             NoReply, //\n         },\n         fw::{\n-            commands::*,\n+            self,\n             MsgFunction, //\n         },\n     },\n@@ -48,12 +48,12 @@ pub(crate) fn new(pdev: &'a pci::Device<device::Bound>) -> Self {\n \n impl<'a> CommandToGsp for SetSystemInfo<'a> {\n     const FUNCTION: MsgFunction = MsgFunction::GspSetSystemInfo;\n-    type Command = GspSetSystemInfo;\n+    type Command = fw::commands::GspSetSystemInfo;\n     type Reply = NoReply;\n     type InitError = Error;\n \n     fn init(&self) -> impl Init<Self::Command, Self::InitError> {\n-        GspSetSystemInfo::init(self.pdev)\n+        Self::Command::init(self.pdev)\n     }\n }\n \n@@ -100,12 +100,12 @@ pub(crate) fn new() -> Self {\n \n impl CommandToGsp for SetRegistry {\n     const FUNCTION: MsgFunction = MsgFunction::SetRegistry;\n-    type Command = PackedRegistryTable;\n+    type Command = fw::commands::PackedRegistryTable;\n     type Reply = NoReply;\n     type InitError = Infallible;\n \n     fn init(&self) -> impl Init<Self::Command, Self::InitError> {\n-        PackedRegistryTable::init(Self::NUM_ENTRIES as u32, self.variable_payload_len() as u32)\n+        Self::Command::init(Self::NUM_ENTRIES as u32, self.variable_payload_len() as u32)\n     }\n \n     fn variable_payload_len(&self) -> usize {\n@@ -113,22 +113,22 @@ fn variable_payload_len(&self) -> usize {\n         for i in 0..Self::NUM_ENTRIES {\n             key_size += self.entries[i].key.len() + 1; // +1 for NULL terminator\n         }\n-        Self::NUM_ENTRIES * size_of::<PackedRegistryEntry>() + key_size\n+        Self::NUM_ENTRIES * size_of::<fw::commands::PackedRegistryEntry>() + key_size\n     }\n \n     fn init_variable_payload(\n         &self,\n         dst: &mut SBufferIter<core::array::IntoIter<&mut [u8], 2>>,\n     ) -> Result {\n-        let string_data_start_offset =\n-            size_of::<PackedRegistryTable>() + Self::NUM_ENTRIES * size_of::<PackedRegistryEntry>();\n+        let string_data_start_offset = size_of::<Self::Command>()\n+            + Self::NUM_ENTRIES * size_of::<fw::commands::PackedRegistryEntry>();\n \n         // Array for string data.\n         let mut string_data = KVec::new();\n \n         for entry in self.entries.iter().take(Self::NUM_ENTRIES) {\n             dst.write_all(\n-                PackedRegistryEntry::new(\n+                fw::commands::PackedRegistryEntry::new(\n                     (string_data_start_offset + string_data.len()) as u32,\n                     entry.value,\n                 )\n@@ -180,12 +180,12 @@ pub(crate) fn wait_gsp_init_done(cmdq: &Cmdq) -> Result {\n \n impl CommandToGsp for GetGspStaticInfo {\n     const FUNCTION: MsgFunction = MsgFunction::GetGspStaticInfo;\n-    type Command = GspStaticConfigInfo;\n+    type Command = fw::commands::GspStaticConfigInfo;\n     type Reply = GetGspStaticInfoReply;\n     type InitError = Infallible;\n \n     fn init(&self) -> impl Init<Self::Command, Self::InitError> {\n-        GspStaticConfigInfo::init_zeroed()\n+        Self::Command::init_zeroed()\n     }\n }\n \n@@ -196,7 +196,7 @@ pub(crate) struct GetGspStaticInfoReply {\n \n impl MessageFromGsp for GetGspStaticInfoReply {\n     const FUNCTION: MsgFunction = MsgFunction::GetGspStaticInfo;\n-    type Message = GspStaticConfigInfo;\n+    type Message = fw::commands::GspStaticConfigInfo;\n     type InitError = Infallible;\n \n     fn read(\n","prefixes":["v2","3/5"]}