linux_dsm_epyc7002/drivers/media/platform
ayaka 9bd5d8696f [media] s5p-mfc: don't close instance after free OUTPUT buffers
User-space applications can use the VIDIOC_REQBUFS ioctl to determine if a
memory mapped, user pointer or DMABUF based I/O is supported by the driver.

So a set of VIDIOC_REQBUFS ioctl calls will be made with count 0 and then
the real VIDIOC_REQBUFS call with count == n. But for count 0, the driver
not only frees the buffer but also closes the MFC instance and s5p_mfc_ctx
state is set to MFCINST_FREE.

The VIDIOC_REQBUFS handler for the output device checks if the s5p_mfc_ctx
state is set to MFCINST_INIT (which happens on an VIDIOC_S_FMT) and fails
otherwise. So after a VIDIOC_REQBUFS(n), future VIDIOC_REQBUFS(n) calls
will fails unless a VIDIOC_S_FMT ioctl calls happens before the reqbufs.

But applications may first set the format and then attempt to determine
the I/O methods supported by the driver (for example Gstramer does it) so
the state won't be set to MFCINST_INIT again and VIDIOC_REQBUFS will fail.

To avoid this issue, only free the buffers on VIDIOC_REQBUFS(0) but don't
close the MFC instance to allow future VIDIOC_REQBUFS(n) calls to succeed.

[javier: Rewrote changelog to explain the problem more detailed]

Signed-off-by: ayaka <ayaka@soulik.info>
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Acked-by: Nicolas Dufresne <nicolas@collabora.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2016-06-07 10:45:37 -03:00
..
am437x [media] am437x-vpfe: fix an uninitialized variable bug 2016-04-13 17:09:55 -03:00
blackfin [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
coda media updates for v4.6-rc1 2016-03-16 18:27:32 -07:00
davinci [media] davinci: ccdc_update_raw_params() frees the wrong thing 2016-01-25 15:15:26 -02:00
exynos4-is media: set proper max seg size for devices on Exynos SoCs 2016-06-03 11:13:11 +02:00
exynos-gsc media: set proper max seg size for devices on Exynos SoCs 2016-06-03 11:13:11 +02:00
marvell-ccic [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
omap fbdev changes for 4.5 2016-01-18 11:58:31 -08:00
omap3isp [media] media: Rename is_media_entity_v4l2_io to is_media_entity_v4l2_video_device 2016-04-13 17:20:48 -03:00
s3c-camif [media] media: s3c-camif: fix deadlock on driver probe() 2016-05-02 10:39:58 -03:00
s5p-g2d media: set proper max seg size for devices on Exynos SoCs 2016-06-03 11:13:11 +02:00
s5p-jpeg media: set proper max seg size for devices on Exynos SoCs 2016-06-03 11:13:11 +02:00
s5p-mfc [media] s5p-mfc: don't close instance after free OUTPUT buffers 2016-06-07 10:45:37 -03:00
s5p-tv media: set proper max seg size for devices on Exynos SoCs 2016-06-03 11:13:11 +02:00
soc_camera [media] soc_camera: rcar_vin: add R-Car Gen 2 and 3 fallback compatibility strings 2016-04-13 17:17:56 -03:00
sti [media] c8sectpfe: Rework firmware loading mechanism 2016-05-09 12:57:54 -03:00
ti-vpe [media] media: ti-vpe: cal: Fix warning: variable dereference before being checked 2016-02-23 07:17:27 -03:00
vivid [media] tpg: Export the tpg code from vivid as a module 2016-04-20 16:14:39 -03:00
vsp1 [media] v4l: vsp1: Update WPF and LIF maximum sizes for Gen3 2016-04-13 19:16:10 -03:00
xilinx [media] xilinx-vipp: remove unnecessary of_node_put 2016-05-07 11:45:38 -03:00
arv.c [media] media: remove the setting of the flag V4L2_FL_USE_FH_PRIO 2014-07-04 16:14:59 -03:00
fsl-viu.c [media] fsl-viu: drop format names 2015-08-11 06:59:09 -03:00
Kconfig [media] media: platform: rcar_jpu, vsp1: Use ARCH_RENESAS 2016-04-13 19:16:41 -03:00
m2m-deinterlace.c [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
Makefile [media] timblogiw: move to staging in preparation for removal 2016-02-19 08:10:33 -02:00
mx2_emmaprp.c [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
rcar_jpu.c [media] rcar_jpu: Add R-Car Gen2 Fallback Compatibility String 2016-02-01 09:48:19 -02:00
sh_veu.c [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
sh_vou.c [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
via-camera.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
via-camera.h
vim2m.c [media] vim2m: return error if driver registration fails 2016-02-01 07:37:46 -02:00