diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 21 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_crt.c | 28 |
3 files changed, 0 insertions, 51 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 024fb954db37..77bc1d28f744 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c | |||
@@ -622,27 +622,6 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) | |||
622 | 622 | ||
623 | I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status); | 623 | I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status); |
624 | I915_READ(PORT_HOTPLUG_STAT); | 624 | I915_READ(PORT_HOTPLUG_STAT); |
625 | |||
626 | /* EOS interrupts occurs */ | ||
627 | if (IS_IGD(dev) && | ||
628 | (hotplug_status & CRT_EOS_INT_STATUS)) { | ||
629 | u32 temp; | ||
630 | |||
631 | DRM_DEBUG_DRIVER("EOS interrupt occurs\n"); | ||
632 | /* status is already cleared */ | ||
633 | temp = I915_READ(ADPA); | ||
634 | temp &= ~ADPA_DAC_ENABLE; | ||
635 | I915_WRITE(ADPA, temp); | ||
636 | |||
637 | temp = I915_READ(PORT_HOTPLUG_EN); | ||
638 | temp &= ~CRT_EOS_INT_EN; | ||
639 | I915_WRITE(PORT_HOTPLUG_EN, temp); | ||
640 | |||
641 | temp = I915_READ(PORT_HOTPLUG_STAT); | ||
642 | if (temp & CRT_EOS_INT_STATUS) | ||
643 | I915_WRITE(PORT_HOTPLUG_STAT, | ||
644 | CRT_EOS_INT_STATUS); | ||
645 | } | ||
646 | } | 625 | } |
647 | 626 | ||
648 | I915_WRITE(IIR, iir); | 627 | I915_WRITE(IIR, iir); |
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index b11a682a4cff..d58f7ad91161 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -852,7 +852,6 @@ | |||
852 | #define SDVOB_HOTPLUG_INT_EN (1 << 26) | 852 | #define SDVOB_HOTPLUG_INT_EN (1 << 26) |
853 | #define SDVOC_HOTPLUG_INT_EN (1 << 25) | 853 | #define SDVOC_HOTPLUG_INT_EN (1 << 25) |
854 | #define TV_HOTPLUG_INT_EN (1 << 18) | 854 | #define TV_HOTPLUG_INT_EN (1 << 18) |
855 | #define CRT_EOS_INT_EN (1 << 10) | ||
856 | #define CRT_HOTPLUG_INT_EN (1 << 9) | 855 | #define CRT_HOTPLUG_INT_EN (1 << 9) |
857 | #define CRT_HOTPLUG_FORCE_DETECT (1 << 3) | 856 | #define CRT_HOTPLUG_FORCE_DETECT (1 << 3) |
858 | #define CRT_HOTPLUG_ACTIVATION_PERIOD_32 (0 << 8) | 857 | #define CRT_HOTPLUG_ACTIVATION_PERIOD_32 (0 << 8) |
@@ -887,7 +886,6 @@ | |||
887 | #define DPC_HOTPLUG_INT_STATUS (1 << 28) | 886 | #define DPC_HOTPLUG_INT_STATUS (1 << 28) |
888 | #define HDMID_HOTPLUG_INT_STATUS (1 << 27) | 887 | #define HDMID_HOTPLUG_INT_STATUS (1 << 27) |
889 | #define DPD_HOTPLUG_INT_STATUS (1 << 27) | 888 | #define DPD_HOTPLUG_INT_STATUS (1 << 27) |
890 | #define CRT_EOS_INT_STATUS (1 << 12) | ||
891 | #define CRT_HOTPLUG_INT_STATUS (1 << 11) | 889 | #define CRT_HOTPLUG_INT_STATUS (1 << 11) |
892 | #define TV_HOTPLUG_INT_STATUS (1 << 10) | 890 | #define TV_HOTPLUG_INT_STATUS (1 << 10) |
893 | #define CRT_HOTPLUG_MONITOR_MASK (3 << 8) | 891 | #define CRT_HOTPLUG_MONITOR_MASK (3 << 8) |
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index 9b48a4465c38..0864a2c40856 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c | |||
@@ -64,34 +64,6 @@ static void intel_crt_dpms(struct drm_encoder *encoder, int mode) | |||
64 | } | 64 | } |
65 | 65 | ||
66 | I915_WRITE(reg, temp); | 66 | I915_WRITE(reg, temp); |
67 | |||
68 | if (IS_IGD(dev)) { | ||
69 | if (mode == DRM_MODE_DPMS_OFF) { | ||
70 | /* turn off DAC */ | ||
71 | temp = I915_READ(PORT_HOTPLUG_EN); | ||
72 | temp &= ~CRT_EOS_INT_EN; | ||
73 | I915_WRITE(PORT_HOTPLUG_EN, temp); | ||
74 | |||
75 | temp = I915_READ(PORT_HOTPLUG_STAT); | ||
76 | if (temp & CRT_EOS_INT_STATUS) | ||
77 | I915_WRITE(PORT_HOTPLUG_STAT, | ||
78 | CRT_EOS_INT_STATUS); | ||
79 | } else { | ||
80 | /* turn on DAC. EOS interrupt must be enabled after DAC | ||
81 | * is enabled, so it sounds not good to enable it in | ||
82 | * i915_driver_irq_postinstall() | ||
83 | * wait 12.5ms after DAC is enabled | ||
84 | */ | ||
85 | msleep(13); | ||
86 | temp = I915_READ(PORT_HOTPLUG_STAT); | ||
87 | if (temp & CRT_EOS_INT_STATUS) | ||
88 | I915_WRITE(PORT_HOTPLUG_STAT, | ||
89 | CRT_EOS_INT_STATUS); | ||
90 | temp = I915_READ(PORT_HOTPLUG_EN); | ||
91 | temp |= CRT_EOS_INT_EN; | ||
92 | I915_WRITE(PORT_HOTPLUG_EN, temp); | ||
93 | } | ||
94 | } | ||
95 | } | 67 | } |
96 | 68 | ||
97 | static int intel_crt_mode_valid(struct drm_connector *connector, | 69 | static int intel_crt_mode_valid(struct drm_connector *connector, |