Skip to content

Commit 33c2535

Browse files
mattropejnikula
authored andcommitted
drm/i915/xelpmp: Consider GSI offset when doing MCR lookups
MCR range tables use the final MMIO offset of a register (including the 0x380000 GSI offset when applicable). Since the i915_mcr_reg_t passed as a parameter during steering lookup does not include the GSI offset, we need to add it back in for GSI registers before searching the tables. Fixes: a7ec65f ("drm/i915/xelpmp: Add multicast steering for media GT") Signed-off-by: Matt Roper <[email protected]> Reviewed-by: Radhakrishna Sripada <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] (cherry picked from commit d6683bb) Signed-off-by: Jani Nikula <[email protected]>
1 parent 8038510 commit 33c2535

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/gpu/drm/i915/gt/intel_gt_mcr.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,12 +559,15 @@ static bool reg_needs_read_steering(struct intel_gt *gt,
559559
i915_mcr_reg_t reg,
560560
enum intel_steering_type type)
561561
{
562-
const u32 offset = i915_mmio_reg_offset(reg);
562+
u32 offset = i915_mmio_reg_offset(reg);
563563
const struct intel_mmio_range *entry;
564564

565565
if (likely(!gt->steering_table[type]))
566566
return false;
567567

568+
if (IS_GSI_REG(offset))
569+
offset += gt->uncore->gsi_offset;
570+
568571
for (entry = gt->steering_table[type]; entry->end; entry++) {
569572
if (offset >= entry->start && offset <= entry->end)
570573
return true;

0 commit comments

Comments
 (0)