diff options
author | Alex Deucher <alex@t41p.hsd1.va.comcast.net> | 2007-10-25 20:56:11 -0400 |
---|---|---|
committer | Alex Deucher <alex@t41p.hsd1.va.comcast.net> | 2007-10-25 20:56:11 -0400 |
commit | 70bbc0cfe699588f8ae4123efca0e1baffc91000 (patch) | |
tree | c31fafcc96040da729fd4264a9c609ef89b40cd9 /src/radeon_modes.c | |
parent | 1a4f590c2ac071f0c348f38e9f26fa6093722453 (diff) |
RADEON: clean up mode handling and improve reliability of DDC
- Reduce the number of times we do DDC and don't
skip the magical GPIO dance when doing DDC.
- If no DDC modes are found, add the screen modes
Diffstat (limited to 'src/radeon_modes.c')
-rw-r--r-- | src/radeon_modes.c | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/src/radeon_modes.c b/src/radeon_modes.c index 45e5169..3c4badd 100644 --- a/src/radeon_modes.c +++ b/src/radeon_modes.c @@ -95,7 +95,6 @@ static DisplayModePtr RADEONTVModes(xf86OutputPtr output) static DisplayModePtr RADEONFPNativeMode(xf86OutputPtr output) { ScrnInfoPtr pScrn = output->scrn; - RADEONInfoPtr info = RADEONPTR(pScrn); RADEONOutputPrivatePtr radeon_output = output->driver_private; DisplayModePtr new = NULL; char stmp[32]; @@ -210,39 +209,22 @@ DisplayModePtr RADEONProbeOutputModes(xf86OutputPtr output) { RADEONOutputPrivatePtr radeon_output = output->driver_private; - xf86MonPtr edid_mon; DisplayModePtr modes = NULL; ErrorF("in RADEONProbeOutputModes\n"); if (output->status == XF86OutputStatusConnected) { - if (radeon_output->type == OUTPUT_DVI || radeon_output->type == OUTPUT_VGA) { - if (output->MonInfo) { - edid_mon = xf86OutputGetEDID (output, radeon_output->pI2CBus); - xf86OutputSetEDID (output, edid_mon); - - modes = xf86OutputGetEDIDModes (output); - return modes; - } - } if (radeon_output->type == OUTPUT_STV || radeon_output->type == OUTPUT_CTV) { modes = RADEONTVModes(output); - return modes; - } - if (radeon_output->type == OUTPUT_LVDS) { - /* okay we got DDC info */ - if (output->MonInfo) { - edid_mon = xf86OutputGetEDID (output, radeon_output->pI2CBus); - xf86OutputSetEDID (output, edid_mon); - + } else { + if (output->MonInfo) modes = xf86OutputGetEDIDModes (output); - } if (modes == NULL) { - modes = RADEONFPNativeMode(output); + if (radeon_output->type == OUTPUT_LVDS) + modes = RADEONFPNativeMode(output); /* add the screen modes */ RADEONAddScreenModes(output, &modes); } - return modes; } } |