From: Dave Gerlach <d-gerlach@ti.com> To: Paul Walmsley <paul@pwsan.com> Cc: Kevin Hilman <khilman@linaro.org>, Santosh Shilimkar <santosh.shilimkar@ti.com>, Nishanth Menon <nm@ti.com>, Russ Dill <russ.dill@gmail.com>, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, Vaibhav Bedia <vaibhav.bedia@ti.com>, Tony Lingren <tony@atomide.com>, Benoit Cousson <benoit.cousson@linaro.org> Subject: Re: [PATCHv3 8/9] ARM: OMAP2+: AM33XX: Basic suspend resume support Date: Fri, 23 Aug 2013 09:56:15 -0500 [thread overview] Message-ID: <5217780F.30004@ti.com> (raw) In-Reply-To: <alpine.DEB.2.02.1308202244350.6426@utopia.booyaka.com> On 08/20/2013 05:48 PM, Paul Walmsley wrote: > > Hi folks, > > catching up on this thread. > > On 08/06/2013 12:49 PM, Dave Gerlach wrote: > >> + >> +static int am33xx_pm_suspend(void) >> +{ >> + int i, j, ret = 0; >> + >> + int status = 0; >> + struct platform_device *pdev; >> + struct omap_device *od; >> + >> + /* >> + * By default the following IPs do not have MSTANDBY asserted >> + * which is necessary for PER domain transition. If the drivers >> + * are not compiled into the kernel HWMOD code will not change the >> + * state of the IPs if the IP was not never enabled. To ensure >> + * that there no issues with or without the drivers being compiled >> + * in the kernel, we forcefully put these IPs to idle. >> + */ >> + for (i = 0; i < ARRAY_SIZE(am33xx_mod); i++) { >> + pdev = to_platform_device(am33xx_mod[i].dev); >> + od = to_omap_device(pdev); >> + if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER) { >> + omap_device_enable_hwmods(od); >> + omap_device_idle_hwmods(od); >> + } >> + } > > Does this have to be done for every suspend entry, or can it just be done > once during kernel initialization? > > If the latter, shouldn't this be done by hwmod during the initial reset > and idle of all of these devices, based on a flag? For example, we had > this flag for OMAP3630: > > * HWMOD_FORCE_MSTANDBY: Always keep MIDLEMODE bits cleared so that device > * is kept in force-standby mode. Failing to do so causes PM problems > * with musb on OMAP3630 at least. Note that musb has a dedicated > register > * to control MSTANDBY signal when MIDLEMODE is set to force-standby. > Hi, Unfortunately this does have to be done at some point after every suspend/resume cycle because while the IPs are idled during initial reset, after a suspend cycle the context loss when no driver is bound causes MSTANDBY to be unasserted again which as mentioned breaks the PER power domain transition during the next suspend attempt. The current plan for this is somewhat similar to what you mentioned, all of the troublesome modules will be flagged in hwmod and when the hwmods are loaded they are tracked if no driver gets bound and then idled post resume by a pm_notifier. Regards, Dave > > - Paul > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
WARNING: multiple messages have this Message-ID (diff)
From: d-gerlach@ti.com (Dave Gerlach) To: linux-arm-kernel@lists.infradead.org Subject: [PATCHv3 8/9] ARM: OMAP2+: AM33XX: Basic suspend resume support Date: Fri, 23 Aug 2013 09:56:15 -0500 [thread overview] Message-ID: <5217780F.30004@ti.com> (raw) In-Reply-To: <alpine.DEB.2.02.1308202244350.6426@utopia.booyaka.com> On 08/20/2013 05:48 PM, Paul Walmsley wrote: > > Hi folks, > > catching up on this thread. > > On 08/06/2013 12:49 PM, Dave Gerlach wrote: > >> + >> +static int am33xx_pm_suspend(void) >> +{ >> + int i, j, ret = 0; >> + >> + int status = 0; >> + struct platform_device *pdev; >> + struct omap_device *od; >> + >> + /* >> + * By default the following IPs do not have MSTANDBY asserted >> + * which is necessary for PER domain transition. If the drivers >> + * are not compiled into the kernel HWMOD code will not change the >> + * state of the IPs if the IP was not never enabled. To ensure >> + * that there no issues with or without the drivers being compiled >> + * in the kernel, we forcefully put these IPs to idle. >> + */ >> + for (i = 0; i < ARRAY_SIZE(am33xx_mod); i++) { >> + pdev = to_platform_device(am33xx_mod[i].dev); >> + od = to_omap_device(pdev); >> + if (od->_driver_status != BUS_NOTIFY_BOUND_DRIVER) { >> + omap_device_enable_hwmods(od); >> + omap_device_idle_hwmods(od); >> + } >> + } > > Does this have to be done for every suspend entry, or can it just be done > once during kernel initialization? > > If the latter, shouldn't this be done by hwmod during the initial reset > and idle of all of these devices, based on a flag? For example, we had > this flag for OMAP3630: > > * HWMOD_FORCE_MSTANDBY: Always keep MIDLEMODE bits cleared so that device > * is kept in force-standby mode. Failing to do so causes PM problems > * with musb on OMAP3630 at least. Note that musb has a dedicated > register > * to control MSTANDBY signal when MIDLEMODE is set to force-standby. > Hi, Unfortunately this does have to be done at some point after every suspend/resume cycle because while the IPs are idled during initial reset, after a suspend cycle the context loss when no driver is bound causes MSTANDBY to be unasserted again which as mentioned breaks the PER power domain transition during the next suspend attempt. The current plan for this is somewhat similar to what you mentioned, all of the troublesome modules will be flagged in hwmod and when the hwmods are loaded they are tracked if no driver gets bound and then idled post resume by a pm_notifier. Regards, Dave > > - Paul > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo at vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
next prev parent reply other threads:[~2013-08-23 14:57 UTC|newest] Thread overview: 212+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-08-06 17:49 [PATCHv3 0/9] ARM: OMAP2+: AM33XX: Add suspend-resume support Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-06 17:49 ` [PATCHv3 1/9] memory: emif: Move EMIF register defines to include/linux/ Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-08 0:48 ` Russ Dill 2013-08-08 0:48 ` Russ Dill 2013-08-08 13:35 ` Santosh Shilimkar 2013-08-08 13:35 ` Santosh Shilimkar 2013-08-12 19:32 ` Greg Kroah-Hartman 2013-08-12 19:32 ` Greg Kroah-Hartman 2013-08-12 19:33 ` Santosh Shilimkar 2013-08-12 19:33 ` Santosh Shilimkar 2013-08-06 17:49 ` [PATCHv3 2/9] ARM: OMAP2+: AM33XX: control: Add some control module registers and APIs Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-08 0:52 ` Russ Dill 2013-08-08 0:52 ` Russ Dill 2013-08-08 13:44 ` Santosh Shilimkar 2013-08-08 13:44 ` Santosh Shilimkar 2013-08-08 16:16 ` Dave Gerlach 2013-08-08 16:16 ` Dave Gerlach 2013-08-09 5:11 ` Tony Lindgren 2013-08-09 5:11 ` Tony Lindgren 2013-08-09 20:55 ` Dave Gerlach 2013-08-09 20:55 ` Dave Gerlach 2013-08-12 7:54 ` Tony Lindgren 2013-08-12 7:54 ` Tony Lindgren 2013-08-12 19:17 ` Kevin Hilman 2013-08-12 19:17 ` Kevin Hilman 2013-08-12 21:40 ` Dave Gerlach 2013-08-12 21:40 ` Dave Gerlach 2013-08-13 14:29 ` Kevin Hilman 2013-08-13 14:29 ` Kevin Hilman 2013-08-13 15:08 ` Santosh Shilimkar 2013-08-13 15:08 ` Santosh Shilimkar 2013-08-13 16:19 ` Kevin Hilman 2013-08-13 16:19 ` Kevin Hilman 2013-08-13 18:18 ` Santosh Shilimkar 2013-08-13 18:18 ` Santosh Shilimkar 2013-08-13 18:30 ` Russ Dill 2013-08-13 18:30 ` Russ Dill 2013-08-13 18:40 ` Santosh Shilimkar 2013-08-13 18:40 ` Santosh Shilimkar 2013-08-13 19:11 ` Kevin Hilman 2013-08-13 19:11 ` Kevin Hilman 2013-08-14 17:27 ` Suman Anna 2013-08-14 17:27 ` Suman Anna 2013-08-14 19:16 ` Russ Dill 2013-08-14 19:16 ` Russ Dill 2013-08-20 23:39 ` Paul Walmsley 2013-08-20 23:39 ` Paul Walmsley 2013-08-21 17:32 ` Suman Anna 2013-08-21 17:32 ` Suman Anna 2013-08-06 17:49 ` [PATCHv3 3/9] ARM: OMAP: DTB: Update IRQ data for WKUP_M3 Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-08 0:53 ` Russ Dill 2013-08-08 0:53 ` Russ Dill 2013-08-08 13:46 ` Santosh Shilimkar 2013-08-08 13:46 ` Santosh Shilimkar 2013-08-06 17:49 ` [PATCHv3 4/9] ARM: OMAP2+: AM33XX: Reserve memory to comply with EMIF spec Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-08 2:30 ` Russ Dill 2013-08-08 2:30 ` Russ Dill 2013-08-08 14:19 ` Santosh Shilimkar 2013-08-08 14:19 ` Santosh Shilimkar 2013-08-08 18:16 ` Kevin Hilman 2013-08-08 18:16 ` Kevin Hilman 2013-08-08 19:31 ` Santosh Shilimkar 2013-08-08 19:31 ` Santosh Shilimkar 2013-08-08 20:05 ` Kevin Hilman 2013-08-08 20:05 ` Kevin Hilman 2013-08-08 20:11 ` Santosh Shilimkar 2013-08-08 20:11 ` Santosh Shilimkar 2013-08-09 15:11 ` Kevin Hilman 2013-08-09 15:11 ` Kevin Hilman 2013-08-09 16:25 ` Dave Gerlach 2013-08-09 16:25 ` Dave Gerlach 2013-08-06 17:49 ` [PATCHv3 5/9] ARM: OMAP2+: AM33XX: Add assembly code for PM operations Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-08 7:02 ` Russ Dill 2013-08-08 7:02 ` Russ Dill 2013-08-08 14:50 ` Santosh Shilimkar 2013-08-08 14:50 ` Santosh Shilimkar 2013-08-08 15:16 ` Russ Dill 2013-08-08 15:16 ` Russ Dill 2013-08-08 15:22 ` Santosh Shilimkar 2013-08-08 15:22 ` Santosh Shilimkar 2013-08-08 16:03 ` Russ Dill 2013-08-08 16:03 ` Russ Dill 2013-08-19 12:54 ` Gururaja Hebbar 2013-08-19 12:54 ` Gururaja Hebbar 2013-08-19 17:51 ` Dave Gerlach 2013-08-19 17:51 ` Dave Gerlach 2013-08-06 17:49 ` [PATCHv3 6/9] ARM: OMAP2+: timer: Add suspend-resume callbacks for clkevent device Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-08 7:03 ` Russ Dill 2013-08-08 7:03 ` Russ Dill 2013-08-08 14:23 ` Santosh Shilimkar 2013-08-08 14:23 ` Santosh Shilimkar 2013-08-08 16:09 ` Dave Gerlach 2013-08-08 16:09 ` Dave Gerlach 2013-08-08 18:25 ` Kevin Hilman 2013-08-08 18:25 ` Kevin Hilman 2013-08-08 19:49 ` Dave Gerlach 2013-08-08 19:49 ` Dave Gerlach 2013-08-06 17:49 ` [PATCHv3 7/9] ARM: OMAP: omap_device: Add APIs to enable and idle hwmods Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-08 7:05 ` Russ Dill 2013-08-08 7:05 ` Russ Dill 2013-08-08 14:26 ` Santosh Shilimkar 2013-08-08 14:26 ` Santosh Shilimkar 2013-08-06 17:49 ` [PATCHv3 8/9] ARM: OMAP2+: AM33XX: Basic suspend resume support Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-07 16:22 ` Nishanth Menon 2013-08-07 16:22 ` Nishanth Menon 2013-08-07 18:12 ` Dave Gerlach 2013-08-07 18:12 ` Dave Gerlach 2013-08-07 19:16 ` Nishanth Menon 2013-08-07 19:16 ` Nishanth Menon 2013-08-08 8:45 ` Russ Dill 2013-08-08 8:45 ` Russ Dill 2013-08-08 12:26 ` Nishanth Menon 2013-08-08 12:26 ` Nishanth Menon 2013-08-08 15:03 ` Santosh Shilimkar 2013-08-08 15:03 ` Santosh Shilimkar 2013-08-08 16:06 ` Dave Gerlach 2013-08-08 16:06 ` Dave Gerlach 2013-08-08 16:22 ` Nishanth Menon 2013-08-08 16:22 ` Nishanth Menon 2013-08-08 21:14 ` Kevin Hilman 2013-08-08 21:14 ` Kevin Hilman 2013-08-08 21:32 ` Nishanth Menon 2013-08-08 21:32 ` Nishanth Menon 2013-08-08 23:04 ` Kevin Hilman 2013-08-08 23:04 ` Kevin Hilman 2013-08-09 15:11 ` Nishanth Menon 2013-08-09 15:11 ` Nishanth Menon 2013-08-09 16:12 ` Kevin Hilman 2013-08-09 16:12 ` Kevin Hilman 2013-08-09 16:36 ` Nishanth Menon 2013-08-09 16:36 ` Nishanth Menon 2013-08-09 20:34 ` Kevin Hilman 2013-08-09 20:34 ` Kevin Hilman 2013-08-09 21:35 ` Nishanth Menon 2013-08-09 21:35 ` Nishanth Menon 2013-08-09 22:28 ` Russ Dill 2013-08-09 22:28 ` Russ Dill 2013-08-12 16:09 ` Kevin Hilman 2013-08-12 16:09 ` Kevin Hilman 2013-08-30 17:29 ` Vaibhav Bedia 2013-08-30 17:29 ` Vaibhav Bedia 2013-08-20 22:48 ` Paul Walmsley 2013-08-20 22:48 ` Paul Walmsley 2013-08-23 14:56 ` Dave Gerlach [this message] 2013-08-23 14:56 ` Dave Gerlach 2013-08-13 7:43 ` Russ Dill 2013-08-13 7:43 ` Russ Dill 2013-08-13 14:59 ` Kevin Hilman 2013-08-13 14:59 ` Kevin Hilman 2013-08-27 21:45 ` Kevin Hilman 2013-08-27 21:45 ` Kevin Hilman 2013-08-29 21:41 ` Dave Gerlach 2013-08-29 21:41 ` Dave Gerlach 2013-08-29 22:02 ` Kevin Hilman 2013-08-29 22:02 ` Kevin Hilman 2013-08-30 17:39 ` Vaibhav Bedia 2013-08-30 17:39 ` Vaibhav Bedia 2013-08-30 21:18 ` Kevin Hilman 2013-08-30 21:18 ` Kevin Hilman 2013-08-06 17:49 ` [PATCHv3 9/9] ARM: OMAP2+: AM33XX: Hookup AM33XX PM code into OMAP builds Dave Gerlach 2013-08-06 17:49 ` Dave Gerlach 2013-08-08 8:47 ` Russ Dill 2013-08-08 8:47 ` Russ Dill 2013-08-08 14:53 ` Santosh Shilimkar 2013-08-08 14:53 ` Santosh Shilimkar 2013-08-08 13:31 ` [PATCHv3 0/9] ARM: OMAP2+: AM33XX: Add suspend-resume support Santosh Shilimkar 2013-08-08 13:31 ` Santosh Shilimkar 2013-08-11 11:53 ` Daniel Mack 2013-08-11 11:53 ` Daniel Mack 2013-08-12 18:59 ` Dave Gerlach 2013-08-12 18:59 ` Dave Gerlach 2013-08-13 12:39 ` Daniel Mack 2013-08-13 12:39 ` Daniel Mack 2013-08-13 15:33 ` Dave Gerlach 2013-08-13 15:33 ` Dave Gerlach 2013-08-13 15:51 ` Daniel Mack 2013-08-13 15:51 ` Daniel Mack 2013-08-19 9:23 ` Gururaja Hebbar 2013-08-19 9:23 ` Gururaja Hebbar 2013-08-19 17:47 ` Dave Gerlach 2013-08-19 17:47 ` Dave Gerlach 2013-08-27 20:23 ` Kevin Hilman 2013-08-27 20:23 ` Kevin Hilman 2013-08-29 21:30 ` Dave Gerlach 2013-08-29 21:30 ` Dave Gerlach 2013-08-29 21:52 ` Kevin Hilman 2013-08-29 21:52 ` Kevin Hilman 2013-08-29 22:20 ` Dave Gerlach 2013-08-29 22:20 ` Dave Gerlach 2013-08-29 22:20 ` Kevin Hilman 2013-08-29 22:20 ` Kevin Hilman 2013-08-29 22:43 ` Russ Dill 2013-08-29 22:43 ` Russ Dill 2013-08-29 23:02 ` Kevin Hilman 2013-08-29 23:02 ` Kevin Hilman 2013-09-03 17:24 ` Dave Gerlach 2013-09-03 17:24 ` Dave Gerlach 2013-09-04 15:01 ` Kevin Hilman 2013-09-04 15:01 ` Kevin Hilman 2013-09-04 15:12 ` Russ Dill 2013-09-04 15:12 ` Russ Dill 2013-09-04 15:18 ` Kevin Hilman 2013-09-04 15:18 ` Kevin Hilman
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=5217780F.30004@ti.com \ --to=d-gerlach@ti.com \ --cc=benoit.cousson@linaro.org \ --cc=khilman@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=nm@ti.com \ --cc=paul@pwsan.com \ --cc=russ.dill@gmail.com \ --cc=santosh.shilimkar@ti.com \ --cc=tony@atomide.com \ --cc=vaibhav.bedia@ti.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.