MLK-20326-4: ISI: enable alpha insertion for mem2mem
authorGuoniu.Zhou <guoniu.zhou@nxp.com>
Fri, 9 Nov 2018 10:57:32 +0000 (18:57 +0800)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
Enable global alpha insertion for memory to memory function
of ISI

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
drivers/media/platform/imx8/mxc-isi-hw.c

index f666c0e..1e56080 100644 (file)
@@ -678,6 +678,18 @@ void mxc_isi_m2m_channel_set_filp(struct mxc_isi_dev *mxc_isi)
        writel(val, mxc_isi->regs + CHNL_IMG_CTRL);
 }
 
+void mxc_isi_m2m_channel_set_alpha(struct mxc_isi_dev *mxc_isi)
+{
+       u32 val;
+
+       val = readl(mxc_isi->regs + CHNL_IMG_CTRL);
+       val &= ~(CHNL_IMG_CTRL_GBL_ALPHA_VAL_MASK | CHNL_IMG_CTRL_GBL_ALPHA_EN_MASK);
+       val |= ((mxc_isi->m2m.alpha << CHNL_IMG_CTRL_GBL_ALPHA_VAL_OFFSET) |
+                       (CHNL_IMG_CTRL_GBL_ALPHA_EN_ENABLE << CHNL_IMG_CTRL_GBL_ALPHA_EN_OFFSET));
+
+       writel(val, mxc_isi->regs + CHNL_IMG_CTRL);
+}
+
 void mxc_isi_m2m_channel_init(struct mxc_isi_dev *mxc_isi)
 {
        u32 val;
@@ -713,6 +725,9 @@ void mxc_isi_m2m_channel_config(struct mxc_isi_dev *mxc_isi)
 
        /* Horizonal and Vertical flip */
        mxc_isi_m2m_channel_set_filp(mxc_isi);
+
+       if (mxc_isi->m2m.alphaen)
+               mxc_isi_m2m_channel_set_alpha(mxc_isi);
 }
 
 void mxc_isi_m2m_channel_enable(struct mxc_isi_dev *mxc_isi)