diff mbox series

[v2,8/8] drm/i915/dsb: Decode DSB error interrupts

Message ID 20250207223159.14132-9-ville.syrjala@linux.intel.com (mailing list archive)
State New
Headers show
Series drm/i915/vrr: Fix DSB+VRR usage for PTL+ | expand

Commit Message

Ville Syrjälä Feb. 7, 2025, 10:31 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Decode the DSB error interrupts into human readable
form for easier debugging.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_dsb.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

Comments

Nautiyal, Ankit K Feb. 11, 2025, 8:54 a.m. UTC | #1
On 2/8/2025 4:01 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Decode the DSB error interrupts into human readable
> form for easier debugging.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>


> ---
>   drivers/gpu/drm/i915/display/intel_dsb.c | 15 ++++++++++++---
>   1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
> index aba57ddfbb92..db69b1c676f7 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsb.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsb.c
> @@ -860,7 +860,16 @@ void intel_dsb_irq_handler(struct intel_display *display,
>   	}
>   
>   	errors = tmp & dsb_error_int_status(display);
> -	if (errors)
> -		drm_err(display->drm, "[CRTC:%d:%s] DSB %d error interrupt: 0x%x\n",
> -			crtc->base.base.id, crtc->base.name, dsb_id, errors);
> +	if (errors & DSB_ATS_FAULT_INT_STATUS)
> +		drm_err(display->drm, "[CRTC:%d:%s] DSB %d ATS fault\n",
> +			crtc->base.base.id, crtc->base.name, dsb_id);
> +	if (errors & DSB_GTT_FAULT_INT_STATUS)
> +		drm_err(display->drm, "[CRTC:%d:%s] DSB %d GTT fault\n",
> +			crtc->base.base.id, crtc->base.name, dsb_id);
> +	if (errors & DSB_RSPTIMEOUT_INT_STATUS)
> +		drm_err(display->drm, "[CRTC:%d:%s] DSB %d response timeout\n",
> +			crtc->base.base.id, crtc->base.name, dsb_id);
> +	if (errors & DSB_POLL_ERR_INT_STATUS)
> +		drm_err(display->drm, "[CRTC:%d:%s] DSB %d poll error\n",
> +			crtc->base.base.id, crtc->base.name, dsb_id);
>   }
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
index aba57ddfbb92..db69b1c676f7 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb.c
@@ -860,7 +860,16 @@  void intel_dsb_irq_handler(struct intel_display *display,
 	}
 
 	errors = tmp & dsb_error_int_status(display);
-	if (errors)
-		drm_err(display->drm, "[CRTC:%d:%s] DSB %d error interrupt: 0x%x\n",
-			crtc->base.base.id, crtc->base.name, dsb_id, errors);
+	if (errors & DSB_ATS_FAULT_INT_STATUS)
+		drm_err(display->drm, "[CRTC:%d:%s] DSB %d ATS fault\n",
+			crtc->base.base.id, crtc->base.name, dsb_id);
+	if (errors & DSB_GTT_FAULT_INT_STATUS)
+		drm_err(display->drm, "[CRTC:%d:%s] DSB %d GTT fault\n",
+			crtc->base.base.id, crtc->base.name, dsb_id);
+	if (errors & DSB_RSPTIMEOUT_INT_STATUS)
+		drm_err(display->drm, "[CRTC:%d:%s] DSB %d response timeout\n",
+			crtc->base.base.id, crtc->base.name, dsb_id);
+	if (errors & DSB_POLL_ERR_INT_STATUS)
+		drm_err(display->drm, "[CRTC:%d:%s] DSB %d poll error\n",
+			crtc->base.base.id, crtc->base.name, dsb_id);
 }