From: Rajendra Nayak <rnayak@ti.com>
To: Jon Hunter <jon-hunter@ti.com>
Cc: Paul Walmsley <paul@pwsan.com>,
linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: OMAP3xxx: clockdomain: fix software supervised wakeup/sleep
Date: Tue, 31 Jul 2012 11:11:03 +0530 [thread overview]
Message-ID: <50176FEF.6060600@ti.com> (raw)
In-Reply-To: <501761E8.3030307@ti.com>
Hi Jon,
On Tuesday 31 July 2012 10:11 AM, Jon Hunter wrote:
> Hi Paul, Rajendra,
>
> On 07/27/2012 12:43 AM, Rajendra Nayak wrote:
>> On Friday 27 July 2012 02:34 AM, Paul Walmsley wrote:
>>>
>>> Commit 4da71ae6 ("OMAP: clockdomain: Arch specific funcs for
>>> clkdm_clk_enable/disable") called the OMAP2xxx-specific functions for
>>> clockdomain wakeup and sleep. This would probably have broken
>>> software-supervised clockdomain wakeup and sleep on OMAP3.
>>
>> Its strange this went unnoticed for so long. Thanks for this fix and
>> sorry about introducing the bug in the first place.
>
> Any chance that's because of the following code? I needed to
> remove this to get the EMU clock domain to turn off on OMAP3
> whilst testing PMU.
No, this doesn't seem right. We still have clockdomains for omap2/3
controlled using clkdm_clk_enable/disable functions called from
within clk framework, and not clkdm_hwmod_enable/disable from
within hwmod framework.
Besides you removing these checks only in clkdm_hwmod_disable (and
keeping them in clkdm_hwmod_enable) tells me its just hiding some
usecounting issues you were having with clkdm_clk_enable/disable.
Btw, on OMAP2/3 as long as a domain has interface clocks which are
explicitly enabled and autoidled, the clkdm usecount never ends up
going to 0, which is probably what you are hit with too.
regards,
Rajendra
>
> Cheers
> Jon
>
> 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?
>
WARNING: multiple messages have this Message-ID (diff)
From: rnayak@ti.com (Rajendra Nayak)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: OMAP3xxx: clockdomain: fix software supervised wakeup/sleep
Date: Tue, 31 Jul 2012 11:11:03 +0530 [thread overview]
Message-ID: <50176FEF.6060600@ti.com> (raw)
In-Reply-To: <501761E8.3030307@ti.com>
Hi Jon,
On Tuesday 31 July 2012 10:11 AM, Jon Hunter wrote:
> Hi Paul, Rajendra,
>
> On 07/27/2012 12:43 AM, Rajendra Nayak wrote:
>> On Friday 27 July 2012 02:34 AM, Paul Walmsley wrote:
>>>
>>> Commit 4da71ae6 ("OMAP: clockdomain: Arch specific funcs for
>>> clkdm_clk_enable/disable") called the OMAP2xxx-specific functions for
>>> clockdomain wakeup and sleep. This would probably have broken
>>> software-supervised clockdomain wakeup and sleep on OMAP3.
>>
>> Its strange this went unnoticed for so long. Thanks for this fix and
>> sorry about introducing the bug in the first place.
>
> Any chance that's because of the following code? I needed to
> remove this to get the EMU clock domain to turn off on OMAP3
> whilst testing PMU.
No, this doesn't seem right. We still have clockdomains for omap2/3
controlled using clkdm_clk_enable/disable functions called from
within clk framework, and not clkdm_hwmod_enable/disable from
within hwmod framework.
Besides you removing these checks only in clkdm_hwmod_disable (and
keeping them in clkdm_hwmod_enable) tells me its just hiding some
usecounting issues you were having with clkdm_clk_enable/disable.
Btw, on OMAP2/3 as long as a domain has interface clocks which are
explicitly enabled and autoidled, the clkdm usecount never ends up
going to 0, which is probably what you are hit with too.
regards,
Rajendra
>
> Cheers
> Jon
>
> 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?
>
next prev parent reply other threads:[~2012-07-31 5:41 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-26 21:04 [PATCH] ARM: OMAP3xxx: clockdomain: fix software supervised wakeup/sleep Paul Walmsley
2012-07-26 21:04 ` Paul Walmsley
2012-07-27 5:43 ` Rajendra Nayak
2012-07-27 5:43 ` Rajendra Nayak
2012-07-31 4:41 ` Jon Hunter
2012-07-31 4:41 ` Jon Hunter
2012-07-31 5:41 ` Rajendra Nayak [this message]
2012-07-31 5:41 ` Rajendra Nayak
2012-07-31 18:12 ` Jon Hunter
2012-07-31 18:12 ` Jon Hunter
2012-07-27 7:58 ` Nayak, Rajendra
2012-07-27 7:58 ` Nayak, Rajendra
2012-07-27 13:38 ` Kevin Hilman
2012-07-27 13:38 ` Kevin Hilman
2012-07-30 16:29 ` Paul Walmsley
2012-07-30 16:29 ` Paul Walmsley
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=50176FEF.6060600@ti.com \
--to=rnayak@ti.com \
--cc=jon-hunter@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=paul@pwsan.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: link
Be 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.