[PATCH v9 2/9] gpu: nova-core: require DmaObject on FalconDmaLoadable, not FalconFirmware
From: Alexandre Courbot
Date: Thu Feb 12 2026 - 03:27:56 EST
Not all firmware is necessarily loaded through DMA: the PIO loading
method does not require shared memory between the CPU and GPU. Thus,
move the requirement to dereference to a DMA object from
`FalconFirmware` to the mode accurate `FalconDmaLoadable`.
Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
---
drivers/gpu/nova-core/falcon.rs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/nova-core/falcon.rs b/drivers/gpu/nova-core/falcon.rs
index 85918a03b37c..d2f27847f533 100644
--- a/drivers/gpu/nova-core/falcon.rs
+++ b/drivers/gpu/nova-core/falcon.rs
@@ -351,7 +351,7 @@ pub(crate) struct FalconDmaLoadTarget {
}
/// Trait for providing DMA load parameters of falcon firmwares.
-pub(crate) trait FalconDmaLoadable {
+pub(crate) trait FalconDmaLoadable: Deref<Target = DmaObject> {
/// Returns the load parameters for Secure `IMEM`.
fn imem_sec_load_params(&self) -> FalconDmaLoadTarget;
@@ -373,7 +373,7 @@ pub(crate) trait FalconDmaLoadable {
///
/// A falcon firmware can be loaded on a given engine, and is presented in the form of a DMA
/// object.
-pub(crate) trait FalconFirmware: FalconDmaLoadable + Deref<Target = DmaObject> {
+pub(crate) trait FalconFirmware: FalconDmaLoadable {
/// Engine on which this firmware is to be loaded.
type Target: FalconEngine;
}
--
2.53.0