All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm_edid: support CEA video modes
@ 2011-11-13  0:31 Christian Schmidt
  2011-11-13 22:16 ` alanwww1
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Christian Schmidt @ 2011-11-13  0:31 UTC (permalink / raw)
  To: dri-devel

[-- Attachment #1: Type: text/plain, Size: 1965 bytes --]

TFT/plasma televisions and projectors have become commonplace, and so
has the use of PCs to drive them. Add the video modes specified by an
EDID's CEA extension to the mode database for a connector.

Before:
[    1.158869] [drm:drm_mode_debug_printmodeline], Modeline
19:"1920x1080i" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
[    1.158875] [drm:drm_mode_debug_printmodeline], Modeline
18:"1920x1080i" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
[    1.158882] [drm:drm_mode_debug_printmodeline], Modeline
20:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5

After:
[    1.144175] [drm:drm_mode_debug_printmodeline], Modeline
22:"1920x1080" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
[    1.144179] [drm:drm_mode_debug_printmodeline], Modeline
21:"1920x1080" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
[    1.144187] [drm:drm_mode_debug_printmodeline], Modeline
30:"1920x1080" 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5
[    1.144190] [drm:drm_mode_debug_printmodeline], Modeline
29:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
[    1.144192] [drm:drm_mode_debug_printmodeline], Modeline
25:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5
[    1.144195] [drm:drm_mode_debug_printmodeline], Modeline
24:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5
[    1.144198] [drm:drm_mode_debug_printmodeline], Modeline
23:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x40 0x5
[    1.144201] [drm:drm_mode_debug_printmodeline], Modeline 27:"720x576"
50 27000 720 732 796 864 576 581 586 625 0x40 0xa
[    1.144203] [drm:drm_mode_debug_printmodeline], Modeline 26:"720x480"
60 27000 720 736 798 858 480 489 495 525 0x40 0xa
[    1.144206] [drm:drm_mode_debug_printmodeline], Modeline 28:"640x480"
60 25175 640 656 752 800 480 490 492 525 0x40 0xa


Signed-off-by: Christian Schmidt <schmidt@digadd.de>


[-- Attachment #2: drm_cea_modes.patch --]
[-- Type: text/x-patch, Size: 15139 bytes --]

diff -ur linux-3.2-rc1.orig/drivers/gpu/drm/drm_edid.c linux-3.2-rc1/drivers/gpu/drm/drm_edid.c
--- linux-3.2-rc1.orig/drivers/gpu/drm/drm_edid.c	2011-11-08 01:16:02.000000000 +0100
+++ linux-3.2-rc1/drivers/gpu/drm/drm_edid.c	2011-11-12 19:51:47.164161263 +0100
@@ -1319,6 +1319,7 @@
 
 #define HDMI_IDENTIFIER 0x000C03
 #define AUDIO_BLOCK	0x01
+#define VIDEO_BLOCK     0x02
 #define VENDOR_BLOCK    0x03
 #define SPEAKER_BLOCK	0x04
 #define EDID_BASIC_AUDIO	(1 << 6)
@@ -1349,6 +1350,47 @@
 }
 EXPORT_SYMBOL(drm_find_cea_extension);
 
+static int
+do_cea_modes (struct drm_connector *connector, u8 *db, u8 len)
+{
+	struct drm_device *dev = connector->dev;
+	u8 * mode, cea_mode;
+	int modes = 0;
+
+	for (mode = db; mode < db + len; mode++) {
+		cea_mode = (*mode & 127) - 1; /* CEA modes are numbered 1..127 */
+		if (cea_mode < drm_num_cea_modes) {
+			struct drm_display_mode *newmode;
+			newmode = drm_mode_duplicate(dev,
+						     &edid_cea_modes[cea_mode]);
+			if (newmode) {
+				drm_mode_probed_add(connector, newmode);
+				modes++;
+			}
+		}
+	}
+
+	return modes;
+}
+
+static int
+add_cea_modes(struct drm_connector *connector, struct edid *edid)
+{
+	u8 * cea = drm_find_cea_extension(edid);
+	u8 * db, dbl;
+	int modes = 0;
+
+	if (cea && cea[1] >= 3) {
+		for (db = cea + 4; db < cea + cea[2]; db += dbl + 1) {
+			dbl = db[0] & 0x1f;
+			if (((db[0] & 0xe0) >> 5) == VIDEO_BLOCK)
+				modes += do_cea_modes (connector, db+1, dbl);
+		}
+	}
+
+	return modes;
+}
+
 static void
 parse_hdmi_vsdb(struct drm_connector *connector, uint8_t *db)
 {
@@ -1722,6 +1764,7 @@
 	num_modes += add_standard_modes(connector, edid);
 	num_modes += add_established_modes(connector, edid);
 	num_modes += add_inferred_modes(connector, edid);
+	num_modes += add_cea_modes(connector, edid);
 
 	if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75))
 		edid_fixup_preferred(connector, quirks);
diff -ur linux-3.2-rc1.orig/drivers/gpu/drm/drm_edid_modes.h linux-3.2-rc1/drivers/gpu/drm/drm_edid_modes.h
--- linux-3.2-rc1.orig/drivers/gpu/drm/drm_edid_modes.h	2011-11-08 01:16:02.000000000 +0100
+++ linux-3.2-rc1/drivers/gpu/drm/drm_edid_modes.h	2011-11-12 19:46:35.942052075 +0100
@@ -378,3 +378,287 @@
 	{ 1920, 1440, 75, 0 },
 };
 static const int num_est3_modes = sizeof(est3_modes) / sizeof(est3_modes[0]);
+
+/*
+ * Probably taken from CEA-861 spec.
+ * This table is converted from xorg's hw/xfree86/modes/xf86EdidModes.c.
+ */
+static const struct drm_display_mode edid_cea_modes[] = {
+	/* 640x480@60Hz */
+	{ DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 25175, 640, 656,
+		   752, 800, 0, 480, 490, 492, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 720x480@60Hz */
+	{ DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 27000, 720, 736,
+		   798, 858, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 720x480@60Hz */
+	{ DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 27000, 720, 736,
+		   798, 858, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1280x720@60Hz */
+	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1390,
+		   1430, 1650, 0, 720, 725, 730, 750, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 1920x1080i@60Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2008,
+		   2052, 2200, 0, 1080, 1084, 1094, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1440x480i@60Hz */
+	{ DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1478,
+		   1602, 1716, 0, 480, 488, 494, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1440x480i@60Hz */
+	{ DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1478,
+		   1602, 1716, 0, 480, 488, 494, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1440x240@60Hz */
+	{ DRM_MODE("1440x240", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1478,
+		   1602, 1716, 0, 240, 244, 247, 262, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x240@60Hz */
+	{ DRM_MODE("1440x240", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1478,
+		   1602, 1716, 0, 240, 244, 247, 262, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 2880x480i@60Hz */
+	{ DRM_MODE("2880x480", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2956,
+		   3204, 3432, 0, 480, 488, 494, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 2880x480i@60Hz */
+	{ DRM_MODE("2880x480", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2956,
+		   3204, 3432, 0, 480, 488, 494, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 2880x240@60Hz */
+	{ DRM_MODE("2880x240", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2956,
+		   3204, 3432, 0, 240, 244, 247, 262, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 2880x240@60Hz */
+	{ DRM_MODE("2880x240", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2956,
+		   3204, 3432, 0, 240, 244, 247, 262, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x480@60Hz */
+	{ DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1472,
+		   1596, 1716, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x480@60Hz */
+	{ DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1472,
+		   1596, 1716, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1920x1080@60Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008,
+		   2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 720x576@50Hz */
+	{ DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 27000, 720, 732,
+		   796, 864, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 720x576@50Hz */
+	{ DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 27000, 720, 732,
+		   796, 864, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1280x720@50Hz */
+	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1720,
+		   1760, 1980, 0, 720, 725, 730, 750, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 1920x1080i@50Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2448,
+		   2492, 2640, 0, 1080, 1084, 1094, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1440x576i@50Hz */
+	{ DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1464,
+		   1590, 1728, 0, 576, 580, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1440x576i@50Hz */
+	{ DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1464,
+		   1590, 1728, 0, 576, 580, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1440x288@50Hz */
+	{ DRM_MODE("1440x288", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1464,
+		   1590, 1728, 0, 288, 290, 293, 312, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x288@50Hz */
+	{ DRM_MODE("1440x288", DRM_MODE_TYPE_DRIVER, 27000, 1440, 1464,
+		   1590, 1728, 0, 288, 290, 293, 312, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 2880x576i@50Hz */
+	{ DRM_MODE("2880x576", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2928,
+		   3180, 3456, 0, 576, 580, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 2880x576i@50Hz */
+	{ DRM_MODE("2880x576", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2928,
+		   3180, 3456, 0, 576, 580, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 2880x288@50Hz */
+	{ DRM_MODE("2880x288", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2928,
+		   3180, 3456, 0, 288, 290, 293, 312, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 2880x288@50Hz */
+	{ DRM_MODE("2880x288", DRM_MODE_TYPE_DRIVER, 54000, 2880, 2928,
+		   3180, 3456, 0, 288, 290, 293, 312, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x576@50Hz */
+	{ DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1464,
+		   1592, 1728, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x576@50Hz */
+	{ DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1464,
+		   1592, 1728, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1920x1080@50Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2448,
+		   2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 1920x1080@24Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2558,
+		   2602, 2750, 0, 1080, 1084, 1089, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 1920x1080@25Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2448,
+		   2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 1920x1080@30Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 74250, 1920, 2008,
+		   2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 2880x480@60Hz */
+	{ DRM_MODE("2880x480", DRM_MODE_TYPE_DRIVER, 108000, 2880, 2944,
+		   3192, 3432, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 2880x480@60Hz */
+	{ DRM_MODE("2880x480", DRM_MODE_TYPE_DRIVER, 108000, 2880, 2944,
+		   3192, 3432, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 2880x576@50Hz */
+	{ DRM_MODE("2880x576", DRM_MODE_TYPE_DRIVER, 108000, 2880, 2928,
+		   3184, 3456, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 2880x576@50Hz */
+	{ DRM_MODE("2880x576", DRM_MODE_TYPE_DRIVER, 108000, 2880, 2928,
+		   3184, 3456, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1920x1080i@50Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 72000, 1920, 1952,
+		   2120, 2304, 0, 1080, 1126, 1136, 1250, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1920x1080i@100Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2448,
+		   2492, 2640, 0, 1080, 1084, 1094, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1280x720@100Hz */
+	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 148500, 1280, 1720,
+		   1760, 1980, 0, 720, 725, 730, 750, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 720x576@100Hz */
+	{ DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 54000, 720, 732,
+		   796, 864, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 720x576@100Hz */
+	{ DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 54000, 720, 732,
+		   796, 864, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x576i@100Hz */
+	{ DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1464,
+		   1590, 1728, 0, 576, 580, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x576i@100Hz */
+	{ DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1464,
+		   1590, 1728, 0, 576, 580, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1920x1080i@120Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008,
+		   2052, 2200, 0, 1080, 1084, 1094, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1280x720@120Hz */
+	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 148500, 1280, 1390,
+		   1430, 1650, 0, 720, 725, 730, 750, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 720x480@120Hz */
+	{ DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 54000, 720, 736,
+		   798, 858, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 720x480@120Hz */
+	{ DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 54000, 720, 736,
+		   798, 858, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x480i@120Hz */
+	{ DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1478,
+		   1602, 1716, 0, 480, 488, 494, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1440x480i@120Hz */
+	{ DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 54000, 1440, 1478,
+		   1602, 1716, 0, 480, 488, 494, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 720x576@200Hz */
+	{ DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 108000, 720, 732,
+		   796, 864, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 720x576@200Hz */
+	{ DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 108000, 720, 732,
+		   796, 864, 0, 576, 581, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x576i@200Hz */
+	{ DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 108000, 1440, 1464,
+		   1590, 1728, 0, 576, 580, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1440x576i@200Hz */
+	{ DRM_MODE("1440x576", DRM_MODE_TYPE_DRIVER, 108000, 1440, 1464,
+		   1590, 1728, 0, 576, 580, 586, 625, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 720x480@240Hz */
+	{ DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 108000, 720, 736,
+		   798, 858, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 720x480@240Hz */
+	{ DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 108000, 720, 736,
+		   798, 858, 0, 480, 489, 495, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+	/* 1440x480i@240 */
+	{ DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 108000, 1440, 1478,
+		   1602, 1716, 0, 480, 488, 494, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1440x480i@240 */
+	{ DRM_MODE("1440x480", DRM_MODE_TYPE_DRIVER, 108000, 1440, 1478,
+		   1602, 1716, 0, 480, 488, 494, 525, 0,
+		   DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC |
+			DRM_MODE_FLAG_INTERLACE) },
+	/* 1280x720@24Hz */
+	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 59400, 1280, 3040,
+		   3080, 3300, 0, 720, 725, 730, 750, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 1280x720@25Hz */
+	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 3700,
+		   3740, 3960, 0, 720, 725, 730, 750, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 1280x720@30Hz */
+	{ DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 3040,
+		   3080, 3300, 0, 720, 725, 730, 750, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 1920x1080@120Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 297000, 1920, 2008,
+		   2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+	/* 1920x1080@100Hz */
+	{ DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 297000, 1920, 2448,
+		   2492, 2640, 0, 1080, 1084, 1094, 1125, 0,
+		   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+};
+static const int drm_num_cea_modes =
+	sizeof (edid_cea_modes) / sizeof (edid_cea_modes[0]);


[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2011-11-13  0:31 [PATCH] drm_edid: support CEA video modes Christian Schmidt
@ 2011-11-13 22:16 ` alanwww1
  2011-11-14 18:04   ` Paul Menzel
  2011-11-14 22:57 ` Adam Jackson
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: alanwww1 @ 2011-11-13 22:16 UTC (permalink / raw)
  To: Christian Schmidt; +Cc: dri-devel

