[PATCH v2 2/5] drm/fourcc: Add tile width and height to drm_format_info
Alexandru Gheorghe
alexandru-cosmin.gheorghe at arm.com
Tue Aug 21 18:30:01 UTC 2018
Add two new fields(tile_w and tile_h) to drm_format_info, which
represent the horizontal and vertical sizes of a tile in tiled
formats.
This fields will be used by the next patch to add support in drm
core for handling framebuffer restrictions and to correctly handle
source cropping.
Additionally, since I was touching drm_format_info table I decided to
break the lines to the 80 characters limit, they were already getting
out of hand, but let's not focus on that, I don't have any problem
going back to the original line sizes or style them other way, if
someone wants me to.
Signed-off-by: Alexandru Gheorghe <alexandru-cosmin.gheorghe at arm.com>
---
drivers/gpu/drm/drm_fourcc.c | 352 +++++++++++++++++++++++++++--------
include/drm/drm_fourcc.h | 4 +
2 files changed, 281 insertions(+), 75 deletions(-)
diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
index 18bb960e9943..f55cd93ba2d0 100644
--- a/drivers/gpu/drm/drm_fourcc.c
+++ b/drivers/gpu/drm/drm_fourcc.c
@@ -105,81 +105,283 @@ EXPORT_SYMBOL(drm_get_format_name);
const struct drm_format_info *__drm_format_info(u32 format)
{
static const struct drm_format_info formats[] = {
- { .format = DRM_FORMAT_C8, .depth = 8, .num_planes = 1, .cpp = { 1, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_RGB332, .depth = 8, .num_planes = 1, .cpp = { 1, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_BGR233, .depth = 8, .num_planes = 1, .cpp = { 1, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_XRGB4444, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_XBGR4444, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_RGBX4444, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_BGRX4444, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_ARGB4444, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_ABGR4444, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_RGBA4444, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_BGRA4444, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_XRGB1555, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_XBGR1555, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_RGBX5551, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_BGRX5551, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_ARGB1555, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_ABGR1555, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_RGBA5551, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_BGRA5551, .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_RGB565, .depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_BGR565, .depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_RGB888, .depth = 24, .num_planes = 1, .cpp = { 3, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_BGR888, .depth = 24, .num_planes = 1, .cpp = { 3, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_XRGB8888, .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_XBGR8888, .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_RGBX8888, .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_BGRX8888, .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_RGB565_A8, .depth = 24, .num_planes = 2, .cpp = { 2, 1, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_BGR565_A8, .depth = 24, .num_planes = 2, .cpp = { 2, 1, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_XRGB2101010, .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_XBGR2101010, .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_RGBX1010102, .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_BGRX1010102, .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1 },
- { .format = DRM_FORMAT_ARGB2101010, .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_ABGR2101010, .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_RGBA1010102, .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_BGRA1010102, .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_ARGB8888, .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_ABGR8888, .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_RGBA8888, .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_BGRA8888, .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_RGB888_A8, .depth = 32, .num_planes = 2, .cpp = { 3, 1, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_BGR888_A8, .depth = 32, .num_planes = 2, .cpp = { 3, 1, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_XRGB8888_A8, .depth = 32, .num_planes = 2, .cpp = { 4, 1, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_XBGR8888_A8, .depth = 32, .num_planes = 2, .cpp = { 4, 1, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_RGBX8888_A8, .depth = 32, .num_planes = 2, .cpp = { 4, 1, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_BGRX8888_A8, .depth = 32, .num_planes = 2, .cpp = { 4, 1, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true },
- { .format = DRM_FORMAT_YUV410, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 4, .vsub = 4, .is_yuv = true },
- { .format = DRM_FORMAT_YVU410, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 4, .vsub = 4, .is_yuv = true },
- { .format = DRM_FORMAT_YUV411, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 4, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_YVU411, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 4, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_YUV420, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 2, .vsub = 2, .is_yuv = true },
- { .format = DRM_FORMAT_YVU420, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 2, .vsub = 2, .is_yuv = true },
- { .format = DRM_FORMAT_YUV422, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 2, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_YVU422, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 2, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_YUV444, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 1, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_YVU444, .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 }, .hsub = 1, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_NV12, .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 }, .hsub = 2, .vsub = 2, .is_yuv = true },
- { .format = DRM_FORMAT_NV21, .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 }, .hsub = 2, .vsub = 2, .is_yuv = true },
- { .format = DRM_FORMAT_NV16, .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 }, .hsub = 2, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_NV61, .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 }, .hsub = 2, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_NV24, .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 }, .hsub = 1, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_NV42, .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 }, .hsub = 1, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_YUYV, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 2, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_YVYU, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 2, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_UYVY, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 2, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_VYUY, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 2, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_AYUV, .depth = 0, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .has_alpha = true, .is_yuv = true },
- { .format = DRM_FORMAT_XYUV8888, .depth = 0, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_XVYU2101010, .depth = 0, .num_planes = 1, .cpp = { 4, 0, 0 }, .hsub = 1, .vsub = 1, .is_yuv = true },
- { .format = DRM_FORMAT_Y0L0, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 2, .vsub = 2, .has_alpha = true, .is_yuv = true },
- { .format = DRM_FORMAT_X0L0, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 2, .vsub = 2, .is_yuv = true },
- { .format = DRM_FORMAT_Y0L2, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 2, .vsub = 2, .has_alpha = true, .is_yuv = true },
- { .format = DRM_FORMAT_X0L2, .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 2, .vsub = 2, .is_yuv = true },
- { .format = DRM_FORMAT_P010, .depth = 0, .num_planes = 2, .cpp = { 2, 4, 0 }, .hsub = 2, .vsub = 2, .is_yuv = true },
+ { .format = DRM_FORMAT_C8,
+ .depth = 8, .num_planes = 1, .cpp = { 1, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_RGB332,
+ .depth = 8, .num_planes = 1, .cpp = { 1, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_BGR233,
+ .depth = 8, .num_planes = 1, .cpp = { 1, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_XRGB4444,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_XBGR4444,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_RGBX4444,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_BGRX4444,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_ARGB4444,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_ABGR4444,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_RGBA4444,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_BGRA4444,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_XRGB1555,
+ .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_XBGR1555,
+ .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_RGBX5551,
+ .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_BGRX5551,
+ .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1, },
+ { .format = DRM_FORMAT_ARGB1555,
+ .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_ABGR1555,
+ .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_RGBA5551,
+ .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_BGRA5551,
+ .depth = 15, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_RGB565,
+ .depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_BGR565,
+ .depth = 16, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_RGB888,
+ .depth = 24, .num_planes = 1, .cpp = { 3, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_BGR888,
+ .depth = 24, .num_planes = 1, .cpp = { 3, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_XRGB8888,
+ .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_XBGR8888,
+ .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_RGBX8888,
+ .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_BGRX8888,
+ .depth = 24, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_RGB565_A8,
+ .depth = 24, .num_planes = 2, .cpp = { 2, 1, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_BGR565_A8,
+ .depth = 24, .num_planes = 2, .cpp = { 2, 1, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_XRGB2101010,
+ .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_XBGR2101010,
+ .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_RGBX1010102,
+ .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_BGRX1010102,
+ .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1 },
+ { .format = DRM_FORMAT_ARGB2101010,
+ .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_ABGR2101010,
+ .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_RGBA1010102,
+ .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_BGRA1010102,
+ .depth = 30, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_ARGB8888,
+ .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_ABGR8888,
+ .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_RGBA8888,
+ .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_BGRA8888,
+ .depth = 32, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_RGB888_A8,
+ .depth = 32, .num_planes = 2, .cpp = { 3, 1, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_BGR888_A8,
+ .depth = 32, .num_planes = 2, .cpp = { 3, 1, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_XRGB8888_A8,
+ .depth = 32, .num_planes = 2, .cpp = { 4, 1, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_XBGR8888_A8,
+ .depth = 32, .num_planes = 2, .cpp = { 4, 1, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_RGBX8888_A8,
+ .depth = 32, .num_planes = 2, .cpp = { 4, 1, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_BGRX8888_A8,
+ .depth = 32, .num_planes = 2, .cpp = { 4, 1, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true },
+ { .format = DRM_FORMAT_YUV410,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 4, .vsub = 4, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YVU410,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 4, .vsub = 4, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YUV411,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 4, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YVU411,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 4, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YUV420,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 2, .vsub = 2, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YVU420,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 2, .vsub = 2, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YUV422,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 2, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YVU422,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 2, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YUV444,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YVU444,
+ .depth = 0, .num_planes = 3, .cpp = { 1, 1, 1 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_NV12,
+ .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 },
+ .hsub = 2, .vsub = 2, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_NV21,
+ .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 },
+ .hsub = 2, .vsub = 2, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_NV16,
+ .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 },
+ .hsub = 2, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_NV61,
+ .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 },
+ .hsub = 2, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_NV24,
+ .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_NV42,
+ .depth = 0, .num_planes = 2, .cpp = { 1, 2, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YUYV,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 2, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_YVYU,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 2, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_UYVY,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 2, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_VYUY,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 2, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_AYUV,
+ .depth = 0, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .has_alpha = true, .is_yuv = true },
+ { .format = DRM_FORMAT_XYUV8888,
+ .depth = 0, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_XVYU2101010,
+ .depth = 0, .num_planes = 1, .cpp = { 4, 0, 0 },
+ .hsub = 1, .vsub = 1, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_Y0L0,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 2, .vsub = 2, .tile_w = 2, .tile_h = 2,
+ .has_alpha = true, .is_yuv = true },
+ { .format = DRM_FORMAT_X0L0,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 2, .vsub = 2, .tile_w = 2, .tile_h = 2,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_Y0L2,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 2, .vsub = 2, .tile_w = 2, .tile_h = 2,
+ .has_alpha = true, .is_yuv = true },
+ { .format = DRM_FORMAT_X0L2,
+ .depth = 0, .num_planes = 1, .cpp = { 2, 0, 0 },
+ .hsub = 2, .vsub = 2, .tile_w = 2, .tile_h = 2,
+ .is_yuv = true },
+ { .format = DRM_FORMAT_P010,
+ .depth = 0, .num_planes = 2, .cpp = { 2, 4, 0 },
+ .hsub = 2, .vsub = 2, .tile_w = 1, .tile_h = 1,
+ .is_yuv = true },
};
unsigned int i;
diff --git a/include/drm/drm_fourcc.h b/include/drm/drm_fourcc.h
index f9c15845f465..41681cf2b140 100644
--- a/include/drm/drm_fourcc.h
+++ b/include/drm/drm_fourcc.h
@@ -38,6 +38,8 @@ struct drm_mode_fb_cmd2;
* @cpp: Number of bytes per pixel (per plane)
* @hsub: Horizontal chroma subsampling factor
* @vsub: Vertical chroma subsampling factor
+ * @tile_w: Width of a tile in pixels, for non-tiled formats this should be 1
+ * @tile_h: Height of a tile in pixels, for non-tiled formats this should be 1
* @has_alpha: Does the format embeds an alpha component?
* @is_yuv: Is it a YUV format?
*/
@@ -48,6 +50,8 @@ struct drm_format_info {
u8 cpp[3];
u8 hsub;
u8 vsub;
+ u8 tile_w;
+ u8 tile_h;
bool has_alpha;
bool is_yuv;
};
--
2.18.0
More information about the dri-devel
mailing list