On Fri, 21 Nov 2014 21:00:36 +0200 ville.syrjala@xxxxxxxxxxxxxxx wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > When doing a nop modeset we currently leave crtc->new_config point at > the already freed temporary pipe_config. That will anger the sanity > checks in intel_modeset_update_state() when the nop modeset gets > followed by a GPU reset on gen3/4 where the display block gets fully > reinitialized during the reset. > > So leave crtc->new_config alone until we know a modeset is actually > required. > > Cc: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_display.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 853697f..3218455 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -10907,7 +10907,6 @@ intel_modeset_compute_config(struct drm_crtc *crtc, > } > intel_dump_pipe_config(to_intel_crtc(crtc), pipe_config, > "[modeset]"); > - to_intel_crtc(crtc)->new_config = pipe_config; > > out: > return pipe_config; > @@ -10933,6 +10932,9 @@ static int __intel_set_mode(struct drm_crtc *crtc, > > *saved_mode = crtc->mode; > > + if (modeset_pipes) > + to_intel_crtc(crtc)->new_config = pipe_config; > + > /* > * See if the config requires any additional preparation, e.g. > * to adjust global state with pipes off. We need to do this > @@ -11466,12 +11468,12 @@ static int intel_crtc_set_config(struct drm_mode_set *set) > ret = PTR_ERR(pipe_config); > goto fail; > } else if (pipe_config) { > - if (to_intel_crtc(set->crtc)->new_config->has_audio != > + if (pipe_config->has_audio != > to_intel_crtc(set->crtc)->config.has_audio) > config->mode_changed = true; > > /* Force mode sets for any infoframe stuff */ > - if (to_intel_crtc(set->crtc)->new_config->has_infoframe || > + if (pipe_config->has_infoframe || > to_intel_crtc(set->crtc)->config.has_infoframe) > config->mode_changed = true; > } Yeah looks fine. Reviewed-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> Thanks, -- Jesse Barnes, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx