diff options
author | Carsten Emde <C.Emde@osadl.org> | 2013-04-06 12:01:34 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-04-12 00:06:16 -0400 |
commit | 8091ee5c092a1e7dab2cb49d02d5f3925ece3995 (patch) | |
tree | 8d00b651751ca884c2a18a3642d4f18fbef2ea09 | |
parent | 96d672e0e5c27cf1d042eceeb3241c45ac8ff600 (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.S | 44 | ||||
-rw-r--r-- | Documentation/EDID/HOWTO.txt | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_edid_load.c | 21 |
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 | |||
18 | individually prepared or corrected EDID data set in the /lib/firmware | 18 | individually prepared or corrected EDID data set in the /lib/firmware |
19 | directory from where it is loaded via the firmware interface. The code | 19 | directory 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 |
21 | commonly used screen resolutions (1024x768, 1280x1024, 1680x1050, | 21 | commonly used screen resolutions (1024x768, 1280x1024, 1600x1200, |
22 | 1920x1080) as binary blobs, but the kernel source tree does not contain | 22 | 1680x1050, 1920x1080) as binary blobs, but the kernel source tree does |
23 | code to create these data. In order to elucidate the origin of the | 23 | not contain code to create these data. In order to elucidate the origin |
24 | built-in binary EDID blobs and to facilitate the creation of individual | 24 | of the built-in binary EDID blobs and to facilitate the creation of |
25 | data for a specific misbehaving monitor, commented sources and a | 25 | individual data for a specific misbehaving monitor, commented sources |
26 | Makefile environment are given here. | 26 | and a Makefile environment are given here. |
27 | 27 | ||
28 | To create binary EDID and C source code files from the existing data | 28 | To create binary EDID and C source code files from the existing data |
29 | material, simply type "make". | 29 | material, 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); | |||
31 | MODULE_PARM_DESC(edid_firmware, "Do not probe monitor, use specified EDID blob " | 31 | MODULE_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 |
35 | static char *generic_edid_name[GENERIC_EDIDS] = { | 35 | static 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, |