linux/drivers/media/platform/vsp1
Kieran Bingham bfb4d5be9e [media] v4l: vsp1: Repair race between frame end and qbuf handler
The frame-end function releases and completes the buffers on the input
and output entities of the pipe before marking the pipe->state as
'STOPPED'. This introduces a race whereby with the pipe->state still
'RUNNING', a QBUF handler can commence processing a frame before the
frame_end function has completed.

In the event that this happens, a frame queued by QBUF hangs due to the
incorrect pipe->state setting which prevents vsp1_pipeline_run from
issuing a CMD_STRCMD.

By locking the entire function we prevent this from occurring, but we
also change the locking state of the buffer release code. This has been
analysed visually as acceptable, but it must be considered that this now
causes the video->irqlock to be taken under the pipe->irqlock context.

Signed-off-by: Kieran Bingham <kieran+renesas@bingham.xyz>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2016-09-19 14:50:15 -03:00
..
Makefile [media] v4l: vsp1: Add Cubic Look Up Table (CLU) support 2016-06-28 12:17:36 -03:00
vsp1_bru.c [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_bru.h [media] v4l: vsp1: Store active selection rectangles in a pad config structure 2016-04-13 18:53:22 -03:00
vsp1_clu.c [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_clu.h [media] v4l: vsp1: clu: Support runtime modification of controls 2016-06-28 12:25:31 -03:00
vsp1_dl.c [media] v4l: vsp1: dl: Don't free fragments with interrupts disabled 2016-06-28 12:13:45 -03:00
vsp1_dl.h [media] v4l: vsp1: dl: Add support for multi-body display lists 2016-04-13 19:13:23 -03:00
vsp1_drm.c [media] v4l: vsp1: Fix tri-planar format support through DRM API 2016-09-09 11:32:19 -03:00
vsp1_drm.h [media] v4l: vsp1: Add Z-order support for DRM pipeline 2016-04-13 19:15:03 -03:00
vsp1_drv.c [media] v4l: vsp1: Add R8A7792 VSP1V support 2016-09-09 11:32:43 -03:00
vsp1_entity.c [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_entity.h [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_hsit.c [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_hsit.h [media] v4l: vsp1: Add HST and HSI support 2013-12-11 09:22:44 -02:00
vsp1_lif.c [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_lif.h [media] v4l: vsp1: Update copyright notice 2014-03-12 10:41:51 -03:00
vsp1_lut.c [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_lut.h [media] v4l: vsp1: lut: Support runtime modification of controls 2016-06-28 12:24:37 -03:00
vsp1_pipe.c [media] v4l: vsp1: Ensure pipeline locking in resume path 2016-09-19 14:46:48 -03:00
vsp1_pipe.h [media] v4l: vsp1: Simplify alpha propagation 2016-06-28 12:29:33 -03:00
vsp1_regs.h [media] v4l: vsp1: Add R8A7792 VSP1V support 2016-09-09 11:32:43 -03:00
vsp1_rpf.c [media] v4l: vsp1: wpf: Add flipping support 2016-06-28 12:42:43 -03:00
vsp1_rwpf.c [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_rwpf.h [media] v4l: vsp1: wpf: Add flipping support 2016-06-28 12:42:43 -03:00
vsp1_sru.c [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_sru.h [media] v4l: vsp1: sru: Don't program intensity in control set handler 2016-04-13 17:42:44 -03:00
vsp1_uds.c [media] v4l: vsp1: Protect against race conditions between get and set format 2016-09-19 14:46:31 -03:00
vsp1_uds.h [media] v4l: vsp1: Simplify alpha propagation 2016-06-28 12:29:33 -03:00
vsp1_video.c [media] v4l: vsp1: Repair race between frame end and qbuf handler 2016-09-19 14:50:15 -03:00
vsp1_video.h Merge branch 'topic/vsp1' into patchwork 2016-07-13 13:43:48 -03:00
vsp1_wpf.c [media] v4l: vsp1: wpf: Add flipping support 2016-06-28 12:42:43 -03:00
vsp1.h [media] v4l: vsp1: Report device model and rev through media device information 2016-09-09 11:31:42 -03:00