summaryrefslogtreecommitdiff
path: root/src/g80_dac.c
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2007-07-24 20:36:04 -0700
committerAaron Plattner <aaron@weasel.nvidia.com>2007-07-24 20:36:04 -0700
commit08b68473351081fe1ed96ba7e206ed0d301b8a91 (patch)
treedaa06fca777bb68abb66d8b124d0c533edc5109f /src/g80_dac.c
parentf0ebb42ee94eac4b294d12d02f4406a444b347ff (diff)
G80: Allow DVI scaling.
Revamp how the scaling code works. When a mode is set on a DVI output, determine the current preferred mode and scale to that. Add a new scaling option, "off", which disables scaling and scans out the actual timings in the mode to be set.
Diffstat (limited to 'src/g80_dac.c')
-rw-r--r--src/g80_dac.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/g80_dac.c b/src/g80_dac.c
index 7848de2..30413cd 100644
--- a/src/g80_dac.c
+++ b/src/g80_dac.c
@@ -76,6 +76,13 @@ G80DacDPMSSet(xf86OutputPtr output, int mode)
pNv->reg[(0x0061A004+off)/4] = tmp;
}
+Bool
+G80DacModeFixup(xf86OutputPtr output, DisplayModePtr mode,
+ DisplayModePtr adjusted_mode)
+{
+ return TRUE;
+}
+
static void
G80DacModeSet(xf86OutputPtr output, DisplayModePtr mode,
DisplayModePtr adjusted_mode)
@@ -99,6 +106,8 @@ G80DacModeSet(xf86OutputPtr output, DisplayModePtr mode,
C(0x00000404 + dacOff,
(adjusted_mode->Flags & V_NHSYNC) ? 1 : 0 |
(adjusted_mode->Flags & V_NVSYNC) ? 2 : 0);
+
+ G80CrtcSetScale(output->crtc, adjusted_mode, G80_SCALE_OFF);
}
/*
@@ -165,7 +174,7 @@ static const xf86OutputFuncsRec G80DacOutputFuncs = {
.save = NULL,
.restore = NULL,
.mode_valid = G80OutputModeValid,
- .mode_fixup = G80OutputModeFixup,
+ .mode_fixup = G80DacModeFixup,
.prepare = G80OutputPrepare,
.commit = G80OutputCommit,
.mode_set = G80DacModeSet,