From: Aaron Kling <[email protected]>

This format is used by AOSP for video playback among other things.

Signed-off-by: Aaron Kling <[email protected]>
---
 drivers/gpu/drm/tegra/dc.c    | 3 +++
 drivers/gpu/drm/tegra/hub.c   | 1 +
 drivers/gpu/drm/tegra/plane.c | 8 ++++++++
 3 files changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index 39c2e920d76a6..61e155ecbfcb7 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -1282,6 +1282,7 @@ static const u32 tegra20_overlay_formats[] = {
        DRM_FORMAT_YUYV,
        DRM_FORMAT_YUV420,
        DRM_FORMAT_YUV422,
+       DRM_FORMAT_YVU420,
 };
 
 static const u32 tegra114_overlay_formats[] = {
@@ -1309,6 +1310,7 @@ static const u32 tegra114_overlay_formats[] = {
        DRM_FORMAT_YUYV,
        DRM_FORMAT_YUV420,
        DRM_FORMAT_YUV422,
+       DRM_FORMAT_YVU420,
        /* semi-planar formats */
        DRM_FORMAT_NV12,
        DRM_FORMAT_NV21,
@@ -1349,6 +1351,7 @@ static const u32 tegra124_overlay_formats[] = {
        DRM_FORMAT_YUV420, /* YU12 */
        DRM_FORMAT_YUV422, /* YU16 */
        DRM_FORMAT_YUV444, /* YU24 */
+       DRM_FORMAT_YVU420, /* YV12 */
        /* semi-planar formats */
        DRM_FORMAT_NV12,
        DRM_FORMAT_NV21,
diff --git a/drivers/gpu/drm/tegra/hub.c b/drivers/gpu/drm/tegra/hub.c
index 6427155ac4fdf..f176badfd922b 100644
--- a/drivers/gpu/drm/tegra/hub.c
+++ b/drivers/gpu/drm/tegra/hub.c
@@ -51,6 +51,7 @@ static const u32 tegra_shared_plane_formats[] = {
        DRM_FORMAT_YUYV,
        DRM_FORMAT_YUV420,
        DRM_FORMAT_YUV422,
+       DRM_FORMAT_YVU420,
 };
 
 static const u64 tegra_shared_plane_modifiers[] = {
diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c
index 757bc552809fe..0771a6cce8984 100644
--- a/drivers/gpu/drm/tegra/plane.c
+++ b/drivers/gpu/drm/tegra/plane.c
@@ -433,6 +433,14 @@ int tegra_plane_format(u32 fourcc, u32 *format, u32 *swap, 
bool *swap_uv)
                *format = WIN_COLOR_DEPTH_YCbCr420P;
                break;
 
+       case DRM_FORMAT_YVU420:
+               if (!swap_uv)
+                       return -EINVAL;
+
+               *format = WIN_COLOR_DEPTH_YCbCr420P;
+               *swap_uv = true;
+               break;
+
        case DRM_FORMAT_YUV422:
                *format = WIN_COLOR_DEPTH_YCbCr422P;
                break;

-- 
2.54.0


Reply via email to