mirror of
https://github.com/X11Libre/xf86-video-nv.git
synced 2026-03-24 01:24:21 +00:00
Add an option to allow validation of dual-link DVI modes.
These modes don't work at bootup (i.e. power saving) configuration on all GPUs, so they're still disabled by default. This option allows users to enable them in case they actually work.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -67,6 +67,7 @@ typedef struct G80Rec {
|
||||
Bool NoAccel;
|
||||
AccelMethod AccelMethod;
|
||||
Bool Dither;
|
||||
Bool AllowDualLink;
|
||||
|
||||
/* XAA */
|
||||
XAAInfoRecPtr xaa;
|
||||
|
||||
Reference in New Issue
Block a user