From: Kishon Vijay Abraham I <kishon@ti.com>
To: Bjorn Helgaas <helgaas@kernel.org>,
Niklas Cassel <niklas.cassel@axis.com>
Cc: bhelgaas@google.com, jszhang@marvell.com,
linux-omap@vger.kernel.org, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org, Niklas Cassel <niklass@axis.com>
Subject: Re: [PATCH] PCI: dra7xx: program outbound atu with correct address
Date: Wed, 4 May 2016 10:44:09 +0530 [thread overview]
Message-ID: <57298521.1090300@ti.com> (raw)
In-Reply-To: <20160503165059.GB30040@localhost>
On Tuesday 03 May 2016 10:20 PM, Bjorn Helgaas wrote:
> On Mon, May 02, 2016 at 04:09:33PM -0500, Bjorn Helgaas wrote:
>> On Mon, May 02, 2016 at 04:54:40PM +0200, Niklas Cassel wrote:
>>> From: Niklas Cassel <niklas.cassel@axis.com>
>>>
>>> commit 1488aefa37a4 ("PCI: designware: Move Root Complex
>>> setup code to dw_pcie_setup_rc()") broke dra7xx
>>> by moving code from dw_pcie_host_init to dw_pcie_setup_rc.
>>>
>>> Fix this by doing the cpu to bus calculation before calling
>>> dw_pcie_setup_rc.
>>>
>>> Fixes: 1488aefa37a4 ("PCI: designware: Move Root Complex setup code to dw_pcie_setup_rc()")
>>> Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
>>> ---
>>> drivers/pci/host/pci-dra7xx.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/pci/host/pci-dra7xx.c b/drivers/pci/host/pci-dra7xx.c
>>> index 2ca3a1f..f441130 100644
>>> --- a/drivers/pci/host/pci-dra7xx.c
>>> +++ b/drivers/pci/host/pci-dra7xx.c
>>> @@ -142,13 +142,13 @@ static void dra7xx_pcie_enable_interrupts(struct pcie_port *pp)
>>>
>>> static void dra7xx_pcie_host_init(struct pcie_port *pp)
>>> {
>>> - dw_pcie_setup_rc(pp);
>>> -
>>> pp->io_base &= DRA7XX_CPU_TO_BUS_ADDR;
>>> pp->mem_base &= DRA7XX_CPU_TO_BUS_ADDR;
>>> pp->cfg0_base &= DRA7XX_CPU_TO_BUS_ADDR;
>>> pp->cfg1_base &= DRA7XX_CPU_TO_BUS_ADDR;
>>>
>>> + dw_pcie_setup_rc(pp);
>>
>> This looks correct to me. Prior to 1488aefa37a4, we had this path,
>> which applied the dra7xx mem_base adjustment before programming the
>> outbound ATU:
>>
>> dra7xx_add_pcie_port
>> dw_pcie_host_init
>> pp->mem_base = pp->mem->start # <-- set pp->mem_base
>> ops->host_init
>> dra7xx_pcie_host_init # .host_init
>> dw_pcie_setup_rc
>> pp->mem_base &= DRA7XX_CPU_TO_BUS_ADDR # <-- update pp->mem_base
>> dw_pcie_prog_outbound_atu(pp->mem_base) # <-- use pp->mem_base
>>
>> After 1488aefa37a4, we have this:
>>
>> dra7xx_add_pcie_port
>> dw_pcie_host_init
>> pp->mem_base = pp->mem->start # <-- set pp->mem_base
>> ops->host_init
>> dra7xx_pcie_host_init # .host_init
>> dw_pcie_setup_rc
>> dw_pcie_prog_outbound_atu(pp->mem_base) # <-- use pp->mem_base
>> pp->mem_base &= DRA7XX_CPU_TO_BUS_ADDR # <-- update pp->mem_base
>>
>> So the dra7xx update is applied after we've already used it.
>>
>> If you agree, Kishon, I'll fold Niklas's fix into Jisheng's patch so
>> there's no bisection hole for dra7xx.
>
> I merged this (folded into Jisheng's patch on the pci/host-designware
> branch, and included in my "next" branch).
>
> Please let me know if it works for you, Niklas, or if you see any
> problems.
I did a basic ping test with a broadcom ethernet card and it worked fine.
Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
>
>>> dra7xx_pcie_establish_link(pp);
>>> if (IS_ENABLED(CONFIG_PCI_MSI))
>>> dw_pcie_msi_init(pp);
>>> --
>>> 2.1.4
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-pci" 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: Kishon Vijay Abraham I <kishon@ti.com>
To: Bjorn Helgaas <helgaas@kernel.org>,
Niklas Cassel <niklas.cassel@axis.com>
Cc: <bhelgaas@google.com>, <jszhang@marvell.com>,
<linux-omap@vger.kernel.org>, <linux-pci@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, Niklas Cassel <niklass@axis.com>
Subject: Re: [PATCH] PCI: dra7xx: program outbound atu with correct address
Date: Wed, 4 May 2016 10:44:09 +0530 [thread overview]
Message-ID: <57298521.1090300@ti.com> (raw)
In-Reply-To: <20160503165059.GB30040@localhost>
On Tuesday 03 May 2016 10:20 PM, Bjorn Helgaas wrote:
> On Mon, May 02, 2016 at 04:09:33PM -0500, Bjorn Helgaas wrote:
>> On Mon, May 02, 2016 at 04:54:40PM +0200, Niklas Cassel wrote:
>>> From: Niklas Cassel <niklas.cassel@axis.com>
>>>
>>> commit 1488aefa37a4 ("PCI: designware: Move Root Complex
>>> setup code to dw_pcie_setup_rc()") broke dra7xx
>>> by moving code from dw_pcie_host_init to dw_pcie_setup_rc.
>>>
>>> Fix this by doing the cpu to bus calculation before calling
>>> dw_pcie_setup_rc.
>>>
>>> Fixes: 1488aefa37a4 ("PCI: designware: Move Root Complex setup code to dw_pcie_setup_rc()")
>>> Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
>>> ---
>>> drivers/pci/host/pci-dra7xx.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/pci/host/pci-dra7xx.c b/drivers/pci/host/pci-dra7xx.c
>>> index 2ca3a1f..f441130 100644
>>> --- a/drivers/pci/host/pci-dra7xx.c
>>> +++ b/drivers/pci/host/pci-dra7xx.c
>>> @@ -142,13 +142,13 @@ static void dra7xx_pcie_enable_interrupts(struct pcie_port *pp)
>>>
>>> static void dra7xx_pcie_host_init(struct pcie_port *pp)
>>> {
>>> - dw_pcie_setup_rc(pp);
>>> -
>>> pp->io_base &= DRA7XX_CPU_TO_BUS_ADDR;
>>> pp->mem_base &= DRA7XX_CPU_TO_BUS_ADDR;
>>> pp->cfg0_base &= DRA7XX_CPU_TO_BUS_ADDR;
>>> pp->cfg1_base &= DRA7XX_CPU_TO_BUS_ADDR;
>>>
>>> + dw_pcie_setup_rc(pp);
>>
>> This looks correct to me. Prior to 1488aefa37a4, we had this path,
>> which applied the dra7xx mem_base adjustment before programming the
>> outbound ATU:
>>
>> dra7xx_add_pcie_port
>> dw_pcie_host_init
>> pp->mem_base = pp->mem->start # <-- set pp->mem_base
>> ops->host_init
>> dra7xx_pcie_host_init # .host_init
>> dw_pcie_setup_rc
>> pp->mem_base &= DRA7XX_CPU_TO_BUS_ADDR # <-- update pp->mem_base
>> dw_pcie_prog_outbound_atu(pp->mem_base) # <-- use pp->mem_base
>>
>> After 1488aefa37a4, we have this:
>>
>> dra7xx_add_pcie_port
>> dw_pcie_host_init
>> pp->mem_base = pp->mem->start # <-- set pp->mem_base
>> ops->host_init
>> dra7xx_pcie_host_init # .host_init
>> dw_pcie_setup_rc
>> dw_pcie_prog_outbound_atu(pp->mem_base) # <-- use pp->mem_base
>> pp->mem_base &= DRA7XX_CPU_TO_BUS_ADDR # <-- update pp->mem_base
>>
>> So the dra7xx update is applied after we've already used it.
>>
>> If you agree, Kishon, I'll fold Niklas's fix into Jisheng's patch so
>> there's no bisection hole for dra7xx.
>
> I merged this (folded into Jisheng's patch on the pci/host-designware
> branch, and included in my "next" branch).
>
> Please let me know if it works for you, Niklas, or if you see any
> problems.
I did a basic ping test with a broadcom ethernet card and it worked fine.
Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
>
>>> dra7xx_pcie_establish_link(pp);
>>> if (IS_ENABLED(CONFIG_PCI_MSI))
>>> dw_pcie_msi_init(pp);
>>> --
>>> 2.1.4
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2016-05-04 5:14 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-02 14:54 [PATCH] PCI: dra7xx: program outbound atu with correct address Niklas Cassel
2016-05-02 14:54 ` Niklas Cassel
2016-05-02 21:09 ` Bjorn Helgaas
2016-05-03 16:50 ` Bjorn Helgaas
2016-05-04 5:14 ` Kishon Vijay Abraham I [this message]
2016-05-04 5:14 ` Kishon Vijay Abraham I
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=57298521.1090300@ti.com \
--to=kishon@ti.com \
--cc=bhelgaas@google.com \
--cc=helgaas@kernel.org \
--cc=jszhang@marvell.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=niklas.cassel@axis.com \
--cc=niklass@axis.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.