All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] OMAP2+: hwmod framework fixes
@ 2011-06-23 21:00 Benoit Cousson
  2011-06-23 21:00 ` [PATCH 1/6] OMAP2+: hwmod: Fix smart-standby + wakeup support Benoit Cousson
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Benoit Cousson @ 2011-06-23 21:00 UTC (permalink / raw)
  To: paul; +Cc: rnayak, linux-omap, Benoit Cousson

Hi Paul,

Here are the latest bug fixes done on the hwmod framework.
There are mainly around wakeup capability added in OMAP4.

The series is based on for_3.0.1/2_prcm_files_cleanup and tested
on OMAP4430 ES2.1 + SDP.

The patches are available here:
git://gitorious.org/omap-pm/linux.git for_3.0.1/3_hwmod_fixes

Regards,
Benoit


Benoit Cousson (5):
  OMAP2+: hwmod: Fix smart-standby + wakeup support
  OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag
  OMAP2+: hwmod: Do not write the enawakeup bit if SYSC_HAS_ENAWAKEUP is not set
  OMAP2+: hwmod: Remove _populate_mpu_rt_base warning
  OMAP2+: hwmod: Fix the HW reset management

Miguel Vadillo (1):
  OMAP2+: hwmod: Enable module in shutdown to access sysconfig

 arch/arm/mach-omap2/omap_hwmod.c             |   88 +++++++++++++++-----------
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |    9 ++-
 arch/arm/plat-omap/include/plat/omap_hwmod.h |    2 +-
 3 files changed, 58 insertions(+), 41 deletions(-)


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/6] OMAP2+: hwmod: Fix smart-standby + wakeup support
  2011-06-23 21:00 [PATCH 0/6] OMAP2+: hwmod framework fixes Benoit Cousson
@ 2011-06-23 21:00 ` Benoit Cousson
  2011-06-23 21:00 ` [PATCH 2/6] OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag Benoit Cousson
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Benoit Cousson @ 2011-06-23 21:00 UTC (permalink / raw)
  To: paul; +Cc: rnayak, linux-omap, Benoit Cousson, Djamil Elaidi

The commit 86009eb326afde34ffdc5648cd344aa86b8d58d4 was adding
the wakeup support for new OMAP4 IPs. This support is incomplete for
busmaster IPs that need as well to use smart-standby with wakeup.

This new standbymode is suported on HSI and USB_HOST_FS for the moment.

Add the new MSTANDBY_SMART_WKUP flag to mark the IPs that support this
capability.

Enable this new mode when applicable in _enable_wakeup, _disable_wakeup,
_enable_sysc and _idle_sysc.

The omap_hwmod_44xx_data.c will have to be updated to add this new flag.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Djamil Elaidi <d-elaidi@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/omap_hwmod.c             |   34 +++++++++++++++++++++----
 arch/arm/plat-omap/include/plat/omap_hwmod.h |    2 +-
 2 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 293fa6c..384d3c3 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -391,7 +391,8 @@ static int _enable_wakeup(struct omap_hwmod *oh, u32 *v)
 
 	if (!oh->class->sysc ||
 	    !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) ||
-	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)))
+	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) ||
+	      (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)))
 		return -EINVAL;
 
 	if (!oh->class->sysc->sysc_fields) {
@@ -405,6 +406,8 @@ static int _enable_wakeup(struct omap_hwmod *oh, u32 *v)
 
 	if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
 		_set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART_WKUP, v);
+	if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)
+		_set_master_standbymode(oh, HWMOD_IDLEMODE_SMART_WKUP, v);
 
 	/* XXX test pwrdm_get_wken for this hwmod's subsystem */
 
@@ -426,7 +429,8 @@ static int _disable_wakeup(struct omap_hwmod *oh, u32 *v)
 
 	if (!oh->class->sysc ||
 	    !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) ||
-	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)))
+	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) ||
+	      (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)))
 		return -EINVAL;
 
 	if (!oh->class->sysc->sysc_fields) {
@@ -440,6 +444,8 @@ static int _disable_wakeup(struct omap_hwmod *oh, u32 *v)
 
 	if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
 		_set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART, v);
+	if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)
+		_set_master_standbymode(oh, HWMOD_IDLEMODE_SMART_WKUP, v);
 
 	/* XXX test pwrdm_get_wken for this hwmod's subsystem */
 
@@ -781,8 +787,16 @@ static void _enable_sysc(struct omap_hwmod *oh)
 	}
 
 	if (sf & SYSC_HAS_MIDLEMODE) {
-		idlemode = (oh->flags & HWMOD_SWSUP_MSTANDBY) ?
-			HWMOD_IDLEMODE_NO : HWMOD_IDLEMODE_SMART;
+		if (oh->flags & HWMOD_SWSUP_MSTANDBY) {
+			idlemode = HWMOD_IDLEMODE_NO;
+		} else {
+			if (sf & SYSC_HAS_ENAWAKEUP)
+				_enable_wakeup(oh, &v);
+			if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)
+				idlemode = HWMOD_IDLEMODE_SMART_WKUP;
+			else
+				idlemode = HWMOD_IDLEMODE_SMART;
+		}
 		_set_master_standbymode(oh, idlemode, &v);
 	}
 
@@ -840,8 +854,16 @@ static void _idle_sysc(struct omap_hwmod *oh)
 	}
 
 	if (sf & SYSC_HAS_MIDLEMODE) {
-		idlemode = (oh->flags & HWMOD_SWSUP_MSTANDBY) ?
-			HWMOD_IDLEMODE_FORCE : HWMOD_IDLEMODE_SMART;
+		if (oh->flags & HWMOD_SWSUP_MSTANDBY) {
+			idlemode = HWMOD_IDLEMODE_FORCE;
+		} else {
+			if (sf & SYSC_HAS_ENAWAKEUP)
+				_enable_wakeup(oh, &v);
+			if (oh->class->sysc->idlemodes & MSTANDBY_SMART_WKUP)
+				idlemode = HWMOD_IDLEMODE_SMART_WKUP;
+			else
+				idlemode = HWMOD_IDLEMODE_SMART;
+		}
 		_set_master_standbymode(oh, idlemode, &v);
 	}
 
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index 1adea9c..e93438c 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -77,7 +77,6 @@ extern struct omap_hwmod_sysc_fields omap_hwmod_sysc_type2;
 #define HWMOD_IDLEMODE_FORCE		(1 << 0)
 #define HWMOD_IDLEMODE_NO		(1 << 1)
 #define HWMOD_IDLEMODE_SMART		(1 << 2)
-/* Slave idle mode flag only */
 #define HWMOD_IDLEMODE_SMART_WKUP	(1 << 3)
 
 /**
@@ -258,6 +257,7 @@ struct omap_hwmod_ocp_if {
 #define MSTANDBY_FORCE		(HWMOD_IDLEMODE_FORCE << MASTER_STANDBY_SHIFT)
 #define MSTANDBY_NO		(HWMOD_IDLEMODE_NO << MASTER_STANDBY_SHIFT)
 #define MSTANDBY_SMART		(HWMOD_IDLEMODE_SMART << MASTER_STANDBY_SHIFT)
+#define MSTANDBY_SMART_WKUP	(HWMOD_IDLEMODE_SMART_WKUP << MASTER_STANDBY_SHIFT)
 
 /* omap_hwmod_sysconfig.sysc_flags capability flags */
 #define SYSC_HAS_AUTOIDLE	(1 << 0)
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/6] OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag
  2011-06-23 21:00 [PATCH 0/6] OMAP2+: hwmod framework fixes Benoit Cousson
  2011-06-23 21:00 ` [PATCH 1/6] OMAP2+: hwmod: Fix smart-standby + wakeup support Benoit Cousson
