linux/drivers/media/v4l2-core
Niklas Söderlund 487cc85785 media: v4l: async: use the v4l2_dev from the root notifier when matching sub-devices
When matching and registering a sub-device from a sub-notifier use the
v4l2_device from the root parent notifier. Using the v4l2_dev stored in
the sub-notifier itself is incorrect as it might not be set.

This can be demonstrated by unbinding and rebinding the adv748x driver
and observing that it fails to probe due to the check !v4l2_dev in
v4l2_device_register_subdev().

    # echo 4-0070 > /sys/bus/i2c/drivers/adv748x/unbind
    # echo 4-0070 > /sys/bus/i2c/drivers/adv748x/bind
    adv748x 4-0070: chip found @ 0xe0 revision 2143
    adv748x 4-0070: Failed to probe TXA
    adv748x: probe of 4-0070 failed with error -22

Looking at the commit which adds sub-notifiers to V4L2 it looks like
this is the intended behavior of the original commit. With this fix the
adv748x can be re-bound and still function properly.

Fixes: 2cab00bb07 ("media: v4l: async: Allow binding notifiers to sub-devices")

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-11-30 04:44:07 -05:00
..
Kconfig [media] v4l: fwnode: Support generic fwnode for parsing standardised properties 2017-06-06 09:25:16 -03:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tuner-core.c media: v4l2-core: Fix kernel-doc markups 2017-11-30 04:18:53 -05:00
v4l2-async.c media: v4l: async: use the v4l2_dev from the root notifier when matching sub-devices 2017-11-30 04:44:07 -05:00
v4l2-clk.c media: Convert to using %pOF instead of full_name 2017-08-20 08:20:20 -04:00
v4l2-common.c
v4l2-compat-ioctl32.c media: v4l2-compat-ioctl32.c: add capabilities field to, v4l2_input32 2017-08-20 08:11:55 -04:00
v4l2-ctrls.c media: v4l2-ctrls: Don't validate BITMASK twice 2017-11-07 05:52:24 -05:00
v4l2-dev.c [media] v4l: Add metadata buffer type and format 2017-04-14 22:37:02 -03:00
v4l2-device.c [media] v4l: Allow calling v4l2_device_register_subdev_nodes() multiple times 2017-03-22 11:21:43 -03:00
v4l2-dv-timings.c media: v4l2-core: Fix kernel-doc markups 2017-11-30 04:18:53 -05:00
v4l2-event.c [media] v4l2-core: Use kvmalloc() for potentially big allocations 2017-06-20 09:11:48 -03:00
v4l2-fh.c
v4l2-flash-led-class.c media: v4l2-flash-led-class: Create separate sub-devices for indicators 2017-08-26 20:26:35 -04:00
v4l2-fwnode.c media: v4l2-fwnode: Check subdev count after checking port 2017-11-30 04:43:05 -05:00
v4l2-ioctl.c media: v4l-ioctl: Fix typo on v4l_print_frmsizeenum 2017-09-23 14:56:23 -04:00
v4l2-mc.c
v4l2-mem2mem.c media: v4l2-core: Fix kernel-doc markups 2017-11-30 04:18:53 -05:00
v4l2-subdev.c [media] v4l2-core: Use kvmalloc() for potentially big allocations 2017-06-20 09:11:48 -03:00
v4l2-trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vb2-trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
videobuf-core.c media: v4l2-core: Fix kernel-doc markups 2017-11-30 04:18:53 -05:00
videobuf-dma-contig.c
videobuf-dma-sg.c sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
videobuf-dvb.c
videobuf-vmalloc.c
videobuf2-core.c media: videobuf2: don't use kernel-doc "/**" markups 2017-11-27 10:38:03 -05:00
videobuf2-dma-contig.c Merge drm-upstream/drm-next into drm-intel-next-queued 2017-09-28 15:56:49 +03:00
videobuf2-dma-sg.c media: vb2: add bidirectional flag in vb2_queue 2017-08-26 14:15:54 -04:00
videobuf2-dvb.c
videobuf2-memops.c media: v4l2-core: Fix kernel-doc markups 2017-11-30 04:18:53 -05:00
videobuf2-v4l2.c media: videobuf2: don't use kernel-doc "/**" markups 2017-11-27 10:38:03 -05:00
videobuf2-vmalloc.c media: vb2: add bidirectional flag in vb2_queue 2017-08-26 14:15:54 -04:00