[PATCH v8 4/7] clk: use struct clk only for external API
Stephen Boyd
sboyd at codeaurora.org
Wed Sep 3 16:45:47 PDT 2014
On 09/01/14 08:34, Tomeu Vizoso wrote:
>
> NOTE: with this patch, clk_get_parent() behaves like clk_get(), i.e. it
> needs to be matched with a clk_put(). Otherwise, memory will leak.
>
[...]
> }
> +EXPORT_SYMBOL_GPL(clk_provider_get_parent);
> +
> +/**
> + * clk_get_parent - return the parent of a clk
> + * @clk_user: the clk whose parent gets returned
> + *
> + * Simply returns clk->parent. Returns NULL if clk is NULL.
We should at least document here that clk_put() is expected to be called
when it's not being used. I wonder why it's this way though. Why can't
every clk_core have a private clk pointer to it's parent that's created
during registration time? Then we just hand that out for
clk_get_parent() and destroy it when the clk_core is freed?
> + */
> +struct clk *clk_get_parent(struct clk *clk_user)
> +{
> + struct clk_core *clk;
> + struct clk_core *parent;
> +
> + if (!clk_user)
> + return NULL;
> +
> + clk = clk_to_clk_core(clk_user);
> + parent = clk_provider_get_parent(clk);
> +
> + return __clk_create_clk(parent);
> +}
> EXPORT_SYMBOL_GPL(clk_get_parent);
>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the linux-arm-kernel
mailing list