summaryrefslogtreecommitdiffstats
path: root/extras/recipes-kernel/linux/linux-omap/linus/0009-drm-i915-Verify-Ironlake-eDP-presence-on-DP_A-using-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap/linus/0009-drm-i915-Verify-Ironlake-eDP-presence-on-DP_A-using-.patch')
-rw-r--r--extras/recipes-kernel/linux/linux-omap/linus/0009-drm-i915-Verify-Ironlake-eDP-presence-on-DP_A-using-.patch69
1 files changed, 69 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap/linus/0009-drm-i915-Verify-Ironlake-eDP-presence-on-DP_A-using-.patch b/extras/recipes-kernel/linux/linux-omap/linus/0009-drm-i915-Verify-Ironlake-eDP-presence-on-DP_A-using-.patch
new file mode 100644
index 00000000..e0f4515e
--- /dev/null
+++ b/extras/recipes-kernel/linux/linux-omap/linus/0009-drm-i915-Verify-Ironlake-eDP-presence-on-DP_A-using-.patch
@@ -0,0 +1,69 @@
1From b3ae260de2254a0aed982b5964396a9914859c0e Mon Sep 17 00:00:00 2001
2From: Chris Wilson <chris@chris-wilson.co.uk>
3Date: Tue, 14 Dec 2010 19:21:29 +0000
4Subject: [PATCH 09/65] drm/i915: Verify Ironlake eDP presence on DP_A using the capability fuse
5
6Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
7---
8 drivers/gpu/drm/i915/i915_reg.h | 7 +++++++
9 drivers/gpu/drm/i915/intel_display.c | 19 ++++++++++++++++++-
10 2 files changed, 25 insertions(+), 1 deletions(-)
11
12diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
13index 8470a97..cb8f434 100644
14--- a/drivers/gpu/drm/i915/i915_reg.h
15+++ b/drivers/gpu/drm/i915/i915_reg.h
16@@ -2591,6 +2591,13 @@
17 #define ILK_DISPLAY_CHICKEN2 0x42004
18 #define ILK_DPARB_GATE (1<<22)
19 #define ILK_VSDPFD_FULL (1<<21)
20+#define ILK_DISPLAY_CHICKEN_FUSES 0x42014
21+#define ILK_INTERNAL_GRAPHICS_DISABLE (1<<31)
22+#define ILK_INTERNAL_DISPLAY_DISABLE (1<<30)
23+#define ILK_DISPLAY_DEBUG_DISABLE (1<<29)
24+#define ILK_HDCP_DISABLE (1<<25)
25+#define ILK_eDP_A_DISABLE (1<<24)
26+#define ILK_DESKTOP (1<<23)
27 #define ILK_DSPCLK_GATE 0x42020
28 #define ILK_DPARB_CLK_GATE (1<<5)
29 /* According to spec this bit 7/8/9 of 0x42020 should be set to enable FBC */
30diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
31index 97e374e..fca5232 100644
32--- a/drivers/gpu/drm/i915/intel_display.c
33+++ b/drivers/gpu/drm/i915/intel_display.c
34@@ -5379,6 +5379,23 @@ static int intel_encoder_clones(struct drm_device *dev, int type_mask)
35 return index_mask;
36 }
37
38+static bool has_edp_a(struct drm_device *dev)
39+{
40+ struct drm_i915_private *dev_priv = dev->dev_private;
41+
42+ if (!IS_MOBILE(dev))
43+ return false;
44+
45+ if ((I915_READ(DP_A) & DP_DETECTED) == 0)
46+ return false;
47+
48+ if (IS_GEN5(dev) &&
49+ (I915_READ(ILK_DISPLAY_CHICKEN_FUSES) & ILK_eDP_A_DISABLE))
50+ return false;
51+
52+ return true;
53+}
54+
55 static void intel_setup_outputs(struct drm_device *dev)
56 {
57 struct drm_i915_private *dev_priv = dev->dev_private;
58@@ -5396,7 +5413,7 @@ static void intel_setup_outputs(struct drm_device *dev)
59 if (HAS_PCH_SPLIT(dev)) {
60 dpd_is_edp = intel_dpd_is_edp(dev);
61
62- if (IS_MOBILE(dev) && (I915_READ(DP_A) & DP_DETECTED))
63+ if (has_edp_a(dev))
64 intel_dp_init(dev, DP_A);
65
66 if (dpd_is_edp && (I915_READ(PCH_DP_D) & DP_DETECTED))
67--
681.6.6.1
69