summaryrefslogtreecommitdiff
path: root/src/radeon_modes.c
diff options
context:
space:
mode:
authorAlex Deucher <alex@t41p.hsd1.va.comcast.net>2007-10-25 20:56:11 -0400
committerAlex Deucher <alex@t41p.hsd1.va.comcast.net>2007-10-25 20:56:11 -0400
commit70bbc0cfe699588f8ae4123efca0e1baffc91000 (patch)
treec31fafcc96040da729fd4264a9c609ef89b40cd9 /src/radeon_modes.c
parent1a4f590c2ac071f0c348f38e9f26fa6093722453 (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.c26
1 files changed, 4 insertions, 22 deletions
diff --git a/src/radeon_modes.c b/src/radeon_modes.c
index 45e51694..3c4badd1 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;
}
}