diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2008-06-29 21:26:57 -0700 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2008-06-30 10:36:16 -0700 |
commit | 91d8778176f1db54c8222a95315610a043198648 (patch) | |
tree | 980f9052c04c037e861bd449c062301d8f5c87de /src/g80_sor.c | |
parent | db768cf105956fbea39383a2214227782bf827b0 (diff) |
G80: Handle extended I2C ports and LVDS panels with DDC-based EDIDs.
Diffstat (limited to 'src/g80_sor.c')
-rw-r--r-- | src/g80_sor.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/g80_sor.c b/src/g80_sor.c index 202e838..c1ef42d 100644 --- a/src/g80_sor.c +++ b/src/g80_sor.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007 NVIDIA, Corporation + * Copyright (c) 2007-2008 NVIDIA, Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -143,7 +143,15 @@ G80SorDetect(xf86OutputPtr output) static xf86OutputStatus G80SorLVDSDetect(xf86OutputPtr output) { - /* Assume LVDS is always connected */ + G80OutputPrivPtr pPriv = output->driver_private; + + if(pPriv->i2c) { + /* If LVDS has an I2C port, use the normal probe routine to get the + * EDID, if possible. */ + G80SorDetect(output); + } + + /* Ignore G80SorDetect and assume LVDS is always connected */ return XF86OutputStatusConnected; } @@ -242,6 +250,13 @@ static DisplayModePtr G80SorGetLVDSModes(xf86OutputPtr output) { G80OutputPrivPtr pPriv = output->driver_private; + + /* If an EDID was read during detection, use the modes from that. */ + DisplayModePtr modes = G80OutputGetDDCModes(output); + if(modes) + return modes; + + /* Otherwise, feed in the mode we read during initialization. */ return xf86DuplicateMode(pPriv->nativeMode); } |