Re: [v8] clk: qcom: clk-rpmh: Add QCOM RPMh clock driver

From: Stephen Boyd
Date: Mon May 07 2018 - 20:28:28 EST


Quoting Taniya Das (2018-05-07 03:48:06)
> Hello Stephen,
>
> Could you please let me know your comments on the below.
>
> On 5/4/2018 10:21 PM, Stephen Boyd wrote:
> > Quoting Taniya Das (2018-05-04 03:02:38)
> >> diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c
> >> new file mode 100644
> >> index 0000000..944fe04
> >> --- /dev/null
> >> +++ b/drivers/clk/qcom/clk-rpmh.c
> >> @@ -0,0 +1,334 @@
> >> +// SPDX-License-Identifier: GPL-2.0
> >> +/*
> >> + * Copyright (c) 2018, The Linux Foundation. All rights reserved.
> >> + */
> >> +
> >> +};
> >> +
> >> +struct clk_rpmh_desc {
> >> + struct clk_hw **clks;
> >> + size_t num_clks;
> >> +};
> >
> > This could be replaced with the clk_hw_onecell_data struct and then the
> > only problem becomes the const part which seems pretty impossible to fix
> > at this point. One "workaround" is to memdup the structure. Ugh.
> >
>
> Will be okay, if I can the following?
>
> _probe...
> {
> struct clk_rpmh_desc *hw_desc_data;
> ....
>
> hw_desc_data = kmemdup(desc, sizeof(*desc), GFP_KERNEL);
>
> ...
> ret = devm_of_clk_add_hw_provider(&pdev->dev, of_clk_rpmh_hw_get,
> hw_desc_data);
> ....
>
> }
>
> And also I fix the "getter" function.

I'd rather see the check for out of bounds number just go away, unless
that's helping something. The kmemdup() doesn't look good.