linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 2/2] arm/tegra: add timeout to PCIe PLL lock detection loop
Date: Mon, 12 Mar 2012 12:09:43 -0600	[thread overview]
Message-ID: <4F5E3BE7.4080207@wwwdotorg.org> (raw)
In-Reply-To: <1331287760-10546-1-git-send-email-mad_soft@inbox.ru>

On 03/09/2012 03:09 AM, Dmitry Artamonow wrote:
> Tegra PCIe driver waits for PLL to lock using busy loop.
> If PLL fails to lock for some reason, this leads to silent lockup
> while booting (PCIe code is not modular).
> 
> Fix by adding timeout, so if PLL doesn't lock in a couple
> of seconds, just PCIe driver fails and machine continues to boot.
> 
> Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>

> diff --git a/arch/arm/mach-tegra/pcie.c b/arch/arm/mach-tegra/pcie.c

>  	/* Wait for the PLL to lock */
> +	timeout = 2000;
>  	do {
>  		val = pads_readl(PADS_PLL_CTL);
> +		usleep_range(1000, 1000);
> +		if (--timeout == 0) {
> +			pr_err("Tegra PCIe error: timeout waiting for PLL\n");
> +			return -EBUSY;
> +		}
>  	} while (!(val & PADS_PLL_CTL_LOCKDET));

Thierry pointed out that one of NVIDIA's downstream kernels uses a
timeout of 300 here, rather than 2000 above. Do you see a specific need
for this timeout for be 2000 rather than 300? It might be nice to be
consistent.

Olof, I notice you've already applied V1 of this, which has the return
statement issue. Can you replace it with this, or should Dmitry send an
incremental patch?

  reply	other threads:[~2012-03-12 18:09 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-06  8:45 [PATCH/RFC 0/2] Couple of Tegra2 PCIe fixes(?) Dmitry Artamonow
2012-03-06  8:45 ` [PATCH/RFC 1/2] arm/tegra: fix harmony pinmux for PCIe Dmitry Artamonow
2012-03-06 16:55   ` Stephen Warren
2012-03-06  8:45 ` [PATCH/RFC 2/2] arm/tegra: add timeout to PCIe PLL lock detection loop Dmitry Artamonow
2012-03-06  9:38   ` Andi
2012-03-06 11:19     ` Dmitry Artamonow
2012-03-06 16:58   ` Stephen Warren
2012-03-06 19:09     ` Thierry Reding
2012-03-06 20:15     ` Dmitry Artamonow
2012-03-09 10:09       ` [PATCH v2 " Dmitry Artamonow
2012-03-12 18:09         ` Stephen Warren [this message]
2012-03-12 19:30           ` Dmitry Artamonow
2012-03-12 19:56             ` Olof Johansson
2012-03-13  5:46               ` [PATCH] arm/tegra: pcie: fix return value of function Dmitry Artamonow
2012-03-13 19:36                 ` Stephen Warren
2012-03-18 17:27                   ` Olof Johansson
2012-03-07  6:38   ` [PATCH/RFC 2/2] arm/tegra: add timeout to PCIe PLL lock detection loop Thierry Reding

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=4F5E3BE7.4080207@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).