On Tue, Oct 07, 2014 at 01:25:23PM -0700, Jesse Barnes wrote: > Gets the detect code (which may take awhile) out of the resume path, > speeding things up a bit. > > v2: use a delayed work queue instead (Daniel) > > Signed-off-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_dma.c | 10 ++++++++++ > drivers/gpu/drm/i915/i915_drv.c | 8 ++++++-- > drivers/gpu/drm/i915/i915_drv.h | 1 + > 3 files changed, 17 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c > index 85d14e1..633095d 100644 > --- a/drivers/gpu/drm/i915/i915_dma.c > +++ b/drivers/gpu/drm/i915/i915_dma.c > @@ -1303,6 +1303,15 @@ static const struct vga_switcheroo_client_ops i915_switcheroo_ops = { > .can_switch = i915_switcheroo_can_switch, > }; > > +static void intel_resume_hotplug(struct work_struct *work) > +{ > + struct drm_i915_private *dev_priv = > + container_of(work, struct drm_i915_private, > + hotplug_resume_work.work); > + > + drm_helper_hpd_irq_event(dev_priv->dev); > +} > + > static int i915_load_modeset_init(struct drm_device *dev) > { > struct drm_i915_private *dev_priv = dev->dev_private; > @@ -1364,6 +1373,7 @@ static int i915_load_modeset_init(struct drm_device *dev) > > /* Only enable hotplug handling once the fbdev is fully set up. */ > intel_hpd_init(dev_priv); > + INIT_DELAYED_WORK(&dev_priv->hotplug_resume_work, intel_resume_hotplug); > > /* > * Some ports require correctly set-up hpd registers for detection to > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index a05a1d0..83075f9 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -726,8 +726,12 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings) > * notifications. > * */ > intel_hpd_init(dev_priv); > - /* Config may have changed between suspend and resume */ > - drm_helper_hpd_irq_event(dev); > + /* Config may have changed between suspend and resume. Just > + * try to make sure the rest of driver resume is finished > + * before we start probing for config changes. This is a nice vague statement that scares me. If half of this comment is true, using a simple delay is periliously lackadaisical. The commit log just talks about speeding up resume, but this comment implies to me something more sinister. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx