[PATCH v2 0/3] gpu: nova-core: falcon: use I/O projections for DMA transfers

Alexandre Courbot posted 3 patches 1 month, 3 weeks ago
drivers/gpu/nova-core/falcon.rs                    | 66 ++++++++------------
drivers/gpu/nova-core/fb.rs                        |  4 +-
drivers/gpu/nova-core/firmware/booter.rs           |  8 ++-
drivers/gpu/nova-core/firmware/fwsec/bootloader.rs |  4 +-
drivers/gpu/nova-core/firmware/gsp.rs              |  6 +-
drivers/gpu/nova-core/fsp.rs                       |  6 +-
drivers/gpu/nova-core/gsp.rs                       |  2 +-
drivers/gpu/nova-core/gsp/cmdq.rs                  |  8 +--
drivers/gpu/nova-core/gsp/fw.rs                    | 10 ++--
drivers/gpu/nova-core/gsp/hal/gh100.rs             |  2 +-
drivers/gpu/nova-core/gsp/hal/tu102.rs             |  8 ++-
drivers/gpu/nova-core/gsp/sequencer.rs             |  8 +--
rust/kernel/dma.rs                                 | 70 +++++++++++-----------
13 files changed, 95 insertions(+), 107 deletions(-)
[PATCH v2 0/3] gpu: nova-core: falcon: use I/O projections for DMA transfers
Posted by Alexandre Courbot 1 month, 3 weeks ago
Falcon DMA transfers were using cumbersome address arithmetic and
explicit bounds checks to ensure a requested transfer is valid. This
series replaces it with an I/O projection which, if successful, carries
the same bounds guarantees and does not require performing operations on
DMA addresses.

The first patch removes a redundant check that is covered by the
register's `try_with_...` family of methods.

The second patch renames `dma_handle` to `dma_address` throughout the
tree after comments received on v1. nova-core is the only user at the
moment, so the renaming remains contained.

Patch 3 switches to I/O projections in the Falcon code, the original
motivation for this series.

This series is based on drm-rust-next.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
Changes in v2:
- Add a patch renaming `dma_handle` to `dma_address`.
- Use `dma_address` consistently within nova-core.
- Link to v1: https://patch.msgid.link/20260724-falcon-dma-projections-v1-0-957028a7c0a7@nvidia.com

---
Alexandre Courbot (3):
      gpu: nova-core: falcon: remove unnecessary check
      rust: dma: rename dma_handle to dma_address
      gpu: nova-core: falcon: use I/O projection to check transfer bounds

 drivers/gpu/nova-core/falcon.rs                    | 66 ++++++++------------
 drivers/gpu/nova-core/fb.rs                        |  4 +-
 drivers/gpu/nova-core/firmware/booter.rs           |  8 ++-
 drivers/gpu/nova-core/firmware/fwsec/bootloader.rs |  4 +-
 drivers/gpu/nova-core/firmware/gsp.rs              |  6 +-
 drivers/gpu/nova-core/fsp.rs                       |  6 +-
 drivers/gpu/nova-core/gsp.rs                       |  2 +-
 drivers/gpu/nova-core/gsp/cmdq.rs                  |  8 +--
 drivers/gpu/nova-core/gsp/fw.rs                    | 10 ++--
 drivers/gpu/nova-core/gsp/hal/gh100.rs             |  2 +-
 drivers/gpu/nova-core/gsp/hal/tu102.rs             |  8 ++-
 drivers/gpu/nova-core/gsp/sequencer.rs             |  8 +--
 rust/kernel/dma.rs                                 | 70 +++++++++++-----------
 13 files changed, 95 insertions(+), 107 deletions(-)
---
base-commit: 44e7e7f7cffb10a93bb88e7cb59b7b8b3e2deb1c
change-id: 20260724-falcon-dma-projections-ea9343cfcdae

Best regards,
--  
Alexandre Courbot <acourbot@nvidia.com>
Re: [PATCH v2 0/3] gpu: nova-core: falcon: use I/O projections for DMA transfers
Posted by Danilo Krummrich 1 month, 3 weeks ago
On Wed, 05 Aug 2026 14:01:44 +0900, Alexandre Courbot wrote:
> [PATCH v2 0/3] gpu: nova-core: falcon: use I/O projections for DMA transfers

Applied, thanks!

  Branch: drm-rust-next
  Tree:   https://gitlab.freedesktop.org/drm/rust/kernel.git

[1/3] gpu: nova-core: falcon: remove unnecessary check
      commit: d1dc8faf1152
[2/3] rust: dma: rename dma_handle to dma_address
      commit: 91645a52ebf2

      [ Rebase and fix up build failures due to newly introduced dma_handle()
        calls. - Danilo ]

[3/3] gpu: nova-core: falcon: use I/O projection to check transfer bounds
      commit: 4c9ba407018e

The patches will appear in the next linux-next integration (typically within 24
hours on weekdays).

The patches are queued up for the upcoming merge window for the next major
kernel release.