mirror_ubuntu-kernels/drivers/media/v4l2-core
Tomi Valkeinen b2ac238724 media: subdev: add locking wrappers to subdev op wrappers
It is common that media drivers call subdev ops in source subdevs, and
pass NULL as the state. This was the way to indicate that the callee
should use the callee's private active state.

E.g.:

v4l2_subdev_call(priv->source_sd, pad, get_fmt, NULL, &sd_fmt);

Now that we have a real subdev active state in the v4l2_subdev struct,
we want the caller to pass a proper state (when available). And
furthermore, the state should be locked.

This would mean changing all the callers, which is the long term goal.

To fix this issue in the short term, let's add an extra wrapper layer to
all v4l2_subdev_call_pad_wrappers which deal with states. These wrappers
handle the state == NULL case by using the locked active state instead
(when available).

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
2022-04-24 08:22:42 +01:00
..
Kconfig media: Kconfig: cleanup VIDEO_DEV dependencies 2022-03-18 05:58:35 +01:00
Makefile media: Kconfig: cleanup VIDEO_DEV dependencies 2022-03-18 05:58:35 +01:00
tuner-core.c media: xc2028: rename the driver from tuner-xc2028 2022-03-12 16:59:50 +01:00
v4l2-async.c media: v4l2-async: Use endpoints in __v4l2_async_nf_add_fwnode_remote() 2022-04-24 08:13:07 +01:00
v4l2-common.c media: Add NV12_4L4 tiled format 2021-09-30 10:07:40 +02:00
v4l2-compat-ioctl32.c media: v4l2-core: fix VIDIOC_DQEVENT handling on non-x86 2021-11-10 11:38:26 +00:00
v4l2-ctrls-api.c media: v4l2-ctrls: split up into four source files 2021-05-25 17:03:29 +02:00
v4l2-ctrls-core.c Tag branch 2022-03-07 16:27:01 +01:00
v4l2-ctrls-defs.c media: uapi: Add VP9 stateless decoder controls 2021-11-22 07:44:55 +00:00
v4l2-ctrls-priv.h media: v4l2-ctrls: split up into four source files 2021-05-25 17:03:29 +02:00
v4l2-ctrls-request.c media: v4l2-ctrls: split up into four source files 2021-05-25 17:03:29 +02:00
v4l2-dev.c media: v4l2-dev: Use non-atomic bitmap API when applicable 2022-01-28 13:20:35 +01:00
v4l2-device.c media: v4l: subdev: Set sd->devnode before registering the subdev 2020-12-02 15:55:44 +01:00
v4l2-dv-timings.c media: v4l2-dv-timings.c: fix wrong condition in two for-loops 2021-08-04 14:43:52 +02:00
v4l2-event.c media: v4l2-event: Modified variable type 'unsigned' to 'unsigned int' 2021-06-17 10:22:59 +02:00
v4l2-fh.c media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release 2021-06-02 13:17:44 +02:00
v4l2-flash-led-class.c media: v4l2-flash: Check whether setting LED brightness succeeded 2021-08-04 14:43:51 +02:00
v4l2-fwnode.c v4l: fwnode: Remove now-redundant loop from v4l2_fwnode_parse_reference() 2022-03-04 00:27:07 +02:00
v4l2-h264.c media: uapi: h264: Clean slice invariants syntax elements 2020-09-01 14:13:28 +02:00
v4l2-i2c.c media: v4l2-core: v4l2-i2c: convert to new API with ERRPTR 2020-02-24 15:21:52 +01:00
v4l2-ioctl.c media: v4l: ioctl: Set bus_info in v4l_querycap() 2022-04-24 08:07:08 +01:00
v4l2-jpeg.c media: Avoid parsing quantization and huffman tables 2021-03-22 10:40:13 +01:00
v4l2-mc.c media: v4l2-mc: fix a warning message 2021-03-22 13:06:39 +01:00
v4l2-mem2mem.c media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls 2022-01-23 21:18:42 +01:00
v4l2-spi.c v4l2-core: fix coding style for the two new c files 2019-08-26 11:01:25 -03:00
v4l2-subdev.c media: subdev: add locking wrappers to subdev op wrappers 2022-04-24 08:22:42 +01:00
v4l2-trace.c
v4l2-vp9.c media: Add VP9 v4l2 library 2021-11-22 07:47:13 +00:00
videobuf-core.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
videobuf-dma-contig.c mmap locking API: use coccinelle to convert mmap_sem rwsem call sites 2020-06-09 09:39:14 -07:00
videobuf-dma-sg.c media: videobuf-dma-sg: void function return statements are not generally useful 2021-06-02 14:18:36 +02:00
videobuf-vmalloc.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00