This is awesome ! A LOT of HTPC fans are waiting for this! Is there a
chance that this lands in 3.2 ?

Thanks, Alan

2011/11/13 Christian Schmidt <schmidt@digadd.de>:
> TFT/plasma televisions and projectors have become commonplace, and so
> has the use of PCs to drive them. Add the video modes specified by an
> EDID's CEA extension to the mode database for a connector.
>
> Before:
> [    1.158869] [drm:drm_mode_debug_printmodeline], Modeline
> 19:"1920x1080i" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
> [    1.158875] [drm:drm_mode_debug_printmodeline], Modeline
> 18:"1920x1080i" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
> [    1.158882] [drm:drm_mode_debug_printmodeline], Modeline
> 20:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5
>
> After:
> [    1.144175] [drm:drm_mode_debug_printmodeline], Modeline
> 22:"1920x1080" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
> [    1.144179] [drm:drm_mode_debug_printmodeline], Modeline
> 21:"1920x1080" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
> [    1.144187] [drm:drm_mode_debug_printmodeline], Modeline
> 30:"1920x1080" 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5
> [    1.144190] [drm:drm_mode_debug_printmodeline], Modeline
> 29:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
> [    1.144192] [drm:drm_mode_debug_printmodeline], Modeline
> 25:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5
> [    1.144195] [drm:drm_mode_debug_printmodeline], Modeline
> 24:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5
> [    1.144198] [drm:drm_mode_debug_printmodeline], Modeline
> 23:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x40 0x5
> [    1.144201] [drm:drm_mode_debug_printmodeline], Modeline 27:"720x576"
> 50 27000 720 732 796 864 576 581 586 625 0x40 0xa
> [    1.144203] [drm:drm_mode_debug_printmodeline], Modeline 26:"720x480"
> 60 27000 720 736 798 858 480 489 495 525 0x40 0xa
> [    1.144206] [drm:drm_mode_debug_printmodeline], Modeline 28:"640x480"
> 60 25175 640 656 752 800 480 490 492 525 0x40 0xa
>
>
> Signed-off-by: Christian Schmidt <schmidt@digadd.de>
>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2011-11-13 22:16 ` alanwww1
@ 2011-11-14 18:04   ` Paul Menzel
  0 siblings, 0 replies; 14+ messages in thread
From: Paul Menzel @ 2011-11-14 18:04 UTC (permalink / raw)
  To: dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 277 bytes --]

Am Sonntag, den 13.11.2011, 23:16 +0100 schrieb alanwww1:
> This is awesome ! A LOT of HTPC fans are waiting for this! Is there a
> chance that this lands in 3.2 ?

Have you tested this? Adding a Tested-by line would surely help getting
it included.


Thanks,

Paul

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2011-11-13  0:31 [PATCH] drm_edid: support CEA video modes Christian Schmidt
  2011-11-13 22:16 ` alanwww1
@ 2011-11-14 22:57 ` Adam Jackson
  2011-11-15  0:37   ` alanwww1
  2011-11-15  9:37 ` James Cloos
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 14+ messages in thread
From: Adam Jackson @ 2011-11-14 22:57 UTC (permalink / raw)
  To: Christian Schmidt; +Cc: dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 644 bytes --]

On Sun, 2011-11-13 at 01:31 +0100, Christian Schmidt wrote:
> TFT/plasma televisions and projectors have become commonplace, and so
> has the use of PCs to drive them. Add the video modes specified by an
> EDID's CEA extension to the mode database for a connector.

Thanks for finishing this up.  The mode list was indeed mechanically
generated (pdf2text on the spec and then some python to bash it all
together).  It's probably worth noting in the comment that it's from
CEA-861-D, as I suspect subsequent revisions have added more timings (I
haven't bought it yet to check).

Reviewed-by: Adam Jackson <ajax@redhat.com>

- ajax

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2011-11-14 22:57 ` Adam Jackson
@ 2011-11-15  0:37   ` alanwww1
  0 siblings, 0 replies; 14+ messages in thread
From: alanwww1 @ 2011-11-15  0:37 UTC (permalink / raw)
  To: Adam Jackson; +Cc: Christian Schmidt, dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 9303 bytes --]

