From: Tero Kristo <t-kristo@ti.com> To: linux-omap@vger.kernel.org, paul@pwsan.com, khilman@ti.com Cc: linux-arm-kernel@lists.infradead.org Subject: [PATCHv5 08/10] ARM: OMAP4: hwmod: add support for hwmod autoidle flag Date: Tue, 25 Sep 2012 12:32:43 +0300 [thread overview] Message-ID: <1348565565-14744-9-git-send-email-t-kristo@ti.com> (raw) In-Reply-To: <1348565565-14744-1-git-send-email-t-kristo@ti.com> If a hwmod is in HWAUTO mode, it will idle automatically and should not be accounted for in the clkdm / pwrdm usecounts. Thus, flag modules in such mode as autoidle during init, and ignore these in subsequent usecount calculations. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/mach-omap2/clockdomain.c | 6 ++++++ arch/arm/mach-omap2/omap_hwmod.c | 3 +++ arch/arm/plat-omap/include/plat/omap_hwmod.h | 2 ++ 3 files changed, 11 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c index 2fa433a..0ee7d09a 100644 --- a/arch/arm/mach-omap2/clockdomain.c +++ b/arch/arm/mach-omap2/clockdomain.c @@ -1055,6 +1055,9 @@ int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod *oh) if (!oh) return -EINVAL; + if (oh->flags & HWMOD_AUTOIDLE) + return 0; + return _clkdm_clk_hwmod_enable(clkdm); } @@ -1086,6 +1089,9 @@ int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod *oh) if (!oh) return -EINVAL; + if (oh->flags & HWMOD_AUTOIDLE) + return 0; + return _clkdm_clk_hwmod_disable(clkdm); } diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index f826917..6807b02 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -2377,6 +2377,9 @@ static int __init _register(struct omap_hwmod *oh) INIT_LIST_HEAD(&oh->slave_ports); spin_lock_init(&oh->_lock); + if (cpu_is_omap44xx() && oh->prcm.omap4.modulemode == MODULEMODE_HWCTRL) + oh->flags |= HWMOD_AUTOIDLE; + oh->_state = _HWMOD_STATE_REGISTERED; /* diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 0f840a9..36130f9 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h @@ -440,6 +440,7 @@ struct omap_hwmod_omap4_prcm { * in order to complete the reset. Optional clocks will be disabled * again after the reset. * HWMOD_16BIT_REG: Module has 16bit registers + * HWMOD_AUTOIDLE: Module is controlled automatically by hardware */ #define HWMOD_SWSUP_SIDLE (1 << 0) #define HWMOD_SWSUP_MSTANDBY (1 << 1) @@ -450,6 +451,7 @@ struct omap_hwmod_omap4_prcm { #define HWMOD_NO_IDLEST (1 << 6) #define HWMOD_CONTROL_OPT_CLKS_IN_RESET (1 << 7) #define HWMOD_16BIT_REG (1 << 8) +#define HWMOD_AUTOIDLE (1 << 9) /* * omap_hwmod._int_flags definitions -- 1.7.4.1
WARNING: multiple messages have this Message-ID (diff)
From: t-kristo@ti.com (Tero Kristo) To: linux-arm-kernel@lists.infradead.org Subject: [PATCHv5 08/10] ARM: OMAP4: hwmod: add support for hwmod autoidle flag Date: Tue, 25 Sep 2012 12:32:43 +0300 [thread overview] Message-ID: <1348565565-14744-9-git-send-email-t-kristo@ti.com> (raw) In-Reply-To: <1348565565-14744-1-git-send-email-t-kristo@ti.com> If a hwmod is in HWAUTO mode, it will idle automatically and should not be accounted for in the clkdm / pwrdm usecounts. Thus, flag modules in such mode as autoidle during init, and ignore these in subsequent usecount calculations. Signed-off-by: Tero Kristo <t-kristo@ti.com> --- arch/arm/mach-omap2/clockdomain.c | 6 ++++++ arch/arm/mach-omap2/omap_hwmod.c | 3 +++ arch/arm/plat-omap/include/plat/omap_hwmod.h | 2 ++ 3 files changed, 11 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c index 2fa433a..0ee7d09a 100644 --- a/arch/arm/mach-omap2/clockdomain.c +++ b/arch/arm/mach-omap2/clockdomain.c @@ -1055,6 +1055,9 @@ int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod *oh) if (!oh) return -EINVAL; + if (oh->flags & HWMOD_AUTOIDLE) + return 0; + return _clkdm_clk_hwmod_enable(clkdm); } @@ -1086,6 +1089,9 @@ int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod *oh) if (!oh) return -EINVAL; + if (oh->flags & HWMOD_AUTOIDLE) + return 0; + return _clkdm_clk_hwmod_disable(clkdm); } diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index f826917..6807b02 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -2377,6 +2377,9 @@ static int __init _register(struct omap_hwmod *oh) INIT_LIST_HEAD(&oh->slave_ports); spin_lock_init(&oh->_lock); + if (cpu_is_omap44xx() && oh->prcm.omap4.modulemode == MODULEMODE_HWCTRL) + oh->flags |= HWMOD_AUTOIDLE; + oh->_state = _HWMOD_STATE_REGISTERED; /* diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 0f840a9..36130f9 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h @@ -440,6 +440,7 @@ struct omap_hwmod_omap4_prcm { * in order to complete the reset. Optional clocks will be disabled * again after the reset. * HWMOD_16BIT_REG: Module has 16bit registers + * HWMOD_AUTOIDLE: Module is controlled automatically by hardware */ #define HWMOD_SWSUP_SIDLE (1 << 0) #define HWMOD_SWSUP_MSTANDBY (1 << 1) @@ -450,6 +451,7 @@ struct omap_hwmod_omap4_prcm { #define HWMOD_NO_IDLEST (1 << 6) #define HWMOD_CONTROL_OPT_CLKS_IN_RESET (1 << 7) #define HWMOD_16BIT_REG (1 << 8) +#define HWMOD_AUTOIDLE (1 << 9) /* * omap_hwmod._int_flags definitions -- 1.7.4.1
next prev parent reply other threads:[~2012-09-25 9:33 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-09-25 9:32 [PATCHv5 00/10] ARM: OMAP: PM usecounting changes Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 9:32 ` [PATCHv5 01/10] ARM: OMAP3+: voltage/pwrdm/clkdm/clock add recursive usecount tracking Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 9:32 ` [PATCHv5 02/10] ARM: OMAP3+: voltage: add support for voltagedomain usecounts Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 9:41 ` Russell King - ARM Linux 2012-09-25 9:41 ` Russell King - ARM Linux 2012-09-25 12:02 ` Tero Kristo 2012-09-25 12:02 ` Tero Kristo 2012-09-25 9:32 ` [PATCHv5 03/10] ARM: OMAP3: add manual control for mpu / core pwrdm usecounting Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 9:32 ` [PATCHv5 04/10] ARM: OMAP3: set autoidle flag for sdrc_ick Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 9:32 ` [PATCHv5 05/10] ARM: OMAP: clockdomain: add support for preventing autodep delete Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 9:32 ` [PATCHv5 06/10] ARM: OMAP3: do not delete per_clkdm autodeps during idle Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 9:32 ` [PATCHv5 07/10] ARM: OMAP4: clock data: set autoidle flag for dss_fck Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 9:32 ` Tero Kristo [this message] 2012-09-25 9:32 ` [PATCHv5 08/10] ARM: OMAP4: hwmod: add support for hwmod autoidle flag Tero Kristo 2012-09-25 9:32 ` [PATCHv5 09/10] ARM: OMAP4: hwmod data: set mpu hwmod modulemode to hwauto Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 9:32 ` [PATCHv5 10/10] ARM: OMAP4: clock data: flag hw controlled clocks as autoidle Tero Kristo 2012-09-25 9:32 ` Tero Kristo 2012-09-25 10:26 ` [PATCHv5 00/10] ARM: OMAP: PM usecounting changes Rajendra Nayak 2012-09-25 10:26 ` Rajendra Nayak 2012-09-25 11:53 ` Tero Kristo 2012-09-25 11:53 ` Tero Kristo 2012-09-25 12:23 ` Rajendra Nayak 2012-09-25 12:23 ` Rajendra Nayak 2012-09-25 14:17 ` Tero Kristo 2012-09-25 14:17 ` Tero Kristo 2012-09-26 4:15 ` Rajendra Nayak 2012-09-26 4:15 ` Rajendra Nayak
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1348565565-14744-9-git-send-email-t-kristo@ti.com \ --to=t-kristo@ti.com \ --cc=khilman@ti.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=paul@pwsan.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.