media: v4l: fwnode: Initialise the V4L2 fwnode endpoints to zero
authorSakari Ailus <sakari.ailus@linux.intel.com>
Tue, 31 Jul 2018 09:15:50 +0000 (05:15 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 4 Oct 2018 20:21:02 +0000 (16:21 -0400)
Initialise the V4L2 fwnode endpoints to zero in all drivers using
v4l2_fwnode_endpoint_parse(). This prepares for setting default endpoint
flags as well as the bus type. Setting bus type to zero will continue to
guess the bus among the guessable set (parallel, Bt.656 and CSI-2 D-PHY).

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: Steve Longerbeam <steve_longerbeam@mentor.com>
Tested-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
24 files changed:
drivers/media/i2c/adv7604.c
drivers/media/i2c/mt9v032.c
drivers/media/i2c/ov5647.c
drivers/media/i2c/ov7670.c
drivers/media/i2c/s5c73m3/s5c73m3-core.c
drivers/media/i2c/s5k5baf.c
drivers/media/i2c/tda1997x.c
drivers/media/i2c/tvp514x.c
drivers/media/i2c/tvp5150.c
drivers/media/i2c/tvp7002.c
drivers/media/platform/am437x/am437x-vpfe.c
drivers/media/platform/atmel/atmel-isc.c
drivers/media/platform/atmel/atmel-isi.c
drivers/media/platform/cadence/cdns-csi2rx.c
drivers/media/platform/cadence/cdns-csi2tx.c
drivers/media/platform/davinci/vpif_capture.c
drivers/media/platform/exynos4-is/media-dev.c
drivers/media/platform/exynos4-is/mipi-csis.c
drivers/media/platform/pxa_camera.c
drivers/media/platform/rcar-vin/rcar-csi2.c
drivers/media/platform/renesas-ceu.c
drivers/media/platform/stm32/stm32-dcmi.c
drivers/staging/media/imx/imx-media-csi.c
include/media/v4l2-fwnode.h

index 070fdf65b714ec917d5291b12d0b5b13e31f4df0..1c89959b1509fb5b085884327979eefa29aed934 100644 (file)
@@ -3093,7 +3093,7 @@ MODULE_DEVICE_TABLE(of, adv76xx_of_id);
 
 static int adv76xx_parse_dt(struct adv76xx_state *state)
 {
-       struct v4l2_fwnode_endpoint bus_cfg;
+       struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
        struct device_node *endpoint;
        struct device_node *np;
        unsigned int flags;
index f74730d24d8fe38bf049fb3020fa5493c2f64a49..67f69ad6ecf44d04d2359f4739dbbd41721fd91e 100644 (file)
@@ -989,7 +989,7 @@ static struct mt9v032_platform_data *
 mt9v032_get_pdata(struct i2c_client *client)
 {
        struct mt9v032_platform_data *pdata = NULL;
-       struct v4l2_fwnode_endpoint endpoint;
+       struct v4l2_fwnode_endpoint endpoint = { .bus_type = 0 };
        struct device_node *np;
        struct property *prop;
 
index da39c49de503c260b3cc78bed1c7a13c57472bf0..4589631798c968a41116169ccdd9e6cd9b26b800 100644 (file)
@@ -532,7 +532,7 @@ static const struct v4l2_subdev_internal_ops ov5647_subdev_internal_ops = {
 
 static int ov5647_parse_dt(struct device_node *np)
 {
-       struct v4l2_fwnode_endpoint bus_cfg;
+       struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
        struct device_node *ep;
 
        int ret;
index 31bf577b0bd3024b900cfdfc9dbe4b7860b5113c..92f59ae1b624e85f6dde866f94ae247890e8bc4b 100644 (file)
@@ -1728,7 +1728,7 @@ static int ov7670_parse_dt(struct device *dev,
                           struct ov7670_info *info)
 {
        struct fwnode_handle *fwnode = dev_fwnode(dev);
-       struct v4l2_fwnode_endpoint bus_cfg;
+       struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
        struct fwnode_handle *ep;
        int ret;
 
index ed7348a8a01a0d888140175d6ccd39ce9c45b12f..c461847ddae81d2b908576f57730b1a44ff9b090 100644 (file)
@@ -1603,7 +1603,7 @@ static int s5c73m3_get_platform_data(struct s5c73m3 *state)
        const struct s5c73m3_platform_data *pdata = dev->platform_data;
        struct device_node *node = dev->of_node;
        struct device_node *node_ep;
-       struct v4l2_fwnode_endpoint ep;
+       struct v4l2_fwnode_endpoint ep = { .bus_type = 0 };
        int ret;
 
        if (!node) {
index 4c41a770b132dd75f8fae6c94367904bec98d4ad..727db7c0670ae692dd8d7b07cabdadc994e8e4ff 100644 (file)
@@ -1841,7 +1841,7 @@ static int s5k5baf_parse_device_node(struct s5k5baf *state, struct device *dev)
 {
        struct device_node *node = dev->of_node;
        struct device_node *node_ep;
-       struct v4l2_fwnode_endpoint ep;
+       struct v4l2_fwnode_endpoint ep = { .bus_type = 0 };
        int ret;
 
        if (!node) {
index d114ac5243ecaff1f1c0be6de13c632b0c0a4b5c..c4c2a6134e1eb047fb8687a6c235e49c358f089b 100644 (file)
@@ -2265,7 +2265,7 @@ MODULE_DEVICE_TABLE(of, tda1997x_of_id);
 static int tda1997x_parse_dt(struct tda1997x_state *state)
 {
        struct tda1997x_platform_data *pdata = &state->pdata;
-       struct v4l2_fwnode_endpoint bus_cfg;
+       struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
        struct device_node *ep;
        struct device_node *np;
        unsigned int flags;
index 675b9ae212abf61b92ef7bc8bcfac460ece2f19b..1cc83cb934e2d04f6640689b7583017edf8b71ad 100644 (file)
@@ -989,7 +989,7 @@ static struct tvp514x_platform_data *
 tvp514x_get_pdata(struct i2c_client *client)
 {
        struct tvp514x_platform_data *pdata = NULL;
-       struct v4l2_fwnode_endpoint bus_cfg;
+       struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
        struct device_node *endpoint;
        unsigned int flags;
 
index 4f746e02de22c5e364c9ffe1c93679b95ff35c76..0e91b9949c3a9976e58b584546730b23266be0f6 100644 (file)
@@ -1593,7 +1593,7 @@ static int tvp5150_init(struct i2c_client *c)
 
 static int tvp5150_parse_dt(struct tvp5150 *decoder, struct device_node *np)
 {
-       struct v4l2_fwnode_endpoint bus_cfg;
+       struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
        struct device_node *ep;
 #ifdef CONFIG_MEDIA_CONTROLLER
        struct device_node *connectors, *child;
index 4f5c627579c75566a5cb532a90bdce8954da1bcb..cab2f2bd0aa9910c78fbbdfd7b54b689f3d4359e 100644 (file)
@@ -889,7 +889,7 @@ static const struct v4l2_subdev_ops tvp7002_ops = {
 static struct tvp7002_config *
 tvp7002_get_pdata(struct i2c_client *client)
 {
-       struct v4l2_fwnode_endpoint bus_cfg;
+       struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
        struct tvp7002_config *pdata = NULL;
        struct device_node *endpoint;
        unsigned int flags;
index 0b1a03b64b19b84235dc5ac9c225da703b2f6f8e..e13d2b3a7168ff3897f2561dc33415c86f0e86d8 100644 (file)
@@ -2426,7 +2426,6 @@ static struct vpfe_config *
 vpfe_get_pdata(struct vpfe_device *vpfe)
 {
        struct device_node *endpoint = NULL;
-       struct v4l2_fwnode_endpoint bus_cfg;
        struct device *dev = vpfe->pdev;
        struct vpfe_subdev_info *sdinfo;
        struct vpfe_config *pdata;
@@ -2446,6 +2445,7 @@ vpfe_get_pdata(struct vpfe_device *vpfe)
                return NULL;
 
        for (i = 0; ; i++) {
+               struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
                struct device_node *rem;
 
                endpoint = of_graph_get_next_endpoint(dev->of_node, endpoint);
index 334de0f2e36a1994c53ad3397f0d5229918f374e..50178968b8a63cc8b34f02984bd4848e216f2034 100644 (file)
@@ -2028,7 +2028,6 @@ static int isc_parse_dt(struct device *dev, struct isc_device *isc)
 {
        struct device_node *np = dev->of_node;
        struct device_node *epn = NULL, *rem;
-       struct v4l2_fwnode_endpoint v4l2_epn;
        struct isc_subdev_entity *subdev_entity;
        unsigned int flags;
        int ret;
@@ -2036,6 +2035,8 @@ static int isc_parse_dt(struct device *dev, struct isc_device *isc)
        INIT_LIST_HEAD(&isc->subdev_entities);
 
        while (1) {
+               struct v4l2_fwnode_endpoint v4l2_epn = { .bus_type = 0 };
+
                epn = of_graph_get_next_endpoint(np, epn);
                if (!epn)
                        return 0;
index c4d5f05786e8557a719bd2af23df681e8eb13257..fdb255e4a956d0332859a1e8baa6be733aebee2b 100644 (file)
@@ -790,7 +790,7 @@ static int atmel_isi_parse_dt(struct atmel_isi *isi,
                        struct platform_device *pdev)
 {
        struct device_node *np = pdev->dev.of_node;
-       struct v4l2_fwnode_endpoint ep;
+       struct v4l2_fwnode_endpoint ep = { .bus_type = 0 };
        int err;
 
        /* Default settings for ISI */
index 0776a34f28eee6effdff847f730f3eeb28361c39..31ace114eda14ea788350f07a94402473140bdce 100644 (file)
@@ -361,7 +361,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;
+       struct v4l2_fwnode_endpoint v4l2_ep = { .bus_type = 0 };
        struct fwnode_handle *fwh;
        struct device_node *ep;
        int ret;
index 6224daf891d7cc077f1d87c2fcacdee17eecf153..5042d053b94e21c1f02ddb31e034b6d19de62a6d 100644 (file)
@@ -432,7 +432,7 @@ static int csi2tx_get_resources(struct csi2tx_priv *csi2tx,
 
 static int csi2tx_check_lanes(struct csi2tx_priv *csi2tx)
 {
-       struct v4l2_fwnode_endpoint v4l2_ep;
+       struct v4l2_fwnode_endpoint v4l2_ep = { .bus_type = 0 };
        struct device_node *ep;
        int ret;
 
index 187f965e341e5a8485f0b92cdcbf8f2925f8b2f8..6216b7ac6875f753f67afaef464232d78c2e6641 100644 (file)
@@ -1511,7 +1511,6 @@ static struct vpif_capture_config *
 vpif_capture_get_pdata(struct platform_device *pdev)
 {
        struct device_node *endpoint = NULL;
-       struct v4l2_fwnode_endpoint bus_cfg;
        struct vpif_capture_config *pdata;
        struct vpif_subdev_info *sdinfo;
        struct vpif_capture_chan_config *chan;
@@ -1541,6 +1540,7 @@ vpif_capture_get_pdata(struct platform_device *pdev)
                return NULL;
 
        for (i = 0; i < VPIF_CAPTURE_NUM_CHANNELS; i++) {
+               struct v4l2_fwnode_endpoint bus_cfg = { .bus_type = 0 };
                struct device_node *rem;
                unsigned int flags;
                int err;
index fbad0635c6b59599a72f36c0f8befb3b5092f593..870501b0f351addb127f3b29c0dec9d5dee867d1 100644 (file)
@@ -390,7 +390,7 @@ static int fimc_md_parse_port_node(struct fimc_md *fmd,
 {
        struct fimc_source_info *pd = &fmd->sensor[index].pdata;
        struct device_node *rem, *ep, *np;
-       struct v4l2_fwnode_endpoint endpoint;
+       struct v4l2_fwnode_endpoint endpoint = { .bus_type = 0 };
        int ret;
 
        /* Assume here a port node can have only one endpoint node. */
index b4e28a299e26e6b6dce99f5da0427f201cfab33b..35cb0162085b4d03bd12e9b6f099fa6759ca0e63 100644 (file)
@@ -718,7 +718,7 @@ static int s5pcsis_parse_dt(struct platform_device *pdev,
                            struct csis_state *state)
 {
        struct device_node *node = pdev->dev.of_node;
-       struct v4l2_fwnode_endpoint endpoint;
+       struct v4l2_fwnode_endpoint endpoint = { .bus_type = 0 };
        int ret;
 
        if (of_property_read_u32(node, "clock-frequency",
index 6f01d0986b59ec89d2404208b7fb0a602e15e3eb..5f930560eb30c799c01f1fa57c9324a46ce42739 100644 (file)
@@ -2298,7 +2298,7 @@ static int pxa_camera_pdata_from_dt(struct device *dev,
 {
        u32 mclk_rate;
        struct device_node *remote, *np = dev->of_node;
-       struct v4l2_fwnode_endpoint ep;
+       struct v4l2_fwnode_endpoint ep = { .bus_type = 0 };
        int err = of_property_read_u32(np, "clock-frequency",
                                       &mclk_rate);
        if (!err) {
index 25edc2edd1974932b34e334f998e22721891ecf2..b0044a08e71ed017a3c95c0a2d8d59234f22b865 100644 (file)
@@ -743,7 +743,7 @@ static int rcsi2_parse_v4l2(struct rcar_csi2 *priv,
 static int rcsi2_parse_dt(struct rcar_csi2 *priv)
 {
        struct device_node *ep;
-       struct v4l2_fwnode_endpoint v4l2_ep;
+       struct v4l2_fwnode_endpoint v4l2_ep = { .bus_type = 0 };
        int ret;
 
        ep = of_graph_get_endpoint_by_regs(priv->dev->of_node, 0, 0);
index eee4ae7234be093933b1932ae2114d2f595f217b..035f1d3f10e57dd2d13a5f3fa3fe28d5dace297b 100644 (file)
@@ -1536,7 +1536,6 @@ static int ceu_parse_platform_data(struct ceu_device *ceudev,
 static int ceu_parse_dt(struct ceu_device *ceudev)
 {
        struct device_node *of = ceudev->dev->of_node;
-       struct v4l2_fwnode_endpoint fw_ep;
        struct device_node *ep, *remote;
        struct ceu_subdev *ceu_sd;
        unsigned int i;
@@ -1552,6 +1551,8 @@ static int ceu_parse_dt(struct ceu_device *ceudev)
                return ret;
 
        for (i = 0; i < num_ep; i++) {
+               struct v4l2_fwnode_endpoint fw_ep = { .bus_type = 0 };
+
                ep = of_graph_get_endpoint_by_regs(of, 0, i);
                if (!ep) {
                        dev_err(ceudev->dev,
index 9719a2e8de07153c9b25f29d1b21e3b6d2f84c0d..6732874114cf7882cf6dc518046a716e470e1bcb 100644 (file)
@@ -1624,7 +1624,7 @@ static int dcmi_probe(struct platform_device *pdev)
 {
        struct device_node *np = pdev->dev.of_node;
        const struct of_device_id *match = NULL;
-       struct v4l2_fwnode_endpoint ep;
+       struct v4l2_fwnode_endpoint ep = { .bus_type = 0 };
        struct stm32_dcmi *dcmi;
        struct vb2_queue *q;
        struct dma_chan *chan;
index beb7c120bf350bfc1ee0800955c75aaec0f0a799..4223f8d418ae8b8de25b2513843624b12d0a16fa 100644 (file)
@@ -1053,7 +1053,7 @@ static int csi_link_validate(struct v4l2_subdev *sd,
                             struct v4l2_subdev_format *sink_fmt)
 {
        struct csi_priv *priv = v4l2_get_subdevdata(sd);
-       struct v4l2_fwnode_endpoint upstream_ep;
+       struct v4l2_fwnode_endpoint upstream_ep = { .bus_type = 0 };
        bool is_csi2;
        int ret;
 
@@ -1167,7 +1167,7 @@ static int csi_enum_mbus_code(struct v4l2_subdev *sd,
                              struct v4l2_subdev_mbus_code_enum *code)
 {
        struct csi_priv *priv = v4l2_get_subdevdata(sd);
-       struct v4l2_fwnode_endpoint upstream_ep;
+       struct v4l2_fwnode_endpoint upstream_ep = { .bus_type = 0 };
        const struct imx_media_pixfmt *incc;
        struct v4l2_mbus_framefmt *infmt;
        int ret = 0;
@@ -1406,7 +1406,7 @@ static int csi_set_fmt(struct v4l2_subdev *sd,
 {
        struct csi_priv *priv = v4l2_get_subdevdata(sd);
        struct imx_media_video_dev *vdev = priv->vdev;
-       struct v4l2_fwnode_endpoint upstream_ep;
+       struct v4l2_fwnode_endpoint upstream_ep = { .bus_type = 0 };
        const struct imx_media_pixfmt *cc;
        struct v4l2_pix_format vdev_fmt;
        struct v4l2_mbus_framefmt *fmt;
@@ -1545,7 +1545,7 @@ static int csi_set_selection(struct v4l2_subdev *sd,
                             struct v4l2_subdev_selection *sel)
 {
        struct csi_priv *priv = v4l2_get_subdevdata(sd);
-       struct v4l2_fwnode_endpoint upstream_ep;
+       struct v4l2_fwnode_endpoint upstream_ep = { .bus_type = 0 };
        struct v4l2_mbus_framefmt *infmt;
        struct v4l2_rect *crop, *compose;
        int pad, ret;
index 4a371c3ad86c4df568b0e7e25e0307a71990dc3c..1ea1a3ecf6d5ab882170240c081b92d6a70afcde 100644 (file)
@@ -139,6 +139,8 @@ struct v4l2_fwnode_link {
  * set the V4L2_MBUS_CSI2_CONTINUOUS_CLOCK flag. The caller should hold a
  * reference to @fwnode.
  *
+ * The caller must set the bus_type field of @vep to zero.
+ *
  * NOTE: This function does not parse properties the size of which is variable
  * without a low fixed limit. Please use v4l2_fwnode_endpoint_alloc_parse() in
  * new drivers instead.