media: smiapp: Query the V4L2 endpoint for a specific bus type
authorSakari Ailus <sakari.ailus@linux.intel.com>
Mon, 16 Apr 2018 20:56:51 +0000 (16:56 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 4 Oct 2018 20:24:25 +0000 (16:24 -0400)
Instead of opportunistically trying to gather some information from the
V4L2 endpoint, set the bus type and let the V4L2 fwnode framework figure
out the configuration.

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>
drivers/media/i2c/smiapp/smiapp-core.c

index 2d6059e3a57765d6c3f1828d9c461e7af4f05fa1..58a45c353e2702d23e9b3673413886512f4eb2b2 100644 (file)
@@ -2771,7 +2771,13 @@ static struct smiapp_hwconfig *smiapp_get_hwconfig(struct device *dev)
        if (!ep)
                return NULL;
 
+       bus_cfg.bus_type = V4L2_MBUS_CSI2_DPHY;
        rval = v4l2_fwnode_endpoint_alloc_parse(ep, &bus_cfg);
+       if (rval == -ENXIO) {
+               bus_cfg = (struct v4l2_fwnode_endpoint)
+                       { .bus_type = V4L2_MBUS_CCP2 };
+               rval = v4l2_fwnode_endpoint_alloc_parse(ep, &bus_cfg);
+       }
        if (rval)
                goto out_err;