mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
drm/xe/rtp: Add match on any GT
One surprising factor of GRAPHICS_VERSION()/MEDIA_VERSION() matching for people adding new WAs is that it implicitly checks that the graphics/media IP under check is of that specific type and not that the device contains a media/graphics IP of that version. Add a new *_ANY_GT() variant that can be used in that case. Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240618050044.324454-5-lucas.demarchi@intel.com
This commit is contained in:
parent
dc72c52a42
commit
c8c00286f5
|
|
@ -63,6 +63,9 @@ static bool rule_matches(const struct xe_device *xe,
|
|||
xe->info.graphics_verx100 <= r->ver_end &&
|
||||
(!has_samedia(xe) || !xe_gt_is_media_type(gt));
|
||||
break;
|
||||
case XE_RTP_MATCH_GRAPHICS_VERSION_ANY_GT:
|
||||
match = xe->info.graphics_verx100 == r->ver_start;
|
||||
break;
|
||||
case XE_RTP_MATCH_GRAPHICS_STEP:
|
||||
match = xe->info.step.graphics >= r->step_start &&
|
||||
xe->info.step.graphics < r->step_end &&
|
||||
|
|
@ -82,6 +85,9 @@ static bool rule_matches(const struct xe_device *xe,
|
|||
xe->info.step.media < r->step_end &&
|
||||
(!has_samedia(xe) || xe_gt_is_media_type(gt));
|
||||
break;
|
||||
case XE_RTP_MATCH_MEDIA_VERSION_ANY_GT:
|
||||
match = xe->info.media_verx100 == r->ver_start;
|
||||
break;
|
||||
case XE_RTP_MATCH_INTEGRATED:
|
||||
match = !xe->info.is_dgfx;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -140,9 +140,23 @@ struct xe_reg_sr;
|
|||
.ver_start = ver_start__, .ver_end = ver_end__, }
|
||||
|
||||
/**
|
||||
* XE_RTP_RULE_MEDIA_VERSION - Create rule matching media version
|
||||
* XE_RTP_RULE_GRAPHICS_VERSION_ANY_GT - Create rule matching graphics version on any GT
|
||||
* @ver__: Graphics IP version to match
|
||||
*
|
||||
* Like XE_RTP_RULE_GRAPHICS_VERSION, but it matches even if the current GT
|
||||
* being checked is not of the graphics type. It allows to add RTP entries to
|
||||
* another GT when the device contains a Graphics IP with that version.
|
||||
*
|
||||
* Refer to XE_RTP_RULES() for expected usage.
|
||||
*/
|
||||
#define XE_RTP_RULE_GRAPHICS_VERSION_ANY_GT(ver__) \
|
||||
{ .match_type = XE_RTP_MATCH_GRAPHICS_VERSION_ANY_GT, \
|
||||
.ver_start = ver__, }
|
||||
|
||||
/**
|
||||
* XE_RTP_RULE_MEDIA_VERSION - Create rule matching media version
|
||||
* @ver__: Media IP version to match
|
||||
*
|
||||
* Refer to XE_RTP_RULES() for expected usage.
|
||||
*/
|
||||
#define XE_RTP_RULE_MEDIA_VERSION(ver__) \
|
||||
|
|
@ -163,6 +177,20 @@ struct xe_reg_sr;
|
|||
{ .match_type = XE_RTP_MATCH_MEDIA_VERSION_RANGE, \
|
||||
.ver_start = ver_start__, .ver_end = ver_end__, }
|
||||
|
||||
/**
|
||||
* XE_RTP_RULE_MEDIA_VERSION_ANY_GT - Create rule matching media version on any GT
|
||||
* @ver__: Media IP version to match
|
||||
*
|
||||
* Like XE_RTP_RULE_MEDIA_VERSION, but it matches even if the current GT being
|
||||
* checked is not of the media type. It allows to add RTP entries to another
|
||||
* GT when the device contains a Media IP with that version.
|
||||
*
|
||||
* Refer to XE_RTP_RULES() for expected usage.
|
||||
*/
|
||||
#define XE_RTP_RULE_MEDIA_VERSION_ANY_GT(ver__) \
|
||||
{ .match_type = XE_RTP_MATCH_MEDIA_VERSION_ANY_GT, \
|
||||
.ver_start = ver__, }
|
||||
|
||||
/**
|
||||
* XE_RTP_RULE_IS_INTEGRATED - Create a rule matching integrated graphics devices
|
||||
*
|
||||
|
|
|
|||
|
|
@ -42,9 +42,11 @@ enum {
|
|||
XE_RTP_MATCH_SUBPLATFORM,
|
||||
XE_RTP_MATCH_GRAPHICS_VERSION,
|
||||
XE_RTP_MATCH_GRAPHICS_VERSION_RANGE,
|
||||
XE_RTP_MATCH_GRAPHICS_VERSION_ANY_GT,
|
||||
XE_RTP_MATCH_GRAPHICS_STEP,
|
||||
XE_RTP_MATCH_MEDIA_VERSION,
|
||||
XE_RTP_MATCH_MEDIA_VERSION_RANGE,
|
||||
XE_RTP_MATCH_MEDIA_VERSION_ANY_GT,
|
||||
XE_RTP_MATCH_MEDIA_STEP,
|
||||
XE_RTP_MATCH_INTEGRATED,
|
||||
XE_RTP_MATCH_DISCRETE,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user