2018-07-27 14:03:19

by Amit Kachhap

[permalink] [raw]
Subject: [PATCH] clk: scmi: Fix the rounding of clock rate

This fix rounds the clock rate properly by using quotient and not
remainder in the calculation. This issue was found while testing HDMI
in the Juno platform.

Signed-off-by: Amit Daniel Kachhap <[email protected]>
---
drivers/clk/clk-scmi.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/clk-scmi.c b/drivers/clk/clk-scmi.c
index bb2a6f2..a985bf5 100644
--- a/drivers/clk/clk-scmi.c
+++ b/drivers/clk/clk-scmi.c
@@ -38,7 +38,6 @@ static unsigned long scmi_clk_recalc_rate(struct clk_hw *hw,
static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *parent_rate)
{
- int step;
u64 fmin, fmax, ftmp;
struct scmi_clk *clk = to_scmi_clk(hw);

@@ -60,9 +59,9 @@ static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate,

ftmp = rate - fmin;
ftmp += clk->info->range.step_size - 1; /* to round up */
- step = do_div(ftmp, clk->info->range.step_size);
+ do_div(ftmp, clk->info->range.step_size);

- return step * clk->info->range.step_size + fmin;
+ return ftmp * clk->info->range.step_size + fmin;
}

static int scmi_clk_set_rate(struct clk_hw *hw, unsigned long rate,
--
2.7.4



2018-07-27 16:38:50

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH] clk: scmi: Fix the rounding of clock rate

Quoting Amit Daniel Kachhap (2018-07-27 07:01:52)
> This fix rounds the clock rate properly by using quotient and not
> remainder in the calculation. This issue was found while testing HDMI
> in the Juno platform.
>
> Signed-off-by: Amit Daniel Kachhap <[email protected]>

Any Fixes: tag here?

> ---
> drivers/clk/clk-scmi.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/clk/clk-scmi.c b/drivers/clk/clk-scmi.c
> index bb2a6f2..a985bf5 100644
> --- a/drivers/clk/clk-scmi.c
> +++ b/drivers/clk/clk-scmi.c
> @@ -60,9 +59,9 @@ static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate,
>
> ftmp = rate - fmin;
> ftmp += clk->info->range.step_size - 1; /* to round up */
> - step = do_div(ftmp, clk->info->range.step_size);
> + do_div(ftmp, clk->info->range.step_size);
>
> - return step * clk->info->range.step_size + fmin;
> + return ftmp * clk->info->range.step_size + fmin;

Good catch.


2018-07-30 05:34:54

by Amit Kachhap

[permalink] [raw]
Subject: Re: [PATCH] clk: scmi: Fix the rounding of clock rate

Hi,

On Fri, Jul 27, 2018 at 10:07 PM, Stephen Boyd <[email protected]> wrote:
> Quoting Amit Daniel Kachhap (2018-07-27 07:01:52)
>> This fix rounds the clock rate properly by using quotient and not
>> remainder in the calculation. This issue was found while testing HDMI
>> in the Juno platform.
>>
>> Signed-off-by: Amit Daniel Kachhap <[email protected]>
>
> Any Fixes: tag here?
Yes, This patch is tested with Linux v4.18-rc6 tag.
>
>> ---
>> drivers/clk/clk-scmi.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/clk/clk-scmi.c b/drivers/clk/clk-scmi.c
>> index bb2a6f2..a985bf5 100644
>> --- a/drivers/clk/clk-scmi.c
>> +++ b/drivers/clk/clk-scmi.c
>> @@ -60,9 +59,9 @@ static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate,
>>
>> ftmp = rate - fmin;
>> ftmp += clk->info->range.step_size - 1; /* to round up */
>> - step = do_div(ftmp, clk->info->range.step_size);
>> + do_div(ftmp, clk->info->range.step_size);
>>
>> - return step * clk->info->range.step_size + fmin;
>> + return ftmp * clk->info->range.step_size + fmin;
>
> Good catch.
Thanks.
>
Regards,
Amit

2018-07-30 11:38:25

by Sudeep Holla

[permalink] [raw]
Subject: Re: [PATCH] clk: scmi: Fix the rounding of clock rate

On Fri, Jul 27, 2018 at 07:31:52PM +0530, Amit Daniel Kachhap wrote:
> This fix rounds the clock rate properly by using quotient and not
> remainder in the calculation. This issue was found while testing HDMI
> in the Juno platform.
>
Good find, thanks.

Acked-by: Sudeep Holla <[email protected]>

--
Regards,
Sudeep

2018-07-30 11:42:11

by Sudeep Holla

[permalink] [raw]
Subject: Re: [PATCH] clk: scmi: Fix the rounding of clock rate

On Mon, Jul 30, 2018 at 11:03:51AM +0530, Amit Daniel Kachhap wrote:
> Hi,
>
> On Fri, Jul 27, 2018 at 10:07 PM, Stephen Boyd <[email protected]> wrote:
> > Quoting Amit Daniel Kachhap (2018-07-27 07:01:52)
> >> This fix rounds the clock rate properly by using quotient and not
> >> remainder in the calculation. This issue was found while testing HDMI
> >> in the Juno platform.
> >>
> >> Signed-off-by: Amit Daniel Kachhap <[email protected]>
> >
> > Any Fixes: tag here?
> Yes, This patch is tested with Linux v4.18-rc6 tag.
>

