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

Commit bac56d5b authored by Egbert Eich's avatar Egbert Eich Committed by Daniel Vetter
Browse files

DRM/i915: Remove i965_hpd_irq_setup.



After
"Convert HPD interrupts to make use of HPD pin assignment in encoders."
This function is now basically the same as i915_hpd_irq_setup().

Consolidating both functions in one requires one more check for
I915_HAS_HOTPLUG(dev) in the i965 code path and one more check for
IS_G4X(dev) in the i915 code path. These are considered harmless.

Signed-off-by: default avatarEgbert Eich <eich@suse.de>
Acked-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
[danvet: Fixup patch conflict and make it compile.]
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 82a28bcf
Loading
Loading
Loading
Loading
+18 −35
Original line number Diff line number Diff line
@@ -2526,25 +2526,6 @@ static int i915_irq_postinstall(struct drm_device *dev)
	return 0;
}

static void i915_hpd_irq_setup(struct drm_device *dev)
{
	if (I915_HAS_HOTPLUG(dev)) {
		drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
		struct drm_mode_config *mode_config = &dev->mode_config;
		struct intel_encoder *encoder;
		u32 hotplug_en = I915_READ(PORT_HOTPLUG_EN);

		hotplug_en &= ~HOTPLUG_INT_EN_MASK;
		list_for_each_entry(encoder, &mode_config->encoder_list, base.head)
			hotplug_en |= hpd_mask_i915[encoder->hpd_pin];
		hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50;

		/* Ignore TV since it's buggy */

		I915_WRITE(PORT_HOTPLUG_EN, hotplug_en);
	}
}

/*
 * Returns true when a page flip has completed.
 */
@@ -2774,17 +2755,19 @@ static int i965_irq_postinstall(struct drm_device *dev)
	return 0;
}

static void i965_hpd_irq_setup(struct drm_device *dev)
static void i915_hpd_irq_setup(struct drm_device *dev)
{
	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
	struct drm_mode_config *mode_config = &dev->mode_config;
	struct intel_encoder *encoder;
	u32 hotplug_en;

	if (I915_HAS_HOTPLUG(dev)) {
		hotplug_en = I915_READ(PORT_HOTPLUG_EN);
		hotplug_en &= ~HOTPLUG_INT_EN_MASK;
		/* Note HDMI and DP share hotplug bits */
	hotplug_en = 0;
	list_for_each_entry(encoder, &mode_config->encoder_list, base.head)
		/* enable bits are the same for all generations */
		list_for_each_entry(encoder, &mode_config->encoder_list, base.head)
			hotplug_en |= hpd_mask_i915[encoder->hpd_pin];
		/* Programming the CRT detection parameters tends
		   to generate a spurious hotplug event about three
@@ -2795,9 +2778,9 @@ static void i965_hpd_irq_setup(struct drm_device *dev)
		hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50;

		/* Ignore TV since it's buggy */

		I915_WRITE(PORT_HOTPLUG_EN, hotplug_en);
	}
}

static irqreturn_t i965_irq_handler(int irq, void *arg)
{
@@ -3008,7 +2991,7 @@ void intel_irq_init(struct drm_device *dev)
			dev->driver->irq_postinstall = i965_irq_postinstall;
			dev->driver->irq_uninstall = i965_irq_uninstall;
			dev->driver->irq_handler = i965_irq_handler;
			dev_priv->display.hpd_irq_setup = i965_hpd_irq_setup;
			dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
		}
		dev->driver->enable_vblank = i915_enable_vblank;
		dev->driver->disable_vblank = i915_disable_vblank;