Improve register debugging output.
This includes not reporting some fields on hardware where those bits are reserved, correcting one of the hardware error bit numbers, and reducing the severity of the debugging output warnings.
This commit is contained in:
parent
9bfeadbd5b
commit
1ba45a3fcd
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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" : "",
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue