summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_core.c9
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_core.h22
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c302
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c278
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_formats.h11
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_r1.c142
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c168
-rw-r--r--drivers/media/v4l2-core/v4l2-ioctl.c74
-rw-r--r--include/uapi/linux/videodev2.h73
-rw-r--r--include/uapi/media/msm_sde_rotator.h71
10 files changed, 690 insertions, 460 deletions
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_core.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_core.c
index f5799c7f86fd..e3e71936b8e4 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_core.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_core.c
@@ -1273,8 +1273,13 @@ static bool sde_rotator_verify_format(struct sde_rot_mgr *mgr,
u8 in_v_subsample, in_h_subsample;
u8 out_v_subsample, out_h_subsample;
- if (!sde_mdp_is_wb_format(out_fmt)) {
- SDEROT_DBG("Invalid output format\n");
+ if (!sde_rotator_is_valid_pixfmt(mgr, in_fmt->format, true)) {
+ SDEROT_DBG("Invalid input format %x\n", in_fmt->format);
+ return false;
+ }
+
+ if (!sde_rotator_is_valid_pixfmt(mgr, out_fmt->format, false)) {
+ SDEROT_DBG("Invalid output format %x\n", out_fmt->format);
return false;
}
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_core.h b/drivers/media/platform/msm/sde/rotator/sde_rotator_core.h
index 7319bbda61b8..8659d361be07 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_core.h
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_core.h
@@ -302,10 +302,32 @@ struct sde_rot_mgr {
struct dentry *debugfs_root);
int (*ops_hw_validate_entry)(struct sde_rot_mgr *mgr,
struct sde_rot_entry *entry);
+ u32 (*ops_hw_get_pixfmt)(struct sde_rot_mgr *mgr, int index,
+ bool input);
+ int (*ops_hw_is_valid_pixfmt)(struct sde_rot_mgr *mgr, u32 pixfmt,
+ bool input);
void *hw_data;
};
+static inline int sde_rotator_is_valid_pixfmt(struct sde_rot_mgr *mgr,
+ u32 pixfmt, bool input)
+{
+ if (mgr && mgr->ops_hw_is_valid_pixfmt)
+ return mgr->ops_hw_is_valid_pixfmt(mgr, pixfmt, input);
+
+ return false;
+}
+
+static inline u32 sde_rotator_get_pixfmt(struct sde_rot_mgr *mgr,
+ int index, bool input)
+{
+ if (mgr && mgr->ops_hw_get_pixfmt)
+ return mgr->ops_hw_get_pixfmt(mgr, index, input);
+
+ return 0;
+}
+
static inline int __compare_session_item_rect(
struct sde_rotation_buf_info *s_rect,
struct sde_rect *i_rect, uint32_t i_fmt, bool src)
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c
index 140d33582c87..d34623a531ba 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c
@@ -52,244 +52,6 @@
#define SDE_ROTATOR_DEGREE_270 270
#define SDE_ROTATOR_DEGREE_180 180
#define SDE_ROTATOR_DEGREE_90 90
-/*
- * Format description/mapping
- * @pixelformat: external format defined in msm_sde_rotator header.
- *
- * Note RGBA/8888 naming convention follows internal convention and
- * is reverse of standard V4L2 convention. Description containing
- * prefix 'SDE/' refers to SDE specific conventions and/or features.
- */
-static const struct v4l2_fmtdesc fmtdesc[] = {
- {
- .description = "SDE/XRGB_8888",
- .pixelformat = SDE_PIX_FMT_XRGB_8888,
- },
- {
- .description = "SDE/ARGB_8888",
- .pixelformat = SDE_PIX_FMT_ARGB_8888,
- },
- {
- .description = "SDE/ABGR_8888",
- .pixelformat = SDE_PIX_FMT_ABGR_8888,
- },
- {
- .description = "SDE/RGBA_8888",
- .pixelformat = SDE_PIX_FMT_RGBA_8888,
- },
- {
- .description = "SDE/BGRA_8888",
- .pixelformat = SDE_PIX_FMT_BGRA_8888,
- },
- {
- .description = "SDE/RGBX_8888",
- .pixelformat = SDE_PIX_FMT_RGBX_8888,
- },
- {
- .description = "SDE/BGRX_8888",
- .pixelformat = SDE_PIX_FMT_BGRX_8888,
- },
- {
- .description = "SDE/XBGR_8888",
- .pixelformat = SDE_PIX_FMT_XBGR_8888,
- },
- {
- .description = "RGBA_5551",
- .pixelformat = SDE_PIX_FMT_RGBA_5551,
- },
- {
- .description = "ARGB_1555",
- .pixelformat = SDE_PIX_FMT_ARGB_1555,
- },
- {
- .description = "ABGR_1555",
- .pixelformat = SDE_PIX_FMT_ABGR_1555,
- },
- {
- .description = "BGRA_5551",
- .pixelformat = SDE_PIX_FMT_BGRA_5551,
- },
- {
- .description = "BGRX_5551",
- .pixelformat = SDE_PIX_FMT_BGRX_5551,
- },
- {
- .description = "RGBX_5551",
- .pixelformat = SDE_PIX_FMT_RGBX_5551,
- },
- {
- .description = "XBGR_1555",
- .pixelformat = SDE_PIX_FMT_XBGR_1555,
- },
- {
- .description = "XRGB_1555",
- .pixelformat = SDE_PIX_FMT_XRGB_1555,
- },
- {
- .description = "ARGB_4444",
- .pixelformat = SDE_PIX_FMT_ARGB_4444,
- },
- {
- .description = "RGBA_4444",
- .pixelformat = SDE_PIX_FMT_RGBA_4444,
- },
- {
- .description = "BGRA_4444",
- .pixelformat = SDE_PIX_FMT_BGRA_4444,
- },
- {
- .description = "ABGR_4444",
- .pixelformat = SDE_PIX_FMT_ABGR_4444,
- },
- {
- .description = "RGBX_4444",
- .pixelformat = SDE_PIX_FMT_RGBX_4444,
- },
- {
- .description = "XRGB_4444",
- .pixelformat = SDE_PIX_FMT_XRGB_4444,
- },
- {
- .description = "BGRX_4444",
- .pixelformat = SDE_PIX_FMT_BGRX_4444,
- },
- {
- .description = "XBGR_4444",
- .pixelformat = SDE_PIX_FMT_XBGR_4444,
- },
- {
- .description = "RGB_888",
- .pixelformat = SDE_PIX_FMT_RGB_888,
- },
- {
- .description = "BGR_888",
- .pixelformat = SDE_PIX_FMT_BGR_888,
- },
- {
- .description = "RGB_565",
- .pixelformat = SDE_PIX_FMT_RGB_565,
- },
- {
- .description = "BGR_565",
- .pixelformat = SDE_PIX_FMT_BGR_565,
- },
- {
- .description = "Y_CB_CR_H2V2",
- .pixelformat = SDE_PIX_FMT_Y_CB_CR_H2V2,
- },
- {
- .description = "Y_CR_CB_H2V2",
- .pixelformat = SDE_PIX_FMT_Y_CR_CB_H2V2,
- },
- {
- .description = "SDE/Y_CR_CB_GH2V2",
- .pixelformat = SDE_PIX_FMT_Y_CR_CB_GH2V2,
- },
- {
- .description = "Y_CBCR_H2V2",
- .pixelformat = SDE_PIX_FMT_Y_CBCR_H2V2,
- },
- {
- .description = "Y_CRCB_H2V2",
- .pixelformat = SDE_PIX_FMT_Y_CRCB_H2V2,
- },
- {
- .description = "Y_CBCR_H1V2",
- .pixelformat = SDE_PIX_FMT_Y_CBCR_H1V2,
- },
- {
- .description = "Y_CRCB_H1V2",
- .pixelformat = SDE_PIX_FMT_Y_CRCB_H1V2,
- },
- {
- .description = "Y_CBCR_H2V1",
- .pixelformat = SDE_PIX_FMT_Y_CBCR_H2V1,
- },
- {
- .description = "Y_CRCB_H2V1",
- .pixelformat = SDE_PIX_FMT_Y_CRCB_H2V1,
- },
- {
- .description = "YCBYCR_H2V1",
- .pixelformat = SDE_PIX_FMT_YCBYCR_H2V1,
- },
- {
- .description = "SDE/Y_CBCR_H2V2_VENUS",
- .pixelformat = SDE_PIX_FMT_Y_CBCR_H2V2_VENUS,
- },
- {
- .description = "SDE/Y_CRCB_H2V2_VENUS",
- .pixelformat = SDE_PIX_FMT_Y_CRCB_H2V2_VENUS,
- },
- {
- .description = "SDE/RGBA_8888_UBWC",
- .pixelformat = SDE_PIX_FMT_RGBA_8888_UBWC,
- },
- {
- .description = "SDE/RGBX_8888_UBWC",
- .pixelformat = SDE_PIX_FMT_RGBX_8888_UBWC,
- },
- {
- .description = "SDE/RGB_565_UBWC",
- .pixelformat = SDE_PIX_FMT_RGB_565_UBWC,
- },
- {
- .description = "SDE/Y_CBCR_H2V2_UBWC",
- .pixelformat = SDE_PIX_FMT_Y_CBCR_H2V2_UBWC,
- },
- {
- .description = "SDE/RGBA_1010102",
- .pixelformat = SDE_PIX_FMT_RGBA_1010102,
- },
- {
- .description = "SDE/RGBX_1010102",
- .pixelformat = SDE_PIX_FMT_RGBX_1010102,
- },
- {
- .description = "SDE/ARGB_2101010",
- .pixelformat = SDE_PIX_FMT_ARGB_2101010,
- },
- {
- .description = "SDE/XRGB_2101010",
- .pixelformat = SDE_PIX_FMT_XRGB_2101010,
- },
- {
- .description = "SDE/BGRA_1010102",
- .pixelformat = SDE_PIX_FMT_BGRA_1010102,
- },
- {
- .description = "SDE/BGRX_1010102",
- .pixelformat = SDE_PIX_FMT_BGRX_1010102,
- },
- {
- .description = "SDE/ABGR_2101010",
- .pixelformat = SDE_PIX_FMT_ABGR_2101010,
- },
- {
- .description = "SDE/XBGR_2101010",
- .pixelformat = SDE_PIX_FMT_XBGR_2101010,
- },
- {
- .description = "SDE/RGBA_1010102_UBWC",
- .pixelformat = SDE_PIX_FMT_RGBA_1010102_UBWC,
- },
- {
- .description = "SDE/RGBX_1010102_UBWC",
- .pixelformat = SDE_PIX_FMT_RGBX_1010102_UBWC,
- },
- {
- .description = "SDE/Y_CBCR_H2V2_P010",
- .pixelformat = SDE_PIX_FMT_Y_CBCR_H2V2_P010,
- },
- {
- .description = "SDE/Y_CBCR_H2V2_TP10",
- .pixelformat = SDE_PIX_FMT_Y_CBCR_H2V2_TP10,
- },
- {
- .description = "SDE/Y_CBCR_H2V2_TP10_UBWC",
- .pixelformat = SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC,
- },
-};
static void sde_rotator_submit_handler(struct work_struct *work);
static void sde_rotator_retire_handler(struct work_struct *work);
@@ -309,26 +71,6 @@ static inline struct sde_rotator_ctx *sde_rotator_ctx_from_fh(
}
/*
- * sde_rotator_get_format_idx - Get rotator format lookup index.
- * @ctx: Pointer to rotator ctx.
- * @f: v4l2 format.
- */
-static int sde_rotator_get_format_idx(struct sde_rotator_ctx *ctx,
- struct v4l2_format *f)
-{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(fmtdesc); i++)
- if (fmtdesc[i].pixelformat == f->fmt.pix.pixelformat)
- break;
-
- if (i == ARRAY_SIZE(fmtdesc))
- return -EINVAL;
-
- return i;
-}
-
-/*
* sde_rotator_get_flags_from_ctx - Get low-level command flag
* @ctx: Pointer to rotator context.
*/
@@ -1302,12 +1044,21 @@ static int sde_rotator_querycap(struct file *file,
static int sde_rotator_enum_fmt_vid_cap(struct file *file,
void *fh, struct v4l2_fmtdesc *f)
{
- if (f->index >= ARRAY_SIZE(fmtdesc))
+ struct sde_rotator_ctx *ctx = sde_rotator_ctx_from_fh(fh);
+ struct sde_rotator_device *rot_dev = ctx->rot_dev;
+ struct sde_mdp_format_params *fmt;
+ u32 pixfmt;
+
+ pixfmt = sde_rotator_get_pixfmt(rot_dev->mgr, f->index, false);
+ if (!pixfmt)
+ return -EINVAL;
+
+ fmt = sde_get_format_params(pixfmt);
+ if (!fmt)
return -EINVAL;
- f->pixelformat = fmtdesc[f->index].pixelformat;
- strlcpy(f->description, fmtdesc[f->index].description,
- sizeof(f->description));
+ f->pixelformat = pixfmt;
+ strlcpy(f->description, fmt->description, sizeof(f->description));
return 0;
}
@@ -1321,12 +1072,21 @@ static int sde_rotator_enum_fmt_vid_cap(struct file *file,
static int sde_rotator_enum_fmt_vid_out(struct file *file,
void *fh, struct v4l2_fmtdesc *f)
{
- if (f->index >= ARRAY_SIZE(fmtdesc))
+ struct sde_rotator_ctx *ctx = sde_rotator_ctx_from_fh(fh);
+ struct sde_rotator_device *rot_dev = ctx->rot_dev;
+ struct sde_mdp_format_params *fmt;
+ u32 pixfmt;
+
+ pixfmt = sde_rotator_get_pixfmt(rot_dev->mgr, f->index, true);
+ if (!pixfmt)
+ return -EINVAL;
+
+ fmt = sde_get_format_params(pixfmt);
+ if (!fmt)
return -EINVAL;
- f->pixelformat = fmtdesc[f->index].pixelformat;
- strlcpy(f->description, fmtdesc[f->index].description,
- sizeof(f->description));
+ f->pixelformat = pixfmt;
+ strlcpy(f->description, fmt->description, sizeof(f->description));
return 0;
}
@@ -1375,13 +1135,8 @@ static int sde_rotator_try_fmt_vid_cap(struct file *file,
struct sde_rotator_ctx *ctx = sde_rotator_ctx_from_fh(fh);
struct sde_rotator_device *rot_dev = ctx->rot_dev;
struct sde_rotation_config config;
- int fmt_idx;
int ret;
- fmt_idx = sde_rotator_get_format_idx(ctx, f);
- if (fmt_idx < 0)
- return -EINVAL;
-
sde_rot_mgr_lock(rot_dev->mgr);
sde_rotator_get_config_from_ctx(ctx, &config);
config.output.format = f->fmt.pix.pixelformat;
@@ -1419,13 +1174,8 @@ static int sde_rotator_try_fmt_vid_out(struct file *file,
struct sde_rotator_ctx *ctx = sde_rotator_ctx_from_fh(fh);
struct sde_rotator_device *rot_dev = ctx->rot_dev;
struct sde_rotation_config config;
- int fmt_idx;
int ret;
- fmt_idx = sde_rotator_get_format_idx(ctx, f);
- if (fmt_idx < 0)
- return -EINVAL;
-
sde_rot_mgr_lock(rot_dev->mgr);
sde_rotator_get_config_from_ctx(ctx, &config);
config.input.format = f->fmt.pix.pixelformat;
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c
index 5318c9da1277..3b36b6bc76de 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.c
@@ -16,9 +16,10 @@
#include "sde_rotator_formats.h"
#include "sde_rotator_util.h"
-#define FMT_RGB_565(fmt, frame_fmt, flag_arg, e0, e1, e2, isubwc) \
+#define FMT_RGB_565(fmt, desc, frame_fmt, flag_arg, e0, e1, e2, isubwc) \
{ \
.format = (fmt), \
+ .description = (desc), \
.flag = flag_arg, \
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
.unpack_tight = 1, \
@@ -37,9 +38,10 @@
.is_ubwc = isubwc, \
}
-#define FMT_RGB_888(fmt, frame_fmt, flag_arg, e0, e1, e2, isubwc) \
+#define FMT_RGB_888(fmt, desc, frame_fmt, flag_arg, e0, e1, e2, isubwc) \
{ \
.format = (fmt), \
+ .description = (desc), \
.flag = flag_arg, \
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
.unpack_tight = 1, \
@@ -58,10 +60,11 @@
.is_ubwc = isubwc, \
}
-#define FMT_RGB_8888(fmt, frame_fmt, flag_arg, \
+#define FMT_RGB_8888(fmt, desc, frame_fmt, flag_arg, \
alpha_en, e0, e1, e2, e3, isubwc) \
{ \
.format = (fmt), \
+ .description = (desc), \
.flag = flag_arg, \
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
.unpack_tight = 1, \
@@ -93,10 +96,11 @@
.unpack_tight = 1, \
.unpack_align_msb = 0
-#define FMT_YUV_PSEUDO(fmt, frame_fmt, samp, pixel_type, \
+#define FMT_YUV_PSEUDO(fmt, desc, frame_fmt, samp, pixel_type, \
flag_arg, e0, e1, isubwc) \
{ \
FMT_YUV_COMMON(fmt), \
+ .description = (desc), \
.flag = flag_arg, \
.fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR, \
.chroma_sample = samp, \
@@ -108,10 +112,11 @@
.is_ubwc = isubwc, \
}
-#define FMT_YUV_PLANR(fmt, frame_fmt, samp, \
+#define FMT_YUV_PLANR(fmt, desc, frame_fmt, samp, \
flag_arg, e0, e1) \
{ \
FMT_YUV_COMMON(fmt), \
+ .description = (desc), \
.flag = flag_arg, \
.fetch_planes = SDE_MDP_PLANE_PLANAR, \
.chroma_sample = samp, \
@@ -123,9 +128,10 @@
.is_ubwc = SDE_MDP_COMPRESS_NONE, \
}
-#define FMT_RGB_1555(fmt, alpha_en, flag_arg, e0, e1, e2, e3) \
+#define FMT_RGB_1555(fmt, desc, alpha_en, flag_arg, e0, e1, e2, e3) \
{ \
.format = (fmt), \
+ .description = (desc), \
.flag = flag_arg, \
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
.unpack_tight = 1, \
@@ -145,9 +151,10 @@
.is_ubwc = SDE_MDP_COMPRESS_NONE, \
}
-#define FMT_RGB_4444(fmt, alpha_en, flag_arg, e0, e1, e2, e3) \
+#define FMT_RGB_4444(fmt, desc, alpha_en, flag_arg, e0, e1, e2, e3) \
{ \
.format = (fmt), \
+ .description = (desc), \
.flag = flag_arg, \
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
.unpack_tight = 1, \
@@ -167,10 +174,11 @@
.is_ubwc = SDE_MDP_COMPRESS_NONE, \
}
-#define FMT_RGB_1010102(fmt, frame_fmt, flag_arg, \
+#define FMT_RGB_1010102(fmt, desc, frame_fmt, flag_arg, \
alpha_en, e0, e1, e2, e3, isubwc) \
{ \
.format = (fmt), \
+ .description = (desc), \
.flag = flag_arg, \
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED, \
.unpack_tight = 1, \
@@ -190,7 +198,6 @@
.is_ubwc = isubwc, \
}
-#define VALID_ROT_WB_ALL (VALID_ROT_WB_FORMAT | VALID_ROT_R3_WB_FORMAT)
/*
* UBWC formats table:
* This table holds the UBWC formats supported.
@@ -200,7 +207,8 @@
static struct sde_mdp_format_params_ubwc sde_mdp_format_ubwc_map[] = {
{
.mdp_format = FMT_RGB_565(SDE_PIX_FMT_RGB_565_UBWC,
- SDE_MDP_FMT_TILE_A5X, VALID_ROT_WB_ALL,
+ "SDE/RGB_565_UBWC",
+ SDE_MDP_FMT_TILE_A5X, 0,
C2_R_Cr, C0_G_Y, C1_B_Cb, SDE_MDP_COMPRESS_UBWC),
.micro = {
.tile_height = 4,
@@ -209,7 +217,8 @@ static struct sde_mdp_format_params_ubwc sde_mdp_format_ubwc_map[] = {
},
{
.mdp_format = FMT_RGB_8888(SDE_PIX_FMT_RGBA_8888_UBWC,
- SDE_MDP_FMT_TILE_A5X, VALID_ROT_WB_ALL, 1,
+ "SDE/RGBA_8888_UBWC",
+ SDE_MDP_FMT_TILE_A5X, 0, 1,
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
SDE_MDP_COMPRESS_UBWC),
.micro = {
@@ -219,7 +228,8 @@ static struct sde_mdp_format_params_ubwc sde_mdp_format_ubwc_map[] = {
},
{
.mdp_format = FMT_RGB_8888(SDE_PIX_FMT_RGBX_8888_UBWC,
- SDE_MDP_FMT_TILE_A5X, VALID_ROT_WB_ALL, 0,
+ "SDE/RGBX_8888_UBWC",
+ SDE_MDP_FMT_TILE_A5X, 0, 0,
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
SDE_MDP_COMPRESS_UBWC),
.micro = {
@@ -229,9 +239,10 @@ static struct sde_mdp_format_params_ubwc sde_mdp_format_ubwc_map[] = {
},
{
.mdp_format = FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2_UBWC,
+ "SDE/Y_CBCR_H2V2_UBWC",
SDE_MDP_FMT_TILE_A5X, SDE_MDP_CHROMA_420,
SDE_MDP_PIXEL_NORMAL,
- VALID_ROT_WB_ALL, C1_B_Cb, C2_R_Cr,
+ 0, C1_B_Cb, C2_R_Cr,
SDE_MDP_COMPRESS_UBWC),
.micro = {
.tile_height = 8,
@@ -240,7 +251,8 @@ static struct sde_mdp_format_params_ubwc sde_mdp_format_ubwc_map[] = {
},
{
.mdp_format = FMT_RGB_1010102(SDE_PIX_FMT_RGBA_1010102_UBWC,
- SDE_MDP_FMT_TILE_A5X, VALID_ROT_R3_WB_FORMAT, 1,
+ "SDE/RGBA_1010102_UBWC",
+ SDE_MDP_FMT_TILE_A5X, 0, 1,
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
SDE_MDP_COMPRESS_UBWC),
.micro = {
@@ -250,7 +262,8 @@ static struct sde_mdp_format_params_ubwc sde_mdp_format_ubwc_map[] = {
},
{
.mdp_format = FMT_RGB_1010102(SDE_PIX_FMT_RGBX_1010102_UBWC,
- SDE_MDP_FMT_TILE_A5X, VALID_ROT_R3_WB_FORMAT, 0,
+ "SDE/RGBX_1010102_UBWC",
+ SDE_MDP_FMT_TILE_A5X, 0, 0,
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
SDE_MDP_COMPRESS_UBWC),
.micro = {
@@ -260,9 +273,10 @@ static struct sde_mdp_format_params_ubwc sde_mdp_format_ubwc_map[] = {
},
{
.mdp_format = FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC,
+ "SDE/Y_CBCR_H2V2_TP10_UBWC",
SDE_MDP_FMT_TILE_A5X, SDE_MDP_CHROMA_420,
SDE_MDP_PIXEL_10BIT,
- VALID_ROT_R3_WB_FORMAT | VALID_MDP_WB_INTF_FORMAT,
+ 0,
C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_UBWC),
.micro = {
.tile_height = 4,
@@ -273,88 +287,89 @@ static struct sde_mdp_format_params_ubwc sde_mdp_format_ubwc_map[] = {
static struct sde_mdp_format_params sde_mdp_format_map[] = {
FMT_RGB_565(
- SDE_PIX_FMT_RGB_565, SDE_MDP_FMT_LINEAR, VALID_ROT_WB_ALL |
- VALID_MDP_WB_INTF_FORMAT, C1_B_Cb, C0_G_Y, C2_R_Cr,
- SDE_MDP_COMPRESS_NONE),
+ SDE_PIX_FMT_RGB_565, "RGB_565", SDE_MDP_FMT_LINEAR,
+ 0, C1_B_Cb, C0_G_Y, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
FMT_RGB_565(
- SDE_PIX_FMT_BGR_565, SDE_MDP_FMT_LINEAR, VALID_ROT_WB_ALL |
- VALID_MDP_WB_INTF_FORMAT, C2_R_Cr, C0_G_Y, C1_B_Cb,
- SDE_MDP_COMPRESS_NONE),
+ SDE_PIX_FMT_BGR_565, "BGR_565", SDE_MDP_FMT_LINEAR,
+ 0, C2_R_Cr, C0_G_Y, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
FMT_RGB_888(
- SDE_PIX_FMT_RGB_888, SDE_MDP_FMT_LINEAR, VALID_ROT_WB_ALL |
- VALID_MDP_WB_INTF_FORMAT, C2_R_Cr, C0_G_Y, C1_B_Cb,
- SDE_MDP_COMPRESS_NONE),
+ SDE_PIX_FMT_RGB_888, "RGB_888", SDE_MDP_FMT_LINEAR,
+ 0, C2_R_Cr, C0_G_Y, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
FMT_RGB_888(
- SDE_PIX_FMT_BGR_888, SDE_MDP_FMT_LINEAR, VALID_ROT_WB_ALL |
- VALID_MDP_WB_INTF_FORMAT, C1_B_Cb, C0_G_Y, C2_R_Cr,
- SDE_MDP_COMPRESS_NONE),
+ SDE_PIX_FMT_BGR_888, "BGR_888", SDE_MDP_FMT_LINEAR,
+ 0, C1_B_Cb, C0_G_Y, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
FMT_RGB_8888(
- SDE_PIX_FMT_ABGR_8888, SDE_MDP_FMT_LINEAR,
- VALID_ROT_WB_ALL, 1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
+ SDE_PIX_FMT_ABGR_8888, "SDE/ABGR_8888", SDE_MDP_FMT_LINEAR,
+ 0, 1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
SDE_MDP_COMPRESS_NONE),
FMT_RGB_8888(
- SDE_PIX_FMT_XRGB_8888, SDE_MDP_FMT_LINEAR,
- VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
- 0, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
+ SDE_PIX_FMT_XRGB_8888, "SDE/XRGB_8888", SDE_MDP_FMT_LINEAR,
+ 0, 0, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
+ SDE_MDP_COMPRESS_NONE),
FMT_RGB_8888(
- SDE_PIX_FMT_ARGB_8888, SDE_MDP_FMT_LINEAR,
- VALID_ROT_WB_ALL, 1, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
+ SDE_PIX_FMT_ARGB_8888, "SDE/ARGB_8888", SDE_MDP_FMT_LINEAR,
+ 0, 1, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
SDE_MDP_COMPRESS_NONE),
FMT_RGB_8888(
- SDE_PIX_FMT_RGBA_8888, SDE_MDP_FMT_LINEAR,
- VALID_ROT_WB_ALL, 1, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
+ SDE_PIX_FMT_RGBA_8888, "SDE/RGBA_8888", SDE_MDP_FMT_LINEAR,
+ 0, 1, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
SDE_MDP_COMPRESS_NONE),
FMT_RGB_8888(
- SDE_PIX_FMT_RGBX_8888, SDE_MDP_FMT_LINEAR,
- VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
- 0, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, SDE_MDP_COMPRESS_NONE),
+ SDE_PIX_FMT_RGBX_8888, "SDE/RGBX_8888", SDE_MDP_FMT_LINEAR,
+ 0, 0, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
+ SDE_MDP_COMPRESS_NONE),
FMT_RGB_8888(
- SDE_PIX_FMT_BGRA_8888, SDE_MDP_FMT_LINEAR,
- VALID_ROT_WB_ALL, 1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
+ SDE_PIX_FMT_BGRA_8888, "SDE/BGRA_8888", SDE_MDP_FMT_LINEAR,
+ 0, 1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
SDE_MDP_COMPRESS_NONE),
FMT_RGB_8888(
- SDE_PIX_FMT_BGRX_8888, SDE_MDP_FMT_LINEAR,
- VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
- 0, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, SDE_MDP_COMPRESS_NONE),
+ SDE_PIX_FMT_BGRX_8888, "SDE/BGRX_8888", SDE_MDP_FMT_LINEAR,
+ 0, 0, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
+ SDE_MDP_COMPRESS_NONE),
FMT_RGB_8888(
- SDE_PIX_FMT_XBGR_8888, SDE_MDP_FMT_LINEAR,
- VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
- 0, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
+ SDE_PIX_FMT_XBGR_8888, "SDE/XBGR_8888", SDE_MDP_FMT_LINEAR,
+ 0, 0, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
+ SDE_MDP_COMPRESS_NONE),
- FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V1, SDE_MDP_FMT_LINEAR,
+ FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V1, "Y_CRCB_H2V1",
+ SDE_MDP_FMT_LINEAR,
SDE_MDP_CHROMA_H2V1, SDE_MDP_PIXEL_NORMAL,
- VALID_ROT_WB_ALL, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
- FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V1, SDE_MDP_FMT_LINEAR,
+ 0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
+ FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V1, "Y_CBCR_H2V1",
+ SDE_MDP_FMT_LINEAR,
SDE_MDP_CHROMA_H2V1, SDE_MDP_PIXEL_NORMAL,
- VALID_ROT_WB_ALL, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
- FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H1V2, SDE_MDP_FMT_LINEAR,
+ 0, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
+ FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H1V2, "Y_CRCB_H1V2",
+ SDE_MDP_FMT_LINEAR,
SDE_MDP_CHROMA_H1V2, SDE_MDP_PIXEL_NORMAL,
- VALID_ROT_WB_ALL, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
- FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H1V2, SDE_MDP_FMT_LINEAR,
+ 0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
+ FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H1V2, "Y_CBCR_H1V2",
+ SDE_MDP_FMT_LINEAR,
SDE_MDP_CHROMA_H1V2, SDE_MDP_PIXEL_NORMAL,
- VALID_ROT_WB_ALL, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
- FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V2, SDE_MDP_FMT_LINEAR,
+ 0, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
+ FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V2, "Y_CRCB_H2V2",
+ SDE_MDP_FMT_LINEAR,
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
- VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
- C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
- FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2, SDE_MDP_FMT_LINEAR,
+ 0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
+ FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2, "Y_CBCR_H2V2",
+ SDE_MDP_FMT_LINEAR,
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
- VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
- C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
- FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2_VENUS, SDE_MDP_FMT_LINEAR,
+ 0, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
+ FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CBCR_H2V2_VENUS, "SDE/Y_CBCR_H2V2_VENUS",
+ SDE_MDP_FMT_LINEAR,
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
- VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
- C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
- FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V2_VENUS, SDE_MDP_FMT_LINEAR,
+ 0, C1_B_Cb, C2_R_Cr, SDE_MDP_COMPRESS_NONE),
+ FMT_YUV_PSEUDO(SDE_PIX_FMT_Y_CRCB_H2V2_VENUS, "SDE/Y_CRCB_H2V2_VENUS",
+ SDE_MDP_FMT_LINEAR,
SDE_MDP_CHROMA_420, SDE_MDP_PIXEL_NORMAL,
- VALID_ROT_WB_ALL | VALID_MDP_WB_INTF_FORMAT,
- C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
+ 0, C2_R_Cr, C1_B_Cb, SDE_MDP_COMPRESS_NONE),
{
FMT_YUV_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_P010),
- .flag = VALID_ROT_R3_WB_FORMAT,
+ .description = "SDE/Y_CBCR_H2V2_P010",
+ .flag = 0,
.fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR,
.chroma_sample = SDE_MDP_CHROMA_420,
.unpack_count = 2,
@@ -368,7 +383,8 @@ static struct sde_mdp_format_params sde_mdp_format_map[] = {
},
{
FMT_YUV_COMMON(SDE_PIX_FMT_Y_CBCR_H2V2_TP10),
- .flag = VALID_ROT_R3_WB_FORMAT,
+ .description = "SDE/Y_CBCR_H2V2_TP10",
+ .flag = 0,
.fetch_planes = SDE_MDP_PLANE_PSEUDO_PLANAR,
.chroma_sample = SDE_MDP_CHROMA_420,
.unpack_count = 2,
@@ -381,19 +397,20 @@ static struct sde_mdp_format_params sde_mdp_format_map[] = {
.is_ubwc = SDE_MDP_COMPRESS_NONE,
},
- FMT_YUV_PLANR(SDE_PIX_FMT_Y_CB_CR_H2V2, SDE_MDP_FMT_LINEAR,
- SDE_MDP_CHROMA_420, VALID_ROT_WB_FORMAT |
- VALID_MDP_WB_INTF_FORMAT, C2_R_Cr, C1_B_Cb),
- FMT_YUV_PLANR(SDE_PIX_FMT_Y_CR_CB_H2V2, SDE_MDP_FMT_LINEAR,
- SDE_MDP_CHROMA_420, VALID_ROT_WB_FORMAT |
- VALID_MDP_WB_INTF_FORMAT, C1_B_Cb, C2_R_Cr),
- FMT_YUV_PLANR(SDE_PIX_FMT_Y_CR_CB_GH2V2, SDE_MDP_FMT_LINEAR,
- SDE_MDP_CHROMA_420, VALID_ROT_WB_FORMAT |
- VALID_MDP_WB_INTF_FORMAT, C1_B_Cb, C2_R_Cr),
+ FMT_YUV_PLANR(SDE_PIX_FMT_Y_CB_CR_H2V2, "Y_CB_CR_H2V2",
+ SDE_MDP_FMT_LINEAR,
+ SDE_MDP_CHROMA_420, 0, C2_R_Cr, C1_B_Cb),
+ FMT_YUV_PLANR(SDE_PIX_FMT_Y_CR_CB_H2V2, "Y_CR_CB_H2V2",
+ SDE_MDP_FMT_LINEAR,
+ SDE_MDP_CHROMA_420, 0, C1_B_Cb, C2_R_Cr),
+ FMT_YUV_PLANR(SDE_PIX_FMT_Y_CR_CB_GH2V2, "SDE/Y_CR_CB_GH2V2",
+ SDE_MDP_FMT_LINEAR,
+ SDE_MDP_CHROMA_420, 0, C1_B_Cb, C2_R_Cr),
{
FMT_YUV_COMMON(SDE_PIX_FMT_YCBYCR_H2V1),
- .flag = VALID_ROT_WB_FORMAT,
+ .description = "YCBYCR_H2V1",
+ .flag = 0,
.fetch_planes = SDE_MDP_PLANE_INTERLEAVED,
.chroma_sample = SDE_MDP_CHROMA_H2V1,
.unpack_count = 4,
@@ -403,61 +420,69 @@ static struct sde_mdp_format_params sde_mdp_format_map[] = {
.element = { C2_R_Cr, C0_G_Y, C1_B_Cb, C0_G_Y },
.is_ubwc = SDE_MDP_COMPRESS_NONE,
},
- FMT_RGB_1555(SDE_PIX_FMT_RGBA_5551, 1, VALID_ROT_WB_ALL,
+ FMT_RGB_1555(SDE_PIX_FMT_RGBA_5551, "RGBA_5551", 1, 0,
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
- FMT_RGB_1555(SDE_PIX_FMT_ARGB_1555, 1, VALID_ROT_WB_ALL,
+ FMT_RGB_1555(SDE_PIX_FMT_ARGB_1555, "ARGB_1555", 1, 0,
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
- FMT_RGB_1555(SDE_PIX_FMT_ABGR_1555, 1, VALID_ROT_WB_ALL,
+ FMT_RGB_1555(SDE_PIX_FMT_ABGR_1555, "ABGR_1555", 1, 0,
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
- FMT_RGB_1555(SDE_PIX_FMT_BGRA_5551, 1, VALID_ROT_WB_ALL,
+ FMT_RGB_1555(SDE_PIX_FMT_BGRA_5551, "BGRA_5551", 1, 0,
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
- FMT_RGB_1555(SDE_PIX_FMT_BGRX_5551, 0, VALID_ROT_WB_ALL,
+ FMT_RGB_1555(SDE_PIX_FMT_BGRX_5551, "BGRX_5551", 0, 0,
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
- FMT_RGB_1555(SDE_PIX_FMT_RGBX_5551, 0, VALID_ROT_WB_ALL,
+ FMT_RGB_1555(SDE_PIX_FMT_RGBX_5551, "RGBX_5551", 0, 0,
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
- FMT_RGB_1555(SDE_PIX_FMT_XBGR_1555, 0, VALID_ROT_WB_ALL,
+ FMT_RGB_1555(SDE_PIX_FMT_XBGR_1555, "XBGR_1555", 0, 0,
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
- FMT_RGB_1555(SDE_PIX_FMT_XRGB_1555, 0, VALID_ROT_WB_ALL,
+ FMT_RGB_1555(SDE_PIX_FMT_XRGB_1555, "XRGB_1555", 0, 0,
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
- FMT_RGB_4444(SDE_PIX_FMT_RGBA_4444, 1, VALID_ROT_WB_ALL,
+ FMT_RGB_4444(SDE_PIX_FMT_RGBA_4444, "RGBA_4444", 1, 0,
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
- FMT_RGB_4444(SDE_PIX_FMT_ARGB_4444, 1, VALID_ROT_WB_ALL,
+ FMT_RGB_4444(SDE_PIX_FMT_ARGB_4444, "ARGB_4444", 1, 0,
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
- FMT_RGB_4444(SDE_PIX_FMT_BGRA_4444, 1, VALID_ROT_WB_ALL,
+ FMT_RGB_4444(SDE_PIX_FMT_BGRA_4444, "BGRA_4444", 1, 0,
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
- FMT_RGB_4444(SDE_PIX_FMT_ABGR_4444, 1, VALID_ROT_WB_ALL,
+ FMT_RGB_4444(SDE_PIX_FMT_ABGR_4444, "ABGR_4444", 1, 0,
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
- FMT_RGB_4444(SDE_PIX_FMT_RGBX_4444, 0, VALID_ROT_WB_ALL,
+ FMT_RGB_4444(SDE_PIX_FMT_RGBX_4444, "RGBX_4444", 0, 0,
C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr),
- FMT_RGB_4444(SDE_PIX_FMT_XRGB_4444, 0, VALID_ROT_WB_ALL,
+ FMT_RGB_4444(SDE_PIX_FMT_XRGB_4444, "XRGB_4444", 0, 0,
C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA),
- FMT_RGB_4444(SDE_PIX_FMT_BGRX_4444, 0, VALID_ROT_WB_ALL,
+ FMT_RGB_4444(SDE_PIX_FMT_BGRX_4444, "BGRX_4444", 0, 0,
C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb),
- FMT_RGB_4444(SDE_PIX_FMT_XBGR_4444, 0, VALID_ROT_WB_ALL,
+ FMT_RGB_4444(SDE_PIX_FMT_XBGR_4444, "XBGR_4444", 0, 0,
C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA),
- FMT_RGB_1010102(SDE_PIX_FMT_RGBA_1010102, SDE_MDP_FMT_LINEAR,
- VALID_ROT_R3_WB_FORMAT | VALID_MDP_WB_INTF_FORMAT,
- 1, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, SDE_MDP_COMPRESS_NONE),
- FMT_RGB_1010102(SDE_PIX_FMT_RGBX_1010102, SDE_MDP_FMT_LINEAR,
- VALID_ROT_R3_WB_FORMAT | VALID_MDP_WB_INTF_FORMAT,
- 0, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA, SDE_MDP_COMPRESS_NONE),
- FMT_RGB_1010102(SDE_PIX_FMT_BGRA_1010102, SDE_MDP_FMT_LINEAR,
- VALID_ROT_R3_WB_FORMAT | VALID_MDP_WB_INTF_FORMAT,
- 1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, SDE_MDP_COMPRESS_NONE),
- FMT_RGB_1010102(SDE_PIX_FMT_BGRX_1010102, SDE_MDP_FMT_LINEAR,
- VALID_ROT_R3_WB_FORMAT | VALID_MDP_WB_INTF_FORMAT,
- 0, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA, SDE_MDP_COMPRESS_NONE),
- FMT_RGB_1010102(SDE_PIX_FMT_ARGB_2101010, SDE_MDP_FMT_LINEAR,
- INVALID_WB_FORMAT, 1, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
+ FMT_RGB_1010102(SDE_PIX_FMT_RGBA_1010102, "SDE/RGBA_1010102",
+ SDE_MDP_FMT_LINEAR,
+ 0, 1, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
+ SDE_MDP_COMPRESS_NONE),
+ FMT_RGB_1010102(SDE_PIX_FMT_RGBX_1010102, "SDE/RGBX_1010102",
+ SDE_MDP_FMT_LINEAR,
+ 0, 0, C2_R_Cr, C0_G_Y, C1_B_Cb, C3_ALPHA,
+ SDE_MDP_COMPRESS_NONE),
+ FMT_RGB_1010102(SDE_PIX_FMT_BGRA_1010102, "SDE/BGRA_1010102",
+ SDE_MDP_FMT_LINEAR,
+ 0, 1, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
SDE_MDP_COMPRESS_NONE),
- FMT_RGB_1010102(SDE_PIX_FMT_XRGB_2101010, SDE_MDP_FMT_LINEAR,
- INVALID_WB_FORMAT, 0, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
+ FMT_RGB_1010102(SDE_PIX_FMT_BGRX_1010102, "SDE/BGRX_1010102",
+ SDE_MDP_FMT_LINEAR,
+ 0, 0, C1_B_Cb, C0_G_Y, C2_R_Cr, C3_ALPHA,
SDE_MDP_COMPRESS_NONE),
- FMT_RGB_1010102(SDE_PIX_FMT_ABGR_2101010, SDE_MDP_FMT_LINEAR,
- INVALID_WB_FORMAT, 1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
+ FMT_RGB_1010102(SDE_PIX_FMT_ARGB_2101010, "SDE/ARGB_2101010",
+ SDE_MDP_FMT_LINEAR,
+ 0, 1, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
SDE_MDP_COMPRESS_NONE),
- FMT_RGB_1010102(SDE_PIX_FMT_XBGR_2101010, SDE_MDP_FMT_LINEAR,
- INVALID_WB_FORMAT, 0, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
+ FMT_RGB_1010102(SDE_PIX_FMT_XRGB_2101010, "SDE/XRGB_2101010",
+ SDE_MDP_FMT_LINEAR,
+ 0, 0, C3_ALPHA, C2_R_Cr, C0_G_Y, C1_B_Cb,
+ SDE_MDP_COMPRESS_NONE),
+ FMT_RGB_1010102(SDE_PIX_FMT_ABGR_2101010, "SDE/ABGR_2101010",
+ SDE_MDP_FMT_LINEAR,
+ 0, 1, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
+ SDE_MDP_COMPRESS_NONE),
+ FMT_RGB_1010102(SDE_PIX_FMT_XBGR_2101010, "SDE/XBGR_2101010",
+ SDE_MDP_FMT_LINEAR,
+ 0, 0, C3_ALPHA, C1_B_Cb, C0_G_Y, C2_R_Cr,
SDE_MDP_COMPRESS_NONE),
};
@@ -518,24 +543,3 @@ int sde_rot_get_ubwc_micro_dim(u32 format, u16 *w, u16 *h)
return 0;
}
-
-/*
- * sde_mdp_is_wb_format - determine if the given fmt is supported by writeback
- * @fmt: Pointer to format parameter
- */
-bool sde_mdp_is_wb_format(struct sde_mdp_format_params *fmt)
-{
- struct sde_rot_data_type *mdata = sde_rot_get_mdata();
-
- if (!mdata || !fmt)
- return false;
- else if (test_bit(SDE_CAPS_R1_WB, mdata->sde_caps_map) &&
- (fmt->flag & VALID_ROT_WB_FORMAT))
- return true;
- else if (test_bit(SDE_CAPS_R3_WB, mdata->sde_caps_map) &&
- (fmt->flag & VALID_ROT_R3_WB_FORMAT))
- return true;
- else
- return false;
-}
-
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.h b/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.h
index 198bee373a42..23548b99fce4 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.h
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_formats.h
@@ -17,19 +17,11 @@
#include <linux/types.h>
#include <media/msm_sde_rotator.h>
-/* internal formats */
-#define SDE_PIX_FMT_Y_CBCR_H2V2_TP10 v4l2_fourcc('T', 'P', '1', '0')
-
#define SDE_ROT_MAX_PLANES 4
#define UBWC_META_MACRO_W_H 16
#define UBWC_META_BLOCK_SIZE 256
-#define INVALID_WB_FORMAT 0
-#define VALID_ROT_WB_FORMAT BIT(0)
-#define VALID_MDP_WB_INTF_FORMAT BIT(1)
-#define VALID_ROT_R3_WB_FORMAT BIT(2)
-
/*
* Value of enum chosen to fit the number of bits
* expected by the HW programming.
@@ -79,6 +71,7 @@ enum sde_mdp_sspp_chroma_samp_type {
struct sde_mdp_format_params {
u32 format;
+ const char *description;
u32 flag;
u8 is_yuv;
u8 is_ubwc;
@@ -111,8 +104,6 @@ struct sde_mdp_format_params *sde_get_format_params(u32 format);
int sde_rot_get_ubwc_micro_dim(u32 format, u16 *w, u16 *h);
-bool sde_mdp_is_wb_format(struct sde_mdp_format_params *fmt);
-
static inline bool sde_mdp_is_tilea4x_format(struct sde_mdp_format_params *fmt)
{
return fmt && (fmt->frame_format == SDE_MDP_FMT_TILE_A4X);
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_r1.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_r1.c
index 31cc4f3fb58a..5b574ed9fabc 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_r1.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_r1.c
@@ -45,6 +45,100 @@ struct sde_rotator_r1_data {
struct sde_mdp_hw_resource *mdp_hw;
};
+static u32 sde_hw_rotator_input_pixfmts[] = {
+ SDE_PIX_FMT_XRGB_8888,
+ SDE_PIX_FMT_ARGB_8888,
+ SDE_PIX_FMT_ABGR_8888,
+ SDE_PIX_FMT_RGBA_8888,
+ SDE_PIX_FMT_BGRA_8888,
+ SDE_PIX_FMT_RGBX_8888,
+ SDE_PIX_FMT_BGRX_8888,
+ SDE_PIX_FMT_XBGR_8888,
+ SDE_PIX_FMT_RGBA_5551,
+ SDE_PIX_FMT_ARGB_1555,
+ SDE_PIX_FMT_ABGR_1555,
+ SDE_PIX_FMT_BGRA_5551,
+ SDE_PIX_FMT_BGRX_5551,
+ SDE_PIX_FMT_RGBX_5551,
+ SDE_PIX_FMT_XBGR_1555,
+ SDE_PIX_FMT_XRGB_1555,
+ SDE_PIX_FMT_ARGB_4444,
+ SDE_PIX_FMT_RGBA_4444,
+ SDE_PIX_FMT_BGRA_4444,
+ SDE_PIX_FMT_ABGR_4444,
+ SDE_PIX_FMT_RGBX_4444,
+ SDE_PIX_FMT_XRGB_4444,
+ SDE_PIX_FMT_BGRX_4444,
+ SDE_PIX_FMT_XBGR_4444,
+ SDE_PIX_FMT_RGB_888,
+ SDE_PIX_FMT_BGR_888,
+ SDE_PIX_FMT_RGB_565,
+ SDE_PIX_FMT_BGR_565,
+ SDE_PIX_FMT_Y_CB_CR_H2V2,
+ SDE_PIX_FMT_Y_CR_CB_H2V2,
+ SDE_PIX_FMT_Y_CR_CB_GH2V2,
+ SDE_PIX_FMT_Y_CBCR_H2V2,
+ SDE_PIX_FMT_Y_CRCB_H2V2,
+ SDE_PIX_FMT_Y_CBCR_H1V2,
+ SDE_PIX_FMT_Y_CRCB_H1V2,
+ SDE_PIX_FMT_Y_CBCR_H2V1,
+ SDE_PIX_FMT_Y_CRCB_H2V1,
+ SDE_PIX_FMT_YCBYCR_H2V1,
+ SDE_PIX_FMT_Y_CBCR_H2V2_VENUS,
+ SDE_PIX_FMT_Y_CRCB_H2V2_VENUS,
+ SDE_PIX_FMT_RGBA_8888_UBWC,
+ SDE_PIX_FMT_RGBX_8888_UBWC,
+ SDE_PIX_FMT_RGB_565_UBWC,
+ SDE_PIX_FMT_Y_CBCR_H2V2_UBWC,
+};
+
+static u32 sde_hw_rotator_output_pixfmts[] = {
+ SDE_PIX_FMT_XRGB_8888,
+ SDE_PIX_FMT_ARGB_8888,
+ SDE_PIX_FMT_ABGR_8888,
+ SDE_PIX_FMT_RGBA_8888,
+ SDE_PIX_FMT_BGRA_8888,
+ SDE_PIX_FMT_RGBX_8888,
+ SDE_PIX_FMT_BGRX_8888,
+ SDE_PIX_FMT_XBGR_8888,
+ SDE_PIX_FMT_RGBA_5551,
+ SDE_PIX_FMT_ARGB_1555,
+ SDE_PIX_FMT_ABGR_1555,
+ SDE_PIX_FMT_BGRA_5551,
+ SDE_PIX_FMT_BGRX_5551,
+ SDE_PIX_FMT_RGBX_5551,
+ SDE_PIX_FMT_XBGR_1555,
+ SDE_PIX_FMT_XRGB_1555,
+ SDE_PIX_FMT_ARGB_4444,
+ SDE_PIX_FMT_RGBA_4444,
+ SDE_PIX_FMT_BGRA_4444,
+ SDE_PIX_FMT_ABGR_4444,
+ SDE_PIX_FMT_RGBX_4444,
+ SDE_PIX_FMT_XRGB_4444,
+ SDE_PIX_FMT_BGRX_4444,
+ SDE_PIX_FMT_XBGR_4444,
+ SDE_PIX_FMT_RGB_888,
+ SDE_PIX_FMT_BGR_888,
+ SDE_PIX_FMT_RGB_565,
+ SDE_PIX_FMT_BGR_565,
+ SDE_PIX_FMT_Y_CB_CR_H2V2,
+ SDE_PIX_FMT_Y_CR_CB_H2V2,
+ SDE_PIX_FMT_Y_CR_CB_GH2V2,
+ SDE_PIX_FMT_Y_CBCR_H2V2,
+ SDE_PIX_FMT_Y_CRCB_H2V2,
+ SDE_PIX_FMT_Y_CBCR_H1V2,
+ SDE_PIX_FMT_Y_CRCB_H1V2,
+ SDE_PIX_FMT_Y_CBCR_H2V1,
+ SDE_PIX_FMT_Y_CRCB_H2V1,
+ SDE_PIX_FMT_YCBYCR_H2V1,
+ SDE_PIX_FMT_Y_CBCR_H2V2_VENUS,
+ SDE_PIX_FMT_Y_CRCB_H2V2_VENUS,
+ SDE_PIX_FMT_RGBA_8888_UBWC,
+ SDE_PIX_FMT_RGBX_8888_UBWC,
+ SDE_PIX_FMT_RGB_565_UBWC,
+ SDE_PIX_FMT_Y_CBCR_H2V2_UBWC,
+};
+
static struct sde_mdp_hw_resource *sde_rotator_hw_alloc(
struct sde_rot_mgr *mgr, u32 ctl_id, u32 wb_id, int irq_num)
{
@@ -403,6 +497,52 @@ static ssize_t sde_rotator_hw_show_state(struct sde_rot_mgr *mgr,
return cnt;
}
+/*
+ * sde_hw_rotator_get_pixfmt - get the indexed pixel format
+ * @mgr: Pointer to rotator manager
+ * @index: index of pixel format
+ * @input: true for input port; false for output port
+ */
+static u32 sde_hw_rotator_get_pixfmt(struct sde_rot_mgr *mgr,
+ int index, bool input)
+{
+ if (input) {
+ if (index < ARRAY_SIZE(sde_hw_rotator_input_pixfmts))
+ return sde_hw_rotator_input_pixfmts[index];
+ else
+ return 0;
+ } else {
+ if (index < ARRAY_SIZE(sde_hw_rotator_output_pixfmts))
+ return sde_hw_rotator_output_pixfmts[index];
+ else
+ return 0;
+ }
+}
+
+/*
+ * sde_hw_rotator_is_valid_pixfmt - verify if the given pixel format is valid
+ * @mgr: Pointer to rotator manager
+ * @pixfmt: pixel format to be verified
+ * @input: true for input port; false for output port
+ */
+static int sde_hw_rotator_is_valid_pixfmt(struct sde_rot_mgr *mgr, u32 pixfmt,
+ bool input)
+{
+ int i;
+
+ if (input) {
+ for (i = 0; i < ARRAY_SIZE(sde_hw_rotator_input_pixfmts); i++)
+ if (sde_hw_rotator_input_pixfmts[i] == pixfmt)
+ return true;
+ } else {
+ for (i = 0; i < ARRAY_SIZE(sde_hw_rotator_output_pixfmts); i++)
+ if (sde_hw_rotator_output_pixfmts[i] == pixfmt)
+ return true;
+ }
+
+ return false;
+}
+
static int sde_rotator_hw_parse_dt(struct sde_rotator_r1_data *hw_data,
struct platform_device *dev)
{
@@ -552,6 +692,8 @@ int sde_rotator_r1_init(struct sde_rot_mgr *mgr)
mgr->ops_hw_show_caps = sde_rotator_hw_show_caps;
mgr->ops_hw_show_state = sde_rotator_hw_show_state;
mgr->ops_hw_create_debugfs = sde_rotator_r1_create_debugfs;
+ mgr->ops_hw_get_pixfmt = sde_hw_rotator_get_pixfmt;
+ mgr->ops_hw_is_valid_pixfmt = sde_hw_rotator_is_valid_pixfmt;
ret = sde_rotator_hw_parse_dt(mgr->hw_data, mgr->pdev);
if (ret)
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
index 7a090ee20ffb..9b08c4fe0989 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
@@ -78,6 +78,126 @@
#define SDE_ROTREG_READ(base, off) \
readl_relaxed(base + (off))
+static u32 sde_hw_rotator_input_pixfmts[] = {
+ SDE_PIX_FMT_XRGB_8888,
+ SDE_PIX_FMT_ARGB_8888,
+ SDE_PIX_FMT_ABGR_8888,
+ SDE_PIX_FMT_RGBA_8888,
+ SDE_PIX_FMT_BGRA_8888,
+ SDE_PIX_FMT_RGBX_8888,
+ SDE_PIX_FMT_BGRX_8888,
+ SDE_PIX_FMT_XBGR_8888,
+ SDE_PIX_FMT_RGBA_5551,
+ SDE_PIX_FMT_ARGB_1555,
+ SDE_PIX_FMT_ABGR_1555,
+ SDE_PIX_FMT_BGRA_5551,
+ SDE_PIX_FMT_BGRX_5551,
+ SDE_PIX_FMT_RGBX_5551,
+ SDE_PIX_FMT_XBGR_1555,
+ SDE_PIX_FMT_XRGB_1555,
+ SDE_PIX_FMT_ARGB_4444,
+ SDE_PIX_FMT_RGBA_4444,
+ SDE_PIX_FMT_BGRA_4444,
+ SDE_PIX_FMT_ABGR_4444,
+ SDE_PIX_FMT_RGBX_4444,
+ SDE_PIX_FMT_XRGB_4444,
+ SDE_PIX_FMT_BGRX_4444,
+ SDE_PIX_FMT_XBGR_4444,
+ SDE_PIX_FMT_RGB_888,
+ SDE_PIX_FMT_BGR_888,
+ SDE_PIX_FMT_RGB_565,
+ SDE_PIX_FMT_BGR_565,
+ SDE_PIX_FMT_Y_CB_CR_H2V2,
+ SDE_PIX_FMT_Y_CR_CB_H2V2,
+ SDE_PIX_FMT_Y_CR_CB_GH2V2,
+ SDE_PIX_FMT_Y_CBCR_H2V2,
+ SDE_PIX_FMT_Y_CRCB_H2V2,
+ SDE_PIX_FMT_Y_CBCR_H1V2,
+ SDE_PIX_FMT_Y_CRCB_H1V2,
+ SDE_PIX_FMT_Y_CBCR_H2V1,
+ SDE_PIX_FMT_Y_CRCB_H2V1,
+ SDE_PIX_FMT_YCBYCR_H2V1,
+ SDE_PIX_FMT_Y_CBCR_H2V2_VENUS,
+ SDE_PIX_FMT_Y_CRCB_H2V2_VENUS,
+ SDE_PIX_FMT_RGBA_8888_UBWC,
+ SDE_PIX_FMT_RGBX_8888_UBWC,
+ SDE_PIX_FMT_RGB_565_UBWC,
+ SDE_PIX_FMT_Y_CBCR_H2V2_UBWC,
+ SDE_PIX_FMT_RGBA_1010102,
+ SDE_PIX_FMT_RGBX_1010102,
+ SDE_PIX_FMT_ARGB_2101010,
+ SDE_PIX_FMT_XRGB_2101010,
+ SDE_PIX_FMT_BGRA_1010102,
+ SDE_PIX_FMT_BGRX_1010102,
+ SDE_PIX_FMT_ABGR_2101010,
+ SDE_PIX_FMT_XBGR_2101010,
+ SDE_PIX_FMT_RGBA_1010102_UBWC,
+ SDE_PIX_FMT_RGBX_1010102_UBWC,
+ SDE_PIX_FMT_Y_CBCR_H2V2_P010,
+ SDE_PIX_FMT_Y_CBCR_H2V2_TP10,
+ SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC,
+};
+
+static u32 sde_hw_rotator_output_pixfmts[] = {
+ SDE_PIX_FMT_XRGB_8888,
+ SDE_PIX_FMT_ARGB_8888,
+ SDE_PIX_FMT_ABGR_8888,
+ SDE_PIX_FMT_RGBA_8888,
+ SDE_PIX_FMT_BGRA_8888,
+ SDE_PIX_FMT_RGBX_8888,
+ SDE_PIX_FMT_BGRX_8888,
+ SDE_PIX_FMT_XBGR_8888,
+ SDE_PIX_FMT_RGBA_5551,
+ SDE_PIX_FMT_ARGB_1555,
+ SDE_PIX_FMT_ABGR_1555,
+ SDE_PIX_FMT_BGRA_5551,
+ SDE_PIX_FMT_BGRX_5551,
+ SDE_PIX_FMT_RGBX_5551,
+ SDE_PIX_FMT_XBGR_1555,
+ SDE_PIX_FMT_XRGB_1555,
+ SDE_PIX_FMT_ARGB_4444,
+ SDE_PIX_FMT_RGBA_4444,
+ SDE_PIX_FMT_BGRA_4444,
+ SDE_PIX_FMT_ABGR_4444,
+ SDE_PIX_FMT_RGBX_4444,
+ SDE_PIX_FMT_XRGB_4444,
+ SDE_PIX_FMT_BGRX_4444,
+ SDE_PIX_FMT_XBGR_4444,
+ SDE_PIX_FMT_RGB_888,
+ SDE_PIX_FMT_BGR_888,
+ SDE_PIX_FMT_RGB_565,
+ SDE_PIX_FMT_BGR_565,
+ /* SDE_PIX_FMT_Y_CB_CR_H2V2 */
+ /* SDE_PIX_FMT_Y_CR_CB_H2V2 */
+ /* SDE_PIX_FMT_Y_CR_CB_GH2V2 */
+ SDE_PIX_FMT_Y_CBCR_H2V2,
+ SDE_PIX_FMT_Y_CRCB_H2V2,
+ SDE_PIX_FMT_Y_CBCR_H1V2,
+ SDE_PIX_FMT_Y_CRCB_H1V2,
+ SDE_PIX_FMT_Y_CBCR_H2V1,
+ SDE_PIX_FMT_Y_CRCB_H2V1,
+ /* SDE_PIX_FMT_YCBYCR_H2V1 */
+ SDE_PIX_FMT_Y_CBCR_H2V2_VENUS,
+ SDE_PIX_FMT_Y_CRCB_H2V2_VENUS,
+ SDE_PIX_FMT_RGBA_8888_UBWC,
+ SDE_PIX_FMT_RGBX_8888_UBWC,
+ SDE_PIX_FMT_RGB_565_UBWC,
+ SDE_PIX_FMT_Y_CBCR_H2V2_UBWC,
+ SDE_PIX_FMT_RGBA_1010102,
+ SDE_PIX_FMT_RGBX_1010102,
+ /* SDE_PIX_FMT_ARGB_2101010 */
+ /* SDE_PIX_FMT_XRGB_2101010 */
+ SDE_PIX_FMT_BGRA_1010102,
+ SDE_PIX_FMT_BGRX_1010102,
+ /* SDE_PIX_FMT_ABGR_2101010 */
+ /* SDE_PIX_FMT_XBGR_2101010 */
+ SDE_PIX_FMT_RGBA_1010102_UBWC,
+ SDE_PIX_FMT_RGBX_1010102_UBWC,
+ SDE_PIX_FMT_Y_CBCR_H2V2_P010,
+ SDE_PIX_FMT_Y_CBCR_H2V2_TP10,
+ SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC,
+};
+
/* Invalid software timestamp value for initialization */
#define SDE_REGDMA_SWTS_INVALID (~0)
@@ -1872,6 +1992,52 @@ static ssize_t sde_hw_rotator_show_state(struct sde_rot_mgr *mgr,
}
/*
+ * sde_hw_rotator_get_pixfmt - get the indexed pixel format
+ * @mgr: Pointer to rotator manager
+ * @index: index of pixel format
+ * @input: true for input port; false for output port
+ */
+static u32 sde_hw_rotator_get_pixfmt(struct sde_rot_mgr *mgr,
+ int index, bool input)
+{
+ if (input) {
+ if (index < ARRAY_SIZE(sde_hw_rotator_input_pixfmts))
+ return sde_hw_rotator_input_pixfmts[index];
+ else
+ return 0;
+ } else {
+ if (index < ARRAY_SIZE(sde_hw_rotator_output_pixfmts))
+ return sde_hw_rotator_output_pixfmts[index];
+ else
+ return 0;
+ }
+}
+
+/*
+ * sde_hw_rotator_is_valid_pixfmt - verify if the given pixel format is valid
+ * @mgr: Pointer to rotator manager
+ * @pixfmt: pixel format to be verified
+ * @input: true for input port; false for output port
+ */
+static int sde_hw_rotator_is_valid_pixfmt(struct sde_rot_mgr *mgr, u32 pixfmt,
+ bool input)
+{
+ int i;
+
+ if (input) {
+ for (i = 0; i < ARRAY_SIZE(sde_hw_rotator_input_pixfmts); i++)
+ if (sde_hw_rotator_input_pixfmts[i] == pixfmt)
+ return true;
+ } else {
+ for (i = 0; i < ARRAY_SIZE(sde_hw_rotator_output_pixfmts); i++)
+ if (sde_hw_rotator_output_pixfmts[i] == pixfmt)
+ return true;
+ }
+
+ return false;
+}
+
+/*
* sde_hw_rotator_parse_dt - parse r3 specific device tree settings
* @hw_data: Pointer to rotator hw
* @dev: Pointer to platform device
@@ -1949,6 +2115,8 @@ int sde_rotator_r3_init(struct sde_rot_mgr *mgr)
mgr->ops_hw_show_caps = sde_hw_rotator_show_caps;
mgr->ops_hw_show_state = sde_hw_rotator_show_state;
mgr->ops_hw_create_debugfs = sde_rotator_r3_create_debugfs;
+ mgr->ops_hw_get_pixfmt = sde_hw_rotator_get_pixfmt;
+ mgr->ops_hw_is_valid_pixfmt = sde_hw_rotator_is_valid_pixfmt;
ret = sde_hw_rotator_parse_dt(mgr->hw_data, mgr->pdev);
if (ret)
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
index 7fd7501dabd8..d9e04bc8d0f1 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -1233,6 +1233,80 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
descr = "NV12 UBWC"; break;
case V4L2_PIX_FMT_RGBA8888_UBWC:
descr = "RGBA8888 UBWC"; break;
+ case V4L2_PIX_FMT_SDE_ABGR_8888:
+ descr = "32-bit ABGR 8-8-8-8"; break;
+ case V4L2_PIX_FMT_SDE_RGBA_8888:
+ descr = "32-bit RGBA 8-8-8-8"; break;
+ case V4L2_PIX_FMT_SDE_RGBX_8888:
+ descr = "32-bit RGBX 8-8-8-8"; break;
+ case V4L2_PIX_FMT_SDE_XBGR_8888:
+ descr = "32-bit XBGR 8-8-8-8"; break;
+ case V4L2_PIX_FMT_SDE_RGBA_5551:
+ descr = "16-bit RGBA 5-5-5-1"; break;
+ case V4L2_PIX_FMT_SDE_ABGR_1555:
+ descr = "16-bit ABGR 1-5-5-5"; break;
+ case V4L2_PIX_FMT_SDE_BGRA_5551:
+ descr = "16-bit BGRA 5-5-5-1"; break;
+ case V4L2_PIX_FMT_SDE_BGRX_5551:
+ descr = "16-bit BGRX 5-5-5-1"; break;
+ case V4L2_PIX_FMT_SDE_RGBX_5551:
+ descr = "16-bit RGBX 5-5-5-1"; break;
+ case V4L2_PIX_FMT_SDE_XBGR_1555:
+ descr = "16-bit XBGR 1-5-5-5"; break;
+ case V4L2_PIX_FMT_SDE_RGBA_4444:
+ descr = "16-bit RGBA 4-4-4-4"; break;
+ case V4L2_PIX_FMT_SDE_BGRA_4444:
+ descr = "16-bit BGRA 4-4-4-4"; break;
+ case V4L2_PIX_FMT_SDE_ABGR_4444:
+ descr = "16-bit ABGR 4-4-4-4"; break;
+ case V4L2_PIX_FMT_SDE_RGBX_4444:
+ descr = "16-bit RGBX 4-4-4-4"; break;
+ case V4L2_PIX_FMT_SDE_BGRX_4444:
+ descr = "16-bit BGRX 4-4-4-4"; break;
+ case V4L2_PIX_FMT_SDE_XBGR_4444:
+ descr = "16-bit XBGR 4-4-4-4"; break;
+ case V4L2_PIX_FMT_SDE_BGR_565:
+ descr = "16-bit BGR 5-6-5"; break;
+ case V4L2_PIX_FMT_SDE_Y_CR_CB_GH2V2:
+ descr = "Planar YVU 4:2:0 A16"; break;
+ case V4L2_PIX_FMT_SDE_Y_CBCR_H1V2:
+ descr = "Y/CbCr 4:2:2"; break;
+ case V4L2_PIX_FMT_SDE_Y_CRCB_H1V2:
+ descr = "Y/CrCb 4:2:2"; break;
+ case V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_VENUS:
+ descr = "Y/CbCr 4:2:0 Venus"; break;
+ case V4L2_PIX_FMT_SDE_Y_CRCB_H2V2_VENUS:
+ descr = "Y/CrCb 4:2:0 Venus"; break;
+ case V4L2_PIX_FMT_SDE_RGBX_8888_UBWC:
+ descr = "RGBX 8:8:8:8 UBWC"; break;
+ case V4L2_PIX_FMT_SDE_RGB_565_UBWC:
+ descr = "RGB 5:6:5 UBWC"; break;
+ case V4L2_PIX_FMT_SDE_RGBA_1010102:
+ descr = "RGBA 10:10:10:2"; break;
+ case V4L2_PIX_FMT_SDE_RGBX_1010102:
+ descr = "RGBX 10:10:10:2"; break;
+ case V4L2_PIX_FMT_SDE_ARGB_2101010:
+ descr = "ARGB 2:10:10:10"; break;
+ case V4L2_PIX_FMT_SDE_XRGB_2101010:
+ descr = "XRGB 2:10:10:10"; break;
+ case V4L2_PIX_FMT_SDE_BGRA_1010102:
+ descr = "BGRA 10:10:10:2"; break;
+ case V4L2_PIX_FMT_SDE_BGRX_1010102:
+ descr = "BGRX 10:10:10:2"; break;
+ case V4L2_PIX_FMT_SDE_ABGR_2101010:
+ descr = "ABGR 2:10:10:10"; break;
+ case V4L2_PIX_FMT_SDE_XBGR_2101010:
+ descr = "XBGR 2:10:10:10"; break;
+ case V4L2_PIX_FMT_SDE_RGBA_1010102_UBWC:
+ descr = "RGBA 10:10:10:2 UBWC"; break;
+ case V4L2_PIX_FMT_SDE_RGBX_1010102_UBWC:
+ descr = "RGBX 10:10:10:2 UBWC"; break;
+ case V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_TP10:
+ descr = "Y/CbCr 4:2:0 TP10"; break;
+ case V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010:
+ descr = "Y/CbCr 4:2:0 P10"; break;
+ case V4L2_PIX_FMT_NV12_TP10_UBWC:
+ descr = "Y/CbCr 4:2:0 TP10 UBWC"; break;
default:
/* Compressed formats */
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index 46b0402a730f..4a3b35f10257 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -641,6 +641,79 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_SE401 v4l2_fourcc('S', '4', '0', '1') /* se401 janggu compressed rgb */
#define V4L2_PIX_FMT_S5C_UYVY_JPG v4l2_fourcc('S', '5', 'C', 'I') /* S5C73M3 interleaved UYVY/JPEG */
+#define V4L2_PIX_FMT_SDE_ABGR_8888 \
+ v4l2_fourcc('R', 'A', '2', '4') /* 32-bit ABGR 8:8:8:8 */
+#define V4L2_PIX_FMT_SDE_RGBA_8888 \
+ v4l2_fourcc('A', 'B', '2', '4') /* 32-bit RGBA 8:8:8:8 */
+#define V4L2_PIX_FMT_SDE_RGBX_8888 \
+ v4l2_fourcc('X', 'B', '2', '4') /* 32-bit RGBX 8:8:8:8 */
+#define V4L2_PIX_FMT_SDE_XBGR_8888 \
+ v4l2_fourcc('R', 'X', '2', '4') /* 32-bit XBGR 8:8:8:8 */
+#define V4L2_PIX_FMT_SDE_RGBA_5551 \
+ v4l2_fourcc('R', 'A', '1', '5') /* 16-bit RGBA 5:5:5:1 */
+#define V4L2_PIX_FMT_SDE_ABGR_1555 \
+ v4l2_fourcc('A', 'B', '1', '5') /* 16-bit ABGR 1:5:5:5 */
+#define V4L2_PIX_FMT_SDE_BGRA_5551 \
+ v4l2_fourcc('B', 'A', '1', '5') /* 16-bit BGRA 5:5:5:1 */
+#define V4L2_PIX_FMT_SDE_BGRX_5551 \
+ v4l2_fourcc('B', 'X', '1', '5') /* 16-bit BGRX 5:5:5:1 */
+#define V4L2_PIX_FMT_SDE_RGBX_5551 \
+ v4l2_fourcc('R', 'X', '1', '5') /* 16-bit RGBX 5:5:5:1 */
+#define V4L2_PIX_FMT_SDE_XBGR_1555 \
+ v4l2_fourcc('X', 'B', '1', '5') /* 16-bit XBGR 1:5:5:5 */
+#define V4L2_PIX_FMT_SDE_RGBA_4444 \
+ v4l2_fourcc('R', 'A', '1', '2') /* 16-bit RGBA 4:4:4:4 */
+#define V4L2_PIX_FMT_SDE_BGRA_4444 \
+ v4l2_fourcc('b', 'A', '1', '2') /* 16-bit BGRA 4:4:4:4 */
+#define V4L2_PIX_FMT_SDE_ABGR_4444 \
+ v4l2_fourcc('A', 'B', '1', '2') /* 16-bit ABGR 4:4:4:4 */
+#define V4L2_PIX_FMT_SDE_RGBX_4444 \
+ v4l2_fourcc('R', 'X', '1', '2') /* 16-bit RGBX 4:4:4:4 */
+#define V4L2_PIX_FMT_SDE_BGRX_4444 \
+ v4l2_fourcc('B', 'X', '1', '2') /* 16-bit BGRX 4:4:4:4 */
+#define V4L2_PIX_FMT_SDE_XBGR_4444 \
+ v4l2_fourcc('X', 'B', '1', '2') /* 16-bit XBGR 4:4:4:4 */
+#define V4L2_PIX_FMT_SDE_BGR_565 \
+ v4l2_fourcc('B', 'G', '1', '6') /* 16-bit BGR 5:6:5 */
+#define V4L2_PIX_FMT_SDE_Y_CR_CB_GH2V2 \
+ v4l2_fourcc('Y', 'U', '4', '2') /* Planar YVU 4:2:0 A16 */
+#define V4L2_PIX_FMT_SDE_Y_CBCR_H1V2 \
+ v4l2_fourcc('N', 'H', '1', '6') /* Y/CbCr 4:2:2 */
+#define V4L2_PIX_FMT_SDE_Y_CRCB_H1V2 \
+ v4l2_fourcc('N', 'H', '6', '1') /* Y/CrCb 4:2:2 */
+#define V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_VENUS \
+ v4l2_fourcc('Q', 'N', 'V', '2') /* Y/CbCr 4:2:0 Venus */
+#define V4L2_PIX_FMT_SDE_Y_CRCB_H2V2_VENUS \
+ v4l2_fourcc('Q', 'N', 'V', '1') /* Y/CrCb 4:2:0 Venus */
+#define V4L2_PIX_FMT_SDE_RGBX_8888_UBWC \
+ v4l2_fourcc('Q', 'X', 'B', '4') /* RGBX 8:8:8:8 UBWC */
+#define V4L2_PIX_FMT_SDE_RGB_565_UBWC \
+ v4l2_fourcc('Q', 'R', 'G', '6') /* RGB 5:6:5 UBWC */
+#define V4L2_PIX_FMT_SDE_RGBA_1010102 \
+ v4l2_fourcc('A', 'B', '3', '0') /* RGBA 10:10:10:2 */
+#define V4L2_PIX_FMT_SDE_RGBX_1010102 \
+ v4l2_fourcc('X', 'B', '3', '0') /* RGBX 10:10:10:2 */
+#define V4L2_PIX_FMT_SDE_ARGB_2101010 \
+ v4l2_fourcc('A', 'R', '3', '0') /* ARGB 2:10:10:10 */
+#define V4L2_PIX_FMT_SDE_XRGB_2101010 \
+ v4l2_fourcc('X', 'R', '3', '0') /* XRGB 2:10:10:10 */
+#define V4L2_PIX_FMT_SDE_BGRA_1010102 \
+ v4l2_fourcc('B', 'A', '3', '0') /* BGRA 10:10:10:2 */
+#define V4L2_PIX_FMT_SDE_BGRX_1010102 \
+ v4l2_fourcc('B', 'X', '3', '0') /* BGRX 10:10:10:2 */
+#define V4L2_PIX_FMT_SDE_ABGR_2101010 \
+ v4l2_fourcc('R', 'A', '3', '0') /* ABGR 2:10:10:10 */
+#define V4L2_PIX_FMT_SDE_XBGR_2101010 \
+ v4l2_fourcc('R', 'X', '3', '0') /* XBGR 2:10:10:10 */
+#define V4L2_PIX_FMT_SDE_RGBA_1010102_UBWC \
+ v4l2_fourcc('Q', 'R', 'B', 'A') /* RGBA 10:10:10:2 UBWC */
+#define V4L2_PIX_FMT_SDE_RGBX_1010102_UBWC \
+ v4l2_fourcc('Q', 'X', 'B', 'A') /* RGBX 10:10:10:2 UBWC */
+#define V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_TP10 \
+ v4l2_fourcc('T', 'P', '1', '0') /* Y/CbCr 4:2:0 TP10 */
+#define V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010 \
+ v4l2_fourcc('P', '0', '1', '0') /* Y/CbCr 4:2:0 P10 */
+
/* SDR formats - used only for Software Defined Radio devices */
#define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
#define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */
diff --git a/include/uapi/media/msm_sde_rotator.h b/include/uapi/media/msm_sde_rotator.h
index 461a171a42c1..4487edf0c854 100644
--- a/include/uapi/media/msm_sde_rotator.h
+++ b/include/uapi/media/msm_sde_rotator.h
@@ -8,59 +8,60 @@
/* SDE Rotator pixel format definitions */
#define SDE_PIX_FMT_XRGB_8888 V4L2_PIX_FMT_XBGR32
#define SDE_PIX_FMT_ARGB_8888 V4L2_PIX_FMT_ABGR32
-#define SDE_PIX_FMT_ABGR_8888 v4l2_fourcc('R', 'A', '2', '4')
-#define SDE_PIX_FMT_RGBA_8888 v4l2_fourcc('A', 'B', '2', '4')
+#define SDE_PIX_FMT_ABGR_8888 V4L2_PIX_FMT_SDE_ABGR_8888
+#define SDE_PIX_FMT_RGBA_8888 V4L2_PIX_FMT_SDE_RGBA_8888
#define SDE_PIX_FMT_BGRA_8888 V4L2_PIX_FMT_ARGB32
-#define SDE_PIX_FMT_RGBX_8888 v4l2_fourcc('X', 'B', '2', '4')
+#define SDE_PIX_FMT_RGBX_8888 V4L2_PIX_FMT_SDE_RGBX_8888
#define SDE_PIX_FMT_BGRX_8888 V4L2_PIX_FMT_XRGB32
-#define SDE_PIX_FMT_XBGR_8888 v4l2_fourcc('R', 'X', '2', '4')
-#define SDE_PIX_FMT_RGBA_5551 v4l2_fourcc('R', 'A', '1', '5')
+#define SDE_PIX_FMT_XBGR_8888 V4L2_PIX_FMT_SDE_XBGR_8888
+#define SDE_PIX_FMT_RGBA_5551 V4L2_PIX_FMT_SDE_RGBA_5551
#define SDE_PIX_FMT_ARGB_1555 V4L2_PIX_FMT_ARGB555
-#define SDE_PIX_FMT_ABGR_1555 v4l2_fourcc('A', 'B', '1', '5')
-#define SDE_PIX_FMT_BGRA_5551 v4l2_fourcc('B', 'A', '1', '5')
-#define SDE_PIX_FMT_BGRX_5551 v4l2_fourcc('B', 'X', '1', '5')
-#define SDE_PIX_FMT_RGBX_5551 v4l2_fourcc('R', 'X', '1', '5')
-#define SDE_PIX_FMT_XBGR_1555 v4l2_fourcc('X', 'B', '1', '5')
+#define SDE_PIX_FMT_ABGR_1555 V4L2_PIX_FMT_SDE_ABGR_1555
+#define SDE_PIX_FMT_BGRA_5551 V4L2_PIX_FMT_SDE_BGRA_5551
+#define SDE_PIX_FMT_BGRX_5551 V4L2_PIX_FMT_SDE_BGRX_5551
+#define SDE_PIX_FMT_RGBX_5551 V4L2_PIX_FMT_SDE_RGBX_5551
+#define SDE_PIX_FMT_XBGR_1555 V4L2_PIX_FMT_SDE_XBGR_1555
#define SDE_PIX_FMT_XRGB_1555 V4L2_PIX_FMT_XRGB555
#define SDE_PIX_FMT_ARGB_4444 V4L2_PIX_FMT_ARGB444
-#define SDE_PIX_FMT_RGBA_4444 v4l2_fourcc('R', 'A', '1', '2')
-#define SDE_PIX_FMT_BGRA_4444 v4l2_fourcc('B', 'A', '1', '2')
-#define SDE_PIX_FMT_ABGR_4444 v4l2_fourcc('A', 'B', '1', '2')
-#define SDE_PIX_FMT_RGBX_4444 v4l2_fourcc('R', 'X', '1', '2')
+#define SDE_PIX_FMT_RGBA_4444 V4L2_PIX_FMT_SDE_RGBA_4444
+#define SDE_PIX_FMT_BGRA_4444 V4L2_PIX_FMT_SDE_BGRA_4444
+#define SDE_PIX_FMT_ABGR_4444 V4L2_PIX_FMT_SDE_ABGR_4444
+#define SDE_PIX_FMT_RGBX_4444 V4L2_PIX_FMT_SDE_RGBX_4444
#define SDE_PIX_FMT_XRGB_4444 V4L2_PIX_FMT_XRGB444
-#define SDE_PIX_FMT_BGRX_4444 v4l2_fourcc('B', 'X', '1', '2')
-#define SDE_PIX_FMT_XBGR_4444 v4l2_fourcc('X', 'B', '1', '2')
+#define SDE_PIX_FMT_BGRX_4444 V4L2_PIX_FMT_SDE_BGRX_4444
+#define SDE_PIX_FMT_XBGR_4444 V4L2_PIX_FMT_SDE_XBGR_4444
#define SDE_PIX_FMT_RGB_888 V4L2_PIX_FMT_RGB24
#define SDE_PIX_FMT_BGR_888 V4L2_PIX_FMT_BGR24
#define SDE_PIX_FMT_RGB_565 V4L2_PIX_FMT_RGB565
-#define SDE_PIX_FMT_BGR_565 v4l2_fourcc('B', 'G', '1', '6')
+#define SDE_PIX_FMT_BGR_565 V4L2_PIX_FMT_SDE_BGR_565
#define SDE_PIX_FMT_Y_CB_CR_H2V2 V4L2_PIX_FMT_YUV420
#define SDE_PIX_FMT_Y_CR_CB_H2V2 V4L2_PIX_FMT_YVU420
-#define SDE_PIX_FMT_Y_CR_CB_GH2V2 v4l2_fourcc('Y', 'U', '4', '2')
+#define SDE_PIX_FMT_Y_CR_CB_GH2V2 V4L2_PIX_FMT_SDE_Y_CR_CB_GH2V2
#define SDE_PIX_FMT_Y_CBCR_H2V2 V4L2_PIX_FMT_NV12
#define SDE_PIX_FMT_Y_CRCB_H2V2 V4L2_PIX_FMT_NV21
-#define SDE_PIX_FMT_Y_CBCR_H1V2 v4l2_fourcc('N', 'H', '1', '6')
-#define SDE_PIX_FMT_Y_CRCB_H1V2 v4l2_fourcc('N', 'H', '6', '1')
+#define SDE_PIX_FMT_Y_CBCR_H1V2 V4L2_PIX_FMT_SDE_Y_CBCR_H1V2
+#define SDE_PIX_FMT_Y_CRCB_H1V2 V4L2_PIX_FMT_SDE_Y_CRCB_H1V2
#define SDE_PIX_FMT_Y_CBCR_H2V1 V4L2_PIX_FMT_NV16
#define SDE_PIX_FMT_Y_CRCB_H2V1 V4L2_PIX_FMT_NV61
#define SDE_PIX_FMT_YCBYCR_H2V1 V4L2_PIX_FMT_YUYV
-#define SDE_PIX_FMT_Y_CBCR_H2V2_VENUS v4l2_fourcc('Q', 'N', 'V', '2')
-#define SDE_PIX_FMT_Y_CRCB_H2V2_VENUS v4l2_fourcc('Q', 'N', 'V', '1')
+#define SDE_PIX_FMT_Y_CBCR_H2V2_VENUS V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_VENUS
+#define SDE_PIX_FMT_Y_CRCB_H2V2_VENUS V4L2_PIX_FMT_SDE_Y_CRCB_H2V2_VENUS
#define SDE_PIX_FMT_RGBA_8888_UBWC V4L2_PIX_FMT_RGBA8888_UBWC
-#define SDE_PIX_FMT_RGBX_8888_UBWC v4l2_fourcc('Q', 'X', 'B', '4')
-#define SDE_PIX_FMT_RGB_565_UBWC v4l2_fourcc('Q', 'R', 'G', '6')
+#define SDE_PIX_FMT_RGBX_8888_UBWC V4L2_PIX_FMT_SDE_RGBX_8888_UBWC
+#define SDE_PIX_FMT_RGB_565_UBWC V4L2_PIX_FMT_SDE_RGB_565_UBWC
#define SDE_PIX_FMT_Y_CBCR_H2V2_UBWC V4L2_PIX_FMT_NV12_UBWC
-#define SDE_PIX_FMT_RGBA_1010102 v4l2_fourcc('A', 'B', '3', '0')
-#define SDE_PIX_FMT_RGBX_1010102 v4l2_fourcc('X', 'B', '3', '0')
-#define SDE_PIX_FMT_ARGB_2101010 v4l2_fourcc('A', 'R', '3', '0')
-#define SDE_PIX_FMT_XRGB_2101010 v4l2_fourcc('X', 'R', '3', '0')
-#define SDE_PIX_FMT_BGRA_1010102 v4l2_fourcc('B', 'A', '3', '0')
-#define SDE_PIX_FMT_BGRX_1010102 v4l2_fourcc('B', 'X', '3', '0')
-#define SDE_PIX_FMT_ABGR_2101010 v4l2_fourcc('R', 'A', '3', '0')
-#define SDE_PIX_FMT_XBGR_2101010 v4l2_fourcc('R', 'X', '3', '0')
-#define SDE_PIX_FMT_RGBA_1010102_UBWC v4l2_fourcc('Q', 'R', 'B', 'A')
-#define SDE_PIX_FMT_RGBX_1010102_UBWC v4l2_fourcc('Q', 'X', 'B', 'A')
-#define SDE_PIX_FMT_Y_CBCR_H2V2_P010 v4l2_fourcc('P', '0', '1', '0')
+#define SDE_PIX_FMT_RGBA_1010102 V4L2_PIX_FMT_SDE_RGBA_1010102
+#define SDE_PIX_FMT_RGBX_1010102 V4L2_PIX_FMT_SDE_RGBX_1010102
+#define SDE_PIX_FMT_ARGB_2101010 V4L2_PIX_FMT_SDE_ARGB_2101010
+#define SDE_PIX_FMT_XRGB_2101010 V4L2_PIX_FMT_SDE_XRGB_2101010
+#define SDE_PIX_FMT_BGRA_1010102 V4L2_PIX_FMT_SDE_BGRA_1010102
+#define SDE_PIX_FMT_BGRX_1010102 V4L2_PIX_FMT_SDE_BGRX_1010102
+#define SDE_PIX_FMT_ABGR_2101010 V4L2_PIX_FMT_SDE_ABGR_2101010
+#define SDE_PIX_FMT_XBGR_2101010 V4L2_PIX_FMT_SDE_XBGR_2101010
+#define SDE_PIX_FMT_RGBA_1010102_UBWC V4L2_PIX_FMT_SDE_RGBA_1010102_UBWC
+#define SDE_PIX_FMT_RGBX_1010102_UBWC V4L2_PIX_FMT_SDE_RGBX_1010102_UBWC
+#define SDE_PIX_FMT_Y_CBCR_H2V2_P010 V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_P010
+#define SDE_PIX_FMT_Y_CBCR_H2V2_TP10 V4L2_PIX_FMT_SDE_Y_CBCR_H2V2_TP10
#define SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC V4L2_PIX_FMT_NV12_TP10_UBWC
/**