On Tue, 12 May 2026, Ville Syrjala <[email protected]> wrote: > From: Ville Syrjälä <[email protected]> > > Properly turn off the plane if it is enabled but > .get_initial_plane_config() failed for whatever reason. > > The hardware does (or at least did) perform some kind of automagic > plane disable when the pipe gets disabled, but we don't rely on that > anywhere else either. Also the GGTT/actual memory may get clobbered > afterwards, so leaving the plane enabled here could result in visual > corruption/GTT faults/etc. > > Signed-off-by: Ville Syrjälä <[email protected]>
Reviewed-by: Jani Nikula <[email protected]> > --- > drivers/gpu/drm/i915/display/intel_initial_plane.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_initial_plane.c > b/drivers/gpu/drm/i915/display/intel_initial_plane.c > index 034fe199c2a1..4d87627c6f6d 100644 > --- a/drivers/gpu/drm/i915/display/intel_initial_plane.c > +++ b/drivers/gpu/drm/i915/display/intel_initial_plane.c > @@ -128,11 +128,10 @@ intel_find_initial_plane_obj(struct intel_crtc *crtc, > > /* > * TODO: > - * Disable planes if get_initial_plane_config() failed. > * Make sure things work if the surface base is not page aligned. > */ > if (!plane_config->fb) > - return; > + goto nofb; > > if (intel_alloc_initial_plane_obj(display, plane_config)) { > fb = plane_config->fb; > @@ -184,7 +183,8 @@ intel_find_initial_plane_obj(struct intel_crtc *crtc, > * simplest solution is to just disable the primary plane now and > * pretend the BIOS never had it enabled. > */ > - intel_plane_disable_noatomic(crtc, plane); > + if (plane_state->uapi.visible) > + intel_plane_disable_noatomic(crtc, plane); > } > > static void plane_config_fini(struct intel_display *display, -- Jani Nikula, Intel
