2014/1/16 Daniel Vetter <daniel.vetter@xxxxxxxx>: > Currently we're doing the reset handling a bit late, and we're doing > it both in the driver load code and on resume. This makes it unusable > for e.g. resetting the panel power sequence state like Paulo wants to. > > Instead of adding yet another single-use callback shuffle things > around: > - Output handling code is responsible to reset/init all state on its > own at driver load time. > - We call the reset functions much earlier, before we start using any > of the modeset code. > > Compared to Paulo's new ->resume callback the only difference in > placement is that ->reset is still called without dev->struct_mutex > held. Which is imo a feature. > > v2: Rebase on top of the now merge dinq. > > Cc: Paulo Zanoni <przanoni@xxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx> Yeah, now I can use it on the eDP patch. Reviewed-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.c | 2 +- > drivers/gpu/drm/i915/intel_crt.c | 2 ++ > drivers/gpu/drm/i915/intel_display.c | 1 - > 3 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 95dcf9de5c80..ce55440b0526 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -643,6 +643,7 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings) > /* KMS EnterVT equivalent */ > if (drm_core_check_feature(dev, DRIVER_MODESET)) { > intel_init_pch_refclk(dev); > + drm_mode_config_reset(dev); > > mutex_lock(&dev->struct_mutex); > > @@ -655,7 +656,6 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings) > intel_modeset_init_hw(dev); > > drm_modeset_lock_all(dev); > - drm_mode_config_reset(dev); > intel_modeset_setup_hw_state(dev, true); > drm_modeset_unlock_all(dev); > > diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c > index e2e39e65f109..5b444a4b625c 100644 > --- a/drivers/gpu/drm/i915/intel_crt.c > +++ b/drivers/gpu/drm/i915/intel_crt.c > @@ -857,4 +857,6 @@ void intel_crt_init(struct drm_device *dev) > > dev_priv->fdi_rx_config = I915_READ(_FDI_RXA_CTL) & fdi_config; > } > + > + intel_crt_reset(connector); > } > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index dde9802033ec..0c9e249e52e6 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -11412,7 +11412,6 @@ void intel_modeset_gem_init(struct drm_device *dev) > intel_setup_overlay(dev); > > mutex_lock(&dev->mode_config.mutex); > - drm_mode_config_reset(dev); > intel_modeset_setup_hw_state(dev, false); > mutex_unlock(&dev->mode_config.mutex); > } > -- > 1.8.5.2 > -- Paulo Zanoni _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx