MLK-14314-3 pxp-v3: add 'need_yuv_swap' field
authorFancy Fang <chen.fang@nxp.com>
Thu, 2 Mar 2017 07:51:39 +0000 (15:51 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:22:09 +0000 (15:22 -0500)
Add 'need_yuv_swap' field to 'pxp_proc_data' structure to
record the yuv formats which needs byte swap.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 28ce43b27faad915e93f47b438d23f4ebfe020b5)

drivers/dma/pxp/pxp_dma_v3.c
include/uapi/linux/pxp_dma.h

index 32ca050..5096665 100644 (file)
@@ -425,7 +425,6 @@ static void pxp_set_ctrl(struct pxps *pxp)
        struct pxp_proc_data *proc_data = &pxp_conf->proc_data;
        u32 ctrl;
        u32 fmt_ctrl;
-       int need_swap = 0;   /* to support YUYV and YVYU formats */
 
        /* Configure S0 input format */
        switch (pxp_conf->s0_param.pixel_fmt) {
@@ -461,14 +460,14 @@ static void pxp_set_ctrl(struct pxps *pxp)
                break;
        case PXP_PIX_FMT_YUYV:
                fmt_ctrl = BV_PXP_PS_CTRL_FORMAT__UYVY1P422;
-               need_swap = 1;
+               proc_data->need_yuv_swap = true;
                break;
        case PXP_PIX_FMT_VYUY:
                fmt_ctrl = BV_PXP_PS_CTRL_FORMAT__VYUY1P422;
                break;
        case PXP_PIX_FMT_YVYU:
                fmt_ctrl = BV_PXP_PS_CTRL_FORMAT__VYUY1P422;
-               need_swap = 1;
+               proc_data->need_yuv_swap = true;
                break;
        case PXP_PIX_FMT_NV12:
                fmt_ctrl = BV_PXP_PS_CTRL_FORMAT__YUV2P420;
@@ -487,7 +486,7 @@ static void pxp_set_ctrl(struct pxps *pxp)
        }
 
        ctrl = BF_PXP_PS_CTRL_FORMAT(fmt_ctrl) |
-               (need_swap ? BM_PXP_PS_CTRL_WB_SWAP : 0);
+               (proc_data->need_yuv_swap ? BM_PXP_PS_CTRL_WB_SWAP : 0);
        __raw_writel(ctrl, pxp->base + HW_PXP_PS_CTRL_SET);
 
        /* Configure output format based on out_channel format */
index 308bdd2..2cfa8e4 100644 (file)
@@ -205,6 +205,9 @@ struct pxp_proc_data {
        int rot_pos;
        int yuv;
 
+       /* to support YUYV and YVYU formats */
+       bool need_yuv_swap;
+
        /* Source rectangle (srect) defines the sub-rectangle
         * within S0 to undergo processing.
         */