Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65ebf4b6 authored by Daniel Axtens's avatar Daniel Axtens Committed by Michael Ellerman
Browse files

powerpc/powernv: Move controller ops from ppc_md to controller_ops



This moves the PowerNV platform to use the pci_controller_ops
structure rather than ppc_md for PCI controller operations.

Signed-off-by: default avatarDaniel Axtens <dja@axtens.net>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 38ae9ec4
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -1989,6 +1989,7 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np,
		hose->last_busno = 0xff;
		hose->last_busno = 0xff;
	}
	}
	hose->private_data = phb;
	hose->private_data = phb;
	hose->controller_ops = pnv_pci_controller_ops;
	phb->hub_id = hub_id;
	phb->hub_id = hub_id;
	phb->opal_id = phb_id;
	phb->opal_id = phb_id;
	phb->type = ioda_type;
	phb->type = ioda_type;
@@ -2102,9 +2103,9 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np,
	 * the child P2P bridges) can form individual PE.
	 * the child P2P bridges) can form individual PE.
	 */
	 */
	ppc_md.pcibios_fixup = pnv_pci_ioda_fixup;
	ppc_md.pcibios_fixup = pnv_pci_ioda_fixup;
	ppc_md.pcibios_enable_device_hook = pnv_pci_enable_device_hook;
	pnv_pci_controller_ops.enable_device_hook = pnv_pci_enable_device_hook;
	ppc_md.pcibios_window_alignment = pnv_pci_window_alignment;
	pnv_pci_controller_ops.window_alignment = pnv_pci_window_alignment;
	ppc_md.pcibios_reset_secondary_bus = pnv_pci_reset_secondary_bus;
	pnv_pci_controller_ops.reset_secondary_bus = pnv_pci_reset_secondary_bus;
	pci_add_flags(PCI_REASSIGN_ALL_RSRC);
	pci_add_flags(PCI_REASSIGN_ALL_RSRC);


	/* Reset IODA tables to a clean state */
	/* Reset IODA tables to a clean state */
+1 −0
Original line number Original line Diff line number Diff line
@@ -133,6 +133,7 @@ static void __init pnv_pci_init_p5ioc2_phb(struct device_node *np, u64 hub_id,
	phb->hose->first_busno = 0;
	phb->hose->first_busno = 0;
	phb->hose->last_busno = 0xff;
	phb->hose->last_busno = 0xff;
	phb->hose->private_data = phb;
	phb->hose->private_data = phb;
	phb->hose->controller_ops = pnv_pci_controller_ops;
	phb->hub_id = hub_id;
	phb->hub_id = hub_id;
	phb->opal_id = phb_id;
	phb->opal_id = phb_id;
	phb->type = PNV_PHB_P5IOC2;
	phb->type = PNV_PHB_P5IOC2;
+4 −1
Original line number Original line Diff line number Diff line
@@ -744,7 +744,6 @@ void __init pnv_pci_init(void)
	pci_devs_phb_init();
	pci_devs_phb_init();


	/* Configure IOMMU DMA hooks */
	/* Configure IOMMU DMA hooks */
	ppc_md.pci_dma_dev_setup = pnv_pci_dma_dev_setup;
	ppc_md.tce_build = pnv_tce_build_vm;
	ppc_md.tce_build = pnv_tce_build_vm;
	ppc_md.tce_free = pnv_tce_free_vm;
	ppc_md.tce_free = pnv_tce_free_vm;
	ppc_md.tce_build_rm = pnv_tce_build_rm;
	ppc_md.tce_build_rm = pnv_tce_build_rm;
@@ -760,3 +759,7 @@ void __init pnv_pci_init(void)
}
}


machine_subsys_initcall_sync(powernv, tce_iommu_bus_notifier_init);
machine_subsys_initcall_sync(powernv, tce_iommu_bus_notifier_init);

struct pci_controller_ops pnv_pci_controller_ops = {
	.dma_dev_setup = pnv_pci_dma_dev_setup,
};
+2 −0
Original line number Original line Diff line number Diff line
@@ -29,6 +29,8 @@ static inline u64 pnv_pci_dma_get_required_mask(struct pci_dev *pdev)
}
}
#endif
#endif


extern struct pci_controller_ops pnv_pci_controller_ops;

extern u32 pnv_get_supported_cpuidle_states(void);
extern u32 pnv_get_supported_cpuidle_states(void);


extern void pnv_lpc_init(void);
extern void pnv_lpc_init(void);