diff options
author | Thierry Reding <treding@nvidia.com> | 2022-02-24 19:39:51 +0100 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2022-03-01 11:13:09 +0100 |
commit | cf5086d35d8c7c2b9cb1ca34590097a5f2f8b588 (patch) | |
tree | f63e945605281c4014a47429b66745e64b0c04f7 /drivers/gpu/drm/tegra/plane.c | |
parent | a649b133c3154f3d1d297cf85711957e61c0f070 (diff) | |
download | linux-stable-cf5086d35d8c7c2b9cb1ca34590097a5f2f8b588.tar.gz linux-stable-cf5086d35d8c7c2b9cb1ca34590097a5f2f8b588.tar.bz2 linux-stable-cf5086d35d8c7c2b9cb1ca34590097a5f2f8b588.zip |
drm/tegra: Support YVYU, VYUY and YU24 formats
Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu/drm/tegra/plane.c')
-rw-r--r-- | drivers/gpu/drm/tegra/plane.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/tegra/plane.c b/drivers/gpu/drm/tegra/plane.c index 5136a37c0239..e0e6938c6200 100644 --- a/drivers/gpu/drm/tegra/plane.c +++ b/drivers/gpu/drm/tegra/plane.c @@ -413,6 +413,22 @@ int tegra_plane_format(u32 fourcc, u32 *format, u32 *swap) *swap = BYTE_SWAP_SWAP2; break; + case DRM_FORMAT_YVYU: + if (!swap) + return -EINVAL; + + *format = WIN_COLOR_DEPTH_YCbCr422; + *swap = BYTE_SWAP_SWAP4; + break; + + case DRM_FORMAT_VYUY: + if (!swap) + return -EINVAL; + + *format = WIN_COLOR_DEPTH_YCbCr422; + *swap = BYTE_SWAP_SWAP4HW; + break; + case DRM_FORMAT_YUV420: *format = WIN_COLOR_DEPTH_YCbCr420P; break; @@ -421,6 +437,10 @@ int tegra_plane_format(u32 fourcc, u32 *format, u32 *swap) *format = WIN_COLOR_DEPTH_YCbCr422P; break; + case DRM_FORMAT_YUV444: + *format = WIN_COLOR_DEPTH_YCbCr444P; + break; + case DRM_FORMAT_NV12: *format = WIN_COLOR_DEPTH_YCbCr420SP; break; @@ -486,6 +506,7 @@ bool tegra_plane_format_is_yuv(unsigned int format, unsigned int *planes, unsign case WIN_COLOR_DEPTH_YUV422R: case WIN_COLOR_DEPTH_YCbCr422RA: case WIN_COLOR_DEPTH_YUV422RA: + case WIN_COLOR_DEPTH_YCbCr444P: if (planes) *planes = 3; |