summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@t41p.hsd1.va.comcast.net>2007-10-25 19:18:18 -0400
committerAlex Deucher <alex@t41p.hsd1.va.comcast.net>2007-10-25 19:18:18 -0400
commit2d26e0d0bcf25e210dc7771e76638dcfafcc2356 (patch)
treeda3802d2f6e9840793bdd60f035bb0faae65b764
parenta9306b7986467c0794c91625ad2ece597b718462 (diff)
RADEON: Add driver option to force TV DAC load detection on
-rw-r--r--man/radeon.man7
-rw-r--r--src/radeon.h3
-rw-r--r--src/radeon_driver.c1
-rw-r--r--src/radeon_output.c4
4 files changed, 13 insertions, 2 deletions
diff --git a/man/radeon.man b/man/radeon.man
index 35dd701..48d7cb2 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -383,6 +383,13 @@ case. This is only useful for LVDS panels (laptop internal panels).
The default is
.B on.
.TP
+.BI "Option \*TVDACLoadDetect\*q \*q" boolean \*q
+Enable load detection on the TV DAC. The TV DAC is used to drive both
+TV-OUT and analog monitors. Load detection is often unreliable in the
+TV DAC so it is disabled by default.
+The default is
+.B off.
+.TP
.BI "Option \*qDRI\*q \*q" boolean \*q
Enable DRI support. This option allows you to enable to disable the DRI.
The default is
diff --git a/src/radeon.h b/src/radeon.h
index 7f9ff76..532f04c 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -157,7 +157,8 @@ typedef enum {
#if defined(__powerpc__)
OPTION_MAC_MODEL,
#endif
- OPTION_DEFAULT_TMDS_PLL
+ OPTION_DEFAULT_TMDS_PLL,
+ OPTION_TVDAC_LOAD_DETECT
} RADEONOpts;
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 8ebdd96..a243c9f 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -190,6 +190,7 @@ static const OptionInfoRec RADEONOptions[] = {
#if defined(__powerpc__)
{ OPTION_MAC_MODEL, "MacModel", OPTV_STRING, {0}, FALSE },
#endif
+ { OPTION_TVDAC_LOAD_DETECT, "TVDACLoadDetect", OPTV_BOOLEAN, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 214167f..39cbdb9 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -1771,13 +1771,15 @@ radeon_create_resources(xf86OutputPtr output)
if (err != 0) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"RRConfigureOutputProperty error, %d\n", err);
- }
+ }
if (radeon_output->DACType == DAC_PRIMARY)
data = 1; /* primary dac, only drives vga */
/*else if (radeon_output->DACType == DAC_TVDAC &&
info->tvdac_use_count < 2)
data = 1;*/ /* only one output with tvdac */
+ else if (xf86ReturnOptValBool(info->Options, OPTION_TVDAC_LOAD_DETECT, FALSE))
+ data = 1; /* user forces on tv dac load detection */
else
data = 0; /* shared tvdac between vga/dvi/tv */