On Fri Jun 13 17:34:27 2025 +0200, Niklas Söderlund wrote:
> The R-Car VIN driver is needlessly complex and uses more then one
> v4l-async notifier to attach to all its subdevices. Prepare for unifying
> them by moving rvin_parallel_parse_of() to where it needs to be when
> they are unified.
> 
> The function is moved verbatim and there is no change in behavior.
> 
> Signed-off-by: Niklas Söderlund <niklas.soderlund+rene...@ragnatech.se>
> Tested-by: Tomi Valkeinen <tomi.valkeinen+rene...@ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
> Link: 
> https://lore.kernel.org/r/20250613153434.2001800-7-niklas.soderlund+rene...@ragnatech.se
> Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>

Patch committed.

Thanks,
Hans Verkuil

 .../media/platform/renesas/rcar-vin/rcar-core.c    | 106 ++++++++++-----------
 1 file changed, 53 insertions(+), 53 deletions(-)

---

diff --git a/drivers/media/platform/renesas/rcar-vin/rcar-core.c 
b/drivers/media/platform/renesas/rcar-vin/rcar-core.c
index 55957dd95576..95621c11eecc 100644
--- a/drivers/media/platform/renesas/rcar-vin/rcar-core.c
+++ b/drivers/media/platform/renesas/rcar-vin/rcar-core.c
@@ -338,6 +338,59 @@ static void rvin_group_notifier_cleanup(struct rvin_dev 
*vin)
        }
 }
 
+static int rvin_parallel_parse_of(struct rvin_dev *vin)
+{
+       struct fwnode_handle *ep, *fwnode;
+       struct v4l2_fwnode_endpoint vep = {
+               .bus_type = V4L2_MBUS_UNKNOWN,
+       };
+       struct v4l2_async_connection *asc;
+       int ret;
+
+       ep = fwnode_graph_get_endpoint_by_id(dev_fwnode(vin->dev), 0, 0, 0);
+       if (!ep)
+               return 0;
+
+       fwnode = fwnode_graph_get_remote_endpoint(ep);
+       ret = v4l2_fwnode_endpoint_parse(ep, &vep);
+       fwnode_handle_put(ep);
+       if (ret) {
+               vin_err(vin, "Failed to parse %pOF\n", to_of_node(fwnode));
+               ret = -EINVAL;
+               goto out;
+       }
+
+       switch (vep.bus_type) {
+       case V4L2_MBUS_PARALLEL:
+       case V4L2_MBUS_BT656:
+               vin_dbg(vin, "Found %s media bus\n",
+                       vep.bus_type == V4L2_MBUS_PARALLEL ?
+                       "PARALLEL" : "BT656");
+               vin->parallel.mbus_type = vep.bus_type;
+               vin->parallel.bus = vep.bus.parallel;
+               break;
+       default:
+               vin_err(vin, "Unknown media bus type\n");
+               ret = -EINVAL;
+               goto out;
+       }
+
+       asc = v4l2_async_nf_add_fwnode(&vin->notifier, fwnode,
+                                      struct v4l2_async_connection);
+       if (IS_ERR(asc)) {
+               ret = PTR_ERR(asc);
+               goto out;
+       }
+
+       vin->parallel.asc = asc;
+
+       vin_dbg(vin, "Add parallel OF device %pOF\n", to_of_node(fwnode));
+out:
+       fwnode_handle_put(fwnode);
+
+       return ret;
+}
+
 static int rvin_group_notifier_init(struct rvin_dev *vin, unsigned int port,
                                    unsigned int max_id)
 {
@@ -636,59 +689,6 @@ static const struct v4l2_async_notifier_operations 
rvin_parallel_notify_ops = {
        .complete = rvin_parallel_notify_complete,
 };
 
-static int rvin_parallel_parse_of(struct rvin_dev *vin)
-{
-       struct fwnode_handle *ep, *fwnode;
-       struct v4l2_fwnode_endpoint vep = {
-               .bus_type = V4L2_MBUS_UNKNOWN,
-       };
-       struct v4l2_async_connection *asc;
-       int ret;
-
-       ep = fwnode_graph_get_endpoint_by_id(dev_fwnode(vin->dev), 0, 0, 0);
-       if (!ep)
-               return 0;
-
-       fwnode = fwnode_graph_get_remote_endpoint(ep);
-       ret = v4l2_fwnode_endpoint_parse(ep, &vep);
-       fwnode_handle_put(ep);
-       if (ret) {
-               vin_err(vin, "Failed to parse %pOF\n", to_of_node(fwnode));
-               ret = -EINVAL;
-               goto out;
-       }
-
-       switch (vep.bus_type) {
-       case V4L2_MBUS_PARALLEL:
-       case V4L2_MBUS_BT656:
-               vin_dbg(vin, "Found %s media bus\n",
-                       vep.bus_type == V4L2_MBUS_PARALLEL ?
-                       "PARALLEL" : "BT656");
-               vin->parallel.mbus_type = vep.bus_type;
-               vin->parallel.bus = vep.bus.parallel;
-               break;
-       default:
-               vin_err(vin, "Unknown media bus type\n");
-               ret = -EINVAL;
-               goto out;
-       }
-
-       asc = v4l2_async_nf_add_fwnode(&vin->notifier, fwnode,
-                                      struct v4l2_async_connection);
-       if (IS_ERR(asc)) {
-               ret = PTR_ERR(asc);
-               goto out;
-       }
-
-       vin->parallel.asc = asc;
-
-       vin_dbg(vin, "Add parallel OF device %pOF\n", to_of_node(fwnode));
-out:
-       fwnode_handle_put(fwnode);
-
-       return ret;
-}
-
 static void rvin_parallel_cleanup(struct rvin_dev *vin)
 {
        v4l2_async_nf_unregister(&vin->notifier);

Reply via email to