| 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>