media: v4l: async: Rename v4l2_async_subdev as v4l2_async_connection
authorSakari Ailus <sakari.ailus@linux.intel.com>
Thu, 16 Feb 2023 13:54:53 +0000 (14:54 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 28 Jul 2023 08:44:25 +0000 (10:44 +0200)
Rename v4l2_async_subdev as v4l2_async_connection, in order to
differentiate between the sub-devices and their connections: one
sub-device can have many connections but the V4L2 async framework has so
far allowed just a single one. Connections in this context will later
translate into either MC ancillary or data links.

This patch prepares changing that relation by changing existing users of
v4l2_async_subdev to switch to v4l2_async_connection. Async sub-devices
themselves will not be needed anymore

Additionally, __v4l2_async_nf_add_subdev() has been renamed
__v4l2_async_nf_add_connection().

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # imx6qp
Tested-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> # rcar + adv746x
Tested-by: Aishwarya Kothari <aishwarya.kothari@toradex.com> # Apalis i.MX6Q with TC358743
Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # Renesas RZ/G2L SMARC
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
70 files changed:
Documentation/driver-api/media/v4l2-subdev.rst
drivers/media/i2c/ds90ub913.c
drivers/media/i2c/ds90ub953.c
drivers/media/i2c/ds90ub960.c
drivers/media/i2c/max9286.c
drivers/media/i2c/st-mipid02.c
drivers/media/i2c/tc358746.c
drivers/media/pci/intel/ipu3/ipu3-cio2.c
drivers/media/platform/atmel/atmel-isi.c
drivers/media/platform/cadence/cdns-csi2rx.c
drivers/media/platform/intel/pxa_camera.c
drivers/media/platform/marvell/cafe-driver.c
drivers/media/platform/marvell/mcam-core.c
drivers/media/platform/marvell/mmp-driver.c
drivers/media/platform/microchip/microchip-csi2dc.c
drivers/media/platform/microchip/microchip-isc-base.c
drivers/media/platform/microchip/microchip-isc.h
drivers/media/platform/microchip/microchip-sama5d2-isc.c
drivers/media/platform/microchip/microchip-sama7g5-isc.c
drivers/media/platform/nxp/imx-mipi-csis.c
drivers/media/platform/nxp/imx7-media-csi.c
drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
drivers/media/platform/nxp/imx8mq-mipi-csi2.c
drivers/media/platform/qcom/camss/camss.c
drivers/media/platform/qcom/camss/camss.h
drivers/media/platform/renesas/rcar-isp.c
drivers/media/platform/renesas/rcar-vin/rcar-core.c
drivers/media/platform/renesas/rcar-vin/rcar-csi2.c
drivers/media/platform/renesas/rcar-vin/rcar-vin.h
drivers/media/platform/renesas/rcar_drif.c
drivers/media/platform/renesas/renesas-ceu.c
drivers/media/platform/renesas/rzg2l-cru/rzg2l-core.c
drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h
drivers/media/platform/renesas/rzg2l-cru/rzg2l-csi2.c
drivers/media/platform/rockchip/rkisp1/rkisp1-common.h
drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
drivers/media/platform/samsung/exynos4-is/media-dev.c
drivers/media/platform/samsung/exynos4-is/media-dev.h
drivers/media/platform/st/stm32/stm32-dcmi.c
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.c
drivers/media/platform/sunxi/sun6i-csi/sun6i_csi_bridge.h
drivers/media/platform/sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.c
drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/sun8i_a83t_mipi_csi2.c
drivers/media/platform/ti/am437x/am437x-vpfe.c
drivers/media/platform/ti/am437x/am437x-vpfe.h
drivers/media/platform/ti/cal/cal.c
drivers/media/platform/ti/davinci/vpif_capture.c
drivers/media/platform/ti/omap3isp/isp.c
drivers/media/platform/ti/omap3isp/isp.h
drivers/media/platform/video-mux.c
drivers/media/platform/xilinx/xilinx-vipp.c
drivers/media/v4l2-core/v4l2-async.c
drivers/media/v4l2-core/v4l2-fwnode.c
drivers/staging/media/atomisp/pci/atomisp_csi2_bridge.c
drivers/staging/media/deprecated/atmel/atmel-isc-base.c
drivers/staging/media/deprecated/atmel/atmel-isc.h
drivers/staging/media/deprecated/atmel/atmel-sama5d2-isc.c
drivers/staging/media/deprecated/atmel/atmel-sama7g5-isc.c
drivers/staging/media/imx/imx-media-csi.c
drivers/staging/media/imx/imx-media-dev-common.c
drivers/staging/media/imx/imx-media-dev.c
drivers/staging/media/imx/imx-media-of.c
drivers/staging/media/imx/imx6-mipi-csi2.c
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.c
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_proc.h
drivers/staging/media/tegra-video/vi.c
include/media/davinci/vpif_types.h
include/media/v4l2-async.h
include/media/v4l2-subdev.h

index 327d444..eba5e44 100644 (file)
@@ -206,60 +206,67 @@ of an unregister notifier, it must be cleaned up by calling
 
 Before registering the notifier, bridge drivers must do two things: first, the
 notifier must be initialized using the :c:func:`v4l2_async_nf_init`.  Second,
-bridge drivers can then begin to form a list of subdevice descriptors that the
-bridge device needs for its operation. :c:func:`v4l2_async_nf_add_fwnode`,
+bridge drivers can then begin to form a list of async connection descriptors
+that the bridge device needs for its
+operation. :c:func:`v4l2_async_nf_add_fwnode`,
 :c:func:`v4l2_async_nf_add_fwnode_remote` and :c:func:`v4l2_async_nf_add_i2c`
-are available for that purpose.
+
+Async connection descriptors describe connections to external sub-devices the
+drivers for which are not yet probed. Based on an async connection, a media data
+or ancillary link may be created when the related sub-device becomes
+available. There may be one or more async connections to a given sub-device but
+this is not known at the time of adding the connections to the notifier. Async
+connections are bound as matching async sub-devices are found, one by one.
 
 Asynchronous sub-device registration helper for camera sensor drivers
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 :c:func:`v4l2_async_register_subdev_sensor` is a helper function for sensor
-drivers registering their own async sub-device, but it also registers a notifier
-and further registers async sub-devices for lens and flash devices found in
+drivers registering their own async connection, but it also registers a notifier
+and further registers async connections for lens and flash devices found in
 firmware. The notifier for the sub-device is unregistered and cleaned up with
 the async sub-device, using :c:func:`v4l2_async_unregister_subdev`.
 
 Asynchronous sub-device notifier example
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-These functions allocate an async sub-device descriptor which is of type struct
-:c:type:`v4l2_async_subdev` embedded in a driver-specific struct. The &struct
-:c:type:`v4l2_async_subdev` shall be the first member of this struct:
+These functions allocate an async connection descriptor which is of type struct
+:c:type:`v4l2_async_connection` embedded in a driver-specific struct. The &struct
+:c:type:`v4l2_async_connection` shall be the first member of this struct:
 
 .. code-block:: c
 
-       struct my_async_subdev {
-               struct v4l2_async_subdev asd;
+       struct my_async_connection {
+               struct v4l2_async_connection asc;
                ...
        };
 
-       struct my_async_subdev *my_asd;
+       struct my_async_connection *my_asc;
        struct fwnode_handle *ep;
 
        ...
 
-       my_asd = v4l2_async_nf_add_fwnode_remote(&notifier, ep,
-                                                struct my_async_subdev);
+       my_asc = v4l2_async_nf_add_fwnode_remote(&notifier, ep,
+                                                struct my_async_connection);
        fwnode_handle_put(ep);
 
-       if (IS_ERR(my_asd))
-               return PTR_ERR(my_asd);
+       if (IS_ERR(my_asc))
+               return PTR_ERR(my_asc);
 
 Asynchronous sub-device notifier callbacks
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-The V4L2 core will then use these descriptors to match asynchronously
-registered subdevices to them. If a match is detected the ``.bound()``
-notifier callback is called. After all subdevices have been located the
-.complete() callback is called. When a subdevice is removed from the
-system the .unbind() method is called. All three callbacks are optional.
+The V4L2 core will then use these connection descriptors to match asynchronously
+registered subdevices to them. If a match is detected the ``.bound()`` notifier
+callback is called. After all connections have been bound the .complete()
+callback is called. When a connection is removed from the system the
+``.unbind()`` method is called. All three callbacks are optional.
 
 Drivers can store any type of custom data in their driver-specific
-:c:type:`v4l2_async_subdev` wrapper. If any of that data requires special
+:c:type:`v4l2_async_connection` wrapper. If any of that data requires special
 handling when the structure is freed, drivers must implement the ``.destroy()``
 notifier callback. The framework will call it right before freeing the
-:c:type:`v4l2_async_subdev`.
+:c:type:`v4l2_async_connection`.
 
 Calling subdev operations
 ~~~~~~~~~~~~~~~~~~~~~~~~~
index 55be284..349c347 100644 (file)
@@ -518,7 +518,7 @@ static const struct media_entity_operations ub913_entity_ops = {
 
 static int ub913_notify_bound(struct v4l2_async_notifier *notifier,
                              struct v4l2_subdev *source_subdev,
-                             struct v4l2_async_subdev *asd)
+                             struct v4l2_async_connection *asd)
 {
        struct ub913_data *priv = sd_to_ub913(notifier->sd);
        struct device *dev = &priv->client->dev;
@@ -557,7 +557,7 @@ static const struct v4l2_async_notifier_operations ub913_notify_ops = {
 static int ub913_v4l2_notifier_register(struct ub913_data *priv)
 {
        struct device *dev = &priv->client->dev;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *ep_fwnode;
        int ret;
 
@@ -571,7 +571,7 @@ static int ub913_v4l2_notifier_register(struct ub913_data *priv)
        v4l2_async_nf_init(&priv->notifier);
 
        asd = v4l2_async_nf_add_fwnode_remote(&priv->notifier, ep_fwnode,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
 
        fwnode_handle_put(ep_fwnode);
 
index 591b52b..440af7b 100644 (file)
@@ -723,7 +723,7 @@ static const struct media_entity_operations ub953_entity_ops = {
 
 static int ub953_notify_bound(struct v4l2_async_notifier *notifier,
                              struct v4l2_subdev *source_subdev,
-                             struct v4l2_async_subdev *asd)
+                             struct v4l2_async_connection *asd)
 {
        struct ub953_data *priv = sd_to_ub953(notifier->sd);
        struct device *dev = &priv->client->dev;
@@ -762,7 +762,7 @@ static const struct v4l2_async_notifier_operations ub953_notify_ops = {
 static int ub953_v4l2_notifier_register(struct ub953_data *priv)
 {
        struct device *dev = &priv->client->dev;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *ep_fwnode;
        int ret;
 
@@ -776,7 +776,7 @@ static int ub953_v4l2_notifier_register(struct ub953_data *priv)
        v4l2_async_nf_init(&priv->notifier);
 
        asd = v4l2_async_nf_add_fwnode_remote(&priv->notifier, ep_fwnode,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
 
        fwnode_handle_put(ep_fwnode);
 
index b9a1ef6..a2b1056 100644 (file)
@@ -471,11 +471,11 @@ struct ub960_rxport {
 };
 
 struct ub960_asd {
-       struct v4l2_async_subdev base;
+       struct v4l2_async_connection base;
        struct ub960_rxport *rxport;
 };
 
-static inline struct ub960_asd *to_ub960_asd(struct v4l2_async_subdev *asd)
+static inline struct ub960_asd *to_ub960_asd(struct v4l2_async_connection *asd)
 {
        return container_of(asd, struct ub960_asd, base);
 }
@@ -3538,7 +3538,7 @@ err_free_rxports:
 
 static int ub960_notify_bound(struct v4l2_async_notifier *notifier,
                              struct v4l2_subdev *subdev,
-                             struct v4l2_async_subdev *asd)
+                             struct v4l2_async_connection *asd)
 {
        struct ub960_data *priv = sd_to_ub960(notifier->sd);
        struct ub960_rxport *rxport = to_ub960_asd(asd)->rxport;
@@ -3581,7 +3581,7 @@ static int ub960_notify_bound(struct v4l2_async_notifier *notifier,
 
 static void ub960_notify_unbind(struct v4l2_async_notifier *notifier,
                                struct v4l2_subdev *subdev,
-                               struct v4l2_async_subdev *asd)
+                               struct v4l2_async_connection *asd)
 {
        struct ub960_rxport *rxport = to_ub960_asd(asd)->rxport;
 
index a1f86db..78c77cd 100644 (file)
@@ -161,11 +161,12 @@ struct max9286_source {
 };
 
 struct max9286_asd {
-       struct v4l2_async_subdev base;
+       struct v4l2_async_connection base;
        struct max9286_source *source;
 };
 
-static inline struct max9286_asd *to_max9286_asd(struct v4l2_async_subdev *asd)
+static inline struct max9286_asd *
+to_max9286_asd(struct v4l2_async_connection *asd)
 {
        return container_of(asd, struct max9286_asd, base);
 }
@@ -659,7 +660,7 @@ static int max9286_set_pixelrate(struct max9286_priv *priv)
 
 static int max9286_notify_bound(struct v4l2_async_notifier *notifier,
                                struct v4l2_subdev *subdev,
-                               struct v4l2_async_subdev *asd)
+                               struct v4l2_async_connection *asd)
 {
        struct max9286_priv *priv = sd_to_max9286(notifier->sd);
        struct max9286_source *source = to_max9286_asd(asd)->source;
@@ -721,7 +722,7 @@ static int max9286_notify_bound(struct v4l2_async_notifier *notifier,
 
 static void max9286_notify_unbind(struct v4l2_async_notifier *notifier,
                                  struct v4l2_subdev *subdev,
-                                 struct v4l2_async_subdev *asd)
+                                 struct v4l2_async_connection *asd)
 {
        struct max9286_priv *priv = sd_to_max9286(notifier->sd);
        struct max9286_source *source = to_max9286_asd(asd)->source;
index 906553a..5cd87b1 100644 (file)
@@ -829,7 +829,7 @@ static const struct media_entity_operations mipid02_subdev_entity_ops = {
 
 static int mipid02_async_bound(struct v4l2_async_notifier *notifier,
                               struct v4l2_subdev *s_subdev,
-                              struct v4l2_async_subdev *asd)
+                              struct v4l2_async_connection *asd)
 {
        struct mipid02_dev *bridge = to_mipid02_dev(notifier->sd);
        struct i2c_client *client = bridge->i2c_client;
@@ -863,7 +863,7 @@ static int mipid02_async_bound(struct v4l2_async_notifier *notifier,
 
 static void mipid02_async_unbind(struct v4l2_async_notifier *notifier,
                                 struct v4l2_subdev *s_subdev,
-                                struct v4l2_async_subdev *asd)
+                                struct v4l2_async_connection *asd)
 {
        struct mipid02_dev *bridge = to_mipid02_dev(notifier->sd);
 
@@ -879,7 +879,7 @@ static int mipid02_parse_rx_ep(struct mipid02_dev *bridge)
 {
        struct v4l2_fwnode_endpoint ep = { .bus_type = V4L2_MBUS_CSI2_DPHY };
        struct i2c_client *client = bridge->i2c_client;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct device_node *ep_node;
        int ret;
 
@@ -914,7 +914,7 @@ static int mipid02_parse_rx_ep(struct mipid02_dev *bridge)
        v4l2_async_nf_init(&bridge->notifier);
        asd = v4l2_async_nf_add_fwnode_remote(&bridge->notifier,
                                              of_fwnode_handle(ep_node),
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        of_node_put(ep_node);
 
        if (IS_ERR(asd)) {
index f37373c..203eb33 100644 (file)
@@ -1426,7 +1426,7 @@ static int tc358746_init_controls(struct tc358746 *tc358746)
 
 static int tc358746_notify_bound(struct v4l2_async_notifier *notifier,
                                 struct v4l2_subdev *sd,
-                                struct v4l2_async_subdev *asd)
+                                struct v4l2_async_connection *asd)
 {
        struct tc358746 *tc358746 =
                container_of(notifier, struct tc358746, notifier);
@@ -1445,7 +1445,7 @@ static int tc358746_async_register(struct tc358746 *tc358746)
        struct v4l2_fwnode_endpoint vep = {
                .bus_type = V4L2_MBUS_PARALLEL,
        };
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *ep;
        int err;
 
@@ -1462,7 +1462,7 @@ static int tc358746_async_register(struct tc358746 *tc358746)
 
        v4l2_async_nf_init(&tc358746->notifier);
        asd = v4l2_async_nf_add_fwnode_remote(&tc358746->notifier, ep,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        fwnode_handle_put(ep);
 
        if (IS_ERR(asd)) {
index 8dcc4e9..8319d27 100644 (file)
@@ -1372,7 +1372,7 @@ static const struct v4l2_subdev_ops cio2_subdev_ops = {
 /******* V4L2 sub-device asynchronous registration callbacks***********/
 
 struct sensor_async_subdev {
-       struct v4l2_async_subdev asd;
+       struct v4l2_async_connection asd;
        struct csi2_bus_info csi2;
 };
 
@@ -1382,7 +1382,7 @@ struct sensor_async_subdev {
 /* The .bound() notifier callback when a match is found */
 static int cio2_notifier_bound(struct v4l2_async_notifier *notifier,
                               struct v4l2_subdev *sd,
-                              struct v4l2_async_subdev *asd)
+                              struct v4l2_async_connection *asd)
 {
        struct cio2_device *cio2 = to_cio2_device(notifier);
        struct sensor_async_subdev *s_asd = to_sensor_asd(asd);
@@ -1403,7 +1403,7 @@ static int cio2_notifier_bound(struct v4l2_async_notifier *notifier,
 /* The .unbind callback */
 static void cio2_notifier_unbind(struct v4l2_async_notifier *notifier,
                                 struct v4l2_subdev *sd,
-                                struct v4l2_async_subdev *asd)
+                                struct v4l2_async_connection *asd)
 {
        struct cio2_device *cio2 = to_cio2_device(notifier);
        struct sensor_async_subdev *s_asd = to_sensor_asd(asd);
@@ -1417,11 +1417,11 @@ static int cio2_notifier_complete(struct v4l2_async_notifier *notifier)
        struct cio2_device *cio2 = to_cio2_device(notifier);
        struct device *dev = &cio2->pci_dev->dev;
        struct sensor_async_subdev *s_asd;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct cio2_queue *q;
        int ret;
 
-       list_for_each_entry(asd, &cio2->notifier.asd_list, asd_entry) {
+       list_for_each_entry(asd, &cio2->notifier.asc_list, asc_entry) {
                s_asd = to_sensor_asd(asd);
                q = &cio2->queue[s_asd->csi2.port];
 
index 0863531..13902b9 100644 (file)
@@ -1120,7 +1120,7 @@ static int isi_graph_notify_complete(struct v4l2_async_notifier *notifier)
 
 static void isi_graph_notify_unbind(struct v4l2_async_notifier *notifier,
                                     struct v4l2_subdev *sd,
-                                    struct v4l2_async_subdev *asd)
+                                    struct v4l2_async_connection *asd)
 {
        struct atmel_isi *isi = notifier_to_isi(notifier);
 
@@ -1132,7 +1132,7 @@ static void isi_graph_notify_unbind(struct v4l2_async_notifier *notifier,
 
 static int isi_graph_notify_bound(struct v4l2_async_notifier *notifier,
                                   struct v4l2_subdev *subdev,
-                                  struct v4l2_async_subdev *asd)
+                                  struct v4l2_async_connection *asd)
 {
        struct atmel_isi *isi = notifier_to_isi(notifier);
 
@@ -1151,7 +1151,7 @@ static const struct v4l2_async_notifier_operations isi_graph_notify_ops = {
 
 static int isi_graph_init(struct atmel_isi *isi)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct device_node *ep;
        int ret;
 
@@ -1163,7 +1163,7 @@ static int isi_graph_init(struct atmel_isi *isi)
 
        asd = v4l2_async_nf_add_fwnode_remote(&isi->notifier,
                                              of_fwnode_handle(ep),
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        of_node_put(ep);
 
        if (IS_ERR(asd))
index f2b4574..a6d7de9 100644 (file)
@@ -313,7 +313,7 @@ static const struct v4l2_subdev_ops csi2rx_subdev_ops = {
 
 static int csi2rx_async_bound(struct v4l2_async_notifier *notifier,
                              struct v4l2_subdev *s_subdev,
-                             struct v4l2_async_subdev *asd)
+                             struct v4l2_async_connection *asd)
 {
        struct v4l2_subdev *subdev = notifier->sd;
        struct csi2rx_priv *csi2rx = v4l2_subdev_to_csi2rx(subdev);
@@ -440,7 +440,7 @@ static int csi2rx_get_resources(struct csi2rx_priv *csi2rx,
 static int csi2rx_parse_dt(struct csi2rx_priv *csi2rx)
 {
        struct v4l2_fwnode_endpoint v4l2_ep = { .bus_type = 0 };
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *fwh;
        struct device_node *ep;
        int ret;
@@ -477,7 +477,7 @@ static int csi2rx_parse_dt(struct csi2rx_priv *csi2rx)
        v4l2_async_nf_init(&csi2rx->notifier);
 
        asd = v4l2_async_nf_add_fwnode_remote(&csi2rx->notifier, fwh,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        of_node_put(ep);
        if (IS_ERR(asd))
                return PTR_ERR(asd);
index f229c5f..1544102 100644 (file)
@@ -2044,7 +2044,7 @@ static const struct video_device pxa_camera_videodev_template = {
 
 static int pxa_camera_sensor_bound(struct v4l2_async_notifier *notifier,
                     struct v4l2_subdev *subdev,
-                    struct v4l2_async_subdev *asd)
+                    struct v4l2_async_connection *asd)
 {
        int err;
        struct v4l2_device *v4l2_dev = notifier->v4l2_dev;
@@ -2123,7 +2123,7 @@ out:
 
 static void pxa_camera_sensor_unbind(struct v4l2_async_notifier *notifier,
                     struct v4l2_subdev *subdev,
-                    struct v4l2_async_subdev *asd)
+                    struct v4l2_async_connection *asd)
 {
        struct pxa_camera_dev *pcdev = v4l2_dev_to_pcdev(notifier->v4l2_dev);
 
@@ -2197,7 +2197,7 @@ static int pxa_camera_pdata_from_dt(struct device *dev,
                                    struct pxa_camera_dev *pcdev)
 {
        u32 mclk_rate;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct device_node *np = dev->of_node;
        struct v4l2_fwnode_endpoint ep = { .bus_type = 0 };
        int err = of_property_read_u32(np, "clock-frequency",
@@ -2252,7 +2252,7 @@ static int pxa_camera_pdata_from_dt(struct device *dev,
 
        asd = v4l2_async_nf_add_fwnode_remote(&pcdev->notifier,
                                              of_fwnode_handle(np),
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        if (IS_ERR(asd))
                err = PTR_ERR(asd);
 out:
@@ -2299,14 +2299,14 @@ static int pxa_camera_probe(struct platform_device *pdev)
        pcdev->res = res;
        pcdev->pdata = pdev->dev.platform_data;
        if (pcdev->pdata) {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asd;
 
                pcdev->platform_flags = pcdev->pdata->flags;
                pcdev->mclk = pcdev->pdata->mclk_10khz * 10000;
                asd = v4l2_async_nf_add_i2c(&pcdev->notifier,
                                            pcdev->pdata->sensor_i2c_adapter_id,
                                            pcdev->pdata->sensor_i2c_address,
-                                           struct v4l2_async_subdev);
+                                           struct v4l2_async_connection);
                if (IS_ERR(asd))
                        err = PTR_ERR(asd);
        } else if (pdev->dev.of_node) {
index ae97ce4..dd1bba7 100644 (file)
@@ -478,7 +478,7 @@ static int cafe_pci_probe(struct pci_dev *pdev,
        int ret;
        struct cafe_camera *cam;
        struct mcam_camera *mcam;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct i2c_client *i2c_dev;
 
        /*
@@ -540,7 +540,8 @@ static int cafe_pci_probe(struct pci_dev *pdev,
 
        asd = v4l2_async_nf_add_i2c(&mcam->notifier,
                                    i2c_adapter_id(cam->i2c_adapter),
-                                   ov7670_info.addr, struct v4l2_async_subdev);
+                                   ov7670_info.addr,
+                                   struct v4l2_async_connection);
        if (IS_ERR(asd)) {
                ret = PTR_ERR(asd);
                goto out_smbus_shutdown;
index 154bdcb..3cee6d6 100644 (file)
@@ -1756,7 +1756,7 @@ EXPORT_SYMBOL_GPL(mccic_irq);
  */
 
 static int mccic_notify_bound(struct v4l2_async_notifier *notifier,
-       struct v4l2_subdev *subdev, struct v4l2_async_subdev *asd)
+       struct v4l2_subdev *subdev, struct v4l2_async_connection *asd)
 {
        struct mcam_camera *cam = notifier_to_mcam(notifier);
        int ret;
@@ -1801,7 +1801,7 @@ out:
 }
 
 static void mccic_notify_unbind(struct v4l2_async_notifier *notifier,
-       struct v4l2_subdev *subdev, struct v4l2_async_subdev *asd)
+       struct v4l2_subdev *subdev, struct v4l2_async_connection *asd)
 {
        struct mcam_camera *cam = notifier_to_mcam(notifier);
 
index 862583e..43e046b 100644 (file)
@@ -180,7 +180,7 @@ static int mmpcam_probe(struct platform_device *pdev)
        struct resource *res;
        struct fwnode_handle *ep;
        struct mmp_camera_platform_data *pdata;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        int ret;
 
        cam = devm_kzalloc(&pdev->dev, sizeof(*cam), GFP_KERNEL);
@@ -241,7 +241,7 @@ static int mmpcam_probe(struct platform_device *pdev)
        v4l2_async_nf_init(&mcam->notifier);
 
        asd = v4l2_async_nf_add_fwnode_remote(&mcam->notifier, ep,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        fwnode_handle_put(ep);
        if (IS_ERR(asd)) {
                ret = PTR_ERR(asd);
index bfb3edc..d631c38 100644 (file)
@@ -476,7 +476,7 @@ static const struct v4l2_subdev_ops csi2dc_subdev_ops = {
 
 static int csi2dc_async_bound(struct v4l2_async_notifier *notifier,
                              struct v4l2_subdev *subdev,
-                             struct v4l2_async_subdev *asd)
+                             struct v4l2_async_connection *asd)
 {
        struct csi2dc_device *csi2dc = container_of(notifier,
                                                struct csi2dc_device, notifier);
@@ -520,14 +520,14 @@ static const struct v4l2_async_notifier_operations csi2dc_async_ops = {
 static int csi2dc_prepare_notifier(struct csi2dc_device *csi2dc,
                                   struct fwnode_handle *input_fwnode)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        int ret = 0;
 
        v4l2_async_nf_init(&csi2dc->notifier);
 
        asd = v4l2_async_nf_add_fwnode_remote(&csi2dc->notifier,
                                              input_fwnode,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
 
        fwnode_handle_put(input_fwnode);
 
index 4e657fa..8dbf7bc 100644 (file)
@@ -1712,7 +1712,7 @@ static int isc_ctrl_init(struct isc_device *isc)
 
 static int isc_async_bound(struct v4l2_async_notifier *notifier,
                           struct v4l2_subdev *subdev,
-                          struct v4l2_async_subdev *asd)
+                          struct v4l2_async_connection *asd)
 {
        struct isc_device *isc = container_of(notifier->v4l2_dev,
                                              struct isc_device, v4l2_dev);
@@ -1741,7 +1741,7 @@ static int isc_async_bound(struct v4l2_async_notifier *notifier,
 
 static void isc_async_unbind(struct v4l2_async_notifier *notifier,
                             struct v4l2_subdev *subdev,
-                            struct v4l2_async_subdev *asd)
+                            struct v4l2_async_connection *asd)
 {
        struct isc_device *isc = container_of(notifier->v4l2_dev,
                                              struct isc_device, v4l2_dev);
index e3a6c73..ad4e98a 100644 (file)
@@ -44,7 +44,7 @@ struct isc_buffer {
 
 struct isc_subdev_entity {
        struct v4l2_subdev              *sd;
-       struct v4l2_async_subdev        *asd;
+       struct v4l2_async_connection    *asd;
        struct device_node              *epn;
        struct v4l2_async_notifier      notifier;
 
index dfebb58..e8dfe30 100644 (file)
@@ -523,7 +523,7 @@ static int microchip_isc_probe(struct platform_device *pdev)
        }
 
        list_for_each_entry(subdev_entity, &isc->subdev_entities, list) {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asd;
                struct fwnode_handle *fwnode =
                        of_fwnode_handle(subdev_entity->epn);
 
@@ -531,7 +531,7 @@ static int microchip_isc_probe(struct platform_device *pdev)
 
                asd = v4l2_async_nf_add_fwnode_remote(&subdev_entity->notifier,
                                                      fwnode,
-                                                     struct v4l2_async_subdev);
+                                                     struct v4l2_async_connection);
 
                of_node_put(subdev_entity->epn);
                subdev_entity->epn = NULL;
index 2543e05..cd982a9 100644 (file)
@@ -513,7 +513,7 @@ static int microchip_xisc_probe(struct platform_device *pdev)
        }
 
        list_for_each_entry(subdev_entity, &isc->subdev_entities, list) {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asd;
                struct fwnode_handle *fwnode =
                        of_fwnode_handle(subdev_entity->epn);
 
@@ -521,7 +521,7 @@ static int microchip_xisc_probe(struct platform_device *pdev)
 
                asd = v4l2_async_nf_add_fwnode_remote(&subdev_entity->notifier,
                                                      fwnode,
-                                                     struct v4l2_async_subdev);
+                                                     struct v4l2_async_connection);
 
                of_node_put(subdev_entity->epn);
                subdev_entity->epn = NULL;
index 8483ce5..f7d64fb 100644 (file)
@@ -1229,7 +1229,7 @@ mipi_notifier_to_csis_state(struct v4l2_async_notifier *n)
 
 static int mipi_csis_notify_bound(struct v4l2_async_notifier *notifier,
                                  struct v4l2_subdev *sd,
-                                 struct v4l2_async_subdev *asd)
+                                 struct v4l2_async_connection *asd)
 {
        struct mipi_csis_device *csis = mipi_notifier_to_csis_state(notifier);
        struct media_pad *sink = &csis->sd.entity.pads[CSIS_PAD_SINK];
@@ -1246,7 +1246,7 @@ static int mipi_csis_async_register(struct mipi_csis_device *csis)
        struct v4l2_fwnode_endpoint vep = {
                .bus_type = V4L2_MBUS_CSI2_DPHY,
        };
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *ep;
        unsigned int i;
        int ret;
@@ -1277,7 +1277,7 @@ static int mipi_csis_async_register(struct mipi_csis_device *csis)
        dev_dbg(csis->dev, "flags: 0x%08x\n", csis->bus.flags);
 
        asd = v4l2_async_nf_add_fwnode_remote(&csis->notifier, ep,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        if (IS_ERR(asd)) {
                ret = PTR_ERR(asd);
                goto err_parse;
index 2ec1f3c..565c093 100644 (file)
@@ -2032,7 +2032,7 @@ static const struct media_entity_operations imx7_csi_entity_ops = {
 
 static int imx7_csi_notify_bound(struct v4l2_async_notifier *notifier,
                                 struct v4l2_subdev *sd,
-                                struct v4l2_async_subdev *asd)
+                                struct v4l2_async_connection *asd)
 {
        struct imx7_csi *csi = imx7_csi_notifier_to_dev(notifier);
        struct media_pad *sink = &csi->sd.entity.pads[IMX7_CSI_PAD_SINK];
@@ -2057,7 +2057,7 @@ static const struct v4l2_async_notifier_operations imx7_csi_notify_ops = {
 
 static int imx7_csi_async_register(struct imx7_csi *csi)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *ep;
        int ret;
 
@@ -2072,7 +2072,7 @@ static int imx7_csi_async_register(struct imx7_csi *csi)
        }
 
        asd = v4l2_async_nf_add_fwnode_remote(&csi->notifier, ep,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
 
        fwnode_handle_put(ep);
 
index 186db02..da1572f 100644 (file)
  */
 
 struct mxc_isi_async_subdev {
-       struct v4l2_async_subdev asd;
+       struct v4l2_async_connection asd;
        unsigned int port;
 };
 
 static inline struct mxc_isi_async_subdev *
-asd_to_mxc_isi_async_subdev(struct v4l2_async_subdev *asd)
+asd_to_mxc_isi_async_subdev(struct v4l2_async_connection *asd)
 {
        return container_of(asd, struct mxc_isi_async_subdev, asd);
 };
@@ -48,12 +48,12 @@ notifier_to_mxc_isi_dev(struct v4l2_async_notifier *n)
 
 static int mxc_isi_async_notifier_bound(struct v4l2_async_notifier *notifier,
                                        struct v4l2_subdev *sd,
-                                       struct v4l2_async_subdev *asd)
+                                       struct v4l2_async_connection *asc)
 {
        const unsigned int link_flags = MEDIA_LNK_FL_IMMUTABLE
                                      | MEDIA_LNK_FL_ENABLED;
        struct mxc_isi_dev *isi = notifier_to_mxc_isi_dev(notifier);
-       struct mxc_isi_async_subdev *masd = asd_to_mxc_isi_async_subdev(asd);
+       struct mxc_isi_async_subdev *masd = asd_to_mxc_isi_async_subdev(asc);
        struct media_pad *pad = &isi->crossbar.pads[masd->port];
        struct device_link *link;
 
index ca2efcc..326c376 100644 (file)
@@ -567,7 +567,7 @@ mipi_notifier_to_csi2_state(struct v4l2_async_notifier *n)
 
 static int imx8mq_mipi_csi_notify_bound(struct v4l2_async_notifier *notifier,
                                        struct v4l2_subdev *sd,
-                                       struct v4l2_async_subdev *asd)
+                                       struct v4l2_async_connection *asd)
 {
        struct csi_state *state = mipi_notifier_to_csi2_state(notifier);
        struct media_pad *sink = &state->sd.entity.pads[MIPI_CSI2_PAD_SINK];
@@ -587,7 +587,7 @@ static int imx8mq_mipi_csi_async_register(struct csi_state *state)
        struct v4l2_fwnode_endpoint vep = {
                .bus_type = V4L2_MBUS_CSI2_DPHY,
        };
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *ep;
        unsigned int i;
        int ret;
@@ -619,7 +619,7 @@ static int imx8mq_mipi_csi_async_register(struct csi_state *state)
                state->bus.flags);
 
        asd = v4l2_async_nf_add_fwnode_remote(&state->notifier, ep,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        if (IS_ERR(asd)) {
                ret = PTR_ERR(asd);
                goto err_parse;
index 1ef26ae..006855b 100644 (file)
@@ -1383,7 +1383,7 @@ static void camss_unregister_entities(struct camss *camss)
 
 static int camss_subdev_notifier_bound(struct v4l2_async_notifier *async,
                                       struct v4l2_subdev *subdev,
-                                      struct v4l2_async_subdev *asd)
+                                      struct v4l2_async_connection *asd)
 {
        struct camss *camss = container_of(async, struct camss, notifier);
        struct camss_async_subdev *csd =
index 3acd2b3..f6c326c 100644 (file)
@@ -113,7 +113,7 @@ struct camss_camera_interface {
 };
 
 struct camss_async_subdev {
-       struct v4l2_async_subdev asd; /* must be first */
+       struct v4l2_async_connection asd; /* must be first */
        struct camss_camera_interface interface;
 };
 
index 5e300ff..9e3b8a8 100644 (file)
@@ -326,7 +326,7 @@ static const struct v4l2_subdev_ops rcar_isp_subdev_ops = {
 
 static int risp_notify_bound(struct v4l2_async_notifier *notifier,
                             struct v4l2_subdev *subdev,
-                            struct v4l2_async_subdev *asd)
+                            struct v4l2_async_connection *asd)
 {
        struct rcar_isp *isp = notifier_to_isp(notifier);
        int pad;
@@ -350,7 +350,7 @@ static int risp_notify_bound(struct v4l2_async_notifier *notifier,
 
 static void risp_notify_unbind(struct v4l2_async_notifier *notifier,
                               struct v4l2_subdev *subdev,
-                              struct v4l2_async_subdev *asd)
+                              struct v4l2_async_connection *asd)
 {
        struct rcar_isp *isp = notifier_to_isp(notifier);
 
@@ -366,7 +366,7 @@ static const struct v4l2_async_notifier_operations risp_notify_ops = {
 
 static int risp_parse_dt(struct rcar_isp *isp)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *fwnode;
        struct fwnode_handle *ep;
        unsigned int id;
@@ -396,7 +396,7 @@ static int risp_parse_dt(struct rcar_isp *isp)
        isp->notifier.ops = &risp_notify_ops;
 
        asd = v4l2_async_nf_add_fwnode(&isp->notifier, fwnode,
-                                      struct v4l2_async_subdev);
+                                      struct v4l2_async_connection);
        fwnode_handle_put(fwnode);
        if (IS_ERR(asd))
                return PTR_ERR(asd);
index 36f1bf5..5bba9e0 100644 (file)
@@ -251,7 +251,7 @@ static int rvin_group_notify_complete(struct v4l2_async_notifier *notifier)
 
 static void rvin_group_notify_unbind(struct v4l2_async_notifier *notifier,
                                     struct v4l2_subdev *subdev,
-                                    struct v4l2_async_subdev *asd)
+                                    struct v4l2_async_connection *asc)
 {
        struct rvin_dev *vin = v4l2_dev_to_vin(notifier->v4l2_dev);
        unsigned int i;
@@ -263,7 +263,7 @@ static void rvin_group_notify_unbind(struct v4l2_async_notifier *notifier,
        mutex_lock(&vin->group->lock);
 
        for (i = 0; i < RVIN_CSI_MAX; i++) {
-               if (vin->group->remotes[i].asd != asd)
+               if (vin->group->remotes[i].asc != asc)
                        continue;
                vin->group->remotes[i].subdev = NULL;
                vin_dbg(vin, "Unbind %s from slot %u\n", subdev->name, i);
@@ -277,7 +277,7 @@ static void rvin_group_notify_unbind(struct v4l2_async_notifier *notifier,
 
 static int rvin_group_notify_bound(struct v4l2_async_notifier *notifier,
                                   struct v4l2_subdev *subdev,
-                                  struct v4l2_async_subdev *asd)
+                                  struct v4l2_async_connection *asc)
 {
        struct rvin_dev *vin = v4l2_dev_to_vin(notifier->v4l2_dev);
        unsigned int i;
@@ -285,7 +285,7 @@ static int rvin_group_notify_bound(struct v4l2_async_notifier *notifier,
        mutex_lock(&vin->group->lock);
 
        for (i = 0; i < RVIN_CSI_MAX; i++) {
-               if (vin->group->remotes[i].asd != asd)
+               if (vin->group->remotes[i].asc != asc)
                        continue;
                vin->group->remotes[i].subdev = subdev;
                vin_dbg(vin, "Bound %s to slot %u\n", subdev->name, i);
@@ -310,7 +310,7 @@ static int rvin_group_parse_of(struct rvin_dev *vin, unsigned int port,
        struct v4l2_fwnode_endpoint vep = {
                .bus_type = V4L2_MBUS_CSI2_DPHY,
        };
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
        int ret;
 
        ep = fwnode_graph_get_endpoint_by_id(dev_fwnode(vin->dev), port, id, 0);
@@ -326,14 +326,14 @@ static int rvin_group_parse_of(struct rvin_dev *vin, unsigned int port,
                goto out;
        }
 
-       asd = v4l2_async_nf_add_fwnode(&vin->group->notifier, fwnode,
-                                      struct v4l2_async_subdev);
-       if (IS_ERR(asd)) {
-               ret = PTR_ERR(asd);
+       asc = v4l2_async_nf_add_fwnode(&vin->group->notifier, fwnode,
+                                      struct v4l2_async_connection);
+       if (IS_ERR(asc)) {
+               ret = PTR_ERR(asc);
                goto out;
        }
 
-       vin->group->remotes[vep.base.id].asd = asd;
+       vin->group->remotes[vep.base.id].asc = asc;
 
        vin_dbg(vin, "Add group OF device %pOF to slot %u\n",
                to_of_node(fwnode), vep.base.id);
@@ -386,7 +386,7 @@ static int rvin_group_notifier_init(struct rvin_dev *vin, unsigned int port,
                        continue;
 
                for (id = 0; id < max_id; id++) {
-                       if (vin->group->remotes[id].asd)
+                       if (vin->group->remotes[id].asc)
                                continue;
 
                        ret = rvin_group_parse_of(vin->group->vin[i], port, id);
@@ -395,7 +395,7 @@ static int rvin_group_notifier_init(struct rvin_dev *vin, unsigned int port,
                }
        }
 
-       if (list_empty(&vin->group->notifier.asd_list))
+       if (list_empty(&vin->group->notifier.asc_list))
                return 0;
 
        vin->group->notifier.ops = &rvin_group_notify_ops;
@@ -610,7 +610,7 @@ static int rvin_parallel_notify_complete(struct v4l2_async_notifier *notifier)
 
 static void rvin_parallel_notify_unbind(struct v4l2_async_notifier *notifier,
                                        struct v4l2_subdev *subdev,
-                                       struct v4l2_async_subdev *asd)
+                                       struct v4l2_async_connection *asc)
 {
        struct rvin_dev *vin = v4l2_dev_to_vin(notifier->v4l2_dev);
 
@@ -623,7 +623,7 @@ static void rvin_parallel_notify_unbind(struct v4l2_async_notifier *notifier,
 
 static int rvin_parallel_notify_bound(struct v4l2_async_notifier *notifier,
                                      struct v4l2_subdev *subdev,
-                                     struct v4l2_async_subdev *asd)
+                                     struct v4l2_async_connection *asc)
 {
        struct rvin_dev *vin = v4l2_dev_to_vin(notifier->v4l2_dev);
        int ret;
@@ -655,7 +655,7 @@ static int rvin_parallel_parse_of(struct rvin_dev *vin)
        struct v4l2_fwnode_endpoint vep = {
                .bus_type = V4L2_MBUS_UNKNOWN,
        };
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
        int ret;
 
        ep = fwnode_graph_get_endpoint_by_id(dev_fwnode(vin->dev), 0, 0, 0);
@@ -686,14 +686,14 @@ static int rvin_parallel_parse_of(struct rvin_dev *vin)
                goto out;
        }
 
-       asd = v4l2_async_nf_add_fwnode(&vin->notifier, fwnode,
-                                      struct v4l2_async_subdev);
-       if (IS_ERR(asd)) {
-               ret = PTR_ERR(asd);
+       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.asd = asd;
+       vin->parallel.asc = asc;
 
        vin_dbg(vin, "Add parallel OF device %pOF\n", to_of_node(fwnode));
 out:
@@ -718,11 +718,11 @@ static int rvin_parallel_init(struct rvin_dev *vin)
        if (ret)
                return ret;
 
-       if (!vin->parallel.asd)
+       if (!vin->parallel.asc)
                return -ENODEV;
 
        vin_dbg(vin, "Found parallel subdevice %pOF\n",
-               to_of_node(vin->parallel.asd->match.fwnode));
+               to_of_node(vin->parallel.asc->match.fwnode));
 
        vin->notifier.ops = &rvin_parallel_notify_ops;
        ret = v4l2_async_nf_register(&vin->v4l2_dev, &vin->notifier);
index e4aac84..c3a1179 100644 (file)
@@ -988,12 +988,12 @@ static irqreturn_t rcsi2_irq_thread(int irq, void *data)
 
 static int rcsi2_notify_bound(struct v4l2_async_notifier *notifier,
                              struct v4l2_subdev *subdev,
-                             struct v4l2_async_subdev *asd)
+                             struct v4l2_async_connection *asc)
 {
        struct rcar_csi2 *priv = notifier_to_csi2(notifier);
        int pad;
 
-       pad = media_entity_get_fwnode_pad(&subdev->entity, asd->match.fwnode,
+       pad = media_entity_get_fwnode_pad(&subdev->entity, asc->match.fwnode,
                                          MEDIA_PAD_FL_SOURCE);
        if (pad < 0) {
                dev_err(priv->dev, "Failed to find pad for %s\n", subdev->name);
@@ -1013,7 +1013,7 @@ static int rcsi2_notify_bound(struct v4l2_async_notifier *notifier,
 
 static void rcsi2_notify_unbind(struct v4l2_async_notifier *notifier,
                                struct v4l2_subdev *subdev,
-                               struct v4l2_async_subdev *asd)
+                               struct v4l2_async_connection *asc)
 {
        struct rcar_csi2 *priv = notifier_to_csi2(notifier);
 
@@ -1090,7 +1090,7 @@ static int rcsi2_parse_v4l2(struct rcar_csi2 *priv,
 
 static int rcsi2_parse_dt(struct rcar_csi2 *priv)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
        struct fwnode_handle *fwnode;
        struct fwnode_handle *ep;
        struct v4l2_fwnode_endpoint v4l2_ep = {
@@ -1125,11 +1125,11 @@ static int rcsi2_parse_dt(struct rcar_csi2 *priv)
        v4l2_async_nf_init(&priv->notifier);
        priv->notifier.ops = &rcar_csi2_notify_ops;
 
-       asd = v4l2_async_nf_add_fwnode(&priv->notifier, fwnode,
-                                      struct v4l2_async_subdev);
+       asc = v4l2_async_nf_add_fwnode(&priv->notifier, fwnode,
+                                      struct v4l2_async_connection);
        fwnode_handle_put(fwnode);
-       if (IS_ERR(asd))
-               return PTR_ERR(asd);
+       if (IS_ERR(asc))
+               return PTR_ERR(asc);
 
        ret = v4l2_async_subdev_nf_register(&priv->subdev, &priv->notifier);
        if (ret)
index cb206d3..792336d 100644 (file)
@@ -106,7 +106,7 @@ struct rvin_video_format {
 
 /**
  * struct rvin_parallel_entity - Parallel video input endpoint descriptor
- * @asd:       sub-device descriptor for async framework
+ * @asc:       async connection descriptor for async framework
  * @subdev:    subdevice matched using async framework
  * @mbus_type: media bus type
  * @bus:       media bus parallel configuration
@@ -115,7 +115,7 @@ struct rvin_video_format {
  *
  */
 struct rvin_parallel_entity {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
        struct v4l2_subdev *subdev;
 
        enum v4l2_mbus_type mbus_type;
@@ -272,10 +272,10 @@ struct rvin_dev {
  *
  * @lock:              protects the count, notifier, vin and csi members
  * @count:             number of enabled VIN instances found in DT
- * @notifier:          group notifier for CSI-2 async subdevices
+ * @notifier:          group notifier for CSI-2 async connections
  * @vin:               VIN instances which are part of the group
  * @link_setup:                Callback to create all links for the media graph
- * @remotes:           array of pairs of fwnode and subdev pointers
+ * @remotes:           array of pairs of async connection and subdev pointers
  *                     to all remote subdevices.
  */
 struct rvin_group {
@@ -291,7 +291,7 @@ struct rvin_group {
        int (*link_setup)(struct rvin_dev *vin);
 
        struct {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asc;
                struct v4l2_subdev *subdev;
        } remotes[RVIN_REMOTES_MAX];
 };
index 06173ca..ef24bab 100644 (file)
@@ -1098,7 +1098,7 @@ static void rcar_drif_sdr_unregister(struct rcar_drif_sdr *sdr)
 /* Sub-device bound callback */
 static int rcar_drif_notify_bound(struct v4l2_async_notifier *notifier,
                                   struct v4l2_subdev *subdev,
-                                  struct v4l2_async_subdev *asd)
+                                  struct v4l2_async_connection *asd)
 {
        struct rcar_drif_sdr *sdr =
                container_of(notifier, struct rcar_drif_sdr, notifier);
@@ -1113,7 +1113,7 @@ static int rcar_drif_notify_bound(struct v4l2_async_notifier *notifier,
 /* Sub-device unbind callback */
 static void rcar_drif_notify_unbind(struct v4l2_async_notifier *notifier,
                                   struct v4l2_subdev *subdev,
-                                  struct v4l2_async_subdev *asd)
+                                  struct v4l2_async_connection *asd)
 {
        struct rcar_drif_sdr *sdr =
                container_of(notifier, struct rcar_drif_sdr, notifier);
@@ -1206,7 +1206,7 @@ static int rcar_drif_parse_subdevs(struct rcar_drif_sdr *sdr)
 {
        struct v4l2_async_notifier *notifier = &sdr->notifier;
        struct fwnode_handle *fwnode, *ep;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
 
        v4l2_async_nf_init(notifier);
 
@@ -1226,7 +1226,7 @@ static int rcar_drif_parse_subdevs(struct rcar_drif_sdr *sdr)
        }
 
        asd = v4l2_async_nf_add_fwnode(notifier, fwnode,
-                                      struct v4l2_async_subdev);
+                                      struct v4l2_async_connection);
        fwnode_handle_put(fwnode);
        if (IS_ERR(asd))
                return PTR_ERR(asd);
index a5f9d7b..f9e0bb9 100644 (file)
@@ -151,7 +151,7 @@ static inline struct ceu_buffer *vb2_to_ceu(struct vb2_v4l2_buffer *vbuf)
  * ceu_subdev - Wraps v4l2 sub-device and provides async subdevice.
  */
 struct ceu_subdev {
-       struct v4l2_async_subdev asd;
+       struct v4l2_async_connection asd;
        struct v4l2_subdev *v4l2_sd;
 
        /* per-subdevice mbus configuration options */
@@ -159,7 +159,7 @@ struct ceu_subdev {
        struct ceu_mbus_fmt mbus_fmt;
 };
 
-static struct ceu_subdev *to_ceu_subdev(struct v4l2_async_subdev *asd)
+static struct ceu_subdev *to_ceu_subdev(struct v4l2_async_connection *asd)
 {
        return container_of(asd, struct ceu_subdev, asd);
 }
@@ -1374,7 +1374,7 @@ static void ceu_vdev_release(struct video_device *vdev)
 
 static int ceu_notify_bound(struct v4l2_async_notifier *notifier,
                            struct v4l2_subdev *v4l2_sd,
-                           struct v4l2_async_subdev *asd)
+                           struct v4l2_async_connection *asd)
 {
        struct v4l2_device *v4l2_dev = notifier->v4l2_dev;
        struct ceu_device *ceudev = v4l2_to_ceu(v4l2_dev);
index baa9cf5..46912e7 100644 (file)
@@ -92,7 +92,7 @@ static int rzg2l_cru_group_notify_complete(struct v4l2_async_notifier *notifier)
 
 static void rzg2l_cru_group_notify_unbind(struct v4l2_async_notifier *notifier,
                                          struct v4l2_subdev *subdev,
-                                         struct v4l2_async_subdev *asd)
+                                         struct v4l2_async_connection *asd)
 {
        struct rzg2l_cru_dev *cru = notifier_to_cru(notifier);
 
@@ -110,7 +110,7 @@ static void rzg2l_cru_group_notify_unbind(struct v4l2_async_notifier *notifier,
 
 static int rzg2l_cru_group_notify_bound(struct v4l2_async_notifier *notifier,
                                        struct v4l2_subdev *subdev,
-                                       struct v4l2_async_subdev *asd)
+                                       struct v4l2_async_connection *asd)
 {
        struct rzg2l_cru_dev *cru = notifier_to_cru(notifier);
 
@@ -138,7 +138,7 @@ static int rzg2l_cru_mc_parse_of(struct rzg2l_cru_dev *cru)
                .bus_type = V4L2_MBUS_CSI2_DPHY,
        };
        struct fwnode_handle *ep, *fwnode;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        int ret;
 
        ep = fwnode_graph_get_endpoint_by_id(dev_fwnode(cru->dev), 1, 0, 0);
@@ -162,7 +162,7 @@ static int rzg2l_cru_mc_parse_of(struct rzg2l_cru_dev *cru)
        }
 
        asd = v4l2_async_nf_add_fwnode(&cru->notifier, fwnode,
-                                      struct v4l2_async_subdev);
+                                      struct v4l2_async_connection);
        if (IS_ERR(asd)) {
                ret = PTR_ERR(asd);
                goto out;
@@ -190,7 +190,7 @@ static int rzg2l_cru_mc_parse_of_graph(struct rzg2l_cru_dev *cru)
 
        cru->notifier.ops = &rzg2l_cru_async_ops;
 
-       if (list_empty(&cru->notifier.asd_list))
+       if (list_empty(&cru->notifier.asc_list))
                return 0;
 
        ret = v4l2_async_nf_register(&cru->v4l2_dev, &cru->notifier);
index 0b682cb..811603f 100644 (file)
@@ -45,7 +45,7 @@ enum rzg2l_cru_dma_state {
 };
 
 struct rzg2l_cru_csi {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct v4l2_subdev *subdev;
        u32 channel;
 };
index 7002b63..da233d7 100644 (file)
@@ -599,7 +599,7 @@ static const struct v4l2_subdev_ops rzg2l_csi2_subdev_ops = {
 
 static int rzg2l_csi2_notify_bound(struct v4l2_async_notifier *notifier,
                                   struct v4l2_subdev *subdev,
-                                  struct v4l2_async_subdev *asd)
+                                  struct v4l2_async_connection *asd)
 {
        struct rzg2l_csi2 *csi2 = notifier_to_csi2(notifier);
 
@@ -615,7 +615,7 @@ static int rzg2l_csi2_notify_bound(struct v4l2_async_notifier *notifier,
 
 static void rzg2l_csi2_notify_unbind(struct v4l2_async_notifier *notifier,
                                     struct v4l2_subdev *subdev,
-                                    struct v4l2_async_subdev *asd)
+                                    struct v4l2_async_connection *asd)
 {
        struct rzg2l_csi2 *csi2 = notifier_to_csi2(notifier);
 
@@ -646,7 +646,7 @@ static int rzg2l_csi2_parse_dt(struct rzg2l_csi2 *csi2)
        struct v4l2_fwnode_endpoint v4l2_ep = {
                .bus_type = V4L2_MBUS_CSI2_DPHY
        };
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *fwnode;
        struct fwnode_handle *ep;
        int ret;
@@ -677,7 +677,7 @@ static int rzg2l_csi2_parse_dt(struct rzg2l_csi2 *csi2)
        csi2->notifier.ops = &rzg2l_csi2_notify_ops;
 
        asd = v4l2_async_nf_add_fwnode(&csi2->notifier, fwnode,
-                                      struct v4l2_async_subdev);
+                                      struct v4l2_async_connection);
        fwnode_handle_put(fwnode);
        if (IS_ERR(asd))
                return PTR_ERR(asd);
index a1293c4..d30f0ec 100644 (file)
@@ -148,7 +148,7 @@ struct rkisp1_info {
  * @port:              port number (0: MIPI, 1: Parallel)
  */
 struct rkisp1_sensor_async {
-       struct v4l2_async_subdev asd;
+       struct v4l2_async_connection asd;
        unsigned int index;
        struct fwnode_handle *source_ep;
        unsigned int lanes;
index 7a530bd..6b9bd97 100644 (file)
@@ -122,12 +122,12 @@ struct rkisp1_isr_data {
 
 static int rkisp1_subdev_notifier_bound(struct v4l2_async_notifier *notifier,
                                        struct v4l2_subdev *sd,
-                                       struct v4l2_async_subdev *asd)
+                                       struct v4l2_async_connection *asc)
 {
        struct rkisp1_device *rkisp1 =
                container_of(notifier, struct rkisp1_device, notifier);
        struct rkisp1_sensor_async *s_asd =
-               container_of(asd, struct rkisp1_sensor_async, asd);
+               container_of(asc, struct rkisp1_sensor_async, asd);
        int source_pad;
        int ret;
 
@@ -165,10 +165,10 @@ static int rkisp1_subdev_notifier_complete(struct v4l2_async_notifier *notifier)
        return v4l2_device_register_subdev_nodes(&rkisp1->v4l2_dev);
 }
 
-static void rkisp1_subdev_notifier_destroy(struct v4l2_async_subdev *asd)
+static void rkisp1_subdev_notifier_destroy(struct v4l2_async_connection *asc)
 {
        struct rkisp1_sensor_async *rk_asd =
-               container_of(asd, struct rkisp1_sensor_async, asd);
+               container_of(asc, struct rkisp1_sensor_async, asd);
 
        fwnode_handle_put(rk_asd->source_ep);
 }
index d172581..cb9a22b 100644 (file)
@@ -400,7 +400,7 @@ static int fimc_md_parse_one_endpoint(struct fimc_md *fmd,
        int index = fmd->num_sensors;
        struct fimc_source_info *pd = &fmd->sensor[index].pdata;
        struct device_node *rem, *np;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct v4l2_fwnode_endpoint endpoint = { .bus_type = 0 };
        int ret;
 
@@ -465,7 +465,7 @@ static int fimc_md_parse_one_endpoint(struct fimc_md *fmd,
 
        asd = v4l2_async_nf_add_fwnode_remote(&fmd->subdev_notifier,
                                              of_fwnode_handle(ep),
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
 
        of_node_put(ep);
 
@@ -1371,7 +1371,7 @@ err:
 
 static int subdev_notifier_bound(struct v4l2_async_notifier *notifier,
                                 struct v4l2_subdev *subdev,
-                                struct v4l2_async_subdev *asd)
+                                struct v4l2_async_connection *asd)
 {
        struct fimc_md *fmd = notifier_to_fimc_md(notifier);
        struct fimc_sensor_info *si = NULL;
index 079105d..786264c 100644 (file)
@@ -82,7 +82,7 @@ struct fimc_camclk_info {
  */
 struct fimc_sensor_info {
        struct fimc_source_info pdata;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct v4l2_subdev *subdev;
        struct fimc_dev *host;
 };
index b2e2af5..b029efa 100644 (file)
@@ -1837,7 +1837,7 @@ static int dcmi_graph_notify_complete(struct v4l2_async_notifier *notifier)
 
 static void dcmi_graph_notify_unbind(struct v4l2_async_notifier *notifier,
                                     struct v4l2_subdev *sd,
-                                    struct v4l2_async_subdev *asd)
+                                    struct v4l2_async_connection *asd)
 {
        struct stm32_dcmi *dcmi = notifier_to_dcmi(notifier);
 
@@ -1849,7 +1849,7 @@ static void dcmi_graph_notify_unbind(struct v4l2_async_notifier *notifier,
 
 static int dcmi_graph_notify_bound(struct v4l2_async_notifier *notifier,
                                   struct v4l2_subdev *subdev,
-                                  struct v4l2_async_subdev *asd)
+                                  struct v4l2_async_connection *asd)
 {
        struct stm32_dcmi *dcmi = notifier_to_dcmi(notifier);
        unsigned int ret;
@@ -1887,7 +1887,7 @@ static const struct v4l2_async_notifier_operations dcmi_graph_notify_ops = {
 
 static int dcmi_graph_init(struct stm32_dcmi *dcmi)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct device_node *ep;
        int ret;
 
@@ -1901,7 +1901,7 @@ static int dcmi_graph_init(struct stm32_dcmi *dcmi)
 
        asd = v4l2_async_nf_add_fwnode_remote(&dcmi->notifier,
                                              of_fwnode_handle(ep),
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
 
        of_node_put(ep);
 
index ea5e98a..3b6e907 100644 (file)
@@ -41,7 +41,7 @@ static const struct media_entity_operations sun4i_csi_video_entity_ops = {
 
 static int sun4i_csi_notify_bound(struct v4l2_async_notifier *notifier,
                                  struct v4l2_subdev *subdev,
-                                 struct v4l2_async_subdev *asd)
+                                 struct v4l2_async_connection *asd)
 {
        struct sun4i_csi *csi = container_of(notifier, struct sun4i_csi,
                                             notifier);
@@ -117,7 +117,7 @@ static int sun4i_csi_notifier_init(struct sun4i_csi *csi)
        struct v4l2_fwnode_endpoint vep = {
                .bus_type = V4L2_MBUS_PARALLEL,
        };
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *ep;
        int ret;
 
@@ -135,7 +135,7 @@ static int sun4i_csi_notifier_init(struct sun4i_csi *csi)
        csi->bus = vep.bus.parallel;
 
        asd = v4l2_async_nf_add_fwnode_remote(&csi->notifier, ep,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        if (IS_ERR(asd)) {
                ret = PTR_ERR(asd);
                goto out;
index 4db9509..ebb725f 100644 (file)
@@ -642,7 +642,7 @@ static int sun6i_csi_bridge_link(struct sun6i_csi_device *csi_dev,
 static int
 sun6i_csi_bridge_notifier_bound(struct v4l2_async_notifier *notifier,
                                struct v4l2_subdev *remote_subdev,
-                               struct v4l2_async_subdev *async_subdev)
+                               struct v4l2_async_connection *async_subdev)
 {
        struct sun6i_csi_device *csi_dev =
                container_of(notifier, struct sun6i_csi_device,
index ee592a1..44653b3 100644 (file)
@@ -34,7 +34,7 @@ struct sun6i_csi_bridge_source {
 };
 
 struct sun6i_csi_bridge_async_subdev {
-       struct v4l2_async_subdev        async_subdev;
+       struct v4l2_async_connection    async_subdev;
        struct sun6i_csi_bridge_source  *source;
 };
 
index 0b8da0d..82da38e 100644 (file)
@@ -407,7 +407,7 @@ static const struct media_entity_operations sun6i_mipi_csi2_entity_ops = {
 static int
 sun6i_mipi_csi2_notifier_bound(struct v4l2_async_notifier *notifier,
                               struct v4l2_subdev *remote_subdev,
-                              struct v4l2_async_subdev *async_subdev)
+                              struct v4l2_async_connection *async_subdev)
 {
        struct v4l2_subdev *subdev = notifier->sd;
        struct sun6i_mipi_csi2_device *csi2_dev =
@@ -461,7 +461,7 @@ sun6i_mipi_csi2_bridge_source_setup(struct sun6i_mipi_csi2_device *csi2_dev)
 {
        struct v4l2_async_notifier *notifier = &csi2_dev->bridge.notifier;
        struct v4l2_fwnode_endpoint *endpoint = &csi2_dev->bridge.endpoint;
-       struct v4l2_async_subdev *subdev_async;
+       struct v4l2_async_connection *subdev_async;
        struct fwnode_handle *handle;
        struct device *dev = csi2_dev->dev;
        int ret;
@@ -479,7 +479,7 @@ sun6i_mipi_csi2_bridge_source_setup(struct sun6i_mipi_csi2_device *csi2_dev)
 
        subdev_async =
                v4l2_async_nf_add_fwnode_remote(notifier, handle,
-                                               struct v4l2_async_subdev);
+                                               struct v4l2_async_connection);
        if (IS_ERR(subdev_async))
                ret = PTR_ERR(subdev_async);
 
index 47acadd..b96b8fa 100644 (file)
@@ -444,7 +444,7 @@ static const struct media_entity_operations sun8i_a83t_mipi_csi2_entity_ops = {
 static int
 sun8i_a83t_mipi_csi2_notifier_bound(struct v4l2_async_notifier *notifier,
                                    struct v4l2_subdev *remote_subdev,
-                                   struct v4l2_async_subdev *async_subdev)
+                                   struct v4l2_async_connection *async_subdev)
 {
        struct v4l2_subdev *subdev = notifier->sd;
        struct sun8i_a83t_mipi_csi2_device *csi2_dev =
@@ -498,7 +498,7 @@ sun8i_a83t_mipi_csi2_bridge_source_setup(struct sun8i_a83t_mipi_csi2_device *csi
 {
        struct v4l2_async_notifier *notifier = &csi2_dev->bridge.notifier;
        struct v4l2_fwnode_endpoint *endpoint = &csi2_dev->bridge.endpoint;
-       struct v4l2_async_subdev *subdev_async;
+       struct v4l2_async_connection *subdev_async;
        struct fwnode_handle *handle;
        struct device *dev = csi2_dev->dev;
        int ret;
@@ -516,7 +516,7 @@ sun8i_a83t_mipi_csi2_bridge_source_setup(struct sun8i_a83t_mipi_csi2_device *csi
 
        subdev_async =
                v4l2_async_nf_add_fwnode_remote(notifier, handle,
-                                               struct v4l2_async_subdev);
+                                               struct v4l2_async_connection);
        if (IS_ERR(subdev_async))
                ret = PTR_ERR(subdev_async);
 
index 81a63a3..d00be75 100644 (file)
@@ -2144,7 +2144,7 @@ static const struct v4l2_ioctl_ops vpfe_ioctl_ops = {
 static int
 vpfe_async_bound(struct v4l2_async_notifier *notifier,
                 struct v4l2_subdev *subdev,
-                struct v4l2_async_subdev *asd)
+                struct v4l2_async_connection *asd)
 {
        struct vpfe_device *vpfe = container_of(notifier->v4l2_dev,
                                               struct vpfe_device, v4l2_dev);
@@ -2370,8 +2370,7 @@ vpfe_get_pdata(struct vpfe_device *vpfe)
 
                pdata->asd[i] = v4l2_async_nf_add_fwnode(&vpfe->notifier,
                                                         of_fwnode_handle(rem),
-                                                        struct
-                                                        v4l2_async_subdev);
+                                                        struct v4l2_async_connection);
                of_node_put(rem);
                if (IS_ERR(pdata->asd[i]))
                        goto cleanup;
index f8b4e91..50c3c79 100644 (file)
@@ -84,7 +84,7 @@ struct vpfe_config {
        /* information about each subdev */
        struct vpfe_subdev_info sub_devs[VPFE_MAX_SUBDEV];
        /* Flat array, arranged in groups */
-       struct v4l2_async_subdev *asd[VPFE_MAX_SUBDEV];
+       struct v4l2_async_connection *asd[VPFE_MAX_SUBDEV];
 };
 
 struct vpfe_cap_buffer {
index 5d49c44..7cd5062 100644 (file)
@@ -774,19 +774,19 @@ static irqreturn_t cal_irq(int irq_cal, void *data)
  */
 
 struct cal_v4l2_async_subdev {
-       struct v4l2_async_subdev asd; /* Must be first */
+       struct v4l2_async_connection asd; /* Must be first */
        struct cal_camerarx *phy;
 };
 
 static inline struct cal_v4l2_async_subdev *
-to_cal_asd(struct v4l2_async_subdev *asd)
+to_cal_asd(struct v4l2_async_connection *asd)
 {
        return container_of(asd, struct cal_v4l2_async_subdev, asd);
 }
 
 static int cal_async_notifier_bound(struct v4l2_async_notifier *notifier,
                                    struct v4l2_subdev *subdev,
-                                   struct v4l2_async_subdev *asd)
+                                   struct v4l2_async_connection *asd)
 {
        struct cal_camerarx *phy = to_cal_asd(asd)->phy;
        int pad;
index 44d269d..a63c9e5 100644 (file)
@@ -1363,12 +1363,12 @@ static inline void free_vpif_objs(void)
 
 static int vpif_async_bound(struct v4l2_async_notifier *notifier,
                            struct v4l2_subdev *subdev,
-                           struct v4l2_async_subdev *asd)
+                           struct v4l2_async_connection *asd)
 {
        int i;
 
        for (i = 0; i < vpif_obj.config->asd_sizes[0]; i++) {
-               struct v4l2_async_subdev *_asd = vpif_obj.config->asd[i];
+               struct v4l2_async_connection *_asd = vpif_obj.config->asd[i];
                const struct fwnode_handle *fwnode = _asd->match.fwnode;
 
                if (fwnode == subdev->fwnode) {
@@ -1570,8 +1570,7 @@ vpif_capture_get_pdata(struct platform_device *pdev)
 
                pdata->asd[i] = v4l2_async_nf_add_fwnode(&vpif_obj.notifier,
                                                         of_fwnode_handle(rem),
-                                                        struct
-                                                        v4l2_async_subdev);
+                                                        struct v4l2_async_connection);
                if (IS_ERR(pdata->asd[i]))
                        goto err_cleanup;
 
index b01d70d..84ac5b7 100644 (file)
@@ -2024,12 +2024,12 @@ enum isp_of_phy {
 
 static int isp_subdev_notifier_bound(struct v4l2_async_notifier *async,
                                     struct v4l2_subdev *sd,
-                                    struct v4l2_async_subdev *asd)
+                                    struct v4l2_async_connection *asc)
 {
        struct isp_device *isp = container_of(async, struct isp_device,
                                              notifier);
        struct isp_bus_cfg *bus_cfg =
-               &container_of(asd, struct isp_async_subdev, asd)->bus;
+               &container_of(asc, struct isp_async_subdev, asd)->bus;
        int ret;
 
        mutex_lock(&isp->media_dev.graph_mutex);
index a9d760f..32ea70c 100644 (file)
@@ -220,7 +220,7 @@ struct isp_device {
 };
 
 struct isp_async_subdev {
-       struct v4l2_async_subdev asd;
+       struct v4l2_async_connection asd;
        struct isp_bus_cfg bus;
 };
 
index 6d273ab..6cc0dde 100644 (file)
@@ -314,7 +314,7 @@ static const struct v4l2_subdev_ops video_mux_subdev_ops = {
 
 static int video_mux_notify_bound(struct v4l2_async_notifier *notifier,
                                  struct v4l2_subdev *sd,
-                                 struct v4l2_async_subdev *asd)
+                                 struct v4l2_async_connection *asd)
 {
        struct video_mux *vmux = notifier_to_video_mux(notifier);
 
@@ -334,7 +334,7 @@ static int video_mux_async_register(struct video_mux *vmux,
        v4l2_async_nf_init(&vmux->notifier);
 
        for (i = 0; i < num_input_pads; i++) {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asd;
                struct fwnode_handle *ep, *remote_ep;
 
                ep = fwnode_graph_get_endpoint_by_id(
@@ -352,7 +352,7 @@ static int video_mux_async_register(struct video_mux *vmux,
                fwnode_handle_put(remote_ep);
 
                asd = v4l2_async_nf_add_fwnode_remote(&vmux->notifier, ep,
-                                                     struct v4l2_async_subdev);
+                                                     struct v4l2_async_connection);
 
                fwnode_handle_put(ep);
 
index 52c5a7d..96fbbc5 100644 (file)
  * @subdev: V4L2 subdev
  */
 struct xvip_graph_entity {
-       struct v4l2_async_subdev asd; /* must be first */
+       struct v4l2_async_connection asd; /* must be first */
        struct media_entity *entity;
        struct v4l2_subdev *subdev;
 };
 
 static inline struct xvip_graph_entity *
-to_xvip_entity(struct v4l2_async_subdev *asd)
+to_xvip_entity(struct v4l2_async_connection *asd)
 {
        return container_of(asd, struct xvip_graph_entity, asd);
 }
@@ -54,9 +54,9 @@ xvip_graph_find_entity(struct xvip_composite_device *xdev,
                       const struct fwnode_handle *fwnode)
 {
        struct xvip_graph_entity *entity;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
 
-       list_for_each_entry(asd, &xdev->notifier.asd_list, asd_entry) {
+       list_for_each_entry(asd, &xdev->notifier.asc_list, asc_entry) {
                entity = to_xvip_entity(asd);
                if (entity->asd.match.fwnode == fwnode)
                        return entity;
@@ -285,13 +285,13 @@ static int xvip_graph_notify_complete(struct v4l2_async_notifier *notifier)
        struct xvip_composite_device *xdev =
                container_of(notifier, struct xvip_composite_device, notifier);
        struct xvip_graph_entity *entity;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        int ret;
 
        dev_dbg(xdev->dev, "notify complete, all subdevs registered\n");
 
        /* Create links for every entity. */
-       list_for_each_entry(asd, &xdev->notifier.asd_list, asd_entry) {
+       list_for_each_entry(asd, &xdev->notifier.asc_list, asc_entry) {
                entity = to_xvip_entity(asd);
                ret = xvip_graph_build_one(xdev, entity);
                if (ret < 0)
@@ -312,9 +312,9 @@ static int xvip_graph_notify_complete(struct v4l2_async_notifier *notifier)
 
 static int xvip_graph_notify_bound(struct v4l2_async_notifier *notifier,
                                   struct v4l2_subdev *subdev,
-                                  struct v4l2_async_subdev *asd)
+                                  struct v4l2_async_connection *asc)
 {
-       struct xvip_graph_entity *entity = to_xvip_entity(asd);
+       struct xvip_graph_entity *entity = to_xvip_entity(asc);
 
        entity->entity = &subdev->entity;
        entity->subdev = subdev;
@@ -380,7 +380,7 @@ err_notifier_cleanup:
 static int xvip_graph_parse(struct xvip_composite_device *xdev)
 {
        struct xvip_graph_entity *entity;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        int ret;
 
        /*
@@ -393,7 +393,7 @@ static int xvip_graph_parse(struct xvip_composite_device *xdev)
        if (ret < 0)
                return 0;
 
-       list_for_each_entry(asd, &xdev->notifier.asd_list, asd_entry) {
+       list_for_each_entry(asd, &xdev->notifier.asc_list, asc_entry) {
                entity = to_xvip_entity(asd);
                ret = xvip_graph_parse_one(xdev, entity->asd.match.fwnode);
                if (ret < 0) {
@@ -501,7 +501,7 @@ static int xvip_graph_init(struct xvip_composite_device *xdev)
                goto done;
        }
 
-       if (list_empty(&xdev->notifier.asd_list)) {
+       if (list_empty(&xdev->notifier.asc_list)) {
                dev_err(xdev->dev, "no subdev found in graph\n");
                ret = -ENOENT;
                goto done;
index 11d336e..9964d7f 100644 (file)
 
 static int v4l2_async_nf_call_bound(struct v4l2_async_notifier *n,
                                    struct v4l2_subdev *subdev,
-                                   struct v4l2_async_subdev *asd)
+                                   struct v4l2_async_connection *asc)
 {
        if (!n->ops || !n->ops->bound)
                return 0;
 
-       return n->ops->bound(n, subdev, asd);
+       return n->ops->bound(n, subdev, asc);
 }
 
 static void v4l2_async_nf_call_unbind(struct v4l2_async_notifier *n,
                                      struct v4l2_subdev *subdev,
-                                     struct v4l2_async_subdev *asd)
+                                     struct v4l2_async_connection *asc)
 {
        if (!n->ops || !n->ops->unbind)
                return;
 
-       n->ops->unbind(n, subdev, asd);
+       n->ops->unbind(n, subdev, asc);
 }
 
 static int v4l2_async_nf_call_complete(struct v4l2_async_notifier *n)
@@ -55,12 +55,12 @@ static int v4l2_async_nf_call_complete(struct v4l2_async_notifier *n)
 }
 
 static void v4l2_async_nf_call_destroy(struct v4l2_async_notifier *n,
-                                      struct v4l2_async_subdev *asd)
+                                      struct v4l2_async_connection *asc)
 {
        if (!n->ops || !n->ops->destroy)
                return;
 
-       n->ops->destroy(asd);
+       n->ops->destroy(asc);
 }
 
 static bool match_i2c(struct v4l2_async_notifier *notifier,
@@ -151,18 +151,18 @@ static LIST_HEAD(subdev_list);
 static LIST_HEAD(notifier_list);
 static DEFINE_MUTEX(list_lock);
 
-static struct v4l2_async_subdev *
+static struct v4l2_async_connection *
 v4l2_async_find_match(struct v4l2_async_notifier *notifier,
                      struct v4l2_subdev *sd)
 {
        bool (*match)(struct v4l2_async_notifier *notifier,
                      struct v4l2_subdev *sd,
                      struct v4l2_async_match_desc *match);
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
 
-       list_for_each_entry(asd, &notifier->waiting_list, waiting_entry) {
+       list_for_each_entry(asc, &notifier->waiting_list, waiting_entry) {
                /* bus_type has been verified valid before */
-               switch (asd->match.type) {
+               switch (asc->match.type) {
                case V4L2_ASYNC_MATCH_TYPE_I2C:
                        match = match_i2c;
                        break;
@@ -176,8 +176,8 @@ v4l2_async_find_match(struct v4l2_async_notifier *notifier,
                }
 
                /* match cannot be NULL here */
-               if (match(notifier, sd, &asd->match))
-                       return asd;
+               if (match(notifier, sd, &asc->match))
+                       return asc;
        }
 
        return NULL;
@@ -310,7 +310,7 @@ static int v4l2_async_create_ancillary_links(struct v4l2_async_notifier *n,
 static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier,
                                   struct v4l2_device *v4l2_dev,
                                   struct v4l2_subdev *sd,
-                                  struct v4l2_async_subdev *asd)
+                                  struct v4l2_async_connection *asc)
 {
        struct v4l2_async_notifier *subdev_notifier;
        int ret;
@@ -319,7 +319,7 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier,
        if (ret < 0)
                return ret;
 
-       ret = v4l2_async_nf_call_bound(notifier, sd, asd);
+       ret = v4l2_async_nf_call_bound(notifier, sd, asc);
        if (ret < 0) {
                v4l2_device_unregister_subdev(sd);
                return ret;
@@ -333,13 +333,13 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier,
         */
        ret = v4l2_async_create_ancillary_links(notifier, sd);
        if (ret) {
-               v4l2_async_nf_call_unbind(notifier, sd, asd);
+               v4l2_async_nf_call_unbind(notifier, sd, asc);
                v4l2_device_unregister_subdev(sd);
                return ret;
        }
 
-       list_del(&asd->waiting_entry);
-       sd->asd = asd;
+       list_del(&asc->waiting_entry);
+       sd->asd = asc;
        sd->notifier = notifier;
 
        /* Move from the global subdevice list to notifier's done */
@@ -380,17 +380,17 @@ v4l2_async_nf_try_all_subdevs(struct v4l2_async_notifier *notifier)
 
 again:
        list_for_each_entry(sd, &subdev_list, async_list) {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asc;
                int ret;
 
-               asd = v4l2_async_find_match(notifier, sd);
-               if (!asd)
+               asc = v4l2_async_find_match(notifier, sd);
+               if (!asc)
                        continue;
 
                dev_dbg(notifier_dev(notifier),
                        "v4l2-async: match found, subdev %s\n", sd->name);
 
-               ret = v4l2_async_match_notify(notifier, v4l2_dev, sd, asd);
+               ret = v4l2_async_match_notify(notifier, v4l2_dev, sd, asc);
                if (ret < 0)
                        return ret;
 
@@ -448,11 +448,11 @@ static bool
 v4l2_async_nf_has_async_match_entry(struct v4l2_async_notifier *notifier,
                                    struct v4l2_async_match_desc *match)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
        struct v4l2_subdev *sd;
 
-       list_for_each_entry(asd, &notifier->waiting_list, waiting_entry)
-               if (v4l2_async_match_equal(&asd->match, match))
+       list_for_each_entry(asc, &notifier->waiting_list, waiting_entry)
+               if (v4l2_async_match_equal(&asc->match, match))
                        return true;
 
        list_for_each_entry(sd, &notifier->done_list, async_list) {
@@ -477,19 +477,19 @@ v4l2_async_nf_has_async_match(struct v4l2_async_notifier *notifier,
                              struct v4l2_async_match_desc *match,
                              bool skip_self)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
 
        lockdep_assert_held(&list_lock);
 
        /* Check that an asd is not being added more than once. */
-       list_for_each_entry(asd, &notifier->asd_list, asd_entry) {
-               if (skip_self && &asd->match == match)
+       list_for_each_entry(asc, &notifier->asc_list, asc_entry) {
+               if (skip_self && &asc->match == match)
                        continue;
-               if (v4l2_async_match_equal(&asd->match, match))
+               if (v4l2_async_match_equal(&asc->match, match))
                        return true;
        }
 
-       /* Check that an asd does not exist in other notifiers. */
+       /* Check that an asc does not exist in other notifiers. */
        list_for_each_entry(notifier, &notifier_list, notifier_entry)
                if (v4l2_async_nf_has_async_match_entry(notifier, match))
                        return true;
@@ -523,13 +523,13 @@ static int v4l2_async_nf_match_valid(struct v4l2_async_notifier *notifier,
 
 void v4l2_async_nf_init(struct v4l2_async_notifier *notifier)
 {
-       INIT_LIST_HEAD(&notifier->asd_list);
+       INIT_LIST_HEAD(&notifier->asc_list);
 }
 EXPORT_SYMBOL(v4l2_async_nf_init);
 
 static int __v4l2_async_nf_register(struct v4l2_async_notifier *notifier)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
        int ret;
 
        INIT_LIST_HEAD(&notifier->waiting_list);
@@ -537,12 +537,12 @@ static int __v4l2_async_nf_register(struct v4l2_async_notifier *notifier)
 
        mutex_lock(&list_lock);
 
-       list_for_each_entry(asd, &notifier->asd_list, asd_entry) {
-               ret = v4l2_async_nf_match_valid(notifier, &asd->match, true);
+       list_for_each_entry(asc, &notifier->asc_list, asc_entry) {
+               ret = v4l2_async_nf_match_valid(notifier, &asc->match, true);
                if (ret)
                        goto err_unlock;
 
-               list_add_tail(&asd->waiting_entry, &notifier->waiting_list);
+               list_add_tail(&asc->waiting_entry, &notifier->waiting_list);
        }
 
        ret = v4l2_async_nf_try_all_subdevs(notifier);
@@ -634,23 +634,23 @@ EXPORT_SYMBOL(v4l2_async_nf_unregister);
 
 static void __v4l2_async_nf_cleanup(struct v4l2_async_notifier *notifier)
 {
-       struct v4l2_async_subdev *asd, *tmp;
+       struct v4l2_async_connection *asc, *tmp;
 
-       if (!notifier || !notifier->asd_list.next)
+       if (!notifier || !notifier->asc_list.next)
                return;
 
-       list_for_each_entry_safe(asd, tmp, &notifier->asd_list, asd_entry) {
-               switch (asd->match.type) {
+       list_for_each_entry_safe(asc, tmp, &notifier->asc_list, asc_entry) {
+               switch (asc->match.type) {
                case V4L2_ASYNC_MATCH_TYPE_FWNODE:
-                       fwnode_handle_put(asd->match.fwnode);
+                       fwnode_handle_put(asc->match.fwnode);
                        break;
                default:
                        break;
                }
 
-               list_del(&asd->asd_entry);
-               v4l2_async_nf_call_destroy(notifier, asd);
-               kfree(asd);
+               list_del(&asc->asc_entry);
+               v4l2_async_nf_call_destroy(notifier, asc);
+               kfree(asc);
        }
 }
 
@@ -664,95 +664,94 @@ void v4l2_async_nf_cleanup(struct v4l2_async_notifier *notifier)
 }
 EXPORT_SYMBOL_GPL(v4l2_async_nf_cleanup);
 
-
-static int __v4l2_async_nf_add_subdev(struct v4l2_async_notifier *notifier,
-                                     struct v4l2_async_subdev *asd)
+static int __v4l2_async_nf_add_connection(struct v4l2_async_notifier *notifier,
+                                         struct v4l2_async_connection *asc)
 {
        int ret;
 
        mutex_lock(&list_lock);
 
-       ret = v4l2_async_nf_match_valid(notifier, &asd->match, false);
+       ret = v4l2_async_nf_match_valid(notifier, &asc->match, false);
        if (ret)
                goto unlock;
 
-       list_add_tail(&asd->asd_entry, &notifier->asd_list);
+       list_add_tail(&asc->asc_entry, &notifier->asc_list);
 
 unlock:
        mutex_unlock(&list_lock);
        return ret;
 }
 
-struct v4l2_async_subdev *
+struct v4l2_async_connection *
 __v4l2_async_nf_add_fwnode(struct v4l2_async_notifier *notifier,
                           struct fwnode_handle *fwnode,
-                          unsigned int asd_struct_size)
+                          unsigned int asc_struct_size)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
        int ret;
 
-       asd = kzalloc(asd_struct_size, GFP_KERNEL);
-       if (!asd)
+       asc = kzalloc(asc_struct_size, GFP_KERNEL);
+       if (!asc)
                return ERR_PTR(-ENOMEM);
 
-       asd->match.type = V4L2_ASYNC_MATCH_TYPE_FWNODE;
-       asd->match.fwnode = fwnode_handle_get(fwnode);
+       asc->match.type = V4L2_ASYNC_MATCH_TYPE_FWNODE;
+       asc->match.fwnode = fwnode_handle_get(fwnode);
 
-       ret = __v4l2_async_nf_add_subdev(notifier, asd);
+       ret = __v4l2_async_nf_add_connection(notifier, asc);
        if (ret) {
                fwnode_handle_put(fwnode);
-               kfree(asd);
+               kfree(asc);
                return ERR_PTR(ret);
        }
 
-       return asd;
+       return asc;
 }
 EXPORT_SYMBOL_GPL(__v4l2_async_nf_add_fwnode);
 
-struct v4l2_async_subdev *
+struct v4l2_async_connection *
 __v4l2_async_nf_add_fwnode_remote(struct v4l2_async_notifier *notif,
                                  struct fwnode_handle *endpoint,
-                                 unsigned int asd_struct_size)
+                                 unsigned int asc_struct_size)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
        struct fwnode_handle *remote;
 
        remote = fwnode_graph_get_remote_endpoint(endpoint);
        if (!remote)
                return ERR_PTR(-ENOTCONN);
 
-       asd = __v4l2_async_nf_add_fwnode(notif, remote, asd_struct_size);
+       asc = __v4l2_async_nf_add_fwnode(notif, remote, asc_struct_size);
        /*
         * Calling __v4l2_async_nf_add_fwnode grabs a refcount,
         * so drop the one we got in fwnode_graph_get_remote_port_parent.
         */
        fwnode_handle_put(remote);
-       return asd;
+       return asc;
 }
 EXPORT_SYMBOL_GPL(__v4l2_async_nf_add_fwnode_remote);
 
-struct v4l2_async_subdev *
+struct v4l2_async_connection *
 __v4l2_async_nf_add_i2c(struct v4l2_async_notifier *notifier, int adapter_id,
-                       unsigned short address, unsigned int asd_struct_size)
+                       unsigned short address, unsigned int asc_struct_size)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
        int ret;
 
-       asd = kzalloc(asd_struct_size, GFP_KERNEL);
-       if (!asd)
+       asc = kzalloc(asc_struct_size, GFP_KERNEL);
+       if (!asc)
                return ERR_PTR(-ENOMEM);
 
-       asd->match.type = V4L2_ASYNC_MATCH_TYPE_I2C;
-       asd->match.i2c.adapter_id = adapter_id;
-       asd->match.i2c.address = address;
+       asc->match.type = V4L2_ASYNC_MATCH_TYPE_I2C;
+       asc->match.i2c.adapter_id = adapter_id;
+       asc->match.i2c.address = address;
 
-       ret = __v4l2_async_nf_add_subdev(notifier, asd);
+       ret = __v4l2_async_nf_add_connection(notifier, asc);
        if (ret) {
-               kfree(asd);
+               kfree(asc);
                return ERR_PTR(ret);
        }
 
-       return asd;
+       return asc;
 }
 EXPORT_SYMBOL_GPL(__v4l2_async_nf_add_i2c);
 
@@ -784,16 +783,16 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd)
        list_for_each_entry(notifier, &notifier_list, notifier_entry) {
                struct v4l2_device *v4l2_dev =
                        v4l2_async_nf_find_v4l2_dev(notifier);
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asc;
 
                if (!v4l2_dev)
                        continue;
 
-               asd = v4l2_async_find_match(notifier, sd);
-               if (!asd)
+               asc = v4l2_async_find_match(notifier, sd);
+               if (!asc)
                        continue;
 
-               ret = v4l2_async_match_notify(notifier, v4l2_dev, sd, asd);
+               ret = v4l2_async_match_notify(notifier, v4l2_dev, sd, asc);
                if (ret)
                        goto err_unbind;
 
@@ -898,14 +897,14 @@ v4l2_async_nf_name(struct v4l2_async_notifier *notifier)
 static int pending_subdevs_show(struct seq_file *s, void *data)
 {
        struct v4l2_async_notifier *notif;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asc;
 
        mutex_lock(&list_lock);
 
        list_for_each_entry(notif, &notifier_list, notifier_entry) {
                seq_printf(s, "%s:\n", v4l2_async_nf_name(notif));
-               list_for_each_entry(asd, &notif->waiting_list, waiting_entry)
-                       print_waiting_match(s, &asd->match);
+               list_for_each_entry(asc, &notif->waiting_list, waiting_entry)
+                       print_waiting_match(s, &asc->match);
        }
 
        mutex_unlock(&list_lock);
index d818f88..f30f98b 100644 (file)
@@ -831,10 +831,10 @@ static int v4l2_fwnode_reference_parse(struct device *dev,
             !(ret = fwnode_property_get_reference_args(dev_fwnode(dev), prop,
                                                        NULL, 0, index, &args));
             index++) {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asd;
 
                asd = v4l2_async_nf_add_fwnode(notifier, args.fwnode,
-                                              struct v4l2_async_subdev);
+                                              struct v4l2_async_connection);
                fwnode_handle_put(args.fwnode);
                if (IS_ERR(asd)) {
                        /* not an error if asd already exists */
@@ -1136,10 +1136,10 @@ v4l2_fwnode_reference_parse_int_props(struct device *dev,
                                                                  props,
                                                                  nprops)));
             index++) {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asd;
 
                asd = v4l2_async_nf_add_fwnode(notifier, fwnode,
-                                              struct v4l2_async_subdev);
+                                              struct v4l2_async_connection);
                fwnode_handle_put(fwnode);
                if (IS_ERR(asd)) {
                        ret = PTR_ERR(asd);
index 0d12ba7..dbb0160 100644 (file)
@@ -767,7 +767,7 @@ err_free_bridge:
 /******* V4L2 sub-device asynchronous registration callbacks***********/
 
 struct sensor_async_subdev {
-       struct v4l2_async_subdev asd;
+       struct v4l2_async_connection asd;
        int port;
 };
 
@@ -777,7 +777,7 @@ struct sensor_async_subdev {
 /* .bound() notifier callback when a match is found */
 static int atomisp_notifier_bound(struct v4l2_async_notifier *notifier,
                                  struct v4l2_subdev *sd,
-                                 struct v4l2_async_subdev *asd)
+                                 struct v4l2_async_connection *asd)
 {
        struct atomisp_device *isp = notifier_to_atomisp(notifier);
        struct sensor_async_subdev *s_asd = to_sensor_asd(asd);
@@ -799,7 +799,7 @@ static int atomisp_notifier_bound(struct v4l2_async_notifier *notifier,
 /* The .unbind callback */
 static void atomisp_notifier_unbind(struct v4l2_async_notifier *notifier,
                                    struct v4l2_subdev *sd,
-                                   struct v4l2_async_subdev *asd)
+                                   struct v4l2_async_connection *asd)
 {
        struct atomisp_device *isp = notifier_to_atomisp(notifier);
        struct sensor_async_subdev *s_asd = to_sensor_asd(asd);
index 61c5afa..f5d9639 100644 (file)
@@ -1727,7 +1727,7 @@ static int isc_ctrl_init(struct isc_device *isc)
 
 static int isc_async_bound(struct v4l2_async_notifier *notifier,
                            struct v4l2_subdev *subdev,
-                           struct v4l2_async_subdev *asd)
+                           struct v4l2_async_connection *asd)
 {
        struct isc_device *isc = container_of(notifier->v4l2_dev,
                                              struct isc_device, v4l2_dev);
@@ -1746,7 +1746,7 @@ static int isc_async_bound(struct v4l2_async_notifier *notifier,
 
 static void isc_async_unbind(struct v4l2_async_notifier *notifier,
                              struct v4l2_subdev *subdev,
-                             struct v4l2_async_subdev *asd)
+                             struct v4l2_async_connection *asd)
 {
        struct isc_device *isc = container_of(notifier->v4l2_dev,
                                              struct isc_device, v4l2_dev);
index dfc030b..31767ea 100644 (file)
@@ -44,7 +44,7 @@ struct isc_buffer {
 
 struct isc_subdev_entity {
        struct v4l2_subdev              *sd;
-       struct v4l2_async_subdev        *asd;
+       struct v4l2_async_connection    *asd;
        struct device_node              *epn;
        struct v4l2_async_notifier      notifier;
 
index cc86ebc..58c8c78 100644 (file)
@@ -503,7 +503,7 @@ static int atmel_isc_probe(struct platform_device *pdev)
        }
 
        list_for_each_entry(subdev_entity, &isc->subdev_entities, list) {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asd;
                struct fwnode_handle *fwnode =
                        of_fwnode_handle(subdev_entity->epn);
 
@@ -511,7 +511,7 @@ static int atmel_isc_probe(struct platform_device *pdev)
 
                asd = v4l2_async_nf_add_fwnode_remote(&subdev_entity->notifier,
                                                      fwnode,
-                                                     struct v4l2_async_subdev);
+                                                     struct v4l2_async_connection);
 
                of_node_put(subdev_entity->epn);
                subdev_entity->epn = NULL;
index 68ef337..f10ddee 100644 (file)
@@ -493,7 +493,7 @@ static int microchip_xisc_probe(struct platform_device *pdev)
        }
 
        list_for_each_entry(subdev_entity, &isc->subdev_entities, list) {
-               struct v4l2_async_subdev *asd;
+               struct v4l2_async_connection *asd;
                struct fwnode_handle *fwnode =
                        of_fwnode_handle(subdev_entity->epn);
 
@@ -501,7 +501,7 @@ static int microchip_xisc_probe(struct platform_device *pdev)
 
                asd = v4l2_async_nf_add_fwnode_remote(&subdev_entity->notifier,
                                                      fwnode,
-                                                     struct v4l2_async_subdev);
+                                                     struct v4l2_async_connection);
 
                of_node_put(subdev_entity->epn);
                subdev_entity->epn = NULL;
index 097171b..09b8b39 100644 (file)
@@ -1892,7 +1892,7 @@ static const struct v4l2_subdev_internal_ops csi_internal_ops = {
 
 static int imx_csi_notify_bound(struct v4l2_async_notifier *notifier,
                                struct v4l2_subdev *sd,
-                               struct v4l2_async_subdev *asd)
+                               struct v4l2_async_connection *asd)
 {
        struct csi_priv *priv = notifier_to_dev(notifier);
        struct media_pad *sink = &priv->sd.entity.pads[CSI_SINK_PAD];
@@ -1913,7 +1913,7 @@ static const struct v4l2_async_notifier_operations csi_notify_ops = {
 
 static int imx_csi_async_register(struct csi_priv *priv)
 {
-       struct v4l2_async_subdev *asd = NULL;
+       struct v4l2_async_connection *asd = NULL;
        struct fwnode_handle *ep;
        unsigned int port;
        int ret;
@@ -1930,7 +1930,7 @@ static int imx_csi_async_register(struct csi_priv *priv)
                                             FWNODE_GRAPH_ENDPOINT_NEXT);
        if (ep) {
                asd = v4l2_async_nf_add_fwnode_remote(&priv->notifier, ep,
-                                                     struct v4l2_async_subdev);
+                                                     struct v4l2_async_connection);
 
                fwnode_handle_put(ep);
 
index 991820a..c1216b4 100644 (file)
@@ -384,7 +384,7 @@ int imx_media_dev_notifier_register(struct imx_media_dev *imxmd,
        int ret;
 
        /* no subdevs? just bail */
-       if (list_empty(&imxmd->notifier.asd_list)) {
+       if (list_empty(&imxmd->notifier.asc_list)) {
                v4l2_err(&imxmd->v4l2_dev, "no subdevs\n");
                return -ENODEV;
        }
index c801139..be54dca 100644 (file)
@@ -20,7 +20,7 @@ static inline struct imx_media_dev *notifier2dev(struct v4l2_async_notifier *n)
 /* async subdev bound notifier */
 static int imx_media_subdev_bound(struct v4l2_async_notifier *notifier,
                                  struct v4l2_subdev *sd,
-                                 struct v4l2_async_subdev *asd)
+                                 struct v4l2_async_connection *asd)
 {
        struct imx_media_dev *imxmd = notifier2dev(notifier);
        int ret;
index 92a9901..118bff9 100644 (file)
@@ -19,7 +19,7 @@
 static int imx_media_of_add_csi(struct imx_media_dev *imxmd,
                                struct device_node *csi_np)
 {
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        int ret = 0;
 
        if (!of_device_is_available(csi_np)) {
@@ -31,7 +31,7 @@ static int imx_media_of_add_csi(struct imx_media_dev *imxmd,
        /* add CSI fwnode to async notifier */
        asd = v4l2_async_nf_add_fwnode(&imxmd->notifier,
                                       of_fwnode_handle(csi_np),
-                                      struct v4l2_async_subdev);
+                                      struct v4l2_async_connection);
        if (IS_ERR(asd)) {
                ret = PTR_ERR(asd);
                if (ret == -EEXIST)
index ab565b4..e3273c5 100644 (file)
@@ -636,7 +636,7 @@ static const struct v4l2_subdev_internal_ops csi2_internal_ops = {
 
 static int csi2_notify_bound(struct v4l2_async_notifier *notifier,
                             struct v4l2_subdev *sd,
-                            struct v4l2_async_subdev *asd)
+                            struct v4l2_async_connection *asd)
 {
        struct csi2_dev *csi2 = notifier_to_dev(notifier);
        struct media_pad *sink = &csi2->sd.entity.pads[CSI2_SINK_PAD];
@@ -659,7 +659,7 @@ static int csi2_notify_bound(struct v4l2_async_notifier *notifier,
 
 static void csi2_notify_unbind(struct v4l2_async_notifier *notifier,
                               struct v4l2_subdev *sd,
-                              struct v4l2_async_subdev *asd)
+                              struct v4l2_async_connection *asd)
 {
        struct csi2_dev *csi2 = notifier_to_dev(notifier);
 
@@ -676,7 +676,7 @@ static int csi2_async_register(struct csi2_dev *csi2)
        struct v4l2_fwnode_endpoint vep = {
                .bus_type = V4L2_MBUS_CSI2_DPHY,
        };
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct fwnode_handle *ep;
        int ret;
 
@@ -697,7 +697,7 @@ static int csi2_async_register(struct csi2_dev *csi2)
        dev_dbg(csi2->dev, "flags: 0x%08x\n", vep.bus.mipi_csi2.flags);
 
        asd = v4l2_async_nf_add_fwnode_remote(&csi2->notifier, ep,
-                                             struct v4l2_async_subdev);
+                                             struct v4l2_async_connection);
        fwnode_handle_put(ep);
 
        if (IS_ERR(asd))
index 1ca4673..dd7dfec 100644 (file)
@@ -395,7 +395,7 @@ static int sun6i_isp_proc_link(struct sun6i_isp_device *isp_dev,
 
 static int sun6i_isp_proc_notifier_bound(struct v4l2_async_notifier *notifier,
                                         struct v4l2_subdev *remote_subdev,
-                                        struct v4l2_async_subdev *async_subdev)
+                                        struct v4l2_async_connection *async_subdev)
 {
        struct sun6i_isp_device *isp_dev =
                container_of(notifier, struct sun6i_isp_device, proc.notifier);
index c5c274e..db6738a 100644 (file)
@@ -34,7 +34,7 @@ struct sun6i_isp_proc_source {
 };
 
 struct sun6i_isp_proc_async_subdev {
-       struct v4l2_async_subdev        async_subdev;
+       struct v4l2_async_connection    async_subdev;
        struct sun6i_isp_proc_source    *source;
 };
 
index 9c5b6cf..07e3eb8 100644 (file)
@@ -40,7 +40,7 @@
  * @subdev: V4L2 subdev
  */
 struct tegra_vi_graph_entity {
-       struct v4l2_async_subdev asd;
+       struct v4l2_async_connection asd;
        struct media_entity *entity;
        struct v4l2_subdev *subdev;
 };
@@ -58,7 +58,7 @@ to_tegra_channel_buffer(struct vb2_v4l2_buffer *vb)
 }
 
 static inline struct tegra_vi_graph_entity *
-to_tegra_vi_graph_entity(struct v4l2_async_subdev *asd)
+to_tegra_vi_graph_entity(struct v4l2_async_connection *asd)
 {
        return container_of(asd, struct tegra_vi_graph_entity, asd);
 }
@@ -1462,9 +1462,9 @@ tegra_vi_graph_find_entity(struct tegra_vi_channel *chan,
                           const struct fwnode_handle *fwnode)
 {
        struct tegra_vi_graph_entity *entity;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
 
-       list_for_each_entry(asd, &chan->notifier.asd_list, asd_entry) {
+       list_for_each_entry(asd, &chan->notifier.asc_list, asc_entry) {
                entity = to_tegra_vi_graph_entity(asd);
                if (entity->asd.match.fwnode == fwnode)
                        return entity;
@@ -1578,7 +1578,7 @@ create_link:
 static int tegra_vi_graph_notify_complete(struct v4l2_async_notifier *notifier)
 {
        struct tegra_vi_graph_entity *entity;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct v4l2_subdev *subdev;
        struct tegra_vi_channel *chan;
        struct tegra_vi *vi;
@@ -1608,7 +1608,7 @@ static int tegra_vi_graph_notify_complete(struct v4l2_async_notifier *notifier)
        }
 
        /* create links between the entities */
-       list_for_each_entry(asd, &chan->notifier.asd_list, asd_entry) {
+       list_for_each_entry(asd, &chan->notifier.asc_list, asc_entry) {
                entity = to_tegra_vi_graph_entity(asd);
                ret = tegra_vi_graph_build(chan, entity);
                if (ret < 0)
@@ -1651,7 +1651,7 @@ unregister_video:
 
 static int tegra_vi_graph_notify_bound(struct v4l2_async_notifier *notifier,
                                       struct v4l2_subdev *subdev,
-                                      struct v4l2_async_subdev *asd)
+                                      struct v4l2_async_connection *asd)
 {
        struct tegra_vi_graph_entity *entity;
        struct tegra_vi *vi;
@@ -1775,7 +1775,7 @@ static int tegra_vi_graph_init(struct tegra_vi *vi)
 
                ret = tegra_vi_graph_parse_one(chan, remote);
                fwnode_handle_put(remote);
-               if (ret < 0 || list_empty(&chan->notifier.asd_list))
+               if (ret < 0 || list_empty(&chan->notifier.asc_list))
                        continue;
 
                chan->notifier.ops = &tegra_vi_async_ops;
index d03e5c5..6cce1f0 100644 (file)
@@ -72,7 +72,7 @@ struct vpif_capture_config {
        int i2c_adapter_id;
        const char *card_name;
 
-       struct v4l2_async_subdev *asd[VPIF_CAPTURE_MAX_CHANNELS];
+       struct v4l2_async_connection *asd[VPIF_CAPTURE_MAX_CHANNELS];
        int asd_sizes[VPIF_CAPTURE_MAX_CHANNELS];
 };
 #endif /* _VPIF_TYPES_H */
index 03ac652..a27d9dc 100644 (file)
@@ -25,7 +25,7 @@ struct v4l2_async_notifier;
  * @V4L2_ASYNC_MATCH_TYPE_I2C: Match will check for I2C adapter ID and address
  * @V4L2_ASYNC_MATCH_TYPE_FWNODE: Match will use firmware node
  *
- * This enum is used by the asynchronous sub-device logic to define the
+ * This enum is used by the asynchronous connection logic to define the
  * algorithm that will be used to match an asynchronous device.
  */
 enum v4l2_async_match_type {
@@ -34,7 +34,7 @@ enum v4l2_async_match_type {
 };
 
 /**
- * struct v4l2_async_match_desc - async sub-device match information
+ * struct v4l2_async_match_desc - async connection match information
  *
  * @type:      type of match that will be used
  * @fwnode:    pointer to &struct fwnode_handle to be matched.
@@ -62,21 +62,21 @@ struct v4l2_async_match_desc {
 };
 
 /**
- * struct v4l2_async_subdev - sub-device descriptor, as known to a bridge
+ * struct v4l2_async_connection - connection descriptor, as known to a bridge
  *
  * @match:     struct of match type and per-bus type matching data sets
- * @asd_entry: used to add struct v4l2_async_subdev objects to the
- *             master notifier @asd_list
- * @waiting_entry: used to link struct v4l2_async_subdev objects, waiting to be
- *             probed, to a notifier->waiting_list list
+ * @asc_entry: used to add struct v4l2_async_connection objects to the
+ *             master notifier @asc_list
+ * @waiting_entry: used to link struct v4l2_async_connection objects, waiting to
+ *             be probed, to a notifier->waiting_list list
  *
  * When this struct is used as a member in a driver specific struct,
  * the driver specific struct shall contain the &struct
- * v4l2_async_subdev as its first member.
+ * v4l2_async_connection as its first member.
  */
-struct v4l2_async_subdev {
+struct v4l2_async_connection {
        struct v4l2_async_match_desc match;
-       struct list_head asd_entry;
+       struct list_head asc_entry;
        struct list_head waiting_entry;
 };
 
@@ -86,17 +86,17 @@ struct v4l2_async_subdev {
  * @complete:  All subdevices have been probed successfully. The complete
  *             callback is only executed for the root notifier.
  * @unbind:    a subdevice is leaving
- * @destroy:   the asd is about to be freed
+ * @destroy:   the asc is about to be freed
  */
 struct v4l2_async_notifier_operations {
        int (*bound)(struct v4l2_async_notifier *notifier,
                     struct v4l2_subdev *subdev,
-                    struct v4l2_async_subdev *asd);
+                    struct v4l2_async_connection *asc);
        int (*complete)(struct v4l2_async_notifier *notifier);
        void (*unbind)(struct v4l2_async_notifier *notifier,
                       struct v4l2_subdev *subdev,
-                      struct v4l2_async_subdev *asd);
-       void (*destroy)(struct v4l2_async_subdev *asd);
+                      struct v4l2_async_connection *asc);
+       void (*destroy)(struct v4l2_async_connection *asc);
 };
 
 /**
@@ -106,8 +106,9 @@ struct v4l2_async_notifier_operations {
  * @v4l2_dev:  v4l2_device of the root notifier, NULL otherwise
  * @sd:                sub-device that registered the notifier, NULL otherwise
  * @parent:    parent notifier
- * @asd_list:  master list of struct v4l2_async_subdev
- * @waiting_list: list of struct v4l2_async_subdev, waiting for their drivers
+ * @asc_list:  master list of struct v4l2_async_connection
+ * @waiting_list: list of struct v4l2_async_connection, waiting for their
+ *               drivers
  * @done_list: list of struct v4l2_subdev, already probed
  * @notifier_entry: member in a global list of notifiers
  */
@@ -116,7 +117,7 @@ struct v4l2_async_notifier {
        struct v4l2_device *v4l2_dev;
        struct v4l2_subdev *sd;
        struct v4l2_async_notifier *parent;
-       struct list_head asd_list;
+       struct list_head asc_list;
        struct list_head waiting_list;
        struct list_head done_list;
        struct list_head notifier_entry;
@@ -134,53 +135,53 @@ void v4l2_async_debug_init(struct dentry *debugfs_dir);
  *
  * @notifier: pointer to &struct v4l2_async_notifier
  *
- * This function initializes the notifier @asd_list. It must be called
+ * This function initializes the notifier @asc_list. It must be called
  * before adding a subdevice to a notifier, using one of:
  * v4l2_async_nf_add_fwnode_remote(), v4l2_async_nf_add_fwnode() or
  * v4l2_async_nf_add_i2c().
  */
 void v4l2_async_nf_init(struct v4l2_async_notifier *notifier);
 
-struct v4l2_async_subdev *
+struct v4l2_async_connection *
 __v4l2_async_nf_add_fwnode(struct v4l2_async_notifier *notifier,
                           struct fwnode_handle *fwnode,
-                          unsigned int asd_struct_size);
+                          unsigned int asc_struct_size);
 /**
  * v4l2_async_nf_add_fwnode - Allocate and add a fwnode async
- *                             subdev to the notifier's master asd_list.
+ *                             subdev to the notifier's master asc_list.
  *
  * @notifier: pointer to &struct v4l2_async_notifier
  * @fwnode: fwnode handle of the sub-device to be matched, pointer to
  *         &struct fwnode_handle
- * @type: Type of the driver's async sub-device struct. The &struct
- *       v4l2_async_subdev shall be the first member of the driver's async
- *       sub-device struct, i.e. both begin at the same memory address.
+ * @type: Type of the driver's async sub-device or connection struct. The
+ *       &struct v4l2_async_connection shall be the first member of the
+ *       driver's async struct, i.e. both begin at the same memory address.
  *
- * Allocate a fwnode-matched asd of size asd_struct_size, and add it to the
- * notifiers @asd_list. The function also gets a reference of the fwnode which
+ * Allocate a fwnode-matched asc of size asc_struct_size, and add it to the
+ * notifiers @asc_list. The function also gets a reference of the fwnode which
  * is released later at notifier cleanup time.
  */
 #define v4l2_async_nf_add_fwnode(notifier, fwnode, type)               \
        ((type *)__v4l2_async_nf_add_fwnode(notifier, fwnode, sizeof(type)))
 
-struct v4l2_async_subdev *
+struct v4l2_async_connection *
 __v4l2_async_nf_add_fwnode_remote(struct v4l2_async_notifier *notif,
                                  struct fwnode_handle *endpoint,
-                                 unsigned int asd_struct_size);
+                                 unsigned int asc_struct_size);
 /**
  * v4l2_async_nf_add_fwnode_remote - Allocate and add a fwnode
  *                                               remote async subdev to the
- *                                               notifier's master asd_list.
+ *                                               notifier's master asc_list.
  *
  * @notifier: pointer to &struct v4l2_async_notifier
- * @ep: local endpoint pointing to the remote sub-device to be matched,
+ * @ep: local endpoint pointing to the remote connection to be matched,
  *     pointer to &struct fwnode_handle
- * @type: Type of the driver's async sub-device struct. The &struct
- *       v4l2_async_subdev shall be the first member of the driver's async
- *       sub-device struct, i.e. both begin at the same memory address.
+ * @type: Type of the driver's async connection struct. The &struct
+ *       v4l2_async_connection shall be the first member of the driver's async
+ *       connection struct, i.e. both begin at the same memory address.
  *
  * Gets the remote endpoint of a given local endpoint, set it up for fwnode
- * matching and adds the async sub-device to the notifier's @asd_list. The
+ * matching and adds the async connection to the notifier's @asc_list. The
  * function also gets a reference of the fwnode which is released later at
  * notifier cleanup time.
  *
@@ -190,23 +191,23 @@ __v4l2_async_nf_add_fwnode_remote(struct v4l2_async_notifier *notif,
 #define v4l2_async_nf_add_fwnode_remote(notifier, ep, type) \
        ((type *)__v4l2_async_nf_add_fwnode_remote(notifier, ep, sizeof(type)))
 
-struct v4l2_async_subdev *
+struct v4l2_async_connection *
 __v4l2_async_nf_add_i2c(struct v4l2_async_notifier *notifier,
                        int adapter_id, unsigned short address,
-                       unsigned int asd_struct_size);
+                       unsigned int asc_struct_size);
 /**
  * v4l2_async_nf_add_i2c - Allocate and add an i2c async
- *                             subdev to the notifier's master asd_list.
+ *                             subdev to the notifier's master asc_list.
  *
  * @notifier: pointer to &struct v4l2_async_notifier
  * @adapter: I2C adapter ID to be matched
- * @address: I2C address of sub-device to be matched
- * @type: Type of the driver's async sub-device struct. The &struct
- *       v4l2_async_subdev shall be the first member of the driver's async
- *       sub-device struct, i.e. both begin at the same memory address.
+ * @address: I2C address of connection to be matched
+ * @type: Type of the driver's async connection struct. The &struct
+ *       v4l2_async_connection shall be the first member of the driver's async
+ *       connection struct, i.e. both begin at the same memory address.
  *
  * Same as v4l2_async_nf_add_fwnode() but for I2C matched
- * sub-devices.
+ * connections.
  */
 #define v4l2_async_nf_add_i2c(notifier, adapter, address, type) \
        ((type *)__v4l2_async_nf_add_i2c(notifier, adapter, address, \
@@ -244,7 +245,7 @@ void v4l2_async_nf_unregister(struct v4l2_async_notifier *notifier);
  * @notifier: the notifier the resources of which are to be cleaned up
  *
  * Release memory resources related to a notifier, including the async
- * sub-devices allocated for the purposes of the notifier but not the notifier
+ * connections allocated for the purposes of the notifier but not the notifier
  * itself. The user is responsible for calling this function to clean up the
  * notifier after calling v4l2_async_nf_add_fwnode_remote(),
  * v4l2_async_nf_add_fwnode() or v4l2_async_nf_add_i2c().
index b58c7a3..212d7f1 100644 (file)
@@ -1022,7 +1022,7 @@ struct v4l2_subdev_platform_data {
  *         either dev->of_node->fwnode or dev->fwnode (whichever is non-NULL).
  * @async_list: Links this subdev to a global subdev_list or
  *             @notifier->done_list list.
- * @asd: Pointer to respective &struct v4l2_async_subdev.
+ * @asd: Pointer to respective &struct v4l2_async_connection.
  * @notifier: Pointer to the managing notifier.
  * @subdev_notifier: A sub-device notifier implicitly registered for the sub-
  *                  device using v4l2_async_register_subdev_sensor().
@@ -1065,7 +1065,7 @@ struct v4l2_subdev {
        struct device *dev;
        struct fwnode_handle *fwnode;
        struct list_head async_list;
-       struct v4l2_async_subdev *asd;
+       struct v4l2_async_connection *asd;
        struct v4l2_async_notifier *notifier;
        struct v4l2_async_notifier *subdev_notifier;
        struct v4l2_subdev_platform_data *pdata;