@ 2011-06-23 21:00 ` Benoit Cousson
  2011-07-01 13:50   ` Elaidi, Djamil
  2011-06-23 21:00 ` [PATCH 3/6] OMAP2+: hwmod: Enable module in shutdown to access sysconfig Benoit Cousson
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Benoit Cousson @ 2011-06-23 21:00 UTC (permalink / raw)
  To: paul; +Cc: rnayak, linux-omap, Benoit Cousson

Add the flag to every IPs that support it to allow the
framework to enable it instead of the SMART_STANDBY default
mode.
Without that, an IP with busmaster capability will not
be able to wakeup the interconnect at all.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index f7f4840..c531611 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -661,7 +661,8 @@ static struct omap_hwmod_class_sysconfig omap44xx_aess_sysc = {
 	.sysc_offs	= 0x0010,
 	.sysc_flags	= (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE),
 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
-			   MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
+			   MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART |
+			   MSTANDBY_SMART_WKUP),
 	.sysc_fields	= &omap_hwmod_sysc_type2,
 };
 
@@ -2045,7 +2046,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_hsi_sysc = {
 			   SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
 			   SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
-			   MSTANDBY_SMART),
+			   MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
 	.sysc_fields	= &omap_hwmod_sysc_type1,
 };
 
@@ -2447,7 +2448,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_iss_sysc = {
 			   SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
 			   SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
-			   MSTANDBY_SMART),
+			   MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
 	.sysc_fields	= &omap_hwmod_sysc_type2,
 };
 
@@ -3421,7 +3422,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_mmc_sysc = {
 			   SYSC_HAS_SOFTRESET),
 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
 			   SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
-			   MSTANDBY_SMART),
+			   MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
 	.sysc_fields	= &omap_hwmod_sysc_type2,
 };
 
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/6] OMAP2+: hwmod: Enable module in shutdown to access sysconfig
  2011-06-23 21:00 [PATCH 0/6] OMAP2+: hwmod framework fixes Benoit Cousson
  2011-06-23 21:00 ` [PATCH 1/6] OMAP2+: hwmod: Fix smart-standby + wakeup support Benoit Cousson
  2011-06-23 21:00 ` [PATCH 2/6] OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag Benoit Cousson
@ 2011-06-23 21:00 ` Benoit Cousson
  2011-06-23 21:00 ` [PATCH 4/6] OMAP2+: hwmod: Do not write the enawakeup bit if SYSC_HAS_ENAWAKEUP is not set Benoit Cousson
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Benoit Cousson @ 2011-06-23 21:00 UTC (permalink / raw)
  To: paul; +Cc: rnayak, linux-omap, Miguel Vadillo, Benoit Cousson

From: Miguel Vadillo <vadillo@ti.com>

When calling the shutdown, the module may be already in idle.
Accessing the sysconfig register will then lead to a crash.
In that case, re-enable the module in order to allow the access
to the sysconfig register.

Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 384d3c3..cbc2a8a 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1396,8 +1396,11 @@ static int _shutdown(struct omap_hwmod *oh)
 		}
 	}
 
-	if (oh->class->sysc)
+	if (oh->class->sysc) {
+		if (oh->_state == _HWMOD_STATE_IDLE)
+			_enable(oh);
 		_shutdown_sysc(oh);
+	}
 
 	/*
 	 * If an IP contains only one HW reset line, then assert it
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/6] OMAP2+: hwmod: Do not write the enawakeup bit if SYSC_HAS_ENAWAKEUP is not set
  2011-06-23 21:00 [PATCH 0/6] OMAP2+: hwmod framework fixes Benoit Cousson
                   ` (2 preceding siblings ...)
  2011-06-23 21:00 ` [PATCH 3/6] OMAP2+: hwmod: Enable module in shutdown to access sysconfig Benoit Cousson
@ 2011-06-23 21:00 ` Benoit Cousson
  2011-06-23 21:00 ` [PATCH 5/6] OMAP2+: hwmod: Remove _populate_mpu_rt_base warning Benoit Cousson
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Benoit Cousson @ 2011-06-23 21:00 UTC (permalink / raw)
  To: paul; +Cc: rnayak, linux-omap, Benoit Cousson

The Type 2 type of IPs will not have any enawakeup bit in their sysconfig.
Writing to that bit will instead trigger a softreset.
Check the flag to write this bit only if the module supports it.

Reported-by: Miguel Vadillo <vadillo@ti.com>
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |   14 ++++----------
 1 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index cbc2a8a..3800084 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -387,8 +387,6 @@ static int _set_module_autoidle(struct omap_hwmod *oh, u8 autoidle,
  */
 static int _enable_wakeup(struct omap_hwmod *oh, u32 *v)
 {
-	u32 wakeup_mask;
-
 	if (!oh->class->sysc ||
 	    !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) ||
 	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) ||
@@ -400,9 +398,8 @@ static int _enable_wakeup(struct omap_hwmod *oh, u32 *v)
 		return -EINVAL;
 	}
 
-	wakeup_mask = (0x1 << oh->class->sysc->sysc_fields->enwkup_shift);
-
-	*v |= wakeup_mask;
+	if (oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP)
+		*v |= 0x1 << oh->class->sysc->sysc_fields->enwkup_shift;
 
 	if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
 		_set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART_WKUP, v);
@@ -425,8 +422,6 @@ static int _enable_wakeup(struct omap_hwmod *oh, u32 *v)
  */
 static int _disable_wakeup(struct omap_hwmod *oh, u32 *v)
 {
-	u32 wakeup_mask;
-
 	if (!oh->class->sysc ||
 	    !((oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP) ||
 	      (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP) ||
@@ -438,9 +433,8 @@ static int _disable_wakeup(struct omap_hwmod *oh, u32 *v)
 		return -EINVAL;
 	}
 
-	wakeup_mask = (0x1 << oh->class->sysc->sysc_fields->enwkup_shift);
-
-	*v &= ~wakeup_mask;
+	if (oh->class->sysc->sysc_flags & SYSC_HAS_ENAWAKEUP)
+		*v &= ~(0x1 << oh->class->sysc->sysc_fields->enwkup_shift);
 
 	if (oh->class->sysc->idlemodes & SIDLE_SMART_WKUP)
 		_set_slave_idlemode(oh, HWMOD_IDLEMODE_SMART, v);
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5/6] OMAP2+: hwmod: Remove _populate_mpu_rt_base warning
  2011-06-23 21:00 [PATCH 0/6] OMAP2+: hwmod framework fixes Benoit Cousson
                   ` (3 preceding siblings ...)
  2011-06-23 21:00 ` [PATCH 4/6] OMAP2+: hwmod: Do not write the enawakeup bit if SYSC_HAS_ENAWAKEUP is not set Benoit Cousson
@ 2011-06-23 21:00 ` Benoit Cousson
  2011-06-23 21:00 ` [PATCH 6/6] OMAP2+: hwmod: Fix the HW reset management Benoit Cousson
  2011-07-01  8:41 ` [PATCH 0/6] OMAP2+: hwmod framework fixes Paul Walmsley
  6 siblings, 0 replies; 12+ messages in thread
