提交 65ebf4b6 编写于 作者: D Daniel Axtens 提交者: Michael Ellerman

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: NDaniel Axtens <dja@axtens.net>
Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
上级 38ae9ec4
...@@ -1989,6 +1989,7 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np, ...@@ -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, ...@@ -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 */
......
...@@ -133,6 +133,7 @@ static void __init pnv_pci_init_p5ioc2_phb(struct device_node *np, u64 hub_id, ...@@ -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;
......
...@@ -744,7 +744,6 @@ void __init pnv_pci_init(void) ...@@ -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) ...@@ -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,
};
...@@ -29,6 +29,8 @@ static inline u64 pnv_pci_dma_get_required_mask(struct pci_dev *pdev) ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册