drm/i915: record GEN2_IER in gtier[0] for pre-ilk error capture
authorJani Nikula <jani.nikula@intel.com>
Mon, 14 Apr 2025 11:29:44 +0000 (14:29 +0300)
committerJani Nikula <jani.nikula@intel.com>
Mon, 14 Apr 2025 18:34:17 +0000 (21:34 +0300)
In pre-ilk platforms the engine interrupts live in GEN2_IER. Capture it
as part of gtier instead of display.

Suggested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://lore.kernel.org/r/f637219fe3accb69963266773b9ef7c1131875e4.1744630147.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/i915_gpu_error.c

index df16c2b86b9da6bdb30203a54f3c8f4f8a012b01..b58bdb4b962bc7f92ecd3d8dad19b70c9762f7da 100644 (file)
@@ -1782,8 +1782,6 @@ static void gt_record_display_regs(struct intel_gt_coredump *gt)
                gt->ier = intel_uncore_read(uncore, VLV_IER);
        else if (HAS_PCH_SPLIT(i915))
                gt->ier = intel_uncore_read(uncore, DEIER);
-       else
-               gt->ier = intel_uncore_read(uncore, GEN2_IER);
 }
 
 /* Capture all other registers that GuC doesn't capture. */
@@ -1822,6 +1820,9 @@ static void gt_record_global_nonguc_regs(struct intel_gt_coredump *gt)
        } else if (HAS_PCH_SPLIT(i915)) {
                gt->gtier[0] = intel_uncore_read(uncore, GTIER);
                gt->ngtier = 1;
+       } else {
+               gt->gtier[0] = intel_uncore_read(uncore, GEN2_IER);
+               gt->ngtier = 1;
        }
 
        gt->eir = intel_uncore_read(uncore, EIR);