Update the height/width again after getting the mode --- src/drmmode_display.c | 8 ++++++++ 1 file changed, 8 insertions(+) Index: xf86_video_intel/src/drmmode_display.c =================================================================== --- xf86_video_intel.orig/src/drmmode_display.c 2009-10-14 13:44:54.000000000 +0800 +++ xf86_video_intel/src/drmmode_display.c 2009-10-16 15:38:34.000000000 +0800 @@ -783,7 +783,14 @@ output->MonInfo = edid_mon; return 0; } +static void drmmode_update_output(xf86OutputPtr output) +{ + drmmode_output_private_ptr drmmode_output = output->driver_private; + drmModeConnectorPtr koutput = drmmode_output->mode_output; + output->mm_width = koutput->mmWidth; + output->mm_height = koutput->mmHeight; +} static DisplayModePtr drmmode_output_get_modes(xf86OutputPtr output) { @@ -824,6 +831,7 @@ xf86InterpretEDID(output->scrn->scrnIndex, NULL)); + drmmode_update_output(output); /* modes should already be available */ for (i = 0; i < koutput->count_modes; i++) { Mode = xnfalloc(sizeof(DisplayModeRec));