Re: [linux-sunxi] Re: [PATCH v6 1/6] clk: sunxi-ng: div: Add support for fixed post-divider

2017-08-11 Thread icenowy

在 2017-08-12 12:13,Chen-Yu Tsai 写道:

On Sat, Aug 12, 2017 at 11:07 AM,   wrote:

在 2017-07-17 16:52,Maxime Ripard 写道:


On Fri, Jul 14, 2017 at 05:49:23PM +0300, Priit Laes wrote:


SATA clock on sun4i/sun7i is of type (parent) / M / 6 where
6 is fixed post-divider.

Signed-off-by: Priit Laes 
---
 drivers/clk/sunxi-ng/ccu_div.c | 15 +--
 drivers/clk/sunxi-ng/ccu_div.h |  3 ++-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/sunxi-ng/ccu_div.c
b/drivers/clk/sunxi-ng/ccu_div.c
index c0e5c10..744502a 100644
--- a/drivers/clk/sunxi-ng/ccu_div.c
+++ b/drivers/clk/sunxi-ng/ccu_div.c
@@ -21,6 +21,9 @@ static unsigned long ccu_div_round_rate(struct
ccu_mux_internal *mux,
 {
struct ccu_div *cd = data;

+   if (cd->common.features & CCU_FEATURE_FIXED_POSTDIV)
+   rate *= cd->fixed_post_div;
+
return divider_round_rate_parent(>common.hw, parent,
 rate, parent_rate,
 cd->div.table, 
cd->div.width,




You still haven't addressed the biggest issue with this patch, see:
https://patchwork.kernel.org/patch/9825565/



I think he has already did the changes suggested in the review.


Nope. Only half of it is fixed. First you "unapply" the post-divider,
i.e. multiply the rate by the divider. Then you pass it to
divider_round_rate_parent. You still have to reapply the divider
to the result. This last part is missing. This means the clock
rate returned by ccu_div_round_rate is going to be off.

Instead the return statement should be

return divider_round_rate_parent(...) / cd->fixed_post_div


Oh, got it by reading other CCU clock types that has fixed postdiv.

Thanks!



ChenYu



(P.S. during developing R40 CCU driver I found that pll-periph0-sata
also needs this patch, so I'm rechecking it)



Maxime

___
linux-arm-kernel mailing list
linux-arm-ker...@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



--
You received this message because you are subscribed to the Google 
Groups

"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send 
an

email to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


___
linux-arm-kernel mailing list
linux-arm-ker...@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel


--
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Re: [PATCH v6 1/6] clk: sunxi-ng: div: Add support for fixed post-divider

2017-08-11 Thread Chen-Yu Tsai
On Sat, Aug 12, 2017 at 11:07 AM,   wrote:
> 在 2017-07-17 16:52,Maxime Ripard 写道:
>>
>> On Fri, Jul 14, 2017 at 05:49:23PM +0300, Priit Laes wrote:
>>>
>>> SATA clock on sun4i/sun7i is of type (parent) / M / 6 where
>>> 6 is fixed post-divider.
>>>
>>> Signed-off-by: Priit Laes 
>>> ---
>>>  drivers/clk/sunxi-ng/ccu_div.c | 15 +--
>>>  drivers/clk/sunxi-ng/ccu_div.h |  3 ++-
>>>  2 files changed, 15 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/clk/sunxi-ng/ccu_div.c
>>> b/drivers/clk/sunxi-ng/ccu_div.c
>>> index c0e5c10..744502a 100644
>>> --- a/drivers/clk/sunxi-ng/ccu_div.c
>>> +++ b/drivers/clk/sunxi-ng/ccu_div.c
>>> @@ -21,6 +21,9 @@ static unsigned long ccu_div_round_rate(struct
>>> ccu_mux_internal *mux,
>>>  {
>>> struct ccu_div *cd = data;
>>>
>>> +   if (cd->common.features & CCU_FEATURE_FIXED_POSTDIV)
>>> +   rate *= cd->fixed_post_div;
>>> +
>>> return divider_round_rate_parent(>common.hw, parent,
>>>  rate, parent_rate,
>>>  cd->div.table, cd->div.width,
>>
>>
>>
>> You still haven't addressed the biggest issue with this patch, see:
>> https://patchwork.kernel.org/patch/9825565/
>
>
> I think he has already did the changes suggested in the review.

Nope. Only half of it is fixed. First you "unapply" the post-divider,
i.e. multiply the rate by the divider. Then you pass it to
divider_round_rate_parent. You still have to reapply the divider
to the result. This last part is missing. This means the clock
rate returned by ccu_div_round_rate is going to be off.

Instead the return statement should be

return divider_round_rate_parent(...) / cd->fixed_post_div

ChenYu

>
> (P.S. during developing R40 CCU driver I found that pll-periph0-sata
> also needs this patch, so I'm rechecking it)
>
>>
>> Maxime
>>
>> ___
>> linux-arm-kernel mailing list
>> linux-arm-ker...@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "linux-sunxi" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to linux-sunxi+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: [PATCH v6 1/6] clk: sunxi-ng: div: Add support for fixed post-divider

2017-08-11 Thread icenowy

在 2017-07-17 16:52,Maxime Ripard 写道:

On Fri, Jul 14, 2017 at 05:49:23PM +0300, Priit Laes wrote:

SATA clock on sun4i/sun7i is of type (parent) / M / 6 where
6 is fixed post-divider.

Signed-off-by: Priit Laes 
---
 drivers/clk/sunxi-ng/ccu_div.c | 15 +--
 drivers/clk/sunxi-ng/ccu_div.h |  3 ++-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/sunxi-ng/ccu_div.c 
b/drivers/clk/sunxi-ng/ccu_div.c

index c0e5c10..744502a 100644
--- a/drivers/clk/sunxi-ng/ccu_div.c
+++ b/drivers/clk/sunxi-ng/ccu_div.c
@@ -21,6 +21,9 @@ static unsigned long ccu_div_round_rate(struct 
ccu_mux_internal *mux,

 {
struct ccu_div *cd = data;

+   if (cd->common.features & CCU_FEATURE_FIXED_POSTDIV)
+   rate *= cd->fixed_post_div;
+
return divider_round_rate_parent(>common.hw, parent,
 rate, parent_rate,
 cd->div.table, cd->div.width,



You still haven't addressed the biggest issue with this patch, see:
https://patchwork.kernel.org/patch/9825565/


I think he has already did the changes suggested in the review.

(P.S. during developing R40 CCU driver I found that pll-periph0-sata
also needs this patch, so I'm rechecking it)



Maxime

___
linux-arm-kernel mailing list
linux-arm-ker...@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel


--
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: [PATCH v6 1/6] clk: sunxi-ng: div: Add support for fixed post-divider

2017-07-17 Thread Maxime Ripard
On Fri, Jul 14, 2017 at 05:49:23PM +0300, Priit Laes wrote:
> SATA clock on sun4i/sun7i is of type (parent) / M / 6 where
> 6 is fixed post-divider.
> 
> Signed-off-by: Priit Laes 
> ---
>  drivers/clk/sunxi-ng/ccu_div.c | 15 +--
>  drivers/clk/sunxi-ng/ccu_div.h |  3 ++-
>  2 files changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/clk/sunxi-ng/ccu_div.c b/drivers/clk/sunxi-ng/ccu_div.c
> index c0e5c10..744502a 100644
> --- a/drivers/clk/sunxi-ng/ccu_div.c
> +++ b/drivers/clk/sunxi-ng/ccu_div.c
> @@ -21,6 +21,9 @@ static unsigned long ccu_div_round_rate(struct 
> ccu_mux_internal *mux,
>  {
>   struct ccu_div *cd = data;
>  
> + if (cd->common.features & CCU_FEATURE_FIXED_POSTDIV)
> + rate *= cd->fixed_post_div;
> +
>   return divider_round_rate_parent(>common.hw, parent,
>rate, parent_rate,
>cd->div.table, cd->div.width,


You still haven't addressed the biggest issue with this patch, see:
https://patchwork.kernel.org/patch/9825565/

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


signature.asc
Description: PGP signature