summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorGuoniu.Zhou <guoniu.zhou@nxp.com>2017-08-31 09:39:12 +0800
committerGuoniu.Zhou <guoniu.zhou@nxp.com>2017-08-31 09:46:55 +0800
commitcbc71da10afe67ae815a97a68e4a1b0dff4693eb (patch)
treebb19d1204533d0506f8b121d3fdbbdc8cb71b175 /drivers
parentdec937f8935c8a7cc6ec77e497e47774d610f93e (diff)
MMFMWK-7674: PxP: add YVU420P support
PxP PS engine support YUV420 format, but not YVU420. The difference between two format is U and V, if we exchange U and V base address, the PxP driver can also support YVU420 format. Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com> Reviewed-by: Fancy Fang <chen.fang@nxp.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/dma/pxp/pxp_dma_v3.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/dma/pxp/pxp_dma_v3.c b/drivers/dma/pxp/pxp_dma_v3.c
index 775900b1a188..a191c4a9d9d3 100644
--- a/drivers/dma/pxp/pxp_dma_v3.c
+++ b/drivers/dma/pxp/pxp_dma_v3.c
@@ -1852,6 +1852,7 @@ static bool fmt_ps_support(uint32_t format)
case PXP_PIX_FMT_NV21:
case PXP_PIX_FMT_YUV422P:
case PXP_PIX_FMT_YUV420P:
+ case PXP_PIX_FMT_YVU420P:
case PXP_PIX_FMT_RGBA32:
case PXP_PIX_FMT_RGBX32:
case PXP_PIX_FMT_RGBA555:
@@ -2379,7 +2380,13 @@ static int pxp_ps_config(struct pxp_pixmap *input,
pxp_writel(U + (offset >> 2), HW_PXP_PS_UBUF);
V = U + (input->width * input->height >> 2);
pxp_writel(V + (offset >> 2), HW_PXP_PS_VBUF);
+ } else if (input->format == PXP_PIX_FMT_YVU420P) {
+ U = input->paddr + input->width * input->height;
+ V = U + (input->width * input->height >> 2);
+ pxp_writel(U + (offset >> 2), HW_PXP_PS_VBUF);
+ pxp_writel(V + (offset >> 2), HW_PXP_PS_UBUF);
}
+
break;
default:
break;