All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Fixes in hwmod reset code
@ 2012-03-13 13:55 ` Rajendra Nayak
  0 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-03-13 13:55 UTC (permalink / raw)
  To: b-cousson, paul; +Cc: linux-omap, linux-arm-kernel, Rajendra Nayak

This fixes a couple of issues around hwmod reset
APIs'.
Patches are based on 3.3.-rc7.

Rajendra Nayak (2):
  ARM: omap: hwmod: Restore sysc after a reset
  ARM: omap: hwmod: Make omap_hwmod_softreset wait for reset status

 arch/arm/mach-omap2/omap_hwmod.c |   18 +++++++-----------
 1 files changed, 7 insertions(+), 11 deletions(-)


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

* [PATCH 0/2] Fixes in hwmod reset code
@ 2012-03-13 13:55 ` Rajendra Nayak
  0 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-03-13 13:55 UTC (permalink / raw)
  To: linux-arm-kernel

This fixes a couple of issues around hwmod reset
APIs'.
Patches are based on 3.3.-rc7.

Rajendra Nayak (2):
  ARM: omap: hwmod: Restore sysc after a reset
  ARM: omap: hwmod: Make omap_hwmod_softreset wait for reset status

 arch/arm/mach-omap2/omap_hwmod.c |   18 +++++++-----------
 1 files changed, 7 insertions(+), 11 deletions(-)

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

* [PATCH 1/2] ARM: omap: hwmod: Restore sysc after a reset
  2012-03-13 13:55 ` Rajendra Nayak
@ 2012-03-13 13:55   ` Rajendra Nayak
  -1 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-03-13 13:55 UTC (permalink / raw)
  To: b-cousson, paul
  Cc: linux-omap, linux-arm-kernel, Rajendra Nayak, Shubhrajyoti D

After a softreset, make sure the sysc settings are correctly
restored.

Reported-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Shubhrajyoti D <shubhrajyoti@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index eba6cd3..ae56939 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2270,6 +2270,10 @@ int omap_hwmod_reset(struct omap_hwmod *oh)
 
 	spin_lock_irqsave(&oh->_lock, flags);
 	r = _reset(oh);
+	if (oh->class->sysc) {
+		_update_sysc_cache(oh);
+		_enable_sysc(oh);
+	}
 	spin_unlock_irqrestore(&oh->_lock, flags);
 
 	return r;
-- 
1.7.1


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

* [PATCH 1/2] ARM: omap: hwmod: Restore sysc after a reset
@ 2012-03-13 13:55   ` Rajendra Nayak
  0 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-03-13 13:55 UTC (permalink / raw)
  To: linux-arm-kernel

After a softreset, make sure the sysc settings are correctly
restored.

Reported-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Shubhrajyoti D <shubhrajyoti@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index eba6cd3..ae56939 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -2270,6 +2270,10 @@ int omap_hwmod_reset(struct omap_hwmod *oh)
 
 	spin_lock_irqsave(&oh->_lock, flags);
 	r = _reset(oh);
+	if (oh->class->sysc) {
+		_update_sysc_cache(oh);
+		_enable_sysc(oh);
+	}
 	spin_unlock_irqrestore(&oh->_lock, flags);
 
 	return r;
-- 
1.7.1

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

* [PATCH 2/2] ARM: omap: hwmod: Make omap_hwmod_softreset wait for reset status
  2012-03-13 13:55 ` Rajendra Nayak
