summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.(none)>2007-12-23 17:18:42 -0500
committerAlex Deucher <alex@botch2.(none)>2007-12-23 17:18:42 -0500
commitad3325f672a241449ca239c8ee3a24b6d7703d76 (patch)
tree2245584d391d3ddcb5f5c87cd8265d97324be48e
parent20eedf348a527e1e0a5450bc22d7564895034a66 (diff)
RADEON: Add "IgnoreLidStatus" option
Generally, users that start X with the laptop lid closed want to use one or more external monitors rather than the internal panel and do not want the internal panel to be on by default. Others, it seems, want to always have the internal panel on, regardless of the lid. I can't win. Enable this option to force the latter.
-rw-r--r--man/radeon.man6
-rw-r--r--src/radeon.h3
-rw-r--r--src/radeon_driver.c1
-rw-r--r--src/radeon_output.c8
4 files changed, 15 insertions, 3 deletions
diff --git a/man/radeon.man b/man/radeon.man
index 3c4df233..49755f42 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -467,6 +467,12 @@ Enable this option to force TV Out to always be detected as attached.
The default is
.B off
.TP
+.BI "Option \*qIgnoreLidStatus\*q \*q" boolean \*q
+Enable this option to ignore lid status on laptops and always detect
+LVDS as attached.
+The default is
+.B off
+.TP
.SH SEE ALSO
__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
diff --git a/src/radeon.h b/src/radeon.h
index 4a10860c..d16a234f 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -166,7 +166,8 @@ typedef enum {
OPTION_DEFAULT_TMDS_PLL,
OPTION_TVDAC_LOAD_DETECT,
OPTION_FORCE_TVOUT,
- OPTION_TVSTD
+ OPTION_TVSTD,
+ OPTION_IGNORE_LID_STATUS
} RADEONOpts;
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 4e4f23e8..6885cdce 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -219,6 +219,7 @@ static const OptionInfoRec RADEONOptions[] = {
{ OPTION_TVDAC_LOAD_DETECT, "TVDACLoadDetect", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_FORCE_TVOUT, "ForceTVOut", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_TVSTD, "TVStandard", OPTV_STRING, {0}, FALSE },
+ { OPTION_IGNORE_LID_STATUS, "IgnoreLidStatus", OPTV_BOOLEAN, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 10369d9e..814c766f 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -437,14 +437,18 @@ RADEONDetectLidStatus(ScrnInfoPtr pScrn)
static RADEONMonitorType RADEONPortCheckNonDDC(ScrnInfoPtr pScrn, xf86OutputPtr output)
{
+ RADEONInfoPtr info = RADEONPTR(output->scrn);
RADEONOutputPrivatePtr radeon_output = output->driver_private;
RADEONMonitorType MonType = MT_NONE;
if (radeon_output->type == OUTPUT_LVDS) {
+ if (xf86ReturnOptValBool(info->Options, OPTION_IGNORE_LID_STATUS, FALSE))
+ MonType = MT_LCD;
+ else
#if defined(__powerpc__)
- MonType = MT_LCD;
+ MonType = MT_LCD;
#else
- MonType = RADEONDetectLidStatus(pScrn);
+ MonType = RADEONDetectLidStatus(pScrn);
#endif
} /*else if (radeon_output->type == OUTPUT_DVI) {
if (radeon_output->TMDSType == TMDS_INT) {