diff options
author | Hong Liu <hong.liu@intel.com> | 2008-02-05 08:58:44 +0800 |
---|---|---|
committer | Zhenyu Wang <zhenyu.z.wang@intel.com> | 2008-02-05 08:58:44 +0800 |
commit | 11de831cb706025c003e98fef6d666d273192bcd (patch) | |
tree | 68e5e56ab49059ad567e75c071d64ce2da227436 | |
parent | 95327571134d8ebb9d936d80b70c2f642393aa9f (diff) |
Bug 10584: Mac Mini EDID data assigned to TMDS output
EDID data for TMDS output got from crt should be applied
to TMDS output on mac mini.
-rw-r--r-- | src/i830_sdvo.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c index 4b049946..c7cbfac2 100644 --- a/src/i830_sdvo.c +++ b/src/i830_sdvo.c @@ -1100,8 +1100,10 @@ i830_sdvo_get_modes(xf86OutputPtr output) { ScrnInfoPtr pScrn = output->scrn; xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); - DisplayModePtr modes; + DisplayModePtr modes = NULL; xf86OutputPtr crt; + I830OutputPrivatePtr intel_output; + xf86MonPtr edid_mon = NULL; modes = i830_ddc_get_modes(output); if (modes != NULL) @@ -1113,11 +1115,17 @@ i830_sdvo_get_modes(xf86OutputPtr output) * analog when we fail at finding it the right way. */ crt = xf86_config->output[0]; - if (crt->funcs->detect(crt) == XF86OutputStatusDisconnected) { - return crt->funcs->get_modes(crt); + intel_output = crt->driver_private; + if (intel_output->type == I830_OUTPUT_ANALOG && + crt->funcs->detect(crt) == XF86OutputStatusDisconnected) { + edid_mon = xf86OutputGetEDID(crt, intel_output->pDDCBus); + } + if (edid_mon) { + xf86OutputSetEDID(output, edid_mon); + modes = xf86OutputGetEDIDModes(output); } - return NULL; + return modes; } static void |