diff options
Diffstat (limited to 'src/via_vbe.c')
-rw-r--r-- | src/via_vbe.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/via_vbe.c b/src/via_vbe.c index 70fddfb08ca8..f50186ddb981 100644 --- a/src/via_vbe.c +++ b/src/via_vbe.c @@ -120,6 +120,7 @@ ViaVbeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode) VIAPtr pVia; VbeModeInfoData *data; int mode; + int refreshRate; pVia = VIAPTR(pScrn); @@ -132,11 +133,22 @@ ViaVbeSetMode(ScrnInfoPtr pScrn, DisplayModePtr pMode) /* enable linear addressing */ mode |= 1 << 14; + if (data->block) { + refreshRate = data->block->RefreshRate ; + } else { + refreshRate = 6000 ; + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Unable to determine the refresh rate, using %.2f. " + "Please check your configuration.\n", refreshRate/100. ) ; + } + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Trying VBE Mode %dx%d (0x%x) Refresh %.2f:\n", (int) data->data->XResolution, (int) data->data->YResolution, - mode & ~(1 << 11), (float) data->block->RefreshRate/100.); - ViaVbeSetRefresh(pScrn, data->block->RefreshRate/100); + mode & ~(1 << 11), (float) refreshRate/100.); + + ViaVbeSetRefresh(pScrn, refreshRate/100); + if (VBESetVBEMode(pVia->pVbe, mode, data->block) == FALSE) { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VBESetVBEMode failed"); if ((data->block || (data->mode & (1 << 11))) && |