Message ID | 20240328224413.2616294-2-festevam@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v3,1/2] media: ov2680: Clear the 'ret' variable on success | expand |
Hi, On 3/28/24 11:44 PM, Fabio Estevam wrote: > From: Fabio Estevam <festevam@denx.de> > > Since commit 63b0cd30b78e ("media: ov2680: Add bus-cfg / endpoint > property verification") the ov2680 no longer probes on a imx7s-warp7: > > ov2680 1-0036: error -EINVAL: supported link freq 330000000 not found > ov2680 1-0036: probe with driver ov2680 failed with error -22 > > As the 'link-frequencies' property is not mandatory, allow the probe > to succeed by skipping the link-frequency verification when the > property is absent. > > Cc: stable@vger.kernel.org > Fixes: 63b0cd30b78e ("media: ov2680: Add bus-cfg / endpoint property verification") > Signed-off-by: Fabio Estevam <festevam@denx.de> Thanks, patch looks good to me: Reviewed-by: Hans de Goede <hdegoede@redhat.com> Regards, Hans > --- > Changes since v2: > - Fix memory leak and print a warning if 'link-frequencies' is absent. (Laurent) > > drivers/media/i2c/ov2680.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/i2c/ov2680.c b/drivers/media/i2c/ov2680.c > index 3e3b7c2b492c..a857763c7984 100644 > --- a/drivers/media/i2c/ov2680.c > +++ b/drivers/media/i2c/ov2680.c > @@ -1123,18 +1123,23 @@ static int ov2680_parse_dt(struct ov2680_dev *sensor) > goto out_free_bus_cfg; > } > > + if (!bus_cfg.nr_of_link_frequencies) { > + dev_warn(dev, "Consider passing 'link-frequencies' in DT\n"); > + goto skip_link_freq_validation; > + } > + > for (i = 0; i < bus_cfg.nr_of_link_frequencies; i++) > if (bus_cfg.link_frequencies[i] == sensor->link_freq[0]) > break; > > - if (bus_cfg.nr_of_link_frequencies == 0 || > - bus_cfg.nr_of_link_frequencies == i) { > + if (bus_cfg.nr_of_link_frequencies == i) { > ret = dev_err_probe(dev, -EINVAL, > "supported link freq %lld not found\n", > sensor->link_freq[0]); > goto out_free_bus_cfg; > } > > +skip_link_freq_validation: > ret = 0; > out_free_bus_cfg: > v4l2_fwnode_endpoint_free(&bus_cfg);
diff --git a/drivers/media/i2c/ov2680.c b/drivers/media/i2c/ov2680.c index 3e3b7c2b492c..a857763c7984 100644 --- a/drivers/media/i2c/ov2680.c +++ b/drivers/media/i2c/ov2680.c @@ -1123,18 +1123,23 @@ static int ov2680_parse_dt(struct ov2680_dev *sensor) goto out_free_bus_cfg; } + if (!bus_cfg.nr_of_link_frequencies) { + dev_warn(dev, "Consider passing 'link-frequencies' in DT\n"); + goto skip_link_freq_validation; + } + for (i = 0; i < bus_cfg.nr_of_link_frequencies; i++) if (bus_cfg.link_frequencies[i] == sensor->link_freq[0]) break; - if (bus_cfg.nr_of_link_frequencies == 0 || - bus_cfg.nr_of_link_frequencies == i) { + if (bus_cfg.nr_of_link_frequencies == i) { ret = dev_err_probe(dev, -EINVAL, "supported link freq %lld not found\n", sensor->link_freq[0]); goto out_free_bus_cfg; } +skip_link_freq_validation: ret = 0; out_free_bus_cfg: v4l2_fwnode_endpoint_free(&bus_cfg);