diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2007-07-08 00:53:00 -0700 |
---|---|---|
committer | Aaron Plattner <aaron@weasel.nvidia.com> | 2007-07-08 00:53:00 -0700 |
commit | 42dffde988176a3f85b0586ecb8d672b74050760 (patch) | |
tree | bb5ee1027673f17fe5b364f3d50d8c7fe8358f21 | |
parent | bc439899f323410b0549068cd88348e7fb62866b (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.
-rw-r--r-- | src/g80_driver.c | 1 | ||||
-rw-r--r-- | src/g80_output.c | 3 | ||||
-rw-r--r-- | src/g80_sor.c | 5 |
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; |