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

Commit 26444877 authored by Shaohua Li's avatar Shaohua Li Committed by Eric Anholt
Browse files

drm/i915: remove Pineview EOS protection support



HW guys have an evaluation about the impact about EOS, and say the impact
is quite small, so they have removed EOS detection support. This patch
removes EOS feature.

revert commit 04302965
directly reverting it gives a hunk error, so please use this one.

Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
Signed-off-by: default avatarEric Anholt <eric@anholt.net>
[anholt: fixed up commit message for update that the feature's really gone]
parent 311089d3
Loading
Loading
Loading
Loading
+0 −21
Original line number Diff line number Diff line
@@ -622,27 +622,6 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)

			I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
			I915_READ(PORT_HOTPLUG_STAT);

			/* EOS interrupts occurs */
			if (IS_IGD(dev) &&
				(hotplug_status & CRT_EOS_INT_STATUS)) {
				u32 temp;

				DRM_DEBUG_DRIVER("EOS interrupt occurs\n");
				/* status is already cleared */
				temp = I915_READ(ADPA);
				temp &= ~ADPA_DAC_ENABLE;
				I915_WRITE(ADPA, temp);

				temp = I915_READ(PORT_HOTPLUG_EN);
				temp &= ~CRT_EOS_INT_EN;
				I915_WRITE(PORT_HOTPLUG_EN, temp);

				temp = I915_READ(PORT_HOTPLUG_STAT);
				if (temp & CRT_EOS_INT_STATUS)
					I915_WRITE(PORT_HOTPLUG_STAT,
						CRT_EOS_INT_STATUS);
			}
		}

		I915_WRITE(IIR, iir);
+0 −2
Original line number Diff line number Diff line
@@ -852,7 +852,6 @@
#define   SDVOB_HOTPLUG_INT_EN			(1 << 26)
#define   SDVOC_HOTPLUG_INT_EN			(1 << 25)
#define   TV_HOTPLUG_INT_EN			(1 << 18)
#define   CRT_EOS_INT_EN			(1 << 10)
#define   CRT_HOTPLUG_INT_EN			(1 << 9)
#define   CRT_HOTPLUG_FORCE_DETECT		(1 << 3)
#define CRT_HOTPLUG_ACTIVATION_PERIOD_32	(0 << 8)
@@ -887,7 +886,6 @@
#define   DPC_HOTPLUG_INT_STATUS		(1 << 28)
#define   HDMID_HOTPLUG_INT_STATUS		(1 << 27)
#define   DPD_HOTPLUG_INT_STATUS		(1 << 27)
#define   CRT_EOS_INT_STATUS			(1 << 12)
#define   CRT_HOTPLUG_INT_STATUS		(1 << 11)
#define   TV_HOTPLUG_INT_STATUS			(1 << 10)
#define   CRT_HOTPLUG_MONITOR_MASK		(3 << 8)
+0 −28
Original line number Diff line number Diff line
@@ -64,34 +64,6 @@ static void intel_crt_dpms(struct drm_encoder *encoder, int mode)
	}

	I915_WRITE(reg, temp);

	if (IS_IGD(dev)) {
		if (mode == DRM_MODE_DPMS_OFF) {
			/* turn off DAC */
			temp = I915_READ(PORT_HOTPLUG_EN);
			temp &= ~CRT_EOS_INT_EN;
			I915_WRITE(PORT_HOTPLUG_EN, temp);

			temp = I915_READ(PORT_HOTPLUG_STAT);
			if (temp & CRT_EOS_INT_STATUS)
				I915_WRITE(PORT_HOTPLUG_STAT,
					CRT_EOS_INT_STATUS);
		} else {
			/* turn on DAC. EOS interrupt must be enabled after DAC
			 * is enabled, so it sounds not good to enable it in
			 * i915_driver_irq_postinstall()
			 * wait 12.5ms after DAC is enabled
			 */
			msleep(13);
			temp = I915_READ(PORT_HOTPLUG_STAT);
			if (temp & CRT_EOS_INT_STATUS)
				I915_WRITE(PORT_HOTPLUG_STAT,
					CRT_EOS_INT_STATUS);
			temp = I915_READ(PORT_HOTPLUG_EN);
			temp |= CRT_EOS_INT_EN;
			I915_WRITE(PORT_HOTPLUG_EN, temp);
		}
	}
}

static int intel_crt_mode_valid(struct drm_connector *connector,