diff mbox series

[RFC,3/4] drm/msm/dpu: add wb_idx to existing DRM prints in dpu_encoder

Message ID 1650574112-25294-4-git-send-email-quic_abhinavk@quicinc.com (mailing list archive)
State New, archived
Headers show
Series Separate wb_idx and intf_idx in dpu_encoder | expand

Commit Message

Abhinav Kumar April 21, 2022, 8:48 p.m. UTC
Add wb_idx to existing DRM prints in dpu_encoder and also
print the intf_mode so that its clear that for any INTF_CMD/VID
there will be a valid intf_idx and any INTF_WB_* there will be a
valid wb_idx.

Update the debugfs to add the same information. Here is a sample
output with this change:

root:/sys/kernel/debug/dri/0/encoder31# cat status
intf:1  wb:-1  vsync: 31  underrun: 0    mode: INTF_MODE_VIDEO
root:/sys/kernel/debug/dri/0/encoder33# cat status
intf:-1  wb:2  vsync:  7  underrun: 0    mode: INTF_MODE_WB_LINE

Also remove DPU_DEBUG_PHYS macros as its unused because the
respective dpu_encoder_phys_* files have their own macros.

Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 50 +++++++++++++----------------
 1 file changed, 22 insertions(+), 28 deletions(-)

Comments

Dmitry Baryshkov April 21, 2022, 10:47 p.m. UTC | #1
On 21/04/2022 23:48, Abhinav Kumar wrote:
> Add wb_idx to existing DRM prints in dpu_encoder and also
> print the intf_mode so that its clear that for any INTF_CMD/VID
> there will be a valid intf_idx and any INTF_WB_* there will be a
> valid wb_idx.
> 
> Update the debugfs to add the same information. Here is a sample
> output with this change:
> 
> root:/sys/kernel/debug/dri/0/encoder31# cat status
> intf:1  wb:-1  vsync: 31  underrun: 0    mode: INTF_MODE_VIDEO
> root:/sys/kernel/debug/dri/0/encoder33# cat status
> intf:-1  wb:2  vsync:  7  underrun: 0    mode: INTF_MODE_WB_LINE
> 
> Also remove DPU_DEBUG_PHYS macros as its unused because the
> respective dpu_encoder_phys_* files have their own macros.
> 
> Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
> ---
>   drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 50 +++++++++++++----------------
>   1 file changed, 22 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> index 054d7e4..871ce87 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> @@ -37,18 +37,6 @@
>   #define DPU_ERROR_ENC(e, fmt, ...) DPU_ERROR("enc%d " fmt,\
>   		(e) ? (e)->base.base.id : -1, ##__VA_ARGS__)
>   
> -#define DPU_DEBUG_PHYS(p, fmt, ...) DRM_DEBUG_ATOMIC("enc%d intf%d pp%d " fmt,\
> -		(p) ? (p)->parent->base.id : -1, \
> -		(p) ? (p)->intf_idx - INTF_0 : -1, \
> -		(p) ? ((p)->hw_pp ? (p)->hw_pp->idx - PINGPONG_0 : -1) : -1, \
> -		##__VA_ARGS__)
> -
> -#define DPU_ERROR_PHYS(p, fmt, ...) DPU_ERROR("enc%d intf%d pp%d " fmt,\
> -		(p) ? (p)->parent->base.id : -1, \
> -		(p) ? (p)->intf_idx - INTF_0 : -1, \
> -		(p) ? ((p)->hw_pp ? (p)->hw_pp->idx - PINGPONG_0 : -1) : -1, \
> -		##__VA_ARGS__)
> -
>   /*
>    * Two to anticipate panels that can do cmd/vid dynamic switching
>    * plan is to create all possible physical encoder types, and switch between
> @@ -262,12 +250,28 @@ static void _dpu_encoder_setup_dither(struct dpu_hw_pingpong *hw_pp, unsigned bp
>   	hw_pp->ops.setup_dither(hw_pp, &dither_cfg);
>   }
>   
> +static char *dpu_encoder_helper_get_intf_type(enum dpu_intf_mode intf_mode)
> +{

I'd rather convert this to switch() {...}

With that fixed:

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

> +	if (intf_mode == INTF_MODE_VIDEO)
> +		return "INTF_MODE_VIDEO";
> +	else if (intf_mode == INTF_MODE_CMD)
> +		return "INTF_MODE_CMD";
> +	else if (intf_mode == INTF_MODE_WB_BLOCK)
> +		return "INTF_MODE_WB_BLOCK";
> +	else if (intf_mode == INTF_MODE_WB_LINE)
> +		return "INTF_MODE_WB_LINE";
> +	else
> +		return "INTF_MODE_UNKNOWN";
> +}
> +
>   void dpu_encoder_helper_report_irq_timeout(struct dpu_encoder_phys *phys_enc,
>   		enum dpu_intr_idx intr_idx)
>   {
> -	DRM_ERROR("irq timeout id=%u, intf=%d, pp=%d, intr=%d\n",
> -		  DRMID(phys_enc->parent), phys_enc->intf_idx - INTF_0,
> -		  phys_enc->hw_pp->idx - PINGPONG_0, intr_idx);
> +	DRM_ERROR("irq timeout id=%u, intf_mode=%s intf=%d wb=%d, pp=%d, intr=%d\n",
> +			DRMID(phys_enc->parent),
> +			dpu_encoder_helper_get_intf_type(phys_enc->intf_mode),
> +			phys_enc->intf_idx - INTF_0, phys_enc->wb_idx - WB_0,
> +			phys_enc->hw_pp->idx - PINGPONG_0, intr_idx);
>   
>   	if (phys_enc->parent_ops->handle_frame_done)
>   		phys_enc->parent_ops->handle_frame_done(
> @@ -2042,22 +2046,12 @@ static int _dpu_encoder_status_show(struct seq_file *s, void *data)
>   	for (i = 0; i < dpu_enc->num_phys_encs; i++) {
>   		struct dpu_encoder_phys *phys = dpu_enc->phys_encs[i];
>   
> -		seq_printf(s, "intf:%d    vsync:%8d     underrun:%8d    ",
> -				phys->intf_idx - INTF_0,
> +		seq_printf(s, "intf:%d  wb:%d  vsync:%8d     underrun:%8d    ",
> +				phys->intf_idx - INTF_0, phys->wb_idx - WB_0,
>   				atomic_read(&phys->vsync_cnt),
>   				atomic_read(&phys->underrun_cnt));
>   
> -		switch (phys->intf_mode) {
> -		case INTF_MODE_VIDEO:
> -			seq_puts(s, "mode: video\n");
> -			break;
> -		case INTF_MODE_CMD:
> -			seq_puts(s, "mode: command\n");
> -			break;
> -		default:
> -			seq_puts(s, "mode: ???\n");
> -			break;
> -		}
> +		seq_printf(s, "mode: %s\n", dpu_encoder_helper_get_intf_type(phys->intf_mode));
>   	}
>   	mutex_unlock(&dpu_enc->enc_lock);
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
index 054d7e4..871ce87 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
@@ -37,18 +37,6 @@ 
 #define DPU_ERROR_ENC(e, fmt, ...) DPU_ERROR("enc%d " fmt,\
 		(e) ? (e)->base.base.id : -1, ##__VA_ARGS__)
 
-#define DPU_DEBUG_PHYS(p, fmt, ...) DRM_DEBUG_ATOMIC("enc%d intf%d pp%d " fmt,\
-		(p) ? (p)->parent->base.id : -1, \
-		(p) ? (p)->intf_idx - INTF_0 : -1, \
-		(p) ? ((p)->hw_pp ? (p)->hw_pp->idx - PINGPONG_0 : -1) : -1, \
-		##__VA_ARGS__)
-
-#define DPU_ERROR_PHYS(p, fmt, ...) DPU_ERROR("enc%d intf%d pp%d " fmt,\
-		(p) ? (p)->parent->base.id : -1, \
-		(p) ? (p)->intf_idx - INTF_0 : -1, \
-		(p) ? ((p)->hw_pp ? (p)->hw_pp->idx - PINGPONG_0 : -1) : -1, \
-		##__VA_ARGS__)
-
 /*
  * Two to anticipate panels that can do cmd/vid dynamic switching
  * plan is to create all possible physical encoder types, and switch between
@@ -262,12 +250,28 @@  static void _dpu_encoder_setup_dither(struct dpu_hw_pingpong *hw_pp, unsigned bp
 	hw_pp->ops.setup_dither(hw_pp, &dither_cfg);
 }
 
+static char *dpu_encoder_helper_get_intf_type(enum dpu_intf_mode intf_mode)
+{
+	if (intf_mode == INTF_MODE_VIDEO)
+		return "INTF_MODE_VIDEO";
+	else if (intf_mode == INTF_MODE_CMD)
+		return "INTF_MODE_CMD";
+	else if (intf_mode == INTF_MODE_WB_BLOCK)
+		return "INTF_MODE_WB_BLOCK";
+	else if (intf_mode == INTF_MODE_WB_LINE)
+		return "INTF_MODE_WB_LINE";
+	else
+		return "INTF_MODE_UNKNOWN";
+}
+
 void dpu_encoder_helper_report_irq_timeout(struct dpu_encoder_phys *phys_enc,
 		enum dpu_intr_idx intr_idx)
 {
-	DRM_ERROR("irq timeout id=%u, intf=%d, pp=%d, intr=%d\n",
-		  DRMID(phys_enc->parent), phys_enc->intf_idx - INTF_0,
-		  phys_enc->hw_pp->idx - PINGPONG_0, intr_idx);
+	DRM_ERROR("irq timeout id=%u, intf_mode=%s intf=%d wb=%d, pp=%d, intr=%d\n",
+			DRMID(phys_enc->parent),
+			dpu_encoder_helper_get_intf_type(phys_enc->intf_mode),
+			phys_enc->intf_idx - INTF_0, phys_enc->wb_idx - WB_0,
+			phys_enc->hw_pp->idx - PINGPONG_0, intr_idx);
 
 	if (phys_enc->parent_ops->handle_frame_done)
 		phys_enc->parent_ops->handle_frame_done(
@@ -2042,22 +2046,12 @@  static int _dpu_encoder_status_show(struct seq_file *s, void *data)
 	for (i = 0; i < dpu_enc->num_phys_encs; i++) {
 		struct dpu_encoder_phys *phys = dpu_enc->phys_encs[i];
 
-		seq_printf(s, "intf:%d    vsync:%8d     underrun:%8d    ",
-				phys->intf_idx - INTF_0,
+		seq_printf(s, "intf:%d  wb:%d  vsync:%8d     underrun:%8d    ",
+				phys->intf_idx - INTF_0, phys->wb_idx - WB_0,
 				atomic_read(&phys->vsync_cnt),
 				atomic_read(&phys->underrun_cnt));
 
-		switch (phys->intf_mode) {
-		case INTF_MODE_VIDEO:
-			seq_puts(s, "mode: video\n");
-			break;
-		case INTF_MODE_CMD:
-			seq_puts(s, "mode: command\n");
-			break;
-		default:
-			seq_puts(s, "mode: ???\n");
-			break;
-		}
+		seq_printf(s, "mode: %s\n", dpu_encoder_helper_get_intf_type(phys->intf_mode));
 	}
 	mutex_unlock(&dpu_enc->enc_lock);