[PATCH] drm: rcar-du: Fix pitch handling for fully planar YUV formats
Kieran Bingham
kieran.bingham at ideasonboard.com
Wed Sep 9 16:06:01 UTC 2020
Hi Ville, Laurent,
On 09/09/2020 13:08, Ville Syrjälä wrote:
> On Tue, Sep 08, 2020 at 05:05:48PM +0100, Kieran Bingham wrote:
>> Hi Laurent,
>>
>> On 08/09/2020 16:52, Laurent Pinchart wrote:
>>> Hi Kieran,
>>>
>>> On Tue, Sep 08, 2020 at 04:42:58PM +0100, Kieran Bingham wrote:
>>>> On 06/08/2020 03:26, Laurent Pinchart wrote:
>>>>> When creating a frame buffer, the driver verifies that the pitches for
>>>>> the chroma planes match the luma plane. This is done incorrectly for
>>>>> fully planar YUV formats, without taking horizontal subsampling into
>>>>> account. Fix it.
>>>>>
>>>>> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
>>>>> ---
> <snip>
>>>>> }, {
>>>>> .fourcc = DRM_FORMAT_YVU444,
>>>>> .v4l2 = V4L2_PIX_FMT_YVU444M,
>>>>> .bpp = 24,
>>>>> .planes = 3,
>>>>> + .hsub = 1,
>>>>> },
>>>>> };
>>>>>
>>>>
>>>> I wonder when we can have a global/generic set of format tables so that
>>>> all of this isn't duplicated on a per-driver basis.
>>>
>>> Note that this table also contains register values, so at least that
>>> part will need to be kept. For the rest, do you mean a 4CC library that
>>
>> Yes, the driver specific mappings of course need to be driver specific.
>>
>>
>>> would be shared between DRM/KMS and V4L2 ? That's a great idea. Too bad
>>> it has been shot down when patches were submitted :-S
>>
>>
>> /o\ ... It just seems like so much data replication that must be used
>> by many drivers.
>>
>> Even without mapping the DRM/V4L2 fourccs - even a common table in each
>> subsystem would be beneficial wouldn't it?
>>
>> I mean - RCar-DU isn't the only device that needs to know how many
>> planes DRM_FORMAT_YUV422 has, or what horizontal subsampling it uses?
>>
>> Anyway, that's not an issue with this patch, it just seems glaring to me
>> that these entries are common across all hardware that use them ...
>>
>> (the bpp/planes/subsampling of course, not the hardware specific registers).
>
> See drm_format_info() & co.
Aha perfect, That's what I was looking for.
I'm glad to see that's common (at least for the DRM parts).
The question is - why aren't we using it in RCar-DU.
Laurent, would you see any issue in obtaining the struct drm_format_info
rather than re-encoding all the data in these tables?
And if not - would you prefer to convert on top of this patch, or
preceding this patch?
Or simply prefer to keep the existing tables ?
Given that this fixes a bug - I'd say getting this patch in now is
probably best.
--
Regards
--
Kieran
More information about the dri-devel
mailing list