diff --git a/src/common.h b/src/common.h index 1765bb5..6d80cec 100644 --- a/src/common.h +++ b/src/common.h @@ -138,10 +138,17 @@ static inline void memcpy_volatile(volatile void *dst, const void *src, ((volatile char *)dst)[i] = ((volatile char *)src)[i]; } +extern int reg_debug; + /* Memory mapped register access macros */ #define INREG8(addr) *(volatile uint8_t *)(RecPtr->MMIOBase + (addr)) #define INREG16(addr) *(volatile uint16_t *)(RecPtr->MMIOBase + (addr)) -#define INREG(addr) *(volatile uint32_t *)(RecPtr->MMIOBase + (addr)) +#define INREG(addr) ({ \ + if (reg_debug) { \ + ErrorF("INREG("#addr") in %s\n", FUNCTION_NAME); \ + } \ + *(volatile uint32_t *)(RecPtr->MMIOBase + (addr)); \ +}) #define INGTT(addr) *(volatile uint32_t *)(RecPtr->GTTBase + (addr)) #define POSTING_READ(addr) (void)INREG(addr) @@ -163,8 +170,8 @@ static inline void memcpy_volatile(volatile void *dst, const void *src, #define OUTREG(addr, val) do { \ *(volatile uint32_t *)(RecPtr->MMIOBase + (addr)) = (val); \ - if (I810_DEBUG&DEBUG_VERBOSE_OUTREG) { \ - ErrorF("OUTREG(0x%lx, 0x%lx) in %s\n", (unsigned long)(addr), \ + if (reg_debug) { \ + ErrorF("OUTREG("#addr", 0x%lx) in %s\n", \ (unsigned long)(val), FUNCTION_NAME); \ } \ } while (0) diff --git a/src/i830_driver.c b/src/i830_driver.c index 28505c8..dbc3a48 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -2169,6 +2169,8 @@ i830_dpll_settle(void) usleep(10000); /* 10 ms *should* be plenty */ } +int reg_debug = 0; + static Bool RestoreHWState(ScrnInfoPtr pScrn) { @@ -2178,6 +2180,8 @@ RestoreHWState(ScrnInfoPtr pScrn) vgaRegPtr vgaReg = &hwp->SavedReg; int i; + reg_debug = 1; + DPRINTF(PFX, "RestoreHWState\n"); #ifdef XF86DRI @@ -2400,6 +2404,8 @@ RestoreHWState(ScrnInfoPtr pScrn) vgaHWRestore(pScrn, vgaReg, VGA_SR_FONTS); vgaHWLock(hwp); + reg_debug = 0; + return TRUE; }