Thread (20 messages) 20 messages, 5 authors, 2013-06-12

[PATCH v3 1/7] clk: divider: add flag to limit possible dividers to even numbers

From: heiko@sntech.de (Heiko Stübner)
Date: 2013-06-11 12:06:27
Also in: linux-devicetree, linux-mmc, lkml

Am Dienstag, 11. Juni 2013, 13:51:56 schrieb Andy Shevchenko:
On Tue, Jun 11, 2013 at 2:29 PM, Heiko St?bner [off-list ref] wrote:
quoted
SoCs like the Rockchip Cortex-A9 ones contain divider some clocks
that use the regular mechanisms for storage but allow only even
dividers and 1 to be used.

Therefore add a flag that lets _is_valid_div limit the valid dividers
to these values. _get_maxdiv is also adapted to return even values
for the CLK_DIVIDER_ONE_BASED case.
Just one nitpick below (I'm okay with current implementation, but you
might find my proposal useful).
quoted
--- a/drivers/clk/clk-divider.c
+++ b/drivers/clk/clk-divider.c
@@ -141,6 +149,8 @@ static bool _is_valid_div(struct clk_divider
*divider, unsigned int div)

                return is_power_of_2(div);
        
        if (divider->table)
        
                return _is_valid_table_div(divider->table, div);

+       if (divider->flags & CLK_DIVIDER_EVEN && div != 1 && (div % 2) !=
0) +               return false;

        return true;
 
 }
What if rewrite like

 if (divider->flags & CLK_DIVIDER_EVEN == 0)
 return true;

return div < 2 || div % 2 == 0;
hmm, the current structure is of the form of testing for each feature and 
doing a applicable action if the flag is set. So it also is extensible for 
future flags and checking for the absence of an attribute while the rest of 
the conditionals check for the presence also might make the code harder to 
read.

So for me the current variant somehow looks more intuitive.

But I'll just let the majority decide ;-)


Heiko
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help