Commit e63f26d3 authored by Daniel Axtens's avatar Daniel Axtens Committed by Michael Ellerman

powerpc/powermac: Move controller ops from ppc_md to controller_ops

This moves the Power Mac 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 798248a3
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#include <asm/grackle.h> #include <asm/grackle.h>
#include <asm/ppc-pci.h> #include <asm/ppc-pci.h>
#include "pmac.h"
#undef DEBUG #undef DEBUG
#ifdef DEBUG #ifdef DEBUG
...@@ -798,6 +800,7 @@ static int __init pmac_add_bridge(struct device_node *dev) ...@@ -798,6 +800,7 @@ static int __init pmac_add_bridge(struct device_node *dev)
return -ENOMEM; return -ENOMEM;
hose->first_busno = bus_range ? bus_range[0] : 0; hose->first_busno = bus_range ? bus_range[0] : 0;
hose->last_busno = bus_range ? bus_range[1] : 0xff; hose->last_busno = bus_range ? bus_range[1] : 0xff;
hose->controller_ops = pmac_pci_controller_ops;
disp_name = NULL; disp_name = NULL;
...@@ -942,7 +945,7 @@ void __init pmac_pci_init(void) ...@@ -942,7 +945,7 @@ void __init pmac_pci_init(void)
} }
#ifdef CONFIG_PPC32 #ifdef CONFIG_PPC32
bool pmac_pci_enable_device_hook(struct pci_dev *dev) static bool pmac_pci_enable_device_hook(struct pci_dev *dev)
{ {
struct device_node* node; struct device_node* node;
int updatecfg = 0; int updatecfg = 0;
...@@ -1225,7 +1228,7 @@ static void fixup_u4_pcie(struct pci_dev* dev) ...@@ -1225,7 +1228,7 @@ static void fixup_u4_pcie(struct pci_dev* dev)
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_U4_PCIE, fixup_u4_pcie); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_U4_PCIE, fixup_u4_pcie);
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
int pmac_pci_probe_mode(struct pci_bus *bus) static int pmac_pci_probe_mode(struct pci_bus *bus)
{ {
struct device_node *node = pci_bus_to_OF_node(bus); struct device_node *node = pci_bus_to_OF_node(bus);
...@@ -1240,3 +1243,13 @@ int pmac_pci_probe_mode(struct pci_bus *bus) ...@@ -1240,3 +1243,13 @@ int pmac_pci_probe_mode(struct pci_bus *bus)
return PCI_PROBE_DEVTREE; return PCI_PROBE_DEVTREE;
} }
#endif /* CONFIG_PPC64 */ #endif /* CONFIG_PPC64 */
struct pci_controller_ops pmac_pci_controller_ops = {
#ifdef CONFIG_PPC64
.probe_mode = pmac_pci_probe_mode,
#endif
#ifdef CONFIG_PPC32
.enable_device_hook = pmac_pci_enable_device_hook,
#endif
};
...@@ -25,7 +25,6 @@ extern void pmac_pci_init(void); ...@@ -25,7 +25,6 @@ extern void pmac_pci_init(void);
extern void pmac_nvram_update(void); extern void pmac_nvram_update(void);
extern unsigned char pmac_nvram_read_byte(int addr); extern unsigned char pmac_nvram_read_byte(int addr);
extern void pmac_nvram_write_byte(int addr, unsigned char val); extern void pmac_nvram_write_byte(int addr, unsigned char val);
extern bool pmac_pci_enable_device_hook(struct pci_dev *dev);
extern void pmac_pcibios_after_init(void); extern void pmac_pcibios_after_init(void);
extern int of_show_percpuinfo(struct seq_file *m, int i); extern int of_show_percpuinfo(struct seq_file *m, int i);
...@@ -39,8 +38,6 @@ extern void low_cpu_die(void) __attribute__((noreturn)); ...@@ -39,8 +38,6 @@ extern void low_cpu_die(void) __attribute__((noreturn));
extern int pmac_nvram_init(void); extern int pmac_nvram_init(void);
extern void pmac_pic_init(void); extern void pmac_pic_init(void);
#ifdef CONFIG_PPC64 extern struct pci_controller_ops pmac_pci_controller_ops;
extern int pmac_pci_probe_mode(struct pci_bus *bus);
#endif
#endif /* __PMAC_H__ */ #endif /* __PMAC_H__ */
...@@ -473,7 +473,7 @@ static void __init pmac_init_early(void) ...@@ -473,7 +473,7 @@ static void __init pmac_init_early(void)
udbg_adb_init(!!strstr(boot_command_line, "btextdbg")); udbg_adb_init(!!strstr(boot_command_line, "btextdbg"));
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
iommu_init_early_dart(NULL); iommu_init_early_dart(&pmac_pci_controller_ops);
#endif #endif
/* SMP Init has to be done early as we need to patch up /* SMP Init has to be done early as we need to patch up
...@@ -656,12 +656,10 @@ define_machine(powermac) { ...@@ -656,12 +656,10 @@ define_machine(powermac) {
.feature_call = pmac_do_feature_call, .feature_call = pmac_do_feature_call,
.progress = udbg_progress, .progress = udbg_progress,
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
.pci_probe_mode = pmac_pci_probe_mode,
.power_save = power4_idle, .power_save = power4_idle,
.enable_pmcs = power4_enable_pmcs, .enable_pmcs = power4_enable_pmcs,
#endif /* CONFIG_PPC64 */ #endif /* CONFIG_PPC64 */
#ifdef CONFIG_PPC32 #ifdef CONFIG_PPC32
.pcibios_enable_device_hook = pmac_pci_enable_device_hook,
.pcibios_after_init = pmac_pcibios_after_init, .pcibios_after_init = pmac_pcibios_after_init,
.phys_mem_access_prot = pci_phys_mem_access_prot, .phys_mem_access_prot = pci_phys_mem_access_prot,
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment