[PATCH v2 2/2] ARM: omap: hwmod: Make omap_hwmod_softreset wait for reset status
Rajendra Nayak
rnayak at ti.com
Fri Apr 13 08:15:47 EDT 2012
On Friday 13 April 2012 04:52 PM, Paul Walmsley wrote:
> Hi Rajendra
>
> here's what I've queued for v3.4-rc; please let me know if you have any
> comments.
Looks good, thanks Paul.
>
>
> - Paul
>
> From: Paul Walmsley<paul at pwsan.com>
> Date: Fri, 13 Apr 2012 05:08:43 -0600
> Subject: [PATCH] ARM: OMAP2+: hwmod: Revert "ARM: OMAP2+: hwmod: Make
> omap_hwmod_softreset wait for reset status"
>
> This reverts commit f9a2f9c3fa76eec55928e8e06f3094c8f01df7cb. This
> commit caused a regression in the I2C hwmod reset on OMAP2/3/4,
> logging messages similar to these during boot:
>
> [ 0.200378] omap_hwmod: i2c1: softreset failed (waited 10000 usec)
> [ 0.222076] omap_hwmod: i2c2: softreset failed (waited 10000 usec)
>
> While the original patch was intended to fix some reset-related timing
> issues, it's believed that these problems were actually fixed by
> commit 2800852a079504f35f88e44faf5c9c96318c0cca ("ARM: OMAP2+: hwmod:
> Restore sysc after a reset"):
>
> http://marc.info/?l=linux-arm-kernel&m=133410322617245&w=2
>
> Cc: Rajendra Nayak<rnayak at ti.com>
> Signed-off-by: Paul Walmsley<paul at pwsan.com>
> ---
> arch/arm/mach-omap2/omap_hwmod.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
> index 45f1d9c..7144ae6 100644
> --- a/arch/arm/mach-omap2/omap_hwmod.c
> +++ b/arch/arm/mach-omap2/omap_hwmod.c
> @@ -1906,10 +1906,20 @@ void omap_hwmod_write(u32 v, struct omap_hwmod *oh, u16 reg_offs)
> */
> int omap_hwmod_softreset(struct omap_hwmod *oh)
> {
> - if (!oh)
> + u32 v;
> + int ret;
> +
> + if (!oh || !(oh->_sysc_cache))
> return -EINVAL;
>
> - return _ocp_softreset(oh);
> + v = oh->_sysc_cache;
> + ret = _set_softreset(oh,&v);
> + if (ret)
> + goto error;
> + _write_sysconfig(v, oh);
> +
> +error:
> + return ret;
> }
>
> /**
More information about the linux-arm-kernel
mailing list