@ 2012-03-13 13:55   ` Rajendra Nayak
  -1 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-03-13 13:55 UTC (permalink / raw)
  To: b-cousson, paul
  Cc: linux-omap, linux-arm-kernel, Rajendra Nayak, Anand Gadiyar,
	Shubhrajyoti D

omap_hwmod_softreset() does not seem to wait for reset status
after doing a softreset. Make it use _ocp_softreset() instead
which does this correctly.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Anand Gadiyar <gadiyar@ti.com>
Cc: Shubhrajyoti D <shubhrajyoti@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |   14 +++-----------
 1 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index ae56939..9b49440 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1907,20 +1907,12 @@ void omap_hwmod_write(u32 v, struct omap_hwmod *oh, u16 reg_offs)
  */
 int omap_hwmod_softreset(struct omap_hwmod *oh)
 {
-	u32 v;
-	int ret;
-
-	if (!oh || !(oh->_sysc_cache))
+	if (!oh)
 		return -EINVAL;
 
-	v = oh->_sysc_cache;
-	ret = _set_softreset(oh, &v);
-	if (ret)
-		goto error;
-	_write_sysconfig(v, oh);
+	_ocp_softreset(oh);
 
-error:
-	return ret;
+	return 0;
 }
 
 /**
-- 
1.7.1


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

* [PATCH 2/2] ARM: omap: hwmod: Make omap_hwmod_softreset wait for reset status
@ 2012-03-13 13:55   ` Rajendra Nayak
  0 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-03-13 13:55 UTC (permalink / raw)
  To: linux-arm-kernel

