Convert existing loops with Coccinelle via the following semantic patch:
@@
identifier GT, XE, ID;
iterator name for_each_gt, for_each_gt_with_type;
@@
- for_each_gt(GT, XE, ID) {
+ for_each_gt_with_type(GT, XE, ID, BIT(XE_GT_TYPE_MAIN)) {
- if (xe_gt_is_media_type(GT))
- continue;
...
}
@@
identifier GT, XE, ID;
iterator name for_each_gt, for_each_gt_with_type;
@@
- for_each_gt(GT, XE, ID) {
+ for_each_gt_with_type(GT, XE, ID, BIT(XE_GT_TYPE_MEDIA)) {
- if (xe_gt_is_main_type(GT))
- continue;
...
}
@@
identifier GT, XE, ID;
iterator name for_each_gt, for_each_gt_with_type;
@@
- for_each_gt(GT, XE, ID) {
+ for_each_gt_with_type(GT, XE, ID, BIT(XE_GT_TYPE_MAIN)) {
- if (!xe_gt_is_main_type(GT))
- continue;
...
}
@@
identifier GT, XE, ID;
iterator name for_each_gt, for_each_gt_with_type;
@@
- for_each_gt(GT, XE, ID) {
+ for_each_gt_with_type(GT, XE, ID, BIT(XE_GT_TYPE_MEDIA)) {
- if (xe_gt_is_media_type(GT))
- continue;
...
}
No functional change expected.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/20260305-gt-type-loops-v1-2-aa42e9fc3f06@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
struct xe_gt *gt;
u8 id;
- for_each_gt(gt, xe, id) {
- if (xe_gt_is_media_type(gt))
- continue;
-
+ for_each_gt_with_type(gt, xe, id, BIT(XE_GT_TYPE_MAIN)) {
CLASS(xe_force_wake, fw_ref)(gt_to_fw(gt), XE_FW_GT);
if (!fw_ref.domains)
return;
goto fail;
offset = 0;
- for_each_gt(gt, xe, gtid) {
- if (xe_gt_is_media_type(gt))
- continue;
-
+ for_each_gt_with_type(gt, xe, gtid, BIT(XE_GT_TYPE_MAIN)) {
config = pf_pick_vf_config(gt, vfid);
bo = config->lmem_obj;
if (!bo)