EDID 1.4: Alternate color encodings for digital inputs.

Section 3.6.4, Table 3.14: Feature support.
This commit is contained in:
Adam Jackson 2007-12-28 16:28:44 -05:00
parent f1f43caf7e
commit 322d0103ae
2 changed files with 27 additions and 14 deletions

View File

@ -326,11 +326,15 @@
#define DPMS_SUSPEND(x) (x & 0x02) #define DPMS_SUSPEND(x) (x & 0x02)
#define DPMS_OFF(x) (x & 0x01) #define DPMS_OFF(x) (x & 0x01)
/* display type */ /* display type, analog */
#define DISP_MONO 0 #define DISP_MONO 0
#define DISP_RGB 1 #define DISP_RGB 1
#define DISP_MULTCOLOR 2 #define DISP_MULTCOLOR 2
/* display color encodings, digital */
#define DISP_YCRCB444 0x01
#define DISP_YCRCB422 0x02
/* Msc stuff EDID Ver > 1.1 */ /* Msc stuff EDID Ver > 1.1 */
#define STD_COLOR_SPACE(x) (x & 0x4) #define STD_COLOR_SPACE(x) (x & 0x4)
#define PREFERRED_TIMING_MODE(x) (x & 0x2) #define PREFERRED_TIMING_MODE(x) (x & 0x2)

View File

@ -128,20 +128,29 @@ print_dpms_features(int scrnIndex, struct disp_features *c,
if (DPMS_OFF(c->dpms)) xf86ErrorF(" Off"); if (DPMS_OFF(c->dpms)) xf86ErrorF(" Off");
} else } else
xf86DrvMsg(scrnIndex,X_INFO,"No DPMS capabilities specified"); xf86DrvMsg(scrnIndex,X_INFO,"No DPMS capabilities specified");
switch (c->display_type){ if (!c->input_type) { /* analog */
case DISP_MONO: switch (c->display_type){
xf86ErrorF("; Monochorome/GrayScale Display\n"); case DISP_MONO:
break; xf86ErrorF("; Monochorome/GrayScale Display\n");
case DISP_RGB: break;
xf86ErrorF("; RGB/Color Display\n"); case DISP_RGB:
break; xf86ErrorF("; RGB/Color Display\n");
case DISP_MULTCOLOR: break;
xf86ErrorF("; Non RGB Multicolor Display\n"); case DISP_MULTCOLOR:
break; xf86ErrorF("; Non RGB Multicolor Display\n");
default: break;
xf86ErrorF("\n"); default:
break; xf86ErrorF("\n");
break;
}
} else {
int enc = c->display_type;
xf86DrvMsg(scrnIndex, X_INFO, "\nSupported color encodings: "
"RGB 4:4:4 %s%s\n",
enc & DISP_YCRCB444 ? "YCrCb 4:4:4 " : "",
enc & DISP_YCRCB422 ? "YCrCb 4:2:2" : "");
} }
if (STD_COLOR_SPACE(c->msc)) if (STD_COLOR_SPACE(c->msc))
xf86DrvMsg(scrnIndex,X_INFO, xf86DrvMsg(scrnIndex,X_INFO,
"Default color space is primary color space\n"); "Default color space is primary color space\n");