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.ai...@linux.intel.com>
---
 drivers/media/i2c/smiapp/smiapp-core.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/media/i2c/smiapp/smiapp-core.c 
b/drivers/media/i2c/smiapp/smiapp-core.c
index 048ab6cfaa97..0d660349b13c 100644
--- a/drivers/media/i2c/smiapp/smiapp-core.c
+++ b/drivers/media/i2c/smiapp/smiapp-core.c
@@ -2775,7 +2775,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;
 
-- 
2.11.0

Reply via email to