omap_hwmod_softreset() does not seem to wait for reset status
after doing a softreset. Make it use _ocp_softreset() instead
which does this correctly.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Anand Gadiyar <gadiyar@ti.com>
Cc: Shubhrajyoti D <shubhrajyoti@ti.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |   14 +++-----------
 1 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index ae56939..9b49440 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1907,20 +1907,12 @@ void omap_hwmod_write(u32 v, struct omap_hwmod *oh, u16 reg_offs)
  */
 int omap_hwmod_softreset(struct omap_hwmod *oh)
 {
-	u32 v;
-	int ret;
-
-	if (!oh || !(oh->_sysc_cache))
+	if (!oh)
 		return -EINVAL;
 
-	v = oh->_sysc_cache;
-	ret = _set_softreset(oh, &v);
-	if (ret)
-		goto error;
-	_write_sysconfig(v, oh);
+	_ocp_softreset(oh);
 
-error:
-	return ret;
+	return 0;
 }
 
 /**
-- 
1.7.1

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

* Re: [PATCH 2/2] ARM: omap: hwmod: Make omap_hwmod_softreset wait for reset status
  2012-03-13 13:55   ` Rajendra Nayak
@ 2012-03-13 13:59     ` Rajendra Nayak
  -1 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-03-13 13:59 UTC (permalink / raw)
  To: Rajendra Nayak
  Cc: b-cousson, paul, linux-omap, linux-arm-kernel, Anand Gadiyar,
	Shubhrajyoti D

On Tuesday 13 March 2012 07:25 PM, Rajendra Nayak wrote:
> omap_hwmod_softreset() does not seem to wait for reset status
> after doing a softreset. Make it use _ocp_softreset() instead
> which does this correctly.
>
> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
> Cc: Benoit Cousson<b-cousson@ti.com>
> Cc: Paul Walmsley<paul@pwsan.com>
> Cc: Anand Gadiyar<gadiyar@ti.com>
> Cc: Shubhrajyoti D<shubhrajyoti@ti.com>
> ---
>   arch/arm/mach-omap2/omap_hwmod.c |   14 +++-----------
>   1 files changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
> index ae56939..9b49440 100644
> --- a/arch/arm/mach-omap2/omap_hwmod.c
> +++ b/arch/arm/mach-omap2/omap_hwmod.c
> @@ -1907,20 +1907,12 @@ void omap_hwmod_write(u32 v, struct omap_hwmod *oh, u16 reg_offs)
>    */
>   int omap_hwmod_softreset(struct omap_hwmod *oh)
>   {
> -	u32 v;
> -	int ret;
> -
> -	if (!oh || !(oh->_sysc_cache))
> +	if (!oh)
>   		return -EINVAL;
>
> -	v = oh->_sysc_cache;
> -	ret = _set_softreset(oh,&v);
> -	if (ret)
> -		goto error;
> -	_write_sysconfig(v, oh);
> +	_ocp_softreset(oh);
>
> -error:
> -	return ret;
> +	return 0;

Just realized, this should be 'return _ocp_softreset(oh);'
instead. will fix and repost.

>   }
>
>   /**


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

* [PATCH 2/2] ARM: omap: hwmod: Make omap_hwmod_softreset wait for reset status
@ 2012-03-13 13:59     ` Rajendra Nayak
  0 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-03-13 13:59 UTC (permalink / raw)
  To: linux-arm-kernel

On Tuesday 13 March 2012 07:25 PM, Rajendra Nayak wrote:
> omap_hwmod_softreset() does not seem to wait for reset status
> after doing a softreset. Make it use _ocp_softreset() instead
> which does this correctly.
>
> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
> Cc: Benoit Cousson<b-cousson@ti.com>
> Cc: Paul Walmsley<paul@pwsan.com>
> Cc: Anand Gadiyar<gadiyar@ti.com>
> Cc: Shubhrajyoti D<shubhrajyoti@ti.com>
> ---
>   arch/arm/mach-omap2/omap_hwmod.c |   14 +++-----------
>   1 files changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
> index ae56939..9b49440 100644
> --- a/arch/arm/mach-omap2/omap_hwmod.c
> +++ b/arch/arm/mach-omap2/omap_hwmod.c
> @@ -1907,20 +1907,12 @@ void omap_hwmod_write(u32 v, struct omap_hwmod *oh, u16 reg_offs)
>    */
>   int omap_hwmod_softreset(struct omap_hwmod *oh)
>   {
> -	u32 v;
> -	int ret;
> -
> -	if (!oh || !(oh->_sysc_cache))
> +	if (!oh)
>   		return -EINVAL;
>
> -	v = oh->_sysc_cache;
> -	ret = _set_softreset(oh,&v);
> -	if (ret)
> -		goto error;
> -	_write_sysconfig(v, oh);
> +	_ocp_softreset(oh);
>
> -error:
> -	return ret;
> +	return 0;

Just realized, this should be 'return _ocp_softreset(oh);'
instead. will fix and repost.

>   }
>
>   /**

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

* Re: [PATCH 1/2] ARM: omap: hwmod: Restore sysc after a reset
  2012-03-13 13:55   ` Rajendra Nayak
@ 2012-04-04 15:41     ` Paul Walmsley
  -1 siblings, 0 replies; 12+ messages in thread
From: Paul Walmsley @ 2012-04-04 15:41 UTC (permalink / raw)
  To: Rajendra Nayak; +Cc: b-cousson, linux-omap, linux-arm-kernel, Shubhrajyoti D

On Tue, 13 Mar 2012, Rajendra Nayak wrote:

> After a softreset, make sure the sysc settings are correctly
> restored.
> 
> Reported-by: Anand Gadiyar <gadiyar@ti.com>
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
> Cc: Benoit Cousson <b-cousson@ti.com>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Shubhrajyoti D <shubhrajyoti@ti.com>

Thanks, this patch has been modified a bit to consolidate the SYSCONFIG 
reload after _reset() into the _reset() function itself.  This should 
hopefully avoid future mistakes and avoid some code duplication.  Modified 
patch follows, queued for 3.4-rc.


- Paul


From: Rajendra Nayak <rnayak@ti.com>
Date: Tue, 13 Mar 2012 22:55:23 +0530
Subject: [PATCH] ARM: OMAP2+: hwmod: Restore sysc after a reset

After a softreset, make sure the sysc settings are correctly
restored.

Reported-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Shubhrajyoti D <shubhrajyoti@ti.com>
[paul@pwsan.com: combined post-reset SYSCONFIG reload code into the
 _reset() function to avoid duplication and future mistakes]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |   18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 5a68010..d32c1ce 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1477,6 +1477,11 @@ static int _reset(struct omap_hwmod *oh)
 
 	ret = (oh->class->reset) ? oh->class->reset(oh) : _ocp_softreset(oh);
 
+	if (oh->class->sysc) {
+		_update_sysc_cache(oh);
+		_enable_sysc(oh);
+	}
+
 	return ret;
 }
 
@@ -1786,20 +1791,9 @@ static int _setup(struct omap_hwmod *oh, void *data)
 		return 0;
 	}
 
-	if (!(oh->flags & HWMOD_INIT_NO_RESET)) {
+	if (!(oh->flags & HWMOD_INIT_NO_RESET))
 		_reset(oh);
 
-		/*
-		 * OCP_SYSCONFIG bits need to be reprogrammed after a softreset.
-		 * The _enable() function should be split to
-		 * avoid the rewrite of the OCP_SYSCONFIG register.
-		 */
-		if (oh->class->sysc) {
-			_update_sysc_cache(oh);
-			_enable_sysc(oh);
-		}
-	}
-
 	postsetup_state = oh->_postsetup_state;
 	if (postsetup_state == _HWMOD_STATE_UNKNOWN)
 		postsetup_state = _HWMOD_STATE_ENABLED;
