st/xorg: Pass mode types from the kernel to X
[mesa.git] / src / gallium / state_trackers / xorg / xorg_output.c
index 60eef9307d7411dd914bfd075197587fe2742beb..251f331ea7ad5aa4b7983bc099f650218fad0e90 100644 (file)
@@ -110,7 +110,6 @@ output_get_modes(xf86OutputPtr output)
            mode = xcalloc(1, sizeof(DisplayModeRec));
            if (!mode)
                continue;
-           mode->type = 0;
            mode->Clock = drm_mode->clock;
            mode->HDisplay = drm_mode->hdisplay;
            mode->HSyncStart = drm_mode->hsync_start;
@@ -125,6 +124,11 @@ output_get_modes(xf86OutputPtr output)
            mode->VScan = drm_mode->vscan;
            mode->VRefresh = xf86ModeVRefresh(mode);
            mode->Private = (void *)drm_mode;
+           mode->type = 0;
+           if (drm_mode->type & DRM_MODE_TYPE_PREFERRED)
+               mode->type |= M_T_PREFERRED;
+           if (drm_mode->type & DRM_MODE_TYPE_DRIVER)
+               mode->type |= M_T_DRIVER;
            xf86SetModeDefaultName(mode);
            modes = xf86ModesAdd(modes, mode);
            xf86PrintModeline(0, mode);