[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 openbmc
mailing list