xf86-video-intel: 2 commits - src/i830_sdvo.c

Zhenyu Wang zhen at kemper.freedesktop.org
Thu Mar 12 01:56:48 PDT 2009


 src/i830_sdvo.c |   12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

New commits:
commit dc3ff0b514b609448025680778f0e95e1980a5d8
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Thu Mar 12 16:32:02 2009 +0800

    Revert "SDVO: Switch control bus only before DDC access"
    
    This reverts commit ddedf19f889da2ce6d69a3afce4665e2245682fa.
    
    After i2c STOP, control bus will return back to internal
    registers. So this brings back to origin code that we switch
    to DDC bus before START. But it's ideal to only issue DDC
    bus switch after STOP, not before every START, which might eliminate
    some complains from SDVO device, that will be another patch later.

diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index 004d5c4..254b866 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -1390,7 +1390,9 @@ i830_sdvo_ddc_i2c_start(I2CBusPtr b, int timeout)
     xf86OutputPtr	    output = b->DriverPrivate.ptr;
     I830OutputPrivatePtr    intel_output = output->driver_private;
     I2CBusPtr		    i2cbus = intel_output->pI2CBus;
+    struct i830_sdvo_priv   *dev_priv = intel_output->dev_priv;
 
+    i830_sdvo_set_control_bus_switch(output, dev_priv->ddc_bus);
     return i2cbus->I2CStart(i2cbus, timeout);
 }
 
@@ -1718,11 +1720,9 @@ i830_sdvo_get_ddc_modes(xf86OutputPtr output)
     xf86CrtcConfigPtr   xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
     DisplayModePtr modes = NULL;
     xf86OutputPtr crt;
-    I830OutputPrivatePtr intel_output = output->driver_private;
+    I830OutputPrivatePtr intel_output;
     xf86MonPtr edid_mon = NULL;
-    struct i830_sdvo_priv *dev_priv = intel_output->dev_priv;
-
-    i830_sdvo_set_control_bus_switch(output, dev_priv->ddc_bus);
+    struct i830_sdvo_priv *dev_priv;
 
     modes = i830_ddc_get_modes(output);
     if (modes != NULL)
commit c6b0135d209bdad3dbc641d0e264596eaf6f99d3
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Thu Mar 12 16:31:01 2009 +0800

    SDVO: reset privates before output setup
    
    For multifunction encoder, forget to reset these values
    will cause wrong output type in later mode setting
    operations.

diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index baba007..004d5c4 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -1544,6 +1544,10 @@ i830_sdvo_output_setup (xf86OutputPtr output, uint16_t flag)
     else
 	name_suffix = "-2";
 
+    /* clear up privates */
+    dev_priv->is_tv = FALSE;
+    intel_output->needs_tv_clock = FALSE;
+
     if (flag & (SDVO_OUTPUT_TMDS0 | SDVO_OUTPUT_TMDS1))
     {
 	if (flag & SDVO_OUTPUT_TMDS0)


More information about the xorg-commit mailing list