[PATCH] ARM: OMAP AM3517/05: hwmod data: block WFI when EMAC active

Mark A. Greer mgreer at animalcreek.com
Tue Jan 8 15:43:47 EST 2013


On Tue, Jan 08, 2013 at 07:21:16PM +0000, Paul Walmsley wrote:
> On Sun, 30 Dec 2012, Paul Walmsley wrote:

Hi Paul.

> > However, for some reason, we don't have an EMAC hwmod -- probably some 
> > bug in the data -- so set the flag on the MDIO hwmod data instead.
> 
> Mark and I discussed this in private E-mail.  Looks like I managed to 
> confuse AM33xx and AM3517 :-(  Here's the updated patch.
> 
> 
> - Paul
> 
> 
> From: Paul Walmsley <paul at pwsan.com>
> Date: Sun, 30 Dec 2012 10:36:36 -0700
> Subject: [PATCH] ARM: OMAP AM3517/05: hwmod data: block WFI when EMAC active
> 
> According to Mark Greer, on OMAP AM3517/3505 chips, the EMAC is unable
> to wake the ARM up from WFI:
> 
>     http://www.spinics.net/lists/arm-kernel/msg174734.html
> 
> Further troubleshooting was unable to narrow the problem down.  So we
> don't have much choice other than to block WFI when the EMAC is active
> with the HWMOD_BLOCK_WFI flag.
> 
> Based on Mark's original patch.  We're removing the omap_device-based
> pm_lats code, so a different approach was needed.
> 
> This second version contains some corrections thanks to Mark's review.
> 
> Signed-off-by: Paul Walmsley <paul at pwsan.com>
> Cc: Mark A. Greer <mgreer at animalcreek.com>
> ---
>  arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |    8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> index 8bb2628..7af28b7 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> @@ -3493,7 +3493,13 @@ static struct omap_hwmod am35xx_emac_hwmod = {
>  	.name		= "davinci_emac",
>  	.mpu_irqs	= am35xx_emac_mpu_irqs,
>  	.class		= &am35xx_emac_class,
> -	.flags		= HWMOD_NO_IDLEST,
> +	/*
> +	 * According to Mark Greer, the MPU will not return from WFI
> +	 * when the EMAC signals an interrupt.  We're missing an EMAC
> +	 * hwmod for some reason, so add the flag to the MDIO instead.
> +	 * http://www.spinics.net/lists/arm-kernel/msg174734.html
> +	 */
> +	.flags		= (HWMOD_NO_IDLEST | HWMOD_BLOCK_WFI),
>  };

Sorry to nag but I think the comment needs to be updated to remove the
sentence about the missing EMAC hwmod.

Mark
--



More information about the linux-arm-kernel mailing list