From: Benoit Cousson @ 2011-06-23 21:00 UTC (permalink / raw)
  To: paul; +Cc: rnayak, linux-omap, Benoit Cousson

It is perfectly valid for some hwmod to not have any
register target address for sysconfig. This is especially
true for interconnect hwmods.
Remove the warning.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 3800084..f401417 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1704,9 +1704,6 @@ static int __init _populate_mpu_rt_base(struct omap_hwmod *oh, void *data)
 		return 0;
 
 	oh->_mpu_rt_va = _find_mpu_rt_base(oh, oh->_mpu_port_index);
-	if (!oh->_mpu_rt_va)
-		pr_warning("omap_hwmod: %s found no _mpu_rt_va for %s\n",
-				__func__, oh->name);
 
 	return 0;
 }
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 6/6] OMAP2+: hwmod: Fix the HW reset management
  2011-06-23 21:00 [PATCH 0/6] OMAP2+: hwmod framework fixes Benoit Cousson
                   ` (4 preceding siblings ...)
  2011-06-23 21:00 ` [PATCH 5/6] OMAP2+: hwmod: Remove _populate_mpu_rt_base warning Benoit Cousson
@ 2011-06-23 21:00 ` Benoit Cousson
  2011-07-01  8:44   ` Paul Walmsley
  2011-07-01  8:41 ` [PATCH 0/6] OMAP2+: hwmod framework fixes Paul Walmsley
  6 siblings, 1 reply; 12+ messages in thread
From: Benoit Cousson @ 2011-06-23 21:00 UTC (permalink / raw)
  To: paul; +Cc: rnayak, linux-omap, Benoit Cousson

The HW reset must be de-assert after the clocks are enabled
but before waiting for the target to be ready. Otherwise the
reset might not work properly since the clock is not running
to proceed the reset.

De-assert the reset after _enable_clocks and before
_wait_target_ready.
Re-assert it only when the clocks are disabled.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |   32 ++++++++++++++++----------------
 1 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index f401417..55ad6a5 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1250,15 +1250,6 @@ static int _enable(struct omap_hwmod *oh)
 
 	pr_debug("omap_hwmod: %s: enabling\n", oh->name);
 
-	/*
-	 * If an IP contains only one HW reset line, then de-assert it in order
-	 * to allow to enable the clocks. Otherwise the PRCM will return
-	 * Intransition status, and the init will failed.
-	 */
-	if ((oh->_state == _HWMOD_STATE_INITIALIZED ||
-	     oh->_state == _HWMOD_STATE_DISABLED) && oh->rst_lines_cnt == 1)
-		_deassert_hardreset(oh, oh->rst_lines[0].name);
-
 	/* Mux pins for device runtime if populated */
 	if (oh->mux && (!oh->mux->enabled ||
 			((oh->_state == _HWMOD_STATE_IDLE) &&
@@ -1268,6 +1259,15 @@ static int _enable(struct omap_hwmod *oh)
 	_add_initiator_dep(oh, mpu_oh);
 	_enable_clocks(oh);
 
+	/*
+	 * If an IP contains only one HW reset line, then de-assert it in order
+	 * to allow to enable the clocks. Otherwise the PRCM will return
+	 * Intransition status, and the init will failed.
+	 */
+	if ((oh->_state == _HWMOD_STATE_INITIALIZED ||
+	     oh->_state == _HWMOD_STATE_DISABLED) && oh->rst_lines_cnt == 1)
+		_deassert_hardreset(oh, oh->rst_lines[0].name);
+
 	r = _wait_target_ready(oh);
 	if (!r) {
 		oh->_state = _HWMOD_STATE_ENABLED;
@@ -1396,13 +1396,6 @@ static int _shutdown(struct omap_hwmod *oh)
 		_shutdown_sysc(oh);
 	}
 
-	/*
-	 * If an IP contains only one HW reset line, then assert it
-	 * before disabling the clocks and shutting down the IP.
-	 */
-	if (oh->rst_lines_cnt == 1)
-		_assert_hardreset(oh, oh->rst_lines[0].name);
-
 	/* clocks and deps are already disabled in idle */
 	if (oh->_state == _HWMOD_STATE_ENABLED) {
 		_del_initiator_dep(oh, mpu_oh);
@@ -1411,6 +1404,13 @@ static int _shutdown(struct omap_hwmod *oh)
 	}
 	/* XXX Should this code also force-disable the optional clocks? */
 
+	/*
+	 * If an IP contains only one HW reset line, then assert it
+	 * before disabling the clocks and shutting down the IP.
+	 */
+	if (oh->rst_lines_cnt == 1)
+		_assert_hardreset(oh, oh->rst_lines[0].name);
+
 	/* Mux pins to safe mode or use populated off mode values */
 	if (oh->mux)
 		omap_hwmod_mux(oh->mux, _HWMOD_STATE_DISABLED);
-- 
1.7.0.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/6] OMAP2+: hwmod framework fixes
  2011-06-23 21:00 [PATCH 0/6] OMAP2+: hwmod framework fixes Benoit Cousson
                   ` (5 preceding siblings ...)
  2011-06-23 21:00 ` [PATCH 6/6] OMAP2+: hwmod: Fix the HW reset management Benoit Cousson
@ 2011-07-01  8:41 ` Paul Walmsley
  6 siblings, 0 replies; 12+ messages in thread
