Subject: linux-next: manual merge of the drm tree with Linus' tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 20 Aug 2009 15:07:40 +1000

Hi Dave,

Today's linux-next merge of the drm tree got a conflict in
drivers/gpu/drm/drm_edid.c between commit
ebb177d2afb8532a8a316489aed545ed0c170802 ("drm/edid: fixup detailed
timings like the X server.") from Linus' tree and commit
5c61259e6c7290082108e93815f7f72f27da14f4 ("drm/mode: get the modeline for
standard timing in EDID by using CVT/GTF") from the drm tree.

I fixed it up (see below) and can carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    [email-masked]

diff --cc drivers/gpu/drm/drm_edid.c
index 7f2728b,bbcb2e2..0000000
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@@ -502,40 -547,12 +547,41 @@@ static int add_detailed_info(struct drm
  		struct detailed_non_pixel *data = &timing->data.other_data;
  		struct drm_display_mode *newmode;
  
 -		/* EDID up to and including 1.2 may put monitor info here */
 -		if (edid->version == 1 && edid->revision < 3)
 -			continue;
 -
 -		/* Detailed mode timing */
 -		if (timing->pixel_clock) {
 +		/* X server check is version 1.1 or higher */
 +		if (edid->version == 1 && edid->revision >= 1 &&
 +		    !timing->pixel_clock) {
 +			/* Other timing or info */
 +			switch (data->type) {
 +			case EDID_DETAIL_MONITOR_SERIAL:
 +				break;
 +			case EDID_DETAIL_MONITOR_STRING:
 +				break;
 +			case EDID_DETAIL_MONITOR_RANGE:
 +				/* Get monitor range data */
 +				break;
 +			case EDID_DETAIL_MONITOR_NAME:
 +				break;
 +			case EDID_DETAIL_MONITOR_CPDATA:
 +				break;
 +			case EDID_DETAIL_STD_MODES:
 +				/* Five modes per detailed section */
 +				for (j = 0; j < 5; i++) {
 +					struct std_timing *std;
 +					struct drm_display_mode *newmode;
 +
 +					std = &data->data.timings[j];
- 					newmode = drm_mode_std(dev, std);
++					newmode = drm_mode_std(dev, std,
++							timing_level);
 +					if (newmode) {
 +						drm_mode_probed_add(connector, newmode);
 +						modes++;
 +					}
 +				}
 +				break;
 +			default:
 +				break;
 +			}
 +		} else {
  			newmode = drm_mode_detailed(dev, edid, timing, quirks);
  			if (!newmode)
  				continue;