Skip to content

Commit d21d44d

Browse files
mwajdeczThomas Hellström
authored andcommitted
drm/xe/vf: Don't touch GuC irq registers if using memory irqs
On platforms where VFs are using memory based interrupts, we missed invalid access to no longer existing interrupt registers, as we keep them marked with XE_REG_OPTION_VF. To fix that just either setup memirq vectors in GuC or enable legacy interrupts. Fixes: aef4eb7 ("drm/xe/vf: Setup memory based interrupts in GuC") Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Matt Roper <matthew.d.roper@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240617154736.685-1-michal.wajdeczko@intel.com (cherry picked from commit f0ccd2d) Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
1 parent 6ba59ff commit d21d44d

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/gpu/drm/xe/xe_guc.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -631,15 +631,15 @@ int xe_guc_enable_communication(struct xe_guc *guc)
631631
struct xe_device *xe = guc_to_xe(guc);
632632
int err;
633633

634-
guc_enable_irq(guc);
635-
636634
if (IS_SRIOV_VF(xe) && xe_device_has_memirq(xe)) {
637635
struct xe_gt *gt = guc_to_gt(guc);
638636
struct xe_tile *tile = gt_to_tile(gt);
639637

640638
err = xe_memirq_init_guc(&tile->sriov.vf.memirq, guc);
641639
if (err)
642640
return err;
641+
} else {
642+
guc_enable_irq(guc);
643643
}
644644

645645
xe_mmio_rmw32(guc_to_gt(guc), PMINTRMSK,

0 commit comments

Comments
 (0)