No Stephen meant the commit that this fixes, something like below:

Fixes: 6d6a1d82eaef ("clk: add support for clocks provided by SCMI")

so that it can get backported if required.

--
Regards,
Sudeep

2018-07-30 16:28:04

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH] clk: scmi: Fix the rounding of clock rate

Quoting Sudeep Holla (2018-07-30 04:40:56)
> On Mon, Jul 30, 2018 at 11:03:51AM +0530, Amit Daniel Kachhap wrote:
> > Hi,
> >
> > On Fri, Jul 27, 2018 at 10:07 PM, Stephen Boyd <[email protected]> wrote:
> > > Quoting Amit Daniel Kachhap (2018-07-27 07:01:52)
> > >> This fix rounds the clock rate properly by using quotient and not
> > >> remainder in the calculation. This issue was found while testing HDMI
> > >> in the Juno platform.
> > >>
> > >> Signed-off-by: Amit Daniel Kachhap <[email protected]>
> > >
> > > Any Fixes: tag here?
> > Yes, This patch is tested with Linux v4.18-rc6 tag.
> >
>
> No Stephen meant the commit that this fixes, something like below:
>
> Fixes: 6d6a1d82eaef ("clk: add support for clocks provided by SCMI")
>
> so that it can get backported if required.
>

Yep! Thanks!


2018-07-31 05:22:46

by Amit Kachhap

[permalink] [raw]
Subject: Re: [PATCH] clk: scmi: Fix the rounding of clock rate

On Mon, Jul 30, 2018 at 5:10 PM, Sudeep Holla <[email protected]> wrote:
> On Mon, Jul 30, 2018 at 11:03:51AM +0530, Amit Daniel Kachhap wrote:
>> Hi,
>>
>> On Fri, Jul 27, 2018 at 10:07 PM, Stephen Boyd <[email protected]> wrote:
>> > Quoting Amit Daniel Kachhap (2018-07-27 07:01:52)
>> >> This fix rounds the clock rate properly by using quotient and not
>> >> remainder in the calculation. This issue was found while testing HDMI
>> >> in the Juno platform.
>> >>
>> >> Signed-off-by: Amit Daniel Kachhap <[email protected]>
>> >
>> > Any Fixes: tag here?
>> Yes, This patch is tested with Linux v4.18-rc6 tag.
>>
>
> No Stephen meant the commit that this fixes, something like below:
>
> Fixes: 6d6a1d82eaef ("clk: add support for clocks provided by SCMI")
>
> so that it can get backported if required.

ok my mistake. Thanks for the clarification.

>
> --
> Regards,
> Sudeep

2018-07-31 05:58:44

by Amit Kachhap

[permalink] [raw]
Subject: [PATCH] clk: scmi: Fix the rounding of clock rate

This fix rounds the clock rate properly by using quotient and not
remainder in the calculation. This issue was found while testing HDMI
in the Juno platform.

Fixes: 6d6a1d82eaef7 ("clk: add support for clocks provided by SCMI")
Acked-by: Sudeep Holla <[email protected]>
Signed-off-by: Amit Daniel Kachhap <[email protected]>
---
drivers/clk/clk-scmi.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/clk-scmi.c b/drivers/clk/clk-scmi.c
index bb2a6f2..a985bf5 100644
--- a/drivers/clk/clk-scmi.c
+++ b/drivers/clk/clk-scmi.c
@@ -38,7 +38,6 @@ static unsigned long scmi_clk_recalc_rate(struct clk_hw *hw,
static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate,
unsigned long *parent_rate)
{
- int step;
u64 fmin, fmax, ftmp;
struct scmi_clk *clk = to_scmi_clk(hw);

@@ -60,9 +59,9 @@ static long scmi_clk_round_rate(struct clk_hw *hw, unsigned long rate,

ftmp = rate - fmin;
ftmp += clk->info->range.step_size - 1; /* to round up */
- step = do_div(ftmp, clk->info->range.step_size);
+ do_div(ftmp, clk->info->range.step_size);

- return step * clk->info->range.step_size + fmin;
+ return ftmp * clk->info->range.step_size + fmin;
}

static int scmi_clk_set_rate(struct clk_hw *hw, unsigned long rate,
--
2.7.4


2018-08-02 20:52:27

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH] clk: scmi: Fix the rounding of clock rate

Quoting Amit Daniel Kachhap (2018-07-30 22:55:55)
> This fix rounds the clock rate properly by using quotient and not
> remainder in the calculation. This issue was found while testing HDMI
> in the Juno platform.
>
> Fixes: 6d6a1d82eaef7 ("clk: add support for clocks provided by SCMI")
> Acked-by: Sudeep Holla <[email protected]>
> Signed-off-by: Amit Daniel Kachhap <[email protected]>
> ---

Applied to clk-next