media: rcar-vin: Merge all notifiers
authorNiklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Fri, 13 Jun 2025 15:34:29 +0000 (17:34 +0200)
committerHans Verkuil <hverkuil@xs4all.nl>
Mon, 16 Jun 2025 06:52:15 +0000 (08:52 +0200)
commit856b49c71ae58adeb0836c30a22c830593583141
tree4c6b803adb47cb1321618fceb37f83649a9a1cec
parent11e14a525765db6a71c5c9291140a28682ff3b1b
media: rcar-vin: Merge all notifiers

The VIN usage of v4l-async is complex and stems from organic growth of
the driver of supporting both private local subdevices (Gen2, Gen3) and
subdevices shared between all VIN instances (Gen3 and Gen4).

The driver used a separate notifier for each VIN for the private local
ones, and a shared group notifier for the shared ones. This was complex
and lead to subtle bugs when unbinding and later rebinding subdevices in
one of the notifiers having to handle different edge cases depending on
if it also had subdevices in the other notifiers etc.

To simplify this have the Gen2 devices allocate and form a VIN group
too. This way all subdevices on all models can be collect in a
single group notifier. Then there is only a single complete callback for
all where the video devices and subdevice nodes can be registered etc.

Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Tested-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Link: https://lore.kernel.org/r/20250613153434.2001800-9-niklas.soderlund+renesas@ragnatech.se
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/platform/renesas/rcar-vin/rcar-core.c
drivers/media/platform/renesas/rcar-vin/rcar-vin.h