Merge tag 'drm-intel-next-2023-11-23' of git://anongit.freedesktop.org/drm/drm-intel...
[linux-2.6-block.git] / drivers / gpu / drm / i915 / gt / intel_gt.h
index 970bedf6b78a7b82b69509b8f8c37c868ee81ccd..e1f13735f530edad3e72e2dfd8b0d5b07f2a641a 100644 (file)
@@ -167,6 +167,20 @@ void intel_gt_release_all(struct drm_i915_private *i915);
             (id__)++) \
                for_each_if(((gt__) = (i915__)->gt[(id__)]))
 
+/* Simple iterator over all initialised engines */
+#define for_each_engine(engine__, gt__, id__) \
+       for ((id__) = 0; \
+            (id__) < I915_NUM_ENGINES; \
+            (id__)++) \
+               for_each_if ((engine__) = (gt__)->engine[(id__)])
+
+/* Iterator over subset of engines selected by mask */
+#define for_each_engine_masked(engine__, gt__, mask__, tmp__) \
+       for ((tmp__) = (mask__) & (gt__)->info.engine_mask; \
+            (tmp__) ? \
+            ((engine__) = (gt__)->engine[__mask_next_bit(tmp__)]), 1 : \
+            0;)
+
 void intel_gt_info_print(const struct intel_gt_info *info,
                         struct drm_printer *p);