> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Ville Syrjala > Sent: Thursday, February 23, 2023 8:51 PM > To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: stable@xxxxxxxxxxxxxxx > Subject: [PATCH] drm/i915: Preserve crtc_state->inherited during state > clearing > > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > intel_crtc_prepare_cleared_state() is unintentionally losing the "inherited" flag. This > will happen if intel_initial_commit() is forced to go through the full modeset > calculations for whatever reason. > > Afterwards the first real commit from userspace will not get forced to the full > modeset path, and thus eg. audio state may not get recomputed properly. So if the > monitor was already enabled during boot audio will not work until userspace itself > does an explicit full modeset. Looks Good to me. Reviewed-by: Uma Shankar <uma.shankar@xxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Tested-by: Lee Shawn C <shawn.c.lee@xxxxxxxxx> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_display.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c > b/drivers/gpu/drm/i915/display/intel_display.c > index a1fbdf32bd21..ed95c0acfaae 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -5078,6 +5078,7 @@ intel_crtc_prepare_cleared_state(struct > intel_atomic_state *state, > * only fields that are know to not cause problems are preserved. */ > > saved_state->uapi = crtc_state->uapi; > + saved_state->inherited = crtc_state->inherited; > saved_state->scaler_state = crtc_state->scaler_state; > saved_state->shared_dpll = crtc_state->shared_dpll; > saved_state->dpll_hw_state = crtc_state->dpll_hw_state; > -- > 2.39.2