All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Niklas Cassel <niklas.cassel@axis.com>
Cc: kishon@ti.com, 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: Mon, 2 May 2016 16:09:33 -0500	[thread overview]
Message-ID: <20160502210933.GM24851@localhost> (raw)
In-Reply-To: <1462200880-30129-1-git-send-email-niklass@axis.com>

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.

>  	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

  reply	other threads:[~2016-05-02 21:09 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 [this message]
2016-05-03 16:50   ` Bjorn Helgaas
2016-05-04  5:14     ` Kishon Vijay Abraham I
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=20160502210933.GM24851@localhost \
    --to=helgaas@kernel.org \
    --cc=bhelgaas@google.com \
    --cc=jszhang@marvell.com \
    --cc=kishon@ti.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.