[PATCH 4/5] powernv/pci: Fold pnv_pci_dma_dev_setup() into the pci-ioda.c version
Alexey Kardashevskiy
aik at ozlabs.ru
Tue Jan 14 17:33:48 AEDT 2020
On 10/01/2020 18:02, Oliver O'Halloran wrote:
> pnv_pci_dma_dev_setup() does nothing but call the phb->dma_dev_setup()
> callback, if one exists. That callback is only set for normal PCIe PHBs so
> we can remove the layer of indirection and use the ioda version in
> the pci_controller_ops.
>
> Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
Reviewed-by: Alexey Kardashevskiy <aik at ozlabs.ru>
> ---
> arch/powerpc/platforms/powernv/pci-ioda.c | 7 ++++---
> arch/powerpc/platforms/powernv/pci.c | 9 ---------
> arch/powerpc/platforms/powernv/pci.h | 2 --
> 3 files changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
> index ae177ee..e2a9440 100644
> --- a/arch/powerpc/platforms/powernv/pci-ioda.c
> +++ b/arch/powerpc/platforms/powernv/pci-ioda.c
> @@ -1743,8 +1743,10 @@ int pnv_pcibios_sriov_enable(struct pci_dev *pdev, u16 num_vfs)
> }
> #endif /* CONFIG_PCI_IOV */
>
> -static void pnv_pci_ioda_dma_dev_setup(struct pnv_phb *phb, struct pci_dev *pdev)
> +static void pnv_pci_ioda_dma_dev_setup(struct pci_dev *pdev)
> {
> + 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;
>
> @@ -3627,7 +3629,7 @@ static void pnv_pci_ioda_shutdown(struct pci_controller *hose)
> }
>
> static const struct pci_controller_ops pnv_pci_ioda_controller_ops = {
> - .dma_dev_setup = pnv_pci_dma_dev_setup,
> + .dma_dev_setup = pnv_pci_ioda_dma_dev_setup,
> .dma_bus_setup = pnv_pci_dma_bus_setup,
> .iommu_bypass_supported = pnv_pci_ioda_iommu_bypass_supported,
> .setup_msi_irqs = pnv_setup_msi_irqs,
> @@ -3886,7 +3888,6 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np,
> hose->controller_ops = pnv_npu_ocapi_ioda_controller_ops;
> break;
> default:
> - phb->dma_dev_setup = pnv_pci_ioda_dma_dev_setup;
> hose->controller_ops = pnv_pci_ioda_controller_ops;
> }
>
> diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
> index 8307e1f..31f1949 100644
> --- a/arch/powerpc/platforms/powernv/pci.c
> +++ b/arch/powerpc/platforms/powernv/pci.c
> @@ -810,15 +810,6 @@ struct iommu_table *pnv_pci_table_alloc(int nid)
> return tbl;
> }
>
> -void pnv_pci_dma_dev_setup(struct pci_dev *pdev)
> -{
> - struct pci_controller *hose = pci_bus_to_host(pdev->bus);
> - struct pnv_phb *phb = hose->private_data;
> -
> - if (phb && phb->dma_dev_setup)
> - phb->dma_dev_setup(phb, pdev);
> -}
> -
> void pnv_pci_dma_bus_setup(struct pci_bus *bus)
> {
> struct pci_controller *hose = bus->sysdata;
> diff --git a/arch/powerpc/platforms/powernv/pci.h b/arch/powerpc/platforms/powernv/pci.h
> index f914f0b..0cdc9ba 100644
> --- a/arch/powerpc/platforms/powernv/pci.h
> +++ b/arch/powerpc/platforms/powernv/pci.h
> @@ -108,7 +108,6 @@ struct pnv_phb {
> int (*msi_setup)(struct pnv_phb *phb, struct pci_dev *dev,
> unsigned int hwirq, unsigned int virq,
> unsigned int is_64, struct msi_msg *msg);
> - void (*dma_dev_setup)(struct pnv_phb *phb, struct pci_dev *pdev);
> int (*init_m64)(struct pnv_phb *phb);
> int (*get_pe_state)(struct pnv_phb *phb, int pe_no);
> void (*freeze_pe)(struct pnv_phb *phb, int pe_no);
> @@ -189,7 +188,6 @@ extern void pnv_npu2_map_lpar(struct pnv_ioda_pe *gpe, unsigned long msr);
> extern void pnv_pci_reset_secondary_bus(struct pci_dev *dev);
> extern int pnv_eeh_phb_reset(struct pci_controller *hose, int option);
>
> -extern void pnv_pci_dma_dev_setup(struct pci_dev *pdev);
> extern void pnv_pci_dma_bus_setup(struct pci_bus *bus);
> extern int pnv_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type);
> extern void pnv_teardown_msi_irqs(struct pci_dev *pdev);
>
--
Alexey
More information about the Linuxppc-dev
mailing list