From patchwork Thu Jul 12 19:35:14 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Paul Walmsley X-Patchwork-Id: 1190421 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id B2FAEDFFFE for ; Thu, 12 Jul 2012 19:35:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755920Ab2GLTfQ (ORCPT ); Thu, 12 Jul 2012 15:35:16 -0400 Received: from utopia.booyaka.com ([72.9.107.138]:41840 "EHLO utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755751Ab2GLTfP (ORCPT ); Thu, 12 Jul 2012 15:35:15 -0400 Received: (qmail 20248 invoked by uid 1019); 12 Jul 2012 19:35:14 -0000 Date: Thu, 12 Jul 2012 13:35:14 -0600 (MDT) From: Paul Walmsley To: Joe Woodward cc: Kevin Hilman , "linux-omap\\\\@vger.kernel.org" Subject: Re: PM/RTC 3.5-rc5: System suspends fails when not built with RTC? In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org Hello Joe, On Thu, 12 Jul 2012, Joe Woodward wrote: > I think this has fixed the following warning: > [ 0.000000] clockdomain: mpu_clkdm: powerdomain ¬õ`À8ºsÀ does not exist > > But when I try and suspend I still get the same problems: > # echo mem > /sys/power/state > [ 13.283935] PM: Syncing filesystems ... done. > [ 13.300537] Freezing user space processes ... (elapsed 0.01 seconds) done. > [ 13.324859] Freezing remaining freezable tasks ... (elapsed 0.02 seconds) done. > [ 13.356140] Suspending console(s) (use no_console_suspend to debug) > [ 13.487823] PM: suspend of devices complete after 120.578 msecs > [ 13.491577] PM: late suspend of devices complete after 3.722 msecs > [ 13.497375] PM: noirq suspend of devices complete after 5.767 msecs > [ 13.497436] Disabling non-boot CPUs ... > [ 15.806640] Powerdomain (iva2_pwrdm) didn't enter target state 1 > [ 15.806640] Powerdomain (dss_pwrdm) didn't enter target state 1 > [ 15.806671] Powerdomain (per_pwrdm) didn't enter target state 1 > [ 15.806671] Powerdomain (core_pwrdm) didn't enter target state 1 > [ 15.806671] Powerdomain (usbhost_pwrdm) didn't enter target state 1 > [ 15.806671] Could not enter target state in pm_suspend > [ 15.809722] PM: noirq resume of devices complete after 2.868 msecs > [ 15.813598] PM: early resume of devices complete after 2.380 msecs > [ 16.179382] mmc1: error -110 during resume (card was removed?) > [ 16.189575] PM: resume of devices complete after 375.824 msecs > [ 16.279602] Restarting tasks ... done. > sh: write error: Operation not permitted Thanks for the test. Perhaps you could try the following untested patch? - Paul --- arch/arm/mach-omap2/pm34xx.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index e4fc88c..ced2f76 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -545,13 +545,10 @@ static void __init prcm_setup_regs(void) OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL); /* Don't attach IVA interrupts */ - if (omap3_has_iva()) { - omap2_prm_write_mod_reg(0, WKUP_MOD, OMAP3430_PM_IVAGRPSEL); - omap2_prm_write_mod_reg(0, CORE_MOD, OMAP3430_PM_IVAGRPSEL1); - omap2_prm_write_mod_reg(0, CORE_MOD, OMAP3430ES2_PM_IVAGRPSEL3); - omap2_prm_write_mod_reg(0, OMAP3430_PER_MOD, - OMAP3430_PM_IVAGRPSEL); - } + omap2_prm_write_mod_reg(0, WKUP_MOD, OMAP3430_PM_IVAGRPSEL); + omap2_prm_write_mod_reg(0, CORE_MOD, OMAP3430_PM_IVAGRPSEL1); + omap2_prm_write_mod_reg(0, CORE_MOD, OMAP3430ES2_PM_IVAGRPSEL3); + omap2_prm_write_mod_reg(0, OMAP3430_PER_MOD, OMAP3430_PM_IVAGRPSEL); /* Clear any pending 'reset' flags */ omap2_prm_write_mod_reg(0xffffffff, MPU_MOD, OMAP2_RM_RSTST); @@ -565,8 +562,7 @@ static void __init prcm_setup_regs(void) /* Clear any pending PRCM interrupts */ omap2_prm_write_mod_reg(0, OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET); - if (omap3_has_iva()) - omap3_iva_idle(); + omap3_iva_idle(); omap3_d2d_idle(); }