diff --git a/src/i810_reg.h b/src/i810_reg.h index 33b059d6..68cce930 100644 --- a/src/i810_reg.h +++ b/src/i810_reg.h @@ -401,7 +401,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # define ERR_VERTEX_MAX (1 << 5) /* lpt/cst */ # define ERR_PGTBL_ERROR (1 << 4) # define ERR_DISPLAY_OVERLAY_UNDERRUN (1 << 3) -# define ERR_MAIN_MEMORY_REFRESH (1 << 2) +# define ERR_MAIN_MEMORY_REFRESH (1 << 1) # define ERR_INSTRUCTION_ERROR (1 << 0) diff --git a/src/i830_debug.c b/src/i830_debug.c index 897ab926..e0be0a4a 100644 --- a/src/i830_debug.c +++ b/src/i830_debug.c @@ -462,7 +462,7 @@ void i830DumpRegs (ScrnInfoPtr pScrn) break; default: p2 = 1; - xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "p2 out of range\n"); + xf86DrvMsg (pScrn->scrnIndex, X_WARNING, "p2 out of range\n"); break; } switch ((dpll >> 16) & 0xff) { @@ -484,33 +484,39 @@ void i830DumpRegs (ScrnInfoPtr pScrn) p1 = 8; break; default: p1 = 1; - xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "p1 out of range\n"); + xf86DrvMsg (pScrn->scrnIndex, X_WARNING, "p1 out of range\n"); break; } switch ((dpll >> 13) & 0x3) { case 0: ref = 96000; break; + case 3: + ref = 100000; + break; default: ref = 0; - xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "ref out of range\n"); + xf86DrvMsg (pScrn->scrnIndex, X_WARNING, "ref out of range\n"); break; } - phase = (dpll >> 9) & 0xf; - switch (phase) { - case 6: - break; - default: - xf86DrvMsg (pScrn->scrnIndex, X_INFO, - "SDVO phase shift %d out of range -- probobly not " - "an issue.\n", phase); - break; + if (IS_I965G(pI830)) { + phase = (dpll >> 9) & 0xf; + switch (phase) { + case 6: + break; + default: + xf86DrvMsg (pScrn->scrnIndex, X_INFO, + "SDVO phase shift %d out of range -- probobly not " + "an issue.\n", phase); + break; + } } switch ((dpll >> 8) & 1) { case 0: break; default: - xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "fp select out of range\n"); + xf86DrvMsg (pScrn->scrnIndex, X_WARNING, + "fp select out of range\n"); break; } n = ((fp >> 16) & 0x3f); @@ -645,13 +651,18 @@ i830_check_error_state(ScrnInfoPtr pScrn) temp = INREG16(ESR); if (temp != 0) { + Bool vertex_max = !IS_I965G(pI830) && (temp & ERR_VERTEX_MAX); + Bool pgtbl = temp & ERR_PGTBL_ERROR; + Bool underrun = !IS_I965G(pI830) && + (temp & ERR_DISPLAY_OVERLAY_UNDERRUN); + Bool instruction = !IS_I965G(pI830) && (temp & ERR_INSTRUCTION_ERROR); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "ESR is 0x%08lx%s%s%s%s\n", temp, - temp & ERR_VERTEX_MAX ? ", max vertices exceeded" : "", - temp & ERR_PGTBL_ERROR ? ", page table error" : "", - temp & ERR_DISPLAY_OVERLAY_UNDERRUN ? - ", display/overlay underrun" : "", - temp & ERR_INSTRUCTION_ERROR ? ", instruction error" : ""); + vertex_max ? ", max vertices exceeded" : "", + pgtbl ? ", page table error" : "", + underrun ? ", display/overlay underrun" : "", + instruction ? ", instruction error" : ""); errors++; } /* Check first for page table errors */ @@ -665,7 +676,7 @@ i830_check_error_state(ScrnInfoPtr pScrn) } else { temp = INREG(PGTBL_ER); if (temp != 0) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "PGTBL_ER is 0x%08lx" "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n", temp, temp & PGTBL_ERR_HOST_GTT_PTE ? ", host gtt pte" : "", diff --git a/src/i830_driver.c b/src/i830_driver.c index cbba4373..0f663115 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -3042,8 +3042,8 @@ I830EnterVT(int scrnIndex, int flags) return FALSE; if (i830_check_error_state(pScrn)) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Existing errors found in hardware state\n"); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Existing errors found in hardware state.\n"); } ResetState(pScrn, FALSE);