I ran a test with the CEA patch, on my Sandy Bridge system with a Samsung
HDTV hooked up with an Onkyo TX-SR-607 AV-receiver.
The patch works like charm. The so wanted missing modelines are there, both
in the kernel log and in the Xorg.log and I can now use them in any Media
Center application,

Dmesg before:

[   10.496714] [drm:drm_mode_debug_printmodeline], Modeline
18:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48
0x5
[   10.496717] [drm:drm_mode_debug_printmodeline], Modeline
20:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5
[   10.496719] [drm:drm_mode_debug_printmodeline], Modeline
19:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x40 0x5
[   10.496722] [drm:drm_mode_debug_printmodeline], Modeline
21:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa


Dmesg After:

[   10.777130] [drm:drm_mode_prune_invalid], Not using 1920x1080 mode 7
[   10.777132] [drm:drm_mode_debug_printmodeline], Modeline
26:"1920x1080" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x40
0x15
[   10.777134] [drm:drm_mode_prune_invalid], Not using 1920x1080 mode 7
[   10.777136] [drm:drm_helper_probe_single_connector_modes],
[CONNECTOR:14:HDMI-A-2] probed modes :
[   10.777138] [drm:drm_mode_debug_printmodeline], Modeline
22:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48
0x5
[   10.777140] [drm:drm_mode_debug_printmodeline], Modeline
23:"1920x1080" 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40
0x5
[   10.777143] [drm:drm_mode_debug_printmodeline], Modeline
32:"1920x1080" 30 74250 1920 2008 2052 2200 1080 1084 1089 1125 0x40
0x5
[   10.777145] [drm:drm_mode_debug_printmodeline], Modeline
31:"1920x1080" 25 74250 1920 2448 2492 2640 1080 1084 1089 1125 0x40
0x5
[   10.777147] [drm:drm_mode_debug_printmodeline], Modeline
30:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40
0x5
[   10.777149] [drm:drm_mode_debug_printmodeline], Modeline
36:"2880x576" 50 108000 2880 2928 3184 3456 576 581 586 625 0x40 0xa
[   10.777151] [drm:drm_mode_debug_printmodeline], Modeline
35:"2880x480" 60 108000 2880 2944 3192 3432 480 489 495 525 0x40 0xa
[   10.777153] [drm:drm_mode_debug_printmodeline], Modeline
25:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5
[   10.777155] [drm:drm_mode_debug_printmodeline], Modeline
24:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x40 0x5
[   10.777158] [drm:drm_mode_debug_printmodeline], Modeline
34:"1440x576" 50 54000 1440 1464 1592 1728 576 581 586 625 0x40 0xa
[   10.777160] [drm:drm_mode_debug_printmodeline], Modeline
33:"1440x480" 60 54000 1440 1472 1596 1716 480 489 495 525 0x40 0xa
[   10.777162] [drm:drm_mode_debug_printmodeline], Modeline
29:"720x576" 50 27000 720 732 796 864 576 581 586 625 0x40 0xa
[   10.777164] [drm:drm_mode_debug_printmodeline], Modeline
28:"720x480" 60 27000 720 736 798 858 480 489 495 525 0x40 0xa
[   10.777166] [drm:drm_mode_debug_printmodeline], Modeline
21:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa

Xorg before:

[    11.924] (II) intel(0): Printing probed modes for output HDMI2
[    11.924] (II) intel(0): Modeline "1920x1080"x60.0  148.50  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz)
[    11.924] (II) intel(0): Modeline "1280x720"x50.0   74.25  1280
1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz)
[    11.924] (II) intel(0): Modeline "1280x720"x60.0   74.25  1280
1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz)
[    11.924] (II) intel(0): Modeline "640x480"x60.0   25.20  640 656
752 800  480 490 492 525 -hsync -vsync (31.5 kHz)

Xorg after:

[   324.852] (II) intel(0): Printing probed modes for output HDMI2
[   324.852] (II) intel(0): Modeline "1920x1080"x60.0  148.50  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz)
[   324.852] (II) intel(0): Modeline "1920x1080"x50.0  148.50  1920
2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz)
[   324.852] (II) intel(0): Modeline "1920x1080"x30.0   74.25  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (33.8 kHz)
[   324.852] (II) intel(0): Modeline "1920x1080"x25.0   74.25  1920
2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz)
[   324.852] (II) intel(0): Modeline "1920x1080"x24.0   74.25  1920
2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz)
[   324.852] (II) intel(0): Modeline "2880x576"x50.0  108.00  2880
2928 3184 3456  576 581 586 625 -hsync -vsync (31.2 kHz)
[   324.852] (II) intel(0): Modeline "2880x480"x59.9  108.00  2880
2944 3192 3432  480 489 495 525 -hsync -vsync (31.5 kHz)
[   324.852] (II) intel(0): Modeline "1280x720"x50.0   74.25  1280
1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz)
[   324.852] (II) intel(0): Modeline "1280x720"x60.0   74.25  1280
1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz)
[   324.852] (II) intel(0): Modeline "1440x576"x50.0   54.00  1440
1464 1592 1728  576 581 586 625 -hsync -vsync (31.2 kHz)
[   324.852] (II) intel(0): Modeline "1440x480"x59.9   54.00  1440
1472 1596 1716  480 489 495 525 -hsync -vsync (31.5 kHz)
[   324.852] (II) intel(0): Modeline "720x576"x50.0   27.00  720 732
796 864  576 581 586 625 -hsync -vsync (31.2 kHz)
[   324.852] (II) intel(0): Modeline "720x480"x59.9   27.00  720 736
798 858  480 489 495 525 -hsync -vsync (31.5 kHz)
[   324.852] (II) intel(0): Modeline "640x480"x60.0   25.20  640 656
752 800  480 490 492 525 -hsync -vsync (31.5 kHz)


Full logs:

- Stock Kernel 3.2 RC1:
dmesg: http://paste.ubuntu.com/738790/
xorg.log: http://paste.ubuntu.com/738784/

- Patched with the CEA patch:
dmesg: http://paste.ubuntu.com/738786/
xorg.log: http://paste.ubuntu.com/738775/

Thanks for the great work!!!  Would be awesome if somehow this could sneak
into the final 3.2. If not, users won't be using this unti Ubuntu 12.11 !
In one year.

Just as a sidenote: There is fully Xorg issue I think. Independently from
this patch. Xorg makes some strange DDC cheked modelines, where the
modeline is correct, but it does not contain the refresh rate, It is just
zeroed out. Is it normal ?

