aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Kleiner <mario.kleiner.de@gmail.com>2014-08-04 23:23:11 -0400
committerAlex Deucher <alexander.deucher@amd.com>2014-08-05 11:22:54 -0400
commit9f51e2e04f74608adec9957df97684a37a4cd375 (patch)
treec6cc6f0e063059e0a47c68719850d20527453b4c
parent39dc5454e33b9e76d437bef1bdc1a453a81a2fc2 (diff)
drm/radeon: Prevent hdmi deep color if max_tmds_clock is undefined.
HDMI spec requires a valid max_tmds_clock from edid for hdmi deep color modes. If a sink violates this, disable deep color. Also add a hint to user about the deep_color module parameter if deep color is disabled due to that. Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 19ad4fb0a610..300c4b3d4669 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -197,10 +197,19 @@ int radeon_get_monitor_bpc(struct drm_connector *connector)
197 connector->name, bpc); 197 connector->name, bpc);
198 } 198 }
199 } 199 }
200 else if (bpc > 8) {
201 /* max_tmds_clock missing, but hdmi spec mandates it for deep color. */
202 DRM_DEBUG("%s: Required max tmds clock for HDMI deep color missing. Using 8 bpc.\n",
203 connector->name);
204 bpc = 8;
205 }
200 } 206 }
201 207
202 if ((radeon_deep_color == 0) && (bpc > 8)) 208 if ((radeon_deep_color == 0) && (bpc > 8)) {
209 DRM_DEBUG("%s: Deep color disabled. Set radeon module param deep_color=1 to enable.\n",
210 connector->name);
203 bpc = 8; 211 bpc = 8;
212 }
204 213
205 DRM_DEBUG("%s: Display bpc=%d, returned bpc=%d\n", 214 DRM_DEBUG("%s: Display bpc=%d, returned bpc=%d\n",
206 connector->name, connector->display_info.bpc, bpc); 215 connector->name, connector->display_info.bpc, bpc);