drm/tegra: Support YVYU, VYUY and YU24 formats
Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
a649b133c3
commit
cf5086d35d
@ -1232,8 +1232,11 @@ static const u32 tegra124_overlay_formats[] = {
|
||||
/* planar formats */
|
||||
DRM_FORMAT_UYVY,
|
||||
DRM_FORMAT_YUYV,
|
||||
DRM_FORMAT_YUV420,
|
||||
DRM_FORMAT_YUV422,
|
||||
DRM_FORMAT_YVYU,
|
||||
DRM_FORMAT_VYUY,
|
||||
DRM_FORMAT_YUV420, /* YU12 */
|
||||
DRM_FORMAT_YUV422, /* YU16 */
|
||||
DRM_FORMAT_YUV444, /* YU24 */
|
||||
/* semi-planar formats */
|
||||
DRM_FORMAT_NV12,
|
||||
DRM_FORMAT_NV21,
|
||||
|
@ -637,6 +637,7 @@ int tegra_dc_rgb_exit(struct tegra_dc *dc);
|
||||
#define WIN_COLOR_DEPTH_A8B8G8R8 36
|
||||
#define WIN_COLOR_DEPTH_B8G8R8X8 37
|
||||
#define WIN_COLOR_DEPTH_R8G8B8X8 38
|
||||
#define WIN_COLOR_DEPTH_YCbCr444P 41
|
||||
#define WIN_COLOR_DEPTH_YCrCb420SP 42
|
||||
#define WIN_COLOR_DEPTH_YCbCr420SP 43
|
||||
#define WIN_COLOR_DEPTH_YCrCb422SP 44
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user