msm: sde: add NV21 support for inline rotation
Add NV21 support for inline rotation input format.
The corresponding output format should be NV12 tile.
Change-Id: Ib327d40a3d7d227f1d39f303338f94da80100786
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
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 523ff5b..eea10de 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_dev.c
@@ -1335,7 +1335,23 @@
int sde_rotator_inline_get_dst_pixfmt(struct platform_device *pdev,
u32 src_pixfmt, u32 *dst_pixfmt)
{
- return sde_rot_get_base_tilea5x_pixfmt(src_pixfmt, dst_pixfmt);
+ int rc;
+
+ if (!src_pixfmt || !dst_pixfmt)
+ return -EINVAL;
+
+ rc = sde_rot_get_base_tilea5x_pixfmt(src_pixfmt, dst_pixfmt);
+ if (rc)
+ return rc;
+
+ /*
+ * Currently, NV21 tile is not supported as output; hence,
+ * override with NV12 tile.
+ */
+ if (*dst_pixfmt == SDE_PIX_FMT_Y_CRCB_H2V2_TILE)
+ *dst_pixfmt = SDE_PIX_FMT_Y_CBCR_H2V2_TILE;
+
+ return 0;
}
EXPORT_SYMBOL(sde_rotator_inline_get_dst_pixfmt);
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 6ecec03..e7ae59e 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
@@ -419,6 +419,7 @@
static const u32 sde_hw_rotator_v4_inpixfmts_sbuf[] = {
SDE_PIX_FMT_Y_CBCR_H2V2_P010,
SDE_PIX_FMT_Y_CBCR_H2V2,
+ SDE_PIX_FMT_Y_CRCB_H2V2,
SDE_PIX_FMT_Y_CBCR_H2V2_TP10_UBWC,
SDE_PIX_FMT_Y_CBCR_H2V2_P010_UBWC,
SDE_PIX_FMT_Y_CBCR_H2V2_UBWC,