From: Paul Walmsley @ 2011-07-01  8:41 UTC (permalink / raw)
  To: Benoit Cousson; +Cc: rnayak, linux-omap

[-- Attachment #1: Type: TEXT/PLAIN, Size: 277 bytes --]

Hi Benoît,

On Thu, 23 Jun 2011, Benoit Cousson wrote:

> Here are the latest bug fixes done on the hwmod framework.
> There are mainly around wakeup capability added in OMAP4.

These look good to me too.  These need to be cc'ed to lakml also, of 
course...


- Paul

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 6/6] OMAP2+: hwmod: Fix the HW reset management
  2011-06-23 21:00 ` [PATCH 6/6] OMAP2+: hwmod: Fix the HW reset management Benoit Cousson
@ 2011-07-01  8:44   ` Paul Walmsley
  2011-07-01  8:46     ` Cousson, Benoit
  0 siblings, 1 reply; 12+ messages in thread
From: Paul Walmsley @ 2011-07-01  8:44 UTC (permalink / raw)
  To: Benoit Cousson; +Cc: rnayak, linux-omap

One quick comment here:

On Thu, 23 Jun 2011, Benoit Cousson wrote:

> The HW reset must be de-assert after the clocks are enabled
> but before waiting for the target to be ready. Otherwise the
> reset might not work properly since the clock is not running
> to proceed the reset.
> 
> De-assert the reset after _enable_clocks and before
> _wait_target_ready.
> Re-assert it only when the clocks are disabled.
> 
> Signed-off-by: Benoit Cousson <b-cousson@ti.com>
> Cc: Paul Walmsley <paul@pwsan.com>
> ---
>  arch/arm/mach-omap2/omap_hwmod.c |   32 ++++++++++++++++----------------
>  1 files changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
> index f401417..55ad6a5 100644
> --- a/arch/arm/mach-omap2/omap_hwmod.c
> +++ b/arch/arm/mach-omap2/omap_hwmod.c
> @@ -1250,15 +1250,6 @@ static int _enable(struct omap_hwmod *oh)
>  
>  	pr_debug("omap_hwmod: %s: enabling\n", oh->name);
>  
> -	/*
> -	 * If an IP contains only one HW reset line, then de-assert it in order
> -	 * to allow to enable the clocks. Otherwise the PRCM will return
> -	 * Intransition status, and the init will failed.
> -	 */
> -	if ((oh->_state == _HWMOD_STATE_INITIALIZED ||
> -	     oh->_state == _HWMOD_STATE_DISABLED) && oh->rst_lines_cnt == 1)
> -		_deassert_hardreset(oh, oh->rst_lines[0].name);
> -
>  	/* Mux pins for device runtime if populated */
>  	if (oh->mux && (!oh->mux->enabled ||
>  			((oh->_state == _HWMOD_STATE_IDLE) &&
> @@ -1268,6 +1259,15 @@ static int _enable(struct omap_hwmod *oh)
>  	_add_initiator_dep(oh, mpu_oh);
>  	_enable_clocks(oh);
>  
> +	/*
> +	 * If an IP contains only one HW reset line, then de-assert it in order
> +	 * to allow to enable the clocks. Otherwise the PRCM will return
> +	 * Intransition status, and the init will failed.
> +	 */

Please update this comment, this doesn't make sense any more...

> +	if ((oh->_state == _HWMOD_STATE_INITIALIZED ||
> +	     oh->_state == _HWMOD_STATE_DISABLED) && oh->rst_lines_cnt == 1)
> +		_deassert_hardreset(oh, oh->rst_lines[0].name);
> +
>  	r = _wait_target_ready(oh);
>  	if (!r) {
>  		oh->_state = _HWMOD_STATE_ENABLED;
> @@ -1396,13 +1396,6 @@ static int _shutdown(struct omap_hwmod *oh)
>  		_shutdown_sysc(oh);
>  	}
>  
> -	/*
> -	 * If an IP contains only one HW reset line, then assert it
> -	 * before disabling the clocks and shutting down the IP.
> -	 */
> -	if (oh->rst_lines_cnt == 1)
> -		_assert_hardreset(oh, oh->rst_lines[0].name);
> -
>  	/* clocks and deps are already disabled in idle */
>  	if (oh->_state == _HWMOD_STATE_ENABLED) {
>  		_del_initiator_dep(oh, mpu_oh);
> @@ -1411,6 +1404,13 @@ static int _shutdown(struct omap_hwmod *oh)
>  	}
>  	/* XXX Should this code also force-disable the optional clocks? */
>  
> +	/*
> +	 * If an IP contains only one HW reset line, then assert it
> +	 * before disabling the clocks and shutting down the IP.
> +	 */

And this one too.

> +	if (oh->rst_lines_cnt == 1)
> +		_assert_hardreset(oh, oh->rst_lines[0].name);
> +
>  	/* Mux pins to safe mode or use populated off mode values */
>  	if (oh->mux)
>  		omap_hwmod_mux(oh->mux, _HWMOD_STATE_DISABLED);
> -- 
> 1.7.0.4
> 


- Paul

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 6/6] OMAP2+: hwmod: Fix the HW reset management
  2011-07-01  8:44   ` Paul Walmsley
