summaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2020-01-02 16:25:33 +0100
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>2020-02-27 21:25:51 +0100
commitab07b1a6ac6ee9fdd2cfcc58eaa80b7e4d135df1 (patch)
treed2511f5495a65494036e16cd0c675bfac6e8bb12 /drivers/media
parentmedia: MAINTAINERS: Sort entries in database for TI VPE/CAL (diff)
downloadlinux-ab07b1a6ac6ee9fdd2cfcc58eaa80b7e4d135df1.tar.xz
linux-ab07b1a6ac6ee9fdd2cfcc58eaa80b7e4d135df1.zip
media: omap3isp: Prevent enabling CCDC when stopping streaming
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>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/platform/omap3isp/ispccdc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/platform/omap3isp/ispccdc.c b/drivers/media/platform/omap3isp/ispccdc.c
index 471ae7cdb813..0fbb2aa6dd2c 100644
--- a/drivers/media/platform/omap3isp/ispccdc.c
+++ b/drivers/media/platform/omap3isp/ispccdc.c
@@ -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);