Commit 0b0f7282 authored by Benoit Parrot's avatar Benoit Parrot Committed by Tomi Valkeinen
Browse files

drm/omap: Add ovl checking funcs to dispc_ops



In order to be able to dynamically assign overlays to planes we need to
be able to asses the overlay capabilities.

Add a helper function to be able to retrieve the supported capabilities
of an overlay.

And export the function to check if a fourcc is supported on a given
overlay.

Signed-off-by: default avatarBenoit Parrot <bparrot@ti.com>
Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211117141928.771082-4-narmstrong@baylibre.com
parent d484c20d
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1281,7 +1281,7 @@ static u32 dispc_ovl_get_burst_size(struct dispc_device *dispc,
	return dispc->feat->burst_size_unit * 8;
}

static bool dispc_ovl_color_mode_supported(struct dispc_device *dispc,
bool dispc_ovl_color_mode_supported(struct dispc_device *dispc,
				    enum omap_plane_id plane, u32 fourcc)
{
	const u32 *modes;
@@ -2489,6 +2489,11 @@ static int dispc_ovl_calc_scaling_44xx(struct dispc_device *dispc,
	return 0;
}

enum omap_overlay_caps dispc_ovl_get_caps(struct dispc_device *dispc, enum omap_plane_id plane)
{
	return dispc->feat->overlay_caps[plane];
}

#define DIV_FRAC(dividend, divisor) \
	((dividend) * 100 / (divisor) - ((dividend) / (divisor) * 100))

+3 −0
Original line number Diff line number Diff line
@@ -398,6 +398,9 @@ const u32 *dispc_ovl_get_color_modes(struct dispc_device *dispc,
					    enum omap_plane_id plane);

void dispc_ovl_get_max_size(struct dispc_device *dispc, u16 *width, u16 *height);
bool dispc_ovl_color_mode_supported(struct dispc_device *dispc,
				    enum omap_plane_id plane, u32 fourcc);
enum omap_overlay_caps dispc_ovl_get_caps(struct dispc_device *dispc, enum omap_plane_id plane);

u32 dispc_read_irqstatus(struct dispc_device *dispc);
void dispc_clear_irqstatus(struct dispc_device *dispc, u32 mask);