xf86-video-intel: man/intel.man src/i830_driver.c src/i830.h
Zhenyu Wang
zhen at kemper.freedesktop.org
Sat Sep 27 19:16:40 PDT 2008
man/intel.man | 6 ++++++
src/i830.h | 4 ++++
src/i830_driver.c | 12 ++++++++++--
3 files changed, 20 insertions(+), 2 deletions(-)
New commits:
commit 11d304e99c0e11c28901ec28115d9c8b81a2b9cc
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date: Sun Sep 28 10:08:26 2008 +0800
Bug #16631: add option for SDVO force detect
Some ADD2 card doesn't get SDVO detect status setup right,
which disabled outputs on those cards. This adds a new
option "ForceSDVODetect" to probe all SDVO ports anyway.
diff --git a/man/intel.man b/man/intel.man
index 8419f2d..115b35a 100644
--- a/man/intel.man
+++ b/man/intel.man
@@ -222,6 +222,12 @@ information.
Enable XvMC driver. Current support MPEG2 MC on 915/945 and G33 series.
User should provide absolute path to libIntelXvMC.so in XvMCConfig file.
Default: Disabled.
+.TP
+.BI "Option \*qForceSDVODetect\*q \*q" boolean \*q
+Instead of depending on SDVO detect status bit to initialize SDVO outputs,
+this option trys to ignore that status bit and try to probe on all SDVO
+ports anyway. Try this if some output is not detected on your ADD2 card.
+Use of this option will slow down your startup time. Default: Disabled.
.SH OUTPUT CONFIGURATION
On 830M and better chipsets, the driver supports runtime configuration of
diff --git a/src/i830.h b/src/i830.h
index 5fb7e24..491dfd0 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -714,6 +714,10 @@ typedef struct _I830Rec {
/** Enables logging of debug output related to mode switching. */
Bool debug_modes;
unsigned int quirk_flag;
+
+ /* User option to ignore SDVO detect bit status, in case some outputs
+ not detected on SDVO, so let driver try its best. */
+ Bool force_sdvo_detect;
} I830Rec;
#define I830PTR(p) ((I830Ptr)((p)->driverPrivate))
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 389775f..ce7b623 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -316,6 +316,7 @@ typedef enum {
#ifdef INTEL_XVMC
OPTION_XVMC,
#endif
+ OPTION_FORCE_SDVO_DETECT,
} I830Opts;
static OptionInfoRec I830Options[] = {
@@ -342,6 +343,7 @@ static OptionInfoRec I830Options[] = {
#ifdef INTEL_XVMC
{OPTION_XVMC, "XvMC", OPTV_BOOLEAN, {0}, TRUE},
#endif
+ {OPTION_FORCE_SDVO_DETECT, "ForceSDVODetect", OPTV_BOOLEAN, {0}, FALSE},
{-1, NULL, OPTV_NONE, {0}, FALSE}
};
/* *INDENT-ON* */
@@ -915,14 +917,14 @@ I830SetupOutputs(ScrnInfoPtr pScrn)
i830_lvds_init(pScrn);
if (IS_I9XX(pI830)) {
- if (INREG(SDVOB) & SDVO_DETECTED) {
+ if ((INREG(SDVOB) & SDVO_DETECTED) || pI830->force_sdvo_detect) {
Bool found = i830_sdvo_init(pScrn, SDVOB);
if (!found && SUPPORTS_INTEGRATED_HDMI(pI830))
i830_hdmi_init(pScrn, SDVOB);
}
- if (INREG(SDVOC) & SDVO_DETECTED) {
+ if ((INREG(SDVOC) & SDVO_DETECTED) || pI830->force_sdvo_detect) {
Bool found = i830_sdvo_init(pScrn, SDVOC);
if (!found && SUPPORTS_INTEGRATED_HDMI(pI830))
@@ -1464,6 +1466,12 @@ I830GetEarlyOptions(ScrnInfoPtr pScrn)
if (xf86ReturnOptValBool(pI830->Options, OPTION_FORCEENABLEPIPEA, FALSE))
pI830->quirk_flag |= QUIRK_PIPEA_FORCE;
+ if (xf86ReturnOptValBool(pI830->Options, OPTION_FORCE_SDVO_DETECT, FALSE)) {
+ pI830->force_sdvo_detect = TRUE;
+ } else {
+ pI830->force_sdvo_detect = FALSE;
+ }
+
return TRUE;
}
More information about the xorg-commit
mailing list