Skip adding unknown special modes
In light of the discussion on how to add stereo modes it was revealed that we would happily add modes with unknown and unhandled strange flags. Adam Jackson mentioned that he has plans to fix that with some upcoming work, but as a first step we can simply eradicate them whilst pondering how to support the stereoscopic vision of the future. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
35d81d97b3
commit
0fc3d020f3
|
|
@ -52,6 +52,8 @@
|
|||
|
||||
#include "intel_glamor.h"
|
||||
|
||||
#define KNOWN_MODE_FLAGS ((1<<14)-1)
|
||||
|
||||
struct intel_mode {
|
||||
int fd;
|
||||
uint32_t fb_id;
|
||||
|
|
@ -316,7 +318,7 @@ mode_from_kmode(ScrnInfoPtr scrn,
|
|||
mode->VTotal = kmode->vtotal;
|
||||
mode->VScan = kmode->vscan;
|
||||
|
||||
mode->Flags = kmode->flags; //& FLAG_BITS;
|
||||
mode->Flags = kmode->flags;
|
||||
mode->name = strdup(kmode->name);
|
||||
|
||||
if (kmode->type & DRM_MODE_TYPE_DRIVER)
|
||||
|
|
@ -324,6 +326,9 @@ mode_from_kmode(ScrnInfoPtr scrn,
|
|||
if (kmode->type & DRM_MODE_TYPE_PREFERRED)
|
||||
mode->type |= M_T_PREFERRED;
|
||||
|
||||
if (mode->status == MODE_OK && kmode->flags & ~KNOWN_MODE_FLAGS)
|
||||
mode->status = MODE_BAD; /* unknown flags => unhandled */
|
||||
|
||||
xf86SetModeCrtc (mode, scrn->adjustFlags);
|
||||
}
|
||||
|
||||
|
|
@ -347,7 +352,7 @@ mode_to_kmode(ScrnInfoPtr scrn,
|
|||
kmode->vtotal = mode->VTotal;
|
||||
kmode->vscan = mode->VScan;
|
||||
|
||||
kmode->flags = mode->Flags; //& FLAG_BITS;
|
||||
kmode->flags = mode->Flags;
|
||||
if (mode->name)
|
||||
strncpy(kmode->name, mode->name, DRM_DISPLAY_MODE_LEN);
|
||||
kmode->name[DRM_DISPLAY_MODE_LEN-1] = 0;
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@
|
|||
|
||||
#include "intel_options.h"
|
||||
|
||||
#define KNOWN_MODE_FLAGS ((1<<14)-1)
|
||||
|
||||
#if 0
|
||||
#define __DBG DBG
|
||||
#else
|
||||
|
|
@ -549,7 +551,7 @@ mode_from_kmode(ScrnInfoPtr scrn,
|
|||
mode->VTotal = kmode->vtotal;
|
||||
mode->VScan = kmode->vscan;
|
||||
|
||||
mode->Flags = kmode->flags; //& FLAG_BITS;
|
||||
mode->Flags = kmode->flags;
|
||||
mode->name = strdup(kmode->name);
|
||||
|
||||
if (kmode->type & DRM_MODE_TYPE_DRIVER)
|
||||
|
|
@ -557,6 +559,9 @@ mode_from_kmode(ScrnInfoPtr scrn,
|
|||
if (kmode->type & DRM_MODE_TYPE_PREFERRED)
|
||||
mode->type |= M_T_PREFERRED;
|
||||
|
||||
if (mode->status == MODE_OK && kmode->flags & ~KNOWN_MODE_FLAGS)
|
||||
mode->status = MODE_BAD; /* unknown flags => unhandled */
|
||||
|
||||
xf86SetModeCrtc (mode, scrn->adjustFlags);
|
||||
}
|
||||
|
||||
|
|
@ -578,7 +583,7 @@ mode_to_kmode(struct drm_mode_modeinfo *kmode, DisplayModePtr mode)
|
|||
kmode->vtotal = mode->VTotal;
|
||||
kmode->vscan = mode->VScan;
|
||||
|
||||
kmode->flags = mode->Flags; //& FLAG_BITS;
|
||||
kmode->flags = mode->Flags;
|
||||
if (mode->name)
|
||||
strncpy(kmode->name, mode->name, DRM_DISPLAY_MODE_LEN);
|
||||
kmode->name[DRM_DISPLAY_MODE_LEN-1] = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue