diff options
author | Alex Deucher <alex@botch2.(none)> | 2008-01-05 17:19:06 -0500 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2008-01-05 17:19:06 -0500 |
commit | d972cc9237eb90b49b11f8d2bdc5b61f628911dc (patch) | |
tree | b6147a0f37350d1c66ff5129ccb9838506b21b7e /src/radeon_output.c | |
parent | 45656b9d5a426053da2a094de39c2690c0c6f799 (diff) |
RADEON: Fix TVStandard option
Diffstat (limited to 'src/radeon_output.c')
-rw-r--r-- | src/radeon_output.c | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/src/radeon_output.c b/src/radeon_output.c index d2c6e2b7..b9c81652 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -951,8 +951,9 @@ radeon_create_resources(xf86OutputPtr output) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "RRConfigureOutputProperty error, %d\n", err); } + /* Set the current value of the property */ - switch (radeon_output->default_tvStd) { + switch (radeon_output->tvStd) { case TV_STD_PAL: s = "pal"; break; @@ -974,25 +975,6 @@ radeon_create_resources(xf86OutputPtr output) break; } - optstr = (char *)xf86GetOptValString(info->Options, OPTION_TVSTD); - if (optstr) { - if (!strncmp("ntsc", optstr, strlen("ntsc"))) - radeon_output->tvStd = TV_STD_NTSC; - else if (!strncmp("pal", optstr, strlen("pal"))) - radeon_output->tvStd = TV_STD_PAL; - else if (!strncmp("pal-m", optstr, strlen("pal-m"))) - radeon_output->tvStd = TV_STD_PAL_M; - else if (!strncmp("pal-60", optstr, strlen("pal-60"))) - radeon_output->tvStd = TV_STD_PAL_60; - else if (!strncmp("ntsc-j", optstr, strlen("ntsc-j"))) - radeon_output->tvStd = TV_STD_NTSC_J; - else if (!strncmp("scart-pal", optstr, strlen("scart-pal"))) - radeon_output->tvStd = TV_STD_SCART_PAL; - else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Invalid TV Standard: %s\n", optstr); - } - } - err = RRChangeOutputProperty(output->randr_output, tv_std_atom, XA_STRING, 8, PropModeReplace, strlen(s), (pointer)s, FALSE, FALSE); @@ -1662,19 +1644,41 @@ RADEONGetTMDSInfo(xf86OutputPtr output) static void RADEONGetTVInfo(xf86OutputPtr output) { + ScrnInfoPtr pScrn = output->scrn; + RADEONInfoPtr info = RADEONPTR(pScrn); RADEONOutputPrivatePtr radeon_output = output->driver_private; + char *optstr; radeon_output->hPos = 0; radeon_output->vPos = 0; radeon_output->hSize = 0; - if (RADEONGetTVInfoFromBIOS(output)) return; + if (!RADEONGetTVInfoFromBIOS(output)) { + /* set some reasonable defaults */ + radeon_output->default_tvStd = TV_STD_NTSC; + radeon_output->tvStd = TV_STD_NTSC; + radeon_output->TVRefClk = 27.000000000; + radeon_output->SupportedTVStds = TV_STD_NTSC | TV_STD_PAL; + } - /* set some reasonable defaults */ - radeon_output->default_tvStd = TV_STD_NTSC; - radeon_output->tvStd = TV_STD_NTSC; - radeon_output->TVRefClk = 27.000000000; - radeon_output->SupportedTVStds = TV_STD_NTSC | TV_STD_PAL; + optstr = (char *)xf86GetOptValString(info->Options, OPTION_TVSTD); + if (optstr) { + if (!strncmp("ntsc", optstr, strlen("ntsc"))) + radeon_output->tvStd = TV_STD_NTSC; + else if (!strncmp("pal", optstr, strlen("pal"))) + radeon_output->tvStd = TV_STD_PAL; + else if (!strncmp("pal-m", optstr, strlen("pal-m"))) + radeon_output->tvStd = TV_STD_PAL_M; + else if (!strncmp("pal-60", optstr, strlen("pal-60"))) + radeon_output->tvStd = TV_STD_PAL_60; + else if (!strncmp("ntsc-j", optstr, strlen("ntsc-j"))) + radeon_output->tvStd = TV_STD_NTSC_J; + else if (!strncmp("scart-pal", optstr, strlen("scart-pal"))) + radeon_output->tvStd = TV_STD_SCART_PAL; + else { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Invalid TV Standard: %s\n", optstr); + } + } } |