-- 
1.7.9.5


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

* [PATCH 1/2] ARM: omap: hwmod: Restore sysc after a reset
@ 2012-04-04 15:41     ` Paul Walmsley
  0 siblings, 0 replies; 12+ messages in thread
From: Paul Walmsley @ 2012-04-04 15:41 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, 13 Mar 2012, Rajendra Nayak wrote:

> After a softreset, make sure the sysc settings are correctly
> restored.
> 
> Reported-by: Anand Gadiyar <gadiyar@ti.com>
> Signed-off-by: Rajendra Nayak <rnayak@ti.com>
> Cc: Benoit Cousson <b-cousson@ti.com>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Shubhrajyoti D <shubhrajyoti@ti.com>

Thanks, this patch has been modified a bit to consolidate the SYSCONFIG 
reload after _reset() into the _reset() function itself.  This should 
hopefully avoid future mistakes and avoid some code duplication.  Modified 
patch follows, queued for 3.4-rc.


- Paul


From: Rajendra Nayak <rnayak@ti.com>
Date: Tue, 13 Mar 2012 22:55:23 +0530
Subject: [PATCH] ARM: OMAP2+: hwmod: Restore sysc after a reset

After a softreset, make sure the sysc settings are correctly
restored.

Reported-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Cc: Benoit Cousson <b-cousson@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Shubhrajyoti D <shubhrajyoti@ti.com>
[paul at pwsan.com: combined post-reset SYSCONFIG reload code into the
 _reset() function to avoid duplication and future mistakes]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
 arch/arm/mach-omap2/omap_hwmod.c |   18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 5a68010..d32c1ce 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1477,6 +1477,11 @@ static int _reset(struct omap_hwmod *oh)
 
 	ret = (oh->class->reset) ? oh->class->reset(oh) : _ocp_softreset(oh);
 
+	if (oh->class->sysc) {
+		_update_sysc_cache(oh);
+		_enable_sysc(oh);
+	}
+
 	return ret;
 }
 
@@ -1786,20 +1791,9 @@ static int _setup(struct omap_hwmod *oh, void *data)
 		return 0;
 	}
 
-	if (!(oh->flags & HWMOD_INIT_NO_RESET)) {
+	if (!(oh->flags & HWMOD_INIT_NO_RESET))
 		_reset(oh);
 
-		/*
-		 * OCP_SYSCONFIG bits need to be reprogrammed after a softreset.
-		 * The _enable() function should be split to
-		 * avoid the rewrite of the OCP_SYSCONFIG register.
-		 */
-		if (oh->class->sysc) {
-			_update_sysc_cache(oh);
-			_enable_sysc(oh);
-		}
-	}
-
 	postsetup_state = oh->_postsetup_state;
 	if (postsetup_state == _HWMOD_STATE_UNKNOWN)
 		postsetup_state = _HWMOD_STATE_ENABLED;
-- 
1.7.9.5

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

* Re: [PATCH 1/2] ARM: omap: hwmod: Restore sysc after a reset
  2012-04-04 15:41     ` Paul Walmsley
@ 2012-04-05  7:11       ` Rajendra Nayak
  -1 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-04-05  7:11 UTC (permalink / raw)
  To: Paul Walmsley; +Cc: b-cousson, linux-omap, linux-arm-kernel, Shubhrajyoti D

On Wednesday 04 April 2012 09:11 PM, Paul Walmsley wrote:
> On Tue, 13 Mar 2012, Rajendra Nayak wrote:
>
>> After a softreset, make sure the sysc settings are correctly
>> restored.
>>
>> Reported-by: Anand Gadiyar<gadiyar@ti.com>
>> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
>> Cc: Benoit Cousson<b-cousson@ti.com>
>> Cc: Paul Walmsley<paul@pwsan.com>
>> Cc: Shubhrajyoti D<shubhrajyoti@ti.com>
>
> Thanks, this patch has been modified a bit to consolidate the SYSCONFIG
> reload after _reset() into the _reset() function itself.  This should
> hopefully avoid future mistakes and avoid some code duplication.  Modified
> patch follows, queued for 3.4-rc.

Thanks, changes look good.

>
>
> - Paul
>
>
> From: Rajendra Nayak<rnayak@ti.com>
> Date: Tue, 13 Mar 2012 22:55:23 +0530
> Subject: [PATCH] ARM: OMAP2+: hwmod: Restore sysc after a reset
>
> After a softreset, make sure the sysc settings are correctly
> restored.
>
> Reported-by: Anand Gadiyar<gadiyar@ti.com>
> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
> Cc: Benoit Cousson<b-cousson@ti.com>
> Cc: Paul Walmsley<paul@pwsan.com>
> Cc: Shubhrajyoti D<shubhrajyoti@ti.com>
> [paul@pwsan.com: combined post-reset SYSCONFIG reload code into the
>   _reset() function to avoid duplication and future mistakes]
> Signed-off-by: Paul Walmsley<paul@pwsan.com>
> ---
>   arch/arm/mach-omap2/omap_hwmod.c |   18 ++++++------------
>   1 file changed, 6 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
> index 5a68010..d32c1ce 100644
> --- a/arch/arm/mach-omap2/omap_hwmod.c
> +++ b/arch/arm/mach-omap2/omap_hwmod.c
> @@ -1477,6 +1477,11 @@ static int _reset(struct omap_hwmod *oh)
>
>   	ret = (oh->class->reset) ? oh->class->reset(oh) : _ocp_softreset(oh);
>
> +	if (oh->class->sysc) {
> +		_update_sysc_cache(oh);
> +		_enable_sysc(oh);
> +	}
> +
>   	return ret;
>   }
>
> @@ -1786,20 +1791,9 @@ static int _setup(struct omap_hwmod *oh, void *data)
>   		return 0;
>   	}
>
> -	if (!(oh->flags&  HWMOD_INIT_NO_RESET)) {
> +	if (!(oh->flags&  HWMOD_INIT_NO_RESET))
>   		_reset(oh);
>
> -		/*
> -		 * OCP_SYSCONFIG bits need to be reprogrammed after a softreset.
> -		 * The _enable() function should be split to
> -		 * avoid the rewrite of the OCP_SYSCONFIG register.
> -		 */
> -		if (oh->class->sysc) {
> -			_update_sysc_cache(oh);
> -			_enable_sysc(oh);
> -		}
> -	}
> -
>   	postsetup_state = oh->_postsetup_state;
>   	if (postsetup_state == _HWMOD_STATE_UNKNOWN)
>   		postsetup_state = _HWMOD_STATE_ENABLED;


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

* [PATCH 1/2] ARM: omap: hwmod: Restore sysc after a reset
@ 2012-04-05  7:11       ` Rajendra Nayak
  0 siblings, 0 replies; 12+ messages in thread