@ 2011-07-01  8:46     ` Cousson, Benoit
  0 siblings, 0 replies; 12+ messages in thread
From: Cousson, Benoit @ 2011-07-01  8:46 UTC (permalink / raw)
  To: Paul Walmsley; +Cc: Nayak, Rajendra, linux-omap

On 7/1/2011 10:44 AM, Paul Walmsley wrote:
> One quick comment here:
>
> On Thu, 23 Jun 2011, Benoit Cousson wrote:
>
>> The HW reset must be de-assert after the clocks are enabled
>> but before waiting for the target to be ready. Otherwise the
>> reset might not work properly since the clock is not running
>> to proceed the reset.
>>
>> De-assert the reset after _enable_clocks and before
>> _wait_target_ready.
>> Re-assert it only when the clocks are disabled.
>>
>> Signed-off-by: Benoit Cousson<b-cousson@ti.com>
>> Cc: Paul Walmsley<paul@pwsan.com>
>> ---
>>   arch/arm/mach-omap2/omap_hwmod.c |   32 ++++++++++++++++----------------
>>   1 files changed, 16 insertions(+), 16 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
>> index f401417..55ad6a5 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
>> @@ -1250,15 +1250,6 @@ static int _enable(struct omap_hwmod *oh)
>>
>>   	pr_debug("omap_hwmod: %s: enabling\n", oh->name);
>>
>> -	/*
>> -	 * If an IP contains only one HW reset line, then de-assert it in order
>> -	 * to allow to enable the clocks. Otherwise the PRCM will return
>> -	 * Intransition status, and the init will failed.
>> -	 */
>> -	if ((oh->_state == _HWMOD_STATE_INITIALIZED ||
>> -	     oh->_state == _HWMOD_STATE_DISABLED)&&  oh->rst_lines_cnt == 1)
>> -		_deassert_hardreset(oh, oh->rst_lines[0].name);
>> -
>>   	/* Mux pins for device runtime if populated */
>>   	if (oh->mux&&  (!oh->mux->enabled ||
>>   			((oh->_state == _HWMOD_STATE_IDLE)&&
>> @@ -1268,6 +1259,15 @@ static int _enable(struct omap_hwmod *oh)
>>   	_add_initiator_dep(oh, mpu_oh);
>>   	_enable_clocks(oh);
>>
>> +	/*
>> +	 * If an IP contains only one HW reset line, then de-assert it in order
>> +	 * to allow to enable the clocks. Otherwise the PRCM will return
>> +	 * Intransition status, and the init will failed.
>> +	 */
>
> Please update this comment, this doesn't make sense any more...

Good point, I'll fix that.

>
>> +	if ((oh->_state == _HWMOD_STATE_INITIALIZED ||
>> +	     oh->_state == _HWMOD_STATE_DISABLED)&&  oh->rst_lines_cnt == 1)
>> +		_deassert_hardreset(oh, oh->rst_lines[0].name);
>> +
>>   	r = _wait_target_ready(oh);
>>   	if (!r) {
>>   		oh->_state = _HWMOD_STATE_ENABLED;
>> @@ -1396,13 +1396,6 @@ static int _shutdown(struct omap_hwmod *oh)
>>   		_shutdown_sysc(oh);
>>   	}
>>
>> -	/*
>> -	 * If an IP contains only one HW reset line, then assert it
>> -	 * before disabling the clocks and shutting down the IP.
>> -	 */
>> -	if (oh->rst_lines_cnt == 1)
>> -		_assert_hardreset(oh, oh->rst_lines[0].name);
>> -
>>   	/* clocks and deps are already disabled in idle */
>>   	if (oh->_state == _HWMOD_STATE_ENABLED) {
>>   		_del_initiator_dep(oh, mpu_oh);
>> @@ -1411,6 +1404,13 @@ static int _shutdown(struct omap_hwmod *oh)
>>   	}
>>   	/* XXX Should this code also force-disable the optional clocks? */
>>
>> +	/*
>> +	 * If an IP contains only one HW reset line, then assert it
>> +	 * before disabling the clocks and shutting down the IP.
>> +	 */
>
> And this one too.

OK.

Benoit

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH 2/6] OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag
  2011-06-23 21:00 ` [PATCH 2/6] OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag Benoit Cousson
