incc = priv->cc[PRPENCVF_SINK_PAD];
        outcc = vdev->cc;
 
-       ret = imx_media_alloc_dma_buf(ic_priv->md, &priv->rot_buf[0],
+       ret = imx_media_alloc_dma_buf(ic_priv->ipu_dev, &priv->rot_buf[0],
                                      outfmt->sizeimage);
        if (ret) {
                v4l2_err(&ic_priv->sd, "failed to alloc rot_buf[0], %d\n", ret);
                return ret;
        }
-       ret = imx_media_alloc_dma_buf(ic_priv->md, &priv->rot_buf[1],
+       ret = imx_media_alloc_dma_buf(ic_priv->ipu_dev, &priv->rot_buf[1],
                                      outfmt->sizeimage);
        if (ret) {
                v4l2_err(&ic_priv->sd, "failed to alloc rot_buf[1], %d\n", ret);
 unsetup_vb2:
        prp_unsetup_vb2_buf(priv, VB2_BUF_STATE_QUEUED);
 free_rot1:
-       imx_media_free_dma_buf(ic_priv->md, &priv->rot_buf[1]);
+       imx_media_free_dma_buf(ic_priv->ipu_dev, &priv->rot_buf[1]);
 free_rot0:
-       imx_media_free_dma_buf(ic_priv->md, &priv->rot_buf[0]);
+       imx_media_free_dma_buf(ic_priv->ipu_dev, &priv->rot_buf[0]);
        return ret;
 }
 
 
        ipu_ic_disable(priv->ic);
 
-       imx_media_free_dma_buf(ic_priv->md, &priv->rot_buf[0]);
-       imx_media_free_dma_buf(ic_priv->md, &priv->rot_buf[1]);
+       imx_media_free_dma_buf(ic_priv->ipu_dev, &priv->rot_buf[0]);
+       imx_media_free_dma_buf(ic_priv->ipu_dev, &priv->rot_buf[1]);
 }
 
 static int prp_setup_norotation(struct prp_priv *priv)
 
        outfmt = &vdev->fmt.fmt.pix;
 
-       ret = imx_media_alloc_dma_buf(ic_priv->md, &priv->underrun_buf,
+       ret = imx_media_alloc_dma_buf(ic_priv->ipu_dev, &priv->underrun_buf,
                                      outfmt->sizeimage);
        if (ret)
                goto out_put_ipu;
 out_unsetup:
        prp_unsetup(priv, VB2_BUF_STATE_QUEUED);
 out_free_underrun:
-       imx_media_free_dma_buf(ic_priv->md, &priv->underrun_buf);
+       imx_media_free_dma_buf(ic_priv->ipu_dev, &priv->underrun_buf);
 out_put_ipu:
        prp_put_ipu_resources(priv);
        return ret;
 
        prp_unsetup(priv, VB2_BUF_STATE_ERROR);
 
-       imx_media_free_dma_buf(ic_priv->md, &priv->underrun_buf);
+       imx_media_free_dma_buf(ic_priv->ipu_dev, &priv->underrun_buf);
 
        /* cancel the EOF timeout timer */
        del_timer_sync(&priv->eof_timeout_timer);
 
 
        outfmt = &vdev->fmt.fmt.pix;
 
-       ret = imx_media_alloc_dma_buf(priv->md, &priv->underrun_buf,
+       ret = imx_media_alloc_dma_buf(priv->dev, &priv->underrun_buf,
                                      outfmt->sizeimage);
        if (ret)
                goto out_put_ipu;
 out_unsetup:
        csi_idmac_unsetup(priv, VB2_BUF_STATE_QUEUED);
 out_free_dma_buf:
-       imx_media_free_dma_buf(priv->md, &priv->underrun_buf);
+       imx_media_free_dma_buf(priv->dev, &priv->underrun_buf);
 out_put_ipu:
        csi_idmac_put_ipu_resources(priv);
        return ret;
 
        csi_idmac_unsetup(priv, VB2_BUF_STATE_ERROR);
 
-       imx_media_free_dma_buf(priv->md, &priv->underrun_buf);
+       imx_media_free_dma_buf(priv->dev, &priv->underrun_buf);
 
        /* cancel the EOF timeout timer */
        del_timer_sync(&priv->eof_timeout_timer);
 
 }
 EXPORT_SYMBOL_GPL(imx_media_ipu_image_to_mbus_fmt);
 
-void imx_media_free_dma_buf(struct imx_media_dev *imxmd,
+void imx_media_free_dma_buf(struct device *dev,
                            struct imx_media_dma_buf *buf)
 {
        if (buf->virt)
-               dma_free_coherent(imxmd->md.dev, buf->len,
-                                 buf->virt, buf->phys);
+               dma_free_coherent(dev, buf->len, buf->virt, buf->phys);
 
        buf->virt = NULL;
        buf->phys = 0;
 }
 EXPORT_SYMBOL_GPL(imx_media_free_dma_buf);
 
-int imx_media_alloc_dma_buf(struct imx_media_dev *imxmd,
+int imx_media_alloc_dma_buf(struct device *dev,
                            struct imx_media_dma_buf *buf,
                            int size)
 {
-       imx_media_free_dma_buf(imxmd, buf);
+       imx_media_free_dma_buf(dev, buf);
 
        buf->len = PAGE_ALIGN(size);
-       buf->virt = dma_alloc_coherent(imxmd->md.dev, buf->len, &buf->phys,
+       buf->virt = dma_alloc_coherent(dev, buf->len, &buf->phys,
                                       GFP_DMA | GFP_KERNEL);
        if (!buf->virt) {
-               dev_err(imxmd->md.dev, "failed to alloc dma buffer\n");
+               dev_err(dev, "%s: failed\n", __func__);
                return -ENOMEM;
        }
 
 
        unsigned long  len;
 };
 
-void imx_media_free_dma_buf(struct imx_media_dev *imxmd,
+void imx_media_free_dma_buf(struct device *dev,
                            struct imx_media_dma_buf *buf);
-int imx_media_alloc_dma_buf(struct imx_media_dev *imxmd,
+int imx_media_alloc_dma_buf(struct device *dev,
                            struct imx_media_dma_buf *buf,
                            int size);
 
 
        struct v4l2_pix_format *out_pix = &vdev->fmt.fmt.pix;
        int ret;
 
-       ret = imx_media_alloc_dma_buf(csi->imxmd, &csi->underrun_buf,
+       ret = imx_media_alloc_dma_buf(csi->dev, &csi->underrun_buf,
                                      out_pix->sizeimage);
        if (ret < 0) {
                v4l2_warn(&csi->sd, "consider increasing the CMA area\n");
 
        imx7_csi_dma_unsetup_vb2_buf(csi, VB2_BUF_STATE_ERROR);
 
-       imx_media_free_dma_buf(csi->imxmd, &csi->underrun_buf);
+       imx_media_free_dma_buf(csi->dev, &csi->underrun_buf);
 }
 
 static int imx7_csi_configure(struct imx7_csi *csi)