diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-10-18 16:21:36 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2009-10-18 16:21:36 -0400 |
commit | bd89b7501f294ac645390ef144df569953c81dc4 (patch) | |
tree | 3e8b468c68711ec811dba218b36a216efec89277 /src/radeon_output.c | |
parent | 255ac8d54e3dc12e579e05edb41b40946a00eab8 (diff) |
radeon: fixup CustomEDID option
- add support for analog option to force edid to analog
mode
- fix compilation on older xservers
- updated man page
Diffstat (limited to 'src/radeon_output.c')
-rw-r--r-- | src/radeon_output.c | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/src/radeon_output.c b/src/radeon_output.c index 04290881..a2523637 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -260,26 +260,20 @@ RADEONGetHardCodedEDIDFromFile(xf86OutputPtr output) "Successfully read Custom EDID data for output %s from %s.\n", name, outputEDID); if (command != NULL) { - if (!strcmp(command, "digital")) { - struct edid_version *v = &radeon_output->custom_mon->ver; - struct disp_features *r = &radeon_output->custom_mon->features; - r->input_type = 1; - if (v->revision == 2 || v->revision == 3) { - // Nothing to do - } else if (v->revision >= 4) { - r->input_interface = 1; // Using DVI by default - r->input_bpc = 2; // 8 bits per channes by default + if (!strcmp(command, "digital")) { + radeon_output->custom_mon->rawData[0x14] |= 0x80; + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Forcing digital output for output %s.\n", name); + } else if (!strcmp(command, "analog")) { + radeon_output->custom_mon->rawData[0x14] &= ~0x80; + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Forcing analog output for output %s.\n", name); + } else { + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Unknown custom EDID command: '%s'.\n", + command); } - radeon_output->custom_mon->rawData[0x14] |= 0x80; - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Forcing digital output for output %s.\n", name); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_WARNING, - "Unknown custom EDID command: '%s'.\n", - command); - } } - } else { xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Custom EDID data for %s read from %s was invalid.\n", |