diff options
-rw-r--r-- | man/nv.man | 4 | ||||
-rw-r--r-- | src/g80_driver.c | 13 | ||||
-rw-r--r-- | src/g80_sor.c | 7 | ||||
-rw-r--r-- | src/g80_type.h | 1 |
4 files changed, 17 insertions, 8 deletions
@@ -162,6 +162,10 @@ Default: XAA. Enable or disable flat panel dithering by default. Dithering can also be enabled or disabled using the RandR 1.2 \*qdither\*q output property. Default: off. +.TP +.BI "Option \*qAllowDualLinkModes\*q \*q" boolean \*q +Allow validation of dual-link DVI modes. +Not all GPUs are configured at boot time to be able to handle dual-link modes, so they are disabled by default. . .\" RandR 1.2 .PP diff --git a/src/g80_driver.c b/src/g80_driver.c index 99ea737..a0182a1 100644 --- a/src/g80_driver.c +++ b/src/g80_driver.c @@ -106,14 +106,16 @@ typedef enum { OPTION_NOACCEL, OPTION_ACCEL_METHOD, OPTION_FP_DITHER, + OPTION_ALLOW_DUAL_LINK, } G80Opts; static const OptionInfoRec G80Options[] = { - { OPTION_HW_CURSOR, "HWCursor", OPTV_BOOLEAN, {0}, FALSE }, - { OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE }, - { OPTION_ACCEL_METHOD, "AccelMethod", OPTV_STRING, {0}, FALSE }, - { OPTION_FP_DITHER, "FPDither", OPTV_BOOLEAN, {0}, FALSE }, - { -1, NULL, OPTV_NONE, {0}, FALSE } + { OPTION_HW_CURSOR, "HWCursor", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_ACCEL_METHOD, "AccelMethod", OPTV_STRING, {0}, FALSE }, + { OPTION_FP_DITHER, "FPDither", OPTV_BOOLEAN, {0}, FALSE }, + { OPTION_ALLOW_DUAL_LINK, "AllowDualLinkModes", OPTV_BOOLEAN, {0}, FALSE }, + { -1, NULL, OPTV_NONE, {0}, FALSE } }; static Bool @@ -331,6 +333,7 @@ G80PreInit(ScrnInfoPtr pScrn, int flags) } pNv->Dither = xf86ReturnOptValBool(pNv->Options, OPTION_FP_DITHER, FALSE); + pNv->AllowDualLink = xf86ReturnOptValBool(pNv->Options, OPTION_ALLOW_DUAL_LINK, FALSE); /* Set the bits per RGB for 8bpp mode */ if(pScrn->depth == 8) diff --git a/src/g80_sor.c b/src/g80_sor.c index 02a5f3b..202e838 100644 --- a/src/g80_sor.c +++ b/src/g80_sor.c @@ -69,9 +69,10 @@ G80SorDPMSSet(xf86OutputPtr output, int mode) static int G80TMDSModeValid(xf86OutputPtr output, DisplayModePtr mode) { - // Disable dual-link modes until I can find a way to make them work - // reliably. - if (mode->Clock > 165000) + G80Ptr pNv = G80PTR(output->scrn); + + // Disable dual-link modes unless enabled in the config file. + if (mode->Clock > 165000 && !pNv->AllowDualLink) return MODE_CLOCK_HIGH; return G80OutputModeValid(output, mode); diff --git a/src/g80_type.h b/src/g80_type.h index 5f4ee08..30ef3fe 100644 --- a/src/g80_type.h +++ b/src/g80_type.h @@ -67,6 +67,7 @@ typedef struct G80Rec { Bool NoAccel; AccelMethod AccelMethod; Bool Dither; + Bool AllowDualLink; /* XAA */ XAAInfoRecPtr xaa; |