diff options
-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; |