diff options
author | Paul Mackerras <paulus@samba.org> | 2007-07-26 02:43:24 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-07-26 02:43:24 -0400 |
commit | 46b2835771ad8ef19b8e081e8c90439408c7645f (patch) | |
tree | 4059e1949df40d6c9078bcbe6783b03384ba61f3 /arch/powerpc | |
parent | 9d78592ed72dbff1d8825207f8def07858a49768 (diff) | |
parent | 141707892e92dca69b7b8af65b9367da2d1f8120 (diff) |
Merge branch 'fixes-2.6.23' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc into merge
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/Kconfig.debug | 2 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/mpc7448hpc2.dts | 2 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/mpc8544ds.dts | 8 | ||||
-rw-r--r-- | arch/powerpc/boot/dts/mpc8568mds.dts | 6 | ||||
-rw-r--r-- | arch/powerpc/kernel/irq.c | 8 | ||||
-rw-r--r-- | arch/powerpc/kernel/pci-common.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/pci_32.c | 20 | ||||
-rw-r--r-- | arch/powerpc/kernel/process.c | 4 | ||||
-rw-r--r-- | arch/powerpc/kernel/udbg.c | 2 | ||||
-rw-r--r-- | arch/powerpc/sysdev/fsl_pci.c | 4 | ||||
-rw-r--r-- | arch/powerpc/sysdev/indirect_pci.c | 1 |
11 files changed, 48 insertions, 11 deletions
diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug index 346cd3befe1e..5c71624ee38d 100644 --- a/arch/powerpc/Kconfig.debug +++ b/arch/powerpc/Kconfig.debug | |||
@@ -134,7 +134,7 @@ config BDI_SWITCH | |||
134 | 134 | ||
135 | config BOOTX_TEXT | 135 | config BOOTX_TEXT |
136 | bool "Support for early boot text console (BootX or OpenFirmware only)" | 136 | bool "Support for early boot text console (BootX or OpenFirmware only)" |
137 | depends PPC_OF | 137 | depends PPC_OF && PPC_MULTIPLATFORM |
138 | help | 138 | help |
139 | Say Y here to see progress messages from the boot firmware in text | 139 | Say Y here to see progress messages from the boot firmware in text |
140 | mode. Requires either BootX or Open Firmware. | 140 | mode. Requires either BootX or Open Firmware. |
diff --git a/arch/powerpc/boot/dts/mpc7448hpc2.dts b/arch/powerpc/boot/dts/mpc7448hpc2.dts index 0e3d314a7158..b9158eb2797e 100644 --- a/arch/powerpc/boot/dts/mpc7448hpc2.dts +++ b/arch/powerpc/boot/dts/mpc7448hpc2.dts | |||
@@ -45,7 +45,7 @@ | |||
45 | #address-cells = <1>; | 45 | #address-cells = <1>; |
46 | #size-cells = <1>; | 46 | #size-cells = <1>; |
47 | #interrupt-cells = <2>; | 47 | #interrupt-cells = <2>; |
48 | device_type = "tsi108-bridge"; | 48 | device_type = "tsi-bridge"; |
49 | ranges = <00000000 c0000000 00010000>; | 49 | ranges = <00000000 c0000000 00010000>; |
50 | reg = <c0000000 00010000>; | 50 | reg = <c0000000 00010000>; |
51 | bus-frequency = <0>; | 51 | bus-frequency = <0>; |
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts index 4a900c6df762..4680e2010887 100644 --- a/arch/powerpc/boot/dts/mpc8544ds.dts +++ b/arch/powerpc/boot/dts/mpc8544ds.dts | |||
@@ -104,6 +104,7 @@ | |||
104 | interrupts = <1d 2 1e 2 22 2>; | 104 | interrupts = <1d 2 1e 2 22 2>; |
105 | interrupt-parent = <&mpic>; | 105 | interrupt-parent = <&mpic>; |
106 | phy-handle = <&phy0>; | 106 | phy-handle = <&phy0>; |
107 | phy-connection-type = "rgmii-id"; | ||
107 | }; | 108 | }; |
108 | 109 | ||
109 | ethernet@26000 { | 110 | ethernet@26000 { |
@@ -117,6 +118,7 @@ | |||
117 | interrupts = <1f 2 20 2 21 2>; | 118 | interrupts = <1f 2 20 2 21 2>; |
118 | interrupt-parent = <&mpic>; | 119 | interrupt-parent = <&mpic>; |
119 | phy-handle = <&phy1>; | 120 | phy-handle = <&phy1>; |
121 | phy-connection-type = "rgmii-id"; | ||
120 | }; | 122 | }; |
121 | 123 | ||
122 | serial@4500 { | 124 | serial@4500 { |
@@ -348,6 +350,12 @@ | |||
348 | 350 | ||
349 | }; | 351 | }; |
350 | 352 | ||
353 | global-utilities@e0000 { //global utilities block | ||
354 | compatible = "fsl,mpc8548-guts"; | ||
355 | reg = <e0000 1000>; | ||
356 | fsl,has-rstcr; | ||
357 | }; | ||
358 | |||
351 | mpic: pic@40000 { | 359 | mpic: pic@40000 { |
352 | clock-frequency = <0>; | 360 | clock-frequency = <0>; |
353 | interrupt-controller; | 361 | interrupt-controller; |
diff --git a/arch/powerpc/boot/dts/mpc8568mds.dts b/arch/powerpc/boot/dts/mpc8568mds.dts index 99fa5a0ea425..b1dcfbe8c1f8 100644 --- a/arch/powerpc/boot/dts/mpc8568mds.dts +++ b/arch/powerpc/boot/dts/mpc8568mds.dts | |||
@@ -170,6 +170,12 @@ | |||
170 | interrupt-parent = <&mpic>; | 170 | interrupt-parent = <&mpic>; |
171 | }; | 171 | }; |
172 | 172 | ||
173 | global-utilities@e0000 { //global utilities block | ||
174 | compatible = "fsl,mpc8548-guts"; | ||
175 | reg = <e0000 1000>; | ||
176 | fsl,has-rstcr; | ||
177 | }; | ||
178 | |||
173 | pci@8000 { | 179 | pci@8000 { |
174 | interrupt-map-mask = <f800 0 0 7>; | 180 | interrupt-map-mask = <f800 0 0 7>; |
175 | interrupt-map = < | 181 | interrupt-map = < |
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 2fc87862146c..24bea97c736c 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
@@ -418,10 +418,10 @@ irq_hw_number_t virq_to_hw(unsigned int virq) | |||
418 | } | 418 | } |
419 | EXPORT_SYMBOL_GPL(virq_to_hw); | 419 | EXPORT_SYMBOL_GPL(virq_to_hw); |
420 | 420 | ||
421 | struct irq_host *irq_alloc_host(unsigned int revmap_type, | 421 | __init_refok struct irq_host *irq_alloc_host(unsigned int revmap_type, |
422 | unsigned int revmap_arg, | 422 | unsigned int revmap_arg, |
423 | struct irq_host_ops *ops, | 423 | struct irq_host_ops *ops, |
424 | irq_hw_number_t inval_irq) | 424 | irq_hw_number_t inval_irq) |
425 | { | 425 | { |
426 | struct irq_host *host; | 426 | struct irq_host *host; |
427 | unsigned int size = sizeof(struct irq_host); | 427 | unsigned int size = sizeof(struct irq_host); |
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index 74a8fd450f67..083cfbdbe0b2 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -65,7 +65,7 @@ static void __devinit pci_setup_pci_controller(struct pci_controller *hose) | |||
65 | spin_unlock(&hose_spinlock); | 65 | spin_unlock(&hose_spinlock); |
66 | } | 66 | } |
67 | 67 | ||
68 | struct pci_controller * pcibios_alloc_controller(struct device_node *dev) | 68 | __init_refok struct pci_controller * pcibios_alloc_controller(struct device_node *dev) |
69 | { | 69 | { |
70 | struct pci_controller *phb; | 70 | struct pci_controller *phb; |
71 | 71 | ||
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c index 721a69400d65..cd35c969bb28 100644 --- a/arch/powerpc/kernel/pci_32.c +++ b/arch/powerpc/kernel/pci_32.c | |||
@@ -60,6 +60,24 @@ LIST_HEAD(hose_list); | |||
60 | static int pci_bus_count; | 60 | static int pci_bus_count; |
61 | 61 | ||
62 | static void | 62 | static void |
63 | fixup_hide_host_resource_fsl(struct pci_dev* dev) | ||
64 | { | ||
65 | int i, class = dev->class >> 8; | ||
66 | |||
67 | if ((class == PCI_CLASS_PROCESSOR_POWERPC) && | ||
68 | (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) && | ||
69 | (dev->bus->parent == NULL)) { | ||
70 | for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { | ||
71 | dev->resource[i].start = 0; | ||
72 | dev->resource[i].end = 0; | ||
73 | dev->resource[i].flags = 0; | ||
74 | } | ||
75 | } | ||
76 | } | ||
77 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MOTOROLA, PCI_ANY_ID, fixup_hide_host_resource_fsl); | ||
78 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, fixup_hide_host_resource_fsl); | ||
79 | |||
80 | static void | ||
63 | fixup_broken_pcnet32(struct pci_dev* dev) | 81 | fixup_broken_pcnet32(struct pci_dev* dev) |
64 | { | 82 | { |
65 | if ((dev->class>>8 == PCI_CLASS_NETWORK_ETHERNET)) { | 83 | if ((dev->class>>8 == PCI_CLASS_NETWORK_ETHERNET)) { |
@@ -1229,7 +1247,7 @@ pcibios_init(void) | |||
1229 | 1247 | ||
1230 | subsys_initcall(pcibios_init); | 1248 | subsys_initcall(pcibios_init); |
1231 | 1249 | ||
1232 | void __init pcibios_fixup_bus(struct pci_bus *bus) | 1250 | void pcibios_fixup_bus(struct pci_bus *bus) |
1233 | { | 1251 | { |
1234 | struct pci_controller *hose = (struct pci_controller *) bus->sysdata; | 1252 | struct pci_controller *hose = (struct pci_controller *) bus->sysdata; |
1235 | unsigned long io_offset; | 1253 | unsigned long io_offset; |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 84f000a45e36..a83727b308a0 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -423,7 +423,11 @@ void show_regs(struct pt_regs * regs) | |||
423 | printk(" CR: %08lx XER: %08lx\n", regs->ccr, regs->xer); | 423 | printk(" CR: %08lx XER: %08lx\n", regs->ccr, regs->xer); |
424 | trap = TRAP(regs); | 424 | trap = TRAP(regs); |
425 | if (trap == 0x300 || trap == 0x600) | 425 | if (trap == 0x300 || trap == 0x600) |
426 | #if defined(CONFIG_4xx) || defined(CONFIG_BOOKE) | ||
427 | printk("DEAR: "REG", ESR: "REG"\n", regs->dar, regs->dsisr); | ||
428 | #else | ||
426 | printk("DAR: "REG", DSISR: "REG"\n", regs->dar, regs->dsisr); | 429 | printk("DAR: "REG", DSISR: "REG"\n", regs->dar, regs->dsisr); |
430 | #endif | ||
427 | printk("TASK = %p[%d] '%s' THREAD: %p", | 431 | printk("TASK = %p[%d] '%s' THREAD: %p", |
428 | current, current->pid, current->comm, task_thread_info(current)); | 432 | current, current->pid, current->comm, task_thread_info(current)); |
429 | 433 | ||
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c index cbca1df8bc60..0f9b4eadfbcb 100644 --- a/arch/powerpc/kernel/udbg.c +++ b/arch/powerpc/kernel/udbg.c | |||
@@ -155,7 +155,7 @@ static int early_console_initialized; | |||
155 | * Called by setup_system after ppc_md->probe and ppc_md->early_init. | 155 | * Called by setup_system after ppc_md->probe and ppc_md->early_init. |
156 | * Call it again after setting udbg_putc in ppc_md->setup_arch. | 156 | * Call it again after setting udbg_putc in ppc_md->setup_arch. |
157 | */ | 157 | */ |
158 | void register_early_udbg_console(void) | 158 | void __init register_early_udbg_console(void) |
159 | { | 159 | { |
160 | if (early_console_initialized) | 160 | if (early_console_initialized) |
161 | return; | 161 | return; |
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 51c223385feb..9fb0ce5c7176 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c | |||
@@ -107,7 +107,7 @@ void __init setup_pci_cmd(struct pci_controller *hose) | |||
107 | } | 107 | } |
108 | } | 108 | } |
109 | 109 | ||
110 | static void __devinit quirk_fsl_pcie_transparent(struct pci_dev *dev) | 110 | static void __init quirk_fsl_pcie_transparent(struct pci_dev *dev) |
111 | { | 111 | { |
112 | struct resource *res; | 112 | struct resource *res; |
113 | int i, res_idx = PCI_BRIDGE_RESOURCES; | 113 | int i, res_idx = PCI_BRIDGE_RESOURCES; |
@@ -216,7 +216,7 @@ int __init fsl_add_bridge(struct device_node *dev, int is_primary) | |||
216 | 216 | ||
217 | /* check PCI express link status */ | 217 | /* check PCI express link status */ |
218 | if (early_find_capability(hose, 0, 0, PCI_CAP_ID_EXP)) { | 218 | if (early_find_capability(hose, 0, 0, PCI_CAP_ID_EXP)) { |
219 | hose->indirect_type = PPC_INDIRECT_TYPE_EXT_REG | | 219 | hose->indirect_type |= PPC_INDIRECT_TYPE_EXT_REG | |
220 | PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS; | 220 | PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS; |
221 | if (fsl_pcie_check_link(hose)) | 221 | if (fsl_pcie_check_link(hose)) |
222 | hose->indirect_type |= PPC_INDIRECT_TYPE_NO_PCIE_LINK; | 222 | hose->indirect_type |= PPC_INDIRECT_TYPE_NO_PCIE_LINK; |
diff --git a/arch/powerpc/sysdev/indirect_pci.c b/arch/powerpc/sysdev/indirect_pci.c index a8ac2dfdd3d4..5294560c7b00 100644 --- a/arch/powerpc/sysdev/indirect_pci.c +++ b/arch/powerpc/sysdev/indirect_pci.c | |||
@@ -160,4 +160,5 @@ setup_indirect_pci(struct pci_controller* hose, u32 cfg_addr, u32 cfg_data, u32 | |||
160 | mbase = ioremap(cfg_data & PAGE_MASK, PAGE_SIZE); | 160 | mbase = ioremap(cfg_data & PAGE_MASK, PAGE_SIZE); |
161 | hose->cfg_data = mbase + (cfg_data & ~PAGE_MASK); | 161 | hose->cfg_data = mbase + (cfg_data & ~PAGE_MASK); |
162 | hose->ops = &indirect_pci_ops; | 162 | hose->ops = &indirect_pci_ops; |
163 | hose->indirect_type = flags; | ||
163 | } | 164 | } |