aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c21
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h2
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c28
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
97static int intel_crt_mode_valid(struct drm_connector *connector, 69static int intel_crt_mode_valid(struct drm_connector *connector,