summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2016-05-11 16:21:03 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-05-12 15:03:49 -0400
commitc47b9e0944e483309d66c807d650ac8b8ceafb57 (patch)
treebfdc641692207eb0dc77df3334e179123ed55111 /drivers/gpu
parentff0bd441bdfbfa09d05fdba9829a0401a46635c1 (diff)
drm/amdgpu: fix DP mode validation
Switch the order of the loops to walk the rates on the top so we exhaust all DP 1.1 rate/lane combinations before trying DP 1.2 rate/lane combos. This avoids selecting rates that are supported by the monitor, but not the connector leading to valid modes getting rejected. bug: https://bugs.freedesktop.org/show_bug.cgi?id=95206 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/atombios_dp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_dp.c b/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
index bf731e9f643e..7f85c2c1d681 100644
--- a/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
+++ b/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
@@ -276,8 +276,8 @@ static int amdgpu_atombios_dp_get_dp_link_config(struct drm_connector *connector
276 } 276 }
277 } 277 }
278 } else { 278 } else {
279 for (lane_num = 1; lane_num <= max_lane_num; lane_num <<= 1) { 279 for (i = 0; i < ARRAY_SIZE(link_rates) && link_rates[i] <= max_link_rate; i++) {
280 for (i = 0; i < ARRAY_SIZE(link_rates) && link_rates[i] <= max_link_rate; i++) { 280 for (lane_num = 1; lane_num <= max_lane_num; lane_num <<= 1) {
281 max_pix_clock = (lane_num * link_rates[i] * 8) / bpp; 281 max_pix_clock = (lane_num * link_rates[i] * 8) / bpp;
282 if (max_pix_clock >= pix_clock) { 282 if (max_pix_clock >= pix_clock) {
283 *dp_lanes = lane_num; 283 *dp_lanes = lane_num;