diff options
author | Alex Deucher <alex@botch2.(none)> | 2007-08-28 23:47:19 -0400 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2007-08-28 23:47:19 -0400 |
commit | 61c1fdaa8553581944f78a11e6f9aa76163a468a (patch) | |
tree | a451550f63b1240a77a227e730c536b19480d6ad | |
parent | 0d9087bc60bb95c770b899cfed29699c02bdac49 (diff) |
RADEON: add option to force tmds pll to default table
Also rework the tmds pll output attribute handling a bit
-rw-r--r-- | src/radeon.h | 3 | ||||
-rw-r--r-- | src/radeon_driver.c | 1 | ||||
-rw-r--r-- | src/radeon_output.c | 18 | ||||
-rw-r--r-- | src/radeon_probe.h | 7 |
4 files changed, 10 insertions, 19 deletions
diff --git a/src/radeon.h b/src/radeon.h index fa2bccd..b7a69bd 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -152,7 +152,8 @@ typedef enum { OPTION_CONSTANTDPI, OPTION_CONNECTORTABLE, OPTION_DRI, - OPTION_DEFAULT_CONNECTOR_TABLE + OPTION_DEFAULT_CONNECTOR_TABLE, + OPTION_DEFAULT_TMDS_PLL } RADEONOpts; diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 158e1e4..fc0f40b 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -187,6 +187,7 @@ static const OptionInfoRec RADEONOptions[] = { { OPTION_DRI, "DRI", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_CONNECTORTABLE, "ConnectorTable", OPTV_STRING, {0}, FALSE }, { OPTION_DEFAULT_CONNECTOR_TABLE, "DefaultConnectorTable", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_DEFAULT_TMDS_PLL, "DefaultTMDSPLL", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; diff --git a/src/radeon_output.c b/src/radeon_output.c index c9b2ec7..168eab4 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -1018,15 +1018,6 @@ radeon_mode_set(xf86OutputPtr output, DisplayModePtr mode, xf86CrtcPtr crtc = output->crtc; RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; - if (radeon_output->type == OUTPUT_DVI && - radeon_output->TMDSType == TMDS_INT) { - if (radeon_output->tmds_pll_table == TMDS_PLL_BIOS) { - if (!RADEONGetTMDSInfoFromBIOS(output)) - RADEONGetTMDSInfoFromTable(output); - } else - RADEONGetTMDSInfoFromTable(output); - } - RADEONInitOutputRegisters(pScrn, &info->ModeReg, adjusted_mode, output, radeon_crtc->crtc_id); if (radeon_crtc->crtc_id == 0) @@ -1672,6 +1663,10 @@ radeon_create_resources(xf86OutputPtr output) #else s = "bios"; #endif + if (xf86ReturnOptValBool(info->Options, OPTION_DEFAULT_TMDS_PLL, FALSE)) { + s = "driver"; + } + err = RRChangeOutputProperty(output->randr_output, tmds_pll_atom, XA_STRING, 8, PropModeReplace, strlen(s), (pointer)s, FALSE, FALSE); @@ -1900,10 +1895,11 @@ radeon_set_property(xf86OutputPtr output, Atom property, return FALSE; s = (char*)value->data; if (value->size == strlen("bios") && !strncmp("bios", s, strlen("bios"))) { - radeon_output->tmds_pll_table = TMDS_PLL_BIOS; + if (!RADEONGetTMDSInfoFromBIOS(output)) + RADEONGetTMDSInfoFromTable(output); return TRUE; } else if (value->size == strlen("driver") && !strncmp("driver", s, strlen("driver"))) { - radeon_output->tmds_pll_table = TMDS_PLL_DRIVER; + RADEONGetTMDSInfoFromTable(output); return TRUE; } return FALSE; diff --git a/src/radeon_probe.h b/src/radeon_probe.h index b6ef59d..bc6f0b9 100644 --- a/src/radeon_probe.h +++ b/src/radeon_probe.h @@ -122,12 +122,6 @@ typedef enum DVI_ANALOG } RADEONDviType; -typedef enum -{ - TMDS_PLL_BIOS, - TMDS_PLL_DRIVER -} RADEONTMDSPllType; - typedef struct { CARD32 freq; CARD32 value; @@ -202,7 +196,6 @@ typedef struct _RADEONOutputPrivateRec { int PanelPwrDly; int DotClock; RADEONTMDSPll tmds_pll[4]; - RADEONTMDSPllType tmds_pll_table; /* TV out */ TVStd default_tvStd; TVStd tvStd; |