Message ID | 1381848794-11761-9-git-send-email-pdeschrijver@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 10/15/2013 08:52 AM, Peter De Schrijver wrote: > Introduce a common infrastructure for sharing clock initialization between > SoCs. > diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c > +struct clk ** __init tegra_lookup_dt_id(int clk_id, > + struct tegra_clk *tegra_clk) > +{ > + if (tegra_clk[clk_id].present) > + return &clks[tegra_clk[clk_id].dt_id]; > + else > + return NULL; Does this need range-checking? Or do we assume that since this is an internal function, "clk_id" will never be out-of-range?
On Tue, Oct 15, 2013 at 09:01:43PM +0200, Stephen Warren wrote: > On 10/15/2013 08:52 AM, Peter De Schrijver wrote: > > Introduce a common infrastructure for sharing clock initialization between > > SoCs. > > > diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c > > > +struct clk ** __init tegra_lookup_dt_id(int clk_id, > > + struct tegra_clk *tegra_clk) > > +{ > > + if (tegra_clk[clk_id].present) > > + return &clks[tegra_clk[clk_id].dt_id]; > > + else > > + return NULL; > > Does this need range-checking? Or do we assume that since this is an > internal function, "clk_id" will never be out-of-range? That was my assumption indeed. I could add a range check if you think that's useful. Cheers, Peter.
On 10/16/2013 08:34 AM, Peter De Schrijver wrote: > On Tue, Oct 15, 2013 at 09:01:43PM +0200, Stephen Warren wrote: >> On 10/15/2013 08:52 AM, Peter De Schrijver wrote: >>> Introduce a common infrastructure for sharing clock initialization between >>> SoCs. >> >>> diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c >> >>> +struct clk ** __init tegra_lookup_dt_id(int clk_id, >>> + struct tegra_clk *tegra_clk) >>> +{ >>> + if (tegra_clk[clk_id].present) >>> + return &clks[tegra_clk[clk_id].dt_id]; >>> + else >>> + return NULL; >> >> Does this need range-checking? Or do we assume that since this is an >> internal function, "clk_id" will never be out-of-range? > > That was my assumption indeed. I could add a range check if you think that's > useful. It's probably OK if it's a purely internal function; I just wanted to double-check.
diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c index 1253217..c8c84ce 100644 --- a/drivers/clk/tegra/clk.c +++ b/drivers/clk/tegra/clk.c @@ -214,6 +214,15 @@ void __init tegra_add_of_provider(struct device_node *np) of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data); } +struct clk ** __init tegra_lookup_dt_id(int clk_id, + struct tegra_clk *tegra_clk) +{ + if (tegra_clk[clk_id].present) + return &clks[tegra_clk[clk_id].dt_id]; + else + return NULL; +} + tegra_clk_apply_init_table_func tegra_clk_apply_init_table; void __init tegra_clocks_apply_init_table(void) diff --git a/drivers/clk/tegra/clk.h b/drivers/clk/tegra/clk.h index a73a678..be45705 100644 --- a/drivers/clk/tegra/clk.h +++ b/drivers/clk/tegra/clk.h @@ -568,6 +568,11 @@ struct tegra_clk_duplicate { }, \ } +struct tegra_clk { + int dt_id; + bool present; +}; + void tegra_init_from_table(struct tegra_clk_init_table *tbl, struct clk *clks[], int clk_max); @@ -577,6 +582,8 @@ void tegra_init_dup_clks(struct tegra_clk_duplicate *dup_list, struct tegra_clk_periph_regs *get_reg_bank(int clkid); struct clk **tegra_clk_init(int num, int periph_banks); +struct clk **tegra_lookup_dt_id(int clk_id, struct tegra_clk *tegra_clk); + void tegra_add_of_provider(struct device_node *np); void tegra114_clock_tune_cpu_trimmers_high(void);
Introduce a common infrastructure for sharing clock initialization between SoCs. Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com> --- drivers/clk/tegra/clk.c | 9 +++++++++ drivers/clk/tegra/clk.h | 7 +++++++ 2 files changed, 16 insertions(+), 0 deletions(-)