From nobody Sat Apr 4 00:24:38 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010064.outbound.protection.outlook.com [52.101.61.64]) (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 9D14631F9B0; Sat, 21 Mar 2026 13:36:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100196; cv=fail; b=QeaeIRS5OW49uoL9B/c1tMpObCxCRavJIQIXkBAQuNcFwCR8VP+WCRPSh6+EQoAJ2j9vwHn0H2wOu350mSqmV5rHfx9ox8v8W2Adv14iSvfwtVhWZGjeCkrVI72x3d1wJ/oqYCOlIUdbf++Ub5cpA4f+jaxG4KMXuPoDhv2b2KM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100196; c=relaxed/simple; bh=4iA94iQCNqQYHDcOhPZjnXo54o2knSlIxBbqToIAYBM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=DwTaj30CyMQPsDKpHdXoVBZnI19HYWSI+R2iOc0L8Kh7klREuBjEY/AEw+XFuumemV1RvTp4d6lcHC08YeKHBtJIAU8mUQq8rsb0WH+E67dcDy1kWUWcaY+f3BViINS/fUOBG0q6/2aiZ1hlOjr86JAboY+K15Il94x44qPho5w= 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=qm4cj/xv; arc=fail smtp.client-ip=52.101.61.64 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="qm4cj/xv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jIg9E9a1lVh93UNH//R34rfFcgiKUxNq4DWo6PusdVFm5x7xHaqCwTupVpT5CuimwPRRuJpEvwGshn+OSP0yr9QmGo5Y3C7zK8jV7gBis5iqrbjOp6yViSxT2itE/2JPf8spCUpcLxfI1imRwbElhE7/QxXxElgivlO4P8Vay5eaXfywzpMounbFqNhFctFKWls5vtA59A37urKBz3qnKI9ZX/WEHkvRAJ311Eo9FWoNnppMMSLX7YYbdwENliZxQVKxiCuGEgYlDfWvf3wUWPNNSHsvh3PuZd3CLZzGD1LbqHjT/2sG/7H6Z5Nak8bey9QZbnKQ4p8hVhBtmnZjug== 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=37Vn1KM9QUA/tXIucSkzqGP/5/PEZk2QyHUuGxYFo28=; b=lRSWmRVKqScVuryBlnVcBVtmwwW2U26pNbay2S4BQUcIpYan5XL51K7D0RGAKzabkJbDziY+uD2Y/f9OrrrKdxXG5YNgXPwgft8cKYHlgPPjmJ0+qs5IdjPoGwCRFJM2eZUXV5KX6ZkR1GyF7InzEwisz+lwmQf3yZHahXvvY3lsCJE1cDyZCbjT4pREQspdy+JIRZnF92iOHDblRMu6kjdrMFCyCZU2OL7GcpQVSct+a7+ftd09U7EYVD9jo7LfE04OGctGgs0LKPx2dwgHfQxyHndJGhPOVsKGsueZsDYDsELA1RWOV8lFGM3fhqR6oKrDpXksJWSTMexYfj55ZQ== 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=37Vn1KM9QUA/tXIucSkzqGP/5/PEZk2QyHUuGxYFo28=; b=qm4cj/xvpWeBKWL3wuQCcBR/+psmDvusFD8Y+DRHbPEpATd8c1qDx6PkfwNxkTj9QVTZ/fAGu4wZvq/Z1HX8kHgfGXof18GnO9QjA7DpeE3bz/3YzJufYHODINPdvNTZw4MwI9h+oXmnttNo06xrpgvVidW6wqjsGOKt4bXp7wtgv8MavMIkNtm+RmeHIohwkrLnepkWkn7BW5lEiYhQawmNwsV0dg9Gp7ToRFHzSleAya39leRKohizLR7MMM9CPAglunPhwKR865dVsNsyQ/oQu7CJ8lu4vEI/qUv/2WuSfgpQ8sVE9G0V2nbnZXdpnc8iz48UcXQkmNZSw7ADzw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by LV8PR12MB9133.namprd12.prod.outlook.com (2603:10b6:408:188::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.15; Sat, 21 Mar 2026 13:36:29 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%6]) with mapi id 15.20.9745.007; Sat, 21 Mar 2026 13:36:29 +0000 From: Alexandre Courbot Date: Sat, 21 Mar 2026 22:36:19 +0900 Subject: [PATCH 1/7] rust: dma: add from-slice constructors for Coherent and CoherentBox Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260321-b4-nova-dma-removal-v1-1-5cf18a75ff64@nvidia.com> References: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> In-Reply-To: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> To: Danilo Krummrich , Abdiel Janulgue , Daniel Almeida , Robin Murphy , Andreas Hindborg , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Alice Ryhl , Trevor Gross , David Airlie , Simona Vetter Cc: John Hubbard , Alistair Popple , Joel Fernandes , Timur Tabi , Zhi Wang , Eliot Courtney , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCP286CA0375.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:79::11) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|LV8PR12MB9133:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f0465bc-6f3c-48b3-f241-08de874edb46 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014|10070799003|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: iiLT02045/DFqr3AuWZQ+CFiV6+8/wRuMbNwFUFYKbE7iNRKS+HBHIyabaJWcy+mX0r97PNTd1HWNOzikWDkmrU2VmzuMN7craSD1/mPmNOlJT0PybKOrE1Y1N4bLvS9jrDPcoghShmVVlLuu+UdZrfJEyUgKgeceUVB7B0iWhcpfKtqA8N60m6RZd/3fCdCFcCCGXcFZH+leHw09dUkDC+O3Xbgt/q4JUz85CBzlTL+r1IyrAmnKvKmWlbOcbpP0AV0y9DX0wilyY87xRBevJauPs0d3CN6b4RABhOAnCTtFTQKGaq6gaxB6vgx8auy75pvFH4iAFdlTg1+rR+QqXYawaGdfRUhwTrClvr5HFBCgzjvFSrq8MHmG+ZCL53podPLUMTigBOmsq1cfBJNvI6rDfoGTTPRUACf5rdvpAJAd99zM6qAuaLY3B5WOSSIFlE+1xn/jgSE9Q/SVzUub8U7MmtZ3+el9GJ3aNxs6st/4x++wfGsAe5px6q6SyD5gKHuhiAItRhzv7BHB8Gj/Yf4PrKtRK12cI2hpQlEDJ16/pYNOyYukobhsHjHPC49gQZ+aZJZ19qxvFB23hZbJ/YOUiql5zil1fnw7oWTkno6NvlCTt7GBaYhtNmCCBfBlkje216BOyev3EBLSFYTCLC2TKESufK59/oMgSSSOaQQbmO4aS3p5Y5NbqmhGvDkZ/TlsG7YjQVlZNVkfwFQDJ6E9kJB/MIZYLoOWqaVHM9o4S8G/LQpJMgDkY03zAI9V/FV982eP9OS4wegV5qeGw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014)(10070799003)(18002099003)(22082099003)(921020)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OUxrbnVoUWRnZW5XL1ZtWm9DVlFsRVdiS3RHNFl3YkNQR3dyNHRvQmJsV2x5?= =?utf-8?B?VVdZYW9uNXlBVVM1cFFSMi9iYkdIVFhtTmF2UXdSbHJ4RERyUEFCOXVlSFJP?= =?utf-8?B?QmR4RDJMU3RZRjRVWnFIN2Y4TlNiMExnanlFMnNQOXFiUzVwRjczR2JHRXNi?= =?utf-8?B?Q3ZXYW5FRmlpRmdnajN2bmdqMEZabUZ0SHY2YWdiTWoyVEtzWDhwQ0RQMis1?= =?utf-8?B?WE12M1RENUtEUlcrcFJGR2w4NlZRa0ZucTBjRVU4VkQ4OEIrRFBRMXlMOXo0?= =?utf-8?B?TGl3M1M1LzNoRllSdUxaZW8zc1FwUTBaSXBQN0xQcysyV2dVdkxXdzJnVWFS?= =?utf-8?B?V3Zsd0VZMzFSU1hWS1o0RDJnSUpLSU1vbGxKamM4ajFaRndsZjRXTUlTQ1FT?= =?utf-8?B?THVlc3BjRms5bHZjOUxpcDJQUDNoYVFIQjdOayttbHV2S2hwVnRERlREQWdx?= =?utf-8?B?cnM4UDZaeCtkTDRpM2gvY2Z4RDVNTVZhck1Cb2hWUHA5d3lEUGt5UFM1K1hr?= =?utf-8?B?TWNKUjRDckxKTDRNY2lGdnZHWWNZSDUxbzh0SmpOYThhV2ZiYkFPSjBvdmQ3?= =?utf-8?B?UkdhSzJxSGRHMkhFV1pYamdzWG5VdmhCbUMvWWVhT1F3OGJ0SUVWbmMrQTNJ?= =?utf-8?B?RUlzeVBPajlyanU2Tzg0bi9XTXBvN0p1MDBIY01lZEVFdno3M3N0Y3NIZnVT?= =?utf-8?B?MUtKdmdlWVU5ZGVoMzJkQzE3a1hxVWs3QU5RelVlS2hXR2I4ZG0yZTRJajBj?= =?utf-8?B?UGdUTzdyWkVSUFFNQ1RZQUlpMmYxMkxsUzVPWXBQT0hiRFlTY25vWCtrMklE?= =?utf-8?B?ZDIwdjRBYkJ2bk91bngxOE54QkRGaFp1T1RsT2RBN0dWMWRLR0t6S2FDRDRY?= =?utf-8?B?aS9iWXdmZWNpcXJ2OGlZTWN1ZUJPaE1qMll5YllnZHQyOHhuQ1RzbmVaWmUx?= =?utf-8?B?U0JDNWJLdWVid3FTaVN4NXVpeHd1aGlneGg5V3RBT1JRaGJWcnMwSlF5MzBy?= =?utf-8?B?YU8wT2wzRktkc25IY2NGSzNFaVBJdFJOS0RxZHEyTHg3KzFMdkdkbWlnLzJV?= =?utf-8?B?d1h3RkZvcnJBSFVWN1B5QVVMRTE2NGFKZnpqMC9LNHVXVTVicUwzR29zZ0I2?= =?utf-8?B?VFZraURzTXRmalV6KzhQOUJuNzdhSFBwWVlUOUVNNmFNb2VjVjJCY0crLzJ2?= =?utf-8?B?bHJ1cnh5ZUM0SWRKWURoRzNKY2cvZUQ4YjhwVUNSMVhOWCtOUk5uWEJvRGJ1?= =?utf-8?B?YncyU2U4bWRsT0FOQ2QrTXBpRDhOZTBMSjR4d0pXSHpvNDltUTU1WHBDTGty?= =?utf-8?B?UEhqazVFSTd1WVlWSUtJSUx6Sy9tSTk2TTFTV1RCRThHMlZ2VmlnaXhPOGtG?= =?utf-8?B?bjdFR3B6VHMxQW9uUUdscWJWTlQ0M3l1VzNTOWNEaEN3WXJ4bi85c2VBN3k0?= =?utf-8?B?S0lpU0xRQWdnWWk2WCtKUlcxTUZEYXZWeGtPOGNVc1FYUnNOTmpoOW8zNHpT?= =?utf-8?B?cHlvTmE2Vk91QzIzeklSNlo3OFNubnhXM2pjL1E3NnlabGtiSkpYZG5PSGNw?= =?utf-8?B?VjdkWU1ZUkZkdEtHNDUrQjNYR2pOckN6MTdGVFBtYWdHbGNXYk1NTXZyZ2ly?= =?utf-8?B?dzlDVUZuQUErSHJqODhzZ3VVM1ZOVVpkZGpPVXN3bWkwcEM0MUM3cGZ4ekJY?= =?utf-8?B?K1A2NlpseDNGV0lFN21mRnNyZGZ6UkNhZFRIdUVMUHFjVzVGejNWd3A5dnFL?= =?utf-8?B?Z0tKSUROVGdnT3RjK3ZTZDk5M2o4ZjdNRzAyRk1UMExCaUN3VSs5VktsSjNJ?= =?utf-8?B?U1V0NW1kemZ4ZURHUVFLSXNEZG5RWDVTS0NEV2U1UTNVUFBZQTNzSFhJT0FH?= =?utf-8?B?RTU2NXFDQU5VTElrNU90WDU3TnFLNnU0WkRSOXJKZlZHZ0U1bmFsbnZ4NzhP?= =?utf-8?B?S3ZJQUp0Y0xqQ2taT2RuQytDZ2hreDhZc2tPL1ZXdGU0c2Rjc2wyUDRZcldD?= =?utf-8?B?UDVJd1ExVC9nQkFjdGRDNWU4bDNnNDZJclV5YjVVallhUHJjRVRvSnJLVTU5?= =?utf-8?B?SDdwckFha1VCK1ZBMVJCdFFLN011dFI1cCt6TGlQOXNyL3BOTXB5Yy92b1Ir?= =?utf-8?B?MC9ZL0xhUlpGRkJFT3F5TjVwaEk3VmJDS2FFNHlrWnRvc05RRUdyNksyQlBp?= =?utf-8?B?OUw3Wkd6Njg5cDJvRXp2TkkyZUhFYjBkT1AvSE1SV0NFTStyQ0lNTm1LMis5?= =?utf-8?B?M1V6ckU4VHA5c0dHbHhybjBpdDNERzJSRWdKdzFqMXg5L0ZsU1hnYWYxbTlh?= =?utf-8?B?eWtoelJxMGJyWmRMOThydDI2SytQRE5La1ZVNkt5NjJRZjhhZGJsbVVETks0?= =?utf-8?Q?uBil9+yHQq8+hGSxC8wmk/ifBiqE931sb646yBYQpYNSD?= X-MS-Exchange-AntiSpam-MessageData-1: /yy+o0yY1KaKrA== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f0465bc-6f3c-48b3-f241-08de874edb46 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 13:36:29.0775 (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: 8LEMyiTJvqM0PsADJcm0Hx5rCQQOHVDZmSyO2BdpPvYTBs02B88ggUp87xLt20sArM1Oi4QBYOWDxOR41Yw97g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9133 A very common pattern is to create a block of coherent memory with the content of an already-existing slice of bytes (e.g. a loaded firmware blob). `CoherentBox` makes this easier, but still implies a potentially panicking operation with `copy_from_slice` that requires a `PANIC` comment. Add `from_slice_with_attrs` and `from_slice` methods to both `Coherent` and `CoherentBox` to turn this into a trivial one-step operation. Signed-off-by: Alexandre Courbot Reviewed-by: Andreas Hindborg Reviewed-by: Gary Guo --- rust/kernel/dma.rs | 102 +++++++++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 102 insertions(+) diff --git a/rust/kernel/dma.rs b/rust/kernel/dma.rs index 6d2bec52806b..a5cc993c919e 100644 --- a/rust/kernel/dma.rs +++ b/rust/kernel/dma.rs @@ -453,6 +453,62 @@ pub fn init_at(&mut self, i: usize, init: impl Init= ) -> Result =20 Ok(()) } + + /// Allocates a region of coherent memory of the same size as `data` a= nd initializes it with a + /// copy of its contents. + /// + /// This is the [`CoherentBox`] variant of [`Coherent::from_slice_with= _attrs`]. + /// + /// # Examples + /// + /// ``` + /// use core::ops::Deref; + /// + /// # use kernel::device::{Bound, Device}; + /// use kernel::dma::{ + /// attrs::*, + /// CoherentBox + /// }; + /// + /// # fn test(dev: &Device) -> Result { + /// let data =3D [0u8, 1u8, 2u8, 3u8]; + /// let c: CoherentBox<[u8]> =3D + /// CoherentBox::from_slice_with_attrs(dev, &data, GFP_KERNEL, DMA= _ATTR_NO_WARN)?; + /// + /// assert_eq!(c.deref(), &data); + /// # Ok::<(), Error>(()) } + /// ``` + pub fn from_slice_with_attrs( + dev: &device::Device, + data: &[T], + gfp_flags: kernel::alloc::Flags, + dma_attrs: Attrs, + ) -> Result + where + T: Copy, + { + Coherent::::alloc_slice_with_attrs(dev, data.len(), gfp_flags, = dma_attrs) + .map(Self) + .map(|mut slice| { + // PANIC: `slice` was created with length `data.len()`. + slice.copy_from_slice(data); + slice + }) + } + + /// Performs the same functionality as [`CoherentBox::from_slice_with_= attrs`], except the + /// `dma_attrs` is 0 by default. + #[inline] + pub fn from_slice( + dev: &device::Device, + data: &[T], + gfp_flags: kernel::alloc::Flags, + ) -> Result + where + T: Copy, + { + Self::from_slice_with_attrs(dev, data, gfp_flags, Attrs(0)) + } } =20 impl CoherentBox { @@ -827,6 +883,52 @@ pub fn zeroed_slice( ) -> Result> { Self::zeroed_slice_with_attrs(dev, len, gfp_flags, Attrs(0)) } + + /// Allocates a region of coherent memory of the same size as `data` a= nd initializes it with a + /// copy of its contents. + /// + /// # Examples + /// + /// ``` + /// # use kernel::device::{Bound, Device}; + /// use kernel::dma::{ + /// attrs::*, + /// Coherent + /// }; + /// + /// # fn test(dev: &Device) -> Result { + /// let data =3D [0u8, 1u8, 2u8, 3u8]; + /// // `c` has the same content as `data`. + /// let c: Coherent<[u8]> =3D + /// Coherent::from_slice_with_attrs(dev, &data, GFP_KERNEL, DMA_AT= TR_NO_WARN)?; + /// + /// # Ok::<(), Error>(()) } + /// ``` + pub fn from_slice_with_attrs( + dev: &device::Device, + data: &[T], + gfp_flags: kernel::alloc::Flags, + dma_attrs: Attrs, + ) -> Result> + where + T: Copy, + { + CoherentBox::from_slice_with_attrs(dev, data, gfp_flags, dma_attrs= ).map(Into::into) + } + + /// Performs the same functionality as [`Coherent::from_slice_with_att= rs`], except the + /// `dma_attrs` is 0 by default. + #[inline] + pub fn from_slice( + dev: &device::Device, + data: &[T], + gfp_flags: kernel::alloc::Flags, + ) -> Result> + where + T: Copy, + { + Self::from_slice_with_attrs(dev, data, gfp_flags, Attrs(0)) + } } =20 impl Coherent<[T]> { --=20 2.53.0 From nobody Sat Apr 4 00:24:38 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010064.outbound.protection.outlook.com [52.101.61.64]) (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 027DE38C405; Sat, 21 Mar 2026 13:36:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100199; cv=fail; b=o1IeGaOkSgH24WeesleGrv/PnTBwlmDpoWvMPV7vUJQpmIXe/UAMWypRCvLCwKGWNJflOXPO0LYz8OY2XHLgwl4bhhbsR3/xBNG10gmN/Y241aCedECTrL4bSCqfuytK2PF1EfO8yVBCs73O+oVQIon+cM7x7s1ILTcqAXBWMUU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100199; c=relaxed/simple; bh=mOgktagoDiyvshl32K5gA9/I+v9wXBJbbFG54PuckfE=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Lt+GP/feOrJM8StHQH07I8k9e2QfmHzPkgp2VtHM0Gm5KQYIKxSvSaluKxnu6IBaahWoL5Mu1urraR2g2l2EOsMUk8SSOzcQFIjYs2X079Yq9IRJuPSauk6fGPlcOVr6jbH+0TAfmGoV6DjTkZLcM4Q6lmfnKiXxmJddIwv7MA8= 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=NsHQxXf2; arc=fail smtp.client-ip=52.101.61.64 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="NsHQxXf2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n9fSW6p2v4CamFrCW14hSdUHB8y7PxLPWcjBwXk+vYWblpUvXNCsskmeYUSK37hWPHc3hQDcT6gmXnuiR2MbK5IImNvrTfvy3tnMWS9Q/H+VoB6jr4w96IC6e9eSrDgjlHV7OCV+wmQuMJcztQpcx2LiAiXsRl2oe3HwM3qg4Gz1DD9zXK+sZUnNU0z43aAdbV3zTEDxa4o6VMclgsDAeBzy9Etb03VkGVlcOzqoj8Lu8gUq0iRUfeFUqFiyOk3oKfW15gcu9HrI0Ce7w7yhYtlwk4/MLTVNhNnHMXT2S5tHhBPSzr0inRHp8Jiv7e2cvOwrXfyawLhtQsX/i3tP6g== 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=2vAoHCVP2EbUZAwnfD0jxx2ZxZcXMsi9Rru26co2rfA=; b=lDJZiQwF8e5j6nb9mYEdzc+GEF/8s9o59MGvPkPuCR6H2V1Qz4bAlhui2+MuUvLQFe5royBbIIPVgwIDonyQLifnseSkMd6YnDHzghIl1EP10552JvqLFPFVzV6uIDz3+ybDkvp3sjwH69/KN60FrZwzQnKHhrJon6WGSAW9o0uOkn0UBUTt04lOxao1cKtDGii5c5zUy4AQkSK932YIaCwj2UY9JvYCOEUek1/UU+/zVefXsL2y7tdjtWeUUYGbDWxjyyqTkq5e9LXy2qRxkkX1ydv8mO2BZUg66yDGoLb4Xcez/34bXVPwOf7cZsEA0idpp1dlghVJvuEMbG1uzg== 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=2vAoHCVP2EbUZAwnfD0jxx2ZxZcXMsi9Rru26co2rfA=; b=NsHQxXf2bRoCQNuf0fncgyfHQLLL3W6IT0pFj4NyjkdzMgVGxEMjz8CKAvIJiaOyHdCrieUC9mOyXaZPeEaTTOSP0ysf+e7xn/im7/9WyEG2963SGMDd4YuJIxpsapIWlnfNS0TmLxQCvjqULeAPds/xsE2fTXfldEpCUjq+POjQQ3Duwp+wY9eL5YG3RfaEdARoBeGD6BP4h/GOKXRXK2KDtrHOkZSKAhM2TktZqQXRA6/MzQ3OJhv8V95eoTsI0eB9V/5KT/9YtxBzdX0NbWhEc4Y/3SSKDQVVzlTldKpl8CdWseIyoeffMM4m732haMra8Cn/EhXAaMVUUdrSCA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by LV8PR12MB9133.namprd12.prod.outlook.com (2603:10b6:408:188::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.15; Sat, 21 Mar 2026 13:36:33 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%6]) with mapi id 15.20.9745.007; Sat, 21 Mar 2026 13:36:33 +0000 From: Alexandre Courbot Date: Sat, 21 Mar 2026 22:36:20 +0900 Subject: [PATCH 2/7] gpu: nova-core: firmware: riscv: use dma::Coherent Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260321-b4-nova-dma-removal-v1-2-5cf18a75ff64@nvidia.com> References: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> In-Reply-To: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> To: Danilo Krummrich , Abdiel Janulgue , Daniel Almeida , Robin Murphy , Andreas Hindborg , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Alice Ryhl , Trevor Gross , David Airlie , Simona Vetter Cc: John Hubbard , Alistair Popple , Joel Fernandes , Timur Tabi , Zhi Wang , Eliot Courtney , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4PR01CA0044.jpnprd01.prod.outlook.com (2603:1096:405:372::17) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|LV8PR12MB9133:EE_ X-MS-Office365-Filtering-Correlation-Id: bf29bb14-419f-4fc5-9822-08de874edd9c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014|10070799003|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: 1jPYRFFClWT6v4YK5JuyDul2ubPlef0idu6V/ZIijxpwxZMxg2Xss2c5TceXua88iYoRUroooUSmn1ayuDHXVbrg+2PY8+Of9+qmNvAjt2f9mKkaIjZzwmj6FvEby5n3vKcQDBnRYmfqxSbBoi4YBFn48iJm+722m0TUe9fEOHfpbZXJAVL34JS7Dpd7kN2RgFH0PC2ZNIQjlTeTVEYQcgf++UxveCnCcVYXsbOxtbbjv1XabTqGPwfLYxYbS0WpE0QGrHxiI8WL0/Aq5D1Mbvc1HYmCRmE26ONICI3tsrSkA5bkbI+aaLp/7a333YD0/qNfLt4o1K+KvV6TV24ifFBbtdMvdnm1hhnfK9xSUU/BkxpAZdABaPgsXJyW7+Zwy0nv1KGmFB5my6axUh1YjmMxQoeMaT0HhE7m4YFGKRLTvP7AULs2jSsLx/fBNnO+WbvFpOYGiPhgt9Iy3Y1N9N/X9/b26uC118NzEqnoKPbddC2suua6BWF9gaUI+sq3GcQrOYo9kk4p+ns700VTGJm3SN7+smtwg04cTfDBRAOYSsw8MTxGRilQVbJQwTOkXJwcmH23xOqD/czjDHvMvPvWc/v9vYVCnIiD/+yrdCy4fZaegDM/qEEai05xamC5bIGNFgPB+JyEHMXlZaOBNlMXKu+mLm/nJXS+d6qx7tLCfG0yzRIV9hCKRdIFHm/ZFQQHaAWV53cs2MGJsu5jDXRXfLGXdLvMTThAAXsLV9hfuspJgOo3ehQzkMpUATUI7w/og3qGd17XRXSBcrTloA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014)(10070799003)(18002099003)(22082099003)(921020)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aGRseElLUDJVME0zYVFyOVRlcXZWZGZPRmo5UFpVQUtRZEh4NUdHc1VQaFla?= =?utf-8?B?T3ZEanVSa1ZEVTVyOTB3WksrUDFFYmxMVlZiQTlkSjhXdFdXV3BlalNlWG1j?= =?utf-8?B?UzU2bTBMNEt2RUlKVWFwTlhuZHNSWlc4azhLY0xsUjlUK21Ha0pRNGVoc3NH?= =?utf-8?B?eEc4cDVENXNZZ2hkWWNERjNBR2RiM01JZVFtM0NWWGdKRWUwMXlTd2MzZ1c3?= =?utf-8?B?QkpzUEh5T0pRQkdGbGlObGpkNU9hQWxUL2dEQU43Nm1PMjBuQWs1U0lndyta?= =?utf-8?B?KzlGakUyMkQwb0tkbVRsYm9BVnZsWVd4M2dYd2RmUitwNnZrczRhbnlKSDc3?= =?utf-8?B?U2pDRHFHZmVIQ0ZyM29nbkJkOFU2ZS9pOSs1MUNzbjZhSDhCRGVTSWxYdFF3?= =?utf-8?B?dmRrTFZLUVhFWHRCUzlaVDBTalAxZmpPbnlYNHh2VnJhK2FKMUV2TVFPVTZL?= =?utf-8?B?NkJiR3hTOUJQMFVpWUNrc3lnVXd5U1lCUkRQdFlCenpxZ1FhbEYvcGJ5d0h3?= =?utf-8?B?eDRHS1dldFZMUTl5dGRjRS9nNEsrNTZIZTRYLzQ5MEw2WTRCcmg1YkJTSHpq?= =?utf-8?B?cHpjS0pxeHN0bEgzU3pTUFNwUGFLb2REekhTSjNNWGlHQmZNeUtKclFsQzIw?= =?utf-8?B?d0lWUUFVZkhxNkpJaEhsNW1pekNuaDMvWXUzaWprZCs5Yms1MStDbVRjU2pH?= =?utf-8?B?WjY3Q1VkNEZaOVI3RG5sWGkxS0hzdVZvZXhlZHJhMkV2dDdvRmc1bVRTdkZw?= =?utf-8?B?SlZXekFQc2ZKYUt4NlZTTkZ0RWZxcVR3aDJuZERrNHoxR1NlV2tzNzZmemE3?= =?utf-8?B?VHdBQkZ0Wk5ZUWxUaFF2bGY5QkMwQTYxTU1jZkVycDRaUEVzOXlkME42YWxP?= =?utf-8?B?NTdOb2NIMG0wZkljaUNkYSt4S29ZZEk5MTV2ZDBlbVVmck9vbkdpbU5odHJl?= =?utf-8?B?OU13Z2FQSWQ4ZWI2SXF6R3dBN0NsM0hKdXJyRFJkUHcvdFJBWmpEa1F2U2Jn?= =?utf-8?B?TzRiNDZkdjNacldYRWVVK1oycmsyS2lJM1R2VWhMeXF2ZzN4anZZNE42ZEpO?= =?utf-8?B?SlZCbHJFNjFwT3VVTHRXZGU3aFpDQ1dMVnZqZUJtT0YwbTAyb0dXYU4wcGNZ?= =?utf-8?B?SmhFRTd1UlN1c0dBN3Z1NG4zOXdSc3NyWktCeC9PTUVZT2lPSjQrQitYdThW?= =?utf-8?B?eW0zNkFlQ1hRbHpGSk5vZ0dEUm5NWWRkMWZ4NHg2MnlOZVFSd1VXd2d5Q25m?= =?utf-8?B?bExhQjVNNzh0VHc2YWt6V25oWVVKMnZqM1piTm8zQ21PVG42aTBYM0hpb2tP?= =?utf-8?B?Rk1OYXRndWNkeGc1TGV3dk1PZG4zdk1ibnFFcy9HUFpEM0xqWW5SVWJYcEkv?= =?utf-8?B?NGtMUWFhZks5dWIrY2ltSnhKUmp6TG5jTGN5a1h0bldIQkcyNGpES1RIQW03?= =?utf-8?B?MFkyV2dyWk05N21WZjJjMUdKWll2bXZZQTFOdzJTdUVJTG1QWnZrSDZkN0Va?= =?utf-8?B?YmdNdDRLRDk2LzVQeHk5dFUwc0ZYaFVZZldVWXdhT251TGNyMVhiVVMzYlpv?= =?utf-8?B?Y2x4Wk5vZXovR0JnSzBCcXFWMEVLLzdJa0h5cURPR3pJWUIrTTVvWEtuVGd5?= =?utf-8?B?Yi9ma3craWd4QytEaTlsUTk3UXdIK1p0bWFGMmd4OHlmN25UMjRNMzl6cjFu?= =?utf-8?B?U1gvczlDR0hzdE56M1RVU0p2VFZLL1NVc1h5bUJOSkgxcjVGaWdhZnBvZjJv?= =?utf-8?B?b0dyTzBiZnI0eDE2ZjVXUVMyeWxkMEU4WFU4V3pmaHdxbVlMWmczMXVNUEpj?= =?utf-8?B?Rk9rMXYrM0dJTXFPa1kvK3BybFphQ2tOWVh3T1Z3SFFsOGdTQ0RSRzJ4OXor?= =?utf-8?B?VE5PVmNFUUZKWWRZMlB6WVh0cFZ6OGVqOHFXY1cwRjY2WUtKcEthOTlMbTFa?= =?utf-8?B?UDVObm1HWU1KRDNsSlYvY1RPeGEwb2Rsdmd0S3dOVXZrRnhOdFVEaTB6SFNS?= =?utf-8?B?VlN1bUNJL3RyUjgyWVFJQ3FYcHI3L0p6V0NiUFRCdUt3K3VOSEpTMmNXRzMx?= =?utf-8?B?UEtkS1JSQTV6K1ArbWZDVk9UaUkwVXpWU3V1OEN2MENzeGZuZUNvY3RPMUFx?= =?utf-8?B?YXEzdFA4d2s3UThYU1ZvT3dSVkdMT2xqRXNlUlozY2ZOMEJZYjZacGVoRUFY?= =?utf-8?B?MGMzZTIxSGRJa3hoZEdVblZCTXkrWnNpbldISnl0RDJub3o4dmdYSVRXSVZE?= =?utf-8?B?VmVTTnR1TWZZK3pBKzE4azA0WEdSU0dzUVdGbi9VTUtqL0VRSkgvWkpTNmRS?= =?utf-8?B?aXBGRDBGeGZLRG1wUUVFUUsxNGZCN3Q0bHBncFlUWjJodTlSbWtZV05xb2Zt?= =?utf-8?Q?5SGB1dNLkAY8OzA9QKmoG5qThFiopTWMo8dLdnGBLFGsi?= X-MS-Exchange-AntiSpam-MessageData-1: XwV/8GxBKb/CVQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf29bb14-419f-4fc5-9822-08de874edd9c X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 13:36:32.9780 (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: SRxFAEhUC0rvCkpOJjsj9beIaNRDZxs736xNbjRREuzrNaZu4tqic6bYLOKjFgNNGPpeh+s5O64/Xgezayl+IA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9133 Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role. Signed-off-by: Alexandre Courbot Reviewed-by: Gary Guo --- drivers/gpu/nova-core/firmware/riscv.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/nova-core/firmware/riscv.rs b/drivers/gpu/nova-cor= e/firmware/riscv.rs index 14aad2f0ee8a..2afa7f36404e 100644 --- a/drivers/gpu/nova-core/firmware/riscv.rs +++ b/drivers/gpu/nova-core/firmware/riscv.rs @@ -5,13 +5,13 @@ =20 use kernel::{ device, + dma::Coherent, firmware::Firmware, prelude::*, transmute::FromBytes, // }; =20 use crate::{ - dma::DmaObject, firmware::BinFirmware, num::FromSafeCast, // }; @@ -66,7 +66,7 @@ pub(crate) struct RiscvFirmware { /// Application version. pub(crate) app_version: u32, /// Device-mapped firmware image. - pub(crate) ucode: DmaObject, + pub(crate) ucode: Coherent<[u8]>, } =20 impl RiscvFirmware { @@ -81,7 +81,7 @@ pub(crate) fn new(dev: &device::Device, fw= : &Firmware) -> Result< let len =3D usize::from_safe_cast(bin_fw.hdr.data_size); let end =3D start.checked_add(len).ok_or(EINVAL)?; =20 - DmaObject::from_data(dev, fw.data().get(start..end).ok_or(EINV= AL)?)? + Coherent::from_slice(dev, fw.data().get(start..end).ok_or(EINV= AL)?, GFP_KERNEL)? }; =20 Ok(Self { --=20 2.53.0 From nobody Sat Apr 4 00:24:38 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010064.outbound.protection.outlook.com [52.101.61.64]) (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 DCF0838B7DC; Sat, 21 Mar 2026 13:36:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100202; cv=fail; b=XyN+onQxwsg40Ojb3mlBX2vTDOIid2/v8XZQNGgqOyEFqWlPaXLF/8Co/QPJSA6Gvz6W8Q1buQQZLhkzcvfOqtIDRjTfXGqW38KoY6Vu7YLJUlgMseCFlxasq2gDaAmFrm/gBd6VFBeFeZX9Zh+rYy6Z9omq2GFmj49y3HHV7JI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100202; c=relaxed/simple; bh=EHE21pbJuOETaF7Vz7mo6vezQ1zFtOLS1SmcwfKqbrM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ZcJydZbUeKyNgkvP3gLLGRVT0RN2LeB7nGtJ2mdAElGCQCLppREfTfoB5Zyo6MLhazKLRf9GBLUELlVkOFaNz/JaWnSNSx+5UPE3xmqt7xDoDW1EUNtQo9w7GnvcfA+BZ9WD6DFXSWoaPGKjuB6G9jk3aMh3evr5gHFKxB35xCY= 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=iHqW6wkz; arc=fail smtp.client-ip=52.101.61.64 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="iHqW6wkz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fZM2TZVtIHNthczTJVBAqJ4NI0yqSQz6tlldfsqk8bJaBgsJ/Ii1+VRxrQfpX/g8t0aE5jVSTzBDPLYZ+Wk6BTUxKcYLMoq/iuRA91rfkTWWW5ajkiRjCX67Joi5oqpYickIliAZH7AT2lRJZDpOe7VtKG82IZ8XYJneZvtyGK6nnSzUnEjU88mguR6fHC1FMjCyjWeU86plE5oDQpgOs5t3igbtxOdwme6wtefqQMhjngmf6asPt74tp7HT7WtgUE5DmkBeE8vu2HNnX2WgqUlNQcoIwnLHgmOS+8g9Pa2+t6pT2f4856F6jSUM04K9R+lz7IY3eIDxEthRqAJqVg== 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=tmyrJzR402fGayqLJMsuOLSMaVswlwHp4VsC2piXjLA=; b=aSuKVR989o47pzxU9nKOHm9xjuUe+omliituZGIBtZfQa2Au2AomuIABO6+jubemCvrHegbPoxwpO6JIzcYNpfyhQOdPehC5XCc4mz26lcAX84VN6x4k14Wk0VXoYdhm5WUnW1aC7HYGUVJfcr5U8W1Dj8TUIZzTIB79oiFegXkSL7tNOV8QYqzWNAw3YzDSBXBqs+Liskm9fn4KL6ZZVOLm2OhYpTIBT2O6X01DigX0a1kz2/cCZhnD7/IUDuspm3gnCcMz43X8JPIgA5jE1Leor7o3CORM8ZRD6QVV5cTKu5JaV0iGN0wNxKM1jHom2ZlN2J315IP70BjqPCeD4Q== 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=tmyrJzR402fGayqLJMsuOLSMaVswlwHp4VsC2piXjLA=; b=iHqW6wkzUV4oTmiByYrdX/tSKrf4x9KlLvkTsbG18zH7nMYDuOuDG9PWSeOt3FEtUMO85I3c4Pgif0cXzt6rhJEGdVJxKmkyBXQvTjgSvjY+rcTvXJTFPSIhNoduS4Tm2GGtvo8gNeAQ0bD4M0wAt3tljpNKpRwczy3lkJagIv9LI24Enbt/U1JcPxzH9ssovUs0hMgOikw8ajePq/4MFd20MrRUA3foOgbAycOOMBparjvMRnrBXwVFD9vP/dcjYYJ6AYFd24PiDUpo4gk+paL6LVW0n1pPhULWVVJuo5pSmFRbMjyRMuV4p0YwStxAoIrIG5OTp9V+iYOyfDa5Fg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by LV8PR12MB9133.namprd12.prod.outlook.com (2603:10b6:408:188::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.15; Sat, 21 Mar 2026 13:36:37 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%6]) with mapi id 15.20.9745.007; Sat, 21 Mar 2026 13:36:37 +0000 From: Alexandre Courbot Date: Sat, 21 Mar 2026 22:36:21 +0900 Subject: [PATCH 3/7] gpu: nova-core: firmware: fwsec: use dma::Coherent Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260321-b4-nova-dma-removal-v1-3-5cf18a75ff64@nvidia.com> References: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> In-Reply-To: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> To: Danilo Krummrich , Abdiel Janulgue , Daniel Almeida , Robin Murphy , Andreas Hindborg , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Alice Ryhl , Trevor Gross , David Airlie , Simona Vetter Cc: John Hubbard , Alistair Popple , Joel Fernandes , Timur Tabi , Zhi Wang , Eliot Courtney , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P286CA0132.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:37f::14) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|LV8PR12MB9133:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ccae369-f506-4c7c-9713-08de874ee010 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014|10070799003|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: 6d3fX5XYlbhwY4uRR1OlkOR6jAvDaoLofELLRUXGLrD5g84GYBldGJgKsXJi//MQVUwAVehZSn1g81gzEzqNwTswye+XTx+yxrXl/RCcJGc1vTeQbBE2BYme9QCYmdt9Xt9J7tQK8GG685aYAyI3dSVVigakT5qwnWIHwIgCxgoDW1HT41QuzDcXgVefQLd2wBeGQ7/XE/JNVd3/wGJpN/dYXSkws0SqKCZ+Z56v92Fxg6X/nwQwcRucVcI0NzsQ1/yz48ddEiEuXCiWgwTE/K1Mu+ZR7A2t5KcJ617g6pfWiFlIHs1OLpXY6a2b1ekmhorHAEZZBRR3rjQmz7JVlpHynUTpThy+orVIzPYPxFE1uiCdZYobVXZQr/XHRk0QR2ZOCs7iixkid2twYFFQNRtbT6PE61dEITteGrvCxnf78ZELeOzehqJeH1PdUqZAkFi17UKfuGbcOcMeKFfvIY6ZgsxpIJy5rjO9dIbwoATREamY6S+bsI388BvwOMzmQk70h8EcsJl1zC4sIdBiwQSTXvgoxTDSYppMgLweUvrs4XVxMtWgJr3SUs3G4txeEsRAi/HBGHEdHyhNCbnlg1WmQmTB6Foo3exxsmPe1UAUTc1zt7uu/p/3tjrIq3DxPMN1kxbAWdLluUtoetAiBuAWCwIfWe+DkPDJbrLb8dfWXD5HuOA7mfoRQrSpajiefohY76tsL/xCLltdeszMQdtEzeljz/su8GvUwirujzJnBNgiAR7LXyiFTPBf2vLgTqgohepPlrxY8fclC1/IHw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014)(10070799003)(18002099003)(22082099003)(921020)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Ynh3c1ZRYmdTbmFkOVJBK1U2M29zaTF0YXNSeWtGS0ZaSXhaL1FmQmxzNUFU?= =?utf-8?B?bzBmUVNUN1dxU3N6czZ5SGN5SXNkQm5pblZqSyszQkV1Y04zcnVGUFdSK0cy?= =?utf-8?B?MGxrTXBQaldBSFF3VFhqS0RjamRiRVlWZmFBRFRBTE82elVJNCtBSm44ajFL?= =?utf-8?B?aFNveU13Z1MvSHQ3ZW5CMlp6WFA3UGZPOTl5Z2VhSThGNlFwemt6MkZXUzBt?= =?utf-8?B?YmZ2OE93U3hoZ25MbFJLUmt3dE5vTkpiNTlTUTJkTUMrd1BOMVZSRDZqaXc1?= =?utf-8?B?T0FKZW4wVnc4K1YyRmdZeDBmRTZPanp2c1AzbFlxWVZ0eFlyQit3bGNwZUhM?= =?utf-8?B?YXpzdDczMGRsczhhUno1LytMdVduekV6RW14V0RhTUpWOWhSRFNBWEpQVU9G?= =?utf-8?B?L2p0bzJuZm5XZWkxd1JuZFIxTW81bzJwenJvQVI0ODhzeVVsZ3FWTGdkYkdG?= =?utf-8?B?T2hoanZNT2QxUzhQd0Q3UTZFc2hrMDVVc01oM2g2VjBPb0xYTk5rbURieTBW?= =?utf-8?B?T0lhczhua0VuZEZqVnlCZ3F0WGZScnFIL3g2V3FzK3FOTUZDR3N5OWxGNXJZ?= =?utf-8?B?VGtlZFBpTDdRWTBxRks5TUR0UHRvU3RNRXAvdGtSK0hyUUdabUFKQWpaYWFK?= =?utf-8?B?RGVYSHpSZ3R1c1RsS3M0NFlDZm1USVVTaTU1ZGN1TTQ5QUVyQ1BKNWNFcjJp?= =?utf-8?B?Ry91UFY4THFmWDRzOGJhb3dmbXdsS3kvbnFxZlI0MHB2M3pUMkdBMThLN2JI?= =?utf-8?B?eW1QT3d5SDh0eFpqTlF3WEkyLzdhQSt5WVpvbUloNG03R0lEa0xsS2NFS0tY?= =?utf-8?B?Z1lDL0RiLzFPenhXVzlhZGh0SWJrUUNJRUh5Q2kyMWFJVSs5YVlBeTZTalJ6?= =?utf-8?B?eTBVQjcyQUhtVGdYN0NWc0ZGTGptekdseDVNMmcvbm5HOTEwaTdQbHc3MS9G?= =?utf-8?B?cG13WGVES0JMem1MZkVUWXRTV3VWM2I1Zk9ZTmd0VGU0YmFoSEU0QXVBSzly?= =?utf-8?B?UGlpSngveVkvVkphQk42bkxnd2NDMzgyalI5aFkxVGpSOGtCa0t4dWFzb2Rl?= =?utf-8?B?eWVQcmkvRDM4b3U4eXdXTnMyVmt0dk1wQTRmSlRnNVBhZHRCZkgwbXFKNURE?= =?utf-8?B?UUNxVzd5R2graThLeWVIOUFPVS83dzlmMmNrOEQ1eE9QVm1uODBpZUhUb2RJ?= =?utf-8?B?dlozb0NFQXYxR0RoOVhHRkhpeUpkVUYzMGhobkpiS0hFSjF6SnJCODJTbzk1?= =?utf-8?B?a1hGM0xmSUgwQ0hiYkUwNXV1MlFiL0xoZHJXTldSWGV3eU9oR0xGM1pxcVNo?= =?utf-8?B?KzRsbzBWOTFsOWFQZDh2TE0zaGxiajJGUXIvNkpDOTZQK1E0cGxqdVRaWnhi?= =?utf-8?B?YkoyWXplazErZW40WGU0WUhEWjYrTFhLaG9taEd3TW84QVJjejFFdmZxOTBk?= =?utf-8?B?THpSbDhsdnROWXk2aGVZVDJCYkZRQUhoblVRbHlCa1hCcWtFT1BpUGtja3Zo?= =?utf-8?B?eVNXRGtzVU5JazlaZXpvSWkzVUFaU2ZjbnFnNDBvUEhoWGp5TnlIanlwU2M2?= =?utf-8?B?eFJ2TjdoQWJTMzFoN1ZsUTBnVlMxdS95M2c1dWFtanhBZHhkN1NUVUZKM2ph?= =?utf-8?B?RklScWNrUHpseTU5c2FyTVY5SG0ycElFQy96clVyMCtSckhTVmJHemw0VG1Y?= =?utf-8?B?VEJDY3I3T3JPN01CQzMvYTN0b2Q1SEVRdThkMjZLMkFxN2NEb2x6eStnVWUx?= =?utf-8?B?b1IrV3Z3ajNSem94dWo0RkhuR1hjb2J5bU4zUjJyUzA2TXkwRnpDUEc3MGVX?= =?utf-8?B?aW55SVZnb0J1UG1Jb3FGdEV6LzV5KzBDYjc1N21YdWp6a2MzRmloQnc0SW5a?= =?utf-8?B?UHYrZk44MUR1UlZhTW9USGV0djNhSnFGVnVFZzJ5WllzT1RSQnczSERURGZC?= =?utf-8?B?M3VqWjlOY3FseXBDdFVZZ3FDeFRXWFVjOHlIeGFGOVlPelZlSmJuZHhVVE1V?= =?utf-8?B?andEYTkrdXIvbFpVYXUyZFpQdktiQ3pmQ1QwM05FMTU2ODgrOXpCb3VtMXlx?= =?utf-8?B?UDNXWVh0T0hmMGIyWHRFY0RsVk1pZDRBdm1tV0xLVjNaQ1lWL05lTnNYK3JR?= =?utf-8?B?MmhEWlNtSVYwdXAvalFaSzlJN01GYnBFelQ3QUI0bFpQNnFia1Nla0crNGVi?= =?utf-8?B?bVU1YUl4QW8ybCt5eEhrRW9xTzBoYVpWcGZPaXZIZ1M3aksvRSszcXhUbC9Y?= =?utf-8?B?WTZSeGFNRzdOWVZoVDc5eWVsbVgza2ZkMWJjdEtuM2pKc3BBN0ZlS0FhTlZk?= =?utf-8?B?OW9yc0JpZW5aZE13YlZIQzNqZ2wwdEVZM0lkK2w0RUVYZGVTZ2daQ2VmZEZP?= =?utf-8?Q?LFxbPuNN59zbypgjV+Jj0gJ1Mp51R/DBd9omZ41ZJwWHA?= X-MS-Exchange-AntiSpam-MessageData-1: N+YJbm8ooF6JBQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ccae369-f506-4c7c-9713-08de874ee010 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 13:36:37.0836 (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: xExSBkmabZrrLh1KtRKWz69ASwOOgx8u1nnhW/WJvloZMq5lhViKgTsZ319EsIpkcsGu0tdrEfXAsJ+/RtCOyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9133 Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role. Signed-off-by: Alexandre Courbot Reviewed-by: Gary Guo --- drivers/gpu/nova-core/firmware/fwsec/bootloader.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/nova-core/firmware/fwsec/bootloader.rs b/drivers/g= pu/nova-core/firmware/fwsec/bootloader.rs index 342dba59b2f9..7c6bb0a871c1 100644 --- a/drivers/gpu/nova-core/firmware/fwsec/bootloader.rs +++ b/drivers/gpu/nova-core/firmware/fwsec/bootloader.rs @@ -12,6 +12,7 @@ self, Device, // }, + dma::Coherent, prelude::*, ptr::{ Alignable, @@ -25,7 +26,6 @@ }; =20 use crate::{ - dma::DmaObject, driver::Bar0, falcon::{ self, @@ -126,7 +126,7 @@ unsafe impl AsBytes for BootloaderDmemDescV2 {} /// operation. pub(crate) struct FwsecFirmwareWithBl { /// DMA object the bootloader will copy the firmware from. - _firmware_dma: DmaObject, + _firmware_dma: Coherent<[u8]>, /// Code of the bootloader to be loaded into non-secure IMEM. ucode: KVec, /// Descriptor to be loaded into DMEM for the bootloader to read. @@ -208,7 +208,7 @@ pub(crate) fn new( =20 ( align_padding, - DmaObject::from_data(dev, firmware_obj.as_slice())?, + Coherent::from_slice(dev, firmware_obj.as_slice(), GFP_KER= NEL)?, ) }; =20 --=20 2.53.0 From nobody Sat Apr 4 00:24:38 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013047.outbound.protection.outlook.com [40.107.201.47]) (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 1BEF137DE97; Sat, 21 Mar 2026 13:36:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100212; cv=fail; b=kvmJS7FxRCFundiW/cSXPCtj3hxCd97o13K1UtaqcqaNPS3bcEXdALCWAX693Zl6Zvgt0A35wh7wDWOKW/HVFHOQBAo0mxT4JgmyJDGZd6K5kJZxFc1BEAIGceVGPiqDlO2Q7APmbxIoNEKC7EYEzIYQFX4+PnOCl/E50N5pHog= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100212; c=relaxed/simple; bh=aBnFlWLS2BN08/dMqK7cdN9jOT8XSk0sJozQVva79Cc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=TdmVej8dHZ4y/IugPEeMSEcoZAd/0Z+F0KuHVuQP6EAz6a4dKmeLjaw/V8NSf9R2bQ6IIREyjQzcFR2lrSscaJ5XWfoPt68j3fWs0puggYtw8YXniD6LafqhWLEBOvQY4L1xfVxZVobRpUw1cSyS4aaJMzmuFMQwo/JcW7Qcibw= 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=qaJTunX6; arc=fail smtp.client-ip=40.107.201.47 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="qaJTunX6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AkTDbHoZVf05YX4VQiDgU/1V6nXzW7ecyZ/m/sRbwswXnOBGtvTZioBlCi8oJQejvcsRsPeXH4uWE6j187sGl/gy2MDzdYOwghaxICQdmnFf6hXBCaKS0JXBnj8BvgASP6AV02w9oa4rLiFgP6cbmNKf63f2kWRicP9eqi9CqREHuBWQODCCA7dOCy590DI/UA46smXtQejpES2ei15Nc7KEXx513pFOaZDgT0M78/BKl/UpROdxwCu594+ZQKDXcao6DtaEEB09zfd3cgJe4hkTIddgZAP+VVpaZmE7jXmhL+3pYHHUUB38otgVDsUNASx6MWP0XX9oPGGMT0DFqg== 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=miVyfIErXfTxZFY7Kg8WzYdWRXLrYS4+XPL59y1PQN8=; b=BYgqJ6EIchyehuErGZGjBBpvL/orfm77lAQ9eZ90m9Dr8I83WfDBXEDmUyItbZCVLXylDRyMcqeTJBMtaL33uROzvxtRg58nXhs3kdTLUhQXHR8PIvtnRfp8RDde0LyVk+YKPwrm3jAl4kRa4l4h1913+HrPpdqZ1hdPEAivU/ugqTy8SHclEvzGTRiWRKrvtg7pRDC2CITrFbcbWAU6R+/fcRZ2JF94eeaTIqMyeI5VcELk8Ewo0SQL1YCZu1Cq83kLzjNea6BAA9fuk3ys3Ma4vFZg0rYz1KABGADoGGjooETZd4oEfziLBK1LXoMPlWsF3B7LAkxB82uGrNL4Ww== 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=miVyfIErXfTxZFY7Kg8WzYdWRXLrYS4+XPL59y1PQN8=; b=qaJTunX6hMXSiB4CNh+7rRFaoDOEu1nkI9XGSBVxLgMq05Dr5cU/L2l+z44q97YtCg0O0j0OZoVY1pXBZS8gHMvpA3rpcjFjsiZ2VPrmRBkPj6Pyt0EmKWBzFa+89gV9OzKU70sIuEtag9ryIiRbWmCbRWefNMYtAxyAtnlAiIkDVhh7FewY5km1vBY1XCd0gGsullXZSTMzVtPxVfSS7n72xVv+dZwEa7twOfy0qxSecAKSuSoy+juXi2BFKy4gxIVAHOmoU9Azt+aakjlkBJpikPnj/oyHpPrEuDSFgH5Szb53rhS9ANzaXOGk6zWSccGYnIK1iYNkoghzWpYcuA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by LV8PR12MB9133.namprd12.prod.outlook.com (2603:10b6:408:188::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.15; Sat, 21 Mar 2026 13:36:41 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%6]) with mapi id 15.20.9745.007; Sat, 21 Mar 2026 13:36:41 +0000 From: Alexandre Courbot Date: Sat, 21 Mar 2026 22:36:22 +0900 Subject: [PATCH 4/7] gpu: nova-core: falcon: use dma::Coherent Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260321-b4-nova-dma-removal-v1-4-5cf18a75ff64@nvidia.com> References: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> In-Reply-To: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> To: Danilo Krummrich , Abdiel Janulgue , Daniel Almeida , Robin Murphy , Andreas Hindborg , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Alice Ryhl , Trevor Gross , David Airlie , Simona Vetter Cc: John Hubbard , Alistair Popple , Joel Fernandes , Timur Tabi , Zhi Wang , Eliot Courtney , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P301CA0076.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36f::18) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|LV8PR12MB9133:EE_ X-MS-Office365-Filtering-Correlation-Id: 88ec8113-85b6-4c36-333d-08de874ee292 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014|10070799003|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: 6TBhdFAgaP04UohUbEhA68a4Wf0MoY/7wG2bqFidGns3s+8qV3Amlsw++8KQf/dUr2wXl6FxDbfePCyncRtipKUEqeDsPaSj6M8jA4bckcgvkOWYaKA8DMZFu64t4sDLv/aL9ymZc4pYI3U5MtlqhMp7cB6GGjVllqVKCBC4Z9QU1dmulp+d/K2YzZRRhxrZiQ4+QZZkSqPDAB8SrJmDdaexcBqVfSCCvwseHGQgAwMa8nSh+PO0SM2uDf3+xuOCZSlRr/osj28itGq3RfOljmkXHfwINJFrr93gMnIAkg+RwUg75MGZdTThumH/1nmGbIjz8PEOK8PfeuQ1/KxkYPnM1SLlPf9hC6Rx+a+yTacoHyKsRcXOSs3yJHafIXEz74vYK0dllx/68KJi5i+VAdvSEOH1y14jymxHC9/j+OomVtlJj+o7g7uk/eZfUfyUt5drB+wZc7NOWvuQjtRX6+8jBcfwLaWQa0jyz0RDWlzYidQO6BTB3/0/brS42F1RRo8ZwJc5HUZJV2Gk7WZDwO8STMCZHWcKRiqgI7fyJ/sgZhvw+oSzpfAjfeSJwe1xyiLOIJiYPNQgfjw57+tuSaQxpDjp9L781VnBKcpN2aW8Qqo6vQy0AJTXABh5vPRr+fyU2PuN59apzmIwhr2vYO7wGsRqqMdYO/flBFQ0Kr422BR+C0+G/51Hsf+mILUF6x5pd6f345528owpVREayhEAHkri1FdTehAJjTtqBQh680YEMtcSrtVsbHYcQn7edCj9majw1THNKAr3JkvUpw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014)(10070799003)(18002099003)(22082099003)(921020)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eUtHM0grSnl5SVI0UzBOUFN0SE1IaXJwbDVoQmdWZXRBUGZ0cjNLbG5XTHpY?= =?utf-8?B?d1VpNVpmdVY5TlhyVFh0aHNkWnJwbEJVMXc5enpnVW9ZNEVnVEhQUlRnSTNn?= =?utf-8?B?cXpsMjZnOEp1NjJnOWxkVU5jWjVvOVBaNm1yWWJvYTRBOEsveVJ4SnlJYnhW?= =?utf-8?B?RnpvZ3dzbWRHQWlONk0zTTJ1YnljcXlRQjJKSmhTL3dseGZqWjBoTDdtQ3NB?= =?utf-8?B?UVo4S3BHUEVVWW9yUnIvMTdDdE9MY25wczFVUC9tMVVTODkrRG9Wc01pMlRS?= =?utf-8?B?SFB1WklZMEtqbTdnRllPcGZrTkpydmRqM3piWmNvRExTNmo5blh6UE5ZQmhM?= =?utf-8?B?UkpOOVR5TU9vckVOdTlvdUFFV0xKVUVYbEJGSTUvbHp0YWNoU2ZoNWRhRW9V?= =?utf-8?B?amlmNTFDYmNyTFJuNE1NcDZickNKU04vb0ZJS3lnbnZrWDBuNUdJWlJvT00r?= =?utf-8?B?NnQ4NjN3TXd1TXZydUdFUVg1US9UUmxjNnhubWhSUU9BYzhyeTAxenY0RExC?= =?utf-8?B?c2xrdXAyM3ltV1JRK3krRldXc1M0QVBpZzI3K0hyMTE5eXc3YS9ONlI2K1dV?= =?utf-8?B?MFYxZU4waVdpanp1MndYSmN6ak1MNU5ocnQrdk00TmRTMkEvendTTE8zU1Ur?= =?utf-8?B?MzhFUThmcmtlVnFJbElDVVpOSDA1VnArRFREUzNvMituUzNCUE1ZL09BaDRk?= =?utf-8?B?eWNNdFZjQ25pdTBGNDhPL0kzWjdFaHE5aVpWV2NOVytIYW5WWHVFeTdTak9w?= =?utf-8?B?eEthbW1ZOEw3UG9xMWdCM3ZzTEJoeUZrSnQ3Z0R3d3A5QnBrTnZTODBESGVQ?= =?utf-8?B?ZXdmR0s4WFBwdENTS0w1NCtheEtDcWF5YiszWVBNc3lpL3VCbTl5YVllN3lI?= =?utf-8?B?cVlkS0wzUVFpcTU0QmE2ekw0SUx1emhUQTgxS0RrSDNXci9RRUVUN05DM0dr?= =?utf-8?B?Ti9BLzhUemF1WFhuZVdyMUZXd3VhdjNTY3poU3c2YjRtNmlOeThXUTE3NEkw?= =?utf-8?B?QVNTVzhWWG5DeDEyUi9PN2dFSy81aU5LVWNaSmxoNVZHRzdXMHdGVlRlMHJw?= =?utf-8?B?ZjNodDlZRzY5RjZhYm8rbitwa3hUM0d0VHJJWWdldTVuamxuOEFWWUdhL2ZD?= =?utf-8?B?QU00bkZGSGo0SHdhWUZDZjJ2ZXZ5Q00rQ0FTNEpqaWxOMXBaOXJMdGlMM0w5?= =?utf-8?B?SkxjbHpLTzZUalBLVlJjK3B5RWRWQVhjTzgzWCtVTVRzR0U2Q0NZbW42VzlX?= =?utf-8?B?NHJXOXA5QlZmNFhOZE5rSDF3dHZMdXphZHBIbmFBSTMrVUhHdGVuMjZzQVJn?= =?utf-8?B?Q2VwV25zK3JpNEtSbkV4Ny9Pa0NpeWE0MkxJcjFWMVZwcGo0UzQ1SC9nY2ha?= =?utf-8?B?UWVib1RpeXFLYkVsMmdzK1RPRUxYbUdmYk5DcG1jYjl4Z0kvNEk3TjlmZFdx?= =?utf-8?B?R0RkV1VtMjNyQ2dZdm16N1hqTWVYVjFCL1ZZY0JIbWdJWHRSUDZOUktMM2tv?= =?utf-8?B?eFRjbWNLc2VoWlFvN0syZ0hPQ2I4aXpXWHNXUlNJLys5aGdwLzE2a29Sb2hn?= =?utf-8?B?Z09kNTI5allLTWlnV1NreTdFU1Nabk5qZnNrWVJ6Q1RWRnZkNXprZk13akRi?= =?utf-8?B?dWhtTFBubExzRm0zOUYwVDQ0N2hQZnBtT1lWS044OXc5RXRTVjRaN0VGa0dx?= =?utf-8?B?WEdJNnh3dk9ib0FUYlFVaE5pb280ZHhRYXNFSnJMQWlhVXhEdTMrOUdwT3lv?= =?utf-8?B?RUg0TmNkdDBsZ1BpMXVBQURCN2FxT3R3c1FtRTFCYU04cHlERGQwMytaMVpB?= =?utf-8?B?dldWZTdzdzI4RmNmTndYSDVGdHlZTENGenNTZ3FOTGhyN29MTytvM3J0d2N2?= =?utf-8?B?N2FxQ0M4TCtyTUEwZmw1OGNmeTRzV2NGUndzdmZZVWVjL0dEWXhFYmFWOWlJ?= =?utf-8?B?N01pV1c1aGo4WXY1dDA2QnM5RGRrbkFNdEhEZTdzeXRFMGtDd1F1REtIdW9v?= =?utf-8?B?TGZSYVZuYk1yU0tzNklmVEdLRUNHK1FqcytINXhWcEFJUzZkM2JjYkNYSTF0?= =?utf-8?B?aHIyWnFYbExhSFZUNEZZNTZWYnVEL0h5UDc3bm5IRjNQdWJ6dko1c1V5eEpp?= =?utf-8?B?eXcwWFN0NDlydUV5SllCdXhUK3BldHlqbDZyNFFyWS9KQ21CRk5mTEgwZjlU?= =?utf-8?B?UUZGb0RObjFiVmNHdmovT05UWWZMdng4TXRPL0NpdmZVNVRiNk9HU0NEYkVu?= =?utf-8?B?eGZmOHU5T0Rmbjdveldva01VbHdpUUM4UVdENTROdUJFTHp3Q1BBVWN3R1Z5?= =?utf-8?B?eFBOYXZTVlBYZTZIenZYSVErdWdROTJXK3pBSWwyUzV2cDRXWGQ4d3VzUjNP?= =?utf-8?Q?SntLHkbhYuBqBExK9QuoKz+UjDRqnRnwVFakzenjnq9zs?= X-MS-Exchange-AntiSpam-MessageData-1: Vjk7FeG0WVzvpQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88ec8113-85b6-4c36-333d-08de874ee292 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 13:36:41.3021 (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: xyad0DEz0UWijKS7DHtYswVQB/de3p0PTcdPwDVZaF+FWNnp4iJjJKoD2JvxhVqRqRjHJXPlYJS17aBV6mAAZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9133 Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role. Signed-off-by: Alexandre Courbot Reviewed-by: Gary Guo --- drivers/gpu/nova-core/falcon.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/nova-core/falcon.rs b/drivers/gpu/nova-core/falcon= .rs index 5bf8da8760bf..f6239c44dd80 100644 --- a/drivers/gpu/nova-core/falcon.rs +++ b/drivers/gpu/nova-core/falcon.rs @@ -10,6 +10,7 @@ Device, // }, dma::{ + Coherent, DmaAddress, DmaMask, // }, @@ -20,7 +21,6 @@ }; =20 use crate::{ - dma::DmaObject, driver::Bar0, falcon::hal::LoadMethod, gpu::Chipset, @@ -636,7 +636,7 @@ pub(crate) fn pio_load = + FalconPioLoadable>( fn dma_wr( &self, bar: &Bar0, - dma_obj: &DmaObject, + dma_obj: &Coherent<[u8]>, target_mem: FalconMem, load_offsets: FalconDmaLoadTarget, ) -> Result { @@ -740,7 +740,7 @@ fn dma_load + FalconDma= Loadable>( fw: &F, ) -> Result { // Create DMA object with firmware content as the source of the DM= A engine. - let dma_obj =3D DmaObject::from_data(dev, fw.as_slice())?; + let dma_obj =3D Coherent::from_slice(dev, fw.as_slice(), GFP_KERNE= L)?; =20 self.dma_reset(bar); regs::NV_PFALCON_FBIF_TRANSCFG::update(bar, &E::ID, 0, |v| { --=20 2.53.0 From nobody Sat Apr 4 00:24:38 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013047.outbound.protection.outlook.com [40.107.201.47]) (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 330261D9663; Sat, 21 Mar 2026 13:36:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100214; cv=fail; b=cSfw7RGygkwyxrzBUqK/8Ki3pAIjLxbzKtN6RGlrgpoLot7MurVxp7xG3iPZgf+jLuqgB48+Eg/AGpComhvO2qW6xwTWO4sNithV7La/KRWscD3nWUzHrzEYC8yrdCukd4pZz2WALKZYwyAs0rtNDBV9YlkInAj0p8I30mlqtcM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100214; c=relaxed/simple; bh=EX//spgIqV5RhAwcj+2Y2ukONQDZTUu4PesKMA1aV98=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=BpJzLyYd80luwUTeMgQJtNyVBQ0IvByiXctpQoAnRU8dPqHZdoeQYsgZWGjH2H+L2XGXeNZtVZFAXECCXsu7DeGLRSNl1/EInuvIjCUqgj61xonBGvLWX4+UjToL81lllO7zKOqKMnDCW0mJv1UeY3LtD6eEe4KubT6QWxtR++I= 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=goERvdUR; arc=fail smtp.client-ip=40.107.201.47 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="goERvdUR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oJzTJqza5yVmFpfVy8ffGVrVgp5B7ky9LN5FXprF5xm9c54fIHw+Y3RBzcFLQ2rt9MxFvhNczY/D8n+obqjR1cJzkue8AZbAVEgFvgDngMV8dSaxqsiD7EDSo2uDoVO9HVaEPY75TgF8cAW2pUCQyrvHBYFuTwOuB5GV3qqKeuhgY7hv8De18jkBZ16vzUjgHpJLCIEIkGjG0vcOmy/aPVnKVUXrWCGng/B0h3g+D6ewL44Sou6GomqgHUbw1QGR6WEBXEqo5Mb/8WwU16GL6owIdlVoS/360SHz/FO6ANXEed6WmWGgAHwqj7chW3xSKfB7jEYrq6wO5xNzLVp/wQ== 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=3NNr6JaNvFCvzZrfyrrPM/QCgEZkcrhRCrhKGsS5Z0s=; b=J0YFooLgeb2mBZ6vXjnOe6B5DVYr61/T9o/ikn89d6C4VNZpVqpHOMnJXDRRkKNBIE+rYpOaYHWHQYFUGz4Yst56k7Q/4GrIYgq733xPhMhcNvUJhZuQk1EO6edGxrai66RGCSD3gFsE7BQM1GYog6O7KJvZq1X0w8ziVncozFjpEwu4smwxScPey9BqxQA3m9Z353p9uw3gI98I2W26zSBl2FzY30cO8egc/qvi34ysF42v0QW5tVMLLhLugsWUddwmo1mlxZylmA0yv1ZNRaVOxTUMwDpmW3uraRzX1PCOJ7U1U1NFlY/77PvRmfiQiayV/iiSeqWY2X3b3xTyZA== 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=3NNr6JaNvFCvzZrfyrrPM/QCgEZkcrhRCrhKGsS5Z0s=; b=goERvdURZkIus+qkLrikYvAZlAcgBmBjYP0Mb60Neq3STZ2CSFjtXUsrbSKe26mADSnuKfe+hedC7fWiH9HTn2dk1Zv1yKQ6UTK9Buz17zqy0tT5ndFwrv0TES8p2J1wtleVNjYmdRlE8EPfo1KaWHYF4R84ingq+RFRHrTr5N84ZOWSgV4+w1GkNsYZiZYdLPRbXU9vTqhm8mi9QAoMNIc8qJ4W49GBVRhi16am7ZktjQxekVrbCOR6je+bezkDUf/6BnIQeXm1CJ/OPWbWa5/6QocEADFZvegOYGSz+Pd9LVkJelwc9VTIRRIAxAx3jPDXI3NkLVnYu1Ykr3iSgQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by LV8PR12MB9133.namprd12.prod.outlook.com (2603:10b6:408:188::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.15; Sat, 21 Mar 2026 13:36:44 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%6]) with mapi id 15.20.9745.007; Sat, 21 Mar 2026 13:36:44 +0000 From: Alexandre Courbot Date: Sat, 21 Mar 2026 22:36:23 +0900 Subject: [PATCH 5/7] gpu: nova-core: fb: use dma::Coherent Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260321-b4-nova-dma-removal-v1-5-5cf18a75ff64@nvidia.com> References: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> In-Reply-To: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> To: Danilo Krummrich , Abdiel Janulgue , Daniel Almeida , Robin Murphy , Andreas Hindborg , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Alice Ryhl , Trevor Gross , David Airlie , Simona Vetter Cc: John Hubbard , Alistair Popple , Joel Fernandes , Timur Tabi , Zhi Wang , Eliot Courtney , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCP286CA0190.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:382::10) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|LV8PR12MB9133:EE_ X-MS-Office365-Filtering-Correlation-Id: 22e4b45a-ee26-44ad-dacf-08de874ee48d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014|10070799003|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: bRuE4Y3VWG5RjClKccjH3RtHLkCWb9h4LjGIpdQ0waNOP9nZ4ncgmmcYHJ+ZOACRD64gBk1fEEZm+qfytMIYhWEmmhHCOAICrhKrF/4QQOIhBwojxnvWhlPW58jMU/61VnYHXei2v+wHy5YDHLd0yf5U9EUHF2vURsGpZl8SQOJ7hL9ynu1B0VcP61kZHrgX5lRe8w8cHKyFWpoUkbO/DUtajdOGha0k8esS0LilW+27rkgeHIv6X35fWh4o3rrqXRKedC5RgXZKr/zco22/K+USeNdNFGqgyBgYWes+q2AF7p0AVZXDmLimo6173RS+iV7ULmqNgRikLKyjg6Fi+cmg24dZyuQbaoPOROsQFvWjxjFVPHT3D36vmlNygeCxkBds9Hw+BxsgN7HcrW/QscdOP0y/2Fg6OhwCnI+e1yuxX9ukeIU7U6F+CIZsdMnRqwzcBDQ5fQ6Wg9trmNcBKrSFmKj/D35hYnJncaCIm6faj+Igif3grn5rCHCFCNG3p/fKIaocX4906BUSPAsi7hBogVOW8dILBNvOhEb7S4ap4R2MHOkRUsKTQisEuVgomVOQj7gz2Z3Sn9AlaNFrSxFYdkM1Y1Y7cKb3HMZ2tWQSIesu4vBsY58gg6BEGHREA80iVASAdxZrr7/IqwIoWyTAyrlxxK7li5qi7d4qcIGNI+CIfn3ln5dUTOwnv3krs3s8S3NcOcbj+/AbA/pkXM7hmfoDyWv7jidyfrIhtAsHyS0VgFQR8SJcRCpSWlN4XvpjQs5Da4JYc0i/AyAIkw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014)(10070799003)(18002099003)(22082099003)(921020)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dFFVSExGbzUxOEM5OTc3WEJQYWtEOTNiaEkzdXVtUWRJanRHZCtKaUFMYzZQ?= =?utf-8?B?c2hwNDhYTUZxUHhtMTllK3J2YU5wWk1WUVdRZ0tRWmFHejNsWk1vaFY4cjlY?= =?utf-8?B?V0NCNDZHanFuYXJ4M3BOSHlPaUo2OUJPemhoWHQwTWFCSWdSUXB2S05iNy9M?= =?utf-8?B?RVlXck5BNjdhSU1PbGFWaFk2b2RiOURWbk41K1Z1dFptRkh0NnZESTBWeVBn?= =?utf-8?B?U0VpODE3YnVWUU5XbEJiUDR4M3F0S3RVeTVtSGI4c0E1V29WbWJMMXZNekRP?= =?utf-8?B?aEs1SE5VNkloM3pwY0gxNC9sNzg5ZHRabEhLUVovaVNEdG1BVVJBNnBBbnQr?= =?utf-8?B?QUIwOVhVNitMckcvZ0J3ZkhTckFZK1pqNjBmWlVpRlpwUUc0U2V5ajU4ZjRn?= =?utf-8?B?ZXI5Qm5sMWlWSmJVNTNHdUFtZ1VWMU5tOThsOTdBcWZWSk9jTUlkaGRXYzlE?= =?utf-8?B?c2F0UGYvMmdIWUZabWtLci8xRnJHdkk0OTBML3RyNERUNXU4UjhTZzhOMUpn?= =?utf-8?B?amZUbTdROFgvaWFRcXh6R0pKelIyMGhYcEsxaFptajZjd01GTlJjbnN3RG1p?= =?utf-8?B?Uk03NXJHS3gvV2pnK0E5eVFaNXM3eVpQREhFTXorTjMvL0dLVDlnR2paenlp?= =?utf-8?B?TkdxOWsrZm5BcWEzS2QzLzNMUlFweGh0ODRRV012b1htbmJUNlJXZEUzTHlh?= =?utf-8?B?dTN0bGRXVFhpUGZxTEk4ZkJGNi9JRjlTKzhhVXJVck5hQkkvN1hiRUJtcGQy?= =?utf-8?B?TU9rZkg4N3hrY05uYStOcWFTMDgwY1pEdlZUbXJQbEgwWGg4elVJbXA0blZl?= =?utf-8?B?SDI0aUxmblhRTDNqR0JBOU1JaFphNVJUNkhoWW8vSnpPc3dzQjRTTG9uOFNl?= =?utf-8?B?LzRaSnZ2Y0tETno2b2FGRndqQS9xRHh4SXAzV25vd3RkWmlsU3VZeXRJS3U2?= =?utf-8?B?b0F2TVI5Rkp1VFNsZ0RZRVJETnZHc2JRMlVEQlQ5YTBiRElxWDcrdk1yOXh1?= =?utf-8?B?SmNMSEp5cDRYTXRZNzVrQi93amJDYktTKzVaZTBzb1hmZHRNRXA2a2hKK1hQ?= =?utf-8?B?YkN1MTF4dzcyVnVvQU00cWQ0SkdoVjlXb2VzVTdKN0tHeTZKakNaVWJ1ZVg5?= =?utf-8?B?Z1g1blQxZWtJUXM5dzc3Y3V3eFAzM0ZLWnJFUWdVLzA2WHlaVnYzcjg2SUly?= =?utf-8?B?YVNPbTllWnRyamJXUEFFS05TTzhLM2F1U1pzTGxhY204eUdCSkF6YnI0SDF4?= =?utf-8?B?d3lrbzI4TFJWaHBpQkNZVVRtenI4Y00vNGtIVlNZUWhzQlJyNHNreFF0RHpr?= =?utf-8?B?WHB2Z21CMVlpdDVoV0VsYWlicE9TVVdTSSt4RngwMU1KcGRpeE5DYmpkUEFV?= =?utf-8?B?Y29NL3VyWTVwamxaSHFOdkJOd0srbm01enNJN0V0UXRFRHpjUjBnOVRMck54?= =?utf-8?B?NlBjeW1SNG9TRVMrS3JoSGMxWkxSajRYeVBVVW9PdWd0Zm40MXhXZHlYQklz?= =?utf-8?B?QWUzZW5iU25QbllCeTJpZVJoeGtvMFRMVTJEKzl1Y09PaW5uRHpaTWlxRnN4?= =?utf-8?B?MWVBbERGdXFEL3NJQ0M1TFdCU09Sb2srb0ExMk9CRllZSmdWN1pWL2JsRXl1?= =?utf-8?B?M0k2eXRCaEw5N1NDUmhYdXNDS1NtaGJnREhLWjg0YUlaOGhTb2RxVjhiUWVN?= =?utf-8?B?bXZCU0Y3aWdHaVV0UVAxb3BjTGlRcVpmSFpMZ3R4ZklFd3JITEJZcFZ2ek9B?= =?utf-8?B?bWtqZ3hkNmpyZGFHQVhia2FOZjgvRlYydGY0YkY4QzR2ZzRVeTdMdUlOeGtQ?= =?utf-8?B?Nm1YQlQyaVpIWmpaa3pqVnA4MUdtaXpUeVRNbjNpMXBKK2NtcE56c2JUN0w0?= =?utf-8?B?UnhBR0dzK1IwY2liYXpFOGEzbHR3MFFSK3pieVRZbk5YWXV5TG1oNmJHaUZn?= =?utf-8?B?Wlk3K1BUdDE1QmhpN1YyeWRyb2JsUktNaWs1MnBtK0FLZWlmbUdmT29zbGh0?= =?utf-8?B?SXBuam5zcGt1WHAyeXQxOGg1dlNyeXJ1YjIzVllvanc5Y29VMDNQL3BzaWt4?= =?utf-8?B?N3lYQ1FrY1JCbGdKSWIrdzY2L2lqaE42di9qU3J4b0pDUW1vN0ZOLzNGZUdk?= =?utf-8?B?T3N0eDJ3dWprZk80RFFTdTV3ZU10QTU4eERlWW5KaEFpWmdCNTJGaEU1WWFk?= =?utf-8?B?Vk9qK053ZFE2YUhKVlZBMGlrRm00UzcwTHZNSzRacGk4ZVM3ZnlYckFVM2Nt?= =?utf-8?B?bzJTQnBMNjIxQWpWRzA0YjUyQXh3OHl6YWlKWlA4N2RPL1hQa1N6Q29WY3dW?= =?utf-8?B?TG9OYWhtVzM3K2VIOHBLNW0yK1E4dGMrd2FzQ2crZ0F0WVduaUNaSHRSOEZS?= =?utf-8?Q?8c5CeYe2T/qZF3SasW/OAI3vADRq0kn9ddWlPohxg+XVP?= X-MS-Exchange-AntiSpam-MessageData-1: UPkDIu2rFcj0MQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 22e4b45a-ee26-44ad-dacf-08de874ee48d X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 13:36:44.6498 (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: uSW9lbCah2z+2X8zIx6whVlSzqab2FTu3Ixkkp9meMwZZo/nLKiiypoKKUvg8W14BBpIDy2//HyuzeB0MmqnBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9133 Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role. Signed-off-by: Alexandre Courbot Reviewed-by: Gary Guo --- drivers/gpu/nova-core/fb.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/nova-core/fb.rs b/drivers/gpu/nova-core/fb.rs index 6536d0035cb1..ba971a114a06 100644 --- a/drivers/gpu/nova-core/fb.rs +++ b/drivers/gpu/nova-core/fb.rs @@ -7,6 +7,7 @@ =20 use kernel::{ device, + dma::Coherent, fmt, prelude::*, ptr::{ @@ -18,7 +19,6 @@ }; =20 use crate::{ - dma::DmaObject, driver::Bar0, firmware::gsp::GspFirmware, gpu::Chipset, @@ -52,7 +52,7 @@ pub(crate) struct SysmemFlush { chipset: Chipset, device: ARef, /// Keep the page alive as long as we need it. - page: DmaObject, + page: Coherent<[u8]>, } =20 impl SysmemFlush { @@ -62,7 +62,7 @@ pub(crate) fn register( bar: &Bar0, chipset: Chipset, ) -> Result { - let page =3D DmaObject::new(dev, kernel::page::PAGE_SIZE)?; + let page =3D Coherent::zeroed_slice(dev, kernel::page::PAGE_SIZE, = GFP_KERNEL)?; =20 hal::fb_hal(chipset).write_sysmem_flush_page(bar, page.dma_handle(= ))?; =20 --=20 2.53.0 From nobody Sat Apr 4 00:24:38 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013047.outbound.protection.outlook.com [40.107.201.47]) (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 B72F738C436; Sat, 21 Mar 2026 13:36:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100215; cv=fail; b=ijbC9LrWeF5TKFVY3vOm8bLlePOR3zyMi4nWZ1F8E+5GLRAeCUS2ETkhck5A9rnJNHAdZiG7YewIvUPuJlBVShTx2oWEtbs46R99+5nzPyAf2vpmrZKYhB2MJ7Ah5H75pGqkv6PbgyemPfXlh4XTWDjDgxbY2K6fI8xcbf+YVDE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100215; c=relaxed/simple; bh=IdxllsPhyrLEJfv5MoRH/1+R7KfQ3geA3hX/scpjdDI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UGfhvFZXFeHMCjyqnA/zaXufL8PIExPoDg/ep1nHBNIW+jSpVdyyZCKiMKCdRC/abv2E/wm3Bwba4RuzOJb/fruOMNJPYxwS1TXsJzY9RPC+KOZpE5lgYpun8cRrX9i4pJYpb35KeinKeqQNbhSFRXHvexfTIO815kOLXcoruXc= 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=N290Lyx7; arc=fail smtp.client-ip=40.107.201.47 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="N290Lyx7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a66K26YLZ+WpO//WkVN8/L8rKsNXVMk65+ttYO2koXSFFgR7wb8NsL0VAWp+qnQL94BoyPEtywFTIH4nocRdHV2LfNXPCn80qIn3iUU5qj5fchYF1wdup/tD4pS9xn22qcZtQWdhWyspxbI+YBZAe8fziVRDjbGw0CoOuNDJtVqM3lnyYbcUik/46rZH9Pnp/TsHzT+Rviapxx+XZ/Zy6FdOkD4Lx7XomqojmV6aBh6mpjK81o2QkTlCJP7w9im2TsZdbrNN5Q2DtKX03simZEaRSkU898itqvZs+kcql0bW7DUOYptgQ6ZMdeD31NEV6c9PSLh2EMau0l6oCJgKFQ== 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=aOBhWp3EEjcINfeYaFkhyoM2F/eV2eYv28mFVaJpLg8=; b=awiywY5/gb644dW44zCZDLyABnlHZw23cpTCeGuTfblerN5edUR46HdaMGkZQ+CW/iS0vr+mIW4WG330P+9Adu4Mhx6mvtuHs6xCrA1uhniM7eeQcGNxdYUlqXwdlFVjukm1mqcYVF60x6P8gHpQT7gb6EwSb1jELnQjenUmrIWz4vz3Vyse+WmgdCqpoYMu5nuXKWqgRAK4peMtZhCOzVeg4gUXbh7f54J8j6NoeVj49FI6WWAwvOjPNMA3YRhPYngD+seJohybDAf8AOPCaDn94+yixkZ+U+p/Y+KQhZgXVHyPdvD8Wl9OMU5Is2fdr7/fNuWP8z9kPebiR4hgTQ== 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=aOBhWp3EEjcINfeYaFkhyoM2F/eV2eYv28mFVaJpLg8=; b=N290Lyx7eUJJWe62DEAWr0nWiVnFtByEQIpcgqWBdtI2hsp1r3dV05JeWoV3ZeCBYkPc1zJEEYmvtl+MPGFLAiozTYUVtCCJW6MFoqAERKlanRYv007AK6+6zBbBQllECgDyec0HQ+LY0gRZ+lrOyouEKsBTcYYEY7+PcmkOFOuBOFZ58FztDUxCiKvwLiwLAk38PQk5LEUJXtXqZy3zCB+vuD86444Sz58CMzjMuL8f73qo6eAIayNZVGetzsy6DPTfAXkgsxFCFbGWeQLceOxEXHfhZeiX14FpO83s9o5bDTqNGMO9kDj3+Z72scGaVNpEFyYOVukRITl0LnXuEA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by LV8PR12MB9133.namprd12.prod.outlook.com (2603:10b6:408:188::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.15; Sat, 21 Mar 2026 13:36:48 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%6]) with mapi id 15.20.9745.007; Sat, 21 Mar 2026 13:36:48 +0000 From: Alexandre Courbot Date: Sat, 21 Mar 2026 22:36:24 +0900 Subject: [PATCH 6/7] gpu: nova-core: firmware: gsp: use dma::Coherent for signatures Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260321-b4-nova-dma-removal-v1-6-5cf18a75ff64@nvidia.com> References: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> In-Reply-To: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> To: Danilo Krummrich , Abdiel Janulgue , Daniel Almeida , Robin Murphy , Andreas Hindborg , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Alice Ryhl , Trevor Gross , David Airlie , Simona Vetter Cc: John Hubbard , Alistair Popple , Joel Fernandes , Timur Tabi , Zhi Wang , Eliot Courtney , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot X-Mailer: b4 0.14.3 X-ClientProxiedBy: TYCP286CA0176.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c6::8) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|LV8PR12MB9133:EE_ X-MS-Office365-Filtering-Correlation-Id: 8679b865-aec8-4b35-9cd6-08de874ee695 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014|10070799003|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: hbJSZkQbqNLRGgiMwwMtJ5Zhz6SUqB8/Epy2IWWzBCnkmhpHrEpMrY5gZWu+39039Vcxuooyl3ucLS88OGbxt+usqTyePXwcJV/fW+XNw2IfwMXF4YnirKQQvsUiGYAxZ8WjqsVxs27aTWnzntbgP3KuUVU/Z9FtADNYcPw8FLq3PmGOWpax8C+pqoGFTLcjclledpZm02OlLnsMoGpVyZjR7eZQCwyK3blepTY+x8v5qHl6BEt5xyqEXmRoeonLp9+mtFZJUCxuUfWCqKqV6v0EQM99rB8TeIAo5NdwwTwSP+CIOJbWhUJQT1rS0n5N9kzR17DNA2h7pfNHc9NjM5vLFo2xCRVGGgr1VPrr0ECLkTFlRn1r9C6BS6lqUCH4Os+nGzOCaG4pxIdGm80sg95InDrRgO9wn3thfJz9SqmUm/OczbobwJkvRWpwSJOrjxauXpEoWMEoxS46A2L002hM3DEQlysKPpanRIw90+cvBG7algrRmYpJwXVw2MJZMZe4jzwchEfzyQNGKlm9hCbmBNTf7n4KOkkYDd/O9+OwFhsMyFwjpqw0CvzOgufk/JTd5wuo13Mcn32td5gNPLTMFRk6y/td79J3iLVFv+6FVgRkUnzrU5M/mu+fopRr2JlE+9D2z8OpRLylFAbvS3H1+Z53yhEvz9X1FrzzyW1hVKQBUZ6toeDQ78wLpCDCAfuI2CI7YuoeR4ULJyaRVD0xWZInIoJRVa3PyXtukF1QvDTykPIVs0HD5I+tkS5w1Js2jsvG9kU2f+sXlhXweg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014)(10070799003)(18002099003)(22082099003)(921020)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MnZGdkVzbkpNSmpKekswaG1DWFdLN1g0MTluQlJMRjlPWWlKQ2lqa081NWUz?= =?utf-8?B?dGY0SGtwVUlac0VaaFpyVnFvYi9MQUwrR25uQzlEY3BTTFcvM1UycWJsVFE4?= =?utf-8?B?cDhicjBDenVydmxVeDZmeWhiRWUrd3hRMVRsUkR6azNaMERYdlh2RFh2NW1G?= =?utf-8?B?MGVYYWpoTWR2UE9lbUJJdmliVTFrbVNMeU1HV3I4ZnplMFRiNGdWK0JhaG5r?= =?utf-8?B?OXJSSVpqSmdzOWpwVUlURlRVZXpKcEZ3TmIyMjNsK0hEL05IalhLRG9BdEJa?= =?utf-8?B?dE1JczlOMzd0cTNRL0dGeFYwME9RNEFkVWNZakJFU1dhTE15TFR6MUIvekgv?= =?utf-8?B?NGpnVlFDOVZNTEVKK01NQ0t5OUhEdTNZWE82bFpPWElqK04xVlhhaWtIVlE1?= =?utf-8?B?eG40NXpjV2J0em1GbEUvekphdWdRKzZJdGYyUEErK3VkQld5STh0ZkxOaFpo?= =?utf-8?B?N3V2NU1NT0QwK1haSGlPWFJXUm1RMU43VTZYaWFRTFhvYVV3b1gwN1BsQkpW?= =?utf-8?B?b3NXcmVaUHA2cENuVXR6clNFdTRnK29iVmcwMWxnV3I0c3FIaTVneklMMVpS?= =?utf-8?B?TlNGajlITGZST3lzbnYwRXdwR3JOZnM5aTRjbTJaUThYd1hEa2VYRGdEVmFl?= =?utf-8?B?U05PYWJ4NGljbnFLWWZpczgyK3l5TitzVEZnMkJmNU5rOUl5Y3FocExaWG1G?= =?utf-8?B?SW96SGVqclBWOTZXL2dBRlZkeUNmQlZ6clc0Yi93djMzWHFIUlVaRURLbTJ5?= =?utf-8?B?TDVUMVNWWWZGcW81YkpHekFqMTY4RHBlZ1pJMDdCUkZRR0IvS2xwUUJsOG5B?= =?utf-8?B?THU0MXljZnl3M2pkM3pLelhIUFFNWEdVWXRiejZrak9zSHNMaUVKS3c0b2N3?= =?utf-8?B?aXNkWTJ5alQwaTR1aENvWGY2K25xeDMvZG5BZDE4TWFnWUl6RnpIelF3dHZz?= =?utf-8?B?WDY4aXFWNVg3dkNHem4xSGJ0MTVCd3ova011ZHMrMm1BNkwzbVJSSksyRWNN?= =?utf-8?B?Vm5NT2N1eUhiQTJKcjM4RnVFWlE2YjVyS3YwQWNXcUNQblo2K3VyREx4ZlpT?= =?utf-8?B?b3BCb0tiS2J6K3p3QjRtUmJuc1d3Y0dBQXhnNUhEeXVYbEtCeklpbDJlMWJM?= =?utf-8?B?a0ZYaXc5WDJZVS9YQUZzdENEd1NuMFpoTlFVVVV6WXozSFliRmIzZ2Y4UVhI?= =?utf-8?B?UkJ0UTNBeUFjV2ZtbU9RcXo0akpLK1BjR1pibnlLbzBwV3hkcnFMVWEwVHlE?= =?utf-8?B?OC9lTE50TEh4b01PKzNhNjZoTjY2Nm9VNzhFdlIzdmNtVUwzdmVOc1ZmNURD?= =?utf-8?B?Q1VqeXJKc25GblVyTWdFSEoySzFRNjE4WkI5WVpacy9rT0pLdjEvanBFbW82?= =?utf-8?B?Sld1clZKbDVlb3RLYlVSdmRKRDAvUDNvR3hleUhkTkZNTldwK3pCRkhRcXRh?= =?utf-8?B?YVNlSHl6a0MyRm1uTGVtWkpGeE9iKzdBNnVIRjFQVFp5ZDhsV2Y3R1BiUXJP?= =?utf-8?B?VTZWNlJ5WTFmRVgwYnFxQUNoUE81TzloS3ZobTBoaldqcnBlaVJTZDNNVWxF?= =?utf-8?B?Y0M4N1oxSUFrb3NQTExxSVQzVUVvSDBMQTdwa21CU1pQd1RvNi8wOVBnYzI4?= =?utf-8?B?eTNNcURIVFJEQUlGc1lreU1rQXFBckVDSjJBL0JHelhOdTJsYnpSOFJ0Uzhq?= =?utf-8?B?UE5oUTIwQlQ4bGNCVzFZQ3dXVHh1eGtHaCtOZG4waWV2OVFFbk9Ld0Y5OTVx?= =?utf-8?B?VGQ3SHJaRzZVZ0krcGZxV2RGbmhiazZQSFBNbk5HSERtZkYySUpZZUl0aUY0?= =?utf-8?B?R08xMHNCWHQ2TTltMFdTNGhZVzV3aEFxTzJsbllmcHhZZlVWcHdFMjRqZjVF?= =?utf-8?B?MnRsVmpVcVlUYmplWExKdDJQbmlKc0V4NzdBaUlSNVlJK2tITmJuRmJKb21Z?= =?utf-8?B?RVNKTnBhcE1hQjBUSE5TZVV2dzF1bDgzbHdEWGpoK2Fob29neEJJdkk4cDVy?= =?utf-8?B?OUo2akdDYmZDbUNKSVVBUVpGUm9hWXVPSk1WZ2RKYTkxb3FTc3VYbk01YjE1?= =?utf-8?B?VDk4bzBickFxVEpiaGtEN085ODdvU0JoMFlGekVzcTB6dC9neXJ5OHBBdERE?= =?utf-8?B?K1VhTUZLSkFmQzd6WmFWNTZhYmVtTmpaanBpSmdSYmlUYnFoOEs1VEtVWEEy?= =?utf-8?B?VW1NcU5FNTM5UkJyZ0dmRkd3UUZveW9pU3I5c2NiWVFZK0UvQVlMcU5Wd2Vx?= =?utf-8?B?akMySVRVbVN1ajloSERJQm1vRjlWOXpwbVF0SHRpNlhVYUtPOXhIZ284V2xC?= =?utf-8?B?NzRxNG81ZTV3YVNEVWpMWWR3bzNXeURZVEU4dnpxVkVBZnkxcVI5NW5XUGFj?= =?utf-8?Q?ij/hyMJoeL0HUNH297bqp6I8oV+u+vKrJfLgOMiaHBMCr?= X-MS-Exchange-AntiSpam-MessageData-1: YTY/SeEsgL2wlg== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8679b865-aec8-4b35-9cd6-08de874ee695 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 13:36:48.0499 (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: /u4W34z0HVgzwbq8l0iUquK3Y67ROO1g0OBZqzX1b+DjsHyOF/0bUQiYcbKJQmNa6f2U1BKr2Vir9pITqyU/6g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9133 Replace the nova-core local `DmaObject` with a `Coherent` that can fulfill the same role. Signed-off-by: Alexandre Courbot Reviewed-by: Gary Guo --- drivers/gpu/nova-core/firmware/gsp.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nova-core/firmware/gsp.rs b/drivers/gpu/nova-core/= firmware/gsp.rs index 9488a626352f..1e0d545a74fe 100644 --- a/drivers/gpu/nova-core/firmware/gsp.rs +++ b/drivers/gpu/nova-core/firmware/gsp.rs @@ -3,6 +3,7 @@ use kernel::{ device, dma::{ + Coherent, DataDirection, DmaAddress, // }, @@ -140,7 +141,7 @@ pub(crate) struct GspFirmware { /// Size in bytes of the firmware contained in [`Self::fw`]. pub(crate) size: usize, /// Device-mapped GSP signatures matching the GPU's [`Chipset`]. - pub(crate) signatures: DmaObject, + pub(crate) signatures: Coherent<[u8]>, /// GSP bootloader, verifies the GSP firmware before loading and runni= ng it. pub(crate) bootloader: RiscvFirmware, } @@ -226,7 +227,7 @@ pub(crate) fn new<'a>( =20 elf::elf64_section(firmware.data(), sigs_section) .ok_or(EINVAL) - .and_then(|data| DmaObject::from_data(dev, data))? + .and_then(|data| Coherent::from_slice(dev, data, G= FP_KERNEL))? }, bootloader: { let bl =3D super::request_firmware(dev, chipset, "boot= loader", ver)?; --=20 2.53.0 From nobody Sat Apr 4 00:24:38 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013047.outbound.protection.outlook.com [40.107.201.47]) (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 1D8DC390204; Sat, 21 Mar 2026 13:36:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100217; cv=fail; b=XCCIHCTPq2MGgCBJHSXghOo1sIldVXh7V1gh9vLlXf//a9qjoR34HdYJX1oGjlEzoQMaYqC+lVwcFy/0l5ChtVwQNOd4xsIA0bjJOkHPnxf9r6cTkRC3yyQMRixiwjG0sB9DfPNlRzNlIoRBY7zVhx8H+apDWwjLuSQaXcrAnes= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774100217; c=relaxed/simple; bh=BN0m5S1JGXyPzpiWL4AxrTwzcFDxjA8KkugqMSea3jQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=CP8TBcPgCgQ+HH5AWu/MeTwpBvrEfXmGY6Lz9oU1DI4RQ/v7Bs1hehjxGbk3e7HoOH8zocX97KBmEnosmGOqLrqEblXpooNk+Bat+7M+DJ2eyKrWlZ1fUv3+hJqg40xgMtz8wG7CAURMber0aTqJeCWevBVJcla3qr0uSL+PjAo= 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=L6aFjYva; arc=fail smtp.client-ip=40.107.201.47 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="L6aFjYva" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DbG+mxErVGkGa7tWBZA23UkP1seuBeQOOk8aZ7zVeYMbNj6aakJteJAPf7M1WVvNYGGUPykjt8Jga7f4iX6wMaVcTIJ1yLA4ws+aHagNEOfxKmJM1JhFZdA2tcOdJcj8x6nkzJQXGatS5Y1ZWykG1Fre5ri1Zloh+4u0+l0P+PUA2Y0iU6DT45awCiyF/hSeegJnXfC+HGKv1jz6gdDyBqwiVAjQhkKEqo08XRf/WRJsYFt4k13JMi6eg5tC+2dRga8Nl5z3GlLNNwReVLcjqBMu85rnvmIooyj8bc7Y8RqQTNU95d2yv1Bxxdd2FhCGvTejov6fGl5SUPFAmSz7jQ== 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=nSJJKvoJ1hCI9wlwo+Lrko9Y8DxN2Eksy80ZbIhSK4Q=; b=TwMki1eprEzdTb/MxBjbnapBo8CUrscio04nOM2HIkNL8V0V2M9PEd7Ays9jhyorczlUku4QqB7hZUgXAJDYmZbdFAGl1gzVj5ZkrwfLtYum0TIwb/0KoaH9b0IVyN9ZW1bt2j/Qonr4LTIF/r7IMdmKJfX0IQaoGgWKA1miSHacKqvnpBJIX8qnbYLY9HmE+RRKcsB+wPtJP5aD7JFyRc2q1qdU16mywkB2Hq3sz/TXQsOt8/2rFkdd4mpzg7S30ZwjqyzDieewDz2b39WjfMOTdqecN4TXHVx/O8gd01wZ+MzbAgp7000OWPW5ustLFBILPGwOvd8/Hj8n+R9ddQ== 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=nSJJKvoJ1hCI9wlwo+Lrko9Y8DxN2Eksy80ZbIhSK4Q=; b=L6aFjYva1wpzH8m6hX0ADHeTY8h3vugg/FkdPrC52pWNj/g8ziTYl99UzeIFcNhSA7Pa97N8d1Y98Ni9+v3jtx+p+Fd4atUOveC+krv9uFbjLtlV4emIxP9+rLamhNFyTFksh0sjCb3D15SjF7IjgOsJ+n9plNJPgbH5awN/+a0iYHMe9GNHmZfxk4mBQ4rRc8tn6MiUk0sD1OVsy/cDKzgJTjWed3NOWnetSfFc2zDSZwWs86M0IrsiYWiWEH8AVIliNclAm/cKoXRmOl0JxEL8g9SQpdvRlIJyCgoTFNU2i6p+V+fh6fjdix7faPH9PG6Qn55/QHk7JuxmPXu5ng== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by LV8PR12MB9133.namprd12.prod.outlook.com (2603:10b6:408:188::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.15; Sat, 21 Mar 2026 13:36:51 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::7de1:4fe5:8ead:5989%6]) with mapi id 15.20.9745.007; Sat, 21 Mar 2026 13:36:51 +0000 From: Alexandre Courbot Date: Sat, 21 Mar 2026 22:36:25 +0900 Subject: [PATCH 7/7] gpu: nova-core: firmware: gsp: use dma::Coherent for level0 table Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260321-b4-nova-dma-removal-v1-7-5cf18a75ff64@nvidia.com> References: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> In-Reply-To: <20260321-b4-nova-dma-removal-v1-0-5cf18a75ff64@nvidia.com> To: Danilo Krummrich , Abdiel Janulgue , Daniel Almeida , Robin Murphy , Andreas Hindborg , Miguel Ojeda , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Alice Ryhl , Trevor Gross , David Airlie , Simona Vetter Cc: John Hubbard , Alistair Popple , Joel Fernandes , Timur Tabi , Zhi Wang , Eliot Courtney , driver-core@lists.linux.dev, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot X-Mailer: b4 0.14.3 X-ClientProxiedBy: TY4P286CA0096.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:369::18) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|LV8PR12MB9133:EE_ X-MS-Office365-Filtering-Correlation-Id: 4435dba3-4bbd-4036-3638-08de874ee88c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014|10070799003|18002099003|22082099003|921020|56012099003; X-Microsoft-Antispam-Message-Info: 80/QkN9s9gu3wUNszV4CPsCUpY2N4y4odvjXzaaaRrXB8+CYPAGTOImb3T0GyEtyGFfBRwO1U86kTVWx/o+cvLIAim48JOGZffhB7HzK1TPXbLtvZhLh3SsxCrr4GP8SSlGWmyA+nsVGLNbaTQatQ3fRUUHa+OvNwvi5Uoffvrdv5GWZ5eVYfQpIVm0FjgrX41bE6j66l7VQig1SER2dZ/OMZViMqOquu9j5ZGWYBlsuzqLJVIPnkw74wM8jfWmRCCJW5z+dd6MsXS3O6XLvXJ2KeTgsiZpV/2UgxVdTt1a0Ipyqh0n4tcZv5DAiqy6FZCHUzI/7pdAkhV/opXaKz9xbsUepItWLAqJrqKzHamZ7cAK5NjZ3R5sNFi0XiqEzWVTTHxly1WFMAIy0HsT3tF0VJQvEQ8q9NMq6Qd32wPBKUQMmXsrRnzgU5yQ5yG+VMN3TG03oo5HDP5QgWKfSFjsdZ9LNEOpJ0xqduiKnXdK0u/Yd5V35JtIdpQZ5gUw6QMCKNLa8UcKlYubc7no3EfbklBlHjCOVdGEtpgS0QdriFlGGPgbjcOXWgbcmj145pqxnGiCyFDtEGbwfq5a+bxdrMPeqS/1xefunog5zFMErA02DIppWGEIBw/xE7RlDvnvN+ztVcNePnixYMSJIRmimKtNlXpoHUs2b60iA+jnWubQnkhQzLC8n99j4rIbkSdlhfPd0LHhou6dYYbhUR5vU/c1u6Tai3hL7ugkepJKyOrqePOimET3H+XtqQQ6+LcynbKM3HCmDEuKt0QTYLQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014)(10070799003)(18002099003)(22082099003)(921020)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dFgwRS9pYTRFWi9Wcy9kRCsveE9hVk5hRmtLTEhDS1dsUlJZRWUvM3NNbkRk?= =?utf-8?B?OEU1SklneU8vekZFaWZTUURGQWhqR0FLL2NqYWlWemszRVgyKzlOZHRPYmxY?= =?utf-8?B?cnNaTmtsd0ZkalBYK29uNGRwdjJLVjlDMmNvOFBzSk5NYkFSakJuL1R5N1VZ?= =?utf-8?B?Qll4TlAreXM5ZDcwTnlQRVdYRlFGZkM2eVVnNHIxKytETTJSU0t2TTZCU3c3?= =?utf-8?B?UThiaDgveGJoWkNwbWI2V21nZ2FpS0NYV2xoV0FPRjdMb3MxUkR6cFdvNCtD?= =?utf-8?B?citCNUMvVmdwUHo2U0RZQkpPc1JyUk9BTStScHJ5ZmsxNlA4dkR5N2JISThm?= =?utf-8?B?MWVzbUJzU05DNHRYd0V4bE9GempKOGpxMWZDU0xyNWRBNjhVTlRtaFpKTEpE?= =?utf-8?B?dWpVcVErTHFFR1hBNUV2cXF0aGFIZks2ODZVY2ROL2RqRXp1bzBvRzZvWk94?= =?utf-8?B?MGtvRWVSdW8rUzhJT0I5ZUs5TVlxcGYwdlFjRmdLTm5aOUVzajREZktEZDBj?= =?utf-8?B?UEtDdGdyZWV6QVkxcFRUY2hWbERUR3hWRnpIbmlBdWZ5bWFVR2Rpd3Vhells?= =?utf-8?B?bkNvNllITzR6Ujg1ZzIvR0pEdlg0endqTFgrWXVpYUR6bisvcEFINHlSSFll?= =?utf-8?B?YXB1dVp5djJxd3ZRbVFHWjdzZkhwbUlMWEdzVEMrdVlXOWNFYmlwSDdHcVUy?= =?utf-8?B?NWNQb0tpUzlVWHozRE4zN0phK21qM0FYZUlsZGdpV0xrNEw2NExHcTVOdTIz?= =?utf-8?B?d3JFcDNNdXlTd3FlU0VWQWN1Qk5ieE55RUQvWXBaSUpKVjRhZDVCSW0zS1RL?= =?utf-8?B?MkUvTHBhMWZrUnNaWjFxbGswaXBVOHhmejRITzg3RDUyOTkybVVQNDJXYk5a?= =?utf-8?B?TE5tMTh5c20yZllmWWgrN3M4blZZRnBzcGFkcUZQdlJlMTVCZnZ4WVNFMGNy?= =?utf-8?B?aEg4aXhOek1WWUtqYmpmN2JaRU5GREhsZVk1YXVSREVFUGhPdlpnQ29tTStG?= =?utf-8?B?WHNWQ3ZHQm5qZG5GeVpVSnlaT2QyM0lrWHc1RGloNU5xVUVJUEtwN0tMVGhL?= =?utf-8?B?bFFhSW91bDdYa1UyT285R2lqZnRrWkwwNitnRy82aWRwMFJvNjZGUUlEdnJF?= =?utf-8?B?WnFkMnRoc0IwZThuK2VtaGE2RlpLcVc1R2tzZzNzTHdOT3BLL3RxSlN5R0p0?= =?utf-8?B?cEgyRUY4S2VNUXZiaXdITDJObW82NFRyMmdiV3lEYVh3Y0FwVU1FdjEvODRt?= =?utf-8?B?RnhLRFNTb1IxN2hveTFoVmg3a3dnUW5YYmdORWh6SWoydHlyQzdYNXphYjVT?= =?utf-8?B?bVdaL0JmYXJ1UDVRNlZnMEdZYUFxTjg1eXpvdU03bGdaV1dKTXhQbHVJZTA0?= =?utf-8?B?SThzd2hyYUhwbEEvRTRZdlplUmcvdnV3UHpqdmxMWDdVcWdMRVRIalF2bDdw?= =?utf-8?B?SThmNXNpWExncnpMTUxGZFR4Qm45dForMnhyYU9FU21BNk5yK0pvQ1Z3TWtI?= =?utf-8?B?bmNPc21HaU9mei9BTjhoWjZIZUhKMHFZdWtvd2tENnVvZFJNcTlVSzYxbm1S?= =?utf-8?B?YXIxMzVrR1IxaVJIbUtwM1FHNGpZb0I2bDMxRUpZaUkyVWdlR2FCUUtBOWNF?= =?utf-8?B?b25NUkhzN2tWOE1WVjVUTzRxUW05OXNoSHptRGpNemV6OW8xamdWU2hQZFlH?= =?utf-8?B?MXB2eUNiamkzOXJ4K2Q4dGN1UUt2dU1tMklibWpoYkFqeWxpbi9wODJJMEZM?= =?utf-8?B?dEpaTUE0OXBVVkN3bmRMc05DRXdYeWUyc3NIUUFteDdvdFFLc3B4N0djbGZJ?= =?utf-8?B?WW0rci93SXJYQW42WEpWcHpGbXdMRXo3NE1xZkhZOWx6NmRMV2RsK3poQWZL?= =?utf-8?B?cHIyNGNreWRsSERZK2o3VFJmME52Q0tVWVc4dUk5NnNxWHd0WERJMDBNZERR?= =?utf-8?B?UjlDRElhNGJCRU9iTkJ5Y3QyREE4OG45VmRwUlc1QXJEUFhYazNrVXkzM2Ny?= =?utf-8?B?bnFaSGhVME1LV1YyVUN1ZlIyVnpyam1MK0QzMm1IK0dFTVUyWHY3QWttT0RO?= =?utf-8?B?VStZeDJyK3pLNnloOVRzQ3B2U0FrRXFXNEdPZzIrMlVzYm9iQkRLOGF0ak1K?= =?utf-8?B?c1BTM0VQVzVVZ0wxclZxRGhhZnVXTWRrMzdObUpRMTR4N21odW9tRjZ1cng4?= =?utf-8?B?N2Y3dGNEZXoyaGZEd09UTEZadTBQRk1HTnlDN1l1emhQQXNzUi8vMnBYYzRU?= =?utf-8?B?YW9TcXVjQ0dFQkZ1N1lsYmVaYjhISGJjN3dFNDkvbHdIUCt3eWp6UGsvbUJ3?= =?utf-8?B?SHdON0t4c3l0dHNGQlJ6ZVVESnVMUTVTSHBLbkRMV2I1YS8yRzE2Vnc0TXpo?= =?utf-8?Q?Gi/4oh/W3I4syVmrqPn2Ea1bOl4NmQaCtS7AIiN1PIHvh?= X-MS-Exchange-AntiSpam-MessageData-1: YQSyAqvbEN75OQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4435dba3-4bbd-4036-3638-08de874ee88c X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2026 13:36:51.3425 (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: 3Jk8z9Xd4+J7Eb2DlTfCKrIaU+RMXfmCUlXFucetrsWIb5drb7qMNH3EguFXsiwmElqBJaW3gEwzAzf/8Uk7Yg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9133 Replace the nova-core local `DmaObject` with a `CoherentBox` that can fulfill the same role. Since `CoherentBox` is more flexible than `DmaObject`, we can use the native `u64` type for page table entries instead of messing with bytes. The `dma` module becomes unused with that change, so remove it as well. Signed-off-by: Alexandre Courbot Reviewed-by: Gary Guo --- drivers/gpu/nova-core/dma.rs | 53 -------------------------------= ---- drivers/gpu/nova-core/firmware/gsp.rs | 22 ++++++++------- drivers/gpu/nova-core/nova_core.rs | 1 - 3 files changed, 12 insertions(+), 64 deletions(-) diff --git a/drivers/gpu/nova-core/dma.rs b/drivers/gpu/nova-core/dma.rs deleted file mode 100644 index 3c19d5ffcfe8..000000000000 --- a/drivers/gpu/nova-core/dma.rs +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 - -//! Simple DMA object wrapper. - -use core::ops::{ - Deref, - DerefMut, // -}; - -use kernel::{ - device, - dma::Coherent, - page::PAGE_SIZE, - prelude::*, // -}; - -pub(crate) struct DmaObject { - dma: Coherent<[u8]>, -} - -impl DmaObject { - pub(crate) fn new(dev: &device::Device, len: usize) -> = Result { - let len =3D core::alloc::Layout::from_size_align(len, PAGE_SIZE) - .map_err(|_| EINVAL)? - .pad_to_align() - .size(); - let dma =3D Coherent::zeroed_slice(dev, len, GFP_KERNEL)?; - - Ok(Self { dma }) - } - - pub(crate) fn from_data(dev: &device::Device, data: &[u= 8]) -> Result { - let dma_obj =3D Self::new(dev, data.len())?; - // SAFETY: We have just allocated the DMA memory, we are the only = users and - // we haven't made the device aware of the handle yet. - unsafe { dma_obj.as_mut()[..data.len()].copy_from_slice(data) }; - Ok(dma_obj) - } -} - -impl Deref for DmaObject { - type Target =3D Coherent<[u8]>; - - fn deref(&self) -> &Self::Target { - &self.dma - } -} - -impl DerefMut for DmaObject { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.dma - } -} diff --git a/drivers/gpu/nova-core/firmware/gsp.rs b/drivers/gpu/nova-core/= firmware/gsp.rs index 1e0d545a74fe..86fb3f074195 100644 --- a/drivers/gpu/nova-core/firmware/gsp.rs +++ b/drivers/gpu/nova-core/firmware/gsp.rs @@ -4,10 +4,10 @@ device, dma::{ Coherent, + CoherentBox, DataDirection, DmaAddress, // }, - kvec, prelude::*, scatterlist::{ Owned, @@ -16,7 +16,6 @@ }; =20 use crate::{ - dma::DmaObject, firmware::riscv::RiscvFirmware, gpu::{ Architecture, @@ -137,7 +136,7 @@ pub(crate) struct GspFirmware { #[pin] level1: SGTable>>, /// Level 0 page table (single 4KB page) with one entry: DMA address o= f first level 1 page. - level0: DmaObject, + level0: Coherent<[u64]>, /// Size in bytes of the firmware contained in [`Self::fw`]. pub(crate) size: usize, /// Device-mapped GSP signatures matching the GPU's [`Chipset`]. @@ -198,17 +197,20 @@ pub(crate) fn new<'a>( // Allocate the level 0 page table as a device-visible= DMA object, and map the // level 1 page table onto it. =20 - // Level 0 page table data. - let mut level0_data =3D kvec![0u8; GSP_PAGE_SIZE]?; - // Fill level 1 page entry. let level1_entry =3D level1.iter().next().ok_or(EINVAL= )?; let level1_entry_addr =3D level1_entry.dma_address(); - let dst =3D &mut level0_data[..size_of_val(&level1_ent= ry_addr)]; - dst.copy_from_slice(&level1_entry_addr.to_le_bytes()); =20 - // Turn the level0 page table into a [`DmaObject`]. - DmaObject::from_data(dev, &level0_data)? + // Create level 0 page table data and fill its first e= ntry with the level 1 + // table. + let mut level0 =3D CoherentBox::<[u64]>::zeroed_slice( + dev, + GSP_PAGE_SIZE / size_of::(), + GFP_KERNEL + )?; + level0[0] =3D level1_entry_addr.to_le(); + + level0.into() }, size, signatures: { diff --git a/drivers/gpu/nova-core/nova_core.rs b/drivers/gpu/nova-core/nov= a_core.rs index b5caf1044697..e0271e0c6335 100644 --- a/drivers/gpu/nova-core/nova_core.rs +++ b/drivers/gpu/nova-core/nova_core.rs @@ -5,7 +5,6 @@ #[macro_use] mod bitfield; =20 -mod dma; mod driver; mod falcon; mod fb; --=20 2.53.0