Message ID | 20191001145503.5170-1-manivannan.sadhasivam@linaro.org |
---|---|
State | New |
Headers | show |
Series | media: i2c: max9286: Pass default bus type when parsing fwnode endpoint | expand |
Hello Manivannan, On Tue, Oct 01, 2019 at 08:25:03PM +0530, Manivannan Sadhasivam wrote: > The caller of v4l2_fwnode_endpoint_alloc_parse() is expected to pass a > valid bus_type parameter for proper working of this API. Hence, pass > V4L2_MBUS_CSI2_DPHY as the bus_type parameter as this driver only supports > MIPI CSI2 for now. Without this commit, the API fails on 96Boards > Dragonboard410c connected to MAX9286 deserializer. > > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > --- > > This patch depends on the latest "MAX9286 GMSL Support" series posted > by Kieran Bingham. > > drivers/media/i2c/max9286.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/i2c/max9286.c b/drivers/media/i2c/max9286.c > index 9390edf5ad9c..6e1299f15493 100644 > --- a/drivers/media/i2c/max9286.c > +++ b/drivers/media/i2c/max9286.c > @@ -976,7 +976,9 @@ static int max9286_parse_dt(struct max9286_device *max9286) > > /* For the source endpoint just parse the bus configuration. */ > if (ep.port == MAX9286_SRC_PAD) { > - struct v4l2_fwnode_endpoint vep; > + struct v4l2_fwnode_endpoint vep = { > + .bus_type = V4L2_MBUS_CSI2_DPHY > + }; Isn't the bus_type just an hint ? __v4l2_fwnode_endpoint_parse() should try to parse CSI2 first, and should be able to to deduct the bus type from the properties specified in DT... Anyway, I'm not against this change, the contrary actually, I'm just afraid it might hide some more subtile bug, as we don't need this on our platforms... Is the db410c mainline ? Do you have DT snippets for db410c+max9286 to share? Thanks j > int ret; > > ret = v4l2_fwnode_endpoint_alloc_parse( > -- > 2.17.1 >
Hi Jacopo, Manivannan, On Wed, Oct 02, 2019 at 09:54:32AM +0200, Jacopo Mondi wrote: > Hello Manivannan, > > On Tue, Oct 01, 2019 at 08:25:03PM +0530, Manivannan Sadhasivam wrote: > > The caller of v4l2_fwnode_endpoint_alloc_parse() is expected to pass a > > valid bus_type parameter for proper working of this API. Hence, pass > > V4L2_MBUS_CSI2_DPHY as the bus_type parameter as this driver only supports > > MIPI CSI2 for now. Without this commit, the API fails on 96Boards > > Dragonboard410c connected to MAX9286 deserializer. > > > > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > > --- > > > > This patch depends on the latest "MAX9286 GMSL Support" series posted > > by Kieran Bingham. > > > > drivers/media/i2c/max9286.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/media/i2c/max9286.c b/drivers/media/i2c/max9286.c > > index 9390edf5ad9c..6e1299f15493 100644 > > --- a/drivers/media/i2c/max9286.c > > +++ b/drivers/media/i2c/max9286.c > > @@ -976,7 +976,9 @@ static int max9286_parse_dt(struct max9286_device *max9286) > > > > /* For the source endpoint just parse the bus configuration. */ > > if (ep.port == MAX9286_SRC_PAD) { > > - struct v4l2_fwnode_endpoint vep; > > + struct v4l2_fwnode_endpoint vep = { > > + .bus_type = V4L2_MBUS_CSI2_DPHY > > + }; > > Isn't the bus_type just an hint ? __v4l2_fwnode_endpoint_parse() > should try to parse CSI2 first, and should be able to to deduct the bus > type from the properties specified in DT... It's basically telling the V4L2 fwnode parser to parse that bus only, and not guess what the caller wanted. This is what drivers should actually be doing. It also allows setting the defaults that many drivers declare in their DT bindings but very few actually implement. > > Anyway, I'm not against this change, the contrary actually, I'm just > afraid it might hide some more subtile bug, as we don't need this on > our platforms... I'd expect it to be safer this way, as there's no guessing involved. -- Regards, Sakari Ailus
diff --git a/drivers/media/i2c/max9286.c b/drivers/media/i2c/max9286.c index 9390edf5ad9c..6e1299f15493 100644 --- a/drivers/media/i2c/max9286.c +++ b/drivers/media/i2c/max9286.c @@ -976,7 +976,9 @@ static int max9286_parse_dt(struct max9286_device *max9286) /* For the source endpoint just parse the bus configuration. */ if (ep.port == MAX9286_SRC_PAD) { - struct v4l2_fwnode_endpoint vep; + struct v4l2_fwnode_endpoint vep = { + .bus_type = V4L2_MBUS_CSI2_DPHY + }; int ret; ret = v4l2_fwnode_endpoint_alloc_parse(
The caller of v4l2_fwnode_endpoint_alloc_parse() is expected to pass a valid bus_type parameter for proper working of this API. Hence, pass V4L2_MBUS_CSI2_DPHY as the bus_type parameter as this driver only supports MIPI CSI2 for now. Without this commit, the API fails on 96Boards Dragonboard410c connected to MAX9286 deserializer. Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> --- This patch depends on the latest "MAX9286 GMSL Support" series posted by Kieran Bingham. drivers/media/i2c/max9286.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- 2.17.1