All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@deeprootsystems.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Paul Walmsley <paul@pwsan.com>,
	linux-omap@vger.kernel.org,
	Peter de Schrijver <peter.de-schrijver@nokia.com>
Subject: Re: [PATCH] OMAP3 clock: disable DPLL autoidle while waiting for DPLL to lock
Date: Fri, 21 Nov 2008 14:40:41 -0800	[thread overview]
Message-ID: <87zljs66ty.fsf@deeprootsystems.com> (raw)
In-Reply-To: <20081121222807.GI4927@atomide.com> (Tony Lindgren's message of "Fri\, 21 Nov 2008 14\:28\:08 -0800")

Tony Lindgren <tony@atomide.com> writes:

> * Paul Walmsley <paul@pwsan.com> [081114 09:46]:
>> 
>> During _omap3_noncore_dpll_lock(), if a DPLL has no active downstream
>> clocks and DPLL autoidle is enabled, the DPLL may never lock, since it
>> will enter autoidle immediately.  To resolve this, disable DPLL
>> autoidle while locking the DPLL, and unconditionally wait for the DPLL
>> to lock.  This fixes some bugs where the kernel would hang when returning
>> from retention or return the wrong rate for the DPLL.
>> 
>> This patch is a collaboration with Peter de Schrijver 
>> <peter.de-schrijver@nokia.com> and Kevin Hilman 
>> <khilman@deeprootsystems.com>.
>
> Pushing to l-o tree today.
>

Actually, I think Tero and Paul have a different fix for this now,
which is what I've included in the latest PM branch.

Tero can you send the updated version of you "Fix a bug with noncore
dpll rate calculation" patch?

Kevin

>
>
>> Signed-off-by: Paul Walmsley <paul@pwsan.com>
>> Cc: Peter de Schrijver <peter.de-schrijver@nokia.com>
>> Cc: Kevin Hilman <khilman@deeprootsystems.com>
>> ---
>>  arch/arm/mach-omap2/clock34xx.c |   15 +++++----------
>>  1 files changed, 5 insertions(+), 10 deletions(-)
>> 
>> diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
>> index 3a4e160..b8b4494 100644
>> --- a/arch/arm/mach-omap2/clock34xx.c
>> +++ b/arch/arm/mach-omap2/clock34xx.c
>> @@ -163,19 +163,14 @@ static int _omap3_noncore_dpll_lock(struct clk *clk)
>>  
>>  	ai = omap3_dpll_autoidle_read(clk);
>>  
>> +	omap3_dpll_deny_idle(clk);
>> +
>>  	_omap3_dpll_write_clken(clk, DPLL_LOCKED);
>>  
>> -	if (ai) {
>> -		/*
>> -		 * If no downstream clocks are enabled, CM_IDLEST bit
>> -		 * may never become active, so don't wait for DPLL to lock.
>> -		 */
>> -		r = 0;
>> +	r = _omap3_wait_dpll_status(clk, 1);
>> +
>> +	if (ai)
>>  		omap3_dpll_allow_idle(clk);
>> -	} else {
>> -		r = _omap3_wait_dpll_status(clk, 1);
>> -		omap3_dpll_deny_idle(clk);
>> -	};
>>  
>>  	return r;
>>  }
>> --
>> 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

  reply	other threads:[~2008-11-21 22:40 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-14 17:46 [PATCH] OMAP3 clock: disable DPLL autoidle while waiting for DPLL to lock Paul Walmsley
2008-11-21 22:28 ` Tony Lindgren
2008-11-21 22:40   ` Kevin Hilman [this message]
2008-11-21 23:22     ` 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=87zljs66ty.fsf@deeprootsystems.com \
    --to=khilman@deeprootsystems.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=paul@pwsan.com \
    --cc=peter.de-schrijver@nokia.com \
    --cc=tony@atomide.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.