* Patch "ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property" has been added to the 4.4-stable tree
@ 2016-03-12 7:04 gregkh
2016-03-12 13:39 ` Paul Walmsley
0 siblings, 1 reply; 2+ messages in thread
From: gregkh @ 2016-03-12 7:04 UTC (permalink / raw)
To: lokeshvutla, d-gerlach, gregkh, mugunthanvnm, nsekhar, paul, robh,
rogerq
Cc: stable, stable-commits
This is a note to let you know that I've just added the patch titled
ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
arm-omap2-hwmod-introduce-ti-no-idle-dt-property.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From 2e18f5a1bc18e8af7031b3b26efde25307014837 Mon Sep 17 00:00:00 2001
From: Lokesh Vutla <lokeshvutla@ti.com>
Date: Mon, 7 Mar 2016 01:41:21 -0700
Subject: ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property
From: Lokesh Vutla <lokeshvutla@ti.com>
commit 2e18f5a1bc18e8af7031b3b26efde25307014837 upstream.
Introduce a dt property, ti,no-idle, that prevents an IP to idle at any
point. This is to handle Errata i877, which tells that GMAC clocks
cannot be disabled.
Acked-by: Roger Quadros <rogerq@ti.com>
Tested-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
Documentation/devicetree/bindings/arm/omap/omap.txt | 1 +
arch/arm/mach-omap2/omap_hwmod.c | 9 ++++++++-
arch/arm/mach-omap2/omap_hwmod.h | 3 +++
3 files changed, 12 insertions(+), 1 deletion(-)
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -23,6 +23,7 @@ Optional properties:
during suspend.
- ti,no-reset-on-init: When present, the module should not be reset at init
- ti,no-idle-on-init: When present, the module should not be idled at init
+- ti,no-idle: When present, the module is never allowed to idle.
Example:
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2200,6 +2200,11 @@ static int _enable(struct omap_hwmod *oh
*/
static int _idle(struct omap_hwmod *oh)
{
+ if (oh->flags & HWMOD_NO_IDLE) {
+ oh->_int_flags |= _HWMOD_SKIP_ENABLE;
+ return 0;
+ }
+
pr_debug("omap_hwmod: %s: idling\n", oh->name);
if (oh->_state != _HWMOD_STATE_ENABLED) {
@@ -2504,6 +2509,8 @@ static int __init _init(struct omap_hwmo
oh->flags |= HWMOD_INIT_NO_RESET;
if (of_find_property(np, "ti,no-idle-on-init", NULL))
oh->flags |= HWMOD_INIT_NO_IDLE;
+ if (of_find_property(np, "ti,no-idle", NULL))
+ oh->flags |= HWMOD_NO_IDLE;
}
oh->_state = _HWMOD_STATE_INITIALIZED;
@@ -2630,7 +2637,7 @@ static void __init _setup_postsetup(stru
* XXX HWMOD_INIT_NO_IDLE does not belong in hwmod data -
* it should be set by the core code as a runtime flag during startup
*/
- if ((oh->flags & HWMOD_INIT_NO_IDLE) &&
+ if ((oh->flags & (HWMOD_INIT_NO_IDLE | HWMOD_NO_IDLE)) &&
(postsetup_state == _HWMOD_STATE_IDLE)) {
oh->_int_flags |= _HWMOD_SKIP_ENABLE;
postsetup_state = _HWMOD_STATE_ENABLED;
--- a/arch/arm/mach-omap2/omap_hwmod.h
+++ b/arch/arm/mach-omap2/omap_hwmod.h
@@ -525,6 +525,8 @@ struct omap_hwmod_omap4_prcm {
* or idled.
* HWMOD_OPT_CLKS_NEEDED: The optional clocks are needed for the module to
* operate and they need to be handled at the same time as the main_clk.
+ * HWMOD_NO_IDLE: Do not idle the hwmod at all. Useful to handle certain
+ * IPs like CPSW on DRA7, where clocks to this module cannot be disabled.
*/
#define HWMOD_SWSUP_SIDLE (1 << 0)
#define HWMOD_SWSUP_MSTANDBY (1 << 1)
@@ -541,6 +543,7 @@ struct omap_hwmod_omap4_prcm {
#define HWMOD_SWSUP_SIDLE_ACT (1 << 12)
#define HWMOD_RECONFIG_IO_CHAIN (1 << 13)
#define HWMOD_OPT_CLKS_NEEDED (1 << 14)
+#define HWMOD_NO_IDLE (1 << 15)
/*
* omap_hwmod._int_flags definitions
Patches currently in stable-queue which might be from lokeshvutla@ti.com are
queue-4.4/arm-omap2-hwmod-introduce-ti-no-idle-dt-property.patch
queue-4.4/arm-dts-dra7-do-not-gate-cpsw-clock-due-to-errata-i877.patch
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Patch "ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property" has been added to the 4.4-stable tree
2016-03-12 7:04 Patch "ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property" has been added to the 4.4-stable tree gregkh
@ 2016-03-12 13:39 ` Paul Walmsley
0 siblings, 0 replies; 2+ messages in thread
From: Paul Walmsley @ 2016-03-12 13:39 UTC (permalink / raw)
To: gregkh, stable
Cc: lokeshvutla, d-gerlach, mugunthanvnm, nsekhar, robh, rogerq,
stable-commits
Hello Greg KH and the -stable maintainers,
On Fri, 11 Mar 2016, gregkh@linuxfoundation.org wrote:
> This is a note to let you know that I've just added the patch titled
>
> ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property
>
> to the 4.4-stable tree which can be found at:
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
Thanks - please note that to avoid the chip-damaging errata i877, the
subsequent patch should also be merged into -stable:
> Patches currently in stable-queue which might be from lokeshvutla@ti.com are
[ ... ]
> queue-4.4/arm-dts-dra7-do-not-gate-cpsw-clock-due-to-errata-i877.patch
regards,
- Paul
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-03-12 13:45 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-12 7:04 Patch "ARM: OMAP2+: hwmod: Introduce ti,no-idle dt property" has been added to the 4.4-stable tree gregkh
2016-03-12 13:39 ` Paul Walmsley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox