Loading drivers/gpu/drm/tegra/dc.c +5 −2 Original line number Diff line number Diff line Loading @@ -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, Loading drivers/gpu/drm/tegra/dc.h +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading drivers/gpu/drm/tegra/plane.c +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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 Loading
drivers/gpu/drm/tegra/dc.c +5 −2 Original line number Diff line number Diff line Loading @@ -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, Loading
drivers/gpu/drm/tegra/dc.h +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
drivers/gpu/drm/tegra/plane.c +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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