From: Rajendra Nayak @ 2012-04-05  7:11 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 04 April 2012 09:11 PM, Paul Walmsley wrote:
> On Tue, 13 Mar 2012, Rajendra Nayak wrote:
>
>> After a softreset, make sure the sysc settings are correctly
>> restored.
>>
>> Reported-by: Anand Gadiyar<gadiyar@ti.com>
>> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
>> Cc: Benoit Cousson<b-cousson@ti.com>
>> Cc: Paul Walmsley<paul@pwsan.com>
>> Cc: Shubhrajyoti D<shubhrajyoti@ti.com>
>
> Thanks, this patch has been modified a bit to consolidate the SYSCONFIG
> reload after _reset() into the _reset() function itself.  This should
> hopefully avoid future mistakes and avoid some code duplication.  Modified
> patch follows, queued for 3.4-rc.

Thanks, changes look good.

>
>
> - Paul
>
>
> From: Rajendra Nayak<rnayak@ti.com>
> Date: Tue, 13 Mar 2012 22:55:23 +0530
> Subject: [PATCH] ARM: OMAP2+: hwmod: Restore sysc after a reset
>
> After a softreset, make sure the sysc settings are correctly
> restored.
>
> Reported-by: Anand Gadiyar<gadiyar@ti.com>
> Signed-off-by: Rajendra Nayak<rnayak@ti.com>
> Cc: Benoit Cousson<b-cousson@ti.com>
> Cc: Paul Walmsley<paul@pwsan.com>
> Cc: Shubhrajyoti D<shubhrajyoti@ti.com>
> [paul at pwsan.com: combined post-reset SYSCONFIG reload code into the
>   _reset() function to avoid duplication and future mistakes]
> Signed-off-by: Paul Walmsley<paul@pwsan.com>
> ---
>   arch/arm/mach-omap2/omap_hwmod.c |   18 ++++++------------
>   1 file changed, 6 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
> index 5a68010..d32c1ce 100644
> --- a/arch/arm/mach-omap2/omap_hwmod.c
> +++ b/arch/arm/mach-omap2/omap_hwmod.c
> @@ -1477,6 +1477,11 @@ static int _reset(struct omap_hwmod *oh)
>
>   	ret = (oh->class->reset) ? oh->class->reset(oh) : _ocp_softreset(oh);
>
> +	if (oh->class->sysc) {
> +		_update_sysc_cache(oh);
> +		_enable_sysc(oh);
> +	}
> +
>   	return ret;
>   }
>
> @@ -1786,20 +1791,9 @@ static int _setup(struct omap_hwmod *oh, void *data)
>   		return 0;
>   	}
>
> -	if (!(oh->flags&  HWMOD_INIT_NO_RESET)) {
> +	if (!(oh->flags&  HWMOD_INIT_NO_RESET))
>   		_reset(oh);
>
> -		/*
> -		 * OCP_SYSCONFIG bits need to be reprogrammed after a softreset.
> -		 * The _enable() function should be split to
> -		 * avoid the rewrite of the OCP_SYSCONFIG register.
> -		 */
> -		if (oh->class->sysc) {
> -			_update_sysc_cache(oh);
> -			_enable_sysc(oh);
> -		}
> -	}
> -
>   	postsetup_state = oh->_postsetup_state;
>   	if (postsetup_state == _HWMOD_STATE_UNKNOWN)
>   		postsetup_state = _HWMOD_STATE_ENABLED;

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

end of thread, other threads:[~2012-04-05  7:11 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-13 13:55 [PATCH 0/2] Fixes in hwmod reset code Rajendra Nayak
2012-03-13 13:55 ` Rajendra Nayak
2012-03-13 13:55 ` [PATCH 1/2] ARM: omap: hwmod: Restore sysc after a reset Rajendra Nayak
2012-03-13 13:55   ` Rajendra Nayak
2012-04-04 15:41   ` Paul Walmsley
2012-04-04 15:41     ` Paul Walmsley
2012-04-05  7:11     ` Rajendra Nayak
2012-04-05  7:11       ` Rajendra Nayak
2012-03-13 13:55 ` [PATCH 2/2] ARM: omap: hwmod: Make omap_hwmod_softreset wait for reset status Rajendra Nayak
2012-03-13 13:55   ` Rajendra Nayak
2012-03-13 13:59   ` Rajendra Nayak
2012-03-13 13:59     ` Rajendra Nayak

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.