diff mbox series

media: ov5640: Fix check for PLL1 exceeding max allowed rate

Message ID 20191029124211.15052-1-aford173@gmail.com (mailing list archive)
State New, archived
Headers show
Series media: ov5640: Fix check for PLL1 exceeding max allowed rate | expand

Commit Message

Adam Ford Oct. 29, 2019, 12:42 p.m. UTC
The variable _rate is by ov5640_compute_sys_clk() which returns
zero if the PLL exceeds 1GHz.  Unfortunately, the check to see
if the max PLL1 output is checking 'rate' and not '_rate' and
'rate' does not ever appear to be 0.

This patch changes the check against the returned value of
'_rate' to determine if the PLL1 output exceeds 1GHz.

Fixes: aa2882481cad ("media: ov5640: Adjust the clock based on the expected rate")

Signed-off-by: Adam Ford <aford173@gmail.com>

Comments

Adam Ford Nov. 27, 2019, 2:08 a.m. UTC | #1
On Tue, Oct 29, 2019 at 7:42 AM Adam Ford <aford173@gmail.com> wrote:
>
> The variable _rate is by ov5640_compute_sys_clk() which returns
> zero if the PLL exceeds 1GHz.  Unfortunately, the check to see
> if the max PLL1 output is checking 'rate' and not '_rate' and
> 'rate' does not ever appear to be 0.
>
> This patch changes the check against the returned value of
> '_rate' to determine if the PLL1 output exceeds 1GHz.
>
> Fixes: aa2882481cad ("media: ov5640: Adjust the clock based on the expected rate")
>

I haven't seen any responses to this patch.  Has anyone had a chance
to review this?  It's been nearly a month.
I think it would be appropriate to backport to stable if deemed acceptable.

adam

> Signed-off-by: Adam Ford <aford173@gmail.com>
>
> diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
> index 5e495c833d32..bb968e764f31 100644
> --- a/drivers/media/i2c/ov5640.c
> +++ b/drivers/media/i2c/ov5640.c
> @@ -874,7 +874,7 @@ static unsigned long ov5640_calc_sys_clk(struct ov5640_dev *sensor,
>                          * We have reached the maximum allowed PLL1 output,
>                          * increase sysdiv.
>                          */
> -                       if (!rate)
> +                       if (!_rate)
>                                 break;
>
>                         /*
> --
> 2.17.1
>
Jacopo Mondi Nov. 28, 2019, 10:21 a.m. UTC | #2
Hi Adam,

On Tue, Nov 26, 2019 at 08:08:05PM -0600, Adam Ford wrote:
> On Tue, Oct 29, 2019 at 7:42 AM Adam Ford <aford173@gmail.com> wrote:
> >
> > The variable _rate is by ov5640_compute_sys_clk() which returns
> > zero if the PLL exceeds 1GHz.  Unfortunately, the check to see
> > if the max PLL1 output is checking 'rate' and not '_rate' and
> > 'rate' does not ever appear to be 0.

This seems a bit convoluted. What about:

"The PLL calculation routine checks the wrong variable 'rate' to
verify that the calculated PLL1 output frequency does not exceed
1GHz. Fix this by using the correct '_rate' one."

Or something against these lines

> >
> > This patch changes the check against the returned value of
> > '_rate' to determine if the PLL1 output exceeds 1GHz.
> >
> > Fixes: aa2882481cad ("media: ov5640: Adjust the clock based on the expected rate")
> >
>
> I haven't seen any responses to this patch.  Has anyone had a chance
> to review this?  It's been nearly a month.

You're totally right! Sorry about this

> I think it would be appropriate to backport to stable if deemed acceptable.
>

Indeed! This fixes a real issue

Acked-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks
  j

> adam
>
> > Signed-off-by: Adam Ford <aford173@gmail.com>
> >
> > diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
> > index 5e495c833d32..bb968e764f31 100644
> > --- a/drivers/media/i2c/ov5640.c
> > +++ b/drivers/media/i2c/ov5640.c
> > @@ -874,7 +874,7 @@ static unsigned long ov5640_calc_sys_clk(struct ov5640_dev *sensor,
> >                          * We have reached the maximum allowed PLL1 output,
> >                          * increase sysdiv.
> >                          */
> > -                       if (!rate)
> > +                       if (!_rate)
> >                                 break;
> >
> >                         /*
> > --
> > 2.17.1
> >
Adam Ford Nov. 28, 2019, 2:28 p.m. UTC | #3
On Thu, Nov 28, 2019 at 4:19 AM Jacopo Mondi <jacopo@jmondi.org> wrote:
>
> Hi Adam,
>
> On Tue, Nov 26, 2019 at 08:08:05PM -0600, Adam Ford wrote:
> > On Tue, Oct 29, 2019 at 7:42 AM Adam Ford <aford173@gmail.com> wrote:
> > >
> > > The variable _rate is by ov5640_compute_sys_clk() which returns
> > > zero if the PLL exceeds 1GHz.  Unfortunately, the check to see
> > > if the max PLL1 output is checking 'rate' and not '_rate' and
> > > 'rate' does not ever appear to be 0.
>
> This seems a bit convoluted. What about:
>
> "The PLL calculation routine checks the wrong variable 'rate' to
> verify that the calculated PLL1 output frequency does not exceed
> 1GHz. Fix this by using the correct '_rate' one."
>
> Or something against these lines

That makes sense.

I'll do a V2 for this patch and change the description and add your
'acked-by' note to it.

I probably won't get to it until this weekend, since today is a
holiday in the US, and I am traveling.

adam
>
> > >
> > > This patch changes the check against the returned value of
> > > '_rate' to determine if the PLL1 output exceeds 1GHz.
> > >
> > > Fixes: aa2882481cad ("media: ov5640: Adjust the clock based on the expected rate")
> > >
> >
> > I haven't seen any responses to this patch.  Has anyone had a chance
> > to review this?  It's been nearly a month.
>
> You're totally right! Sorry about this
>
> > I think it would be appropriate to backport to stable if deemed acceptable.
> >
>
> Indeed! This fixes a real issue
>
> Acked-by: Jacopo Mondi <jacopo@jmondi.org>
>
> Thanks
>   j
>
> > adam
> >
> > > Signed-off-by: Adam Ford <aford173@gmail.com>
> > >
> > > diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
> > > index 5e495c833d32..bb968e764f31 100644
> > > --- a/drivers/media/i2c/ov5640.c
> > > +++ b/drivers/media/i2c/ov5640.c
> > > @@ -874,7 +874,7 @@ static unsigned long ov5640_calc_sys_clk(struct ov5640_dev *sensor,
> > >                          * We have reached the maximum allowed PLL1 output,
> > >                          * increase sysdiv.
> > >                          */
> > > -                       if (!rate)
> > > +                       if (!_rate)
> > >                                 break;
> > >
> > >                         /*
> > > --
> > > 2.17.1
> > >
diff mbox series

Patch

diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
index 5e495c833d32..bb968e764f31 100644
--- a/drivers/media/i2c/ov5640.c
+++ b/drivers/media/i2c/ov5640.c
@@ -874,7 +874,7 @@  static unsigned long ov5640_calc_sys_clk(struct ov5640_dev *sensor,
 			 * We have reached the maximum allowed PLL1 output,
 			 * increase sysdiv.
 			 */
-			if (!rate)
+			if (!_rate)
 				break;
 
 			/*