@ 2011-07-01 13:50   ` Elaidi, Djamil
  2011-07-01 13:56     ` Cousson, Benoit
  0 siblings, 1 reply; 12+ messages in thread
From: Elaidi, Djamil @ 2011-07-01 13:50 UTC (permalink / raw)
  To: Cousson, Benoit, paul; +Cc: Nayak, Rajendra, linux-omap

Benoit,

HSI has no RESET_STATUS bit in SYSCONFIG register.

The SYSC should be :

static struct omap_hwmod_class_sysconfig omap44xx_hsi_sysc = {
        .rev_offs       = 0x0000,
        .sysc_offs      = 0x0010,
        .syss_offs      = 0x0014,
        .sysc_flags     = (SYSC_HAS_AUTOIDLE | SYSC_HAS_EMUFREE |
                           SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE |
---                        SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
+++                        SYSC_HAS_SOFTRESET),
        .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
                           SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
                           MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
        .sysc_fields    = &omap_hwmod_sysc_type1,

Best regards
Djamil ELAÏDI
+33 (0)4 97 27 50 97
Software Systems Engineer
OMAP Platform Business Unit - PSI Modem Integration
Texas Instruments


Texas Instruments France SA, 821 Avenue Jack Kilby, 06270 Villeneuve Loubet. 036 420 040 R.C.S Antibes. Capital de EUR 753.920

-----Original Message-----

From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Cousson, Benoit
Sent: jeudi 23 juin 2011 23:01
To: paul@pwsan.com
Cc: Nayak, Rajendra; linux-omap@vger.kernel.org; Cousson, Benoit
Subject: [PATCH 2/6] OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag

Add the flag to every IPs that support it to allow the
framework to enable it instead of the SMART_STANDBY default
mode.
Without that, an IP with busmaster capability will not
be able to wakeup the interconnect at all.

Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index f7f4840..c531611 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -661,7 +661,8 @@ static struct omap_hwmod_class_sysconfig omap44xx_aess_sysc = {
        .sysc_offs      = 0x0010,
        .sysc_flags     = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE),
        .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
-                          MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
+                          MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART |
+                          MSTANDBY_SMART_WKUP),
        .sysc_fields    = &omap_hwmod_sysc_type2,
 };

