Patch "drm/i915/xelpmp: Consider GSI offset when doing MCR lookups" has been added to the 6.2-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/i915/xelpmp: Consider GSI offset when doing MCR lookups

to the 6.2-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-i915-xelpmp-consider-gsi-offset-when-doing-mcr-l.patch
and it can be found in the queue-6.2 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 819bb412c9eb27fcf2dd69d9d1f94d7c19785d07
Author: Matt Roper <matthew.d.roper@xxxxxxxxx>
Date:   Mon Feb 13 16:19:06 2023 -0800

    drm/i915/xelpmp: Consider GSI offset when doing MCR lookups
    
    [ Upstream commit 33c25354939099b76ecb6c82d1c7c50400fbcca6 ]
    
    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: a7ec65fc7e83 ("drm/i915/xelpmp: Add multicast steering for media GT")
    Signed-off-by: Matt Roper <matthew.d.roper@xxxxxxxxx>
    Reviewed-by: Radhakrishna Sripada <radhakrishna.sripada@xxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230214001906.1477370-1-matthew.d.roper@xxxxxxxxx
    (cherry picked from commit d6683bbe70d4cdbf3da6acecf7d569cc6f0b4382)
    Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c
index 58ea3325bbdaa..fa2b9c48f39b2 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_mcr.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt_mcr.c
@@ -464,12 +464,15 @@ static bool reg_needs_read_steering(struct intel_gt *gt,
 				    i915_mcr_reg_t reg,
 				    enum intel_steering_type type)
 {
-	const u32 offset = i915_mmio_reg_offset(reg);
+	u32 offset = i915_mmio_reg_offset(reg);
 	const struct intel_mmio_range *entry;
 
 	if (likely(!gt->steering_table[type]))
 		return false;
 
+	if (IS_GSI_REG(offset))
+		offset += gt->uncore->gsi_offset;
+
 	for (entry = gt->steering_table[type]; entry->end; entry++) {
 		if (offset >= entry->start && offset <= entry->end)
 			return true;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux