[PATCH 6/6] media: aspeed: richer debugfs

Paul Menzel pmenzel at molgen.mpg.de
Thu Oct 14 17:54:39 AEDT 2021


Dear Jammy,


Am 14.10.21 um 05:48 schrieb Jammy Huang:
> updated as below:
> 
> Caputre:

Capture

>    Mode                : Direct fetch
>    VGA bpp mode        : 32
>    Signal              : Unlock
>    Width               : 1920
>    Height              : 1080
>    FRC                 : 30
> 
> Compression:
>    Format              : JPEG
>    Subsampling         : 444
>    Quality             : 0
>    HQ Mode             : N/A
>    HQ Quality          : 0
>    Mode                : N/A
> 
> Performance:
>    Frame#              : 0
>    Frame Duration(ms)  :
>      Now               : 0
>      Min               : 0
>      Max               : 0
>    FPS                 : 0

Do you have output with non-zero values? ;-)

On what device did you test this?

> Signed-off-by: Jammy Huang <jammy_huang at aspeedtech.com>
> ---
>   drivers/media/platform/aspeed-video.c | 41 +++++++++++++++++++++++++--
>   1 file changed, 38 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c
> index e1031fd09ac6..f2e5c49ee906 100644
> --- a/drivers/media/platform/aspeed-video.c
> +++ b/drivers/media/platform/aspeed-video.c
> @@ -464,6 +464,9 @@ static const struct v4l2_dv_timings_cap aspeed_video_timings_cap = {
>   	},
>   };
>   
> +static const char * const compress_mode_str[] = {"DCT Only",
> +	"DCT VQ mix 2-color", "DCT VQ mix 4-color"};
> +
>   static unsigned int debug;
>   
>   static void aspeed_video_init_jpeg_table(u32 *table, bool yuv420)
> @@ -1077,8 +1080,6 @@ static void aspeed_video_set_resolution(struct aspeed_video *video)
>   
>   static void aspeed_video_update_regs(struct aspeed_video *video)
>   {
> -	static const char * const compress_mode_str[] = {"DCT Only",
> -		"DCT VQ mix 2-color", "DCT VQ mix 4-color"};
>   	u32 comp_ctrl =	FIELD_PREP(VE_COMP_CTRL_DCT_LUM, video->jpeg_quality) |
>   		FIELD_PREP(VE_COMP_CTRL_DCT_CHR, video->jpeg_quality | 0x10) |
>   		FIELD_PREP(VE_COMP_CTRL_EN_HQ, video->hq_mode) |
> @@ -1795,9 +1796,29 @@ static const struct vb2_ops aspeed_video_vb2_ops = {
>   static int aspeed_video_debugfs_show(struct seq_file *s, void *data)
>   {
>   	struct aspeed_video *v = s->private;
> +	u32 val08;

Why does `08` refer to?

>   
>   	seq_puts(s, "\n");
>   
> +	val08 = aspeed_video_read(v, VE_CTRL);
> +	seq_puts(s, "Caputre:\n");
> +	if (FIELD_GET(VE_CTRL_DIRECT_FETCH, val08)) {
> +		seq_printf(s, "  %-20s:\tDirect fetch\n", "Mode");
> +		seq_printf(s, "  %-20s:\t%s\n", "VGA bpp mode",
> +			   FIELD_GET(VE_CTRL_INT_DE, val08) ? "16" : "32");
> +	} else {
> +		seq_printf(s, "  %-20s:\tSync\n", "Mode");
> +		seq_printf(s, "  %-20s:\t%s\n", "Video source",
> +			   FIELD_GET(VE_CTRL_SOURCE, val08) ?
> +			   "external" : "internal");
> +		seq_printf(s, "  %-20s:\t%s\n", "DE source",
> +			   FIELD_GET(VE_CTRL_INT_DE, val08) ?
> +			   "internal" : "external");
> +		seq_printf(s, "  %-20s:\t%s\n", "Cursor overlay",
> +			   FIELD_GET(VE_CTRL_AUTO_OR_CURSOR, val08) ?
> +			   "Without" : "With");
> +	}
> +
>   	seq_printf(s, "  %-20s:\t%s\n", "Signal",
>   		   v->v4l2_input_status ? "Unlock" : "Lock");
>   	seq_printf(s, "  %-20s:\t%d\n", "Width", v->pix_fmt.width);
> @@ -1806,6 +1827,21 @@ static int aspeed_video_debugfs_show(struct seq_file *s, void *data)
>   
>   	seq_puts(s, "\n");
>   
> +	seq_puts(s, "Compression:\n");
> +	seq_printf(s, "  %-20s:\t%s\n", "Format",
> +		   v->partial_jpeg ? "Aspeed" : "JPEG");
> +	seq_printf(s, "  %-20s:\t%s\n", "Subsampling",
> +		   v->yuv420 ? "420" : "444");
> +	seq_printf(s, "  %-20s:\t%d\n", "Quality", v->jpeg_quality);
> +	seq_printf(s, "  %-20s:\t%s\n", "HQ Mode",
> +		   v->partial_jpeg ? (v->hq_mode ? "on" : "off") : "N/A");
> +	seq_printf(s, "  %-20s:\t%d\n", "HQ Quality", v->jpeg_hq_quality);
> +	seq_printf(s, "  %-20s:\t%s\n", "Mode",
> +		   v->partial_jpeg ? compress_mode_str[v->compression_mode]
> +				   : "N/A");
> +
> +	seq_puts(s, "\n");
> +
>   	seq_puts(s, "Performance:\n");
>   	seq_printf(s, "  %-20s:\t%d\n", "Frame#", v->sequence);
>   	seq_printf(s, "  %-20s:\n", "Frame Duration(ms)");

Remove the colon, and add a space before (?

> @@ -1814,7 +1850,6 @@ static int aspeed_video_debugfs_show(struct seq_file *s, void *data)
>   	seq_printf(s, "    %-18s:\t%d\n", "Max", v->perf.duration_max);
>   	seq_printf(s, "  %-20s:\t%d\n", "FPS", 1000/(v->perf.totaltime/v->sequence));
>   
> -
>   	return 0;
>   }


Kind regards,

Paul


More information about the Linux-aspeed mailing list