@@ -2045,7 +2046,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_hsi_sysc = {
                           SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
        .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
                           SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
-                          MSTANDBY_SMART),
+                          MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
        .sysc_fields    = &omap_hwmod_sysc_type1,
 };

@@ -2447,7 +2448,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_iss_sysc = {
                           SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
        .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
                           SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
-                          MSTANDBY_SMART),
+                          MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
        .sysc_fields    = &omap_hwmod_sysc_type2,
 };

@@ -3421,7 +3422,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_mmc_sysc = {
                           SYSC_HAS_SOFTRESET),
        .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
                           SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
-                          MSTANDBY_SMART),
+                          MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
        .sysc_fields    = &omap_hwmod_sysc_type2,
 };

--
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/6] OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag
  2011-07-01 13:50   ` Elaidi, Djamil
@ 2011-07-01 13:56     ` Cousson, Benoit
  0 siblings, 0 replies; 12+ messages in thread
From: Cousson, Benoit @ 2011-07-01 13:56 UTC (permalink / raw)
  To: Elaidi, Djamil; +Cc: paul, Nayak, Rajendra, linux-omap

Hi Djamil,

On 7/1/2011 3:50 PM, Elaidi, Djamil wrote:
> Benoit,
>
> HSI has no RESET_STATUS bit in SYSCONFIG register.

Yes indeed, the RESETDONE is inside HSI_SYSSTATUS.

And this is what that flag is meaning: SYSS_HAS_RESET_STATUS, with the 
SYSS prefix.

The other one will be SYSC_HAS_RESET_STATUS with the SYSC prefix.

