[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