diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2014-06-10 17:26:28 +0400 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-08-22 00:25:16 +0400 |
commit | 0b3fcd5727e835c60de46d33b2f5f5803c4a5de7 (patch) | |
tree | 054dcd3d9624c81f4e88a0f1339e2fcb48621989 /drivers/media/platform/omap3isp/ispccdc.h | |
parent | 93456527b4488510d87a523028b3bb73dfdd7669 (diff) | |
download | linux-0b3fcd5727e835c60de46d33b2f5f5803c4a5de7.tar.xz |
[media] omap3isp: ccdc: Don't timeout on stream off when the CCDC is stopped
When the CCDC is already stopped due to a buffer underrun, the stop
state machine won't advance in BT.656 mode as no interrupt are generated
by the stopped CCDC in that mode. Handle this case explicitly in the
ccdc_disable() function.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Enrico Butera <ebutera@users.sourceforge.net>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/platform/omap3isp/ispccdc.h')
-rw-r--r-- | drivers/media/platform/omap3isp/ispccdc.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/media/platform/omap3isp/ispccdc.h b/drivers/media/platform/omap3isp/ispccdc.h index 731ecc768197..3440a7097940 100644 --- a/drivers/media/platform/omap3isp/ispccdc.h +++ b/drivers/media/platform/omap3isp/ispccdc.h @@ -124,6 +124,7 @@ struct ispccdc_lsc { * @lock: Serializes shadow_update with interrupt handler * @wait: Wait queue used to stop the module * @stopping: Stopping state + * @running: Is the CCDC hardware running * @ioctl_lock: Serializes ioctl calls and LSC requests freeing */ struct isp_ccdc_device { @@ -155,6 +156,7 @@ struct isp_ccdc_device { spinlock_t lock; wait_queue_head_t wait; unsigned int stopping; + bool running; struct mutex ioctl_lock; }; |