aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2011-07-28 15:55:14 -0400
committerKeith Packard <keithp@keithp.com>2011-08-01 17:45:27 -0400
commit62ac41a6e443ef26b9de862c6e20c088e2b04dde (patch)
treefd6506f532fd23badd4ee6c541a78dbe40bd0fbe /drivers/gpu
parent9b546e571b94cacccf1091cc9cc0bd8a6a207a66 (diff)
drm/i915: don't use uninitialized EDID bpc values when picking pipe bpp
The EDID parser will zero out the bpc value, and the driver needs to handle that case. In our picker, we'll just ignore 0 values as far as bpp picking goes. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39323. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 2bf5bb63fe41..35364e68a091 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4600,7 +4600,9 @@ static bool intel_choose_pipe_bpp_dither(struct drm_crtc *crtc,
4600 if (connector->encoder != encoder) 4600 if (connector->encoder != encoder)
4601 continue; 4601 continue;
4602 4602
4603 if (connector->display_info.bpc < display_bpc) { 4603 /* Don't use an invalid EDID bpc value */
4604 if (connector->display_info.bpc &&
4605 connector->display_info.bpc < display_bpc) {
4604 DRM_DEBUG_DRIVER("clamping display bpc (was %d) to EDID reported max of %d\n", display_bpc, connector->display_info.bpc); 4606 DRM_DEBUG_DRIVER("clamping display bpc (was %d) to EDID reported max of %d\n", display_bpc, connector->display_info.bpc);
4605 display_bpc = connector->display_info.bpc; 4607 display_bpc = connector->display_info.bpc;
4606 } 4608 }
@@ -5215,7 +5217,8 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
5215 temp |= PIPE_12BPC; 5217 temp |= PIPE_12BPC;
5216 break; 5218 break;
5217 default: 5219 default:
5218 WARN(1, "intel_choose_pipe_bpp returned invalid value\n"); 5220 WARN(1, "intel_choose_pipe_bpp returned invalid value %d\n",
5221 pipe_bpp);
5219 temp |= PIPE_8BPC; 5222 temp |= PIPE_8BPC;
5220 pipe_bpp = 24; 5223 pipe_bpp = 24;
5221 break; 5224 break;