summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@linux.intel.com>2020-01-02 12:25:33 -0300
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>2020-02-27 17:25:51 -0300
commitab07b1a6ac6ee9fdd2cfcc58eaa80b7e4d135df1 (patch)
treed2511f5495a65494036e16cd0c675bfac6e8bb12
parentd44535cb14c981dea66e565edf1df1df4b9e823b (diff)
downloadlinux-0-day-ab07b1a6ac6ee9fdd2cfcc58eaa80b7e4d135df1.tar.gz
linux-0-day-ab07b1a6ac6ee9fdd2cfcc58eaa80b7e4d135df1.tar.xz
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>
-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 471ae7cdb8133..0fbb2aa6dd2c0 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);