[PATCHv3 5/7] ARM: OMAP4: clock data: add clockdomains for clocks used as main clocks
paul at pwsan.com
Mon Jun 18 11:45:54 EDT 2012
On Mon, 18 Jun 2012, Cousson, Benoit wrote:
> I guess that patch need to be revisited based on discussion we had and
> the patch you proposed in . Assuming Tony is OK, it should be
> probably part of the -rc, because this domain should not have been
> introduced in 3.5-rc1 at all for OMAP4.
Well as mentioned already on the lists, these clockdomains clearly exist;
they are documented in the TRM and functional specification, and make
sense from a chip perspective.
For 3.6, I've already agreed to remove those clockdomains, even though it
doesn't really match what's there on the chip. But I think 3.6 is the
right time to do that.
> So it will be better to revert the patch that introduced that first
> before adding any new fix that will rely on a code that will disappear.
> In fact, I think the proper way to fix that while maintaining the
> OMAP2&3 way of dealing with clkdm is to ensure that at least one clkdm
> is there in either hwmod or the main_clk. That will fix these issues and
> the one that will append when the fake main_clk will be removed.
> Here is a patch that is doing that.
Please document what systems this has been tested on.
>  http://firstname.lastname@example.org/msg70177.html
> >From e5ffe6533236125c3c0b5eff883bfc1cf3cbe9f4 Mon Sep 17 00:00:00 2001
> From: Benoit Cousson <b-cousson at ti.com>
> Date: Fri, 15 Jun 2012 11:26:49 +0200
> Subject: [PATCH] ARM: OMAP2+: hwmod: Do not check clkdm for main_clk if oh does have one
> When a clkdm is handled directly at the hwmod level, there is no need to handle
> it with the main_clk as well. It is thus useless to complain about the missing clkdm for the main_clk in that case.
> Warn only if the clkdm is missing in both main_clk and hwmod.
> Init hwmod clkdm first to ensure it will be there when the main_clk
> will be initialized.
> Signed-off-by: Benoit Cousson <b-cousson at ti.com>
> Cc: Paul Walmsley <paul at pwsan.com>
> arch/arm/mach-omap2/omap_hwmod.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
> diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
> index 162f9c7..f33f4e2 100644
> --- a/arch/arm/mach-omap2/omap_hwmod.c
> +++ b/arch/arm/mach-omap2/omap_hwmod.c
> @@ -609,7 +609,7 @@ static int _init_main_clk(struct omap_hwmod *oh)
> return -EINVAL;
> - if (!oh->_clk->clkdm)
> + if (!oh->_clk->clkdm && !oh->clkdm)
> pr_warning("omap_hwmod: %s: missing clockdomain for %s.\n",
> oh->main_clk, oh->_clk->name);
> @@ -1339,10 +1339,10 @@ static int _init_clocks(struct omap_hwmod *oh, void *data)
> pr_debug("omap_hwmod: %s: looking up clocks\n", oh->name);
> + ret |= _init_clkdm(oh);
> ret |= _init_main_clk(oh);
> ret |= _init_interface_clks(oh);
> ret |= _init_opt_clks(oh);
> - ret |= _init_clkdm(oh);
> if (!ret)
> oh->_state = _HWMOD_STATE_CLKS_INITED;
More information about the linux-arm-kernel