summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2007-07-08 00:53:00 -0700
committerAaron Plattner <aaron@weasel.nvidia.com>2007-07-08 00:53:00 -0700
commit42dffde988176a3f85b0586ecb8d672b74050760 (patch)
treebb5ee1027673f17fe5b364f3d50d8c7fe8358f21 /src
parentbc439899f323410b0549068cd88348e7fb62866b (diff)
Work around more MacBook wackiness.
Turn off more corrupt the framebuffer mode. Don't mess with the pixel clock for LVDS as long as we're trusting the VBIOS-programmed timings.
Diffstat (limited to 'src')
-rw-r--r--src/g80_driver.c1
-rw-r--r--src/g80_output.c3
-rw-r--r--src/g80_sor.c5
3 files changed, 6 insertions, 3 deletions
diff --git a/src/g80_driver.c b/src/g80_driver.c
index 0f97a2d..7801602 100644
--- a/src/g80_driver.c
+++ b/src/g80_driver.c
@@ -829,6 +829,7 @@ G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
AvailFBArea.y2 = pNv->offscreenHeight;
xf86InitFBManager(pScreen, &AvailFBArea);
+ pNv->reg[0x00001708/4] = 0;
for(i = 0; i < 8; i++)
pNv->reg[0x00001900/4 + i] = 0;
diff --git a/src/g80_output.c b/src/g80_output.c
index 11bdb25..448864f 100644
--- a/src/g80_output.c
+++ b/src/g80_output.c
@@ -158,7 +158,8 @@ void
G80OutputSetPClk(xf86OutputPtr output, int pclk)
{
G80OutputPrivPtr pPriv = output->driver_private;
- pPriv->set_pclk(output, pclk);
+ if(pPriv->set_pclk)
+ pPriv->set_pclk(output, pclk);
}
int
diff --git a/src/g80_sor.c b/src/g80_sor.c
index 2ab9f2e..5ff7318 100644
--- a/src/g80_sor.c
+++ b/src/g80_sor.c
@@ -38,7 +38,7 @@ G80SorSetPClk(xf86OutputPtr output, int pclk)
G80Ptr pNv = G80PTR(output->scrn);
G80OutputPrivPtr pPriv = output->driver_private;
const int orOff = 0x800 * pPriv->or;
- const int limit = pPriv->panelType == LVDS ? 112000 : 165000;
+ const int limit = 165000;
pNv->reg[(0x00614300+orOff)/4] = (pclk > limit) ? 0x101 : 0;
}
@@ -284,7 +284,8 @@ G80CreateSor(ScrnInfoPtr pScrn, ORNum or, PanelType panelType)
pPriv->or = or;
pPriv->panelType = panelType;
pPriv->cached_status = XF86OutputStatusUnknown;
- pPriv->set_pclk = G80SorSetPClk;
+ if(panelType == TMDS)
+ pPriv->set_pclk = G80SorSetPClk;
output->driver_private = pPriv;
output->interlaceAllowed = TRUE;
output->doubleScanAllowed = TRUE;