Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ca1cced authored by Ville Syrjälä's avatar Ville Syrjälä Committed by Daniel Vetter
Browse files

drm/i915: Add intel_hpd_irq_uninstall()



Add intel_hpd_irq_uninstall() which will cancel the hotplug re-enable
timer.

Also s/i915_reenable_hotplug_timer_func/intel_hpd_irq_reenable/

Suggested-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 1a5ef5b7
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -916,6 +916,11 @@ static void i915_hotplug_work_func(struct work_struct *work)
		drm_kms_helper_hotplug_event(dev);
}

static void intel_hpd_irq_uninstall(struct drm_i915_private *dev_priv)
{
	del_timer_sync(&dev_priv->hotplug_reenable_timer);
}

static void ironlake_rps_change_irq_handler(struct drm_device *dev)
{
	drm_i915_private_t *dev_priv = dev->dev_private;
@@ -3050,7 +3055,7 @@ static void valleyview_irq_uninstall(struct drm_device *dev)
	if (!dev_priv)
		return;

	del_timer_sync(&dev_priv->hotplug_reenable_timer);
	intel_hpd_irq_uninstall(dev_priv);

	for_each_pipe(pipe)
		I915_WRITE(PIPESTAT(pipe), 0xffff);
@@ -3073,7 +3078,7 @@ static void ironlake_irq_uninstall(struct drm_device *dev)
	if (!dev_priv)
		return;

	del_timer_sync(&dev_priv->hotplug_reenable_timer);
	intel_hpd_irq_uninstall(dev_priv);

	I915_WRITE(HWSTAM, 0xffffffff);

@@ -3474,7 +3479,7 @@ static void i915_irq_uninstall(struct drm_device * dev)
	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
	int pipe;

	del_timer_sync(&dev_priv->hotplug_reenable_timer);
	intel_hpd_irq_uninstall(dev_priv);

	if (I915_HAS_HOTPLUG(dev)) {
		I915_WRITE(PORT_HOTPLUG_EN, 0);
@@ -3730,7 +3735,7 @@ static void i965_irq_uninstall(struct drm_device * dev)
	if (!dev_priv)
		return;

	del_timer_sync(&dev_priv->hotplug_reenable_timer);
	intel_hpd_irq_uninstall(dev_priv);

	I915_WRITE(PORT_HOTPLUG_EN, 0);
	I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
@@ -3747,7 +3752,7 @@ static void i965_irq_uninstall(struct drm_device * dev)
	I915_WRITE(IIR, I915_READ(IIR));
}

static void i915_reenable_hotplug_timer_func(unsigned long data)
static void intel_hpd_irq_reenable(unsigned long data)
{
	drm_i915_private_t *dev_priv = (drm_i915_private_t *)data;
	struct drm_device *dev = dev_priv->dev;
@@ -3794,7 +3799,7 @@ void intel_irq_init(struct drm_device *dev)
	setup_timer(&dev_priv->gpu_error.hangcheck_timer,
		    i915_hangcheck_elapsed,
		    (unsigned long) dev);
	setup_timer(&dev_priv->hotplug_reenable_timer, i915_reenable_hotplug_timer_func,
	setup_timer(&dev_priv->hotplug_reenable_timer, intel_hpd_irq_reenable,
		    (unsigned long) dev_priv);

	pm_qos_add_request(&dev_priv->pm_qos, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);