[PATCH v2 4/7] gpu: nova-core: falcon: use dma::Coherent

From: Alexandre Courbot

Date: Thu Mar 26 2026 - 12:22:57 EST


Replace the nova-core local `DmaObject` with a `Coherent` that can
fulfill the same role.

Reviewed-by: Gary Guo <gary@xxxxxxxxxxx>
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
---
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 c49ec6ded909..e0315fda576b 100644
--- a/drivers/gpu/nova-core/falcon.rs
+++ b/drivers/gpu/nova-core/falcon.rs
@@ -10,6 +10,7 @@
Device, //
},
dma::{
+ Coherent,
DmaAddress,
DmaMask, //
},
@@ -28,7 +29,6 @@

use crate::{
bounded_enum,
- dma::DmaObject,
driver::Bar0,
falcon::hal::LoadMethod,
gpu::Chipset,
@@ -504,7 +504,7 @@ pub(crate) fn pio_load<F: FalconFirmware<Target = E> + FalconPioLoadable>(
fn dma_wr(
&self,
bar: &Bar0,
- dma_obj: &DmaObject,
+ dma_obj: &Coherent<[u8]>,
target_mem: FalconMem,
load_offsets: FalconDmaLoadTarget,
) -> Result {
@@ -614,7 +614,7 @@ fn dma_load<F: FalconFirmware<Target = E> + FalconDmaLoadable>(
fw: &F,
) -> Result {
// Create DMA object with firmware content as the source of the DMA engine.
- let dma_obj = DmaObject::from_data(dev, fw.as_slice())?;
+ let dma_obj = Coherent::from_slice(dev, fw.as_slice(), GFP_KERNEL)?;

self.dma_reset(bar);
bar.update(regs::NV_PFALCON_FBIF_TRANSCFG::of::<E>().at(0), |v| {

--
2.53.0