drm/xe: Add for_each_tile iterator

As we start splitting tile handling out from GT handling, we'll need to
be able to iterate over tiles separately from GTs.  This iterator will
be used in upcoming patches.

v2:
 - s/(id__++)/(id__)++/  (Gustavo)

Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Acked-by: Gustavo Sousa <gustavo.sousa@intel.com>
Link: https://lore.kernel.org/r/20230601215244.678611-6-matthew.d.roper@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
Matt Roper 2023-06-01 14:52:18 -07:00 committed by Rodrigo Vivi
parent f79ee3013a
commit 3643e63715
2 changed files with 5 additions and 2 deletions

View File

@ -83,6 +83,10 @@ static inline void xe_device_guc_submission_disable(struct xe_device *xe)
xe->info.enable_guc = false;
}
#define for_each_tile(tile__, xe__, id__) \
for ((id__) = 0; (id__) < (xe__)->info.tile_count; (id__)++) \
for_each_if ((tile__) = &(xe__)->tiles[(id__)])
#define for_each_gt(gt__, xe__, id__) \
for ((id__) = 0; (id__) < (xe__)->info.tile_count; (id__++)) \
for_each_if ((gt__) = xe_device_get_gt((xe__), (id__)))

View File

@ -537,8 +537,7 @@ static int xe_info_init(struct xe_device *xe,
*/
xe->info.tile_count = 1 + graphics_desc->max_remote_tiles;
for (id = 0; id < xe->info.tile_count; ++id) {
tile = &xe->tiles[id];
for_each_tile(tile, xe, id) {
tile->xe = xe;
tile->id = id;