drm/amdgpu: Fix hdmi deep color support.
authorMario Kleiner <mario.kleiner.de@gmail.com>
Tue, 24 May 2016 16:12:43 +0000 (18:12 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 25 May 2016 13:42:53 +0000 (09:42 -0400)
When porting the hdmi deep color detection code from
radeon-kms to amdgpu-kms apparently some kind of
copy and paste error happened, attaching an else
branch to the wrong if statement.

The result is that hdmi deep color mode is always
disabled, regardless of gpu and display capabilities and
user wishes, as the code mistakenly thinks that the display
doesn't provide the required max_tmds_clock limit and falls
back to 8 bpc.

This patch fixes deep color support, as tested on a
R9 380 Tonga Pro + suitable display, and should be
backported to all kernels with amdgpu-kms support.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: stable@vger.kernel.org
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c

index 60a0c9ac11b223781414d1d2fffca795db4c680d..cb07da41152b7f8f7ef3229d56832fc1fb881c75 100644 (file)
@@ -194,12 +194,12 @@ int amdgpu_connector_get_monitor_bpc(struct drm_connector *connector)
                                bpc = 8;
                                DRM_DEBUG("%s: HDMI deep color 10 bpc exceeds max tmds clock. Using %d bpc.\n",
                                          connector->name, bpc);
-                       } else if (bpc > 8) {
-                               /* max_tmds_clock missing, but hdmi spec mandates it for deep color. */
-                               DRM_DEBUG("%s: Required max tmds clock for HDMI deep color missing. Using 8 bpc.\n",
-                                         connector->name);
-                               bpc = 8;
                        }
+               } else if (bpc > 8) {
+                       /* max_tmds_clock missing, but hdmi spec mandates it for deep color. */
+                       DRM_DEBUG("%s: Required max tmds clock for HDMI deep color missing. Using 8 bpc.\n",
+                                 connector->name);
+                       bpc = 8;
                }
        }