diff options
author | Alex Deucher <alex@botch2.(none)> | 2007-08-28 00:42:30 -0400 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2007-08-28 00:42:30 -0400 |
commit | 673f799729824f4439dd5f681f75dd5aab50947f (patch) | |
tree | ed9123c2d6006020e725dc71fc429889e0c008ae | |
parent | ad6f7ad1b2ccae0bc0a416b9b0ca22709c9d5199 (diff) |
RADEON: Update tv attributes immediately
-rw-r--r-- | src/radeon_display.c | 2 | ||||
-rw-r--r-- | src/radeon_output.c | 12 | ||||
-rw-r--r-- | src/radeon_probe.h | 1 |
3 files changed, 11 insertions, 4 deletions
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 output, BOOL bEnable) 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 output, BOOL bEnable) 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 output) "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, Atom property, 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, Atom property, 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, Atom property, 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 output) } 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; |