Hi,
On 02/09/2025 11:32, Maxime Ripard wrote:
> The tidss dispc driver has a table associating fourcc's and their
> hardware representation.
>
> So far, we only needed to do the fourcc to hardware lookup, but we'll
> need to do the hardware to fourcc lookup in the future, so let's provide
> a function to do so.
>
> Signed-off-by: Maxime Ripard <mripard@kernel.org>
(Assuming this is still needed in the future versions)
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Tomi
> ---
> drivers/gpu/drm/tidss/tidss_dispc.c | 11 +++++++++++
> drivers/gpu/drm/tidss/tidss_dispc.h | 1 +
> 2 files changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/tidss/tidss_dispc.c b/drivers/gpu/drm/tidss/tidss_dispc.c
> index 7d94c1142e8083dab00fcf5c652ae40f98baeabf..32248b5f71b7566dc33d7a7db0efb26d3a9ed1c3 100644
> --- a/drivers/gpu/drm/tidss/tidss_dispc.c
> +++ b/drivers/gpu/drm/tidss/tidss_dispc.c
> @@ -2117,10 +2117,21 @@ static const struct {
> { DRM_FORMAT_UYVY, 0x3f, },
>
> { DRM_FORMAT_NV12, 0x3d, },
> };
>
> +u32 dispc_plane_find_fourcc_by_dss_code(u8 code)
> +{
> + unsigned int i;
> +
> + for (i = 0; i < ARRAY_SIZE(dispc_color_formats); ++i)
> + if (dispc_color_formats[i].dss_code == code)
> + return dispc_color_formats[i].fourcc;
> +
> + return 0;
> +}
> +
> static void dispc_plane_set_pixel_format(struct dispc_device *dispc,
> u32 hw_plane, u32 fourcc)
> {
> unsigned int i;
>
> diff --git a/drivers/gpu/drm/tidss/tidss_dispc.h b/drivers/gpu/drm/tidss/tidss_dispc.h
> index 60c1b400eb8933dd13efd4ae3d09dc9569eed96f..849ec984026e223de7c8a55a4b5672c2262f38c0 100644
> --- a/drivers/gpu/drm/tidss/tidss_dispc.h
> +++ b/drivers/gpu/drm/tidss/tidss_dispc.h
> @@ -146,10 +146,11 @@ int dispc_plane_check(struct dispc_device *dispc, u32 hw_plane,
> void dispc_plane_setup(struct dispc_device *dispc, u32 hw_plane,
> const struct drm_plane_state *state,
> u32 hw_videoport);
> void dispc_plane_enable(struct dispc_device *dispc, u32 hw_plane, bool enable);
> const u32 *dispc_plane_formats(struct dispc_device *dispc, unsigned int *len);
> +u32 dispc_plane_find_fourcc_by_dss_code(u8 code);
>
> int dispc_init(struct tidss_device *tidss);
> void dispc_remove(struct tidss_device *tidss);
>
> #endif
>