media: omap3isp: Prevent enabling CCDC when stopping streaming
authorSakari Ailus <sakari.ailus@linux.intel.com>
Thu, 2 Jan 2020 15:25:33 +0000 (12:25 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 27 Feb 2020 20:25:51 +0000 (17:25 -0300)
Commit ... prevented restarting CCDC through its interrupt handler when
it's about to be disabled. It missed to address the case when CCDC might
be enabled due to queueing a buffer. Do that now.

Fixes: dd12ed17ce9e ("omap3isp: Don't restart CCDC if we're about to stop")

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/omap3isp/ispccdc.c

index 471ae7c..0fbb2aa 100644 (file)
@@ -1312,6 +1312,10 @@ static void __ccdc_enable(struct isp_ccdc_device *ccdc, int enable)
 {
        struct isp_device *isp = to_isp_device(ccdc);
 
+       /* Avoid restarting the CCDC when streaming is stopping. */
+       if (enable && ccdc->stopping & CCDC_STOP_REQUEST)
+               return;
+
        isp_reg_clr_set(isp, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_PCR,
                        ISPCCDC_PCR_EN, enable ? ISPCCDC_PCR_EN : 0);