summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.(none)>2008-01-19 13:57:50 -0500
committerAlex Deucher <alex@botch2.(none)>2008-01-19 13:57:50 -0500
commit9a0947c812d0d38d1bca6a91140ac210831a6cb4 (patch)
tree27f0ba21d100238729d5245ff420a40085220318 /src
parent7238258c12def8ef273e5362f716d165f720c5a5 (diff)
ATOM: Use LVDS edid from bios if available
Diffstat (limited to 'src')
-rw-r--r--src/radeon_modes.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/radeon_modes.c b/src/radeon_modes.c
index 099a5e90..2c723957 100644
--- a/src/radeon_modes.c
+++ b/src/radeon_modes.c
@@ -285,10 +285,22 @@ RADEONProbeOutputModes(xf86OutputPtr output)
if (output->MonInfo)
modes = xf86OutputGetEDIDModes (output);
if (modes == NULL) {
- if (radeon_output->type == OUTPUT_LVDS)
- modes = RADEONFPNativeMode(output);
- /* add the screen modes */
- RADEONAddScreenModes(output, &modes);
+ if ((radeon_output->type == OUTPUT_LVDS) && info->IsAtomBios) {
+ atomBiosResult = RHDAtomBiosFunc(pScrn->scrnIndex,
+ info->atomBIOS,
+ ATOMBIOS_GET_PANEL_EDID, &atomBiosArg);
+ if (atomBiosResult == ATOM_SUCCESS) {
+ output->MonInfo = xf86InterpretEDID(pScrn->scrnIndex,
+ atomBiosArg.EDIDBlock);
+ modes = xf86OutputGetEDIDModes(output);
+ }
+ }
+ if (modes == NULL) {
+ if (radeon_output->type == OUTPUT_LVDS)
+ modes = RADEONFPNativeMode(output);
+ /* add the screen modes */
+ RADEONAddScreenModes(output, &modes);
+ }
}
}
}