diff options
author | Guoniu.Zhou <guoniu.zhou@nxp.com> | 2017-08-31 09:39:12 +0800 |
---|---|---|
committer | Guoniu.Zhou <guoniu.zhou@nxp.com> | 2017-08-31 09:46:55 +0800 |
commit | cbc71da10afe67ae815a97a68e4a1b0dff4693eb (patch) | |
tree | bb19d1204533d0506f8b121d3fdbbdc8cb71b175 | |
parent | dec937f8935c8a7cc6ec77e497e47774d610f93e (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>
-rw-r--r-- | drivers/dma/pxp/pxp_dma_v3.c | 7 |
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; |