diff --git a/drivers/gpu/drm/asahi/g16/boot.rs b/drivers/gpu/drm/asahi/g16/boot.rs index 509ed3368df77..2de07794d0087 100644 --- a/drivers/gpu/drm/asahi/g16/boot.rs +++ b/drivers/gpu/drm/asahi/g16/boot.rs @@ -439,6 +439,7 @@ impl Orphan { } /// Probe-time admission. +#[inline(never)] pub(crate) fn admit( pdev: &platform::Device>, _dev: &AsahiDrmDevice, @@ -658,6 +659,7 @@ fn run( } /// Brings the firmware to READY. +#[inline(never)] pub(crate) fn start( admitted: Admitted, dev: &AsahiDrmDevice, diff --git a/drivers/gpu/drm/asahi/g16/mod.rs b/drivers/gpu/drm/asahi/g16/mod.rs index 41fdad4e4cdaa..b62674726d49b 100644 --- a/drivers/gpu/drm/asahi/g16/mod.rs +++ b/drivers/gpu/drm/asahi/g16/mod.rs @@ -437,6 +437,10 @@ impl Gpu { impl Firmware { /// Builds the graphs and the engine after READY. On failure the firmware stays at READY, /// retained as an orphan of `shared`. + /// + /// Out of line, like [`boot::admit`] and [`boot::start`]: each of [`Gpu::new`]'s phases + /// has a large frame, and the probe's stack holds them only one at a time. + #[inline(never)] fn start_backend( dev: &AsahiDrmDevice, booted: boot::Booted,