Skip to content

Commit d6d87a1

Browse files
committed
drm/xe/xe3lpm: Add new "instance0" steering table
MCR steering on Xe3 media IP is almost the same as it was on Xe2, except for one new range (0x38D0D0 - 0x38D0FF) which has changed to an MCR "MEDIAINF" range on Xe3. Since we can always steer to grpid / instanceid 0 for MEDIAINF ranges, define a new "INSTANCE0" steering table for Xe3 media. Xe3 can continue to use the same OADDRM/GPMXMT table as Xe2. v2: Merge continuous entries 38D0D0 - 38F0FF Bspec: 74298 Signed-off-by: Matt Roper <[email protected]> Signed-off-by: Matt Atwood <[email protected]> Reviewed-by: Gustavo Sousa <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 2298d8a commit d6d87a1

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

drivers/gpu/drm/xe/xe_gt_mcr.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,17 @@ static const struct xe_mmio_range xe2lpm_instance0_steering_table[] = {
237237
{},
238238
};
239239

240+
static const struct xe_mmio_range xe3lpm_instance0_steering_table[] = {
241+
{ 0x384000, 0x3847DF }, /* GAM, rsvd, GAM */
242+
{ 0x384900, 0x384AFF }, /* GAM */
243+
{ 0x389560, 0x3895FF }, /* MEDIAINF */
244+
{ 0x38B600, 0x38B8FF }, /* L3BANK */
245+
{ 0x38C800, 0x38D07F }, /* GAM, MEDIAINF */
246+
{ 0x38D0D0, 0x38F0FF }, /* MEDIAINF, GAM */
247+
{ 0x393C00, 0x393C7F }, /* MEDIAINF */
248+
{},
249+
};
250+
240251
static void init_steering_l3bank(struct xe_gt *gt)
241252
{
242253
struct xe_mmio *mmio = &gt->mmio;
@@ -441,7 +452,10 @@ void xe_gt_mcr_init(struct xe_gt *gt)
441452
if (gt->info.type == XE_GT_TYPE_MEDIA) {
442453
drm_WARN_ON(&xe->drm, MEDIA_VER(xe) < 13);
443454

444-
if (MEDIA_VERx100(xe) >= 1301) {
455+
if (MEDIA_VER(xe) >= 30) {
456+
gt->steering[OADDRM].ranges = xe2lpm_gpmxmt_steering_table;
457+
gt->steering[INSTANCE0].ranges = xe3lpm_instance0_steering_table;
458+
} else if (MEDIA_VERx100(xe) >= 1301) {
445459
gt->steering[OADDRM].ranges = xe2lpm_gpmxmt_steering_table;
446460
gt->steering[INSTANCE0].ranges = xe2lpm_instance0_steering_table;
447461
} else {

0 commit comments

Comments
 (0)