|
|
Log in / Subscribe / Register

rust: dma: add from-slice constructors and use them in nova-core

From:  Alexandre Courbot <acourbot-AT-nvidia.com>
To:  Danilo Krummrich <dakr-AT-kernel.org>, Abdiel Janulgue <abdiel.janulgue-AT-gmail.com>, Daniel Almeida <daniel.almeida-AT-collabora.com>, Robin Murphy <robin.murphy-AT-arm.com>, Andreas Hindborg <a.hindborg-AT-kernel.org>, Miguel Ojeda <ojeda-AT-kernel.org>, Boqun Feng <boqun-AT-kernel.org>, Gary Guo <gary-AT-garyguo.net>, Björn Roy Baron <bjorn3_gh-AT-protonmail.com>, Benno Lossin <lossin-AT-kernel.org>, Alice Ryhl <aliceryhl-AT-google.com>, Trevor Gross <tmgross-AT-umich.edu>, David Airlie <airlied-AT-gmail.com>, Simona Vetter <simona-AT-ffwll.ch>
Subject:  [PATCH v2 0/7] rust: dma: add from-slice constructors and use them in nova-core
Date:  Fri, 27 Mar 2026 00:22:06 +0900
Message-ID:  <20260327-b4-nova-dma-removal-v2-0-616e1d0b5cb3@nvidia.com>
Cc:  John Hubbard <jhubbard-AT-nvidia.com>, Alistair Popple <apopple-AT-nvidia.com>, Joel Fernandes <joelagnelf-AT-nvidia.com>, Timur Tabi <ttabi-AT-nvidia.com>, Zhi Wang <zhiw-AT-nvidia.com>, Eliot Courtney <ecourtney-AT-nvidia.com>, driver-core-AT-lists.linux.dev, rust-for-linux-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, Alexandre Courbot <acourbot-AT-nvidia.com>
Archive-link:  Article

nova-core's `DmaObject` type has been created to serve the same purpose
as `dma::Coherent`, with the addition of a handy constructor to create
an object from a slice of bytes, but without the flexibility of
`dma::Coherent` since `DmaObject` is limited to slices of bytes.

This series adds new constructors to `Coherent` and `CoherentBox` to
cover this (arguably common) use-case, and updates the nova-core code to
use them. This results in more consistent code overall, and allows us to
retire `DmaObject` and nova-core's `dma` module.

Based on drm-rust-next, with [1] as extra dependency.

[1] https://lore.kernel.org/all/20260321172749.592387-2-dakr@...

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
Changes in v2:
- Don't use `map` in `CoherentBox::from_slice_with_attrs`.
- Make `Coherent::from_slice_with_attrs` inline.
- Use `CoherentHandle` for the sysmem flush memory page as it doesn't
  need to be accessed by the CPU.
- Link to v1: https://patch.msgid.link/20260321-b4-nova-dma-removal-v1-...

---
Alexandre Courbot (7):
      rust: dma: add from-slice constructors for Coherent and CoherentBox
      gpu: nova-core: firmware: riscv: use dma::Coherent
      gpu: nova-core: firmware: fwsec: use dma::Coherent
      gpu: nova-core: falcon: use dma::Coherent
      gpu: nova-core: fb: use dma::CoherentHandle
      gpu: nova-core: firmware: gsp: use dma::Coherent for signatures
      gpu: nova-core: firmware: gsp: use dma::Coherent for level0 table

 drivers/gpu/nova-core/dma.rs                       |  53 ----------
 drivers/gpu/nova-core/falcon.rs                    |   6 +-
 drivers/gpu/nova-core/fb.rs                        |   6 +-
 drivers/gpu/nova-core/firmware/fwsec/bootloader.rs |   6 +-
 drivers/gpu/nova-core/firmware/gsp.rs              |  27 +++---
 drivers/gpu/nova-core/firmware/riscv.rs            |   6 +-
 drivers/gpu/nova-core/nova_core.rs                 |   1 -
 rust/kernel/dma.rs                                 | 107 +++++++++++++++++++++
 8 files changed, 134 insertions(+), 78 deletions(-)
---
base-commit: 1998e6be8239cd37817e05bdc21439de17b904df
change-id: 20260321-b4-nova-dma-removal-a7e88d4a6790
prerequisite-message-id: 20260321172749.592387-1-dakr@kernel.org
prerequisite-patch-id: ad10dfe64c9aedc9c68cba2c66101cd78d2d7345
prerequisite-patch-id: 110ca2f40bf7599083845eab43861331fe94faad

Best regards,
--  
Alexandre Courbot <acourbot@nvidia.com>




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds