Skip to content

Commit 7d113cc

Browse files
gmitulsurajk8
authored andcommitted
drm/i915/bmg: Read display register timeout
Log the address of the register that caused the timeout interrupt by reading RMTIMEOUTREG_CAPTURE --v2: - Update RMTIMEOUTREG_CAPTURE naming (Suraj) --v3: - XeLpdp naming convention. - Use if condition instead of else if Signed-off-by: Mitul Golani <[email protected]> Reviewed-by: Suraj Kandpal <[email protected]> Signed-off-by: Suraj Kandpal <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 372f244 commit 7d113cc

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

drivers/gpu/drm/i915/display/intel_display_irq.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -906,6 +906,13 @@ gen8_de_misc_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
906906
intel_pmdemand_irq_handler(dev_priv);
907907
found = true;
908908
}
909+
910+
if (iir & XELPDP_RM_TIMEOUT) {
911+
u32 val = intel_uncore_read(&dev_priv->uncore,
912+
RM_TIMEOUT_REG_CAPTURE);
913+
drm_warn(&dev_priv->drm, "Register Access Timeout = 0x%x\n", val);
914+
found = true;
915+
}
909916
} else if (iir & GEN8_DE_MISC_GSE) {
910917
intel_opregion_asle_intr(dev_priv);
911918
found = true;
@@ -1710,7 +1717,7 @@ void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
17101717

17111718
if (DISPLAY_VER(dev_priv) >= 14) {
17121719
de_misc_masked |= XELPDP_PMDEMAND_RSPTOUT_ERR |
1713-
XELPDP_PMDEMAND_RSP;
1720+
XELPDP_PMDEMAND_RSP | XELPDP_RM_TIMEOUT;
17141721
} else if (DISPLAY_VER(dev_priv) >= 11) {
17151722
enum port port;
17161723

drivers/gpu/drm/i915/i915_reg.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2396,6 +2396,7 @@
23962396

23972397
/* Display Internal Timeout Register */
23982398
#define RM_TIMEOUT _MMIO(0x42060)
2399+
#define RM_TIMEOUT_REG_CAPTURE _MMIO(0x420E0)
23992400
#define MMIO_TIMEOUT_US(us) ((us) << 0)
24002401

24012402
/* interrupts */
@@ -2574,6 +2575,7 @@
25742575
#define GEN8_DE_MISC_IMR _MMIO(0x44464)
25752576
#define GEN8_DE_MISC_IIR _MMIO(0x44468)
25762577
#define GEN8_DE_MISC_IER _MMIO(0x4446c)
2578+
#define XELPDP_RM_TIMEOUT REG_BIT(29)
25772579
#define XELPDP_PMDEMAND_RSPTOUT_ERR REG_BIT(27)
25782580
#define GEN8_DE_MISC_GSE REG_BIT(27)
25792581
#define GEN8_DE_EDP_PSR REG_BIT(19)

0 commit comments

Comments
 (0)