Re: [PATCH v3 8/9] media: i2c: ov5645: Don't return early on failures for s_stream(0)

From: Lad, Prabhakar
Date: Wed Oct 26 2022 - 14:27:04 EST


Hi Marco,

On Wed, Oct 26, 2022 at 6:35 PM Marco Felsch <m.felsch@xxxxxxxxxxxxxx> wrote:
>
> On 22-10-26, Lad, Prabhakar wrote:
> > Hi Marco,
> >
> > Thank you for the review.
> >
> > On Wed, Oct 26, 2022 at 6:17 PM Marco Felsch <m.felsch@xxxxxxxxxxxxxx> wrote:
> > >
> > > Hi Prabhakar,
> > >
> > > thanks for the patch, please see below my comments.
> > >
> > > On 22-10-26, Prabhakar wrote:
> > > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
> > > >
> > > > Make sure we dont stop the code flow in case of errors while stopping
> > > > the stream and return the error code of the first error case if any.
> > > >
> > > > v4l2-core takes care of warning the user so no need to add a warning
> > > > message in the driver.
> > > >
> > > > Suggested-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
> > > > ---
> > > > v2->v3
> > > > * Now propagating the first error code in case of failure.
> > > >
> > > > v1->v2
> > > > * New patch
> > > > ---
> > > > drivers/media/i2c/ov5645.c | 11 ++++++++---
> > > > 1 file changed, 8 insertions(+), 3 deletions(-)
> > > >
> > > > diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c
> > > > index eea3067ddc8b..5702a55607fc 100644
> > > > --- a/drivers/media/i2c/ov5645.c
> > > > +++ b/drivers/media/i2c/ov5645.c
> > > > @@ -996,17 +996,22 @@ static int ov5645_s_stream(struct v4l2_subdev *subdev, int enable)
> > > > if (ret < 0)
> > > > goto err_rpm_put;
> > > > } else {
> > > > + int stream_off_ret = 0;
> > > > +
> > > > ret = ov5645_write_reg(ov5645, OV5645_IO_MIPI_CTRL00, 0x40);
> > >
> > > If this write failed..
> > >
> > > > if (ret < 0)
> > > > - return ret;
> > > > + stream_off_ret = ret;
> > > >
> > > > ret = ov5645_write_reg(ov5645, OV5645_SYSTEM_CTRL0,
> > > > OV5645_SYSTEM_CTRL0_STOP);
> > >
> > > why should this write be successful?
> > >
> > Indeed that will fail unless I have a lucky day ;-)
> >
> > But it seemed to be an overkill for adding an additional check to see
> > if the previous write succeeded. Do you think this will create an
> > issue?
>
> Why not just say?
>
> ret = ov5645_write_reg();
> if (ret < 0)
> goto out;
>
> ...
>
> out:
>
> dev_pm_xxx();
>
> return ret;
>
Thanks for the suggestion, I will rework this in the next version.

Cheers,
Prabhakar