MLK-19343: ISI: add memory to memory support for qm and qxp
authorGuoniu.Zhou <guoniu.zhou@nxp.com>
Mon, 27 Aug 2018 10:28:23 +0000 (18:28 +0800)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
Add memory to memory support for qm and qxp. Because only
ISI channel0 can support memory to memory feature so this
feature only support one channel. User can use channel 0
as other function when it isn't used for m2m.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Reviewed-by: Sandor.yu <sandor.yu@nxp.com>
drivers/media/platform/imx8/mxc-isi-core.c

index 3b6986a..a16824c 100644 (file)
@@ -9,7 +9,6 @@
  * http://www.opensource.org/licenses/gpl-license.html
  * http://www.gnu.org/copyleft/gpl.html
  */
-
 #include "mxc-media-dev.h"
 
 static irqreturn_t mxc_isi_irq_handler(int irq, void *priv)
@@ -18,13 +17,21 @@ static irqreturn_t mxc_isi_irq_handler(int irq, void *priv)
        struct device *dev = &mxc_isi->pdev->dev;
        u32 status;
 
+
        spin_lock(&mxc_isi->slock);
 
        status = mxc_isi_get_irq_status(mxc_isi);
        mxc_isi_clean_irq_status(mxc_isi, status);
 
-       if (status & CHNL_STS_FRM_STRD_MASK)
-               mxc_isi_frame_write_done(mxc_isi);
+       if (status & CHNL_STS_MEM_RD_DONE_MASK)
+               mxc_isi_m2m_frame_read_done(mxc_isi);
+
+       if (status & CHNL_STS_FRM_STRD_MASK) {
+               if (mxc_isi->is_m2m)
+                       mxc_isi_m2m_frame_write_done(mxc_isi);
+               else
+                       mxc_isi_cap_frame_write_done(mxc_isi);
+       }
 
        if (status & (CHNL_STS_AXI_WR_ERR_Y_MASK |
                                        CHNL_STS_AXI_WR_ERR_U_MASK |