diff mbox

[v4,1/3] PCI: generic: remove dependency on hw_pci

Message ID 20150805092318.GB6092@arm.com (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show

Commit Message

Will Deacon Aug. 5, 2015, 9:23 a.m. UTC
On Wed, Aug 05, 2015 at 12:49:56AM +0100, Bjorn Helgaas wrote:
> On Wed, Aug 05, 2015 at 02:23:38AM +0530, Jayachandran C wrote:
> > The current code in pci-host-generic.c uses pci_common_init_dev()
> > from arm architecture to do some part of the PCI setup, and this
> > prevents it from being used with arm64 architecture.
> > 
> > The part of pci_common_init_dev() that is really needed by
> > pci-host-generic.c is very limited and can be done in the same
> > file without using hw_pci API of ARM. The ARM platform requires
> > a pci_sys_data as sysdata for the PCI bus, this can be handled by
> > setting up gen_pci to have a pci_sys_data variable as the first
> > element.
> > 
> > Signed-off-by: Jayachandran C <jchandra@broadcom.com>
> > Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > Tested-by: Pavel Fedin <p.fedin@samsung.com>
> 
> I applied all three of these to my pci/enumeration branch for v4.3.
> 
> I made a few changes, the most important being to call
> pcie_bus_configure_settings() before pci_bus_add_devices(), because drivers
> may claim devices in pci_bus_add_devices(), and the PCI core shouldn't
> touch devices after drivers claim them.
> 
> I dropped the acks and tested-by because of that change, but I'll happily
> add them back if Lorenzo and Pavel confirm.  The patches are here if you
> want to review/test them:
> 
> https://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/log/?h=pci/enumeration
> 
> I'm sure the other patches on that branch will need some tweaks, too, so I
> don't have any problem with updating these.

Excellent, thanks Bjorn! Marc and I will take these for a spin in
conjunction with tip/irq/core and the arm64 queue.

That said, I just tried to build this and it fails to compile the x-gene
PCI host driver. Fixup below.

Will

--->8

--
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

Comments

Suthikulpanit, Suravee Aug. 13, 2015, 1:16 p.m. UTC | #1
Hi Bjorn,

On 8/5/15 16:23, Will Deacon wrote:
> On Wed, Aug 05, 2015 at 12:49:56AM +0100, Bjorn Helgaas wrote:
>> >On Wed, Aug 05, 2015 at 02:23:38AM +0530, Jayachandran C wrote:
>>> > >The current code in pci-host-generic.c uses pci_common_init_dev()
>>> > >from arm architecture to do some part of the PCI setup, and this
>>> > >prevents it from being used with arm64 architecture.
>>> > >
>>> > >The part of pci_common_init_dev() that is really needed by
>>> > >pci-host-generic.c is very limited and can be done in the same
>>> > >file without using hw_pci API of ARM. The ARM platform requires
>>> > >a pci_sys_data as sysdata for the PCI bus, this can be handled by
>>> > >setting up gen_pci to have a pci_sys_data variable as the first
>>> > >element.
>>> > >
>>> > >Signed-off-by: Jayachandran C<jchandra@broadcom.com>
>>> > >Acked-by: Lorenzo Pieralisi<lorenzo.pieralisi@arm.com>
>>> > >Tested-by: Lorenzo Pieralisi<lorenzo.pieralisi@arm.com>
>>> > >Tested-by: Pavel Fedin<p.fedin@samsung.com>
>> >
>> >I applied all three of these to my pci/enumeration branch for v4.3.
>> >
>> >I made a few changes, the most important being to call
>> >pcie_bus_configure_settings() before pci_bus_add_devices(), because drivers
>> >may claim devices in pci_bus_add_devices(), and the PCI core shouldn't
>> >touch devices after drivers claim them.
>> >
>> >I dropped the acks and tested-by because of that change, but I'll happily
>> >add them back if Lorenzo and Pavel confirm.  The patches are here if you
>> >want to review/test them:
>> >
>> >https://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/log/?h=pci/enumeration
>> >
>> >I'm sure the other patches on that branch will need some tweaks, too, so I
>> >don't have any problem with updating these.

I have also tested on AMD Seattle (w/ non-PROBE_ONLY mode).

Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
--
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
diff mbox

Patch

diff --git a/drivers/pci/host/pci-xgene.c b/drivers/pci/host/pci-xgene.c
index 514f41b86c49..57ac0c7108a8 100644
--- a/drivers/pci/host/pci-xgene.c
+++ b/drivers/pci/host/pci-xgene.c
@@ -506,7 +506,7 @@  static int xgene_pcie_msi_enable(struct xgene_pcie_port *port)
 {
 	struct device_node *msi_node;
 
-	msi_node = of_parse_phandle(port->dev.of_node, "msi-parent", 0);
+	msi_node = of_parse_phandle(port->dev->of_node, "msi-parent", 0);
 	if (!msi_node)
 		return -ENODEV;