mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Vishal Sagar <vishal.sagar@amd.com>,
	Anatoliy Klymenko <anatoliy.klymenko@amd.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Michal Simek <michal.simek@amd.com>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 04/10] drm/fourcc: Add DRM_FORMAT_Y10_LE32
Date: Wed, 15 Jan 2025 16:34:09 +0200	[thread overview]
Message-ID: <0004c685-b8c6-4df1-acb4-7c80a9d3255e@ideasonboard.com> (raw)
In-Reply-To: <CAMuHMdXrdV4YRo1nMCVMTga=M+16GT8GkWe+Rk1DkgDZ=abGag@mail.gmail.com>

On 15/01/2025 16:08, Geert Uytterhoeven wrote:
> Hi Tomi,
> 
> On Wed, Jan 15, 2025 at 2:46 PM Tomi Valkeinen
> <tomi.valkeinen@ideasonboard.com> wrote:
>> On 15/01/2025 14:52, Geert Uytterhoeven wrote:
>>> On Wed, Jan 15, 2025 at 1:42 PM Tomi Valkeinen
>>> <tomi.valkeinen@ideasonboard.com> wrote:
>>>> On 15/01/2025 14:33, Geert Uytterhoeven wrote:
>>>>> On Wed, Jan 15, 2025 at 12:11 PM Tomi Valkeinen
>>>>> <tomi.valkeinen@ideasonboard.com> wrote:
>>>>>> On 15/01/2025 12:33, Geert Uytterhoeven wrote:
>>>>>>> On Wed, Jan 15, 2025 at 10:04 AM Tomi Valkeinen
>>>>>>> <tomi.valkeinen@ideasonboard.com> wrote:
>>>>>>>> Add Y10_LE32, a 10 bit greyscale format, with 3 pixels packed into
>>>>>>>> 32-bit container.
>>>>>>>>
>>>>>>>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
>>>>>>>
>>>>>>> Thanks for your patch!
>>>>>>>
>>>>>>>> --- a/include/uapi/drm/drm_fourcc.h
>>>>>>>> +++ b/include/uapi/drm/drm_fourcc.h
>>>>>>>> @@ -408,6 +408,7 @@ extern "C" {
>>>>>>>>      /* Greyscale formats */
>>>>>>>>
>>>>>>>>      #define DRM_FORMAT_Y8          fourcc_code('G', 'R', 'E', 'Y')  /* 8-bit Y-only */
>>>>>>>> +#define DRM_FORMAT_Y10_LE32    fourcc_code('Y', 'P', 'A', '4')  /* [31:0] x:Y2:Y1:Y0 2:10:10:10 little endian */
>>>>>>>
>>>>>>> R10_LE32? Or R10_PA4?
>>>>>>
>>>>>> Can we discuss the "R" vs "Y" question under the cover letter? There's
>>>>>> some more context about it in there.
>>>>>
>>>>> Sorry, hadn't read the cover letter. I got attracted by "Y8" and "Y10".
>>>>>
>>>>>> I took the "LE32" from Gstreamer's format. Maybe it's a bit pointless.
>>>>>>
>>>>>> I don't know if it makes sense to add the fourcc to the DRM format name.
>>>>>> The fourcc is very limited. Rather, we could, say, have
>>>>>> DRM_FORMAT_Y10_PACKED_32 (or "R", if you insist =).
>>>>>>
>>>>>>> Does LE32 have a meaning?  My first guess just reading the subject
>>>>>>> was wrong ("little endian  32-bit" ;-)
>>>>>>
>>>>>> I'm not sure I follow. It's little-endian. The pixel group/unit is a
>>>>>> 32-bit number, where the leftmost pixel on the screen is in bits 9-0,
>>>>>> and the padding is in bits 31-30, and stored in memory as little-endian.
>>>>>
>>>>> Ah, the "LE" applies to the pixels inside each word.
>>>>
>>>> No, to the 32-bit container.
>>>>
>>>>> DRM formats stored in memory are always little-endian, unless the
>>>>> DRM_FORMAT_BIG_ENDIAN bit is set, which is what I was hinting
>>>>> at...
>>>>
>>>> Indeed you're right. The "LE" is pointless. So back to the bike-shedding
>>>> about the name =).
>>>
>>> As the order inside the container is Y2:Y1:Y0, it _is_ little endian.
>>> Cfr.
>>>
>>> #define DRM_FORMAT_YUYV  fourcc_code('Y', 'U', 'Y', 'V') /* [31:0]
>>> Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */
>>
>> Hmm, I see. I hadn't thought LE in that context, but I think it makes
>> sense when there are multiple pixels in one container. So the "little
>> endian" above would refer to the order of Y1 and Y0. So is Y1 the
>> least-significant-pixel? =)
> 
> No, Y0 is the least-significant member of the container, which
> corresponds to the first pixel ("little end first").

