aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarsten Emde <C.Emde@osadl.org>2013-04-06 12:01:34 -0400
committerDave Airlie <airlied@redhat.com>2013-04-12 00:06:16 -0400
commit8091ee5c092a1e7dab2cb49d02d5f3925ece3995 (patch)
tree8d00b651751ca884c2a18a3642d4f18fbef2ea09
parent96d672e0e5c27cf1d042eceeb3241c45ac8ff600 (diff)
drm: Add 1600x1200 (UXGA) screen resolution to the built-in EDIDs
The 1600x1200 (UXGA) screen resolution was lacking in the set of built-in selectable EDID screen resolutions that can be used to repair misbehaving monitor firmware. This patch adds the related data set and expands the documentation. Signed-off-by: Carsten Emde <C.Emde@osadl.org> Acked-by: Paul Menzel <paulepanter@users.sourceforge.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--Documentation/EDID/1600x1200.S44
-rw-r--r--Documentation/EDID/HOWTO.txt12
-rw-r--r--drivers/gpu/drm/drm_edid_load.c21
3 files changed, 70 insertions, 7 deletions
diff --git a/Documentation/EDID/1600x1200.S b/Documentation/EDID/1600x1200.S
new file mode 100644
index 000000000000..0ded64cfd1f5
--- /dev/null
+++ b/Documentation/EDID/1600x1200.S
@@ -0,0 +1,44 @@
1/*
2 1600x1200.S: EDID data set for standard 1600x1200 60 Hz monitor
3
4 Copyright (C) 2013 Carsten Emde <C.Emde@osadl.org>
5
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License
8 as published by the Free Software Foundation; either version 2
9 of the License, or (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
19*/
20
21/* EDID */
22#define VERSION 1
23#define REVISION 3
24
25/* Display */
26#define CLOCK 162000 /* kHz */
27#define XPIX 1600
28#define YPIX 1200
29#define XY_RATIO XY_RATIO_4_3
30#define XBLANK 560
31#define YBLANK 50
32#define XOFFSET 64
33#define XPULSE 192
34#define YOFFSET (63+1)
35#define YPULSE (63+3)
36#define DPI 72
37#define VFREQ 60 /* Hz */
38#define TIMING_NAME "Linux UXGA"
39#define ESTABLISHED_TIMINGS_BITS 0x00 /* none */
40#define HSYNC_POL 1
41#define VSYNC_POL 1
42#define CRC 0x9d
43
44#include "edid.S"
diff --git a/Documentation/EDID/HOWTO.txt b/Documentation/EDID/HOWTO.txt
index 2d0a8f09475d..7146db1d9e8c 100644
--- a/Documentation/EDID/HOWTO.txt
+++ b/Documentation/EDID/HOWTO.txt
@@ -18,12 +18,12 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE was introduced. It allows to provide an
18individually prepared or corrected EDID data set in the /lib/firmware 18individually prepared or corrected EDID data set in the /lib/firmware
19directory from where it is loaded via the firmware interface. The code 19directory from where it is loaded via the firmware interface. The code
20(see drivers/gpu/drm/drm_edid_load.c) contains built-in data sets for 20(see drivers/gpu/drm/drm_edid_load.c) contains built-in data sets for
21commonly used screen resolutions (1024x768, 1280x1024, 1680x1050, 21commonly used screen resolutions (1024x768, 1280x1024, 1600x1200,
221920x1080) as binary blobs, but the kernel source tree does not contain 221680x1050, 1920x1080) as binary blobs, but the kernel source tree does
23code to create these data. In order to elucidate the origin of the 23not contain code to create these data. In order to elucidate the origin
24built-in binary EDID blobs and to facilitate the creation of individual 24of the built-in binary EDID blobs and to facilitate the creation of
25data for a specific misbehaving monitor, commented sources and a 25individual data for a specific misbehaving monitor, commented sources
26Makefile environment are given here. 26and a Makefile environment are given here.
27 27
28To create binary EDID and C source code files from the existing data 28To create binary EDID and C source code files from the existing data
29material, simply type "make". 29material, simply type "make".
diff --git a/drivers/gpu/drm/drm_edid_load.c b/drivers/gpu/drm/drm_edid_load.c
index 38d3943f72de..fa445dd4dc00 100644
--- a/drivers/gpu/drm/drm_edid_load.c
+++ b/drivers/gpu/drm/drm_edid_load.c
@@ -31,10 +31,11 @@ module_param_string(edid_firmware, edid_firmware, sizeof(edid_firmware), 0644);
31MODULE_PARM_DESC(edid_firmware, "Do not probe monitor, use specified EDID blob " 31MODULE_PARM_DESC(edid_firmware, "Do not probe monitor, use specified EDID blob "
32 "from built-in data or /lib/firmware instead. "); 32 "from built-in data or /lib/firmware instead. ");
33 33
34#define GENERIC_EDIDS 4 34#define GENERIC_EDIDS 5
35static char *generic_edid_name[GENERIC_EDIDS] = { 35static char *generic_edid_name[GENERIC_EDIDS] = {
36 "edid/1024x768.bin", 36 "edid/1024x768.bin",
37 "edid/1280x1024.bin", 37 "edid/1280x1024.bin",
38 "edid/1600x1200.bin",
38 "edid/1680x1050.bin", 39 "edid/1680x1050.bin",
39 "edid/1920x1080.bin", 40 "edid/1920x1080.bin",
40}; 41};
@@ -79,6 +80,24 @@ static u8 generic_edid[GENERIC_EDIDS][128] = {
79 { 80 {
80 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 81 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
81 0x31, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 82 0x31, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
83 0x05, 0x16, 0x01, 0x03, 0x6d, 0x37, 0x29, 0x78,
84 0xea, 0x5e, 0xc0, 0xa4, 0x59, 0x4a, 0x98, 0x25,
85 0x20, 0x50, 0x54, 0x00, 0x00, 0x00, 0xa9, 0x40,
86 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
87 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x48, 0x3f,
88 0x40, 0x30, 0x62, 0xb0, 0x32, 0x40, 0x40, 0xc0,
89 0x13, 0x00, 0x2b, 0xa0, 0x21, 0x00, 0x00, 0x1e,
90 0x00, 0x00, 0x00, 0xff, 0x00, 0x4c, 0x69, 0x6e,
91 0x75, 0x78, 0x20, 0x23, 0x30, 0x0a, 0x20, 0x20,
92 0x20, 0x20, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x3b,
93 0x3d, 0x4a, 0x4c, 0x11, 0x00, 0x0a, 0x20, 0x20,
94 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
95 0x00, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x20, 0x55,
96 0x58, 0x47, 0x41, 0x0a, 0x20, 0x20, 0x00, 0x9d,
97 },
98 {
99 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
100 0x31, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
82 0x05, 0x16, 0x01, 0x03, 0x6d, 0x2b, 0x1b, 0x78, 101 0x05, 0x16, 0x01, 0x03, 0x6d, 0x2b, 0x1b, 0x78,
83 0xea, 0x5e, 0xc0, 0xa4, 0x59, 0x4a, 0x98, 0x25, 102 0xea, 0x5e, 0xc0, 0xa4, 0x59, 0x4a, 0x98, 0x25,
84 0x20, 0x50, 0x54, 0x00, 0x00, 0x00, 0xb3, 0x00, 103 0x20, 0x50, 0x54, 0x00, 0x00, 0x00, 0xb3, 0x00,