]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/3.10.87/drm-radeon-combios-add-some-validation-of-lvds-values.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 3.10.87 / drm-radeon-combios-add-some-validation-of-lvds-values.patch
CommitLineData
40ebb566
GKH
1From 0a90a0cff9f429f886f423967ae053150dce9259 Mon Sep 17 00:00:00 2001
2From: Alex Deucher <alexander.deucher@amd.com>
3Date: Mon, 27 Jul 2015 19:24:31 -0400
4Subject: drm/radeon/combios: add some validation of lvds values
5
6From: Alex Deucher <alexander.deucher@amd.com>
7
8commit 0a90a0cff9f429f886f423967ae053150dce9259 upstream.
9
10Fixes a broken hsync start value uncovered by:
11abc0b1447d4974963548777a5ba4a4457c82c426
12(drm: Perform basic sanity checks on probed modes)
13
14The driver handled the bad hsync start elsewhere, but
15the above commit prevented it from getting added.
16
17bug:
18https://bugs.freedesktop.org/show_bug.cgi?id=91401
19
20Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
21Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
22
23---
24 drivers/gpu/drm/radeon/radeon_combios.c | 7 ++++++-
25 1 file changed, 6 insertions(+), 1 deletion(-)
26
27--- a/drivers/gpu/drm/radeon/radeon_combios.c
28+++ b/drivers/gpu/drm/radeon/radeon_combios.c
29@@ -1271,10 +1271,15 @@ struct radeon_encoder_lvds *radeon_combi
30
31 if ((RBIOS16(tmp) == lvds->native_mode.hdisplay) &&
32 (RBIOS16(tmp + 2) == lvds->native_mode.vdisplay)) {
33+ u32 hss = (RBIOS16(tmp + 21) - RBIOS16(tmp + 19) - 1) * 8;
34+
35+ if (hss > lvds->native_mode.hdisplay)
36+ hss = (10 - 1) * 8;
37+
38 lvds->native_mode.htotal = lvds->native_mode.hdisplay +
39 (RBIOS16(tmp + 17) - RBIOS16(tmp + 19)) * 8;
40 lvds->native_mode.hsync_start = lvds->native_mode.hdisplay +
41- (RBIOS16(tmp + 21) - RBIOS16(tmp + 19) - 1) * 8;
42+ hss;
43 lvds->native_mode.hsync_end = lvds->native_mode.hsync_start +
44 (RBIOS8(tmp + 23) * 8);
45