In the number 0x1234, 0x34 is the least-significant byte, and stored 
first in memory in little endian.

So, similarly, with Y0:Y1, Y1 is stored first in little-endian order, so 
it's the least-significant-pixel =).

>> But, say, in
>>
>> #define DRM_FORMAT_RG88         fourcc_code('R', 'G', '8', '8') /* [15:0] R:G
>> 8:8 little endian */
>>
>> the "little endian" refers to the 16-bit value itself? Which is not
>> necessary, as the default assumption is little endian.
> 
> I think so.
> 
>> In any case, when considering your latest point... "LE" in the name
>> makes sense? But with a quick look I didn't find any formats that would
>> have "big endian pixel order", so maybe we can just assume little endian
>> pixel order too.
> 
> [CDR][124] have. See the descriptions of the commits that introduced
> them for the rationale behind this:
> 
> b92db7e4fe740daa drm/fourcc: Add DRM_FORMAT_D[1248]
> d093100b425df6fe drm/fourcc: Add DRM_FORMAT_R[124]
> e5bd7e3e4a68f0be drm/fourcc: Add DRM_FORMAT_C[124]

Ah, I see. But they don't call the pixel ordering "big endian".

Well, this is all somewhat beside the point. So is "_Y10_32" (or 
"_R10_32" if we use R) fine?

  Tomi


  reply	other threads:[~2025-01-15 14:34 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-15  9:03 [PATCH v2 00/10] drm: Add new pixel formats for Xilinx Zynqmp Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 01/10] drm/fourcc: Add warning for bad bpp Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 02/10] drm/fourcc: Add DRM_FORMAT_XV15/XV20 Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 03/10] drm/fourcc: Add DRM_FORMAT_Y8 Tomi Valkeinen
2025-01-15 10:30   ` Geert Uytterhoeven
2025-01-15 11:12     ` Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 04/10] drm/fourcc: Add DRM_FORMAT_Y10_LE32 Tomi Valkeinen
2025-01-15 10:33   ` Geert Uytterhoeven
2025-01-15 11:11     ` Tomi Valkeinen
2025-01-15 12:33       ` Geert Uytterhoeven
2025-01-15 12:42         ` Tomi Valkeinen
2025-01-15 12:52           ` Geert Uytterhoeven
2025-01-15 13:46             ` Tomi Valkeinen
2025-01-15 14:08               ` Geert Uytterhoeven
2025-01-15 14:34                 ` Tomi Valkeinen [this message]
2025-01-15 14:49                   ` Geert Uytterhoeven
2025-01-15 16:07                     ` Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 05/10] drm/fourcc: Add DRM_FORMAT_X403 Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 06/10] drm: xlnx: zynqmp: Use drm helpers when calculating buffer sizes Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 07/10] drm: xlnx: zynqmp: Add support for XV15 & XV20 Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 08/10] drm: xlnx: zynqmp: Add support for Y8 and Y10_LE32 Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 09/10] drm: xlnx: zynqmp: Add support for X403 Tomi Valkeinen
2025-01-15  9:03 ` [PATCH v2 10/10] drm: xlnx: zynqmp: Fix max dma segment size Tomi Valkeinen
2025-02-06 19:48   ` Sean Anderson
2025-02-11 13:00     ` Tomi Valkeinen
2025-01-15 11:13 ` [PATCH v2 00/10] drm: Add new pixel formats for Xilinx Zynqmp Dmitry Baryshkov
2025-01-15 12:11   ` Tomi Valkeinen
2025-02-12 16:37   ` Tomi Valkeinen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0004c685-b8c6-4df1-acb4-7c80a9d3255e@ideasonboard.com \
    --to=tomi.valkeinen@ideasonboard.com \
    --cc=airlied@gmail.com \
    --cc=anatoliy.klymenko@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=geert@linux-m68k.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=michal.simek@amd.com \
    --cc=mripard@kernel.org \
    --cc=simona@ffwll.ch \
    --cc=tzimmermann@suse.de \
    --cc=vishal.sagar@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®