Commit 8846ffb4 authored by Lucas De Marchi's avatar Lucas De Marchi Committed by Rodrigo Vivi
Browse files

drm/xe: Allow const propagation in gt_to_xe()



Replace the inline function with a _Generic() so gt_to_xe() can work
with a const struct xe_gt*, which leads to a const struct xe *.
This allows a const gt being passed around and when the xe device is
needed, compiler won't issue a warning that calling gt_to_xe() would
discard the const. Rather, just propagate the const to the xe pointer
being returned.

Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 6b980aa8
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -49,10 +49,10 @@ static inline bool xe_gt_is_media_type(struct xe_gt *gt)
	return gt->info.type == XE_GT_TYPE_MEDIA;
}

static inline struct xe_device * gt_to_xe(struct xe_gt *gt)
{
	return gt->xe;
}
#define gt_to_xe(gt__)								\
	_Generic(gt__,								\
		 const struct xe_gt *: (const struct xe_device *)((gt__)->xe),	\
		 struct xe_gt *: (gt__)->xe)

static inline bool xe_gt_is_usm_hwe(struct xe_gt *gt, struct xe_hw_engine *hwe)
{