aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2012-12-01 15:03:21 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-12-06 07:14:35 -0500
commit61bac78e03d4385e225cb2837e33974feda489c2 (patch)
treeddd61e8727996cef5b33cb26d8277ae88a3b31e2 /drivers/gpu
parentd83779a9cb9374977c1c05364b4d7dfe9ec68ef3 (diff)
drm/i915: setup the hangcheck timer early
... together with all the other irq related resources in intel_irq_init. I've managed to oops in the notify_ring function on my ilk, presumably because of the powerctx setup call to i915_gpu_idle. Note that this is only a problem with the reorder irq setup sequence for irq-driver gmbus/dp aux. Reviewed-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c3
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c3
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 2635ee6a34d4..901f8fc3ed88 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1611,9 +1611,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
1611 intel_opregion_init(dev); 1611 intel_opregion_init(dev);
1612 acpi_video_register(); 1612 acpi_video_register();
1613 1613
1614 setup_timer(&dev_priv->hangcheck_timer, i915_hangcheck_elapsed,
1615 (unsigned long) dev);
1616
1617 if (IS_GEN5(dev)) 1614 if (IS_GEN5(dev))
1618 intel_gpu_ips_init(dev_priv); 1615 intel_gpu_ips_init(dev_priv);
1619 1616
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 935b6b7bae73..568820bf4587 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2687,6 +2687,9 @@ void intel_irq_init(struct drm_device *dev)
2687 INIT_WORK(&dev_priv->rps.work, gen6_pm_rps_work); 2687 INIT_WORK(&dev_priv->rps.work, gen6_pm_rps_work);
2688 INIT_WORK(&dev_priv->l3_parity.error_work, ivybridge_parity_work); 2688 INIT_WORK(&dev_priv->l3_parity.error_work, ivybridge_parity_work);
2689 2689
2690 setup_timer(&dev_priv->hangcheck_timer, i915_hangcheck_elapsed,
2691 (unsigned long) dev);
2692
2690 dev->driver->get_vblank_counter = i915_get_vblank_counter; 2693 dev->driver->get_vblank_counter = i915_get_vblank_counter;
2691 dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */ 2694 dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
2692 if (IS_G4X(dev) || INTEL_INFO(dev)->gen >= 5) { 2695 if (IS_G4X(dev) || INTEL_INFO(dev)->gen >= 5) {