diff options
author | Fancy Fang <chen.fang@freescale.com> | 2015-04-07 18:18:33 +0800 |
---|---|---|
committer | Jason Liu <r64343@freescale.com> | 2015-05-08 16:34:12 +0800 |
commit | a991e2bf00c178b0f8eba858c55f7dfdf1fcf53d (patch) | |
tree | 7a7e15600cfbe3257aef6322a425c276a52eea43 /drivers/dma | |
parent | 7b73525ff5182776e9d19bed64b9ca972e1cbe58 (diff) |
MLK-10594 dma: pxp-v3: add RGB15 format support
Add 'RGB15' format support for AS, PS and OUT channels
for some multimedia applications.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/pxp/pxp_dma_v3.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/dma/pxp/pxp_dma_v3.c b/drivers/dma/pxp/pxp_dma_v3.c index 9eaa27a70dd0..56059117413b 100644 --- a/drivers/dma/pxp/pxp_dma_v3.c +++ b/drivers/dma/pxp/pxp_dma_v3.c @@ -560,7 +560,8 @@ static void pxp_set_outbuf(struct pxps *pxp) out_params->pixel_fmt == PXP_PIX_FMT_RGB32) { __raw_writel(out_params->stride << 2, pxp->base + HW_PXP_OUT_PITCH); - } else if (out_params->pixel_fmt == PXP_PIX_FMT_RGB565) { + } else if ((out_params->pixel_fmt == PXP_PIX_FMT_RGB565) || + (out_params->pixel_fmt == PXP_PIX_FMT_RGB555)) { __raw_writel(out_params->stride << 1, pxp->base + HW_PXP_OUT_PITCH); } else if (out_params->pixel_fmt == PXP_PIX_FMT_UYVY || @@ -647,11 +648,12 @@ static void pxp_set_oln(int layer_no, struct pxps *pxp) pxp->base + HW_PXP_OUT_AS_LRC); } - if ((olparams_data->pixel_fmt == PXP_PIX_FMT_BGRA32) | + if ((olparams_data->pixel_fmt == PXP_PIX_FMT_BGRA32) || (olparams_data->pixel_fmt == PXP_PIX_FMT_RGB32)) { __raw_writel(pitch << 2, pxp->base + HW_PXP_AS_PITCH); - } else if (olparams_data->pixel_fmt == PXP_PIX_FMT_RGB565) { + } else if ((olparams_data->pixel_fmt == PXP_PIX_FMT_RGB565) || + (olparams_data->pixel_fmt == PXP_PIX_FMT_RGB555)) { __raw_writel(pitch << 1, pxp->base + HW_PXP_AS_PITCH); } else { @@ -681,7 +683,11 @@ static void pxp_set_olparam(int layer_no, struct pxps *pxp) } else if (olparams_data->pixel_fmt == PXP_PIX_FMT_RGB565) { olparam |= BF_PXP_AS_CTRL_FORMAT(BV_PXP_AS_CTRL_FORMAT__RGB565); + } else if (olparams_data->pixel_fmt == PXP_PIX_FMT_RGB555) { + olparam |= + BF_PXP_AS_CTRL_FORMAT(BV_PXP_AS_CTRL_FORMAT__RGB555); } + if (olparams_data->global_alpha_enable) { if (olparams_data->global_override) { olparam |= @@ -1087,7 +1093,8 @@ static void pxp_set_s0buf(struct pxps *pxp) Y = s0_params->paddr; - if (s0_params->pixel_fmt == PXP_PIX_FMT_RGB565) + if ((s0_params->pixel_fmt == PXP_PIX_FMT_RGB565) || + (s0_params->pixel_fmt == PXP_PIX_FMT_RGB555)) bpp = 2; else if (s0_params->pixel_fmt == PXP_PIX_FMT_RGB32) bpp = 4; @@ -1159,7 +1166,8 @@ static void pxp_set_s0buf(struct pxps *pxp) s0_params->pixel_fmt == PXP_PIX_FMT_YVYU) __raw_writel(pitch << 1, pxp->base + HW_PXP_PS_PITCH); - else if (s0_params->pixel_fmt == PXP_PIX_FMT_RGB565) + else if ((s0_params->pixel_fmt == PXP_PIX_FMT_RGB565) || + (s0_params->pixel_fmt == PXP_PIX_FMT_RGB555)) __raw_writel(pitch << 1, pxp->base + HW_PXP_PS_PITCH); else |