Thread (36 messages) 36 messages, 8 authors, 2013-03-07

RE: [PATCH 2/6] powerpc/fsl_pci: Store the platform device information corresponding to the pci controller.

From: Sethi Varun-B16395 <hidden>
Date: 2013-02-26 06:16:22
Also in: linux-iommu, lkml

This patch is not present in Joerg's tree and the add_device API in the PAM=
U driver requires this patch.

-Varun
-----Original Message-----
From: Stuart Yoder [mailto:b08248@gmail.com]
Sent: Tuesday, February 26, 2013 5:39 AM
To: Sethi Varun-B16395
Cc: iommu@lists.linux-foundation.org; linuxppc-dev@lists.ozlabs.org;
linux-kernel@vger.kernel.org; Wood Scott-B07421; Joerg Roedel; Yoder
Stuart-B08248
Subject: Re: [PATCH 2/6] powerpc/fsl_pci: Store the platform device
information corresponding to the pci controller.
=20
This patch was submitted separately to linuxppc-dev (and was already
applied).  You don't need it in this patch set, right?
=20
Stuart
=20
On Mon, Feb 18, 2013 at 6:52 AM, Varun Sethi [off-list ref]
wrote:
quoted
The pci controller structure has a provision to store the device
strcuture pointer of the corresponding platform device. Currently this
information is not stored during fsl pci controller initialization.
This information is required while dealing with iommu groups for pci
devices connected to the fsl pci controller. For the case where the
pci devices can't be paritioned, they would fall under the same device
group as the pci controller.
quoted
This patch stores the platform device information in the pci
controller structure during initialization.

Signed-off-by: Varun Sethi <redacted>
---
 arch/powerpc/sysdev/fsl_pci.c |    9 +++++++--
 arch/powerpc/sysdev/fsl_pci.h |    2 +-
 2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/sysdev/fsl_pci.c
b/arch/powerpc/sysdev/fsl_pci.c index 92a5915..b393ae7 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -421,13 +421,16 @@ void fsl_pcibios_fixup_bus(struct pci_bus *bus)
        }
 }

-int __init fsl_add_bridge(struct device_node *dev, int is_primary)
+int __init fsl_add_bridge(struct platform_device *pdev, int
+is_primary)
 {
        int len;
        struct pci_controller *hose;
        struct resource rsrc;
        const int *bus_range;
        u8 hdr_type, progif;
+       struct device_node *dev;
+
+       dev =3D pdev->dev.of_node;

        if (!of_device_is_available(dev)) {
                pr_warning("%s: disabled\n", dev->full_name); @@
-453,6 +456,8 @@ int __init fsl_add_bridge(struct device_node *dev, int
is_primary)
quoted
        if (!hose)
                return -ENOMEM;

+       /* set platform device as the parent */
+       hose->parent =3D &pdev->dev;
        hose->first_busno =3D bus_range ? bus_range[0] : 0x0;
        hose->last_busno =3D bus_range ? bus_range[1] : 0xff;
@@ -880,7 +885,7 @@ static int fsl_pci_probe(struct platform_device
*pdev)  #endif

        node =3D pdev->dev.of_node;
-       ret =3D fsl_add_bridge(node, fsl_pci_primary =3D=3D node);
+       ret =3D fsl_add_bridge(pdev, fsl_pci_primary =3D=3D node);

 #ifdef CONFIG_SWIOTLB
        if (ret =3D=3D 0) {
diff --git a/arch/powerpc/sysdev/fsl_pci.h
b/arch/powerpc/sysdev/fsl_pci.h index d078537..c495c00 100644
--- a/arch/powerpc/sysdev/fsl_pci.h
+++ b/arch/powerpc/sysdev/fsl_pci.h
@@ -91,7 +91,7 @@ struct ccsr_pci {
        __be32  pex_err_cap_r3;         /* 0x.e34 - PCIE error capture
register 0 */
quoted
 };

-extern int fsl_add_bridge(struct device_node *dev, int is_primary);
+extern int fsl_add_bridge(struct platform_device *pdev, int
+is_primary);
 extern void fsl_pcibios_fixup_bus(struct pci_bus *bus);  extern int
mpc83xx_add_bridge(struct device_node *dev);
 u64 fsl_pci_immrbar_base(struct pci_controller *hose);
--
1.7.4.1


_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help