linux/drivers/media/platform
Sylwester Nawrocki 03878bb473 [media] s5p-fimc: fimc-lite: Prevent deadlock at STREAMON/OFF ioctls
This patch fixes regression introduced in commit 6319d6a002beb26631
'[media] fimc-lite: Add ISP FIFO output support'.
In case of a configuration where video is captured at the video node
exposed by the FIMC-LITE driver there is a following video pipeline:
sensor -> MIPI-CSIS.n -> FIMC-LITE.n subdev -> FIMC-LITE.n video node
In this situation s_stream() handler of the FIMC-LITE.n is called
back from within VIDIOC_STREAMON/OFF ioctl of the FIMC-LITE.n video
node, through vb2_stream_on/off(), start/stop_streaming and
fimc_pipeline_call(set_stream). The fimc->lock mutex is already held
then, before invoking vidioc_streamon/off. So it must not be taken
again in the s_stream() callback in this case, to avoid a deadlock.
This patch makes fimc->out_path atomic_t so the mutex don't need
to be taken in the FIMC-LITE subdev s_stream() callback in the DMA
output case.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyugmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2013-02-05 17:40:36 -02:00
..
blackfin Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
davinci [media] davinci: vpbe: fix missing unlock on error in vpbe_initialize() 2013-02-05 14:26:08 -02:00
exynos-gsc Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
marvell-ccic [media] marvell-ccic: use internal variable replace global frame stats variable 2012-12-27 18:04:22 -02:00
omap [media] omap_vout: find_vma() needs ->mmap_sem held 2013-01-06 11:01:06 -02:00
omap3isp [media] omap3isp: Fix histogram regions 2013-02-05 14:50:49 -02:00
s3c-camif Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
s5p-fimc [media] s5p-fimc: fimc-lite: Prevent deadlock at STREAMON/OFF ioctls 2013-02-05 17:40:36 -02:00
s5p-g2d [media] s5p-g2d: Add support for G2D H/W Rev.4.1 2013-02-05 17:30:14 -02:00
s5p-jpeg [media] s5p-jpeg: convert struct spinlock to spinlock_t 2012-12-27 14:59:44 -02:00
s5p-mfc [media] s5p-mfc: Fix kernel warning on memory init 2013-02-05 17:32:52 -02:00
s5p-tv Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
soc_camera Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
arv.c
coda.c Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
coda.h
fsl-viu.c Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
indycam.c
indycam.h
Kconfig [media] v4l: Don't compile v4l2-int-device unless really needed 2013-01-06 10:46:40 -02:00
m2m-deinterlace.c [media] m2m-deinterlace: use correct check for kzalloc failure 2012-12-27 19:08:12 -02:00
Makefile [media] media: add a VEU MEM2MEM format conversion and scaling driver 2012-12-20 14:23:10 -02:00
mem2mem_testdev.c [media] v4l: mem2mem_testdev: add support for dmabuf importing 2012-11-25 17:19:45 -02:00
mx2_emmaprp.c Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-12-13 19:22:22 -08:00
omap24xxcam-dma.c
omap24xxcam.c Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
omap24xxcam.h
sh_veu.c [media] media: remove __dev* annotations 2013-01-11 13:03:24 -02:00
sh_vou.c Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
timblogiw.c Merge branch 'v4l_for_linus' into staging/for_v3.9 2013-01-24 18:49:18 -02:00
via-camera.c Drivers: media: remove __dev* attributes. 2013-01-03 15:57:02 -08:00
via-camera.h
vino.c [media] v4l: Tell user space we're using monotonic timestamps 2012-12-21 11:20:51 -02:00
vino.h
vivi.c [media] vivi: Constify structures 2012-12-28 13:32:51 -02:00