err_printf(m, "  INSTPS: 0x%08x\n", ring->instps);
        }
        err_printf(m, "  INSTPM: 0x%08x\n", ring->instpm);
-       err_printf(m, "  FADDR: 0x%08x\n", ring->faddr);
+       err_printf(m, "  FADDR: 0x%08x %08x\n", upper_32_bits(ring->faddr),
+                  lower_32_bits(ring->faddr));
        if (INTEL_INFO(dev)->gen >= 6) {
                err_printf(m, "  RC PSMI: 0x%08x\n", ring->rc_psmi);
                err_printf(m, "  FAULT_REG: 0x%08x\n", ring->fault_reg);
                ering->instdone = I915_READ(RING_INSTDONE(ring->mmio_base));
                ering->instps = I915_READ(RING_INSTPS(ring->mmio_base));
                ering->bbaddr = I915_READ(RING_BBADDR(ring->mmio_base));
-               if (INTEL_INFO(dev)->gen >= 8)
+               if (INTEL_INFO(dev)->gen >= 8) {
+                       ering->faddr |= (u64) I915_READ(RING_DMA_FADD_UDW(ring->mmio_base)) << 32;
                        ering->bbaddr |= (u64) I915_READ(RING_BBADDR_UDW(ring->mmio_base)) << 32;
+               }
                ering->bbstate = I915_READ(RING_BBSTATE(ring->mmio_base));
        } else {
                ering->faddr = I915_READ(DMA_FADD_I8XX);
 
 #define RING_INSTDONE(base)    ((base)+0x6c)
 #define RING_INSTPS(base)      ((base)+0x70)
 #define RING_DMA_FADD(base)    ((base)+0x78)
+#define RING_DMA_FADD_UDW(base)        ((base)+0x60) /* gen8+ */
 #define RING_INSTPM(base)      ((base)+0xc0)
 #define RING_MI_MODE(base)     ((base)+0x9c)
 #define INSTPS         0x02070 /* 965+ only */