summaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/omap3isp/ispccdc.h
diff options
context:
space:
mode:
authorLaurent Pinchart2014-06-10 15:26:28 +0200
committerMauro Carvalho Chehab2014-08-21 22:25:16 +0200
commit0b3fcd5727e835c60de46d33b2f5f5803c4a5de7 (patch)
tree054dcd3d9624c81f4e88a0f1339e2fcb48621989 /drivers/media/platform/omap3isp/ispccdc.h
parent[media] omap3isp: ccdc: Fix freeze when a short frame is received (diff)
downloadkernel-qcow2-linux-0b3fcd5727e835c60de46d33b2f5f5803c4a5de7.tar.gz
kernel-qcow2-linux-0b3fcd5727e835c60de46d33b2f5f5803c4a5de7.tar.xz
kernel-qcow2-linux-0b3fcd5727e835c60de46d33b2f5f5803c4a5de7.zip
[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.h2
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;
};