tools/intel_reg_dumper: Add support for debug register
authorEugeni Dodonov <eugeni.dodonov@intel.com>
Tue, 25 Oct 2011 16:40:12 +0000 (14:40 -0200)
committerEugeni Dodonov <eugeni.dodonov@intel.com>
Tue, 3 Jan 2012 17:18:06 +0000 (15:18 -0200)
Right now, we only check for hardware DRRS support. But much more can be
done with it. Some day.

Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
lib/intel_reg.h
tools/intel_reg_dumper.c

index 3797de6..933a83a 100644 (file)
@@ -3494,4 +3494,12 @@ typedef enum {
 #define GEN6_TD_CTL            0x7000 /* <= GEN5 was at 0x8000 */
 #define GEN6_TD_CTL_FORCE_TD_BKPT (1<<4)
 
+/* Port debugging
+ */
+
+#define PORT_DBG                    0x42308
+#define  PORT_DBG_DRRS_HW_STATE_OFF     (0<<30)
+#define  PORT_DBG_DRRS_HW_STATE_LOW     (1<<30)
+#define  PORT_DBG_DRRS_HW_STATE_HIGH    (2<<30)
+
 #endif /* _I810_REG_H */
index 021e4cc..c167813 100644 (file)
@@ -255,6 +255,24 @@ DEBUGSTRING(i830_debug_pipestat)
                 _OREG_UPDATE_STATUS);
 }
 
+DEBUGSTRING(ivb_debug_port)
+{
+       char *drrs;
+       switch (val & (2 << 30)) {
+               case PORT_DBG_DRRS_HW_STATE_OFF:
+                       drrs = "off";
+                       break;
+               case PORT_DBG_DRRS_HW_STATE_LOW:
+                       drrs = "low";
+                       break;
+               case PORT_DBG_DRRS_HW_STATE_HIGH:
+                       drrs = "high";
+                       break;
+       }
+       snprintf(result, len, "HW DRRS %s",
+                       drrs);
+}
+
 DEBUGSTRING(i830_debug_hvtotal)
 {
        snprintf(result, len, "%d active, %d total",
@@ -1674,6 +1692,8 @@ static struct reg_debug ironlake_debug_regs[] = {
        DEFINEREG(PCH_PP_ON_DELAYS),
        DEFINEREG(PCH_PP_OFF_DELAYS),
        DEFINEREG(PCH_PP_DIVISOR),
+
+       DEFINEREG2(PORT_DBG, ivb_debug_port),
 };
 
 static struct reg_debug i945gm_mi_regs[] = {