All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <bhelgaas@google.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Jayachandran C <jchandra@broadcom.com>,
	Pratyush Anand <pratyush.anand@gmail.com>,
	Russell King <linux@arm.linux.org.uk>,
	Arnd Bergmann <arnd@arndb.de>,
	Gabriele Paoloni <gabriele.paoloni@huawei.com>,
	Marc Zyngier <marc.zyngier@arm.com>,
	linux-pci@vger.kernel.org, Duc Dang <dhdang@apm.com>,
	Michal Simek <michal.simek@xilinx.com>,
	Simon Horman <horms@verge.net.au>,
	James Morse <james.morse@arm.com>,
	Tanmay Inamdar <tinamdar@apm.com>,
	Jingoo Han <jingoohan1@gmail.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	linux-arm-kernel@lists.infradead.org,
	Jason Cooper <jason@lakedaemon.net>
Subject: Re: [PATCH v5 7/9] PCI: xgene: Set msi_controller->dev to platform_device, not pci_bus
Date: Tue, 4 Aug 2015 17:58:12 -0500	[thread overview]
Message-ID: <20150804225812.GD17327@google.com> (raw)
In-Reply-To: <20150804215442.9189.83038.stgit@bhelgaas-glaptop2.roam.corp.google.com>

On Tue, Aug 04, 2015 at 04:54:42PM -0500, Bjorn Helgaas wrote:
> Other users of struct msi_controller set msi->dev to the platform_device of
> the PCI host controller, not the device of the pci_bus for the root bus.
> 
> Set X-Gene's msi_controller->dev to the PCI host controller platform_device
> as other platforms do.
> 
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> ---
>  drivers/pci/host/pci-xgene.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/host/pci-xgene.c b/drivers/pci/host/pci-xgene.c
> index 4c2fb1f..5e0d6de 100644
> --- a/drivers/pci/host/pci-xgene.c
> +++ b/drivers/pci/host/pci-xgene.c
> @@ -501,7 +501,8 @@ static int xgene_pcie_setup(struct xgene_pcie_port *port,
>  	return 0;
>  }
>  
> -static int xgene_pcie_msi_enable(struct pci_bus *bus)
> +static int xgene_pcie_msi_enable(struct xgene_pcie_port *port,
> +				 struct pci_bus *bus)
>  {
>  	struct device_node *msi_node;
>  
> @@ -515,7 +516,7 @@ static int xgene_pcie_msi_enable(struct pci_bus *bus)
>  		return -ENODEV;
>  
>  	of_node_put(msi_node);
> -	bus->msi->dev = &bus->dev;
> +	bus->msi->dev = &port->dev;

Thomas, the surrounding code here and in mvebu_pcie_msi_enable() looks like
this:

  pcie->msi = of_pci_find_msi_chip_by_node(msi_node);
  pcie->msi->dev = &pcie->pdev->dev;

It seems sort of strange to search for a struct msi_controller, then set
the "dev" field inside it.  This code isn't really the owner of the
msi_controller, and it seems like in principle at least, the
of_pci_find_msi_chip_by_node() interface could be used by several clients.
Then it's not clear which one of them should update msi->dev.

It would make more sense to me if the caller of of_pci_msi_chip_add() set
the msi->dev field.  But I don't know whether that's feasible.  I don't
even know what msi->dev is used for.

Bjorn

WARNING: multiple messages have this Message-ID (diff)
From: bhelgaas@google.com (Bjorn Helgaas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 7/9] PCI: xgene: Set msi_controller->dev to platform_device, not pci_bus
Date: Tue, 4 Aug 2015 17:58:12 -0500	[thread overview]
Message-ID: <20150804225812.GD17327@google.com> (raw)
In-Reply-To: <20150804215442.9189.83038.stgit@bhelgaas-glaptop2.roam.corp.google.com>

On Tue, Aug 04, 2015 at 04:54:42PM -0500, Bjorn Helgaas wrote:
> Other users of struct msi_controller set msi->dev to the platform_device of
> the PCI host controller, not the device of the pci_bus for the root bus.
> 
> Set X-Gene's msi_controller->dev to the PCI host controller platform_device
> as other platforms do.
> 
> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> ---
>  drivers/pci/host/pci-xgene.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/host/pci-xgene.c b/drivers/pci/host/pci-xgene.c
> index 4c2fb1f..5e0d6de 100644
> --- a/drivers/pci/host/pci-xgene.c
> +++ b/drivers/pci/host/pci-xgene.c
> @@ -501,7 +501,8 @@ static int xgene_pcie_setup(struct xgene_pcie_port *port,
>  	return 0;
>  }
>  
> -static int xgene_pcie_msi_enable(struct pci_bus *bus)
> +static int xgene_pcie_msi_enable(struct xgene_pcie_port *port,
> +				 struct pci_bus *bus)
>  {
>  	struct device_node *msi_node;
>  
> @@ -515,7 +516,7 @@ static int xgene_pcie_msi_enable(struct pci_bus *bus)
>  		return -ENODEV;
>  
>  	of_node_put(msi_node);
> -	bus->msi->dev = &bus->dev;
> +	bus->msi->dev = &port->dev;

Thomas, the surrounding code here and in mvebu_pcie_msi_enable() looks like
this:

  pcie->msi = of_pci_find_msi_chip_by_node(msi_node);
  pcie->msi->dev = &pcie->pdev->dev;

It seems sort of strange to search for a struct msi_controller, then set
the "dev" field inside it.  This code isn't really the owner of the
msi_controller, and it seems like in principle at least, the
of_pci_find_msi_chip_by_node() interface could be used by several clients.
Then it's not clear which one of them should update msi->dev.

It would make more sense to me if the caller of of_pci_msi_chip_add() set
the msi->dev field.  But I don't know whether that's feasible.  I don't
even know what msi->dev is used for.

Bjorn

  reply	other threads:[~2015-08-04 22:58 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-04 21:53 [PATCH v5 0/9] ARM: PCI: kill pcibios_msi_controller() Bjorn Helgaas
2015-08-04 21:53 ` Bjorn Helgaas
2015-08-04 21:53 ` [PATCH v5 1/9] ARM/PCI: Replace panic with WARN messages on failures Bjorn Helgaas
2015-08-04 21:53   ` Bjorn Helgaas
2015-08-06 14:46   ` Jingoo Han
2015-08-06 14:46     ` Jingoo Han
2015-08-04 21:54 ` [PATCH v5 2/9] PCI: Add pci_scan_root_bus_msi() Bjorn Helgaas
2015-08-04 21:54   ` Bjorn Helgaas
2015-08-06 14:47   ` Jingoo Han
2015-08-06 14:47     ` Jingoo Han
2015-08-04 21:54 ` [PATCH v5 3/9] ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi() Bjorn Helgaas
2015-08-04 21:54   ` Bjorn Helgaas
2015-08-06 14:49   ` Jingoo Han
2015-08-06 14:49     ` Jingoo Han
2015-08-04 21:54 ` [PATCH v5 4/9] ARM/PCI: Remove msi_controller from struct pci_sys_data Bjorn Helgaas
2015-08-04 21:54   ` Bjorn Helgaas
2015-08-06 14:51   ` Jingoo Han
2015-08-06 14:51     ` Jingoo Han
2015-08-04 21:54 ` [PATCH v5 5/9] PCI/MSI: Remove unused pcibios_msi_controller() hook Bjorn Helgaas
2015-08-04 21:54   ` Bjorn Helgaas
2015-08-04 21:54 ` [PATCH v5 6/9] PCI: Drop references acquired by of_parse_phandle() Bjorn Helgaas
2015-08-04 21:54   ` Bjorn Helgaas
2015-08-10 21:39   ` Bjorn Helgaas
2015-08-10 21:39     ` Bjorn Helgaas
2015-08-10 22:19     ` Rob Herring
2015-08-10 22:19       ` Rob Herring
2015-08-12 11:24   ` Lorenzo Pieralisi
2015-08-12 11:24     ` Lorenzo Pieralisi
2015-08-04 21:54 ` [PATCH v5 7/9] PCI: xgene: Set msi_controller->dev to platform_device, not pci_bus Bjorn Helgaas
2015-08-04 21:54   ` Bjorn Helgaas
2015-08-04 22:58   ` Bjorn Helgaas [this message]
2015-08-04 22:58     ` Bjorn Helgaas
2015-08-04 21:54 ` [PATCH v5 8/9] PCI: xgene: Look for OF "msi-parent" in host controller, not root bus Bjorn Helgaas
2015-08-04 21:54   ` Bjorn Helgaas
2015-08-04 21:54 ` [PATCH v5 9/9] PCI: xgene: Use pci_scan_root_bus_msi() Bjorn Helgaas
2015-08-04 21:54   ` Bjorn Helgaas
2015-08-06 15:26   ` Marc Zyngier
2015-08-06 15:26     ` Marc Zyngier
2015-08-06 16:41     ` Ley Foon Tan
2015-08-06 16:41       ` Ley Foon Tan
2015-08-06 16:53       ` Marc Zyngier
2015-08-06 16:53         ` Marc Zyngier
2015-08-07  2:18         ` Ley Foon Tan
2015-08-07  2:18           ` Ley Foon Tan
2015-08-10 22:04     ` Bjorn Helgaas
2015-08-10 22:04       ` Bjorn Helgaas
2015-08-10 22:28       ` Duc Dang
2015-08-10 22:28         ` Duc Dang
2015-08-04 23:00 ` [PATCH v5 0/9] ARM: PCI: kill pcibios_msi_controller() Bjorn Helgaas
2015-08-04 23:00   ` 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=20150804225812.GD17327@google.com \
    --to=bhelgaas@google.com \
    --cc=arnd@arndb.de \
    --cc=dhdang@apm.com \
    --cc=gabriele.paoloni@huawei.com \
    --cc=horms@verge.net.au \
    --cc=james.morse@arm.com \
    --cc=jason@lakedaemon.net \
    --cc=jchandra@broadcom.com \
    --cc=jingoohan1@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=marc.zyngier@arm.com \
    --cc=michal.simek@xilinx.com \
    --cc=pratyush.anand@gmail.com \
    --cc=thierry.reding@gmail.com \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=tinamdar@apm.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.