I know this is confusing, like the HW spec :-)

>
> The SYSC should be :
>
> static struct omap_hwmod_class_sysconfig omap44xx_hsi_sysc = {
>          .rev_offs       = 0x0000,
>          .sysc_offs      = 0x0010,
>          .syss_offs      = 0x0014,
>          .sysc_flags     = (SYSC_HAS_AUTOIDLE | SYSC_HAS_EMUFREE |
>                             SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE |
> ---                        SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),

So these flags are fine.

Benoit

> +++                        SYSC_HAS_SOFTRESET),
>          .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
>                             SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
>                             MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
>          .sysc_fields    =&omap_hwmod_sysc_type1,
>
> Best regards
> Djamil ELAÏDI
> +33 (0)4 97 27 50 97
> Software Systems Engineer
> OMAP Platform Business Unit - PSI Modem Integration
> Texas Instruments
>
>
> Texas Instruments France SA, 821 Avenue Jack Kilby, 06270 Villeneuve Loubet. 036 420 040 R.C.S Antibes. Capital de EUR 753.920
>
> -----Original Message-----
>
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-owner@vger.kernel.org] On Behalf Of Cousson, Benoit
> Sent: jeudi 23 juin 2011 23:01
> To: paul@pwsan.com
> Cc: Nayak, Rajendra; linux-omap@vger.kernel.org; Cousson, Benoit
> Subject: [PATCH 2/6] OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag
>
> Add the flag to every IPs that support it to allow the
> framework to enable it instead of the SMART_STANDBY default
> mode.
> Without that, an IP with busmaster capability will not
> be able to wakeup the interconnect at all.
>
> Signed-off-by: Benoit Cousson<b-cousson@ti.com>
> Cc: Paul Walmsley<paul@pwsan.com>
> ---
>   arch/arm/mach-omap2/omap_hwmod_44xx_data.c |    9 +++++----
>   1 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> index f7f4840..c531611 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> @@ -661,7 +661,8 @@ static struct omap_hwmod_class_sysconfig omap44xx_aess_sysc = {
>          .sysc_offs      = 0x0010,
>          .sysc_flags     = (SYSC_HAS_MIDLEMODE | SYSC_HAS_SIDLEMODE),
>          .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
> -                          MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
> +                          MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART |
> +                          MSTANDBY_SMART_WKUP),
>          .sysc_fields    =&omap_hwmod_sysc_type2,
>   };
>
> @@ -2045,7 +2046,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_hsi_sysc = {
>                             SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
>          .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
>                             SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
> -                          MSTANDBY_SMART),
> +                          MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
>          .sysc_fields    =&omap_hwmod_sysc_type1,
>   };
>
> @@ -2447,7 +2448,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_iss_sysc = {
>                             SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),
>          .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
>                             SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
> -                          MSTANDBY_SMART),
> +                          MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
>          .sysc_fields    =&omap_hwmod_sysc_type2,
>   };
>
> @@ -3421,7 +3422,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_mmc_sysc = {
>                             SYSC_HAS_SOFTRESET),
>          .idlemodes      = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
>                             SIDLE_SMART_WKUP | MSTANDBY_FORCE | MSTANDBY_NO |
> -                          MSTANDBY_SMART),
> +                          MSTANDBY_SMART | MSTANDBY_SMART_WKUP),
>          .sysc_fields    =&omap_hwmod_sysc_type2,
>   };
>
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-07-01 13:56 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-23 21:00 [PATCH 0/6] OMAP2+: hwmod framework fixes Benoit Cousson
2011-06-23 21:00 ` [PATCH 1/6] OMAP2+: hwmod: Fix smart-standby + wakeup support Benoit Cousson
2011-06-23 21:00 ` [PATCH 2/6] OMAP4: hwmod data: Add MSTANDBY_SMART_WKUP flag Benoit Cousson
2011-07-01 13:50   ` Elaidi, Djamil
2011-07-01 13:56     ` Cousson, Benoit
2011-06-23 21:00 ` [PATCH 3/6] OMAP2+: hwmod: Enable module in shutdown to access sysconfig Benoit Cousson
2011-06-23 21:00 ` [PATCH 4/6] OMAP2+: hwmod: Do not write the enawakeup bit if SYSC_HAS_ENAWAKEUP is not set Benoit Cousson
2011-06-23 21:00 ` [PATCH 5/6] OMAP2+: hwmod: Remove _populate_mpu_rt_base warning Benoit Cousson
2011-06-23 21:00 ` [PATCH 6/6] OMAP2+: hwmod: Fix the HW reset management Benoit Cousson
2011-07-01  8:44   ` Paul Walmsley
2011-07-01  8:46     ` Cousson, Benoit
2011-07-01  8:41 ` [PATCH 0/6] OMAP2+: hwmod framework fixes Paul Walmsley

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.