From: Troy Kisky <troy.kisky@boundarydevices.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: festevam@gmail.com, marex@denx.de, linux-pci@vger.kernel.org,
r65037@freescale.com, l.stach@pengutronix.de,
tharvey@gateworks.com
Subject: Re: [PATCH 1/1] pci-imx6: add speed change timeout message
Date: Fri, 12 Jun 2015 15:25:57 -0700 [thread overview]
Message-ID: <557B5C75.7040905@boundarydevices.com> (raw)
In-Reply-To: <20150612202008.GI23119@google.com>
On 6/12/2015 1:20 PM, Bjorn Helgaas wrote:
> Hi Troy,
>
> On Fri, Jun 05, 2015 at 03:37:44PM -0700, Troy Kisky wrote:
>> Currently, the timeout is never detected as count
>> has a value of -1 if a timeout happens, but the code is checking
>> for 0. Also, this patch removes the unneeded final wait
>> if a timeout occurs.
>>
>> Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
>> ---
>> drivers/pci/host/pci-imx6.c | 18 ++++++++++--------
>> 1 file changed, 10 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c
>> index fdb9536..51be92c 100644
>> --- a/drivers/pci/host/pci-imx6.c
>> +++ b/drivers/pci/host/pci-imx6.c
>> @@ -398,20 +398,22 @@ static int imx6_pcie_start_link(struct pcie_port *pp)
>> writel(tmp, pp->dbi_base + PCIE_LINK_WIDTH_SPEED_CONTROL);
>>
>> count = 200;
>> - while (count--) {
>> + while (1) {
>> tmp = readl(pp->dbi_base + PCIE_LINK_WIDTH_SPEED_CONTROL);
>> /* Test if the speed change finished. */
>> - if (!(tmp & PORT_LOGIC_SPEED_CHANGE))
>> + if (!(tmp & PORT_LOGIC_SPEED_CHANGE)) {
>> + /* Make sure link training is finished as well! */
>> + ret = imx6_pcie_wait_for_link(pp);
>> + break;
>> + }
>> + if (count-- == 0) {
>> + dev_err(pp->dev, "Speed change timeout\n");
>> + ret = -EINVAL;
>> break;
>> + }
>> usleep_range(100, 1000);
>> }
>>
>> - /* Make sure link training is finished as well! */
>> - if (count)
>> - ret = imx6_pcie_wait_for_link(pp);
>> - else
>> - ret = -EINVAL;
>> -
>> if (ret) {
>> dev_err(pp->dev, "Failed to bring link up!\n");
>> } else {
>
> This looks fine functionally, but I propose the following slight
> rearrangement because I have another patch that makes all the
> "wait_for_link" timeout loops look similar, and this loop might as
> well be similar, too.
>
> Unrelated to your patch, but noticed while doing this: what's the magic
> constant 0x80 here?
>
> + tmp = readl(pp->dbi_base + 0x80);
>
> Is that correct? Can we add a symbolic name for it?
>
> Bjorn
>
The name in the manual for +x80 is
PCIE_RC_LCSR - Link Control and Status Register
next prev parent reply other threads:[~2015-06-12 22:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-05 22:37 [PATCH 1/1] pci-imx6: add speed change timeout message Troy Kisky
2015-06-06 0:03 ` Marek Vasut
2015-06-12 20:20 ` Bjorn Helgaas
2015-06-12 22:25 ` Troy Kisky [this message]
2015-06-12 23:39 ` Bjorn Helgaas
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=557B5C75.7040905@boundarydevices.com \
--to=troy.kisky@boundarydevices.com \
--cc=bhelgaas@google.com \
--cc=festevam@gmail.com \
--cc=l.stach@pengutronix.de \
--cc=linux-pci@vger.kernel.org \
--cc=marex@denx.de \
--cc=r65037@freescale.com \
--cc=tharvey@gateworks.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.