drivers/gpu/nova-core/falcon/hal/tu102.rs

Source file repositories/reference/linux-study-clean/drivers/gpu/nova-core/falcon/hal/tu102.rs

File Facts

System
Linux kernel
Corpus path
drivers/gpu/nova-core/falcon/hal/tu102.rs
Extension
.rs
Size
1802 bytes
Lines
80
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

fn program_brom(&self, _falcon: &Falcon<E>, _bar: Bar0<'_>, _params: &FalconBromParams) {}

    fn is_riscv_active(&self, bar: Bar0<'_>) -> bool {
        bar.read(regs::NV_PRISCV_RISCV_CORE_SWITCH_RISCV_STATUS::of::<E>())
            .active_stat()
    }

    fn reset_wait_mem_scrubbing(&self, bar: Bar0<'_>) -> Result {
        // TIMEOUT: memory scrubbing should complete in less than 10ms.
        read_poll_timeout(
            || Ok(bar.read(regs::NV_PFALCON_FALCON_DMACTL::of::<E>())),
            |r| r.mem_scrubbing_done(),
            Delta::ZERO,
            Delta::from_millis(10),
        )
        .map(|_| ())
    }

    fn reset_eng(&self, bar: Bar0<'_>) -> Result {
        regs::NV_PFALCON_FALCON_ENGINE::reset_engine::<E>(bar);
        self.reset_wait_mem_scrubbing(bar)?;

        Ok(())
    }

    fn load_method(&self) -> LoadMethod {
        LoadMethod::Pio
    }
}

Annotation

Implementation Notes