drm/i915: add support for checking RPM atomic sections
[linux-drm-fsl-dcu.git] / drivers / gpu / drm / i915 / intel_drv.h
index eff7d2e7d71b881c6d5eb65a4e14b6c31b23ab7b..d523ebb2f89dbac35120ce0ee78be868f19b355f 100644 (file)
@@ -1446,6 +1446,23 @@ assert_rpm_wakelock_held(struct drm_i915_private *dev_priv)
                  "RPM wakelock ref not held during HW access");
 }
 
+static inline int
+assert_rpm_atomic_begin(struct drm_i915_private *dev_priv)
+{
+       int seq = atomic_read(&dev_priv->pm.atomic_seq);
+
+       assert_rpm_wakelock_held(dev_priv);
+
+       return seq;
+}
+
+static inline void
+assert_rpm_atomic_end(struct drm_i915_private *dev_priv, int begin_seq)
+{
+       WARN_ONCE(atomic_read(&dev_priv->pm.atomic_seq) != begin_seq,
+                 "HW access outside of RPM atomic section\n");
+}
+
 /**
  * disable_rpm_wakeref_asserts - disable the RPM assert checks
  * @dev_priv: i915 device instance