[PATCH 02/40] clk: add a fixed factor clock
Domenico Andreoli
cavokz at gmail.com
Thu Apr 19 02:16:20 EDT 2012
On Thu, Apr 19, 2012 at 09:18:01AM +0530, Viresh Kumar wrote:
> On 4/10/2012 7:15 PM, Sascha Hauer wrote:
> > Having fixed factors/dividers in hardware is a common pattern, so
> > add a basic clock type doing this. It basically describes a fixed
> > factor clock using a nominator and a denominator.
> >
> > Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> > ---
> > drivers/clk/Makefile | 2 +-
> > drivers/clk/clk-fixed-factor.c | 97 ++++++++++++++++++++++++++++++++++++++++
> > include/linux/clk-provider.h | 4 ++
> > 3 files changed, 102 insertions(+), 1 deletion(-)
> > create mode 100644 drivers/clk/clk-fixed-factor.c
>
> @Mike: It would be better if you can take this patch atleast ASAP in your next,
> so that Arnd can pull in SPEAr clk patches.
>
> Hi Sascha/Mike,
>
> Please see if following can be squashed with this patch. This clock is
> used for SPEAr too :)
>
> ---
> drivers/clk/clk-fixed-factor.c | 12 ++----------
> 1 files changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c
> index 7c5e1fc..aaf5a88 100644
> --- a/drivers/clk/clk-fixed-factor.c
> +++ b/drivers/clk/clk-fixed-factor.c
> @@ -16,7 +16,6 @@ struct clk_fixed_factor {
> struct clk_hw hw;
> unsigned int mult;
> unsigned int div;
> - char *parent[1];
add const here
> };
>
> #define to_clk_fixed_factor(_hw) container_of(_hw, struct clk_fixed_factor, hw)
> @@ -75,22 +74,15 @@ struct clk *clk_register_fixed_factor(struct device *dev, const char *name,
> fix->mult = mult;
> fix->div = div;
>
> - if (parent_name) {
char *tmp = kstrdup(parent_name, GFP_KERNEL);
if (!tmp)
goto out;
fix->parent[0] = tmp;
> - }
> -
> clk = clk_register(dev, name,
> &clk_fixed_factor_ops, &fix->hw,
> - fix->parent,
> + &parent_name,
&parent_name is a pointer to a stack variable, right? clk_register
saves it in the clk struct for later use, when the stack is already gone.
> (parent_name ? 1 : 0),
> flags);
> +
> if (clk)
> return clk;
>
> -out:
> - kfree(fix->parent[0]);
> kfree(fix);
>
> return NULL;
BRs,
Domenico
More information about the linux-arm-kernel
mailing list