linux-stable/drivers/media
Rob Herring 12f92866f1 media: Revert "[media] v4l: async: make v4l2 coexist with devicetree nodes in a dt overlay"
This reverts commit d2180e0cf7.

The commit was flawed in that if the device_node pointers are different,
then in fact a different device is present and the device node could be
different in ways other than full_name.

As Frank Rowand explained:

"When an overlay (1) is removed, all uses and references to the nodes and
properties in that overlay are no longer valid.  Any driver that uses any
information from the overlay _must_ stop using any data from the overlay.
Any driver that is bound to a new node in the overlay _must_ unbind.  Any
driver that became bound to a pre-existing node that was modified by the
overlay (became bound after the overlay was applied) _must_ adjust itself
to account for any changes to that node when the overlay is removed.  One
way to do this is to unbind when notified that the overlay is about to
be removed, then to re-bind after the overlay is completely removed.

If an overlay (2) is subsequently applied, a node with the same
full_name as from overlay (1) may exist.  There is no guarantee
that overlay (1) and overlay (2) are the same overlay, even if
that node has the same full_name in both cases."

Also, there's not sufficient overlay support in mainline to actually
remove and re-apply an overlay to hit this condition as overlays can
only be applied from in kernel APIs.

Fixes: d2180e0cf7 ("[media] v4l: async: make v4l2 coexist with devicetree nodes in a dt overlay")

Cc: Javier Martinez Canillas <javier@osg.samsung.com>
Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
Cc: Frank Rowand <frowand.list@gmail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Acked-by: Javi Merino <javi.merino@kernel.org>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2017-09-05 07:30:34 -04:00
..
cec media: cec: replace pin->cur_value by adap->cec_pin_is_high 2017-08-26 08:35:10 -04:00
common media: saa7146: constify videobuf_queue_ops structures 2017-08-26 14:29:51 -04:00
dvb-core media: dvb/frontend.h: move out a private internal structure 2017-09-05 05:53:00 -04:00
dvb-frontends media: mn88473: reset stream ID reg if no PLP given 2017-08-27 18:06:52 -04:00
firewire
i2c media: max2175: Propagate the real error on devm_clk_get() failure 2017-08-27 18:14:11 -04:00
mmc
pci media: dst_ca: remove CA_SET_DESCR boilerplate 2017-09-05 06:13:46 -04:00
platform media: platform: make video_device const 2017-08-27 08:44:30 -04:00
radio media: radio: make video_device const 2017-08-27 08:47:20 -04:00
rc media: Revert "[media] lirc_dev: remove superfluous get/put_device() calls" 2017-09-05 07:28:59 -04:00
spi [media] gs1662: drop kfree for memory allocated with devm_kzalloc 2016-10-24 17:59:08 -02:00
tuners media: tuners: make snd_pcm_hardware const 2017-08-20 08:05:25 -04:00
usb media: dw2102: make dvb_usb_device_description structures const 2017-08-27 18:08:55 -04:00
v4l2-core media: Revert "[media] v4l: async: make v4l2 coexist with devicetree nodes in a dt overlay" 2017-09-05 07:30:34 -04:00
Kconfig media: rc-core: do not depend on MEDIA_SUPPORT 2017-08-20 09:39:36 -04:00
Makefile [media] cec: select CEC_CORE instead of depend on it 2017-06-04 15:23:33 -03:00
media-device.c media: drop use of MEDIA_API_VERSION 2017-08-08 06:03:15 -04:00
media-devnode.c media: utilize new cdev_device_add helper function 2017-03-21 06:44:33 +01:00
media-entity.c media: Make parameter of media_entity_remote_pad() const 2017-07-20 16:54:04 -04:00