[PATCH/RFC 5/6] staging: board: Add support for devices with complex dependencies

Geert Uytterhoeven geert at linux-m68k.org
Sun Apr 5 08:55:06 UTC 2015


Hi Russell,

On Fri, Apr 3, 2015 at 7:04 PM, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Fri, Apr 03, 2015 at 03:57:27PM +0300, Dan Carpenter wrote:
>> On Fri, Apr 03, 2015 at 02:42:02PM +0200, Geert Uytterhoeven wrote:
>> > +int __init board_staging_register_clock(const struct board_staging_clk *bsc)
>> > +{
>> > +   struct clk *clk;
>> > +   int error;
>> > +
>> > +   pr_debug("Registering clock %s for con_id %s dev_id %s\n", bsc->clk,
>> > +            bsc->con_id, bsc->dev_id);
>> > +   clk = clk_get(NULL, bsc->clk);
>> > +   if (IS_ERR(clk)) {
>> > +           error = PTR_ERR(clk);
>> > +           pr_err("Failed to get clock %s (%d)\n", bsc->clk, error);
>> > +           return error;
>> > +   }
>> > +
>> > +   error = clk_register_clkdev(clk, bsc->con_id, bsc->dev_id);
>> > +   if (error)
>> > +           pr_err("Failed to register clock %s (%d)\n", bsc->clk, error);
>> > +           return error;
>>
>> Missing curly braces.  Also it's weird that don't we need a clk_put()
>> on the error patch as well as the success path?
>
> What's also concerning is that this is an abuse of this.
>
> clk_register_clkdev() is supposed to be used with clocks created with
> the CCF functions, it's not for creating aliases.
>
> We have clk_add_alias() which does *everything* that this function does,
> only in a less buggy way.

Thanks, I didn't know about clk_add_alias(). I had based the above on long gone
code under arch/arm/mach-shmobile to use platform devices with CCF.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


More information about the devel mailing list