return 0;
 }
 
-static void isc_start_dma(struct isc_device *isc)
+static void isc_crop_pfe(struct isc_device *isc)
 {
        struct regmap *regmap = isc->regmap;
-       u32 sizeimage = isc->fmt.fmt.pix.sizeimage;
-       u32 dctrl_dview;
-       dma_addr_t addr0;
        u32 h, w;
 
        h = isc->fmt.fmt.pix.height;
        regmap_update_bits(regmap, ISC_PFE_CFG0,
                           ISC_PFE_CFG0_COLEN | ISC_PFE_CFG0_ROWEN,
                           ISC_PFE_CFG0_COLEN | ISC_PFE_CFG0_ROWEN);
+}
+
+static void isc_start_dma(struct isc_device *isc)
+{
+       struct regmap *regmap = isc->regmap;
+       u32 sizeimage = isc->fmt.fmt.pix.sizeimage;
+       u32 dctrl_dview;
+       dma_addr_t addr0;
 
        addr0 = vb2_dma_contig_plane_dma_addr(&isc->cur_frm->vb.vb2_buf, 0);
        regmap_write(regmap, ISC_DAD0 + isc->offsets.dma, addr0);
                                        struct isc_buffer, list);
        list_del(&isc->cur_frm->list);
 
+       isc_crop_pfe(isc);
        isc_start_dma(isc);
 
        spin_unlock_irqrestore(&isc->dma_queue_lock, flags);