Collapse several open coded instances of pnv_ioda_get_pe().

Signed-off-by: Reza Arbab <ar...@linux.ibm.com>
---
 arch/powerpc/platforms/powernv/npu-dma.c  | 22 +++++-----------------
 arch/powerpc/platforms/powernv/pci-ioda.c | 10 +++-------
 2 files changed, 8 insertions(+), 24 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/npu-dma.c 
b/arch/powerpc/platforms/powernv/npu-dma.c
index a77ce7d71634..0010b21d45b8 100644
--- a/arch/powerpc/platforms/powernv/npu-dma.c
+++ b/arch/powerpc/platforms/powernv/npu-dma.c
@@ -97,24 +97,17 @@ struct pci_dev *pnv_pci_get_npu_dev(struct pci_dev *gpdev, 
int index)
 static struct pnv_ioda_pe *get_gpu_pci_dev_and_pe(struct pnv_ioda_pe *npe,
                                                  struct pci_dev **gpdev)
 {
-       struct pnv_phb *phb;
-       struct pci_controller *hose;
        struct pci_dev *pdev;
        struct pnv_ioda_pe *pe;
-       struct pci_dn *pdn;
 
        pdev = pnv_pci_get_gpu_dev(npe->pdev);
        if (!pdev)
                return NULL;
 
-       pdn = pci_get_pdn(pdev);
-       if (WARN_ON(!pdn || pdn->pe_number == IODA_INVALID_PE))
+       pe = pnv_ioda_get_pe(pdev);
+       if (WARN_ON(!pe))
                return NULL;
 
-       hose = pci_bus_to_host(pdev->bus);
-       phb = hose->private_data;
-       pe = &phb->ioda.pe_array[pdn->pe_number];
-
        if (gpdev)
                *gpdev = pdev;
 
@@ -261,9 +254,6 @@ static int pnv_npu_dma_set_bypass(struct pnv_ioda_pe *npe)
 void pnv_npu_try_dma_set_bypass(struct pci_dev *gpdev, u64 mask)
 {
        struct pnv_ioda_pe *gpe = pnv_ioda_get_pe(gpdev);
-       struct pnv_phb *phb;
-       struct pci_dn *pdn;
-       struct pnv_ioda_pe *npe;
        struct pci_dev *npdev;
        bool bypass;
        int i = 0;
@@ -275,12 +265,10 @@ void pnv_npu_try_dma_set_bypass(struct pci_dev *gpdev, 
u64 mask)
        bypass = pnv_ioda_pe_iommu_bypass_supported(gpe, mask);
 
        while ((npdev = pnv_pci_get_npu_dev(gpdev, i++))) {
-               pdn = pci_get_pdn(npdev);
-               if (WARN_ON(!pdn || pdn->pe_number == IODA_INVALID_PE))
-                       return;
+               struct pnv_ioda_pe *npe = pnv_ioda_get_pe(npdev);
 
-               phb = pci_bus_to_host(npdev->bus)->private_data;
-               npe = &phb->ioda.pe_array[pdn->pe_number];
+               if (WARN_ON(!npe))
+                       return;
 
                if (bypass) {
                        dev_info(&npdev->dev,
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c 
b/arch/powerpc/platforms/powernv/pci-ioda.c
index 319152d30bc3..6b932cfc0deb 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -1829,16 +1829,12 @@ static int pnv_pci_ioda_dma_64bit_bypass(struct 
pnv_ioda_pe *pe)
 static bool pnv_pci_ioda_iommu_bypass_supported(struct pci_dev *pdev,
                u64 dma_mask)
 {
-       struct pci_controller *hose = pci_bus_to_host(pdev->bus);
-       struct pnv_phb *phb = hose->private_data;
-       struct pci_dn *pdn = pci_get_pdn(pdev);
-       struct pnv_ioda_pe *pe;
+       struct pnv_ioda_pe *pe = pnv_ioda_get_pe(pdev);
        bool bypass;
 
-       if (WARN_ON(!pdn || pdn->pe_number == IODA_INVALID_PE))
+       if (WARN_ON(!pe))
                return false;
 
-       pe = &phb->ioda.pe_array[pdn->pe_number];
        bypass = pnv_ioda_pe_iommu_bypass_supported(pe, dma_mask);
 
        /*
@@ -1852,7 +1848,7 @@ static bool pnv_pci_ioda_iommu_bypass_supported(struct 
pci_dev *pdev,
            dma_mask > (memory_hotplug_max() + (1ULL << 32)) &&
            /* pe->pdev should be set if it's a single device, pe->pbus if not 
*/
            (pe->device_count == 1 || !pe->pbus) &&
-           phb->model == PNV_PHB_MODEL_PHB3) {
+           pe->phb->model == PNV_PHB_MODEL_PHB3) {
                /* Configure the bypass mode */
                if (pnv_pci_ioda_dma_64bit_bypass(pe))
                        return false;
-- 
1.8.3.1

Reply via email to