Message ID | 1403797705-26910-1-git-send-email-pdeschrijver@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 06/26/2014 09:48 AM, Peter De Schrijver wrote: > When writing a module for testing or debugging purposes, there is no way to > get hold of clk handles. This patch solves this by exposing all valid clocks > as clkdev's for the virtual device tegra-clk-debug. This is to support clk_get_sys()? I guess this seems fine, so feel free to apply it, but I slightly wonder why not just include this change as part of the presumably local and never-to-be-upstreamed test/dev module?
Hello. On 06/26/2014 07:48 PM, Peter De Schrijver wrote: > When writing a module for testing or debugging purposes, there is no way to > get hold of clk handles. This patch solves this by exposing all valid clocks > as clkdev's for the virtual device tegra-clk-debug. > Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com> > --- > drivers/clk/tegra/clk.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c > index c0a7d77..3315fca 100644 > --- a/drivers/clk/tegra/clk.c > +++ b/drivers/clk/tegra/clk.c > @@ -277,6 +277,12 @@ void __init tegra_register_devclks(struct tegra_devclk *dev_clks, int num) > for (i = 0; i < num; i++, dev_clks++) > clk_register_clkdev(clks[dev_clks->dt_id], dev_clks->con_id, > dev_clks->dev_id); > + > + for (i = 0; i < clk_num; i++) { > + if (!IS_ERR(clks[i]) || !clks[i]) Are you sure it should be || here, not &&? The following code doesn't seem to make much sense this way... Perhaps you meant !IS_ERR_OR_NULL(clks[i])? > + clk_register_clkdev(clks[i], __clk_get_name(clks[i]), > + "tegra-clk-debug"); > + } > } WBR, Sergei
On Thu, Jun 26, 2014 at 05:52:16PM +0200, Stephen Warren wrote: > On 06/26/2014 09:48 AM, Peter De Schrijver wrote: > > When writing a module for testing or debugging purposes, there is no way to > > get hold of clk handles. This patch solves this by exposing all valid clocks > > as clkdev's for the virtual device tegra-clk-debug. > > This is to support clk_get_sys()? > Yes. > I guess this seems fine, so feel free to apply it, but I slightly wonder > why not just include this change as part of the presumably local and > never-to-be-upstreamed test/dev module? The idea is to allow local debug modules to get hold of the struct clk *. I don't think that's possible without using clk_get_sys()? Cheers, Peter.
On 06/27/2014 06:19 AM, Peter De Schrijver wrote: > On Thu, Jun 26, 2014 at 05:52:16PM +0200, Stephen Warren wrote: >> On 06/26/2014 09:48 AM, Peter De Schrijver wrote: >>> When writing a module for testing or debugging purposes, there is no way to >>> get hold of clk handles. This patch solves this by exposing all valid clocks >>> as clkdev's for the virtual device tegra-clk-debug. >> >> This is to support clk_get_sys()? >> > > Yes. > >> I guess this seems fine, so feel free to apply it, but I slightly wonder >> why not just include this change as part of the presumably local and >> never-to-be-upstreamed test/dev module? > > The idea is to allow local debug modules to get hold of the struct clk *. I > don't think that's possible without using clk_get_sys()? Well, for a debug hack you can always just add extra clock entries into some DT node and so avoid clk_get_sys:-) My point wasn't so much about not using clk_get_sys in a debug driver, but more that if this patch is only required to support non-upstreamed debug code, perhaps this patch should stay downstream along with that non-upstreamed debug code. That said, I'm not really objecting to it, just making a minor comment.
diff --git a/drivers/clk/tegra/clk.c b/drivers/clk/tegra/clk.c index c0a7d77..3315fca 100644 --- a/drivers/clk/tegra/clk.c +++ b/drivers/clk/tegra/clk.c @@ -277,6 +277,12 @@ void __init tegra_register_devclks(struct tegra_devclk *dev_clks, int num) for (i = 0; i < num; i++, dev_clks++) clk_register_clkdev(clks[dev_clks->dt_id], dev_clks->con_id, dev_clks->dev_id); + + for (i = 0; i < clk_num; i++) { + if (!IS_ERR(clks[i]) || !clks[i]) + clk_register_clkdev(clks[i], __clk_get_name(clks[i]), + "tegra-clk-debug"); + } } struct clk ** __init tegra_lookup_dt_id(int clk_id,
When writing a module for testing or debugging purposes, there is no way to get hold of clk handles. This patch solves this by exposing all valid clocks as clkdev's for the virtual device tegra-clk-debug. Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com> --- drivers/clk/tegra/clk.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)