xf86-video-ati: Branch 'master'

Alex Deucher agd5f at kemper.freedesktop.org
Mon Aug 27 21:42:02 PDT 2007


 src/radeon_display.c |    2 ++
 src/radeon_output.c  |   12 ++++++++----
 src/radeon_probe.h   |    1 +
 3 files changed, 11 insertions(+), 4 deletions(-)

New commits:
diff-tree 673f799729824f4439dd5f681f75dd5aab50947f (from ad6f7ad1b2ccae0bc0a416b9b0ca22709c9d5199)
Author: Alex Deucher <alex at botch2.(none)>
Date:   Tue Aug 28 00:42:30 2007 -0400

    RADEON: Update tv attributes immediately

diff --git a/src/radeon_display.c b/src/radeon_display.c
index ed45d79..fa80e10 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -373,6 +373,7 @@ void RADEONEnableDisplay(xf86OutputPtr o
 	    tmp |= RADEON_TV_ON;
 	    OUTREG(RADEON_TV_MASTER_CNTL, tmp);
             tv_dac_change = 2;
+	    radeon_output->tv_on = TRUE;
 	}
     } else {
 	ErrorF("disable montype: %d\n", radeon_output->MonType);
@@ -431,6 +432,7 @@ void RADEONEnableDisplay(xf86OutputPtr o
 	    tmp &= ~RADEON_TV_ON;
 	    OUTREG(RADEON_TV_MASTER_CNTL, tmp);
             tv_dac_change = 2;
+	    radeon_output->tv_on = FALSE;
 	}
     }
 
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 3003ead..4df2597 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -1695,7 +1695,7 @@ radeon_create_resources(xf86OutputPtr ou
 		       "RRConfigureOutputProperty error, %d\n", err);
 	}
 	/* Set the current value of the property */
-	s = "fill";
+	s = "full";
 	err = RRChangeOutputProperty(output->randr_output, rmx_atom,
 				     XA_STRING, 8, PropModeReplace, strlen(s), (pointer)s,
 				     FALSE, FALSE);
@@ -1935,7 +1935,8 @@ radeon_set_property(xf86OutputPtr output
 	    return FALSE;
 
 	radeon_output->hSize = val;
-	/*RADEONUpdateHVPosition(output, NULL);*/
+	if (radeon_output->tv_on)
+	    RADEONUpdateHVPosition(output, &output->crtc->mode);
 	return TRUE;
     } else if (property == tv_hpos_atom) {
 	if (value->type != XA_INTEGER ||
@@ -1949,7 +1950,8 @@ radeon_set_property(xf86OutputPtr output
 	    return FALSE;
 
 	radeon_output->hPos = val;
-	/*RADEONUpdateHVPosition(output, NULL);*/
+	if (radeon_output->tv_on)
+	    RADEONUpdateHVPosition(output, &output->crtc->mode);
 	return TRUE;
     } else if (property == tv_vpos_atom) {
 	if (value->type != XA_INTEGER ||
@@ -1963,7 +1965,8 @@ radeon_set_property(xf86OutputPtr output
 	    return FALSE;
 
 	radeon_output->vPos = val;
-	/*RADEONUpdateHVPosition(output, NULL);*/
+	if (radeon_output->tv_on)
+	    RADEONUpdateHVPosition(output, &output->crtc->mode);
 	return TRUE;
     } else if (property == tv_std_atom) {
 	const char *s;
@@ -2471,6 +2474,7 @@ void RADEONInitConnector(xf86OutputPtr o
     }
 
     if (radeon_output->DACType == DAC_TVDAC) {
+	radeon_output->tv_on = FALSE;
 	RADEONGetTVDacAdjInfo(output);
     }
 
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
index 947bf88..b6ef59d 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
@@ -211,6 +211,7 @@ typedef struct _RADEONOutputPrivateRec {
     int               hSize;
     float             TVRefClk;
     int               SupportedTVStds;
+    Bool              tv_on;
     int               load_detection;
 } RADEONOutputPrivateRec, *RADEONOutputPrivatePtr;
 


More information about the xorg-commit mailing list