struct drm_device *dev = node->minor->dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
        u32 psrperf = 0;
+       u32 stat[3];
+       enum pipe pipe;
        bool enabled = false;
 
        intel_runtime_pm_get(dev_priv);
        seq_printf(m, "Re-enable work scheduled: %s\n",
                   yesno(work_busy(&dev_priv->psr.work.work)));
 
-       enabled = HAS_PSR(dev) &&
-               I915_READ(EDP_PSR_CTL(dev)) & EDP_PSR_ENABLE;
-       seq_printf(m, "HW Enabled & Active bit: %s\n", yesno(enabled));
+       if (HAS_PSR(dev)) {
+               if (HAS_DDI(dev))
+                       enabled = I915_READ(EDP_PSR_CTL(dev)) & EDP_PSR_ENABLE;
+               else {
+                       for_each_pipe(dev_priv, pipe) {
+                               stat[pipe] = I915_READ(VLV_PSRSTAT(pipe)) &
+                                       VLV_EDP_PSR_CURR_STATE_MASK;
+                               if ((stat[pipe] == VLV_EDP_PSR_ACTIVE_NORFB_UP) ||
+                                   (stat[pipe] == VLV_EDP_PSR_ACTIVE_SF_UPDATE))
+                                       enabled = true;
+                       }
+               }
+       }
+       seq_printf(m, "HW Enabled & Active bit: %s", yesno(enabled));
 
-       if (HAS_PSR(dev))
+       if (!HAS_DDI(dev))
+               for_each_pipe(dev_priv, pipe) {
+                       if ((stat[pipe] == VLV_EDP_PSR_ACTIVE_NORFB_UP) ||
+                           (stat[pipe] == VLV_EDP_PSR_ACTIVE_SF_UPDATE))
+                               seq_printf(m, " pipe %c", pipe_name(pipe));
+               }
+       seq_puts(m, "\n");
+
+       /* CHV PSR has no kind of performance counter */
+       if (HAS_PSR(dev) && HAS_DDI(dev)) {
                psrperf = I915_READ(EDP_PSR_PERF_CNT(dev)) &
                        EDP_PSR_PERF_CNT_MASK;
-       seq_printf(m, "Performance_Counter: %u\n", psrperf);
+
+               seq_printf(m, "Performance_Counter: %u\n", psrperf);
+       }
        mutex_unlock(&dev_priv->psr.lock);
 
        intel_runtime_pm_put(dev_priv);