[PATCH v4 1/2] drm/xe/mcr: Take vcs1/vecs1 into account for first media slice
Ashutosh Dixit <[email protected]>
| Newsgroups | org.freedesktop.lists.intel-xe |
|---|---|
| Message-ID | <[email protected]> |
vcs1 and vecs1 may also be present on the first media slice, so take vcs1/vecs1 also into account when determining if the first media slice is absent. Bspec: 67103, 77977 Cc: Gustavo Sousa <[email protected]> Cc: Matt Roper <[email protected]> Signed-off-by: Ashutosh Dixit <[email protected]> --- v2: Bug fix v3: Fix for BMG (Matt Roper) v4: Add TODO (Matt Roper) --- drivers/gpu/drm/xe/xe_gt_mcr.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_gt_mcr.c b/drivers/gpu/drm/xe/xe_gt_mcr.c index a97b236dab7c9..1949bf7d370ac 100644 --- a/drivers/gpu/drm/xe/xe_gt_mcr.c +++ b/drivers/gpu/drm/xe/xe_gt_mcr.c @@ -443,11 +443,16 @@ static void init_steering_dss(struct xe_gt *gt) static void init_steering_oaddrm(struct xe_gt *gt) { + u64 hwe_mask = XE_HW_ENGINE_VCS0 | XE_HW_ENGINE_VECS0; + + /* TODO: Add 'VD per SCMI' and 'VE per SCMI' values into 'struct xe_media_desc' */ + if (MEDIA_VERx100(gt_to_xe(gt)) >= 3500) + hwe_mask |= XE_HW_ENGINE_VCS1 | XE_HW_ENGINE_VECS1; /* * First instance is only terminated if the entire first media slice - * is absent (i.e., no VCS0 or VECS0). + * is absent (i.e., no engines in hwe_mask). */ - if (gt->info.engine_mask & (XE_HW_ENGINE_VCS0 | XE_HW_ENGINE_VECS0)) + if (gt->info.engine_mask & hwe_mask) gt->steering[OADDRM].group_target = 0; else gt->steering[OADDRM].group_target = 1; -- 2.54.0