aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2010-01-11 16:38:31 -0500
committerEric Anholt <eric@anholt.net>2010-01-15 17:13:06 -0500
commit885a5fb5b120a5c7e0b3baad7b0feb5a89f76c18 (patch)
treec0a636d952445b79d7e2301e1796b6c175c27c8a /drivers/gpu/drm/i915/intel_display.c
parent500a8cc466a24e2fbc4c86ef9c6467ae2ffdeb0c (diff)
drm/i915: fix pixel color depth setting on eDP
Original DP mode_valid check didn't take pixel color depth into account, which made one 1600x900 eDP panel's mode check invalid because of overclock, but actually this 6bpc panel does can work with x1 lane at 2.7G. This one trys to take bpp value properly both in mode validation and mode setting. Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 4b96a54b8e48..45da78ef4a92 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2924,6 +2924,21 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
2924 temp |= PIPE_8BPC; 2924 temp |= PIPE_8BPC;
2925 else 2925 else
2926 temp |= PIPE_6BPC; 2926 temp |= PIPE_6BPC;
2927 } else if (is_edp) {
2928 switch (dev_priv->edp_bpp/3) {
2929 case 8:
2930 temp |= PIPE_8BPC;
2931 break;
2932 case 10:
2933 temp |= PIPE_10BPC;
2934 break;
2935 case 6:
2936 temp |= PIPE_6BPC;
2937 break;
2938 case 12:
2939 temp |= PIPE_12BPC;
2940 break;
2941 }
2927 } else 2942 } else
2928 temp |= PIPE_8BPC; 2943 temp |= PIPE_8BPC;
2929 I915_WRITE(pipeconf_reg, temp); 2944 I915_WRITE(pipeconf_reg, temp);