From 276486251a9033afd902ea59a55feba49312476c Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Mon, 8 Jan 2018 13:40:44 +0100 Subject: [PATCH] drm/tegra: dc: Restore YUV overlay support Commit 155c126de45c ("drm/tegra: dc: Implement legacy blending") broke support for YUV overlays by accident. The reason is that YUV formats are considered opaque because they have no alpha component, but on the other hand no corresponding format with an alpha component can be returned. In the case of YUV formats, the opaque format is the same as the alpha format, so add the special case to restore YUV overlay support. Reported-by: Dmitry Osipenko Signed-off-by: Thierry Reding --- drivers/gpu/drm/tegra/plane.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c index 154b4d337d0a8..36a06a9936982 100644 --- a/drivers/gpu/drm/tegra/plane.c +++ b/drivers/gpu/drm/tegra/plane.c @@ -276,6 +276,11 @@ bool tegra_plane_format_has_alpha(unsigned int format) int tegra_plane_format_get_alpha(unsigned int opaque, unsigned int *alpha) { + if (tegra_plane_format_is_yuv(opaque, NULL)) { + *alpha = opaque; + return 0; + } + switch (opaque) { case WIN_COLOR_DEPTH_B5G5R5X1: *alpha = WIN_COLOR_DEPTH_B5G5R5A1; -- 2.39.5