[    13.456] (II) Quirked EDID physical size to 0x0 cm
[    13.456] (II) intel(0): EDID vendor "ONK", prod id 2147
[    13.456] (II) intel(0): Using hsync ranges from config file
[    13.456] (II) intel(0): Using vrefresh ranges from config file
[    13.456] (II) intel(0): Printing DDC gathered Modelines:
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz)
[    13.456] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1390
1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz)
[    13.456] (II) intel(0): Modeline "1280x720"x0.0   74.25  1280 1720
1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920
2008 2052 2200  1080 1084 1094 1125 interlace +hsync +vsync (33.8 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080i"x0.0   74.25  1920
2448 2492 2640  1080 1084 1094 1125 interlace +hsync +vsync (28.1 kHz)
[    13.456] (II) intel(0): Modeline "640x480"x0.0   25.18  640 656
752 800  480 490 492 525 -hsync -vsync (31.5 kHz)
[    13.456] (II) intel(0): Modeline "720x576"x0.0   27.00  720 732
796 864  576 581 586 625 -hsync -vsync (31.2 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920
2558 2602 2750  1080 1084 1089 1125 +hsync +vsync (27.0 kHz)
[    13.456] (II) intel(0): Modeline "1440x480i"x0.0   27.00  1440
1478 1602 1716  480 488 494 525 interlace -hsync -vsync (15.7 kHz)
[    13.456] (II) intel(0): Modeline "1440x576i"x0.0   27.00  1440
1464 1590 1728  576 580 586 625 interlace -hsync -vsync (15.6 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920
2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (28.1 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0   74.25  1920
2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (33.8 kHz)
[    13.456] (II) intel(0): Modeline "2880x480"x0.0  108.00  2880 2944
3192 3432  480 489 495 525 -hsync -vsync (31.5 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080"x0.0  148.50  1920
2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz)
[    13.456] (II) intel(0): Modeline "2880x576"x0.0  108.00  2880 2928
3184 3456  576 581 586 625 -hsync -vsync (31.2 kHz)
[    13.456] (II) intel(0): Modeline "1920x1080i"x0.0   72.00  1920
1952 2120 2304  1080 1126 1136 1250 interlace +hsync -vsync (31.2 kHz)



2011/11/14 Adam Jackson <ajax@redhat.com>

> On Sun, 2011-11-13 at 01:31 +0100, Christian Schmidt wrote:
> > TFT/plasma televisions and projectors have become commonplace, and so
> > has the use of PCs to drive them. Add the video modes specified by an
> > EDID's CEA extension to the mode database for a connector.
>
> Thanks for finishing this up.  The mode list was indeed mechanically
> generated (pdf2text on the spec and then some python to bash it all
> together).  It's probably worth noting in the comment that it's from
> CEA-861-D, as I suspect subsequent revisions have added more timings (I
> haven't bought it yet to check).
>
> Reviewed-by: Adam Jackson <ajax@redhat.com>
>
> - ajax
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>

[-- Attachment #1.2: Type: text/html, Size: 13767 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2011-11-13  0:31 [PATCH] drm_edid: support CEA video modes Christian Schmidt
  2011-11-13 22:16 ` alanwww1
  2011-11-14 22:57 ` Adam Jackson
@ 2011-11-15  9:37 ` James Cloos
  2011-11-20  0:11 ` alanwww1
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 14+ messages in thread
From: James Cloos @ 2011-11-15  9:37 UTC (permalink / raw)
  To: Christian Schmidt; +Cc: dri-devel

>>>>> "CS" == Christian Schmidt <schmidt@digadd.de> writes:

CS> TFT/plasma televisions and projectors have become commonplace, and so
CS> has the use of PCs to drive them. Add the video modes specified by an
CS> EDID's CEA extension to the mode database for a connector.

CS> Signed-off-by: Christian Schmidt <schmidt@digadd.de>

Tested-by: James Cloos <cloos@jhcloos.com>

Works fine here on top of Linus’ 7f80850d3f9f with a Radeon HD 4290 and
an hdmi-connected tv.

The new modes not previously seen, as reported by libdrm’s modetest are:

:; diff -U0 a/mt.out b/mt.out
--- a/mt.out	2011-11-14 17:25:21.785708725 -0500
+++ b/mt.out	2011-11-14 18:41:22.023562219 -0500
@@ -11 +11 @@
-15	14	connected	HDMI-A	820x460		17	14
+15	14	connected	HDMI-A	820x460		22	14
@@ -15 +15,2 @@
-  1920x1080i 60 1920 2008 2052 2200 1080 1084 1094 1125
+  1920x1080 60 1920 2008 2052 2200 1080 1084 1094 1125
+  1920x1080 24 1920 2558 2602 2750 1080 1084 1089 1125
@@ -19,0 +21 @@
+  1280x720 60 1280 1390 1430 1650 720 725 730 750
@@ -22,0 +25 @@
+  1440x480 60 1440 1478 1602 1716 480 488 494 525
@@ -26,0 +30 @@
+  720x480 60 720 736 798 858 480 489 495 525
@@ -29,0 +34 @@
+  640x480 60 640 656 752 800 480 490 492 525
@@ -41,2 +46,2 @@
-10	35	(0,0)	(0x0)
-   0 1920 2008 2052 2200 1080 1084 1089 1125
+10	19	(0,0)	(0x0)
+  1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125


-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 1024D/ED7DAEA6
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2011-11-13  0:31 [PATCH] drm_edid: support CEA video modes Christian Schmidt
                   ` (2 preceding siblings ...)
  2011-11-15  9:37 ` James Cloos
@ 2011-11-20  0:11 ` alanwww1
  2011-12-13 17:47 ` Jesse Barnes
  2012-02-06 17:41 ` Joakim Plate
  5 siblings, 0 replies; 14+ messages in thread
From: alanwww1 @ 2011-11-20  0:11 UTC (permalink / raw)
  To: Christian Schmidt; +Cc: dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 2434 bytes --]

Another user confirming the working of the patch from xbmc forums:

http://forum.xbmc.org/showpost.php?p=940016&postcount=31

Any news on when this will be in master ?

Thanks

2011/11/13 Christian Schmidt <schmidt@digadd.de>

> TFT/plasma televisions and projectors have become commonplace, and so
> has the use of PCs to drive them. Add the video modes specified by an
> EDID's CEA extension to the mode database for a connector.
>
> Before:
> [    1.158869] [drm:drm_mode_debug_printmodeline], Modeline
> 19:"1920x1080i" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
> [    1.158875] [drm:drm_mode_debug_printmodeline], Modeline
> 18:"1920x1080i" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
> [    1.158882] [drm:drm_mode_debug_printmodeline], Modeline
> 20:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5
>
> After:
> [    1.144175] [drm:drm_mode_debug_printmodeline], Modeline
> 22:"1920x1080" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
> [    1.144179] [drm:drm_mode_debug_printmodeline], Modeline
> 21:"1920x1080" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
> [    1.144187] [drm:drm_mode_debug_printmodeline], Modeline
> 30:"1920x1080" 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5
> [    1.144190] [drm:drm_mode_debug_printmodeline], Modeline
> 29:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
> [    1.144192] [drm:drm_mode_debug_printmodeline], Modeline
> 25:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5
> [    1.144195] [drm:drm_mode_debug_printmodeline], Modeline
> 24:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5
> [    1.144198] [drm:drm_mode_debug_printmodeline], Modeline
> 23:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x40 0x5
> [    1.144201] [drm:drm_mode_debug_printmodeline], Modeline 27:"720x576"
> 50 27000 720 732 796 864 576 581 586 625 0x40 0xa
> [    1.144203] [drm:drm_mode_debug_printmodeline], Modeline 26:"720x480"
> 60 27000 720 736 798 858 480 489 495 525 0x40 0xa
> [    1.144206] [drm:drm_mode_debug_printmodeline], Modeline 28:"640x480"
> 60 25175 640 656 752 800 480 490 492 525 0x40 0xa
>
>
> Signed-off-by: Christian Schmidt <schmidt@digadd.de>
>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
>

[-- Attachment #1.2: Type: text/html, Size: 3266 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2011-11-13  0:31 [PATCH] drm_edid: support CEA video modes Christian Schmidt
                   ` (3 preceding siblings ...)
  2011-11-20  0:11 ` alanwww1
@ 2011-12-13 17:47 ` Jesse Barnes
  2011-12-19 15:02   ` Dave Airlie
  2012-02-06 17:41 ` Joakim Plate
  5 siblings, 1 reply; 14+ messages in thread
From: Jesse Barnes @ 2011-12-13 17:47 UTC (permalink / raw)
  To: Christian Schmidt; +Cc: dri-devel


[-- Attachment #1.1: Type: text/plain, Size: 633 bytes --]

On Sun, 13 Nov 2011 01:31:35 +0100
Christian Schmidt <schmidt@digadd.de> wrote:

> TFT/plasma televisions and projectors have become commonplace, and so
> has the use of PCs to drive them. Add the video modes specified by an
> EDID's CEA extension to the mode database for a connector.

Dave, Christian has a few patches outstanding for CEA mode handling.
Getting them in makes sense to me and this patch looks like it's
structured nicely at least (I haven't checked the CEA bits against the
specs though).

Any chance we can get them included for 3.3?

Thanks,
-- 
Jesse Barnes, Intel Open Source Technology Center

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2011-12-13 17:47 ` Jesse Barnes
@ 2011-12-19 15:02   ` Dave Airlie
  0 siblings, 0 replies; 14+ messages in thread
From: Dave Airlie @ 2011-12-19 15:02 UTC (permalink / raw)
  To: Jesse Barnes; +Cc: dri-devel

On Tue, Dec 13, 2011 at 5:47 PM, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> On Sun, 13 Nov 2011 01:31:35 +0100
> Christian Schmidt <schmidt@digadd.de> wrote:
>
>> TFT/plasma televisions and projectors have become commonplace, and so
>> has the use of PCs to drive them. Add the video modes specified by an
>> EDID's CEA extension to the mode database for a connector.
>
> Dave, Christian has a few patches outstanding for CEA mode handling.
> Getting them in makes sense to me and this patch looks like it's
> structured nicely at least (I haven't checked the CEA bits against the
> specs though).
>
> Any chance we can get them included for 3.3?

I've put this patch in, but please (and reviewers too, please tell
people before acking) in future,

submit patches as per the kernel's Documentation/SubmittingPatches

This patch was attached instead of inlined, wasn't in git format (not
essential but less work for me so more patches for you).

Is there other patches outstanding if so? please resend with collected reviews.

really anything that involves me taking manual steps will generally
mean I'll just drop the patch without caring with the understanding
that whoever wants the patch merged will care more than I do.

Dave.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2011-11-13  0:31 [PATCH] drm_edid: support CEA video modes Christian Schmidt
                   ` (4 preceding siblings ...)
  2011-12-13 17:47 ` Jesse Barnes
@ 2012-02-06 17:41 ` Joakim Plate
  2012-05-18 10:11   ` Joakim Plate
  5 siblings, 1 reply; 14+ messages in thread
From: Joakim Plate @ 2012-02-06 17:41 UTC (permalink / raw)
  To: dri-devel

Christian Schmidt <schmidt <at> digadd.de> writes:

> 
> TFT/plasma televisions and projectors have become commonplace, and so
> has the use of PCs to drive them. Add the video modes specified by an
> EDID's CEA extension to the mode database for a connector.

Hi,

Looking over this i noticed that this patch adds an incomplete list of video 
modes.

For many of the short descriptors, two modes should be added. One for a integer 
refreshrate and one for the old ntsc rate (rate*1000/1001).

Would be nice to see that resolved since it's rather crucial to get right for 
video playback.

/Joakim

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2012-02-06 17:41 ` Joakim Plate
@ 2012-05-18 10:11   ` Joakim Plate
  2012-05-18 11:37     ` Andy Furniss
  0 siblings, 1 reply; 14+ messages in thread
From: Joakim Plate @ 2012-05-18 10:11 UTC (permalink / raw)
  To: dri-devel

Joakim Plate <elupus <at> ecce.se> writes:

> 
> Christian Schmidt <schmidt <at> digadd.de> writes:
> 
> > 
> > TFT/plasma televisions and projectors have become commonplace, and so
> > has the use of PCs to drive them. Add the video modes specified by an
> > EDID's CEA extension to the mode database for a connector.
> 
> /Joakim
> 

Shameless bump on the subject. Would be nice if we could
get this list complete when connecting to HDTV's.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2012-05-18 10:11   ` Joakim Plate
@ 2012-05-18 11:37     ` Andy Furniss
  2012-05-19 18:44       ` Daniel Vetter
  0 siblings, 1 reply; 14+ messages in thread
From: Andy Furniss @ 2012-05-18 11:37 UTC (permalink / raw)
  To: Joakim Plate; +Cc: dri-devel

Joakim Plate wrote:
> Joakim Plate<elupus<at>  ecce.se>  writes:
>
>>
>> Christian Schmidt<schmidt<at>  digadd.de>  writes:
>>
>>>
>>> TFT/plasma televisions and projectors have become commonplace, and so
>>> has the use of PCs to drive them. Add the video modes specified by an
>>> EDID's CEA extension to the mode database for a connector.
>>
>> /Joakim
>>
>
> Shameless bump on the subject. Would be nice if we could
> get this list complete when connecting to HDTV's.

Yea, it would be nice.

UK bluray seems to use 24/1.001 - not that it's that bad watching with 
TV@24Hz.

I do have issues with interlaced modes on my TV. I don't know how DRM 
handles interlaced, but CEA says that the number of vblank lines 
alternates per field. If that isn't happening then I guess that's why.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2012-05-18 11:37     ` Andy Furniss
@ 2012-05-19 18:44       ` Daniel Vetter
  2012-05-19 19:44         ` Andy Furniss
  0 siblings, 1 reply; 14+ messages in thread
From: Daniel Vetter @ 2012-05-19 18:44 UTC (permalink / raw)
  To: Andy Furniss; +Cc: Joakim Plate, dri-devel

On Fri, May 18, 2012 at 12:37:51PM +0100, Andy Furniss wrote:
> Joakim Plate wrote:
> >Joakim Plate<elupus<at>  ecce.se>  writes:
> >
> >>
> >>Christian Schmidt<schmidt<at>  digadd.de>  writes:
> >>
> >>>
> >>>TFT/plasma televisions and projectors have become commonplace, and so
> >>>has the use of PCs to drive them. Add the video modes specified by an
> >>>EDID's CEA extension to the mode database for a connector.
> >>
> >>/Joakim
> >>
> >
> >Shameless bump on the subject. Would be nice if we could
> >get this list complete when connecting to HDTV's.
> 
> Yea, it would be nice.
> 
> UK bluray seems to use 24/1.001 - not that it's that bad watching
> with TV@24Hz.
> 
> I do have issues with interlaced modes on my TV. I don't know how
> DRM handles interlaced, but CEA says that the number of vblank lines
> alternates per field. If that isn't happening then I guess that's
> why.

If this is on an intel gpu, you need kernel 3.4 to make interlaced work.
If that doesn't help, please file a bug on bugs.freedesktop.org.
-Daniel
-- 
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm_edid: support CEA video modes
  2012-05-19 18:44       ` Daniel Vetter
@ 2012-05-19 19:44         ` Andy Furniss
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Furniss @ 2012-05-19 19:44 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Joakim Plate, dri-devel

Daniel Vetter wrote:
> On Fri, May 18, 2012 at 12:37:51PM +0100, Andy Furniss wrote:
>> Joakim Plate wrote:
>>> Joakim Plate<elupus<at>   ecce.se>   writes:
>>>
>>>>
>>>> Christian Schmidt<schmidt<at>   digadd.de>   writes:
>>>>
>>>>>
>>>>> TFT/plasma televisions and projectors have become commonplace, and so
>>>>> has the use of PCs to drive them. Add the video modes specified by an
>>>>> EDID's CEA extension to the mode database for a connector.
>>>>
>>>> /Joakim
>>>>
>>>
>>> Shameless bump on the subject. Would be nice if we could
>>> get this list complete when connecting to HDTV's.
>>
>> Yea, it would be nice.
>>
>> UK bluray seems to use 24/1.001 - not that it's that bad watching
>> with TV@24Hz.
>>
>> I do have issues with interlaced modes on my TV. I don't know how
>> DRM handles interlaced, but CEA says that the number of vblank lines
>> alternates per field. If that isn't happening then I guess that's
>> why.
>
> If this is on an intel gpu, you need kernel 3.4 to make interlaced work.
> If that doesn't help, please file a bug on bugs.freedesktop.org.
> -Daniel

Thanks, but it's AMD I do have a bug open for it.
https://bugs.freedesktop.org/show_bug.cgi?id=35970

Which reminds me - another issue with CEA modes is that the ones that 
should be double clocked are not.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2012-05-19 19:44 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-13  0:31 [PATCH] drm_edid: support CEA video modes Christian Schmidt
2011-11-13 22:16 ` alanwww1
2011-11-14 18:04   ` Paul Menzel
2011-11-14 22:57 ` Adam Jackson
2011-11-15  0:37   ` alanwww1
2011-11-15  9:37 ` James Cloos
2011-11-20  0:11 ` alanwww1
2011-12-13 17:47 ` Jesse Barnes
2011-12-19 15:02   ` Dave Airlie
2012-02-06 17:41 ` Joakim Plate
2012-05-18 10:11   ` Joakim Plate
2012-05-18 11:37     ` Andy Furniss
2012-05-19 18:44       ` Daniel Vetter
2012-05-19 19:44         ` Andy Furniss

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.