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.
This commit is contained in:
Aaron Plattner
2007-07-08 00:53:00 -07:00
committed by Aaron Plattner
parent bc439899f3
commit 42dffde988
3 changed files with 6 additions and 3 deletions

View File

@@ -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;

View File

@@ -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

View File

@@ -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;