From: Jon Hunter <jon-hunter@ti.com> To: Paul Walmsley <paul@pwsan.com> Cc: linux-omap <linux-omap@vger.kernel.org>, linux-arm <linux-arm-kernel@lists.infradead.org>, Ming Lei <ming.lei@canonical.com>, Will Deacon <will.deacon@arm.com>, Benoit Cousson <b-cousson@ti.com>, Kevin Hilman <khilman@ti.com> Subject: Re: [PATCH V2 08/10] ARM: OMAP4: Prevent EMU power domain transitioning to OFF when in-use Date: Mon, 30 Jul 2012 18:26:57 -0500 [thread overview] Message-ID: <50171841.40309@ti.com> (raw) In-Reply-To: <alpine.DEB.2.00.1207161228470.28834@utopia.booyaka.com> Hi Paul, On 07/16/2012 01:38 PM, Paul Walmsley wrote: > Hi Jon, > > On Mon, 16 Jul 2012, Jon Hunter wrote: > >> Yes I see that makes sense. However, patch #7 has already changed the >> mapping of the flags. I had intended that patch #7 and #8 would be >> applied together. However, I could see that patch #7 can be taken just >> to eliminate using the SW_SLEEP state. So basically, what I am saying is >> does patch #7 have any value without #8? > > Certainly not as much value as it had before. But my understanding, which > is possibly incorrect, matches what you wrote in patch #7's description: > > "For OMAP4 devices, SW_SLEEP is equivalent to HW_AUTO and NO_SLEEP is > equivalent to SW_WKUP. The only difference between HW_AUTO and SW_SLEEP > for OMAP4 devices is that the PRM_IRQSTATUS_MPU.TRANSITION_ST interrupt > status is set in case of SW_SLEEP transition, and not set in case of > HW_AUTO transition." > > We don't use that PRM_IRQSTATUS_MPU.TRANSITION_ST interrupt bit. So if > SW_SLEEP and HW_AUTO really have identical meanings otherwise, then I > suppose we might as well use the one that does what we need with no > extraneous side-effects? My recollection from a conversation with Benoît > a few months ago was that this was his view as well. > >> That's fine with me. We can always workaround such issues by adding flags. >> >> I can give this a try this week and let you know how it goes. > > Okay, great. No rush on my account. I have been testing your patch [1] on OMAP3 and found that the EMU clock domain was not being disabled for two reasons. 1. When HWMOD attempts to disable the clock domain for OMAP2/3 devices we simply return without doing anything. Not sure if it is safe to remove this but I can do some more testing on OMAP2/3. commit a0307bd539ecef976793679a1c4ff0d47b22c4bd Author: Jon Hunter <jon-hunter@ti.com> Date: Mon Jul 30 18:04:06 2012 -0500 ARM: OMAP2/3: Allow HWMOD to disable clock domains Currently when HWMOD attempts to disable a clock domain on OMAP2/3 devices we will return from the function clkdm_hwmod_disable() without actually disabling the clock domain. Per the comment this is deliberate because initially HWMOD OMAP2/3 devices did not support clock domains. However, clock domains are now supported by HWMOD for these devices and so allow HWMOD to disable the clock domains. XXX - Tested on OMAP3430 beagle board, but needs more testing on OMAP2/3 diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c index 011186f..8f7a941 100644 --- a/arch/arm/mach-omap2/clockdomain.c +++ b/arch/arm/mach-omap2/clockdomain.c @@ -1075,10 +1075,6 @@ int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod *oh) */ int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod *oh) { - /* The clkdm attribute does not exist yet prior OMAP4 */ - if (cpu_is_omap24xx() || cpu_is_omap34xx()) - return 0; - /* * XXX Rewrite this code to maintain a list of enabled * downstream hwmods for debugging purposes? 2. I need to make the following changes to your patch. The change to omap2_clkdm_clk_disable() was needed to get the EMU to turn off. At the same time I thought we should make the same change to omap2_clkdm_clk_enable(). diff --git a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c index 09385a9..c94b2fb 100644 --- a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c +++ b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c @@ -223,7 +223,8 @@ static int omap2_clkdm_clk_enable(struct clockdomain *clkdm) _enable_hwsup(clkdm); } else { if (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP) - omap2_clkdm_wakeup(clkdm); + (cpu_is_omap24xx()) ? omap2_clkdm_wakeup(clkdm) : + omap3_clkdm_wakeup(clkdm); } return 0; @@ -257,7 +258,8 @@ static int omap2_clkdm_clk_disable(struct clockdomain *clkdm) _enable_hwsup(clkdm); } else { if (clkdm->flags & CLKDM_CAN_FORCE_SLEEP) - omap2_clkdm_sleep(clkdm); + (cpu_is_omap24xx()) ? omap2_clkdm_sleep(clkdm) : + omap3_clkdm_sleep(clkdm); } I need to do more testing but wanted to give you this feedback and get your comments. Cheers Jon [1] http://marc.info/?l=linux-arm-kernel&m=134212814812557&w=2 -- 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: jon-hunter@ti.com (Jon Hunter) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH V2 08/10] ARM: OMAP4: Prevent EMU power domain transitioning to OFF when in-use Date: Mon, 30 Jul 2012 18:26:57 -0500 [thread overview] Message-ID: <50171841.40309@ti.com> (raw) In-Reply-To: <alpine.DEB.2.00.1207161228470.28834@utopia.booyaka.com> Hi Paul, On 07/16/2012 01:38 PM, Paul Walmsley wrote: > Hi Jon, > > On Mon, 16 Jul 2012, Jon Hunter wrote: > >> Yes I see that makes sense. However, patch #7 has already changed the >> mapping of the flags. I had intended that patch #7 and #8 would be >> applied together. However, I could see that patch #7 can be taken just >> to eliminate using the SW_SLEEP state. So basically, what I am saying is >> does patch #7 have any value without #8? > > Certainly not as much value as it had before. But my understanding, which > is possibly incorrect, matches what you wrote in patch #7's description: > > "For OMAP4 devices, SW_SLEEP is equivalent to HW_AUTO and NO_SLEEP is > equivalent to SW_WKUP. The only difference between HW_AUTO and SW_SLEEP > for OMAP4 devices is that the PRM_IRQSTATUS_MPU.TRANSITION_ST interrupt > status is set in case of SW_SLEEP transition, and not set in case of > HW_AUTO transition." > > We don't use that PRM_IRQSTATUS_MPU.TRANSITION_ST interrupt bit. So if > SW_SLEEP and HW_AUTO really have identical meanings otherwise, then I > suppose we might as well use the one that does what we need with no > extraneous side-effects? My recollection from a conversation with Beno?t > a few months ago was that this was his view as well. > >> That's fine with me. We can always workaround such issues by adding flags. >> >> I can give this a try this week and let you know how it goes. > > Okay, great. No rush on my account. I have been testing your patch [1] on OMAP3 and found that the EMU clock domain was not being disabled for two reasons. 1. When HWMOD attempts to disable the clock domain for OMAP2/3 devices we simply return without doing anything. Not sure if it is safe to remove this but I can do some more testing on OMAP2/3. commit a0307bd539ecef976793679a1c4ff0d47b22c4bd Author: Jon Hunter <jon-hunter@ti.com> Date: Mon Jul 30 18:04:06 2012 -0500 ARM: OMAP2/3: Allow HWMOD to disable clock domains Currently when HWMOD attempts to disable a clock domain on OMAP2/3 devices we will return from the function clkdm_hwmod_disable() without actually disabling the clock domain. Per the comment this is deliberate because initially HWMOD OMAP2/3 devices did not support clock domains. However, clock domains are now supported by HWMOD for these devices and so allow HWMOD to disable the clock domains. XXX - Tested on OMAP3430 beagle board, but needs more testing on OMAP2/3 diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c index 011186f..8f7a941 100644 --- a/arch/arm/mach-omap2/clockdomain.c +++ b/arch/arm/mach-omap2/clockdomain.c @@ -1075,10 +1075,6 @@ int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod *oh) */ int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod *oh) { - /* The clkdm attribute does not exist yet prior OMAP4 */ - if (cpu_is_omap24xx() || cpu_is_omap34xx()) - return 0; - /* * XXX Rewrite this code to maintain a list of enabled * downstream hwmods for debugging purposes? 2. I need to make the following changes to your patch. The change to omap2_clkdm_clk_disable() was needed to get the EMU to turn off. At the same time I thought we should make the same change to omap2_clkdm_clk_enable(). diff --git a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c index 09385a9..c94b2fb 100644 --- a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c +++ b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c @@ -223,7 +223,8 @@ static int omap2_clkdm_clk_enable(struct clockdomain *clkdm) _enable_hwsup(clkdm); } else { if (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP) - omap2_clkdm_wakeup(clkdm); + (cpu_is_omap24xx()) ? omap2_clkdm_wakeup(clkdm) : + omap3_clkdm_wakeup(clkdm); } return 0; @@ -257,7 +258,8 @@ static int omap2_clkdm_clk_disable(struct clockdomain *clkdm) _enable_hwsup(clkdm); } else { if (clkdm->flags & CLKDM_CAN_FORCE_SLEEP) - omap2_clkdm_sleep(clkdm); + (cpu_is_omap24xx()) ? omap2_clkdm_sleep(clkdm) : + omap3_clkdm_sleep(clkdm); } I need to do more testing but wanted to give you this feedback and get your comments. Cheers Jon [1] http://marc.info/?l=linux-arm-kernel&m=134212814812557&w=2
next prev parent reply other threads:[~2012-07-30 23:27 UTC|newest] Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-06-07 21:22 [PATCH V2 00/10] ARM: OMAP4: Add PMU Support Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-06-07 21:22 ` [PATCH V2 01/10] ARM: PMU: Add runtime PM Support Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-06-08 9:47 ` Will Deacon 2012-06-08 9:47 ` Will Deacon 2012-06-08 14:17 ` Jon Hunter 2012-06-08 14:17 ` Jon Hunter 2012-06-08 15:24 ` Jon Hunter 2012-06-08 15:24 ` Jon Hunter 2012-06-11 17:39 ` Will Deacon 2012-06-11 17:39 ` Will Deacon 2012-06-11 19:01 ` Jon Hunter 2012-06-11 19:01 ` Jon Hunter 2012-06-12 9:28 ` Will Deacon 2012-06-12 9:28 ` Will Deacon 2012-06-12 21:17 ` Jon Hunter 2012-06-12 21:17 ` Jon Hunter 2012-06-12 21:31 ` Will Deacon 2012-06-12 21:31 ` Will Deacon 2012-06-12 22:41 ` Jon Hunter 2012-06-12 22:41 ` Jon Hunter 2012-07-02 9:55 ` Will Deacon 2012-07-02 9:55 ` Will Deacon 2012-07-02 16:50 ` Jon Hunter 2012-07-02 16:50 ` Jon Hunter 2012-07-02 22:01 ` Will Deacon 2012-07-02 22:01 ` Will Deacon 2012-07-06 0:40 ` Jon Hunter 2012-07-06 0:40 ` Jon Hunter 2012-07-26 0:41 ` Jon Hunter 2012-07-26 0:41 ` Jon Hunter 2012-07-26 15:05 ` Will Deacon 2012-07-26 15:05 ` Will Deacon 2012-07-26 15:16 ` Jon Hunter 2012-07-26 15:16 ` Jon Hunter 2012-07-31 15:14 ` Will Deacon 2012-07-31 15:14 ` Will Deacon 2012-07-31 23:07 ` Jon Hunter 2012-07-31 23:07 ` Jon Hunter 2012-08-01 20:47 ` Will Deacon 2012-08-01 20:47 ` Will Deacon 2012-08-01 22:34 ` Jon Hunter 2012-08-01 22:34 ` Jon Hunter 2012-06-07 21:22 ` [PATCH V2 02/10] ARM: OMAP2+: PMU: Convert OMAP2/3 devices to use HWMOD Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-06-07 21:22 ` [PATCH V2 03/10] ARM: OMAP4: Re-map the CTIs IRQs from MPU to DEBUGSS Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-06-13 6:07 ` Pandita, Vikram 2012-06-13 6:07 ` Pandita, Vikram 2012-06-13 6:13 ` Pandita, Vikram 2012-06-13 6:13 ` Pandita, Vikram 2012-06-13 6:19 ` Shilimkar, Santosh 2012-06-13 6:19 ` Shilimkar, Santosh 2012-06-07 21:22 ` [PATCH V2 04/10] ARM: OMAP4430: Create PMU device via HWMOD Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-06-07 21:22 ` [PATCH V2 05/10] ARM: OMAP2+: PMU: Add runtime PM support Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-06-07 21:22 ` [PATCH V2 06/10] ARM: OMAP4: Route PMU IRQs to CTI IRQs Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-06-07 21:22 ` [PATCH V2 07/10] ARM: OMAP4: CLKDM: Update supported transition modes Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-07-04 15:38 ` Paul Walmsley 2012-07-04 15:38 ` Paul Walmsley 2012-07-05 17:14 ` Jon Hunter 2012-07-05 17:14 ` Jon Hunter 2012-06-07 21:22 ` [PATCH V2 08/10] ARM: OMAP4: Prevent EMU power domain transitioning to OFF when in-use Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-07-12 21:17 ` Paul Walmsley 2012-07-12 21:17 ` Paul Walmsley 2012-07-13 13:54 ` Jon Hunter 2012-07-13 13:54 ` Jon Hunter 2012-07-13 14:00 ` Will Deacon 2012-07-13 14:00 ` Will Deacon 2012-07-13 14:07 ` Jon Hunter 2012-07-13 14:07 ` Jon Hunter 2012-07-20 22:24 ` Jon Hunter 2012-07-20 22:24 ` Jon Hunter 2012-07-13 21:00 ` Paul Walmsley 2012-07-13 21:00 ` Paul Walmsley 2012-07-16 18:27 ` Jon Hunter 2012-07-16 18:27 ` Jon Hunter 2012-07-16 18:38 ` Paul Walmsley 2012-07-16 18:38 ` Paul Walmsley 2012-07-16 19:38 ` Jon Hunter 2012-07-16 19:38 ` Jon Hunter 2012-07-20 22:24 ` Jon Hunter 2012-07-20 22:24 ` Jon Hunter 2012-07-30 23:26 ` Jon Hunter [this message] 2012-07-30 23:26 ` Jon Hunter 2012-07-31 4:36 ` Jon Hunter 2012-07-31 4:36 ` Jon Hunter 2012-07-31 18:16 ` Jon Hunter 2012-07-31 18:16 ` Jon Hunter 2012-08-01 0:20 ` Jon Hunter 2012-08-01 0:20 ` Jon Hunter 2012-08-01 15:08 ` Paul Walmsley 2012-08-01 15:08 ` Paul Walmsley 2012-08-01 18:17 ` Jon Hunter 2012-08-01 18:17 ` Jon Hunter 2012-08-01 15:36 ` Paul Walmsley 2012-08-01 15:36 ` Paul Walmsley 2012-08-01 19:41 ` Jon Hunter 2012-08-01 19:41 ` Jon Hunter 2012-08-02 7:34 ` Shilimkar, Santosh 2012-08-02 7:34 ` Shilimkar, Santosh 2012-10-08 22:24 ` Jon Hunter 2012-10-08 22:24 ` Jon Hunter 2012-10-09 4:41 ` Paul Walmsley 2012-10-09 4:41 ` Paul Walmsley 2012-07-31 20:56 ` Jon Hunter 2012-07-31 20:56 ` Jon Hunter 2012-06-07 21:22 ` [PATCH V2 09/10] ARM: OMAP4: Enable PMU for OMAP4460/70 Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-06-07 21:22 ` [PATCH V2 10/10] ARM: OMAP2+: PMU: Add QoS constraint Jon Hunter 2012-06-07 21:22 ` Jon Hunter 2012-06-07 23:36 ` [PATCH V2 00/10] ARM: OMAP4: Add PMU Support Jon Hunter 2012-06-07 23:36 ` Jon Hunter
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=50171841.40309@ti.com \ --to=jon-hunter@ti.com \ --cc=b-cousson@ti.com \ --cc=khilman@ti.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=ming.lei@canonical.com \ --cc=paul@pwsan.com \ --cc=will.deacon@arm.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.