Re: [PATCH v2 1/1] lib/vsprintf: Add support for printing V4L2 and DRM fourccs
From: Mauro Carvalho Chehab
Date: Fri Apr 03 2020 - 10:22:26 EST
Em Fri, 3 Apr 2020 14:10:53 +0200
Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx> escreveu:
> On 03/04/2020 11.11, Sakari Ailus wrote:
> > Add a printk modifier %ppf (for pixel format) for printing V4L2 and DRM
> > pixel formats denoted by 4ccs. The 4cc encoding is the same for both so
> > the same implementation can be used.
>
> This seems quite niche to me, I'm not sure that belongs in vsprintf.c.
It is used on different subsystems. At least media, drm and input (yes,
there are some input multi-touch devices with return images using
"GREY" fourcc - see drivers/input/touchscreen/sur40.c).
> What's wrong with having a
>
> char *fourcc_string(char *buf, u32 x)
>
> that formats x into buf and returns buf, so it can be used in a
>
> char buf[8];
> pr_debug("bla: %s\n", fourcc_string(buf, x))
>
> Or, for that matter, since it's for debugging, why not just print x with
> 0x%08x?
That's about what it has been done so far, using different solutions
on different places. Some display hex values, others display fourcc
(usually ignoring the BE case). We'd like to have a common solution
that won't be subsystem-specific and will handle it on a proper unified
way.
With regards to ex values, see for example the GREY format:
V4L2_PIX_FMT_GREY ('GREY')
when someone reads 'GREY', this is easily understandable as a grey image
format, even by someone that it is not familiar with 4cc codes. Same is
true for several other widely used formats, like BGR and RGB.
If you see its hexa representation, 0x47524559 is a lot more obscure.
Thanks,
Mauro