diff options
Diffstat (limited to 'arch')
1657 files changed, 7878 insertions, 5701 deletions
diff --git a/arch/alpha/kernel/alpha_ksyms.c b/arch/alpha/kernel/alpha_ksyms.c index d3848c5b0d2b..425643762bf5 100644 --- a/arch/alpha/kernel/alpha_ksyms.c +++ b/arch/alpha/kernel/alpha_ksyms.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * modules. | 5 | * modules. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
10 | #include <linux/string.h> | 9 | #include <linux/string.h> |
11 | #include <linux/user.h> | 10 | #include <linux/user.h> |
diff --git a/arch/alpha/kernel/console.c b/arch/alpha/kernel/console.c index cb3e739fbad8..f313b34939bb 100644 --- a/arch/alpha/kernel/console.c +++ b/arch/alpha/kernel/console.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * non-0 I/O hose | 5 | * non-0 I/O hose |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/pci.h> | 8 | #include <linux/pci.h> |
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | #include <linux/tty.h> | 10 | #include <linux/tty.h> |
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S index 7af15bf7e5ab..01ecd09d4a64 100644 --- a/arch/alpha/kernel/entry.S +++ b/arch/alpha/kernel/entry.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Kernel entry-points. | 4 | * Kernel entry-points. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/asm-offsets.h> | 7 | #include <asm/asm-offsets.h> |
9 | #include <asm/thread_info.h> | 8 | #include <asm/thread_info.h> |
10 | #include <asm/pal.h> | 9 | #include <asm/pal.h> |
diff --git a/arch/alpha/kernel/gct.c b/arch/alpha/kernel/gct.c index 8827687b9f89..c0c7155448e0 100644 --- a/arch/alpha/kernel/gct.c +++ b/arch/alpha/kernel/gct.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/alpha/kernel/gct.c | 2 | * linux/arch/alpha/kernel/gct.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
7 | #include <linux/types.h> | 6 | #include <linux/types.h> |
8 | #include <linux/errno.h> | 7 | #include <linux/errno.h> |
diff --git a/arch/alpha/kernel/head.S b/arch/alpha/kernel/head.S index 0905721fcbca..1e2a62a1f75f 100644 --- a/arch/alpha/kernel/head.S +++ b/arch/alpha/kernel/head.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * the kernel global pointer and jump to the kernel entry-point. | 7 | * the kernel global pointer and jump to the kernel entry-point. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <asm/system.h> | 10 | #include <asm/system.h> |
12 | #include <asm/asm-offsets.h> | 11 | #include <asm/asm-offsets.h> |
13 | 12 | ||
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c index da677f829f76..729c475d2269 100644 --- a/arch/alpha/kernel/irq.c +++ b/arch/alpha/kernel/irq.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * should be easier. | 10 | * should be easier. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
@@ -49,15 +48,15 @@ select_smp_affinity(unsigned int irq) | |||
49 | static int last_cpu; | 48 | static int last_cpu; |
50 | int cpu = last_cpu + 1; | 49 | int cpu = last_cpu + 1; |
51 | 50 | ||
52 | if (!irq_desc[irq].handler->set_affinity || irq_user_affinity[irq]) | 51 | if (!irq_desc[irq].chip->set_affinity || irq_user_affinity[irq]) |
53 | return 1; | 52 | return 1; |
54 | 53 | ||
55 | while (!cpu_possible(cpu)) | 54 | while (!cpu_possible(cpu)) |
56 | cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0); | 55 | cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0); |
57 | last_cpu = cpu; | 56 | last_cpu = cpu; |
58 | 57 | ||
59 | irq_affinity[irq] = cpumask_of_cpu(cpu); | 58 | irq_desc[irq].affinity = cpumask_of_cpu(cpu); |
60 | irq_desc[irq].handler->set_affinity(irq, cpumask_of_cpu(cpu)); | 59 | irq_desc[irq].chip->set_affinity(irq, cpumask_of_cpu(cpu)); |
61 | return 0; | 60 | return 0; |
62 | } | 61 | } |
63 | #endif /* CONFIG_SMP */ | 62 | #endif /* CONFIG_SMP */ |
@@ -93,14 +92,14 @@ show_interrupts(struct seq_file *p, void *v) | |||
93 | for_each_online_cpu(j) | 92 | for_each_online_cpu(j) |
94 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[irq]); | 93 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[irq]); |
95 | #endif | 94 | #endif |
96 | seq_printf(p, " %14s", irq_desc[irq].handler->typename); | 95 | seq_printf(p, " %14s", irq_desc[irq].chip->typename); |
97 | seq_printf(p, " %c%s", | 96 | seq_printf(p, " %c%s", |
98 | (action->flags & SA_INTERRUPT)?'+':' ', | 97 | (action->flags & IRQF_DISABLED)?'+':' ', |
99 | action->name); | 98 | action->name); |
100 | 99 | ||
101 | for (action=action->next; action; action = action->next) { | 100 | for (action=action->next; action; action = action->next) { |
102 | seq_printf(p, ", %c%s", | 101 | seq_printf(p, ", %c%s", |
103 | (action->flags & SA_INTERRUPT)?'+':' ', | 102 | (action->flags & IRQF_DISABLED)?'+':' ', |
104 | action->name); | 103 | action->name); |
105 | } | 104 | } |
106 | 105 | ||
diff --git a/arch/alpha/kernel/irq_alpha.c b/arch/alpha/kernel/irq_alpha.c index 9d34ce26e5ef..ddf5cf8dcb0b 100644 --- a/arch/alpha/kernel/irq_alpha.c +++ b/arch/alpha/kernel/irq_alpha.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Alpha specific irq code. | 2 | * Alpha specific irq code. |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/init.h> | 5 | #include <linux/init.h> |
7 | #include <linux/sched.h> | 6 | #include <linux/sched.h> |
8 | #include <linux/irq.h> | 7 | #include <linux/irq.h> |
@@ -215,7 +214,7 @@ static unsigned int rtc_startup(unsigned int irq) { return 0; } | |||
215 | 214 | ||
216 | struct irqaction timer_irqaction = { | 215 | struct irqaction timer_irqaction = { |
217 | .handler = timer_interrupt, | 216 | .handler = timer_interrupt, |
218 | .flags = SA_INTERRUPT, | 217 | .flags = IRQF_DISABLED, |
219 | .name = "timer", | 218 | .name = "timer", |
220 | }; | 219 | }; |
221 | 220 | ||
@@ -233,7 +232,7 @@ void __init | |||
233 | init_rtc_irq(void) | 232 | init_rtc_irq(void) |
234 | { | 233 | { |
235 | irq_desc[RTC_IRQ].status = IRQ_DISABLED; | 234 | irq_desc[RTC_IRQ].status = IRQ_DISABLED; |
236 | irq_desc[RTC_IRQ].handler = &rtc_irq_type; | 235 | irq_desc[RTC_IRQ].chip = &rtc_irq_type; |
237 | setup_irq(RTC_IRQ, &timer_irqaction); | 236 | setup_irq(RTC_IRQ, &timer_irqaction); |
238 | } | 237 | } |
239 | 238 | ||
diff --git a/arch/alpha/kernel/irq_i8259.c b/arch/alpha/kernel/irq_i8259.c index b188683b83fd..ebbadbc0c36a 100644 --- a/arch/alpha/kernel/irq_i8259.c +++ b/arch/alpha/kernel/irq_i8259.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Started hacking from linux-2.3.30pre6/arch/i386/kernel/i8259.c. | 7 | * Started hacking from linux-2.3.30pre6/arch/i386/kernel/i8259.c. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/cache.h> | 11 | #include <linux/cache.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
@@ -109,7 +108,7 @@ init_i8259a_irqs(void) | |||
109 | 108 | ||
110 | for (i = 0; i < 16; i++) { | 109 | for (i = 0; i < 16; i++) { |
111 | irq_desc[i].status = IRQ_DISABLED; | 110 | irq_desc[i].status = IRQ_DISABLED; |
112 | irq_desc[i].handler = &i8259a_irq_type; | 111 | irq_desc[i].chip = &i8259a_irq_type; |
113 | } | 112 | } |
114 | 113 | ||
115 | setup_irq(2, &cascade); | 114 | setup_irq(2, &cascade); |
diff --git a/arch/alpha/kernel/irq_pyxis.c b/arch/alpha/kernel/irq_pyxis.c index 146a20b9e3d5..3b581415bab0 100644 --- a/arch/alpha/kernel/irq_pyxis.c +++ b/arch/alpha/kernel/irq_pyxis.c | |||
@@ -120,7 +120,7 @@ init_pyxis_irqs(unsigned long ignore_mask) | |||
120 | if ((ignore_mask >> i) & 1) | 120 | if ((ignore_mask >> i) & 1) |
121 | continue; | 121 | continue; |
122 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 122 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
123 | irq_desc[i].handler = &pyxis_irq_type; | 123 | irq_desc[i].chip = &pyxis_irq_type; |
124 | } | 124 | } |
125 | 125 | ||
126 | setup_irq(16+7, &isa_cascade_irqaction); | 126 | setup_irq(16+7, &isa_cascade_irqaction); |
diff --git a/arch/alpha/kernel/irq_srm.c b/arch/alpha/kernel/irq_srm.c index 0a87e466918c..8e4d121f84cc 100644 --- a/arch/alpha/kernel/irq_srm.c +++ b/arch/alpha/kernel/irq_srm.c | |||
@@ -67,7 +67,7 @@ init_srm_irqs(long max, unsigned long ignore_mask) | |||
67 | if (i < 64 && ((ignore_mask >> i) & 1)) | 67 | if (i < 64 && ((ignore_mask >> i) & 1)) |
68 | continue; | 68 | continue; |
69 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 69 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
70 | irq_desc[i].handler = &srm_irq_type; | 70 | irq_desc[i].chip = &srm_irq_type; |
71 | } | 71 | } |
72 | } | 72 | } |
73 | 73 | ||
diff --git a/arch/alpha/kernel/machvec_impl.h b/arch/alpha/kernel/machvec_impl.h index 11f996f24fde..08b8302e64ca 100644 --- a/arch/alpha/kernel/machvec_impl.h +++ b/arch/alpha/kernel/machvec_impl.h | |||
@@ -6,7 +6,6 @@ | |||
6 | * This file has goodies to help simplify instantiation of machine vectors. | 6 | * This file has goodies to help simplify instantiation of machine vectors. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <asm/pgalloc.h> | 9 | #include <asm/pgalloc.h> |
11 | 10 | ||
12 | /* Whee. These systems don't have an HAE: | 11 | /* Whee. These systems don't have an HAE: |
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c index 2a8b364c822e..ffb7d5423cc0 100644 --- a/arch/alpha/kernel/pci.c +++ b/arch/alpha/kernel/pci.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Nov 2000, Ivan Kokshaysky <ink@jurassic.park.msu.ru> | 12 | * Nov 2000, Ivan Kokshaysky <ink@jurassic.park.msu.ru> |
13 | * PCI-PCI bridges cleanup | 13 | * PCI-PCI bridges cleanup |
14 | */ | 14 | */ |
15 | #include <linux/config.h> | ||
16 | #include <linux/string.h> | 15 | #include <linux/string.h> |
17 | #include <linux/pci.h> | 16 | #include <linux/pci.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
@@ -124,12 +123,12 @@ DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_final); | |||
124 | 123 | ||
125 | void | 124 | void |
126 | pcibios_align_resource(void *data, struct resource *res, | 125 | pcibios_align_resource(void *data, struct resource *res, |
127 | unsigned long size, unsigned long align) | 126 | resource_size_t size, resource_size_t align) |
128 | { | 127 | { |
129 | struct pci_dev *dev = data; | 128 | struct pci_dev *dev = data; |
130 | struct pci_controller *hose = dev->sysdata; | 129 | struct pci_controller *hose = dev->sysdata; |
131 | unsigned long alignto; | 130 | unsigned long alignto; |
132 | unsigned long start = res->start; | 131 | resource_size_t start = res->start; |
133 | 132 | ||
134 | if (res->flags & IORESOURCE_IO) { | 133 | if (res->flags & IORESOURCE_IO) { |
135 | /* Make sure we start at our min on all hoses */ | 134 | /* Make sure we start at our min on all hoses */ |
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c index c760a831fd1a..01c8c8b23337 100644 --- a/arch/alpha/kernel/process.c +++ b/arch/alpha/kernel/process.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * This file handles the architecture-dependent parts of process handling. | 8 | * This file handles the architecture-dependent parts of process handling. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
diff --git a/arch/alpha/kernel/proto.h b/arch/alpha/kernel/proto.h index e1560fb15610..2a6e3da8144f 100644 --- a/arch/alpha/kernel/proto.h +++ b/arch/alpha/kernel/proto.h | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/interrupt.h> | 1 | #include <linux/interrupt.h> |
3 | 2 | ||
4 | 3 | ||
diff --git a/arch/alpha/kernel/smc37c93x.c b/arch/alpha/kernel/smc37c93x.c index 421e51ea6bb7..2636cc028d06 100644 --- a/arch/alpha/kernel/smc37c93x.c +++ b/arch/alpha/kernel/smc37c93x.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * SMC 37C93X initialization code | 2 | * SMC 37C93X initialization code |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
7 | 6 | ||
8 | #include <linux/slab.h> | 7 | #include <linux/slab.h> |
diff --git a/arch/alpha/kernel/srm_env.c b/arch/alpha/kernel/srm_env.c index 5c98fc83e238..990ac61028f8 100644 --- a/arch/alpha/kernel/srm_env.c +++ b/arch/alpha/kernel/srm_env.c | |||
@@ -57,7 +57,6 @@ | |||
57 | */ | 57 | */ |
58 | 58 | ||
59 | #include <linux/kernel.h> | 59 | #include <linux/kernel.h> |
60 | #include <linux/config.h> | ||
61 | #include <linux/module.h> | 60 | #include <linux/module.h> |
62 | #include <linux/init.h> | 61 | #include <linux/init.h> |
63 | #include <linux/proc_fs.h> | 62 | #include <linux/proc_fs.h> |
diff --git a/arch/alpha/kernel/srmcons.c b/arch/alpha/kernel/srmcons.c index 3b30d4f1fc42..9d7dff27f815 100644 --- a/arch/alpha/kernel/srmcons.c +++ b/arch/alpha/kernel/srmcons.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * (TTY driver and console driver) | 5 | * (TTY driver and console driver) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | #include <linux/console.h> | 10 | #include <linux/console.h> |
diff --git a/arch/alpha/kernel/sys_alcor.c b/arch/alpha/kernel/sys_alcor.c index d7f0e97fe56f..d6926b7b1e99 100644 --- a/arch/alpha/kernel/sys_alcor.c +++ b/arch/alpha/kernel/sys_alcor.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Code supporting the ALCOR and XLT (XL-300/366/433). | 8 | * Code supporting the ALCOR and XLT (XL-300/366/433). |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
@@ -144,7 +143,7 @@ alcor_init_irq(void) | |||
144 | if (i >= 16+20 && i <= 16+30) | 143 | if (i >= 16+20 && i <= 16+30) |
145 | continue; | 144 | continue; |
146 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 145 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
147 | irq_desc[i].handler = &alcor_irq_type; | 146 | irq_desc[i].chip = &alcor_irq_type; |
148 | } | 147 | } |
149 | i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq; | 148 | i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq; |
150 | 149 | ||
diff --git a/arch/alpha/kernel/sys_cabriolet.c b/arch/alpha/kernel/sys_cabriolet.c index 8e3374d34c95..25a215067da8 100644 --- a/arch/alpha/kernel/sys_cabriolet.c +++ b/arch/alpha/kernel/sys_cabriolet.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * PC164 and LX164. | 9 | * PC164 and LX164. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
@@ -124,7 +123,7 @@ common_init_irq(void (*srm_dev_int)(unsigned long v, struct pt_regs *r)) | |||
124 | 123 | ||
125 | for (i = 16; i < 35; ++i) { | 124 | for (i = 16; i < 35; ++i) { |
126 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 125 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
127 | irq_desc[i].handler = &cabriolet_irq_type; | 126 | irq_desc[i].chip = &cabriolet_irq_type; |
128 | } | 127 | } |
129 | } | 128 | } |
130 | 129 | ||
diff --git a/arch/alpha/kernel/sys_dp264.c b/arch/alpha/kernel/sys_dp264.c index d5da6b1b28ee..dd6103b867e7 100644 --- a/arch/alpha/kernel/sys_dp264.c +++ b/arch/alpha/kernel/sys_dp264.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Code supporting the DP264 (EV6+TSUNAMI). | 12 | * Code supporting the DP264 (EV6+TSUNAMI). |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/types.h> | 16 | #include <linux/types.h> |
18 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
@@ -300,7 +299,7 @@ init_tsunami_irqs(struct hw_interrupt_type * ops, int imin, int imax) | |||
300 | long i; | 299 | long i; |
301 | for (i = imin; i <= imax; ++i) { | 300 | for (i = imin; i <= imax; ++i) { |
302 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 301 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
303 | irq_desc[i].handler = ops; | 302 | irq_desc[i].chip = ops; |
304 | } | 303 | } |
305 | } | 304 | } |
306 | 305 | ||
diff --git a/arch/alpha/kernel/sys_eb64p.c b/arch/alpha/kernel/sys_eb64p.c index 61a79c354f0b..ed108b66ec09 100644 --- a/arch/alpha/kernel/sys_eb64p.c +++ b/arch/alpha/kernel/sys_eb64p.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Code supporting the EB64+ and EB66. | 8 | * Code supporting the EB64+ and EB66. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
@@ -137,7 +136,7 @@ eb64p_init_irq(void) | |||
137 | 136 | ||
138 | for (i = 16; i < 32; ++i) { | 137 | for (i = 16; i < 32; ++i) { |
139 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 138 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
140 | irq_desc[i].handler = &eb64p_irq_type; | 139 | irq_desc[i].chip = &eb64p_irq_type; |
141 | } | 140 | } |
142 | 141 | ||
143 | common_init_isa_dma(); | 142 | common_init_isa_dma(); |
diff --git a/arch/alpha/kernel/sys_eiger.c b/arch/alpha/kernel/sys_eiger.c index bd6e5f0e43c7..64a785baf53a 100644 --- a/arch/alpha/kernel/sys_eiger.c +++ b/arch/alpha/kernel/sys_eiger.c | |||
@@ -154,7 +154,7 @@ eiger_init_irq(void) | |||
154 | 154 | ||
155 | for (i = 16; i < 128; ++i) { | 155 | for (i = 16; i < 128; ++i) { |
156 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 156 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
157 | irq_desc[i].handler = &eiger_irq_type; | 157 | irq_desc[i].chip = &eiger_irq_type; |
158 | } | 158 | } |
159 | } | 159 | } |
160 | 160 | ||
diff --git a/arch/alpha/kernel/sys_jensen.c b/arch/alpha/kernel/sys_jensen.c index fcabb7c96a16..4ac2b328b8de 100644 --- a/arch/alpha/kernel/sys_jensen.c +++ b/arch/alpha/kernel/sys_jensen.c | |||
@@ -74,7 +74,7 @@ jensen_local_startup(unsigned int irq) | |||
74 | * the IPL from being dropped during handler processing. | 74 | * the IPL from being dropped during handler processing. |
75 | */ | 75 | */ |
76 | if (irq_desc[irq].action) | 76 | if (irq_desc[irq].action) |
77 | irq_desc[irq].action->flags |= SA_INTERRUPT; | 77 | irq_desc[irq].action->flags |= IRQF_DISABLED; |
78 | return 0; | 78 | return 0; |
79 | } | 79 | } |
80 | 80 | ||
@@ -206,11 +206,11 @@ jensen_init_irq(void) | |||
206 | { | 206 | { |
207 | init_i8259a_irqs(); | 207 | init_i8259a_irqs(); |
208 | 208 | ||
209 | irq_desc[1].handler = &jensen_local_irq_type; | 209 | irq_desc[1].chip = &jensen_local_irq_type; |
210 | irq_desc[4].handler = &jensen_local_irq_type; | 210 | irq_desc[4].chip = &jensen_local_irq_type; |
211 | irq_desc[3].handler = &jensen_local_irq_type; | 211 | irq_desc[3].chip = &jensen_local_irq_type; |
212 | irq_desc[7].handler = &jensen_local_irq_type; | 212 | irq_desc[7].chip = &jensen_local_irq_type; |
213 | irq_desc[9].handler = &jensen_local_irq_type; | 213 | irq_desc[9].chip = &jensen_local_irq_type; |
214 | 214 | ||
215 | common_init_isa_dma(); | 215 | common_init_isa_dma(); |
216 | } | 216 | } |
diff --git a/arch/alpha/kernel/sys_marvel.c b/arch/alpha/kernel/sys_marvel.c index e32fee505220..36d215954376 100644 --- a/arch/alpha/kernel/sys_marvel.c +++ b/arch/alpha/kernel/sys_marvel.c | |||
@@ -303,7 +303,7 @@ init_io7_irqs(struct io7 *io7, | |||
303 | /* Set up the lsi irqs. */ | 303 | /* Set up the lsi irqs. */ |
304 | for (i = 0; i < 128; ++i) { | 304 | for (i = 0; i < 128; ++i) { |
305 | irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL; | 305 | irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL; |
306 | irq_desc[base + i].handler = lsi_ops; | 306 | irq_desc[base + i].chip = lsi_ops; |
307 | } | 307 | } |
308 | 308 | ||
309 | /* Disable the implemented irqs in hardware. */ | 309 | /* Disable the implemented irqs in hardware. */ |
@@ -317,7 +317,7 @@ init_io7_irqs(struct io7 *io7, | |||
317 | /* Set up the msi irqs. */ | 317 | /* Set up the msi irqs. */ |
318 | for (i = 128; i < (128 + 512); ++i) { | 318 | for (i = 128; i < (128 + 512); ++i) { |
319 | irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL; | 319 | irq_desc[base + i].status = IRQ_DISABLED | IRQ_LEVEL; |
320 | irq_desc[base + i].handler = msi_ops; | 320 | irq_desc[base + i].chip = msi_ops; |
321 | } | 321 | } |
322 | 322 | ||
323 | for (i = 0; i < 16; ++i) | 323 | for (i = 0; i < 16; ++i) |
@@ -335,7 +335,7 @@ marvel_init_irq(void) | |||
335 | /* Reserve the legacy irqs. */ | 335 | /* Reserve the legacy irqs. */ |
336 | for (i = 0; i < 16; ++i) { | 336 | for (i = 0; i < 16; ++i) { |
337 | irq_desc[i].status = IRQ_DISABLED; | 337 | irq_desc[i].status = IRQ_DISABLED; |
338 | irq_desc[i].handler = &marvel_legacy_irq_type; | 338 | irq_desc[i].chip = &marvel_legacy_irq_type; |
339 | } | 339 | } |
340 | 340 | ||
341 | /* Init the io7 irqs. */ | 341 | /* Init the io7 irqs. */ |
diff --git a/arch/alpha/kernel/sys_mikasa.c b/arch/alpha/kernel/sys_mikasa.c index d78a0daa6168..cc4c58111366 100644 --- a/arch/alpha/kernel/sys_mikasa.c +++ b/arch/alpha/kernel/sys_mikasa.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Code supporting the MIKASA (AlphaServer 1000). | 8 | * Code supporting the MIKASA (AlphaServer 1000). |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
@@ -117,7 +116,7 @@ mikasa_init_irq(void) | |||
117 | 116 | ||
118 | for (i = 16; i < 32; ++i) { | 117 | for (i = 16; i < 32; ++i) { |
119 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 118 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
120 | irq_desc[i].handler = &mikasa_irq_type; | 119 | irq_desc[i].chip = &mikasa_irq_type; |
121 | } | 120 | } |
122 | 121 | ||
123 | init_i8259a_irqs(); | 122 | init_i8259a_irqs(); |
diff --git a/arch/alpha/kernel/sys_noritake.c b/arch/alpha/kernel/sys_noritake.c index 65061f5d7410..2d3cff7e8c5f 100644 --- a/arch/alpha/kernel/sys_noritake.c +++ b/arch/alpha/kernel/sys_noritake.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * CORELLE (AlphaServer 800), and ALCOR Primo (AlphaStation 600A). | 9 | * CORELLE (AlphaServer 800), and ALCOR Primo (AlphaStation 600A). |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
@@ -139,7 +138,7 @@ noritake_init_irq(void) | |||
139 | 138 | ||
140 | for (i = 16; i < 48; ++i) { | 139 | for (i = 16; i < 48; ++i) { |
141 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 140 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
142 | irq_desc[i].handler = &noritake_irq_type; | 141 | irq_desc[i].chip = &noritake_irq_type; |
143 | } | 142 | } |
144 | 143 | ||
145 | init_i8259a_irqs(); | 144 | init_i8259a_irqs(); |
diff --git a/arch/alpha/kernel/sys_rawhide.c b/arch/alpha/kernel/sys_rawhide.c index 05888a02a604..949607e3d6fb 100644 --- a/arch/alpha/kernel/sys_rawhide.c +++ b/arch/alpha/kernel/sys_rawhide.c | |||
@@ -180,7 +180,7 @@ rawhide_init_irq(void) | |||
180 | 180 | ||
181 | for (i = 16; i < 128; ++i) { | 181 | for (i = 16; i < 128; ++i) { |
182 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 182 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
183 | irq_desc[i].handler = &rawhide_irq_type; | 183 | irq_desc[i].chip = &rawhide_irq_type; |
184 | } | 184 | } |
185 | 185 | ||
186 | init_i8259a_irqs(); | 186 | init_i8259a_irqs(); |
diff --git a/arch/alpha/kernel/sys_rx164.c b/arch/alpha/kernel/sys_rx164.c index 58404243057b..6ae506052635 100644 --- a/arch/alpha/kernel/sys_rx164.c +++ b/arch/alpha/kernel/sys_rx164.c | |||
@@ -117,7 +117,7 @@ rx164_init_irq(void) | |||
117 | rx164_update_irq_hw(0); | 117 | rx164_update_irq_hw(0); |
118 | for (i = 16; i < 40; ++i) { | 118 | for (i = 16; i < 40; ++i) { |
119 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 119 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
120 | irq_desc[i].handler = &rx164_irq_type; | 120 | irq_desc[i].chip = &rx164_irq_type; |
121 | } | 121 | } |
122 | 122 | ||
123 | init_i8259a_irqs(); | 123 | init_i8259a_irqs(); |
diff --git a/arch/alpha/kernel/sys_sable.c b/arch/alpha/kernel/sys_sable.c index a7ff84474ace..a7a14647b50e 100644 --- a/arch/alpha/kernel/sys_sable.c +++ b/arch/alpha/kernel/sys_sable.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Code supporting the Sable, Sable-Gamma, and Lynx systems. | 8 | * Code supporting the Sable, Sable-Gamma, and Lynx systems. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
@@ -537,7 +536,7 @@ sable_lynx_init_irq(int nr_irqs) | |||
537 | 536 | ||
538 | for (i = 0; i < nr_irqs; ++i) { | 537 | for (i = 0; i < nr_irqs; ++i) { |
539 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 538 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
540 | irq_desc[i].handler = &sable_lynx_irq_type; | 539 | irq_desc[i].chip = &sable_lynx_irq_type; |
541 | } | 540 | } |
542 | 541 | ||
543 | common_init_isa_dma(); | 542 | common_init_isa_dma(); |
diff --git a/arch/alpha/kernel/sys_sio.c b/arch/alpha/kernel/sys_sio.c index 131a2d9f79d3..cd85ef725e0e 100644 --- a/arch/alpha/kernel/sys_sio.c +++ b/arch/alpha/kernel/sys_sio.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Kenetics's Platform 2000, Avanti (AlphaStation), XL, and AlphaBook1. | 10 | * Kenetics's Platform 2000, Avanti (AlphaStation), XL, and AlphaBook1. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
diff --git a/arch/alpha/kernel/sys_takara.c b/arch/alpha/kernel/sys_takara.c index 7955bdfc2db0..2c75cd1fd81a 100644 --- a/arch/alpha/kernel/sys_takara.c +++ b/arch/alpha/kernel/sys_takara.c | |||
@@ -154,7 +154,7 @@ takara_init_irq(void) | |||
154 | 154 | ||
155 | for (i = 16; i < 128; ++i) { | 155 | for (i = 16; i < 128; ++i) { |
156 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 156 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
157 | irq_desc[i].handler = &takara_irq_type; | 157 | irq_desc[i].chip = &takara_irq_type; |
158 | } | 158 | } |
159 | 159 | ||
160 | common_init_isa_dma(); | 160 | common_init_isa_dma(); |
diff --git a/arch/alpha/kernel/sys_titan.c b/arch/alpha/kernel/sys_titan.c index 2551fb49ae09..302aab38d95f 100644 --- a/arch/alpha/kernel/sys_titan.c +++ b/arch/alpha/kernel/sys_titan.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Granite | 12 | * Granite |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/types.h> | 16 | #include <linux/types.h> |
18 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
@@ -189,7 +188,7 @@ init_titan_irqs(struct hw_interrupt_type * ops, int imin, int imax) | |||
189 | long i; | 188 | long i; |
190 | for (i = imin; i <= imax; ++i) { | 189 | for (i = imin; i <= imax; ++i) { |
191 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; | 190 | irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL; |
192 | irq_desc[i].handler = ops; | 191 | irq_desc[i].chip = ops; |
193 | } | 192 | } |
194 | } | 193 | } |
195 | 194 | ||
@@ -280,15 +279,15 @@ titan_late_init(void) | |||
280 | * all reported to the kernel as machine checks, so the handler | 279 | * all reported to the kernel as machine checks, so the handler |
281 | * is a nop so it can be called to count the individual events. | 280 | * is a nop so it can be called to count the individual events. |
282 | */ | 281 | */ |
283 | request_irq(63+16, titan_intr_nop, SA_INTERRUPT, | 282 | request_irq(63+16, titan_intr_nop, IRQF_DISABLED, |
284 | "CChip Error", NULL); | 283 | "CChip Error", NULL); |
285 | request_irq(62+16, titan_intr_nop, SA_INTERRUPT, | 284 | request_irq(62+16, titan_intr_nop, IRQF_DISABLED, |
286 | "PChip 0 H_Error", NULL); | 285 | "PChip 0 H_Error", NULL); |
287 | request_irq(61+16, titan_intr_nop, SA_INTERRUPT, | 286 | request_irq(61+16, titan_intr_nop, IRQF_DISABLED, |
288 | "PChip 1 H_Error", NULL); | 287 | "PChip 1 H_Error", NULL); |
289 | request_irq(60+16, titan_intr_nop, SA_INTERRUPT, | 288 | request_irq(60+16, titan_intr_nop, IRQF_DISABLED, |
290 | "PChip 0 C_Error", NULL); | 289 | "PChip 0 C_Error", NULL); |
291 | request_irq(59+16, titan_intr_nop, SA_INTERRUPT, | 290 | request_irq(59+16, titan_intr_nop, IRQF_DISABLED, |
292 | "PChip 1 C_Error", NULL); | 291 | "PChip 1 C_Error", NULL); |
293 | 292 | ||
294 | /* | 293 | /* |
@@ -349,9 +348,9 @@ privateer_init_pci(void) | |||
349 | * Hook a couple of extra err interrupts that the | 348 | * Hook a couple of extra err interrupts that the |
350 | * common titan code won't. | 349 | * common titan code won't. |
351 | */ | 350 | */ |
352 | request_irq(53+16, titan_intr_nop, SA_INTERRUPT, | 351 | request_irq(53+16, titan_intr_nop, IRQF_DISABLED, |
353 | "NMI", NULL); | 352 | "NMI", NULL); |
354 | request_irq(50+16, titan_intr_nop, SA_INTERRUPT, | 353 | request_irq(50+16, titan_intr_nop, IRQF_DISABLED, |
355 | "Temperature Warning", NULL); | 354 | "Temperature Warning", NULL); |
356 | 355 | ||
357 | /* | 356 | /* |
diff --git a/arch/alpha/kernel/sys_wildfire.c b/arch/alpha/kernel/sys_wildfire.c index 1553f470246e..22c5798fe083 100644 --- a/arch/alpha/kernel/sys_wildfire.c +++ b/arch/alpha/kernel/sys_wildfire.c | |||
@@ -199,14 +199,14 @@ wildfire_init_irq_per_pca(int qbbno, int pcano) | |||
199 | if (i == 2) | 199 | if (i == 2) |
200 | continue; | 200 | continue; |
201 | irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL; | 201 | irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL; |
202 | irq_desc[i+irq_bias].handler = &wildfire_irq_type; | 202 | irq_desc[i+irq_bias].chip = &wildfire_irq_type; |
203 | } | 203 | } |
204 | 204 | ||
205 | irq_desc[36+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL; | 205 | irq_desc[36+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL; |
206 | irq_desc[36+irq_bias].handler = &wildfire_irq_type; | 206 | irq_desc[36+irq_bias].chip = &wildfire_irq_type; |
207 | for (i = 40; i < 64; ++i) { | 207 | for (i = 40; i < 64; ++i) { |
208 | irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL; | 208 | irq_desc[i+irq_bias].status = IRQ_DISABLED | IRQ_LEVEL; |
209 | irq_desc[i+irq_bias].handler = &wildfire_irq_type; | 209 | irq_desc[i+irq_bias].chip = &wildfire_irq_type; |
210 | } | 210 | } |
211 | 211 | ||
212 | setup_irq(32+irq_bias, &isa_enable); | 212 | setup_irq(32+irq_bias, &isa_enable); |
diff --git a/arch/alpha/kernel/time.c b/arch/alpha/kernel/time.c index 3859749810b4..50eccde2dcd8 100644 --- a/arch/alpha/kernel/time.c +++ b/arch/alpha/kernel/time.c | |||
@@ -27,7 +27,6 @@ | |||
27 | * 2003-06-03 R. Scott Bailey <scott.bailey@eds.com> | 27 | * 2003-06-03 R. Scott Bailey <scott.bailey@eds.com> |
28 | * Tighten sanity in time_init from 1% (10,000 PPM) to 250 PPM | 28 | * Tighten sanity in time_init from 1% (10,000 PPM) to 250 PPM |
29 | */ | 29 | */ |
30 | #include <linux/config.h> | ||
31 | #include <linux/errno.h> | 30 | #include <linux/errno.h> |
32 | #include <linux/module.h> | 31 | #include <linux/module.h> |
33 | #include <linux/sched.h> | 32 | #include <linux/sched.h> |
diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c index f9d12319e0fb..d6e665d567bd 100644 --- a/arch/alpha/kernel/traps.c +++ b/arch/alpha/kernel/traps.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * This file initializes the trap entry points | 8 | * This file initializes the trap entry points |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/tty.h> | 13 | #include <linux/tty.h> |
diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S index 0922e0785ddb..71470e9d93ba 100644 --- a/arch/alpha/kernel/vmlinux.lds.S +++ b/arch/alpha/kernel/vmlinux.lds.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <asm-generic/vmlinux.lds.h> | 1 | #include <asm-generic/vmlinux.lds.h> |
3 | 2 | ||
4 | OUTPUT_FORMAT("elf64-alpha") | 3 | OUTPUT_FORMAT("elf64-alpha") |
diff --git a/arch/alpha/lib/callback_srm.S b/arch/alpha/lib/callback_srm.S index 0528acd0d9ad..8804bec2c644 100644 --- a/arch/alpha/lib/callback_srm.S +++ b/arch/alpha/lib/callback_srm.S | |||
@@ -2,7 +2,6 @@ | |||
2 | * arch/alpha/lib/callback_srm.S | 2 | * arch/alpha/lib/callback_srm.S |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <asm/console.h> | 5 | #include <asm/console.h> |
7 | 6 | ||
8 | .text | 7 | .text |
diff --git a/arch/alpha/lib/udelay.c b/arch/alpha/lib/udelay.c index 1c879bbce419..69d52aa37bae 100644 --- a/arch/alpha/lib/udelay.c +++ b/arch/alpha/lib/udelay.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Delay routines, using a pre-computed "loops_per_jiffy" value. | 4 | * Delay routines, using a pre-computed "loops_per_jiffy" value. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/module.h> | 7 | #include <linux/module.h> |
9 | #include <linux/sched.h> /* for udelay's use of smp_processor_id */ | 8 | #include <linux/sched.h> /* for udelay's use of smp_processor_id */ |
10 | #include <asm/param.h> | 9 | #include <asm/param.h> |
diff --git a/arch/alpha/mm/extable.c b/arch/alpha/mm/extable.c index c3849baebd57..dc7aeda15773 100644 --- a/arch/alpha/mm/extable.c +++ b/arch/alpha/mm/extable.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/alpha/mm/extable.c | 2 | * linux/arch/alpha/mm/extable.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | 5 | #include <linux/module.h> |
7 | #include <asm/uaccess.h> | 6 | #include <asm/uaccess.h> |
8 | 7 | ||
diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c index 64ace5a9cd3d..622dabd84680 100644 --- a/arch/alpha/mm/fault.c +++ b/arch/alpha/mm/fault.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1995 Linus Torvalds | 4 | * Copyright (C) 1995 Linus Torvalds |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
diff --git a/arch/alpha/mm/init.c b/arch/alpha/mm/init.c index 544ac5dc09eb..917dad1b74c8 100644 --- a/arch/alpha/mm/init.c +++ b/arch/alpha/mm/init.c | |||
@@ -6,7 +6,6 @@ | |||
6 | 6 | ||
7 | /* 2.3.x zone allocator, 1999 Andrea Arcangeli <andrea@suse.de> */ | 7 | /* 2.3.x zone allocator, 1999 Andrea Arcangeli <andrea@suse.de> */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/pagemap.h> | 9 | #include <linux/pagemap.h> |
11 | #include <linux/signal.h> | 10 | #include <linux/signal.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
diff --git a/arch/alpha/mm/numa.c b/arch/alpha/mm/numa.c index bf6b65c81bef..b826f58c6e72 100644 --- a/arch/alpha/mm/numa.c +++ b/arch/alpha/mm/numa.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 2001 Andrea Arcangeli <andrea@suse.de> SuSE | 6 | * Copyright (C) 2001 Andrea Arcangeli <andrea@suse.de> SuSE |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
diff --git a/arch/arm/boot/compressed/head-clps7500.S b/arch/arm/boot/compressed/head-clps7500.S index 4a8a689d15e6..941c5f5cbacf 100644 --- a/arch/arm/boot/compressed/head-clps7500.S +++ b/arch/arm/boot/compressed/head-clps7500.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1999, 2000, 2001 Nexus Electronics Ltd | 4 | * Copyright (C) 1999, 2000, 2001 Nexus Electronics Ltd |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | 7 | ||
9 | /* There are three different ways the kernel can be | 8 | /* There are three different ways the kernel can be |
10 | booted on a 7500 system: from Angel (loaded in RAM), from | 9 | booted on a 7500 system: from Angel (loaded in RAM), from |
diff --git a/arch/arm/boot/compressed/head-l7200.S b/arch/arm/boot/compressed/head-l7200.S index b08bd23f8d16..d0e3b20856cd 100644 --- a/arch/arm/boot/compressed/head-l7200.S +++ b/arch/arm/boot/compressed/head-l7200.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * is merged with head.S by the linker. | 7 | * is merged with head.S by the linker. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <asm/mach-types.h> | 10 | #include <asm/mach-types.h> |
12 | 11 | ||
13 | #ifndef CONFIG_ARCH_L7200 | 12 | #ifndef CONFIG_ARCH_L7200 |
diff --git a/arch/arm/boot/compressed/head-sa1100.S b/arch/arm/boot/compressed/head-sa1100.S index 5aefffd46048..4c8c0e46027d 100644 --- a/arch/arm/boot/compressed/head-sa1100.S +++ b/arch/arm/boot/compressed/head-sa1100.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
12 | #include <asm/mach-types.h> | 11 | #include <asm/mach-types.h> |
13 | 12 | ||
diff --git a/arch/arm/boot/compressed/head-sharpsl.S b/arch/arm/boot/compressed/head-sharpsl.S index 59ad69640d6b..eb0084ea1ec4 100644 --- a/arch/arm/boot/compressed/head-sharpsl.S +++ b/arch/arm/boot/compressed/head-sharpsl.S | |||
@@ -12,7 +12,6 @@ | |||
12 | * | 12 | * |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/linkage.h> | 15 | #include <linux/linkage.h> |
17 | #include <asm/mach-types.h> | 16 | #include <asm/mach-types.h> |
18 | 17 | ||
diff --git a/arch/arm/boot/compressed/head-xscale.S b/arch/arm/boot/compressed/head-xscale.S index d3fe2533907e..73c5d9e0201c 100644 --- a/arch/arm/boot/compressed/head-xscale.S +++ b/arch/arm/boot/compressed/head-xscale.S | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/linkage.h> | 8 | #include <linux/linkage.h> |
10 | #include <asm/mach-types.h> | 9 | #include <asm/mach-types.h> |
11 | 10 | ||
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 9b42b88bfba0..14a9ff9c68df 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * it under the terms of the GNU General Public License version 2 as | 8 | * it under the terms of the GNU General Public License version 2 as |
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/linkage.h> | 11 | #include <linux/linkage.h> |
13 | 12 | ||
14 | /* | 13 | /* |
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c index 0dafba3a701d..fbc3ab0e1011 100644 --- a/arch/arm/common/locomo.c +++ b/arch/arm/common/locomo.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * Based on sa1111.c | 15 | * Based on sa1111.c |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/module.h> | 18 | #include <linux/module.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c index 3f68db84e5e6..fe06a36a2130 100644 --- a/arch/arm/common/sa1111.c +++ b/arch/arm/common/sa1111.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * All initialization functions provided here are intended to be called | 14 | * All initialization functions provided here are intended to be called |
15 | * from machine specific code with proper arguments when required. | 15 | * from machine specific code with proper arguments when required. |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/module.h> | 17 | #include <linux/module.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
diff --git a/arch/arm/common/uengine.c b/arch/arm/common/uengine.c index dfca596a9a27..95c8508c29b7 100644 --- a/arch/arm/common/uengine.c +++ b/arch/arm/common/uengine.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * License, or (at your option) any later version. | 11 | * License, or (at your option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/slab.h> | 16 | #include <linux/slab.h> |
diff --git a/arch/arm/common/via82c505.c b/arch/arm/common/via82c505.c index ef716a5b07ac..ba2e62986a57 100644 --- a/arch/arm/common/via82c505.c +++ b/arch/arm/common/via82c505.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/kernel.h> | 1 | #include <linux/kernel.h> |
3 | #include <linux/pci.h> | 2 | #include <linux/pci.h> |
4 | #include <linux/ptrace.h> | 3 | #include <linux/ptrace.h> |
diff --git a/arch/arm/kernel/apm.c b/arch/arm/kernel/apm.c index 2bed290fec76..33c55689f999 100644 --- a/arch/arm/kernel/apm.c +++ b/arch/arm/kernel/apm.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * [This document is available from Microsoft at: | 10 | * [This document is available from Microsoft at: |
11 | * http://www.microsoft.com/hwdev/busbios/amp_12.htm] | 11 | * http://www.microsoft.com/hwdev/busbios/amp_12.htm] |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/poll.h> | 14 | #include <linux/poll.h> |
16 | #include <linux/timer.h> | 15 | #include <linux/timer.h> |
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index 302fc1401547..964faac104fb 100644 --- a/arch/arm/kernel/bios32.c +++ b/arch/arm/kernel/bios32.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | * Bits taken from various places. | 6 | * Bits taken from various places. |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/pci.h> | 10 | #include <linux/pci.h> |
@@ -304,7 +303,7 @@ static inline int pdev_bad_for_parity(struct pci_dev *dev) | |||
304 | static void __devinit | 303 | static void __devinit |
305 | pdev_fixup_device_resources(struct pci_sys_data *root, struct pci_dev *dev) | 304 | pdev_fixup_device_resources(struct pci_sys_data *root, struct pci_dev *dev) |
306 | { | 305 | { |
307 | unsigned long offset; | 306 | resource_size_t offset; |
308 | int i; | 307 | int i; |
309 | 308 | ||
310 | for (i = 0; i < PCI_NUM_RESOURCES; i++) { | 309 | for (i = 0; i < PCI_NUM_RESOURCES; i++) { |
@@ -634,9 +633,9 @@ char * __init pcibios_setup(char *str) | |||
634 | * which might be mirrored at 0x0100-0x03ff.. | 633 | * which might be mirrored at 0x0100-0x03ff.. |
635 | */ | 634 | */ |
636 | void pcibios_align_resource(void *data, struct resource *res, | 635 | void pcibios_align_resource(void *data, struct resource *res, |
637 | unsigned long size, unsigned long align) | 636 | resource_size_t size, resource_size_t align) |
638 | { | 637 | { |
639 | unsigned long start = res->start; | 638 | resource_size_t start = res->start; |
640 | 639 | ||
641 | if (res->flags & IORESOURCE_IO && start & 0x300) | 640 | if (res->flags & IORESOURCE_IO && start & 0x300) |
642 | start = (start + 0x3ff) & ~0x3ff; | 641 | start = (start + 0x3ff) & ~0x3ff; |
diff --git a/arch/arm/kernel/compat.c b/arch/arm/kernel/compat.c index 60cfa7f3226c..0a1385442f43 100644 --- a/arch/arm/kernel/compat.c +++ b/arch/arm/kernel/compat.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * the kernel for 5 years from now (2001). This will allow boot loaders | 15 | * the kernel for 5 years from now (2001). This will allow boot loaders |
16 | * to convert to the new struct tag way. | 16 | * to convert to the new struct tag way. |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/types.h> | 18 | #include <linux/types.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/string.h> | 20 | #include <linux/string.h> |
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index da280bae3d07..a5747e58a9dc 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | * 32-bit debugging code | 10 | * 32-bit debugging code |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/linkage.h> | 12 | #include <linux/linkage.h> |
14 | 13 | ||
15 | .text | 14 | .text |
diff --git a/arch/arm/kernel/ecard.c b/arch/arm/kernel/ecard.c index 00aa225e8d95..68a257666d95 100644 --- a/arch/arm/kernel/ecard.c +++ b/arch/arm/kernel/ecard.c | |||
@@ -27,7 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | #define ECARD_C | 28 | #define ECARD_C |
29 | 29 | ||
30 | #include <linux/config.h> | ||
31 | #include <linux/module.h> | 30 | #include <linux/module.h> |
32 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
33 | #include <linux/types.h> | 32 | #include <linux/types.h> |
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 0e8aeaf9ff1d..7ea5f01dfc7b 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -14,7 +14,6 @@ | |||
14 | * Note: there is a StrongARM bug in the STMIA rn, {regs}^ instruction that causes | 14 | * Note: there is a StrongARM bug in the STMIA rn, {regs}^ instruction that causes |
15 | * it to save wrong values... Be aware! | 15 | * it to save wrong values... Be aware! |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | 17 | ||
19 | #include <asm/memory.h> | 18 | #include <asm/memory.h> |
20 | #include <asm/glue.h> | 19 | #include <asm/glue.h> |
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 75af6d6e2f28..6f5e7c50d42f 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/unistd.h> | 11 | #include <asm/unistd.h> |
13 | 12 | ||
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index f1c2fd5b63e4..87ab4e157997 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/init.h> | 1 | #include <linux/init.h> |
3 | #include <linux/linkage.h> | 2 | #include <linux/linkage.h> |
4 | 3 | ||
diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S index 2af7e44218af..ac9eb3d30518 100644 --- a/arch/arm/kernel/head-nommu.S +++ b/arch/arm/kernel/head-nommu.S | |||
@@ -12,7 +12,6 @@ | |||
12 | * for 32-bit CPUs which has a process ID register(CP15). | 12 | * for 32-bit CPUs which has a process ID register(CP15). |
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | #include <linux/config.h> | ||
16 | #include <linux/linkage.h> | 15 | #include <linux/linkage.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | 17 | ||
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 81cb902c487c..2242f5f7cb7d 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -11,7 +11,6 @@ | |||
11 | * | 11 | * |
12 | * Kernel startup code for all 32-bit CPUs | 12 | * Kernel startup code for all 32-bit CPUs |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | 16 | ||
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index ec20f8935e8b..4d31cf8d02d5 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * IRQ's are in fact implemented a bit like signal handlers for the kernel. | 21 | * IRQ's are in fact implemented a bit like signal handlers for the kernel. |
22 | * Naturally it's not a 1:1 relation, but there are similarities. | 22 | * Naturally it's not a 1:1 relation, but there are similarities. |
23 | */ | 23 | */ |
24 | #include <linux/config.h> | ||
25 | #include <linux/kernel_stat.h> | 24 | #include <linux/kernel_stat.h> |
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/signal.h> | 26 | #include <linux/signal.h> |
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c index 055bf5d28894..298363d97047 100644 --- a/arch/arm/kernel/module.c +++ b/arch/arm/kernel/module.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | * Module allocation method suggested by Andi Kleen. | 10 | * Module allocation method suggested by Andi Kleen. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/moduleloader.h> | 13 | #include <linux/moduleloader.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index b5773a2549ee..3079535afccd 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | #include <stdarg.h> | 11 | #include <stdarg.h> |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index c40bdc770054..9254ba2f46fc 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 7d02f96eeb9d..7d6a516c0b9f 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
@@ -119,9 +118,24 @@ DEFINE_PER_CPU(struct cpuinfo_arm, cpu_data); | |||
119 | * Standard memory resources | 118 | * Standard memory resources |
120 | */ | 119 | */ |
121 | static struct resource mem_res[] = { | 120 | static struct resource mem_res[] = { |
122 | { "Video RAM", 0, 0, IORESOURCE_MEM }, | 121 | { |
123 | { "Kernel text", 0, 0, IORESOURCE_MEM }, | 122 | .name = "Video RAM", |
124 | { "Kernel data", 0, 0, IORESOURCE_MEM } | 123 | .start = 0, |
124 | .end = 0, | ||
125 | .flags = IORESOURCE_MEM | ||
126 | }, | ||
127 | { | ||
128 | .name = "Kernel text", | ||
129 | .start = 0, | ||
130 | .end = 0, | ||
131 | .flags = IORESOURCE_MEM | ||
132 | }, | ||
133 | { | ||
134 | .name = "Kernel data", | ||
135 | .start = 0, | ||
136 | .end = 0, | ||
137 | .flags = IORESOURCE_MEM | ||
138 | } | ||
125 | }; | 139 | }; |
126 | 140 | ||
127 | #define video_ram mem_res[0] | 141 | #define video_ram mem_res[0] |
@@ -129,9 +143,24 @@ static struct resource mem_res[] = { | |||
129 | #define kernel_data mem_res[2] | 143 | #define kernel_data mem_res[2] |
130 | 144 | ||
131 | static struct resource io_res[] = { | 145 | static struct resource io_res[] = { |
132 | { "reserved", 0x3bc, 0x3be, IORESOURCE_IO | IORESOURCE_BUSY }, | 146 | { |
133 | { "reserved", 0x378, 0x37f, IORESOURCE_IO | IORESOURCE_BUSY }, | 147 | .name = "reserved", |
134 | { "reserved", 0x278, 0x27f, IORESOURCE_IO | IORESOURCE_BUSY } | 148 | .start = 0x3bc, |
149 | .end = 0x3be, | ||
150 | .flags = IORESOURCE_IO | IORESOURCE_BUSY | ||
151 | }, | ||
152 | { | ||
153 | .name = "reserved", | ||
154 | .start = 0x378, | ||
155 | .end = 0x37f, | ||
156 | .flags = IORESOURCE_IO | IORESOURCE_BUSY | ||
157 | }, | ||
158 | { | ||
159 | .name = "reserved", | ||
160 | .start = 0x278, | ||
161 | .end = 0x27f, | ||
162 | .flags = IORESOURCE_IO | IORESOURCE_BUSY | ||
163 | } | ||
135 | }; | 164 | }; |
136 | 165 | ||
137 | #define lp0 io_res[0] | 166 | #define lp0 io_res[0] |
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index 83a8d3c95eb3..48cf7fffddf2 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/signal.h> | 11 | #include <linux/signal.h> |
13 | #include <linux/ptrace.h> | 12 | #include <linux/ptrace.h> |
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 1370d726dc10..68e9634d260a 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/delay.h> | 10 | #include <linux/delay.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/spinlock.h> | 12 | #include <linux/spinlock.h> |
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index 9c12d4fefbd3..09a67d771857 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * 1998-12-20 Updated NTP code according to technical memorandum Jan '96 | 16 | * 1998-12-20 Updated NTP code according to technical memorandum Jan '96 |
17 | * "A Kernel Model for Precision Timekeeping" by Dave Mills | 17 | * "A Kernel Model for Precision Timekeeping" by Dave Mills |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/module.h> | 19 | #include <linux/module.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index 35230a060108..35a052fc177a 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * 'linux/arch/arm/lib/traps.S'. Mostly a debugging aid, but will probably | 12 | * 'linux/arch/arm/lib/traps.S'. Mostly a debugging aid, but will probably |
13 | * kill the offending process. | 13 | * kill the offending process. |
14 | */ | 14 | */ |
15 | #include <linux/config.h> | ||
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/signal.h> | 16 | #include <linux/signal.h> |
18 | #include <linux/spinlock.h> | 17 | #include <linux/spinlock.h> |
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index 2df9688a7028..3ca574ee2772 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S | |||
@@ -4,7 +4,6 @@ | |||
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <asm-generic/vmlinux.lds.h> | 6 | #include <asm-generic/vmlinux.lds.h> |
7 | #include <linux/config.h> | ||
8 | #include <asm/thread_info.h> | 7 | #include <asm/thread_info.h> |
9 | #include <asm/memory.h> | 8 | #include <asm/memory.h> |
10 | 9 | ||
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S index 91f993f2e9db..74230083cbf4 100644 --- a/arch/arm/lib/backtrace.S +++ b/arch/arm/lib/backtrace.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * 27/03/03 Ian Molton Clean up CONFIG_CPU | 10 | * 27/03/03 Ian Molton Clean up CONFIG_CPU |
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/assembler.h> | 14 | #include <asm/assembler.h> |
16 | .text | 15 | .text |
diff --git a/arch/arm/lib/bitops.h b/arch/arm/lib/bitops.h index b8c14e936697..542251021744 100644 --- a/arch/arm/lib/bitops.h +++ b/arch/arm/lib/bitops.h | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | #if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_CPU_32v6K) | 2 | #if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_CPU_32v6K) |
4 | .macro bitop, instr | 3 | .macro bitop, instr |
diff --git a/arch/arm/lib/ucmpdi2.S b/arch/arm/lib/ucmpdi2.S index d847a62834cb..f76de07ac182 100644 --- a/arch/arm/lib/ucmpdi2.S +++ b/arch/arm/lib/ucmpdi2.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | 14 | ||
16 | #ifdef __ARMEB__ | 15 | #ifdef __ARMEB__ |
diff --git a/arch/arm/mach-aaec2000/core.c b/arch/arm/mach-aaec2000/core.c index 65be5efd633c..aa01d6753d6e 100644 --- a/arch/arm/mach-aaec2000/core.c +++ b/arch/arm/mach-aaec2000/core.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/arm/mach-at91rm9200/at91rm9200.c b/arch/arm/mach-at91rm9200/at91rm9200.c index 90f08d383889..7e1d072bdd80 100644 --- a/arch/arm/mach-at91rm9200/at91rm9200.c +++ b/arch/arm/mach-at91rm9200/at91rm9200.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | 14 | ||
16 | #include <asm/mach/arch.h> | 15 | #include <asm/mach/arch.h> |
diff --git a/arch/arm/mach-at91rm9200/at91rm9200_time.c b/arch/arm/mach-at91rm9200/at91rm9200_time.c index 1077fb85c411..dc38e06ada63 100644 --- a/arch/arm/mach-at91rm9200/at91rm9200_time.c +++ b/arch/arm/mach-at91rm9200/at91rm9200_time.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
25 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
diff --git a/arch/arm/mach-at91rm9200/board-csb337.c b/arch/arm/mach-at91rm9200/board-csb337.c index e94645d77f7a..794d3fbb449b 100644 --- a/arch/arm/mach-at91rm9200/board-csb337.c +++ b/arch/arm/mach-at91rm9200/board-csb337.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/types.h> | 21 | #include <linux/types.h> |
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/mm.h> | 23 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-at91rm9200/board-csb637.c b/arch/arm/mach-at91rm9200/board-csb637.c index 67d5f7786cdb..c8b6f334246a 100644 --- a/arch/arm/mach-at91rm9200/board-csb637.c +++ b/arch/arm/mach-at91rm9200/board-csb637.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/types.h> | 21 | #include <linux/types.h> |
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/mm.h> | 23 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-at91rm9200/board-dk.c b/arch/arm/mach-at91rm9200/board-dk.c index 48d7390fa584..65873037e02a 100644 --- a/arch/arm/mach-at91rm9200/board-dk.c +++ b/arch/arm/mach-at91rm9200/board-dk.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/types.h> | 24 | #include <linux/types.h> |
26 | #include <linux/init.h> | 25 | #include <linux/init.h> |
27 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-at91rm9200/board-ek.c b/arch/arm/mach-at91rm9200/board-ek.c index 72202ed830ad..868192351dda 100644 --- a/arch/arm/mach-at91rm9200/board-ek.c +++ b/arch/arm/mach-at91rm9200/board-ek.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/types.h> | 24 | #include <linux/types.h> |
26 | #include <linux/init.h> | 25 | #include <linux/init.h> |
27 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-at91rm9200/devices.c b/arch/arm/mach-at91rm9200/devices.c index 1cf85d231baa..4352acb88178 100644 --- a/arch/arm/mach-at91rm9200/devices.c +++ b/arch/arm/mach-at91rm9200/devices.c | |||
@@ -13,7 +13,6 @@ | |||
13 | #include <asm/mach/arch.h> | 13 | #include <asm/mach/arch.h> |
14 | #include <asm/mach/map.h> | 14 | #include <asm/mach/map.h> |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
18 | 17 | ||
19 | #include <asm/hardware.h> | 18 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-at91rm9200/irq.c b/arch/arm/mach-at91rm9200/irq.c index 70f4d7ac1533..dcd560dbcfb7 100644 --- a/arch/arm/mach-at91rm9200/irq.c +++ b/arch/arm/mach-at91rm9200/irq.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/init.h> | 23 | #include <linux/init.h> |
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <linux/mm.h> | 25 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-at91rm9200/leds.c b/arch/arm/mach-at91rm9200/leds.c index 28150e8905ba..1a333730466e 100644 --- a/arch/arm/mach-at91rm9200/leds.c +++ b/arch/arm/mach-at91rm9200/leds.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/arm/mach-clps711x/fortunet.c b/arch/arm/mach-clps711x/fortunet.c index ff26a85aa4ba..3792ab4f0996 100644 --- a/arch/arm/mach-clps711x/fortunet.c +++ b/arch/arm/mach-clps711x/fortunet.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * along with this program; if not, write to the Free Software | 19 | * along with this program; if not, write to the Free Software |
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 | */ | 21 | */ |
22 | #include <linux/config.h> | ||
23 | #include <linux/types.h> | 22 | #include <linux/types.h> |
24 | #include <linux/init.h> | 23 | #include <linux/init.h> |
25 | #include <linux/initrd.h> | 24 | #include <linux/initrd.h> |
diff --git a/arch/arm/mach-clps711x/p720t.c b/arch/arm/mach-clps711x/p720t.c index 9ba45f4d5a7e..c8ecd2480c27 100644 --- a/arch/arm/mach-clps711x/p720t.c +++ b/arch/arm/mach-clps711x/p720t.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * along with this program; if not, write to the Free Software | 17 | * along with this program; if not, write to the Free Software |
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | */ | 19 | */ |
20 | #include <linux/config.h> | ||
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
23 | #include <linux/types.h> | 22 | #include <linux/types.h> |
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c index 1fe73c0a9d01..26df3b666b56 100644 --- a/arch/arm/mach-ep93xx/core.c +++ b/arch/arm/mach-ep93xx/core.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * your option) any later version. | 13 | * your option) any later version. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <linux/spinlock.h> | 18 | #include <linux/spinlock.h> |
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c index 2c28d66d260e..e760fd4f3655 100644 --- a/arch/arm/mach-ep93xx/gesbc9312.c +++ b/arch/arm/mach-ep93xx/gesbc9312.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * your option) any later version. | 10 | * your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c index 0b3b875b1875..df315f2e9beb 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * your option) any later version. | 10 | * your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-footbridge/common.c b/arch/arm/mach-footbridge/common.c index bbe6e4a0bf6a..af900f4755a4 100644 --- a/arch/arm/mach-footbridge/common.c +++ b/arch/arm/mach-footbridge/common.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-footbridge/dma.c b/arch/arm/mach-footbridge/dma.c index 7a54578b51af..1f9b09b8ed88 100644 --- a/arch/arm/mach-footbridge/dma.c +++ b/arch/arm/mach-footbridge/dma.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 17-Mar-1999 RMK Allow any EBSA285-like architecture to have | 10 | * 17-Mar-1999 RMK Allow any EBSA285-like architecture to have |
11 | * ISA DMA controllers. | 11 | * ISA DMA controllers. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | 14 | ||
16 | #include <asm/dma.h> | 15 | #include <asm/dma.h> |
diff --git a/arch/arm/mach-footbridge/ebsa285-leds.c b/arch/arm/mach-footbridge/ebsa285-leds.c index 2c7c3630401b..a64e22226515 100644 --- a/arch/arm/mach-footbridge/ebsa285-leds.c +++ b/arch/arm/mach-footbridge/ebsa285-leds.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * Changelog: | 16 | * Changelog: |
17 | * 02-05-1999 RMK Various cleanups | 17 | * 02-05-1999 RMK Various cleanups |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/module.h> | 19 | #include <linux/module.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
diff --git a/arch/arm/mach-footbridge/netwinder-hw.c b/arch/arm/mach-footbridge/netwinder-hw.c index 229bf0585e40..a1f381c64a30 100644 --- a/arch/arm/mach-footbridge/netwinder-hw.c +++ b/arch/arm/mach-footbridge/netwinder-hw.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | * Copyright (C) 1998, 1999 Russell King, Phil Blundell | 6 | * Copyright (C) 1998, 1999 Russell King, Phil Blundell |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
10 | #include <linux/ioport.h> | 9 | #include <linux/ioport.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
diff --git a/arch/arm/mach-footbridge/netwinder-leds.c b/arch/arm/mach-footbridge/netwinder-leds.c index 7451fc07b85a..8e9cac5a213b 100644 --- a/arch/arm/mach-footbridge/netwinder-leds.c +++ b/arch/arm/mach-footbridge/netwinder-leds.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * Changelog: | 16 | * Changelog: |
17 | * 02-05-1999 RMK Various cleanups | 17 | * 02-05-1999 RMK Various cleanups |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/module.h> | 19 | #include <linux/module.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
diff --git a/arch/arm/mach-h720x/h7201-eval.c b/arch/arm/mach-h720x/h7201-eval.c index 193f968edac3..407cd4c0aa8a 100644 --- a/arch/arm/mach-h720x/h7201-eval.c +++ b/arch/arm/mach-h720x/h7201-eval.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/types.h> | 18 | #include <linux/types.h> |
diff --git a/arch/arm/mach-h720x/h7202-eval.c b/arch/arm/mach-h720x/h7202-eval.c index 36266896979c..bf2acdce62e5 100644 --- a/arch/arm/mach-h720x/h7202-eval.c +++ b/arch/arm/mach-h720x/h7202-eval.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/types.h> | 18 | #include <linux/types.h> |
diff --git a/arch/arm/mach-imx/time.c b/arch/arm/mach-imx/time.c index ea805bfa5e54..294b1c450f21 100644 --- a/arch/arm/mach-imx/time.c +++ b/arch/arm/mach-imx/time.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * it under the terms of the GNU General Public License version 2 as | 8 | * it under the terms of the GNU General Public License version 2 as |
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c index 229a63a525cd..f9043592e299 100644 --- a/arch/arm/mach-integrator/pci_v3.c +++ b/arch/arm/mach-integrator/pci_v3.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * along with this program; if not, write to the Free Software | 20 | * along with this program; if not, write to the Free Software |
21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 | */ | 22 | */ |
23 | #include <linux/config.h> | ||
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
25 | #include <linux/pci.h> | 24 | #include <linux/pci.h> |
26 | #include <linux/ptrace.h> | 25 | #include <linux/ptrace.h> |
diff --git a/arch/arm/mach-iop3xx/common.c b/arch/arm/mach-iop3xx/common.c index fdeeef489a73..d7f50e57e753 100644 --- a/arch/arm/mach-iop3xx/common.c +++ b/arch/arm/mach-iop3xx/common.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * warranty of any kind, whether express or implied. | 12 | * warranty of any kind, whether express or implied. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
17 | #include <asm/hardware.h> | 16 | #include <asm/hardware.h> |
18 | 17 | ||
diff --git a/arch/arm/mach-iop3xx/iop321-setup.c b/arch/arm/mach-iop3xx/iop321-setup.c index 0ebbcb20c6ae..b6d096903c4a 100644 --- a/arch/arm/mach-iop3xx/iop321-setup.c +++ b/arch/arm/mach-iop3xx/iop321-setup.c | |||
@@ -12,7 +12,6 @@ | |||
12 | */ | 12 | */ |
13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/config.h> | ||
16 | #include <linux/major.h> | 15 | #include <linux/major.h> |
17 | #include <linux/fs.h> | 16 | #include <linux/fs.h> |
18 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
diff --git a/arch/arm/mach-iop3xx/iop331-setup.c b/arch/arm/mach-iop3xx/iop331-setup.c index 7b7b6eea3846..3cc98d892ad4 100644 --- a/arch/arm/mach-iop3xx/iop331-setup.c +++ b/arch/arm/mach-iop3xx/iop331-setup.c | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/config.h> | ||
15 | #include <linux/major.h> | 14 | #include <linux/major.h> |
16 | #include <linux/fs.h> | 15 | #include <linux/fs.h> |
17 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
diff --git a/arch/arm/mach-ixp2000/core.c b/arch/arm/mach-ixp2000/core.c index ebe4391dd7f9..3cfc5aab8259 100644 --- a/arch/arm/mach-ixp2000/core.c +++ b/arch/arm/mach-ixp2000/core.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * warranty of any kind, whether express or implied. | 14 | * warranty of any kind, whether express or implied. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/spinlock.h> | 19 | #include <linux/spinlock.h> |
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c index 52fac89e95b5..ac29298c5d3f 100644 --- a/arch/arm/mach-ixp2000/enp2611.c +++ b/arch/arm/mach-ixp2000/enp2611.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * option) any later version. | 18 | * option) any later version. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/mm.h> | 23 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c index 09101271298e..a6f14801872d 100644 --- a/arch/arm/mach-ixp2000/ixdp2400.c +++ b/arch/arm/mach-ixp2000/ixdp2400.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Free Software Foundation; either version 2 of the License, or (at your | 14 | * Free Software Foundation; either version 2 of the License, or (at your |
15 | * option) any later version. | 15 | * option) any later version. |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-ixp2000/ixdp2800.c b/arch/arm/mach-ixp2000/ixdp2800.c index 076e3f8acc96..91d36d91dac0 100644 --- a/arch/arm/mach-ixp2000/ixdp2800.c +++ b/arch/arm/mach-ixp2000/ixdp2800.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Free Software Foundation; either version 2 of the License, or (at your | 14 | * Free Software Foundation; either version 2 of the License, or (at your |
15 | * option) any later version. | 15 | * option) any later version. |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-ixp2000/ixdp2x00.c b/arch/arm/mach-ixp2000/ixdp2x00.c index d628da56b4bc..9b8ded259807 100644 --- a/arch/arm/mach-ixp2000/ixdp2x00.c +++ b/arch/arm/mach-ixp2000/ixdp2x00.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Free Software Foundation; either version 2 of the License, or (at your | 14 | * Free Software Foundation; either version 2 of the License, or (at your |
15 | * option) any later version. | 15 | * option) any later version. |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index 66915282a463..8477ae1d8f72 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * option) any later version. | 15 | * option) any later version. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c index 051e3d70026e..82ad6ef90a38 100644 --- a/arch/arm/mach-ixp23xx/core.c +++ b/arch/arm/mach-ixp23xx/core.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * warranty of any kind, whether express or implied. | 14 | * warranty of any kind, whether express or implied. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/spinlock.h> | 19 | #include <linux/spinlock.h> |
diff --git a/arch/arm/mach-ixp23xx/espresso.c b/arch/arm/mach-ixp23xx/espresso.c index 357351fbb1e2..7a85ced56718 100644 --- a/arch/arm/mach-ixp23xx/espresso.c +++ b/arch/arm/mach-ixp23xx/espresso.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * warranty of any kind, whether express or implied. | 10 | * warranty of any kind, whether express or implied. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/spinlock.h> | 15 | #include <linux/spinlock.h> |
diff --git a/arch/arm/mach-ixp23xx/ixdp2351.c b/arch/arm/mach-ixp23xx/ixdp2351.c index e0886871cc77..bba9d9f08691 100644 --- a/arch/arm/mach-ixp23xx/ixdp2351.c +++ b/arch/arm/mach-ixp23xx/ixdp2351.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * warranty of any kind, whether express or implied. | 14 | * warranty of any kind, whether express or implied. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/spinlock.h> | 19 | #include <linux/spinlock.h> |
diff --git a/arch/arm/mach-ixp23xx/pci.c b/arch/arm/mach-ixp23xx/pci.c index ac72f94c5b4d..3b34fa35e36b 100644 --- a/arch/arm/mach-ixp23xx/pci.c +++ b/arch/arm/mach-ixp23xx/pci.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * option) any later version. | 16 | * option) any later version. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/pci.h> | 21 | #include <linux/pci.h> |
diff --git a/arch/arm/mach-ixp23xx/roadrunner.c b/arch/arm/mach-ixp23xx/roadrunner.c index 92ad18f41251..d06e21b70de5 100644 --- a/arch/arm/mach-ixp23xx/roadrunner.c +++ b/arch/arm/mach-ixp23xx/roadrunner.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * warranty of any kind, whether express or implied. | 14 | * warranty of any kind, whether express or implied. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/spinlock.h> | 19 | #include <linux/spinlock.h> |
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index bf25a76e9bdf..13c7c629d037 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * warranty of any kind, whether express or implied. | 13 | * warranty of any kind, whether express or implied. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
diff --git a/arch/arm/mach-ixp4xx/ixdp425-pci.c b/arch/arm/mach-ixp4xx/ixdp425-pci.c index da415d5d7f37..8b8ca80c9449 100644 --- a/arch/arm/mach-ixp4xx/ixdp425-pci.c +++ b/arch/arm/mach-ixp4xx/ixdp425-pci.c | |||
@@ -15,7 +15,6 @@ | |||
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/config.h> | ||
19 | #include <linux/pci.h> | 18 | #include <linux/pci.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
diff --git a/arch/arm/mach-ixp4xx/nas100d-pci.c b/arch/arm/mach-ixp4xx/nas100d-pci.c index 26b7c001ff64..2d3b770d9e82 100644 --- a/arch/arm/mach-ixp4xx/nas100d-pci.c +++ b/arch/arm/mach-ixp4xx/nas100d-pci.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/pci.h> | 18 | #include <linux/pci.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | 20 | ||
diff --git a/arch/arm/mach-ixp4xx/nslu2-pci.c b/arch/arm/mach-ixp4xx/nslu2-pci.c index ece860444d5b..0de639d6e60a 100644 --- a/arch/arm/mach-ixp4xx/nslu2-pci.c +++ b/arch/arm/mach-ixp4xx/nslu2-pci.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/pci.h> | 18 | #include <linux/pci.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | 20 | ||
diff --git a/arch/arm/mach-lh7a40x/time.c b/arch/arm/mach-lh7a40x/time.c index ef9af375fcc4..1919835d9610 100644 --- a/arch/arm/mach-lh7a40x/time.c +++ b/arch/arm/mach-lh7a40x/time.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * version 2 as published by the Free Software Foundation. | 8 | * version 2 as published by the Free Software Foundation. |
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index 4b8d0ec73cb7..7b206116cd03 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * published by the Free Software Foundation. | 14 | * published by the Free Software Foundation. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/types.h> | 17 | #include <linux/types.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/major.h> | 19 | #include <linux/major.h> |
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c index 847329cafc5c..a611c3b63954 100644 --- a/arch/arm/mach-omap1/devices.c +++ b/arch/arm/mach-omap1/devices.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * (at your option) any later version. | 9 | * (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/arm/mach-omap1/fpga.c b/arch/arm/mach-omap1/fpga.c index aca2a120813a..880cd2d8f4aa 100644 --- a/arch/arm/mach-omap1/fpga.c +++ b/arch/arm/mach-omap1/fpga.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * published by the Free Software Foundation. | 16 | * published by the Free Software Foundation. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/types.h> | 19 | #include <linux/types.h> |
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
diff --git a/arch/arm/mach-omap1/id.c b/arch/arm/mach-omap1/id.c index 5c637c048368..da13c3e82850 100644 --- a/arch/arm/mach-omap1/id.c +++ b/arch/arm/mach-omap1/id.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c index be3a2a4ee2b8..fab8b0b27cfb 100644 --- a/arch/arm/mach-omap1/io.c +++ b/arch/arm/mach-omap1/io.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
diff --git a/arch/arm/mach-omap1/irq.c b/arch/arm/mach-omap1/irq.c index a0431c00fa81..9e039845b50e 100644 --- a/arch/arm/mach-omap1/irq.c +++ b/arch/arm/mach-omap1/irq.c | |||
@@ -36,7 +36,6 @@ | |||
36 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 36 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
37 | */ | 37 | */ |
38 | 38 | ||
39 | #include <linux/config.h> | ||
40 | #include <linux/init.h> | 39 | #include <linux/init.h> |
41 | #include <linux/module.h> | 40 | #include <linux/module.h> |
42 | #include <linux/sched.h> | 41 | #include <linux/sched.h> |
diff --git a/arch/arm/mach-omap1/leds-h2p2-debug.c b/arch/arm/mach-omap1/leds-h2p2-debug.c index 650650815915..8976fbb21f7c 100644 --- a/arch/arm/mach-omap1/leds-h2p2-debug.c +++ b/arch/arm/mach-omap1/leds-h2p2-debug.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * The "surfer" expansion board and H2 sample board also have two-color | 9 | * The "surfer" expansion board and H2 sample board also have two-color |
10 | * green+red LEDs (in parallel), used here for timer and idle indicators. | 10 | * green+red LEDs (in parallel), used here for timer and idle indicators. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/kernel_stat.h> | 13 | #include <linux/kernel_stat.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
diff --git a/arch/arm/mach-omap1/leds-innovator.c b/arch/arm/mach-omap1/leds-innovator.c index c8ffd1ddcded..a0cd001ac39a 100644 --- a/arch/arm/mach-omap1/leds-innovator.c +++ b/arch/arm/mach-omap1/leds-innovator.c | |||
@@ -1,7 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/mach-omap1/leds-innovator.c | 2 | * linux/arch/arm/mach-omap1/leds-innovator.c |
3 | */ | 3 | */ |
4 | #include <linux/config.h> | ||
5 | #include <linux/init.h> | 4 | #include <linux/init.h> |
6 | 5 | ||
7 | #include <asm/hardware.h> | 6 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-omap1/leds-osk.c b/arch/arm/mach-omap1/leds-osk.c index 2c8bda847c18..3b29e59b0e6f 100644 --- a/arch/arm/mach-omap1/leds-osk.c +++ b/arch/arm/mach-omap1/leds-osk.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * | 3 | * |
4 | * LED driver for OSK, and optionally Mistral QVGA, boards | 4 | * LED driver for OSK, and optionally Mistral QVGA, boards |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/init.h> | 6 | #include <linux/init.h> |
8 | #include <linux/workqueue.h> | 7 | #include <linux/workqueue.h> |
9 | 8 | ||
diff --git a/arch/arm/mach-omap1/mux.c b/arch/arm/mach-omap1/mux.c index 10fe0b3efcac..fa74ef7af15f 100644 --- a/arch/arm/mach-omap1/mux.c +++ b/arch/arm/mach-omap1/mux.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <asm/system.h> | 27 | #include <asm/system.h> |
diff --git a/arch/arm/mach-omap1/serial.c b/arch/arm/mach-omap1/serial.c index 9b4cd698bec8..56319742aa1b 100644 --- a/arch/arm/mach-omap1/serial.c +++ b/arch/arm/mach-omap1/serial.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
diff --git a/arch/arm/mach-omap1/sleep.S b/arch/arm/mach-omap1/sleep.S index e58295e2d3b2..abef33d10f01 100644 --- a/arch/arm/mach-omap1/sleep.S +++ b/arch/arm/mach-omap1/sleep.S | |||
@@ -32,7 +32,6 @@ | |||
32 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 32 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
33 | */ | 33 | */ |
34 | 34 | ||
35 | #include <linux/config.h> | ||
36 | #include <linux/linkage.h> | 35 | #include <linux/linkage.h> |
37 | #include <asm/assembler.h> | 36 | #include <asm/assembler.h> |
38 | #include <asm/arch/io.h> | 37 | #include <asm/arch/io.h> |
diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c index 64c2d69c615c..a01f0efdae14 100644 --- a/arch/arm/mach-omap1/time.c +++ b/arch/arm/mach-omap1/time.c | |||
@@ -33,7 +33,6 @@ | |||
33 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 33 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
34 | */ | 34 | */ |
35 | 35 | ||
36 | #include <linux/config.h> | ||
37 | #include <linux/kernel.h> | 36 | #include <linux/kernel.h> |
38 | #include <linux/init.h> | 37 | #include <linux/init.h> |
39 | #include <linux/delay.h> | 38 | #include <linux/delay.h> |
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c index 6789dd4029a1..d1b648a4efbf 100644 --- a/arch/arm/mach-omap2/clock.c +++ b/arch/arm/mach-omap2/clock.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * it under the terms of the GNU General Public License version 2 as | 15 | * it under the terms of the GNU General Public License version 2 as |
16 | * published by the Free Software Foundation. | 16 | * published by the Free Software Foundation. |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/module.h> | 18 | #include <linux/module.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/device.h> | 20 | #include <linux/device.h> |
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 5139677e4266..aa4322451e8b 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * (at your option) any later version. | 9 | * (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 76187300f2b6..871ace4fccb8 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 68456b79a0a8..a0728c33e5d9 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index d7baff675cfe..3eed6a737bf8 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c | |||
@@ -12,7 +12,6 @@ | |||
12 | */ | 12 | */ |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/config.h> | ||
16 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
17 | #include <asm/hardware.h> | 16 | #include <asm/hardware.h> |
18 | #include <asm/mach/irq.h> | 17 | #include <asm/mach/irq.h> |
diff --git a/arch/arm/mach-omap2/memory.c b/arch/arm/mach-omap2/memory.c index 1d925d69fc35..85cbc2a2e663 100644 --- a/arch/arm/mach-omap2/memory.c +++ b/arch/arm/mach-omap2/memory.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * published by the Free Software Foundation. | 14 | * published by the Free Software Foundation. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/module.h> | 17 | #include <linux/module.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/device.h> | 19 | #include <linux/device.h> |
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index c2c482cd1cb7..60ef084faffd 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <asm/system.h> | 27 | #include <asm/system.h> |
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c index 8893479dc7e0..c2bf57ef6825 100644 --- a/arch/arm/mach-omap2/prcm.c +++ b/arch/arm/mach-omap2/prcm.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * it under the terms of the GNU General Public License version 2 as | 13 | * it under the terms of the GNU General Public License version 2 as |
14 | * published by the Free Software Foundation. | 14 | * published by the Free Software Foundation. |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <linux/clk.h> | 18 | #include <linux/clk.h> |
diff --git a/arch/arm/mach-omap2/sleep.S b/arch/arm/mach-omap2/sleep.S index 00299cbeb911..16247d557853 100644 --- a/arch/arm/mach-omap2/sleep.S +++ b/arch/arm/mach-omap2/sleep.S | |||
@@ -21,7 +21,6 @@ | |||
21 | * MA 02111-1307 USA | 21 | * MA 02111-1307 USA |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/linkage.h> | 24 | #include <linux/linkage.h> |
26 | #include <asm/assembler.h> | 25 | #include <asm/assembler.h> |
27 | #include <asm/arch/io.h> | 26 | #include <asm/arch/io.h> |
diff --git a/arch/arm/mach-omap2/sram-fn.S b/arch/arm/mach-omap2/sram-fn.S index d261e4ff4d9b..a5ef7f611da9 100644 --- a/arch/arm/mach-omap2/sram-fn.S +++ b/arch/arm/mach-omap2/sram-fn.S | |||
@@ -22,7 +22,6 @@ | |||
22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
23 | * MA 02111-1307 USA | 23 | * MA 02111-1307 USA |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/linkage.h> | 25 | #include <linux/linkage.h> |
27 | #include <asm/assembler.h> | 26 | #include <asm/assembler.h> |
28 | #include <asm/arch/io.h> | 27 | #include <asm/arch/io.h> |
diff --git a/arch/arm/mach-pxa/leds-idp.c b/arch/arm/mach-pxa/leds-idp.c index 5eba6ea0b0f7..38aa9270540e 100644 --- a/arch/arm/mach-pxa/leds-idp.c +++ b/arch/arm/mach-pxa/leds-idp.c | |||
@@ -12,7 +12,6 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | 16 | ||
18 | #include <asm/hardware.h> | 17 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-pxa/leds-lubbock.c b/arch/arm/mach-pxa/leds-lubbock.c index 05cf56059a0f..afbc6698e27c 100644 --- a/arch/arm/mach-pxa/leds-lubbock.c +++ b/arch/arm/mach-pxa/leds-lubbock.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * namespace collision. Mostly adapted the Mainstone version. | 11 | * namespace collision. Mostly adapted the Mainstone version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | 15 | ||
17 | #include <asm/hardware.h> | 16 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-pxa/leds-mainstone.c b/arch/arm/mach-pxa/leds-mainstone.c index c06d3d7a8dd4..065293eb0d82 100644 --- a/arch/arm/mach-pxa/leds-mainstone.c +++ b/arch/arm/mach-pxa/leds-mainstone.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | 14 | ||
16 | #include <asm/hardware.h> | 15 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-pxa/pm.c b/arch/arm/mach-pxa/pm.c index 852ea72d8c80..2112c414f0e2 100644 --- a/arch/arm/mach-pxa/pm.c +++ b/arch/arm/mach-pxa/pm.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * This program is free software; you can redistribute it and/or | 10 | * This program is free software; you can redistribute it and/or |
11 | * modify it under the terms of the GNU General Public License. | 11 | * modify it under the terms of the GNU General Public License. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/suspend.h> | 15 | #include <linux/suspend.h> |
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index 573a5758e781..c1f21739bf71 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * initialization stuff for PXA machines which can be overridden later if | 16 | * initialization stuff for PXA machines which can be overridden later if |
17 | * need be. | 17 | * need be. |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/module.h> | 19 | #include <linux/module.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index 3baa70819f24..74eeada1e2fc 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * it under the terms of the GNU General Public License version 2 as | 11 | * it under the terms of the GNU General Public License version 2 as |
12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/arm/mach-pxa/sleep.S b/arch/arm/mach-pxa/sleep.S index 0650bed3b96e..15874b360e51 100644 --- a/arch/arm/mach-pxa/sleep.S +++ b/arch/arm/mach-pxa/sleep.S | |||
@@ -11,7 +11,6 @@ | |||
11 | * modify it under the terms of the GNU General Public License. | 11 | * modify it under the terms of the GNU General Public License. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
16 | #include <asm/assembler.h> | 15 | #include <asm/assembler.h> |
17 | #include <asm/hardware.h> | 16 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-pxa/standby.S b/arch/arm/mach-pxa/standby.S index 6f6dbbd08021..d774430d02c0 100644 --- a/arch/arm/mach-pxa/standby.S +++ b/arch/arm/mach-pxa/standby.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/linkage.h> | 12 | #include <linux/linkage.h> |
14 | #include <asm/assembler.h> | 13 | #include <asm/assembler.h> |
15 | #include <asm/hardware.h> | 14 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c index b9b2057349eb..1ef85fcc6c06 100644 --- a/arch/arm/mach-pxa/time.c +++ b/arch/arm/mach-pxa/time.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c index d13270c5d7cd..eb09d3859d6d 100644 --- a/arch/arm/mach-realview/core.c +++ b/arch/arm/mach-realview/core.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | */ | 20 | */ |
21 | #include <linux/config.h> | ||
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
23 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
24 | #include <linux/dma-mapping.h> | 23 | #include <linux/dma-mapping.h> |
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 693fb1e396e0..84a959530fb6 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
25 | #include <linux/sysdev.h> | 24 | #include <linux/sysdev.h> |
diff --git a/arch/arm/mach-s3c2410/devs.h b/arch/arm/mach-s3c2410/devs.h index fa124ed920e0..726e2eaf8797 100644 --- a/arch/arm/mach-s3c2410/devs.h +++ b/arch/arm/mach-s3c2410/devs.h | |||
@@ -14,7 +14,6 @@ | |||
14 | * 27-Aug-2004 BJD Added timers 0 through 3 | 14 | * 27-Aug-2004 BJD Added timers 0 through 3 |
15 | * 10-Feb-2005 BJD Added camera from guillaume.gourat@nexvision.tv | 15 | * 10-Feb-2005 BJD Added camera from guillaume.gourat@nexvision.tv |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
19 | 18 | ||
20 | struct s3c24xx_uart_resources { | 19 | struct s3c24xx_uart_resources { |
diff --git a/arch/arm/mach-s3c2410/dma.c b/arch/arm/mach-s3c2410/dma.c index 4dbd8e758ea6..b0aaf4328732 100644 --- a/arch/arm/mach-s3c2410/dma.c +++ b/arch/arm/mach-s3c2410/dma.c | |||
@@ -31,7 +31,6 @@ | |||
31 | * possible DMA function | 31 | * possible DMA function |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <linux/config.h> | ||
35 | 34 | ||
36 | #ifdef CONFIG_S3C2410_DMA_DEBUG | 35 | #ifdef CONFIG_S3C2410_DMA_DEBUG |
37 | #define DEBUG | 36 | #define DEBUG |
diff --git a/arch/arm/mach-s3c2410/pm.c b/arch/arm/mach-s3c2410/pm.c index 43e9a550a203..a589fe76d915 100644 --- a/arch/arm/mach-s3c2410/pm.c +++ b/arch/arm/mach-s3c2410/pm.c | |||
@@ -29,7 +29,6 @@ | |||
29 | * 10-Mar-2005 LCVR Changed S3C2410_VA_UART to S3C24XX_VA_UART | 29 | * 10-Mar-2005 LCVR Changed S3C2410_VA_UART to S3C24XX_VA_UART |
30 | */ | 30 | */ |
31 | 31 | ||
32 | #include <linux/config.h> | ||
33 | #include <linux/init.h> | 32 | #include <linux/init.h> |
34 | #include <linux/suspend.h> | 33 | #include <linux/suspend.h> |
35 | #include <linux/errno.h> | 34 | #include <linux/errno.h> |
diff --git a/arch/arm/mach-s3c2410/sleep.S b/arch/arm/mach-s3c2410/sleep.S index dc27167f4d59..a7561a79fc82 100644 --- a/arch/arm/mach-s3c2410/sleep.S +++ b/arch/arm/mach-s3c2410/sleep.S | |||
@@ -24,7 +24,6 @@ | |||
24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/linkage.h> | 27 | #include <linux/linkage.h> |
29 | #include <asm/assembler.h> | 28 | #include <asm/assembler.h> |
30 | #include <asm/hardware.h> | 29 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-s3c2410/time.c b/arch/arm/mach-s3c2410/time.c index 9d7b799ea4a4..47387c5b9723 100644 --- a/arch/arm/mach-s3c2410/time.c +++ b/arch/arm/mach-s3c2410/time.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
23 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
24 | #include <linux/init.h> | 23 | #include <linux/init.h> |
diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c index c58f12ba7a93..be06d668a3c9 100644 --- a/arch/arm/mach-sa1100/assabet.c +++ b/arch/arm/mach-sa1100/assabet.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
diff --git a/arch/arm/mach-sa1100/cerf.c b/arch/arm/mach-sa1100/cerf.c index 8269a9ef9afe..e0f6d57b5065 100644 --- a/arch/arm/mach-sa1100/cerf.c +++ b/arch/arm/mach-sa1100/cerf.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Jan-2004 : Removed io map for flash [FB] | 10 | * Jan-2004 : Removed io map for flash [FB] |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/tty.h> | 15 | #include <linux/tty.h> |
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c index 676b5c5b75bb..a6bab50dab61 100644 --- a/arch/arm/mach-sa1100/collie.c +++ b/arch/arm/mach-sa1100/collie.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * 04-16-2001 Lineo Japan,Inc. ... | 17 | * 04-16-2001 Lineo Japan,Inc. ... |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
23 | #include <linux/tty.h> | 22 | #include <linux/tty.h> |
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c index 9ea71551fc04..4575f316e141 100644 --- a/arch/arm/mach-sa1100/generic.c +++ b/arch/arm/mach-sa1100/generic.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c index b04d92271020..e727ba87b9f2 100644 --- a/arch/arm/mach-sa1100/h3600.c +++ b/arch/arm/mach-sa1100/h3600.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * and abstracted EGPIO interface. | 19 | * and abstracted EGPIO interface. |
20 | * | 20 | * |
21 | */ | 21 | */ |
22 | #include <linux/config.h> | ||
23 | #include <linux/module.h> | 22 | #include <linux/module.h> |
24 | #include <linux/init.h> | 23 | #include <linux/init.h> |
25 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
diff --git a/arch/arm/mach-sa1100/leds-assabet.c b/arch/arm/mach-sa1100/leds-assabet.c index e9aa9dff211a..ee9788989875 100644 --- a/arch/arm/mach-sa1100/leds-assabet.c +++ b/arch/arm/mach-sa1100/leds-assabet.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * - Green - toggles state every 50 timer interrupts | 9 | * - Green - toggles state every 50 timer interrupts |
10 | * - Red - on if system is not idle | 10 | * - Red - on if system is not idle |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | 13 | ||
15 | #include <asm/hardware.h> | 14 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-sa1100/leds-badge4.c b/arch/arm/mach-sa1100/leds-badge4.c index 0a8f87bb6c4f..280929be972d 100644 --- a/arch/arm/mach-sa1100/leds-badge4.c +++ b/arch/arm/mach-sa1100/leds-badge4.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | 14 | ||
16 | #include <asm/hardware.h> | 15 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-sa1100/leds-cerf.c b/arch/arm/mach-sa1100/leds-cerf.c index f6635a2d0e83..f38eeddbef10 100644 --- a/arch/arm/mach-sa1100/leds-cerf.c +++ b/arch/arm/mach-sa1100/leds-cerf.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Author: ??? | 4 | * Author: ??? |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/init.h> | 6 | #include <linux/init.h> |
8 | 7 | ||
9 | #include <asm/hardware.h> | 8 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-sa1100/leds-hackkit.c b/arch/arm/mach-sa1100/leds-hackkit.c index 2e5fa14aa4eb..7e91cc90b5ae 100644 --- a/arch/arm/mach-sa1100/leds-hackkit.c +++ b/arch/arm/mach-sa1100/leds-hackkit.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * The HackKit has two leds (GPIO 22/23). The red led (gpio 22) is used | 9 | * The HackKit has two leds (GPIO 22/23). The red led (gpio 22) is used |
10 | * as cpu led, the green one is used as timer led. | 10 | * as cpu led, the green one is used as timer led. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | 13 | ||
15 | #include <asm/hardware.h> | 14 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-sa1100/leds-lart.c b/arch/arm/mach-sa1100/leds-lart.c index 187501490713..2d27d76cfc6b 100644 --- a/arch/arm/mach-sa1100/leds-lart.c +++ b/arch/arm/mach-sa1100/leds-lart.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * time, but in that case the timer events will still dictate the | 9 | * time, but in that case the timer events will still dictate the |
10 | * pace of the LED. | 10 | * pace of the LED. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | 13 | ||
15 | #include <asm/hardware.h> | 14 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-sa1100/leds-simpad.c b/arch/arm/mach-sa1100/leds-simpad.c index 6a27a2d32206..def090a87385 100644 --- a/arch/arm/mach-sa1100/leds-simpad.c +++ b/arch/arm/mach-sa1100/leds-simpad.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Author: Juergen Messerer <juergen.messerer@siemens.ch> | 4 | * Author: Juergen Messerer <juergen.messerer@siemens.ch> |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/init.h> | 6 | #include <linux/init.h> |
8 | 7 | ||
9 | #include <asm/hardware.h> | 8 | #include <asm/hardware.h> |
diff --git a/arch/arm/mach-sa1100/shannon.c b/arch/arm/mach-sa1100/shannon.c index 5aafe0b56992..8acab7b1e4c2 100644 --- a/arch/arm/mach-sa1100/shannon.c +++ b/arch/arm/mach-sa1100/shannon.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/arm/mach-sa1100/shannon.c | 2 | * linux/arch/arm/mach-sa1100/shannon.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/init.h> | 5 | #include <linux/init.h> |
7 | #include <linux/device.h> | 6 | #include <linux/device.h> |
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c index d2c23b2c34d1..a9ae1b581aa6 100644 --- a/arch/arm/mach-sa1100/simpad.c +++ b/arch/arm/mach-sa1100/simpad.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/arm/mach-sa1100/simpad.c | 2 | * linux/arch/arm/mach-sa1100/simpad.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | 5 | #include <linux/module.h> |
7 | #include <linux/init.h> | 6 | #include <linux/init.h> |
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
diff --git a/arch/arm/mach-shark/dma.c b/arch/arm/mach-shark/dma.c index 835989a02918..6774b8d5d13d 100644 --- a/arch/arm/mach-shark/dma.c +++ b/arch/arm/mach-shark/dma.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1998 Phil Blundell | 8 | * Copyright (C) 1998 Phil Blundell |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | 12 | ||
14 | #include <asm/dma.h> | 13 | #include <asm/dma.h> |
diff --git a/arch/arm/mach-shark/leds.c b/arch/arm/mach-shark/leds.c index 7bdeb70a0c10..7cd86d357a3c 100644 --- a/arch/arm/mach-shark/leds.c +++ b/arch/arm/mach-shark/leds.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * | 15 | * |
16 | * Changelog: | 16 | * Changelog: |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/module.h> | 19 | #include <linux/module.h> |
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c index cebd48a3dae4..08de8490fb69 100644 --- a/arch/arm/mach-versatile/core.c +++ b/arch/arm/mach-versatile/core.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | */ | 20 | */ |
21 | #include <linux/config.h> | ||
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
23 | #include <linux/device.h> | 22 | #include <linux/device.h> |
24 | #include <linux/dma-mapping.h> | 23 | #include <linux/dma-mapping.h> |
diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c index 722fbabc9cfb..41b370090b60 100644 --- a/arch/arm/mach-versatile/pci.c +++ b/arch/arm/mach-versatile/pci.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * 14/04/2005 Initial version, colin.king@philips.com | 14 | * 14/04/2005 Initial version, colin.king@philips.com |
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/pci.h> | 18 | #include <linux/pci.h> |
20 | #include <linux/ptrace.h> | 19 | #include <linux/ptrace.h> |
diff --git a/arch/arm/mach-versatile/versatile_ab.c b/arch/arm/mach-versatile/versatile_ab.c index 1eb596782078..b257ef78ef45 100644 --- a/arch/arm/mach-versatile/versatile_ab.c +++ b/arch/arm/mach-versatile/versatile_ab.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/device.h> | 23 | #include <linux/device.h> |
25 | #include <linux/sysdev.h> | 24 | #include <linux/sysdev.h> |
diff --git a/arch/arm/mach-versatile/versatile_pb.c b/arch/arm/mach-versatile/versatile_pb.c index f17ab4fb548a..503725b166fc 100644 --- a/arch/arm/mach-versatile/versatile_pb.c +++ b/arch/arm/mach-versatile/versatile_pb.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/device.h> | 23 | #include <linux/device.h> |
25 | #include <linux/sysdev.h> | 24 | #include <linux/sysdev.h> |
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c index 705c98921c37..e0d21bbbe7d7 100644 --- a/arch/arm/mm/alignment.c +++ b/arch/arm/mm/alignment.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * it under the terms of the GNU General Public License version 2 as | 11 | * it under the terms of the GNU General Public License version 2 as |
12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/compiler.h> | 14 | #include <linux/compiler.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/errno.h> | 16 | #include <linux/errno.h> |
diff --git a/arch/arm/mm/cache-v4wb.S b/arch/arm/mm/cache-v4wb.S index 54e3c5bb5186..2ebc1b3bf856 100644 --- a/arch/arm/mm/cache-v4wb.S +++ b/arch/arm/mm/cache-v4wb.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <asm/memory.h> | 12 | #include <asm/memory.h> |
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index 4a884baf3b9c..c5e0622c7765 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * it under the terms of the GNU General Public License version 2 as | 8 | * it under the terms of the GNU General Public License version 2 as |
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/signal.h> | 12 | #include <linux/signal.h> |
14 | #include <linux/ptrace.h> | 13 | #include <linux/ptrace.h> |
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 989fd681c822..fe3f7f625008 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
13 | #include <linux/ptrace.h> | 12 | #include <linux/ptrace.h> |
diff --git a/arch/arm/mm/mm-armv.c b/arch/arm/mm/mm-armv.c index d06440cc4e8f..38769f5862bc 100644 --- a/arch/arm/mm/mm-armv.c +++ b/arch/arm/mm/mm-armv.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | * Page table sludge for ARM v3 and v4 processor architectures. | 10 | * Page table sludge for ARM v3 and v4 processor architectures. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
@@ -227,7 +226,7 @@ void free_pgd_slow(pgd_t *pgd) | |||
227 | 226 | ||
228 | pte = pmd_page(*pmd); | 227 | pte = pmd_page(*pmd); |
229 | pmd_clear(pmd); | 228 | pmd_clear(pmd); |
230 | dec_page_state(nr_page_table_pages); | 229 | dec_zone_page_state(virt_to_page((unsigned long *)pgd), NR_PAGETABLE); |
231 | pte_lock_deinit(pte); | 230 | pte_lock_deinit(pte); |
232 | pte_free(pte); | 231 | pte_free(pte); |
233 | pmd_free(pmd); | 232 | pmd_free(pmd); |
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 3de7f84b53c2..29e54807c5bc 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c | |||
@@ -1,7 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/mm/mmap.c | 2 | * linux/arch/arm/mm/mmap.c |
3 | */ | 3 | */ |
4 | #include <linux/config.h> | ||
5 | #include <linux/fs.h> | 4 | #include <linux/fs.h> |
6 | #include <linux/mm.h> | 5 | #include <linux/mm.h> |
7 | #include <linux/mman.h> | 6 | #include <linux/mman.h> |
diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S index 6c731a4f70c9..700297ae4a55 100644 --- a/arch/arm/mm/proc-arm1020.S +++ b/arch/arm/mm/proc-arm1020.S | |||
@@ -26,7 +26,6 @@ | |||
26 | * CONFIG_CPU_ARM1020_CPU_IDLE -> nohlt | 26 | * CONFIG_CPU_ARM1020_CPU_IDLE -> nohlt |
27 | */ | 27 | */ |
28 | #include <linux/linkage.h> | 28 | #include <linux/linkage.h> |
29 | #include <linux/config.h> | ||
30 | #include <linux/init.h> | 29 | #include <linux/init.h> |
31 | #include <asm/assembler.h> | 30 | #include <asm/assembler.h> |
32 | #include <asm/asm-offsets.h> | 31 | #include <asm/asm-offsets.h> |
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index 269f485d092d..0c33a5ed5a61 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S | |||
@@ -26,7 +26,6 @@ | |||
26 | * CONFIG_CPU_ARM1020_CPU_IDLE -> nohlt | 26 | * CONFIG_CPU_ARM1020_CPU_IDLE -> nohlt |
27 | */ | 27 | */ |
28 | #include <linux/linkage.h> | 28 | #include <linux/linkage.h> |
29 | #include <linux/config.h> | ||
30 | #include <linux/init.h> | 29 | #include <linux/init.h> |
31 | #include <asm/assembler.h> | 30 | #include <asm/assembler.h> |
32 | #include <asm/asm-offsets.h> | 31 | #include <asm/asm-offsets.h> |
diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S index 0643bd464969..566a55653072 100644 --- a/arch/arm/mm/proc-arm1022.S +++ b/arch/arm/mm/proc-arm1022.S | |||
@@ -15,7 +15,6 @@ | |||
15 | * functions on the ARM1022E. | 15 | * functions on the ARM1022E. |
16 | */ | 16 | */ |
17 | #include <linux/linkage.h> | 17 | #include <linux/linkage.h> |
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <asm/assembler.h> | 19 | #include <asm/assembler.h> |
21 | #include <asm/asm-offsets.h> | 20 | #include <asm/asm-offsets.h> |
diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S index 0668bfbac67b..6ea76321d0df 100644 --- a/arch/arm/mm/proc-arm1026.S +++ b/arch/arm/mm/proc-arm1026.S | |||
@@ -15,7 +15,6 @@ | |||
15 | * functions on the ARM1026EJ-S. | 15 | * functions on the ARM1026EJ-S. |
16 | */ | 16 | */ |
17 | #include <linux/linkage.h> | 17 | #include <linux/linkage.h> |
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <asm/assembler.h> | 19 | #include <asm/assembler.h> |
21 | #include <asm/asm-offsets.h> | 20 | #include <asm/asm-offsets.h> |
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index 45292f46c3b2..4adb46b3a4e0 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S | |||
@@ -26,7 +26,6 @@ | |||
26 | * CONFIG_CPU_ARM920_CPU_IDLE -> nohlt | 26 | * CONFIG_CPU_ARM920_CPU_IDLE -> nohlt |
27 | */ | 27 | */ |
28 | #include <linux/linkage.h> | 28 | #include <linux/linkage.h> |
29 | #include <linux/config.h> | ||
30 | #include <linux/init.h> | 29 | #include <linux/init.h> |
31 | #include <asm/assembler.h> | 30 | #include <asm/assembler.h> |
32 | #include <asm/pgtable-hwdef.h> | 31 | #include <asm/pgtable-hwdef.h> |
diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S index 3c57519494d7..571f082f0247 100644 --- a/arch/arm/mm/proc-arm922.S +++ b/arch/arm/mm/proc-arm922.S | |||
@@ -27,7 +27,6 @@ | |||
27 | * CONFIG_CPU_ARM922_CPU_IDLE -> nohlt | 27 | * CONFIG_CPU_ARM922_CPU_IDLE -> nohlt |
28 | */ | 28 | */ |
29 | #include <linux/linkage.h> | 29 | #include <linux/linkage.h> |
30 | #include <linux/config.h> | ||
31 | #include <linux/init.h> | 30 | #include <linux/init.h> |
32 | #include <asm/assembler.h> | 31 | #include <asm/assembler.h> |
33 | #include <asm/pgtable-hwdef.h> | 32 | #include <asm/pgtable-hwdef.h> |
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S index 66d5a32ba0f5..ad15f8503d51 100644 --- a/arch/arm/mm/proc-arm925.S +++ b/arch/arm/mm/proc-arm925.S | |||
@@ -50,7 +50,6 @@ | |||
50 | */ | 50 | */ |
51 | 51 | ||
52 | #include <linux/linkage.h> | 52 | #include <linux/linkage.h> |
53 | #include <linux/config.h> | ||
54 | #include <linux/init.h> | 53 | #include <linux/init.h> |
55 | #include <asm/assembler.h> | 54 | #include <asm/assembler.h> |
56 | #include <asm/pgtable-hwdef.h> | 55 | #include <asm/pgtable-hwdef.h> |
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index 189820e25184..1e89d4080474 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S | |||
@@ -26,7 +26,6 @@ | |||
26 | * CONFIG_CPU_ARM926_CPU_IDLE -> nohlt | 26 | * CONFIG_CPU_ARM926_CPU_IDLE -> nohlt |
27 | */ | 27 | */ |
28 | #include <linux/linkage.h> | 28 | #include <linux/linkage.h> |
29 | #include <linux/config.h> | ||
30 | #include <linux/init.h> | 29 | #include <linux/init.h> |
31 | #include <asm/assembler.h> | 30 | #include <asm/assembler.h> |
32 | #include <asm/pgtable-hwdef.h> | 31 | #include <asm/pgtable-hwdef.h> |
diff --git a/arch/arm/nwfpe/fpa11.c b/arch/arm/nwfpe/fpa11.c index 7b3d74d73c80..cc60acde84d9 100644 --- a/arch/arm/nwfpe/fpa11.c +++ b/arch/arm/nwfpe/fpa11.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include "fpmodule.h" | 26 | #include "fpmodule.h" |
27 | #include "fpmodule.inl" | 27 | #include "fpmodule.inl" |
28 | 28 | ||
29 | #include <linux/config.h> | ||
30 | #include <linux/compiler.h> | 29 | #include <linux/compiler.h> |
31 | #include <linux/string.h> | 30 | #include <linux/string.h> |
32 | #include <asm/system.h> | 31 | #include <asm/system.h> |
diff --git a/arch/arm/nwfpe/fpa11.h b/arch/arm/nwfpe/fpa11.h index 28cd79a451d3..4a4d02c09112 100644 --- a/arch/arm/nwfpe/fpa11.h +++ b/arch/arm/nwfpe/fpa11.h | |||
@@ -31,7 +31,6 @@ | |||
31 | */ | 31 | */ |
32 | #define GET_USERREG() ((struct pt_regs *)(THREAD_START_SP + (unsigned long)current_thread_info()) - 1) | 32 | #define GET_USERREG() ((struct pt_regs *)(THREAD_START_SP + (unsigned long)current_thread_info()) - 1) |
33 | 33 | ||
34 | #include <linux/config.h> | ||
35 | #include <linux/thread_info.h> | 34 | #include <linux/thread_info.h> |
36 | 35 | ||
37 | /* includes */ | 36 | /* includes */ |
diff --git a/arch/arm/nwfpe/fpa11_cpdo.c b/arch/arm/nwfpe/fpa11_cpdo.c index 4a31dfd94068..2cebb1529607 100644 --- a/arch/arm/nwfpe/fpa11_cpdo.c +++ b/arch/arm/nwfpe/fpa11_cpdo.c | |||
@@ -20,7 +20,6 @@ | |||
20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include "fpa11.h" | 23 | #include "fpa11.h" |
25 | #include "fpopcode.h" | 24 | #include "fpopcode.h" |
26 | 25 | ||
diff --git a/arch/arm/nwfpe/fpa11_cpdt.c b/arch/arm/nwfpe/fpa11_cpdt.c index 32859fa8dcfc..79f8e67cc6c1 100644 --- a/arch/arm/nwfpe/fpa11_cpdt.c +++ b/arch/arm/nwfpe/fpa11_cpdt.c | |||
@@ -20,7 +20,6 @@ | |||
20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include "fpa11.h" | 23 | #include "fpa11.h" |
25 | #include "softfloat.h" | 24 | #include "softfloat.h" |
26 | #include "fpopcode.h" | 25 | #include "fpopcode.h" |
diff --git a/arch/arm/nwfpe/fpa11_cprt.c b/arch/arm/nwfpe/fpa11_cprt.c index 7c67023655e4..9843dc533047 100644 --- a/arch/arm/nwfpe/fpa11_cprt.c +++ b/arch/arm/nwfpe/fpa11_cprt.c | |||
@@ -20,7 +20,6 @@ | |||
20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include "fpa11.h" | 23 | #include "fpa11.h" |
25 | #include "fpopcode.h" | 24 | #include "fpopcode.h" |
26 | #include "fpa11.inl" | 25 | #include "fpa11.inl" |
diff --git a/arch/arm/nwfpe/fpmodule.c b/arch/arm/nwfpe/fpmodule.c index 7d977d23f026..4c0ab50f399a 100644 --- a/arch/arm/nwfpe/fpmodule.c +++ b/arch/arm/nwfpe/fpmodule.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include "fpa11.h" | 24 | #include "fpa11.h" |
25 | 25 | ||
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/config.h> | ||
28 | 27 | ||
29 | /* XXX */ | 28 | /* XXX */ |
30 | #include <linux/errno.h> | 29 | #include <linux/errno.h> |
diff --git a/arch/arm/nwfpe/fpopcode.c b/arch/arm/nwfpe/fpopcode.c index 67ff2ab08ea0..922b81107585 100644 --- a/arch/arm/nwfpe/fpopcode.c +++ b/arch/arm/nwfpe/fpopcode.c | |||
@@ -19,7 +19,6 @@ | |||
19 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 19 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include "fpa11.h" | 22 | #include "fpa11.h" |
24 | #include "softfloat.h" | 23 | #include "softfloat.h" |
25 | #include "fpopcode.h" | 24 | #include "fpopcode.h" |
diff --git a/arch/arm/nwfpe/fpopcode.h b/arch/arm/nwfpe/fpopcode.h index 6528e081c83f..ec78e3517fc9 100644 --- a/arch/arm/nwfpe/fpopcode.h +++ b/arch/arm/nwfpe/fpopcode.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #ifndef __FPOPCODE_H__ | 23 | #ifndef __FPOPCODE_H__ |
24 | #define __FPOPCODE_H__ | 24 | #define __FPOPCODE_H__ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | 26 | ||
28 | /* | 27 | /* |
29 | ARM Floating Point Instruction Classes | 28 | ARM Floating Point Instruction Classes |
diff --git a/arch/arm/nwfpe/softfloat.h b/arch/arm/nwfpe/softfloat.h index 978c699673c6..e1125bc39ee4 100644 --- a/arch/arm/nwfpe/softfloat.h +++ b/arch/arm/nwfpe/softfloat.h | |||
@@ -32,7 +32,6 @@ this code that are retained. | |||
32 | #ifndef __SOFTFLOAT_H__ | 32 | #ifndef __SOFTFLOAT_H__ |
33 | #define __SOFTFLOAT_H__ | 33 | #define __SOFTFLOAT_H__ |
34 | 34 | ||
35 | #include <linux/config.h> | ||
36 | 35 | ||
37 | /* | 36 | /* |
38 | ------------------------------------------------------------------------------- | 37 | ------------------------------------------------------------------------------- |
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c index dcd9d81201fa..7f45c7c3e673 100644 --- a/arch/arm/plat-omap/clock.c +++ b/arch/arm/plat-omap/clock.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | #include <linux/version.h> | 13 | #include <linux/version.h> |
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index adffc5a859ee..57b7b93674a4 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c index 8bff56673831..1812f237d12f 100644 --- a/arch/arm/plat-omap/devices.c +++ b/arch/arm/plat-omap/devices.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * (at your option) any later version. | 9 | * (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/plat-omap/fb.c index 305e9b990b71..56acb8720f78 100644 --- a/arch/arm/plat-omap/fb.c +++ b/arch/arm/plat-omap/fb.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/kernel.h> | 2 | #include <linux/kernel.h> |
4 | #include <linux/init.h> | 3 | #include <linux/init.h> |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index e75a2ca70ba1..ae08eeec7aad 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
diff --git a/arch/arm/plat-omap/mux.c b/arch/arm/plat-omap/mux.c index 8c1c016aa689..042105ac30b8 100644 --- a/arch/arm/plat-omap/mux.c +++ b/arch/arm/plat-omap/mux.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
diff --git a/arch/arm/plat-omap/ocpi.c b/arch/arm/plat-omap/ocpi.c index 37792d43738b..b5d307026c82 100644 --- a/arch/arm/plat-omap/ocpi.c +++ b/arch/arm/plat-omap/ocpi.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/module.h> | 26 | #include <linux/module.h> |
28 | #include <linux/types.h> | 27 | #include <linux/types.h> |
29 | #include <linux/errno.h> | 28 | #include <linux/errno.h> |
diff --git a/arch/arm/plat-omap/sram-fn.S b/arch/arm/plat-omap/sram-fn.S index 66414cc8e6e3..85cffe2c6266 100644 --- a/arch/arm/plat-omap/sram-fn.S +++ b/arch/arm/plat-omap/sram-fn.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/linkage.h> | 11 | #include <linux/linkage.h> |
13 | #include <asm/assembler.h> | 12 | #include <asm/assembler.h> |
14 | #include <asm/arch/io.h> | 13 | #include <asm/arch/io.h> |
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c index aebd06faf2cf..e75718301b0f 100644 --- a/arch/arm/plat-omap/sram.c +++ b/arch/arm/plat-omap/sram.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/arm/plat-omap/timer32k.c b/arch/arm/plat-omap/timer32k.c index ea9f3732630b..ddf4360dea72 100644 --- a/arch/arm/plat-omap/timer32k.c +++ b/arch/arm/plat-omap/timer32k.c | |||
@@ -34,7 +34,6 @@ | |||
34 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 34 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
35 | */ | 35 | */ |
36 | 36 | ||
37 | #include <linux/config.h> | ||
38 | #include <linux/kernel.h> | 37 | #include <linux/kernel.h> |
39 | #include <linux/init.h> | 38 | #include <linux/init.h> |
40 | #include <linux/delay.h> | 39 | #include <linux/delay.h> |
diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c index 00afc7a8c2ab..9b815327b6a5 100644 --- a/arch/arm/plat-omap/usb.c +++ b/arch/arm/plat-omap/usb.c | |||
@@ -20,7 +20,6 @@ | |||
20 | 20 | ||
21 | #undef DEBUG | 21 | #undef DEBUG |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/module.h> | 23 | #include <linux/module.h> |
25 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
26 | #include <linux/types.h> | 25 | #include <linux/types.h> |
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index 2476f4c2e760..9d265d5e748c 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/config.h> | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/signal.h> | 14 | #include <linux/signal.h> |
diff --git a/arch/arm26/Kconfig b/arch/arm26/Kconfig index cf4ebf4c274d..c14fe918bc4c 100644 --- a/arch/arm26/Kconfig +++ b/arch/arm26/Kconfig | |||
@@ -79,7 +79,7 @@ config ARCH_A5K | |||
79 | bool "A5000" | 79 | bool "A5000" |
80 | select ARCH_MAY_HAVE_PC_FDC | 80 | select ARCH_MAY_HAVE_PC_FDC |
81 | help | 81 | help |
82 | Say Y here to to support the Acorn A5000. | 82 | Say Y here to support the Acorn A5000. |
83 | 83 | ||
84 | Linux can support the | 84 | Linux can support the |
85 | internal IDE disk and CD-ROM interface, serial and parallel port, | 85 | internal IDE disk and CD-ROM interface, serial and parallel port, |
@@ -129,7 +129,7 @@ config ZBOOT_ROM_BSS | |||
129 | config XIP_KERNEL | 129 | config XIP_KERNEL |
130 | bool "Execute In Place (XIP) kernel image" | 130 | bool "Execute In Place (XIP) kernel image" |
131 | help | 131 | help |
132 | Select this option to create a kernel that can be programed into | 132 | Select this option to create a kernel that can be programmed into |
133 | the OS ROMs. | 133 | the OS ROMs. |
134 | 134 | ||
135 | comment "At least one math emulation must be selected" | 135 | comment "At least one math emulation must be selected" |
@@ -140,7 +140,7 @@ config FPE_NWFPE | |||
140 | Say Y to include the NWFPE floating point emulator in the kernel. | 140 | Say Y to include the NWFPE floating point emulator in the kernel. |
141 | This is necessary to run most binaries. Linux does not currently | 141 | This is necessary to run most binaries. Linux does not currently |
142 | support floating point hardware so you need to say Y here even if | 142 | support floating point hardware so you need to say Y here even if |
143 | your machine has an FPA or floating point co-processor podule. | 143 | your machine has an FPA or floating point co-processor module. |
144 | 144 | ||
145 | It is also possible to say M to build the emulator as a module | 145 | It is also possible to say M to build the emulator as a module |
146 | (nwfpe) or indeed to leave it out altogether. However, unless you | 146 | (nwfpe) or indeed to leave it out altogether. However, unless you |
diff --git a/arch/arm26/boot/compressed/head.S b/arch/arm26/boot/compressed/head.S index 0307804a6070..2a2cda36d83b 100644 --- a/arch/arm26/boot/compressed/head.S +++ b/arch/arm26/boot/compressed/head.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
12 | 11 | ||
13 | /* | 12 | /* |
diff --git a/arch/arm26/kernel/armksyms.c b/arch/arm26/kernel/armksyms.c index 9d66c27f2724..07907b6ecb63 100644 --- a/arch/arm26/kernel/armksyms.c +++ b/arch/arm26/kernel/armksyms.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/module.h> | 10 | #include <linux/module.h> |
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/user.h> | 12 | #include <linux/user.h> |
14 | #include <linux/string.h> | 13 | #include <linux/string.h> |
diff --git a/arch/arm26/kernel/asm-offsets.c b/arch/arm26/kernel/asm-offsets.c index ac682d5fd039..76d9d7d489a8 100644 --- a/arch/arm26/kernel/asm-offsets.c +++ b/arch/arm26/kernel/asm-offsets.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
17 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
18 | 17 | ||
diff --git a/arch/arm26/kernel/compat.c b/arch/arm26/kernel/compat.c index db0310db8998..21e966ff0aa7 100644 --- a/arch/arm26/kernel/compat.c +++ b/arch/arm26/kernel/compat.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * the kernel for 5 years from now (2001). This will allow boot loaders | 16 | * the kernel for 5 years from now (2001). This will allow boot loaders |
17 | * to convert to the new struct tag way. | 17 | * to convert to the new struct tag way. |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/types.h> | 19 | #include <linux/types.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/string.h> | 21 | #include <linux/string.h> |
diff --git a/arch/arm26/kernel/ecard.c b/arch/arm26/kernel/ecard.c index f2278aadac8a..047d0a408b9d 100644 --- a/arch/arm26/kernel/ecard.c +++ b/arch/arm26/kernel/ecard.c | |||
@@ -24,7 +24,6 @@ | |||
24 | */ | 24 | */ |
25 | #define ECARD_C | 25 | #define ECARD_C |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/module.h> | 27 | #include <linux/module.h> |
29 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
30 | #include <linux/types.h> | 29 | #include <linux/types.h> |
diff --git a/arch/arm26/kernel/fiq.c b/arch/arm26/kernel/fiq.c index a24272b61f30..c4776c96be6b 100644 --- a/arch/arm26/kernel/fiq.c +++ b/arch/arm26/kernel/fiq.c | |||
@@ -36,7 +36,6 @@ | |||
36 | * - enables FIQ. | 36 | * - enables FIQ. |
37 | * 6. Goto 3 | 37 | * 6. Goto 3 |
38 | */ | 38 | */ |
39 | #include <linux/config.h> | ||
40 | #include <linux/module.h> | 39 | #include <linux/module.h> |
41 | #include <linux/mm.h> | 40 | #include <linux/mm.h> |
42 | #include <linux/mman.h> | 41 | #include <linux/mman.h> |
diff --git a/arch/arm26/kernel/head.S b/arch/arm26/kernel/head.S index 8bfc62539ba6..93575e0e58fe 100644 --- a/arch/arm26/kernel/head.S +++ b/arch/arm26/kernel/head.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | * 26-bit kernel startup code | 11 | * 26-bit kernel startup code |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/mach-types.h> | 14 | #include <asm/mach-types.h> |
16 | 15 | ||
diff --git a/arch/arm26/kernel/irq.c b/arch/arm26/kernel/irq.c index 0934e6fba606..d87d68b77d66 100644 --- a/arch/arm26/kernel/irq.c +++ b/arch/arm26/kernel/irq.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * IRQ's are in fact implemented a bit like signal handlers for the kernel. | 18 | * IRQ's are in fact implemented a bit like signal handlers for the kernel. |
19 | * Naturally it's not a 1:1 relation, but there are similarities. | 19 | * Naturally it's not a 1:1 relation, but there are similarities. |
20 | */ | 20 | */ |
21 | #include <linux/config.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/ptrace.h> | 22 | #include <linux/ptrace.h> |
24 | #include <linux/kernel_stat.h> | 23 | #include <linux/kernel_stat.h> |
@@ -191,7 +190,7 @@ __do_irq(unsigned int irq, struct irqaction *action, struct pt_regs *regs) | |||
191 | int ret; | 190 | int ret; |
192 | 191 | ||
193 | spin_unlock(&irq_controller_lock); | 192 | spin_unlock(&irq_controller_lock); |
194 | if (!(action->flags & SA_INTERRUPT)) | 193 | if (!(action->flags & IRQF_DISABLED)) |
195 | local_irq_enable(); | 194 | local_irq_enable(); |
196 | 195 | ||
197 | status = 0; | 196 | status = 0; |
@@ -202,7 +201,7 @@ __do_irq(unsigned int irq, struct irqaction *action, struct pt_regs *regs) | |||
202 | action = action->next; | 201 | action = action->next; |
203 | } while (action); | 202 | } while (action); |
204 | 203 | ||
205 | if (status & SA_SAMPLE_RANDOM) | 204 | if (status & IRQF_SAMPLE_RANDOM) |
206 | add_interrupt_randomness(irq); | 205 | add_interrupt_randomness(irq); |
207 | 206 | ||
208 | spin_lock_irq(&irq_controller_lock); | 207 | spin_lock_irq(&irq_controller_lock); |
@@ -452,7 +451,7 @@ int setup_irq(unsigned int irq, struct irqaction *new) | |||
452 | * so we have to be careful not to interfere with a | 451 | * so we have to be careful not to interfere with a |
453 | * running system. | 452 | * running system. |
454 | */ | 453 | */ |
455 | if (new->flags & SA_SAMPLE_RANDOM) { | 454 | if (new->flags & IRQF_SAMPLE_RANDOM) { |
456 | /* | 455 | /* |
457 | * This function might sleep, we want to call it first, | 456 | * This function might sleep, we want to call it first, |
458 | * outside of the atomic block. | 457 | * outside of the atomic block. |
@@ -472,7 +471,7 @@ int setup_irq(unsigned int irq, struct irqaction *new) | |||
472 | p = &desc->action; | 471 | p = &desc->action; |
473 | if ((old = *p) != NULL) { | 472 | if ((old = *p) != NULL) { |
474 | /* Can't share interrupts unless both agree to */ | 473 | /* Can't share interrupts unless both agree to */ |
475 | if (!(old->flags & new->flags & SA_SHIRQ)) { | 474 | if (!(old->flags & new->flags & IRQF_SHARED)) { |
476 | spin_unlock_irqrestore(&irq_controller_lock, flags); | 475 | spin_unlock_irqrestore(&irq_controller_lock, flags); |
477 | return -EBUSY; | 476 | return -EBUSY; |
478 | } | 477 | } |
@@ -527,11 +526,11 @@ int setup_irq(unsigned int irq, struct irqaction *new) | |||
527 | * | 526 | * |
528 | * Flags: | 527 | * Flags: |
529 | * | 528 | * |
530 | * SA_SHIRQ Interrupt is shared | 529 | * IRQF_SHARED Interrupt is shared |
531 | * | 530 | * |
532 | * SA_INTERRUPT Disable local interrupts while processing | 531 | * IRQF_DISABLED Disable local interrupts while processing |
533 | * | 532 | * |
534 | * SA_SAMPLE_RANDOM The interrupt can be used for entropy | 533 | * IRQF_SAMPLE_RANDOM The interrupt can be used for entropy |
535 | * | 534 | * |
536 | */ | 535 | */ |
537 | 536 | ||
@@ -543,7 +542,7 @@ int request_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_ | |||
543 | struct irqaction *action; | 542 | struct irqaction *action; |
544 | 543 | ||
545 | if (irq >= NR_IRQS || !irq_desc[irq].valid || !handler || | 544 | if (irq >= NR_IRQS || !irq_desc[irq].valid || !handler || |
546 | (irq_flags & SA_SHIRQ && !dev_id)) | 545 | (irq_flags & IRQF_SHARED && !dev_id)) |
547 | return -EINVAL; | 546 | return -EINVAL; |
548 | 547 | ||
549 | action = (struct irqaction *)kmalloc(sizeof(struct irqaction), GFP_KERNEL); | 548 | action = (struct irqaction *)kmalloc(sizeof(struct irqaction), GFP_KERNEL); |
diff --git a/arch/arm26/kernel/process.c b/arch/arm26/kernel/process.c index 386305659171..dcd81e62ff4e 100644 --- a/arch/arm26/kernel/process.c +++ b/arch/arm26/kernel/process.c | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | #include <stdarg.h> | 12 | #include <stdarg.h> |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
diff --git a/arch/arm26/kernel/ptrace.c b/arch/arm26/kernel/ptrace.c index 282e24d79328..9343889b27fe 100644 --- a/arch/arm26/kernel/ptrace.c +++ b/arch/arm26/kernel/ptrace.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
diff --git a/arch/arm26/kernel/semaphore.c b/arch/arm26/kernel/semaphore.c index 3023a53431ff..5447a06db3fa 100644 --- a/arch/arm26/kernel/semaphore.c +++ b/arch/arm26/kernel/semaphore.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * published by the Free Software Foundation. | 13 | * published by the Free Software Foundation. |
14 | */ | 14 | */ |
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/config.h> | ||
17 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
18 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
diff --git a/arch/arm26/kernel/setup.c b/arch/arm26/kernel/setup.c index 4eb329e3828a..843c29fe9af5 100644 --- a/arch/arm26/kernel/setup.c +++ b/arch/arm26/kernel/setup.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * it under the terms of the GNU General Public License version 2 as | 8 | * it under the terms of the GNU General Public License version 2 as |
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/ioport.h> | 13 | #include <linux/ioport.h> |
diff --git a/arch/arm26/kernel/signal.c b/arch/arm26/kernel/signal.c index 2a48c12100c0..6a8ef8da6dab 100644 --- a/arch/arm26/kernel/signal.c +++ b/arch/arm26/kernel/signal.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
16 | #include <linux/smp.h> | 15 | #include <linux/smp.h> |
diff --git a/arch/arm26/kernel/time.c b/arch/arm26/kernel/time.c index 335525339ad6..db63d75d0715 100644 --- a/arch/arm26/kernel/time.c +++ b/arch/arm26/kernel/time.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * "A Kernel Model for Precision Timekeeping" by Dave Mills | 18 | * "A Kernel Model for Precision Timekeeping" by Dave Mills |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
24 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
@@ -206,7 +205,7 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
206 | 205 | ||
207 | static struct irqaction timer_irq = { | 206 | static struct irqaction timer_irq = { |
208 | .name = "timer", | 207 | .name = "timer", |
209 | .flags = SA_INTERRUPT, | 208 | .flags = IRQF_DISABLED, |
210 | .handler = timer_interrupt, | 209 | .handler = timer_interrupt, |
211 | }; | 210 | }; |
212 | 211 | ||
diff --git a/arch/arm26/kernel/traps.c b/arch/arm26/kernel/traps.c index a79de041b50e..d594fb59e945 100644 --- a/arch/arm26/kernel/traps.c +++ b/arch/arm26/kernel/traps.c | |||
@@ -15,7 +15,6 @@ | |||
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/config.h> | ||
19 | #include <linux/types.h> | 18 | #include <linux/types.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/signal.h> | 20 | #include <linux/signal.h> |
diff --git a/arch/arm26/kernel/vmlinux.lds.S b/arch/arm26/kernel/vmlinux.lds.S index 811a69048010..1fa39f02e07c 100644 --- a/arch/arm26/kernel/vmlinux.lds.S +++ b/arch/arm26/kernel/vmlinux.lds.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | #ifdef CONFIG_XIP_KERNEL | 2 | #ifdef CONFIG_XIP_KERNEL |
4 | 3 | ||
diff --git a/arch/arm26/lib/backtrace.S b/arch/arm26/lib/backtrace.S index d793fe4339fc..e27feb1e891d 100644 --- a/arch/arm26/lib/backtrace.S +++ b/arch/arm26/lib/backtrace.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
12 | #include <asm/assembler.h> | 11 | #include <asm/assembler.h> |
13 | .text | 12 | .text |
diff --git a/arch/arm26/lib/csumpartialcopyuser.S b/arch/arm26/lib/csumpartialcopyuser.S index 261dd154c1a4..a98eea74305a 100644 --- a/arch/arm26/lib/csumpartialcopyuser.S +++ b/arch/arm26/lib/csumpartialcopyuser.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
12 | #include <asm/assembler.h> | 11 | #include <asm/assembler.h> |
13 | #include <asm/errno.h> | 12 | #include <asm/errno.h> |
diff --git a/arch/arm26/lib/kbd.c b/arch/arm26/lib/kbd.c index 22d2c93aaf1a..cb56e943e006 100644 --- a/arch/arm26/lib/kbd.c +++ b/arch/arm26/lib/kbd.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/kd.h> | 1 | #include <linux/kd.h> |
3 | //#include <linux/kbd_ll.h> | 2 | //#include <linux/kbd_ll.h> |
4 | #include <linux/kbd_kern.h> | 3 | #include <linux/kbd_kern.h> |
diff --git a/arch/arm26/lib/lib1funcs.S b/arch/arm26/lib/lib1funcs.S index b8f9518db871..0e29970b0e8a 100644 --- a/arch/arm26/lib/lib1funcs.S +++ b/arch/arm26/lib/lib1funcs.S | |||
@@ -39,7 +39,6 @@ Boston, MA 02111-1307, USA. */ | |||
39 | #include <linux/linkage.h> | 39 | #include <linux/linkage.h> |
40 | #include <asm/assembler.h> | 40 | #include <asm/assembler.h> |
41 | #include <asm/hardware.h> | 41 | #include <asm/hardware.h> |
42 | #include <linux/config.h> | ||
43 | 42 | ||
44 | #define RET movs | 43 | #define RET movs |
45 | #define RETc(x) mov##x##s | 44 | #define RETc(x) mov##x##s |
diff --git a/arch/arm26/machine/dma.c b/arch/arm26/machine/dma.c index cbc7c61d5b32..4402a5a1b78f 100644 --- a/arch/arm26/machine/dma.c +++ b/arch/arm26/machine/dma.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | * DMA functions specific to Archimedes and A5000 architecture | 11 | * DMA functions specific to Archimedes and A5000 architecture |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | 15 | ||
diff --git a/arch/arm26/machine/irq.c b/arch/arm26/machine/irq.c index 4361863f7ed2..a60d543edecc 100644 --- a/arch/arm26/machine/irq.c +++ b/arch/arm26/machine/irq.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * 08-09-2002 IM Brought up to date for 2.5 | 16 | * 08-09-2002 IM Brought up to date for 2.5 |
17 | * 01-06-2003 JMA Removed arc_fiq_chip | 17 | * 01-06-2003 JMA Removed arc_fiq_chip |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | 20 | ||
22 | #include <asm/irq.h> | 21 | #include <asm/irq.h> |
diff --git a/arch/arm26/mm/extable.c b/arch/arm26/mm/extable.c index 2d9f5b5a78d6..38e1958d9538 100644 --- a/arch/arm26/mm/extable.c +++ b/arch/arm26/mm/extable.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/arm26/mm/extable.c | 2 | * linux/arch/arm26/mm/extable.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | 5 | #include <linux/module.h> |
7 | #include <asm/uaccess.h> | 6 | #include <asm/uaccess.h> |
8 | 7 | ||
diff --git a/arch/arm26/mm/fault.c b/arch/arm26/mm/fault.c index bd6f2db608b7..761938b56679 100644 --- a/arch/arm26/mm/fault.c +++ b/arch/arm26/mm/fault.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * it under the terms of the GNU General Public License version 2 as | 8 | * it under the terms of the GNU General Public License version 2 as |
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/signal.h> | 11 | #include <linux/signal.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
diff --git a/arch/arm26/mm/init.c b/arch/arm26/mm/init.c index 7da8a5205678..562fac12eb95 100644 --- a/arch/arm26/mm/init.c +++ b/arch/arm26/mm/init.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/signal.h> | 10 | #include <linux/signal.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
diff --git a/arch/arm26/nwfpe/fpmodule.c b/arch/arm26/nwfpe/fpmodule.c index 5258c6096fb9..a8fad92eb44f 100644 --- a/arch/arm26/nwfpe/fpmodule.c +++ b/arch/arm26/nwfpe/fpmodule.c | |||
@@ -25,7 +25,6 @@ | |||
25 | 25 | ||
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/version.h> | 27 | #include <linux/version.h> |
28 | #include <linux/config.h> | ||
29 | 28 | ||
30 | /* XXX */ | 29 | /* XXX */ |
31 | #include <linux/errno.h> | 30 | #include <linux/errno.h> |
diff --git a/arch/arm26/nwfpe/fpmodule.h b/arch/arm26/nwfpe/fpmodule.h index ef71aab46a32..f971ddd60cc1 100644 --- a/arch/arm26/nwfpe/fpmodule.h +++ b/arch/arm26/nwfpe/fpmodule.h | |||
@@ -22,7 +22,6 @@ | |||
22 | #ifndef __FPMODULE_H__ | 22 | #ifndef __FPMODULE_H__ |
23 | #define __FPMODULE_H__ | 23 | #define __FPMODULE_H__ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | 25 | ||
27 | #define REG_ORIG_R0 16 | 26 | #define REG_ORIG_R0 16 |
28 | #define REG_CPSR 15 | 27 | #define REG_CPSR 15 |
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index 856b665020e7..6a1238a29d6c 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig | |||
@@ -28,6 +28,10 @@ config GENERIC_CALIBRATE_DELAY | |||
28 | bool | 28 | bool |
29 | default y | 29 | default y |
30 | 30 | ||
31 | config IRQ_PER_CPU | ||
32 | bool | ||
33 | default y | ||
34 | |||
31 | config CRIS | 35 | config CRIS |
32 | bool | 36 | bool |
33 | default y | 37 | default y |
diff --git a/arch/cris/arch-v10/boot/compressed/head.S b/arch/cris/arch-v10/boot/compressed/head.S index e73f44c998d9..610bdb237553 100644 --- a/arch/cris/arch-v10/boot/compressed/head.S +++ b/arch/cris/arch-v10/boot/compressed/head.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #define ASSEMBLER_MACROS_ONLY | 11 | #define ASSEMBLER_MACROS_ONLY |
13 | #include <asm/arch/sv_addr_ag.h> | 12 | #include <asm/arch/sv_addr_ag.h> |
14 | 13 | ||
diff --git a/arch/cris/arch-v10/boot/compressed/misc.c b/arch/cris/arch-v10/boot/compressed/misc.c index 1b5e83f1f846..ffb8d21b2f83 100644 --- a/arch/cris/arch-v10/boot/compressed/misc.c +++ b/arch/cris/arch-v10/boot/compressed/misc.c | |||
@@ -20,7 +20,6 @@ | |||
20 | 20 | ||
21 | #define KERNEL_LOAD_ADR 0x40004000 | 21 | #define KERNEL_LOAD_ADR 0x40004000 |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | 23 | ||
25 | #include <linux/types.h> | 24 | #include <linux/types.h> |
26 | #include <asm/arch/svinto.h> | 25 | #include <asm/arch/svinto.h> |
diff --git a/arch/cris/arch-v10/boot/rescue/head.S b/arch/cris/arch-v10/boot/rescue/head.S index addb2194de0f..f223cc0c00bb 100644 --- a/arch/cris/arch-v10/boot/rescue/head.S +++ b/arch/cris/arch-v10/boot/rescue/head.S | |||
@@ -63,7 +63,6 @@ | |||
63 | * Copyright (C) 1999, 2000, 2001, 2002, 2003 Axis Communications AB | 63 | * Copyright (C) 1999, 2000, 2001, 2002, 2003 Axis Communications AB |
64 | */ | 64 | */ |
65 | 65 | ||
66 | #include <linux/config.h> | ||
67 | #define ASSEMBLER_MACROS_ONLY | 66 | #define ASSEMBLER_MACROS_ONLY |
68 | #include <asm/arch/sv_addr_ag.h> | 67 | #include <asm/arch/sv_addr_ag.h> |
69 | 68 | ||
diff --git a/arch/cris/arch-v10/boot/rescue/kimagerescue.S b/arch/cris/arch-v10/boot/rescue/kimagerescue.S index 264bf7afc9ad..cbccd6316d39 100644 --- a/arch/cris/arch-v10/boot/rescue/kimagerescue.S +++ b/arch/cris/arch-v10/boot/rescue/kimagerescue.S | |||
@@ -6,7 +6,6 @@ | |||
6 | * 4004000 and after a timeout jump to it. | 6 | * 4004000 and after a timeout jump to it. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #define ASSEMBLER_MACROS_ONLY | 9 | #define ASSEMBLER_MACROS_ONLY |
11 | #include <asm/sv_addr_ag.h> | 10 | #include <asm/sv_addr_ag.h> |
12 | 11 | ||
diff --git a/arch/cris/arch-v10/drivers/axisflashmap.c b/arch/cris/arch-v10/drivers/axisflashmap.c index 56b038c8d482..4fa81abab0c7 100644 --- a/arch/cris/arch-v10/drivers/axisflashmap.c +++ b/arch/cris/arch-v10/drivers/axisflashmap.c | |||
@@ -138,7 +138,6 @@ | |||
138 | #include <linux/module.h> | 138 | #include <linux/module.h> |
139 | #include <linux/types.h> | 139 | #include <linux/types.h> |
140 | #include <linux/kernel.h> | 140 | #include <linux/kernel.h> |
141 | #include <linux/config.h> | ||
142 | #include <linux/init.h> | 141 | #include <linux/init.h> |
143 | #include <linux/slab.h> | 142 | #include <linux/slab.h> |
144 | 143 | ||
diff --git a/arch/cris/arch-v10/drivers/ds1302.c b/arch/cris/arch-v10/drivers/ds1302.c index b100f26497c4..3cf4f23de1d0 100644 --- a/arch/cris/arch-v10/drivers/ds1302.c +++ b/arch/cris/arch-v10/drivers/ds1302.c | |||
@@ -139,7 +139,6 @@ | |||
139 | *! | 139 | *! |
140 | *!***************************************************************************/ | 140 | *!***************************************************************************/ |
141 | 141 | ||
142 | #include <linux/config.h> | ||
143 | 142 | ||
144 | #include <linux/fs.h> | 143 | #include <linux/fs.h> |
145 | #include <linux/init.h> | 144 | #include <linux/init.h> |
diff --git a/arch/cris/arch-v10/drivers/eeprom.c b/arch/cris/arch-v10/drivers/eeprom.c index 512f16dec060..037582028560 100644 --- a/arch/cris/arch-v10/drivers/eeprom.c +++ b/arch/cris/arch-v10/drivers/eeprom.c | |||
@@ -93,7 +93,6 @@ | |||
93 | *! (c) 1999 Axis Communications AB, Lund, Sweden | 93 | *! (c) 1999 Axis Communications AB, Lund, Sweden |
94 | *!*****************************************************************************/ | 94 | *!*****************************************************************************/ |
95 | 95 | ||
96 | #include <linux/config.h> | ||
97 | #include <linux/kernel.h> | 96 | #include <linux/kernel.h> |
98 | #include <linux/sched.h> | 97 | #include <linux/sched.h> |
99 | #include <linux/fs.h> | 98 | #include <linux/fs.h> |
diff --git a/arch/cris/arch-v10/drivers/gpio.c b/arch/cris/arch-v10/drivers/gpio.c index 09963fe299a7..48fd801792d1 100644 --- a/arch/cris/arch-v10/drivers/gpio.c +++ b/arch/cris/arch-v10/drivers/gpio.c | |||
@@ -135,7 +135,6 @@ | |||
135 | * | 135 | * |
136 | */ | 136 | */ |
137 | 137 | ||
138 | #include <linux/config.h> | ||
139 | 138 | ||
140 | #include <linux/module.h> | 139 | #include <linux/module.h> |
141 | #include <linux/sched.h> | 140 | #include <linux/sched.h> |
@@ -938,11 +937,11 @@ gpio_init(void) | |||
938 | * in some tests. | 937 | * in some tests. |
939 | */ | 938 | */ |
940 | if (request_irq(TIMER0_IRQ_NBR, gpio_poll_timer_interrupt, | 939 | if (request_irq(TIMER0_IRQ_NBR, gpio_poll_timer_interrupt, |
941 | SA_SHIRQ | SA_INTERRUPT,"gpio poll", NULL)) { | 940 | IRQF_SHARED | IRQF_DISABLED,"gpio poll", NULL)) { |
942 | printk(KERN_CRIT "err: timer0 irq for gpio\n"); | 941 | printk(KERN_CRIT "err: timer0 irq for gpio\n"); |
943 | } | 942 | } |
944 | if (request_irq(PA_IRQ_NBR, gpio_pa_interrupt, | 943 | if (request_irq(PA_IRQ_NBR, gpio_pa_interrupt, |
945 | SA_SHIRQ | SA_INTERRUPT,"gpio PA", NULL)) { | 944 | IRQF_SHARED | IRQF_DISABLED,"gpio PA", NULL)) { |
946 | printk(KERN_CRIT "err: PA irq for gpio\n"); | 945 | printk(KERN_CRIT "err: PA irq for gpio\n"); |
947 | } | 946 | } |
948 | 947 | ||
diff --git a/arch/cris/arch-v10/drivers/i2c.c b/arch/cris/arch-v10/drivers/i2c.c index b38267d60d30..6114596c3b33 100644 --- a/arch/cris/arch-v10/drivers/i2c.c +++ b/arch/cris/arch-v10/drivers/i2c.c | |||
@@ -96,7 +96,6 @@ | |||
96 | #include <linux/fs.h> | 96 | #include <linux/fs.h> |
97 | #include <linux/string.h> | 97 | #include <linux/string.h> |
98 | #include <linux/init.h> | 98 | #include <linux/init.h> |
99 | #include <linux/config.h> | ||
100 | 99 | ||
101 | #include <asm/etraxi2c.h> | 100 | #include <asm/etraxi2c.h> |
102 | 101 | ||
diff --git a/arch/cris/arch-v10/drivers/pcf8563.c b/arch/cris/arch-v10/drivers/pcf8563.c index af517c210383..8c830eefc89c 100644 --- a/arch/cris/arch-v10/drivers/pcf8563.c +++ b/arch/cris/arch-v10/drivers/pcf8563.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * $Id: pcf8563.c,v 1.11 2005/03/07 13:13:07 starvik Exp $ | 18 | * $Id: pcf8563.c,v 1.11 2005/03/07 13:13:07 starvik Exp $ |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
24 | #include <linux/types.h> | 23 | #include <linux/types.h> |
diff --git a/arch/cris/arch-v10/kernel/crisksyms.c b/arch/cris/arch-v10/kernel/crisksyms.c index b332bf9b312b..e6b80135502f 100644 --- a/arch/cris/arch-v10/kernel/crisksyms.c +++ b/arch/cris/arch-v10/kernel/crisksyms.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <asm/io.h> | 2 | #include <asm/io.h> |
4 | #include <asm/arch/svinto.h> | 3 | #include <asm/arch/svinto.h> |
diff --git a/arch/cris/arch-v10/kernel/debugport.c b/arch/cris/arch-v10/kernel/debugport.c index f3a85b77c17e..2b536ca6f444 100644 --- a/arch/cris/arch-v10/kernel/debugport.c +++ b/arch/cris/arch-v10/kernel/debugport.c | |||
@@ -103,7 +103,6 @@ | |||
103 | * | 103 | * |
104 | */ | 104 | */ |
105 | 105 | ||
106 | #include <linux/config.h> | ||
107 | #include <linux/console.h> | 106 | #include <linux/console.h> |
108 | #include <linux/init.h> | 107 | #include <linux/init.h> |
109 | #include <linux/major.h> | 108 | #include <linux/major.h> |
@@ -541,7 +540,7 @@ init_dummy_console(void) | |||
541 | dummy_driver.init_termios = tty_std_termios; | 540 | dummy_driver.init_termios = tty_std_termios; |
542 | dummy_driver.init_termios.c_cflag = | 541 | dummy_driver.init_termios.c_cflag = |
543 | B115200 | CS8 | CREAD | HUPCL | CLOCAL; /* is normally B9600 default... */ | 542 | B115200 | CS8 | CREAD | HUPCL | CLOCAL; /* is normally B9600 default... */ |
544 | dummy_driver.flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS; | 543 | dummy_driver.flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV; |
545 | 544 | ||
546 | dummy_driver.open = dummy_open; | 545 | dummy_driver.open = dummy_open; |
547 | dummy_driver.close = dummy_close; | 546 | dummy_driver.close = dummy_close; |
diff --git a/arch/cris/arch-v10/kernel/entry.S b/arch/cris/arch-v10/kernel/entry.S index c808005e8457..ae45d4522e65 100644 --- a/arch/cris/arch-v10/kernel/entry.S +++ b/arch/cris/arch-v10/kernel/entry.S | |||
@@ -263,7 +263,6 @@ | |||
263 | * | 263 | * |
264 | */ | 264 | */ |
265 | 265 | ||
266 | #include <linux/config.h> | ||
267 | #include <linux/linkage.h> | 266 | #include <linux/linkage.h> |
268 | #include <linux/sys.h> | 267 | #include <linux/sys.h> |
269 | #include <asm/unistd.h> | 268 | #include <asm/unistd.h> |
diff --git a/arch/cris/arch-v10/kernel/fasttimer.c b/arch/cris/arch-v10/kernel/fasttimer.c index cac05a5e514c..8cbdf594b369 100644 --- a/arch/cris/arch-v10/kernel/fasttimer.c +++ b/arch/cris/arch-v10/kernel/fasttimer.c | |||
@@ -111,7 +111,6 @@ | |||
111 | #include <asm/delay.h> | 111 | #include <asm/delay.h> |
112 | #include <asm/rtc.h> | 112 | #include <asm/rtc.h> |
113 | 113 | ||
114 | #include <linux/config.h> | ||
115 | 114 | ||
116 | #include <asm/arch/svinto.h> | 115 | #include <asm/arch/svinto.h> |
117 | #include <asm/fasttimer.h> | 116 | #include <asm/fasttimer.h> |
diff --git a/arch/cris/arch-v10/kernel/head.S b/arch/cris/arch-v10/kernel/head.S index f00c145b43f1..d946d8b8d277 100644 --- a/arch/cris/arch-v10/kernel/head.S +++ b/arch/cris/arch-v10/kernel/head.S | |||
@@ -183,7 +183,6 @@ | |||
183 | * | 183 | * |
184 | */ | 184 | */ |
185 | 185 | ||
186 | #include <linux/config.h> | ||
187 | #define ASSEMBLER_MACROS_ONLY | 186 | #define ASSEMBLER_MACROS_ONLY |
188 | /* The IO_* macros use the ## token concatenation operator, so | 187 | /* The IO_* macros use the ## token concatenation operator, so |
189 | -traditional must not be used when assembling this file. */ | 188 | -traditional must not be used when assembling this file. */ |
diff --git a/arch/cris/arch-v10/kernel/irq.c b/arch/cris/arch-v10/kernel/irq.c index 4b368a122015..96094cbf1255 100644 --- a/arch/cris/arch-v10/kernel/irq.c +++ b/arch/cris/arch-v10/kernel/irq.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <linux/irq.h> | 15 | #include <linux/irq.h> |
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/config.h> | ||
19 | 18 | ||
20 | #define mask_irq(irq_nr) (*R_VECT_MASK_CLR = 1 << (irq_nr)); | 19 | #define mask_irq(irq_nr) (*R_VECT_MASK_CLR = 1 << (irq_nr)); |
21 | #define unmask_irq(irq_nr) (*R_VECT_MASK_SET = 1 << (irq_nr)); | 20 | #define unmask_irq(irq_nr) (*R_VECT_MASK_SET = 1 << (irq_nr)); |
@@ -172,7 +171,7 @@ init_IRQ(void) | |||
172 | 171 | ||
173 | /* Initialize IRQ handler descriptiors. */ | 172 | /* Initialize IRQ handler descriptiors. */ |
174 | for(i = 2; i < NR_IRQS; i++) { | 173 | for(i = 2; i < NR_IRQS; i++) { |
175 | irq_desc[i].handler = &crisv10_irq_type; | 174 | irq_desc[i].chip = &crisv10_irq_type; |
176 | set_int_vector(i, interrupt[i]); | 175 | set_int_vector(i, interrupt[i]); |
177 | } | 176 | } |
178 | 177 | ||
diff --git a/arch/cris/arch-v10/kernel/process.c b/arch/cris/arch-v10/kernel/process.c index 0a675ce9e099..b6831ceb6a62 100644 --- a/arch/cris/arch-v10/kernel/process.c +++ b/arch/cris/arch-v10/kernel/process.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * This file handles the architecture-dependent parts of process handling.. | 11 | * This file handles the architecture-dependent parts of process handling.. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/err.h> | 15 | #include <linux/err.h> |
17 | #include <linux/fs.h> | 16 | #include <linux/fs.h> |
diff --git a/arch/cris/arch-v10/kernel/setup.c b/arch/cris/arch-v10/kernel/setup.c index b668d7fb68ee..682ef955aec4 100644 --- a/arch/cris/arch-v10/kernel/setup.c +++ b/arch/cris/arch-v10/kernel/setup.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * This file handles the architecture-dependent parts of initialization | 10 | * This file handles the architecture-dependent parts of initialization |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/seq_file.h> | 13 | #include <linux/seq_file.h> |
15 | #include <linux/proc_fs.h> | 14 | #include <linux/proc_fs.h> |
16 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
diff --git a/arch/cris/arch-v10/kernel/time.c b/arch/cris/arch-v10/kernel/time.c index dc3dfe9b4a1a..9c22b76e129a 100644 --- a/arch/cris/arch-v10/kernel/time.c +++ b/arch/cris/arch-v10/kernel/time.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/timex.h> | 10 | #include <linux/timex.h> |
12 | #include <linux/time.h> | 11 | #include <linux/time.h> |
13 | #include <linux/jiffies.h> | 12 | #include <linux/jiffies.h> |
@@ -252,11 +251,11 @@ timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
252 | return IRQ_HANDLED; | 251 | return IRQ_HANDLED; |
253 | } | 252 | } |
254 | 253 | ||
255 | /* timer is SA_SHIRQ so drivers can add stuff to the timer irq chain | 254 | /* timer is IRQF_SHARED so drivers can add stuff to the timer irq chain |
256 | * it needs to be SA_INTERRUPT to make the jiffies update work properly | 255 | * it needs to be IRQF_DISABLED to make the jiffies update work properly |
257 | */ | 256 | */ |
258 | 257 | ||
259 | static struct irqaction irq2 = { timer_interrupt, SA_SHIRQ | SA_INTERRUPT, | 258 | static struct irqaction irq2 = { timer_interrupt, IRQF_SHARED | IRQF_DISABLED, |
260 | CPU_MASK_NONE, "timer", NULL, NULL}; | 259 | CPU_MASK_NONE, "timer", NULL, NULL}; |
261 | 260 | ||
262 | void __init | 261 | void __init |
diff --git a/arch/cris/arch-v10/kernel/traps.c b/arch/cris/arch-v10/kernel/traps.c index 34a27ea2052d..4becc1bcced9 100644 --- a/arch/cris/arch-v10/kernel/traps.c +++ b/arch/cris/arch-v10/kernel/traps.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/ptrace.h> | 14 | #include <linux/ptrace.h> |
16 | #include <asm/uaccess.h> | 15 | #include <asm/uaccess.h> |
17 | #include <asm/arch/sv_addr_ag.h> | 16 | #include <asm/arch/sv_addr_ag.h> |
diff --git a/arch/cris/arch-v10/lib/dram_init.S b/arch/cris/arch-v10/lib/dram_init.S index 2ef4ad5706ef..9cf83932cd5d 100644 --- a/arch/cris/arch-v10/lib/dram_init.S +++ b/arch/cris/arch-v10/lib/dram_init.S | |||
@@ -70,7 +70,6 @@ | |||
70 | * uses this code. | 70 | * uses this code. |
71 | */ | 71 | */ |
72 | 72 | ||
73 | #include <linux/config.h> | ||
74 | 73 | ||
75 | ;; WARNING! The registers r8 and r9 are used as parameters carrying | 74 | ;; WARNING! The registers r8 and r9 are used as parameters carrying |
76 | ;; information from the decompressor (if the kernel was compressed). | 75 | ;; information from the decompressor (if the kernel was compressed). |
diff --git a/arch/cris/arch-v10/mm/init.c b/arch/cris/arch-v10/mm/init.c index ff3481e76dd4..e0fcd1a9bfd5 100644 --- a/arch/cris/arch-v10/mm/init.c +++ b/arch/cris/arch-v10/mm/init.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/cris/arch-v10/mm/init.c | 2 | * linux/arch/cris/arch-v10/mm/init.c |
3 | * | 3 | * |
4 | */ | 4 | */ |
5 | #include <linux/config.h> | ||
6 | #include <linux/mmzone.h> | 5 | #include <linux/mmzone.h> |
7 | #include <linux/init.h> | 6 | #include <linux/init.h> |
8 | #include <linux/bootmem.h> | 7 | #include <linux/bootmem.h> |
diff --git a/arch/cris/arch-v10/vmlinux.lds.S b/arch/cris/arch-v10/vmlinux.lds.S index 71ba736be8f0..689729a7e66e 100644 --- a/arch/cris/arch-v10/vmlinux.lds.S +++ b/arch/cris/arch-v10/vmlinux.lds.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * the kernel has booted. | 8 | * the kernel has booted. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <asm-generic/vmlinux.lds.h> | 11 | #include <asm-generic/vmlinux.lds.h> |
13 | 12 | ||
14 | jiffies = jiffies_64; | 13 | jiffies = jiffies_64; |
diff --git a/arch/cris/arch-v32/boot/compressed/head.S b/arch/cris/arch-v32/boot/compressed/head.S index 0c55b83b8287..34cea10a8998 100644 --- a/arch/cris/arch-v32/boot/compressed/head.S +++ b/arch/cris/arch-v32/boot/compressed/head.S | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 1999 - 2003, Axis Communications AB | 5 | * Copyright (C) 1999 - 2003, Axis Communications AB |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #define ASSEMBLER_MACROS_ONLY | 8 | #define ASSEMBLER_MACROS_ONLY |
10 | #include <asm/arch/hwregs/asm/reg_map_asm.h> | 9 | #include <asm/arch/hwregs/asm/reg_map_asm.h> |
11 | #include <asm/arch/hwregs/asm/gio_defs_asm.h> | 10 | #include <asm/arch/hwregs/asm/gio_defs_asm.h> |
diff --git a/arch/cris/arch-v32/boot/compressed/misc.c b/arch/cris/arch-v32/boot/compressed/misc.c index 54644238ed59..11902697196d 100644 --- a/arch/cris/arch-v32/boot/compressed/misc.c +++ b/arch/cris/arch-v32/boot/compressed/misc.c | |||
@@ -20,7 +20,6 @@ | |||
20 | 20 | ||
21 | #define KERNEL_LOAD_ADR 0x40004000 | 21 | #define KERNEL_LOAD_ADR 0x40004000 |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | 23 | ||
25 | #include <linux/types.h> | 24 | #include <linux/types.h> |
26 | #include <asm/arch/hwregs/reg_rdwr.h> | 25 | #include <asm/arch/hwregs/reg_rdwr.h> |
diff --git a/arch/cris/arch-v32/boot/rescue/head.S b/arch/cris/arch-v32/boot/rescue/head.S index 61ede5f30f99..8cdb4011bc16 100644 --- a/arch/cris/arch-v32/boot/rescue/head.S +++ b/arch/cris/arch-v32/boot/rescue/head.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * RedBoot based RFL instead. Nothing to see here, move along. | 4 | * RedBoot based RFL instead. Nothing to see here, move along. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/arch/hwregs/reg_map_asm.h> | 7 | #include <asm/arch/hwregs/reg_map_asm.h> |
9 | #include <asm/arch/hwregs/config_defs_asm.h> | 8 | #include <asm/arch/hwregs/config_defs_asm.h> |
10 | 9 | ||
diff --git a/arch/cris/arch-v32/drivers/axisflashmap.c b/arch/cris/arch-v32/drivers/axisflashmap.c index b679f983b90a..41952320e00a 100644 --- a/arch/cris/arch-v32/drivers/axisflashmap.c +++ b/arch/cris/arch-v32/drivers/axisflashmap.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/module.h> | 18 | #include <linux/module.h> |
19 | #include <linux/types.h> | 19 | #include <linux/types.h> |
20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
21 | #include <linux/config.h> | ||
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
23 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
24 | 23 | ||
diff --git a/arch/cris/arch-v32/drivers/gpio.c b/arch/cris/arch-v32/drivers/gpio.c index a551237dcb5e..00e9167de530 100644 --- a/arch/cris/arch-v32/drivers/gpio.c +++ b/arch/cris/arch-v32/drivers/gpio.c | |||
@@ -62,7 +62,6 @@ | |||
62 | * | 62 | * |
63 | */ | 63 | */ |
64 | 64 | ||
65 | #include <linux/config.h> | ||
66 | 65 | ||
67 | #include <linux/module.h> | 66 | #include <linux/module.h> |
68 | #include <linux/sched.h> | 67 | #include <linux/sched.h> |
@@ -745,11 +744,11 @@ gpio_init(void) | |||
745 | * in some tests. | 744 | * in some tests. |
746 | */ | 745 | */ |
747 | if (request_irq(TIMER_INTR_VECT, gpio_poll_timer_interrupt, | 746 | if (request_irq(TIMER_INTR_VECT, gpio_poll_timer_interrupt, |
748 | SA_SHIRQ | SA_INTERRUPT,"gpio poll", &alarmlist)) { | 747 | IRQF_SHARED | IRQF_DISABLED,"gpio poll", &alarmlist)) { |
749 | printk("err: timer0 irq for gpio\n"); | 748 | printk("err: timer0 irq for gpio\n"); |
750 | } | 749 | } |
751 | if (request_irq(GEN_IO_INTR_VECT, gpio_pa_interrupt, | 750 | if (request_irq(GEN_IO_INTR_VECT, gpio_pa_interrupt, |
752 | SA_SHIRQ | SA_INTERRUPT,"gpio PA", &alarmlist)) { | 751 | IRQF_SHARED | IRQF_DISABLED,"gpio PA", &alarmlist)) { |
753 | printk("err: PA irq for gpio\n"); | 752 | printk("err: PA irq for gpio\n"); |
754 | } | 753 | } |
755 | /* enable the gio and timer irq in global config */ | 754 | /* enable the gio and timer irq in global config */ |
diff --git a/arch/cris/arch-v32/drivers/i2c.c b/arch/cris/arch-v32/drivers/i2c.c index 440c20a94963..95f00188c628 100644 --- a/arch/cris/arch-v32/drivers/i2c.c +++ b/arch/cris/arch-v32/drivers/i2c.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <linux/fs.h> | 33 | #include <linux/fs.h> |
34 | #include <linux/string.h> | 34 | #include <linux/string.h> |
35 | #include <linux/init.h> | 35 | #include <linux/init.h> |
36 | #include <linux/config.h> | ||
37 | 36 | ||
38 | #include <asm/etraxi2c.h> | 37 | #include <asm/etraxi2c.h> |
39 | 38 | ||
diff --git a/arch/cris/arch-v32/drivers/pcf8563.c b/arch/cris/arch-v32/drivers/pcf8563.c index d788bda3578c..ffc6d2572f2b 100644 --- a/arch/cris/arch-v32/drivers/pcf8563.c +++ b/arch/cris/arch-v32/drivers/pcf8563.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/module.h> | 20 | #include <linux/module.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
23 | #include <linux/types.h> | 22 | #include <linux/types.h> |
diff --git a/arch/cris/arch-v32/drivers/pci/bios.c b/arch/cris/arch-v32/drivers/pci/bios.c index 1e9d062103ae..a2b9c60c2777 100644 --- a/arch/cris/arch-v32/drivers/pci/bios.c +++ b/arch/cris/arch-v32/drivers/pci/bios.c | |||
@@ -43,10 +43,10 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
43 | 43 | ||
44 | void | 44 | void |
45 | pcibios_align_resource(void *data, struct resource *res, | 45 | pcibios_align_resource(void *data, struct resource *res, |
46 | unsigned long size, unsigned long align) | 46 | resource_size_t size, resource_size_t align) |
47 | { | 47 | { |
48 | if (res->flags & IORESOURCE_IO) { | 48 | if (res->flags & IORESOURCE_IO) { |
49 | unsigned long start = res->start; | 49 | resource_size_t start = res->start; |
50 | 50 | ||
51 | if (start & 0x300) { | 51 | if (start & 0x300) { |
52 | start = (start + 0x3ff) & ~0x3ff; | 52 | start = (start + 0x3ff) & ~0x3ff; |
diff --git a/arch/cris/arch-v32/drivers/sync_serial.c b/arch/cris/arch-v32/drivers/sync_serial.c index c85a6df8558f..7c29957f5f02 100644 --- a/arch/cris/arch-v32/drivers/sync_serial.c +++ b/arch/cris/arch-v32/drivers/sync_serial.c | |||
@@ -9,7 +9,6 @@ | |||
9 | 9 | ||
10 | #include <linux/module.h> | 10 | #include <linux/module.h> |
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/config.h> | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/major.h> | 14 | #include <linux/major.h> |
diff --git a/arch/cris/arch-v32/kernel/arbiter.c b/arch/cris/arch-v32/kernel/arbiter.c index 3870d2fd5160..420a5312ed03 100644 --- a/arch/cris/arch-v32/kernel/arbiter.c +++ b/arch/cris/arch-v32/kernel/arbiter.c | |||
@@ -1,15 +1,14 @@ | |||
1 | /* | 1 | /* |
2 | * Memory arbiter functions. Allocates bandwith through the | 2 | * Memory arbiter functions. Allocates bandwidth through the |
3 | * arbiter and sets up arbiter breakpoints. | 3 | * arbiter and sets up arbiter breakpoints. |
4 | * | 4 | * |
5 | * The algorithm first assigns slots to the clients that has specified | 5 | * The algorithm first assigns slots to the clients that has specified |
6 | * bandwith (e.g. ethernet) and then the remaining slots are divided | 6 | * bandwidth (e.g. ethernet) and then the remaining slots are divided |
7 | * on all the active clients. | 7 | * on all the active clients. |
8 | * | 8 | * |
9 | * Copyright (c) 2004, 2005 Axis Communications AB. | 9 | * Copyright (c) 2004, 2005 Axis Communications AB. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/arch/hwregs/reg_map.h> | 12 | #include <asm/arch/hwregs/reg_map.h> |
14 | #include <asm/arch/hwregs/reg_rdwr.h> | 13 | #include <asm/arch/hwregs/reg_rdwr.h> |
15 | #include <asm/arch/hwregs/marb_defs.h> | 14 | #include <asm/arch/hwregs/marb_defs.h> |
@@ -120,7 +119,7 @@ static void crisv32_arbiter_init(void) | |||
120 | crisv32_arbiter_config(EXT_REGION); | 119 | crisv32_arbiter_config(EXT_REGION); |
121 | crisv32_arbiter_config(INT_REGION); | 120 | crisv32_arbiter_config(INT_REGION); |
122 | 121 | ||
123 | if (request_irq(MEMARB_INTR_VECT, crisv32_arbiter_irq, SA_INTERRUPT, | 122 | if (request_irq(MEMARB_INTR_VECT, crisv32_arbiter_irq, IRQF_DISABLED, |
124 | "arbiter", NULL)) | 123 | "arbiter", NULL)) |
125 | printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); | 124 | printk(KERN_ERR "Couldn't allocate arbiter IRQ\n"); |
126 | 125 | ||
@@ -133,8 +132,8 @@ static void crisv32_arbiter_init(void) | |||
133 | 132 | ||
134 | 133 | ||
135 | 134 | ||
136 | int crisv32_arbiter_allocate_bandwith(int client, int region, | 135 | int crisv32_arbiter_allocate_bandwidth(int client, int region, |
137 | unsigned long bandwidth) | 136 | unsigned long bandwidth) |
138 | { | 137 | { |
139 | int i; | 138 | int i; |
140 | int total_assigned = 0; | 139 | int total_assigned = 0; |
diff --git a/arch/cris/arch-v32/kernel/crisksyms.c b/arch/cris/arch-v32/kernel/crisksyms.c index 2c3bb9a0afe2..e513da711245 100644 --- a/arch/cris/arch-v32/kernel/crisksyms.c +++ b/arch/cris/arch-v32/kernel/crisksyms.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/irq.h> | 2 | #include <linux/irq.h> |
4 | #include <asm/arch/dma.h> | 3 | #include <asm/arch/dma.h> |
diff --git a/arch/cris/arch-v32/kernel/debugport.c b/arch/cris/arch-v32/kernel/debugport.c index ffc1ebf2dfee..d1272ad92153 100644 --- a/arch/cris/arch-v32/kernel/debugport.c +++ b/arch/cris/arch-v32/kernel/debugport.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Copyright (C) 2003, Axis Communications AB. | 2 | * Copyright (C) 2003, Axis Communications AB. |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/console.h> | 5 | #include <linux/console.h> |
7 | #include <linux/init.h> | 6 | #include <linux/init.h> |
8 | #include <linux/major.h> | 7 | #include <linux/major.h> |
@@ -353,7 +352,7 @@ init_dummy_console(void) | |||
353 | dummy_driver.init_termios = tty_std_termios; | 352 | dummy_driver.init_termios = tty_std_termios; |
354 | dummy_driver.init_termios.c_cflag = | 353 | dummy_driver.init_termios.c_cflag = |
355 | B115200 | CS8 | CREAD | HUPCL | CLOCAL; /* is normally B9600 default... */ | 354 | B115200 | CS8 | CREAD | HUPCL | CLOCAL; /* is normally B9600 default... */ |
356 | dummy_driver.flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS; | 355 | dummy_driver.flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV; |
357 | 356 | ||
358 | dummy_driver.open = dummy_open; | 357 | dummy_driver.open = dummy_open; |
359 | dummy_driver.close = dummy_close; | 358 | dummy_driver.close = dummy_close; |
diff --git a/arch/cris/arch-v32/kernel/dma.c b/arch/cris/arch-v32/kernel/dma.c index b92e85799b44..570e19128ffd 100644 --- a/arch/cris/arch-v32/kernel/dma.c +++ b/arch/cris/arch-v32/kernel/dma.c | |||
@@ -25,8 +25,8 @@ int crisv32_request_dma(unsigned int dmanr, const char * device_id, | |||
25 | reg_config_rw_clk_ctrl clk_ctrl; | 25 | reg_config_rw_clk_ctrl clk_ctrl; |
26 | reg_strmux_rw_cfg strmux_cfg; | 26 | reg_strmux_rw_cfg strmux_cfg; |
27 | 27 | ||
28 | if (crisv32_arbiter_allocate_bandwith(dmanr, | 28 | if (crisv32_arbiter_allocate_bandwidth(dmanr, |
29 | options & DMA_INT_MEM ? INT_REGION : EXT_REGION, | 29 | options & DMA_INT_MEM ? INT_REGION : EXT_REGION, |
30 | bandwidth)) | 30 | bandwidth)) |
31 | return -ENOMEM; | 31 | return -ENOMEM; |
32 | 32 | ||
diff --git a/arch/cris/arch-v32/kernel/entry.S b/arch/cris/arch-v32/kernel/entry.S index 3bd8503fec68..f9d27807b914 100644 --- a/arch/cris/arch-v32/kernel/entry.S +++ b/arch/cris/arch-v32/kernel/entry.S | |||
@@ -17,7 +17,6 @@ | |||
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/linkage.h> | 20 | #include <linux/linkage.h> |
22 | #include <linux/sys.h> | 21 | #include <linux/sys.h> |
23 | #include <asm/unistd.h> | 22 | #include <asm/unistd.h> |
diff --git a/arch/cris/arch-v32/kernel/fasttimer.c b/arch/cris/arch-v32/kernel/fasttimer.c index ea2b4a97c8c7..5daeb6f7f3b7 100644 --- a/arch/cris/arch-v32/kernel/fasttimer.c +++ b/arch/cris/arch-v32/kernel/fasttimer.c | |||
@@ -120,7 +120,6 @@ | |||
120 | #include <asm/irq.h> | 120 | #include <asm/irq.h> |
121 | #include <asm/system.h> | 121 | #include <asm/system.h> |
122 | 122 | ||
123 | #include <linux/config.h> | ||
124 | #include <linux/version.h> | 123 | #include <linux/version.h> |
125 | 124 | ||
126 | #include <asm/arch/hwregs/reg_map.h> | 125 | #include <asm/arch/hwregs/reg_map.h> |
@@ -982,7 +981,7 @@ void fast_timer_init(void) | |||
982 | proc_register_dynamic(&proc_root, &fasttimer_proc_entry); | 981 | proc_register_dynamic(&proc_root, &fasttimer_proc_entry); |
983 | #endif | 982 | #endif |
984 | #endif /* PROC_FS */ | 983 | #endif /* PROC_FS */ |
985 | if(request_irq(TIMER_INTR_VECT, timer_trig_interrupt, SA_INTERRUPT, | 984 | if(request_irq(TIMER_INTR_VECT, timer_trig_interrupt, IRQF_DISABLED, |
986 | "fast timer int", NULL)) | 985 | "fast timer int", NULL)) |
987 | { | 986 | { |
988 | printk("err: timer1 irq\n"); | 987 | printk("err: timer1 irq\n"); |
diff --git a/arch/cris/arch-v32/kernel/head.S b/arch/cris/arch-v32/kernel/head.S index 3cfe57dc391d..20bd80a84e48 100644 --- a/arch/cris/arch-v32/kernel/head.S +++ b/arch/cris/arch-v32/kernel/head.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 2003, Axis Communications AB | 4 | * Copyright (C) 2003, Axis Communications AB |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | 7 | ||
9 | #define ASSEMBLER_MACROS_ONLY | 8 | #define ASSEMBLER_MACROS_ONLY |
10 | 9 | ||
diff --git a/arch/cris/arch-v32/kernel/io.c b/arch/cris/arch-v32/kernel/io.c index 6bc9f263c3d6..dfbfcb8d2585 100644 --- a/arch/cris/arch-v32/kernel/io.c +++ b/arch/cris/arch-v32/kernel/io.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (c) 2004 Axis Communications AB. | 4 | * Copyright (c) 2004 Axis Communications AB. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/types.h> | 7 | #include <linux/types.h> |
9 | #include <linux/errno.h> | 8 | #include <linux/errno.h> |
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
diff --git a/arch/cris/arch-v32/kernel/irq.c b/arch/cris/arch-v32/kernel/irq.c index c78cc2685133..cc361bf578ae 100644 --- a/arch/cris/arch-v32/kernel/irq.c +++ b/arch/cris/arch-v32/kernel/irq.c | |||
@@ -6,7 +6,6 @@ | |||
6 | #include <linux/irq.h> | 6 | #include <linux/irq.h> |
7 | #include <linux/interrupt.h> | 7 | #include <linux/interrupt.h> |
8 | #include <linux/smp.h> | 8 | #include <linux/smp.h> |
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
@@ -269,7 +268,7 @@ void | |||
269 | crisv32_do_IRQ(int irq, int block, struct pt_regs* regs) | 268 | crisv32_do_IRQ(int irq, int block, struct pt_regs* regs) |
270 | { | 269 | { |
271 | /* Interrupts that may not be moved to another CPU and | 270 | /* Interrupts that may not be moved to another CPU and |
272 | * are SA_INTERRUPT may skip blocking. This is currently | 271 | * are IRQF_DISABLED may skip blocking. This is currently |
273 | * only valid for the timer IRQ and the IPI and is used | 272 | * only valid for the timer IRQ and the IPI and is used |
274 | * for the timer interrupt to avoid watchdog starvation. | 273 | * for the timer interrupt to avoid watchdog starvation. |
275 | */ | 274 | */ |
@@ -369,7 +368,7 @@ init_IRQ(void) | |||
369 | 368 | ||
370 | /* Point all IRQ's to bad handlers. */ | 369 | /* Point all IRQ's to bad handlers. */ |
371 | for (i = FIRST_IRQ, j = 0; j < NR_IRQS; i++, j++) { | 370 | for (i = FIRST_IRQ, j = 0; j < NR_IRQS; i++, j++) { |
372 | irq_desc[j].handler = &crisv32_irq_type; | 371 | irq_desc[j].chip = &crisv32_irq_type; |
373 | set_exception_vector(i, interrupt[j]); | 372 | set_exception_vector(i, interrupt[j]); |
374 | } | 373 | } |
375 | 374 | ||
diff --git a/arch/cris/arch-v32/kernel/kgdb_asm.S b/arch/cris/arch-v32/kernel/kgdb_asm.S index b350dd279ed2..3e7fa9ef8510 100644 --- a/arch/cris/arch-v32/kernel/kgdb_asm.S +++ b/arch/cris/arch-v32/kernel/kgdb_asm.S | |||
@@ -5,7 +5,6 @@ | |||
5 | * port exceptions for kernel debugging purposes. | 5 | * port exceptions for kernel debugging purposes. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <asm/arch/hwregs/intr_vect.h> | 8 | #include <asm/arch/hwregs/intr_vect.h> |
10 | 9 | ||
11 | ;; Exported functions. | 10 | ;; Exported functions. |
diff --git a/arch/cris/arch-v32/kernel/process.c b/arch/cris/arch-v32/kernel/process.c index 843513102d3c..6326351af252 100644 --- a/arch/cris/arch-v32/kernel/process.c +++ b/arch/cris/arch-v32/kernel/process.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * This file handles the architecture-dependent parts of process handling.. | 8 | * This file handles the architecture-dependent parts of process handling.. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/err.h> | 12 | #include <linux/err.h> |
14 | #include <linux/fs.h> | 13 | #include <linux/fs.h> |
diff --git a/arch/cris/arch-v32/kernel/setup.c b/arch/cris/arch-v32/kernel/setup.c index b17a39a2e164..4662f363df63 100644 --- a/arch/cris/arch-v32/kernel/setup.c +++ b/arch/cris/arch-v32/kernel/setup.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 2003, Axis Communications AB. | 4 | * Copyright (C) 2003, Axis Communications AB. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/seq_file.h> | 7 | #include <linux/seq_file.h> |
9 | #include <linux/proc_fs.h> | 8 | #include <linux/proc_fs.h> |
10 | #include <linux/delay.h> | 9 | #include <linux/delay.h> |
diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c index da40d19a151e..464ecaec3bc0 100644 --- a/arch/cris/arch-v32/kernel/smp.c +++ b/arch/cris/arch-v32/kernel/smp.c | |||
@@ -62,7 +62,7 @@ static unsigned long irq_regs[NR_CPUS] = | |||
62 | 62 | ||
63 | static irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 63 | static irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
64 | static int send_ipi(int vector, int wait, cpumask_t cpu_mask); | 64 | static int send_ipi(int vector, int wait, cpumask_t cpu_mask); |
65 | static struct irqaction irq_ipi = { crisv32_ipi_interrupt, SA_INTERRUPT, | 65 | static struct irqaction irq_ipi = { crisv32_ipi_interrupt, IRQF_DISABLED, |
66 | CPU_MASK_NONE, "ipi", NULL, NULL}; | 66 | CPU_MASK_NONE, "ipi", NULL, NULL}; |
67 | 67 | ||
68 | extern void cris_mmu_init(void); | 68 | extern void cris_mmu_init(void); |
diff --git a/arch/cris/arch-v32/kernel/time.c b/arch/cris/arch-v32/kernel/time.c index d48e397f5fa4..50f3f93293d6 100644 --- a/arch/cris/arch-v32/kernel/time.c +++ b/arch/cris/arch-v32/kernel/time.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/timex.h> | 9 | #include <linux/timex.h> |
11 | #include <linux/time.h> | 10 | #include <linux/time.h> |
12 | #include <linux/jiffies.h> | 11 | #include <linux/jiffies.h> |
@@ -242,12 +241,16 @@ timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
242 | return IRQ_HANDLED; | 241 | return IRQ_HANDLED; |
243 | } | 242 | } |
244 | 243 | ||
245 | /* timer is SA_SHIRQ so drivers can add stuff to the timer irq chain | 244 | /* timer is IRQF_SHARED so drivers can add stuff to the timer irq chain |
246 | * it needs to be SA_INTERRUPT to make the jiffies update work properly | 245 | * it needs to be IRQF_DISABLED to make the jiffies update work properly |
247 | */ | 246 | */ |
248 | 247 | ||
249 | static struct irqaction irq_timer = { timer_interrupt, SA_SHIRQ | SA_INTERRUPT, | 248 | static struct irqaction irq_timer = { |
250 | CPU_MASK_NONE, "timer", NULL, NULL}; | 249 | .mask = timer_interrupt, |
250 | .flags = IRQF_SHARED | IRQF_DISABLED, | ||
251 | .mask = CPU_MASK_NONE, | ||
252 | .name = "timer" | ||
253 | }; | ||
251 | 254 | ||
252 | void __init | 255 | void __init |
253 | cris_timer_init(void) | 256 | cris_timer_init(void) |
diff --git a/arch/cris/arch-v32/kernel/traps.c b/arch/cris/arch-v32/kernel/traps.c index 6e3787045560..2462b1ef1fbb 100644 --- a/arch/cris/arch-v32/kernel/traps.c +++ b/arch/cris/arch-v32/kernel/traps.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Copyright (C) 2003, Axis Communications AB. | 2 | * Copyright (C) 2003, Axis Communications AB. |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/ptrace.h> | 5 | #include <linux/ptrace.h> |
7 | #include <asm/uaccess.h> | 6 | #include <asm/uaccess.h> |
8 | 7 | ||
diff --git a/arch/cris/arch-v32/lib/dram_init.S b/arch/cris/arch-v32/lib/dram_init.S index 47b6cf5f4afd..158b3dbb4d9d 100644 --- a/arch/cris/arch-v32/lib/dram_init.S +++ b/arch/cris/arch-v32/lib/dram_init.S | |||
@@ -16,7 +16,6 @@ | |||
16 | * uses this code. | 16 | * uses this code. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <asm/arch/hwregs/asm/reg_map_asm.h> | 19 | #include <asm/arch/hwregs/asm/reg_map_asm.h> |
21 | #include <asm/arch/hwregs/asm/bif_core_defs_asm.h> | 20 | #include <asm/arch/hwregs/asm/bif_core_defs_asm.h> |
22 | 21 | ||
diff --git a/arch/cris/arch-v32/lib/hw_settings.S b/arch/cris/arch-v32/lib/hw_settings.S index 5182e8c2cff2..fff9443513d1 100644 --- a/arch/cris/arch-v32/lib/hw_settings.S +++ b/arch/cris/arch-v32/lib/hw_settings.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * Authors: Mikael Starvik (starvik@axis.com) | 10 | * Authors: Mikael Starvik (starvik@axis.com) |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/arch/hwregs/asm/reg_map_asm.h> | 13 | #include <asm/arch/hwregs/asm/reg_map_asm.h> |
15 | #include <asm/arch/hwregs/asm/bif_core_defs_asm.h> | 14 | #include <asm/arch/hwregs/asm/bif_core_defs_asm.h> |
16 | #include <asm/arch/hwregs/asm/gio_defs_asm.h> | 15 | #include <asm/arch/hwregs/asm/gio_defs_asm.h> |
diff --git a/arch/cris/arch-v32/lib/nand_init.S b/arch/cris/arch-v32/lib/nand_init.S index aba5c751c282..e019816facd7 100644 --- a/arch/cris/arch-v32/lib/nand_init.S +++ b/arch/cris/arch-v32/lib/nand_init.S | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <asm/arch/hwregs/asm/pinmux_defs_asm.h> | 27 | #include <asm/arch/hwregs/asm/pinmux_defs_asm.h> |
28 | #include <asm/arch/hwregs/asm/bif_core_defs_asm.h> | 28 | #include <asm/arch/hwregs/asm/bif_core_defs_asm.h> |
29 | #include <asm/arch/hwregs/asm/config_defs_asm.h> | 29 | #include <asm/arch/hwregs/asm/config_defs_asm.h> |
30 | #include <linux/config.h> | ||
31 | 30 | ||
32 | ;; There are 8-bit NAND flashes and 16-bit NAND flashes. | 31 | ;; There are 8-bit NAND flashes and 16-bit NAND flashes. |
33 | ;; We need to treat them slightly different. | 32 | ;; We need to treat them slightly different. |
diff --git a/arch/cris/arch-v32/mm/init.c b/arch/cris/arch-v32/mm/init.c index f2fba27d822c..a84ba7ff22d2 100644 --- a/arch/cris/arch-v32/mm/init.c +++ b/arch/cris/arch-v32/mm/init.c | |||
@@ -6,12 +6,10 @@ | |||
6 | * Authors: Bjorn Wesen <bjornw@axis.com> | 6 | * Authors: Bjorn Wesen <bjornw@axis.com> |
7 | * Tobias Anderberg <tobiasa@axis.com>, CRISv32 port. | 7 | * Tobias Anderberg <tobiasa@axis.com>, CRISv32 port. |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/mmzone.h> | 9 | #include <linux/mmzone.h> |
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/bootmem.h> | 11 | #include <linux/bootmem.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
14 | #include <linux/config.h> | ||
15 | #include <asm/pgtable.h> | 13 | #include <asm/pgtable.h> |
16 | #include <asm/page.h> | 14 | #include <asm/page.h> |
17 | #include <asm/types.h> | 15 | #include <asm/types.h> |
diff --git a/arch/cris/arch-v32/vmlinux.lds.S b/arch/cris/arch-v32/vmlinux.lds.S index adb94605d92a..472d4b3c4cf4 100644 --- a/arch/cris/arch-v32/vmlinux.lds.S +++ b/arch/cris/arch-v32/vmlinux.lds.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * the kernel has booted. | 8 | * the kernel has booted. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <asm-generic/vmlinux.lds.h> | 11 | #include <asm-generic/vmlinux.lds.h> |
13 | 12 | ||
14 | jiffies = jiffies_64; | 13 | jiffies = jiffies_64; |
diff --git a/arch/cris/kernel/crisksyms.c b/arch/cris/kernel/crisksyms.c index d57859053ce7..1f20c16ac2a4 100644 --- a/arch/cris/kernel/crisksyms.c +++ b/arch/cris/kernel/crisksyms.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/user.h> | 2 | #include <linux/user.h> |
4 | #include <linux/elfcore.h> | 3 | #include <linux/elfcore.h> |
diff --git a/arch/cris/kernel/irq.c b/arch/cris/kernel/irq.c index b504def3e346..903ea62c6e21 100644 --- a/arch/cris/kernel/irq.c +++ b/arch/cris/kernel/irq.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * Naturally it's not a 1:1 relation, but there are similarities. | 19 | * Naturally it's not a 1:1 relation, but there are similarities. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/module.h> | 22 | #include <linux/module.h> |
24 | #include <linux/ptrace.h> | 23 | #include <linux/ptrace.h> |
25 | #include <linux/irq.h> | 24 | #include <linux/irq.h> |
@@ -69,7 +68,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
69 | for_each_online_cpu(j) | 68 | for_each_online_cpu(j) |
70 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 69 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); |
71 | #endif | 70 | #endif |
72 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 71 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
73 | seq_printf(p, " %s", action->name); | 72 | seq_printf(p, " %s", action->name); |
74 | 73 | ||
75 | for (action=action->next; action; action = action->next) | 74 | for (action=action->next; action; action = action->next) |
@@ -86,7 +85,7 @@ skip: | |||
86 | /* called by the assembler IRQ entry functions defined in irq.h | 85 | /* called by the assembler IRQ entry functions defined in irq.h |
87 | * to dispatch the interrupts to registred handlers | 86 | * to dispatch the interrupts to registred handlers |
88 | * interrupts are disabled upon entry - depending on if the | 87 | * interrupts are disabled upon entry - depending on if the |
89 | * interrupt was registred with SA_INTERRUPT or not, interrupts | 88 | * interrupt was registred with IRQF_DISABLED or not, interrupts |
90 | * are re-enabled or not. | 89 | * are re-enabled or not. |
91 | */ | 90 | */ |
92 | 91 | ||
diff --git a/arch/cris/kernel/setup.c b/arch/cris/kernel/setup.c index 619a6eefd893..6d941fb9f379 100644 --- a/arch/cris/kernel/setup.c +++ b/arch/cris/kernel/setup.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * This file handles the architecture-dependent parts of initialization | 10 | * This file handles the architecture-dependent parts of initialization |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
16 | #include <linux/bootmem.h> | 15 | #include <linux/bootmem.h> |
diff --git a/arch/frv/kernel/break.S b/arch/frv/kernel/break.S index 687c48d62dde..ea161f0ca427 100644 --- a/arch/frv/kernel/break.S +++ b/arch/frv/kernel/break.S | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/sys.h> | 12 | #include <linux/sys.h> |
13 | #include <linux/config.h> | ||
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/setup.h> | 14 | #include <asm/setup.h> |
16 | #include <asm/segment.h> | 15 | #include <asm/segment.h> |
diff --git a/arch/frv/kernel/cmode.S b/arch/frv/kernel/cmode.S index 6591e6a37ae9..81ba28ad2207 100644 --- a/arch/frv/kernel/cmode.S +++ b/arch/frv/kernel/cmode.S | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/sys.h> | 13 | #include <linux/sys.h> |
14 | #include <linux/config.h> | ||
15 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
16 | #include <asm/setup.h> | 15 | #include <asm/setup.h> |
17 | #include <asm/segment.h> | 16 | #include <asm/segment.h> |
diff --git a/arch/frv/kernel/entry-table.S b/arch/frv/kernel/entry-table.S index 81568acea9cd..d3b9253d862a 100644 --- a/arch/frv/kernel/entry-table.S +++ b/arch/frv/kernel/entry-table.S | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/sys.h> | 13 | #include <linux/sys.h> |
14 | #include <linux/config.h> | ||
15 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
16 | #include <asm/spr-regs.h> | 15 | #include <asm/spr-regs.h> |
17 | 16 | ||
diff --git a/arch/frv/kernel/entry.S b/arch/frv/kernel/entry.S index 81d94e41a189..2a1ff1ff8692 100644 --- a/arch/frv/kernel/entry.S +++ b/arch/frv/kernel/entry.S | |||
@@ -28,7 +28,6 @@ | |||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include <linux/sys.h> | 30 | #include <linux/sys.h> |
31 | #include <linux/config.h> | ||
32 | #include <linux/linkage.h> | 31 | #include <linux/linkage.h> |
33 | #include <asm/thread_info.h> | 32 | #include <asm/thread_info.h> |
34 | #include <asm/setup.h> | 33 | #include <asm/setup.h> |
diff --git a/arch/frv/kernel/frv_ksyms.c b/arch/frv/kernel/frv_ksyms.c index dee637fffda5..f772704b3d28 100644 --- a/arch/frv/kernel/frv_ksyms.c +++ b/arch/frv/kernel/frv_ksyms.c | |||
@@ -7,7 +7,6 @@ | |||
7 | #include <linux/elfcore.h> | 7 | #include <linux/elfcore.h> |
8 | #include <linux/in6.h> | 8 | #include <linux/in6.h> |
9 | #include <linux/interrupt.h> | 9 | #include <linux/interrupt.h> |
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/setup.h> | 11 | #include <asm/setup.h> |
13 | #include <asm/pgalloc.h> | 12 | #include <asm/pgalloc.h> |
diff --git a/arch/frv/kernel/head-mmu-fr451.S b/arch/frv/kernel/head-mmu-fr451.S index a143c2f66ee5..c8f210d84ff5 100644 --- a/arch/frv/kernel/head-mmu-fr451.S +++ b/arch/frv/kernel/head-mmu-fr451.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/ptrace.h> | 14 | #include <asm/ptrace.h> |
diff --git a/arch/frv/kernel/head-uc-fr401.S b/arch/frv/kernel/head-uc-fr401.S index 4ccf8414ae44..ee282be20fff 100644 --- a/arch/frv/kernel/head-uc-fr401.S +++ b/arch/frv/kernel/head-uc-fr401.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/ptrace.h> | 14 | #include <asm/ptrace.h> |
diff --git a/arch/frv/kernel/head-uc-fr451.S b/arch/frv/kernel/head-uc-fr451.S index 31cb54a6f080..b10d9c8295d2 100644 --- a/arch/frv/kernel/head-uc-fr451.S +++ b/arch/frv/kernel/head-uc-fr451.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/ptrace.h> | 14 | #include <asm/ptrace.h> |
diff --git a/arch/frv/kernel/head-uc-fr555.S b/arch/frv/kernel/head-uc-fr555.S index d088db2699bf..39937c19b460 100644 --- a/arch/frv/kernel/head-uc-fr555.S +++ b/arch/frv/kernel/head-uc-fr555.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/ptrace.h> | 14 | #include <asm/ptrace.h> |
diff --git a/arch/frv/kernel/head.S b/arch/frv/kernel/head.S index 29a5265489b7..47c990af2e06 100644 --- a/arch/frv/kernel/head.S +++ b/arch/frv/kernel/head.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/ptrace.h> | 14 | #include <asm/ptrace.h> |
diff --git a/arch/frv/kernel/irq-mb93091.c b/arch/frv/kernel/irq-mb93091.c index 9778e0ff7c1c..1381abcd5cc9 100644 --- a/arch/frv/kernel/irq-mb93091.c +++ b/arch/frv/kernel/irq-mb93091.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/ptrace.h> | 12 | #include <linux/ptrace.h> |
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/signal.h> | 14 | #include <linux/signal.h> |
diff --git a/arch/frv/kernel/irq-mb93093.c b/arch/frv/kernel/irq-mb93093.c index 21ca2b298247..48b2a6420888 100644 --- a/arch/frv/kernel/irq-mb93093.c +++ b/arch/frv/kernel/irq-mb93093.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/ptrace.h> | 12 | #include <linux/ptrace.h> |
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/signal.h> | 14 | #include <linux/signal.h> |
diff --git a/arch/frv/kernel/irq-mb93493.c b/arch/frv/kernel/irq-mb93493.c index c003ae5e2b30..988d035640e1 100644 --- a/arch/frv/kernel/irq-mb93493.c +++ b/arch/frv/kernel/irq-mb93493.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/ptrace.h> | 12 | #include <linux/ptrace.h> |
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/signal.h> | 14 | #include <linux/signal.h> |
diff --git a/arch/frv/kernel/irq-routing.c b/arch/frv/kernel/irq-routing.c index b90b70a761d1..53886adf47de 100644 --- a/arch/frv/kernel/irq-routing.c +++ b/arch/frv/kernel/irq-routing.c | |||
@@ -81,7 +81,7 @@ void distribute_irqs(struct irq_group *group, unsigned long irqmask) | |||
81 | if (action) { | 81 | if (action) { |
82 | int status = 0; | 82 | int status = 0; |
83 | 83 | ||
84 | // if (!(action->flags & SA_INTERRUPT)) | 84 | // if (!(action->flags & IRQF_DISABLED)) |
85 | // local_irq_enable(); | 85 | // local_irq_enable(); |
86 | 86 | ||
87 | do { | 87 | do { |
@@ -90,7 +90,7 @@ void distribute_irqs(struct irq_group *group, unsigned long irqmask) | |||
90 | action = action->next; | 90 | action = action->next; |
91 | } while (action); | 91 | } while (action); |
92 | 92 | ||
93 | if (status & SA_SAMPLE_RANDOM) | 93 | if (status & IRQF_SAMPLE_RANDOM) |
94 | add_interrupt_randomness(irq); | 94 | add_interrupt_randomness(irq); |
95 | local_irq_disable(); | 95 | local_irq_disable(); |
96 | } | 96 | } |
diff --git a/arch/frv/kernel/irq.c b/arch/frv/kernel/irq.c index 8b112b361914..08967010be04 100644 --- a/arch/frv/kernel/irq.c +++ b/arch/frv/kernel/irq.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * Naturally it's not a 1:1 relation, but there are similarities. | 16 | * Naturally it's not a 1:1 relation, but there are similarities. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/ptrace.h> | 19 | #include <linux/ptrace.h> |
21 | #include <linux/errno.h> | 20 | #include <linux/errno.h> |
22 | #include <linux/signal.h> | 21 | #include <linux/signal.h> |
@@ -342,11 +341,11 @@ asmlinkage void do_NMI(void) | |||
342 | * | 341 | * |
343 | * Flags: | 342 | * Flags: |
344 | * | 343 | * |
345 | * SA_SHIRQ Interrupt is shared | 344 | * IRQF_SHARED Interrupt is shared |
346 | * | 345 | * |
347 | * SA_INTERRUPT Disable local interrupts while processing | 346 | * IRQF_DISABLED Disable local interrupts while processing |
348 | * | 347 | * |
349 | * SA_SAMPLE_RANDOM The interrupt can be used for entropy | 348 | * IRQF_SAMPLE_RANDOM The interrupt can be used for entropy |
350 | * | 349 | * |
351 | */ | 350 | */ |
352 | 351 | ||
@@ -366,7 +365,7 @@ int request_irq(unsigned int irq, | |||
366 | * to figure out which interrupt is which (messes up the | 365 | * to figure out which interrupt is which (messes up the |
367 | * interrupt freeing logic etc). | 366 | * interrupt freeing logic etc). |
368 | */ | 367 | */ |
369 | if (irqflags & SA_SHIRQ) { | 368 | if (irqflags & IRQF_SHARED) { |
370 | if (!dev_id) | 369 | if (!dev_id) |
371 | printk("Bad boy: %s (at 0x%x) called us without a dev_id!\n", | 370 | printk("Bad boy: %s (at 0x%x) called us without a dev_id!\n", |
372 | devname, (&irq)[-1]); | 371 | devname, (&irq)[-1]); |
@@ -577,7 +576,7 @@ int setup_irq(unsigned int irq, struct irqaction *new) | |||
577 | * so we have to be careful not to interfere with a | 576 | * so we have to be careful not to interfere with a |
578 | * running system. | 577 | * running system. |
579 | */ | 578 | */ |
580 | if (new->flags & SA_SAMPLE_RANDOM) { | 579 | if (new->flags & IRQF_SAMPLE_RANDOM) { |
581 | /* | 580 | /* |
582 | * This function might sleep, we want to call it first, | 581 | * This function might sleep, we want to call it first, |
583 | * outside of the atomic block. | 582 | * outside of the atomic block. |
@@ -593,7 +592,7 @@ int setup_irq(unsigned int irq, struct irqaction *new) | |||
593 | spin_lock_irqsave(&level->lock, flags); | 592 | spin_lock_irqsave(&level->lock, flags); |
594 | 593 | ||
595 | /* can't share interrupts unless all parties agree to */ | 594 | /* can't share interrupts unless all parties agree to */ |
596 | if (level->usage != 0 && !(level->flags & new->flags & SA_SHIRQ)) { | 595 | if (level->usage != 0 && !(level->flags & new->flags & IRQF_SHARED)) { |
597 | spin_unlock_irqrestore(&level->lock,flags); | 596 | spin_unlock_irqrestore(&level->lock,flags); |
598 | return -EBUSY; | 597 | return -EBUSY; |
599 | } | 598 | } |
diff --git a/arch/frv/kernel/pm-mb93093.c b/arch/frv/kernel/pm-mb93093.c index 34d01d7dcc3b..eaa7b582ef52 100644 --- a/arch/frv/kernel/pm-mb93093.c +++ b/arch/frv/kernel/pm-mb93093.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/pm.h> | 14 | #include <linux/pm.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
diff --git a/arch/frv/kernel/pm.c b/arch/frv/kernel/pm.c index 43ce28a13a5d..e65a9f1c0c26 100644 --- a/arch/frv/kernel/pm.c +++ b/arch/frv/kernel/pm.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/pm.h> | 16 | #include <linux/pm.h> |
diff --git a/arch/frv/kernel/process.c b/arch/frv/kernel/process.c index 489e6c489cbe..eeeb1e2641d5 100644 --- a/arch/frv/kernel/process.c +++ b/arch/frv/kernel/process.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
diff --git a/arch/frv/kernel/ptrace.c b/arch/frv/kernel/ptrace.c index f953484e7d59..fcff819b4340 100644 --- a/arch/frv/kernel/ptrace.c +++ b/arch/frv/kernel/ptrace.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
19 | #include <linux/ptrace.h> | 19 | #include <linux/ptrace.h> |
20 | #include <linux/user.h> | 20 | #include <linux/user.h> |
21 | #include <linux/config.h> | ||
22 | #include <linux/security.h> | 21 | #include <linux/security.h> |
23 | #include <linux/signal.h> | 22 | #include <linux/signal.h> |
24 | 23 | ||
diff --git a/arch/frv/kernel/semaphore.c b/arch/frv/kernel/semaphore.c index 7971d680ae29..f278cdf3a72f 100644 --- a/arch/frv/kernel/semaphore.c +++ b/arch/frv/kernel/semaphore.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <asm/semaphore.h> | 15 | #include <asm/semaphore.h> |
diff --git a/arch/frv/kernel/setup.c b/arch/frv/kernel/setup.c index 1f7d65f29e78..5db3d4eff909 100644 --- a/arch/frv/kernel/setup.c +++ b/arch/frv/kernel/setup.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/version.h> | 13 | #include <linux/version.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
diff --git a/arch/frv/kernel/sleep.S b/arch/frv/kernel/sleep.S index e6079b8cac60..c9b2d51ab9ad 100644 --- a/arch/frv/kernel/sleep.S +++ b/arch/frv/kernel/sleep.S | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/sys.h> | 13 | #include <linux/sys.h> |
14 | #include <linux/config.h> | ||
15 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
16 | #include <asm/setup.h> | 15 | #include <asm/setup.h> |
17 | #include <asm/segment.h> | 16 | #include <asm/segment.h> |
diff --git a/arch/frv/kernel/switch_to.S b/arch/frv/kernel/switch_to.S index 1703dc20174e..9e5a583991a3 100644 --- a/arch/frv/kernel/switch_to.S +++ b/arch/frv/kernel/switch_to.S | |||
@@ -11,7 +11,6 @@ | |||
11 | # 2 of the License, or (at your option) any later version. | 11 | # 2 of the License, or (at your option) any later version. |
12 | # | 12 | # |
13 | ############################################################################### | 13 | ############################################################################### |
14 | #include <linux/config.h> | ||
15 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
16 | #include <asm/thread_info.h> | 15 | #include <asm/thread_info.h> |
17 | #include <asm/processor.h> | 16 | #include <asm/processor.h> |
diff --git a/arch/frv/kernel/sysctl.c b/arch/frv/kernel/sysctl.c index b908863d6593..ce676803eb6f 100644 --- a/arch/frv/kernel/sysctl.c +++ b/arch/frv/kernel/sysctl.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/slab.h> | 12 | #include <linux/slab.h> |
14 | #include <linux/sysctl.h> | 13 | #include <linux/sysctl.h> |
15 | #include <linux/proc_fs.h> | 14 | #include <linux/proc_fs.h> |
diff --git a/arch/frv/kernel/time.c b/arch/frv/kernel/time.c index 24cf85f89e40..d5b64e193d92 100644 --- a/arch/frv/kernel/time.c +++ b/arch/frv/kernel/time.c | |||
@@ -47,7 +47,7 @@ unsigned long __delay_loops_MHz; | |||
47 | static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs *regs); | 47 | static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs *regs); |
48 | 48 | ||
49 | static struct irqaction timer_irq = { | 49 | static struct irqaction timer_irq = { |
50 | timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL | 50 | timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "timer", NULL, NULL |
51 | }; | 51 | }; |
52 | 52 | ||
53 | static inline int set_rtc_mmss(unsigned long nowtime) | 53 | static inline int set_rtc_mmss(unsigned long nowtime) |
diff --git a/arch/frv/kernel/traps.c b/arch/frv/kernel/traps.c index 9eb84b2e6abc..98ce3628ebde 100644 --- a/arch/frv/kernel/traps.c +++ b/arch/frv/kernel/traps.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/signal.h> | 13 | #include <linux/signal.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
diff --git a/arch/frv/mb93090-mb00/pci-frv.c b/arch/frv/mb93090-mb00/pci-frv.c index 0a26bf6f1cd4..4f165c93be42 100644 --- a/arch/frv/mb93090-mb00/pci-frv.c +++ b/arch/frv/mb93090-mb00/pci-frv.c | |||
@@ -64,10 +64,10 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root, | |||
64 | */ | 64 | */ |
65 | void | 65 | void |
66 | pcibios_align_resource(void *data, struct resource *res, | 66 | pcibios_align_resource(void *data, struct resource *res, |
67 | unsigned long size, unsigned long align) | 67 | resource_size_t size, resource_size_t align) |
68 | { | 68 | { |
69 | if (res->flags & IORESOURCE_IO) { | 69 | if (res->flags & IORESOURCE_IO) { |
70 | unsigned long start = res->start; | 70 | resource_size_t start = res->start; |
71 | 71 | ||
72 | if (start & 0x300) { | 72 | if (start & 0x300) { |
73 | start = (start + 0x3ff) & ~0x3ff; | 73 | start = (start + 0x3ff) & ~0x3ff; |
diff --git a/arch/frv/mb93090-mb00/pci-irq.c b/arch/frv/mb93090-mb00/pci-irq.c index 45ae39d84b69..2278c80bd88c 100644 --- a/arch/frv/mb93090-mb00/pci-irq.c +++ b/arch/frv/mb93090-mb00/pci-irq.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * derived from: arch/i386/kernel/pci-irq.c: (c) 1999--2000 Martin Mares <mj@suse.cz> | 5 | * derived from: arch/i386/kernel/pci-irq.c: (c) 1999--2000 Martin Mares <mj@suse.cz> |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/types.h> | 8 | #include <linux/types.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/pci.h> | 10 | #include <linux/pci.h> |
diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c index c8817f7b8605..fb98e90c5794 100644 --- a/arch/frv/mb93090-mb00/pci-vdk.c +++ b/arch/frv/mb93090-mb00/pci-vdk.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
diff --git a/arch/frv/mm/dma-alloc.c b/arch/frv/mm/dma-alloc.c index 636b2f8b5d98..dc6522c464d4 100644 --- a/arch/frv/mm/dma-alloc.c +++ b/arch/frv/mm/dma-alloc.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * published by the Free Software Foundation. | 21 | * published by the Free Software Foundation. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <linux/signal.h> | 25 | #include <linux/signal.h> |
27 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
diff --git a/arch/frv/mm/extable.c b/arch/frv/mm/extable.c index caacf030ac75..6aea124f574d 100644 --- a/arch/frv/mm/extable.c +++ b/arch/frv/mm/extable.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/frv/mm/extable.c | 2 | * linux/arch/frv/mm/extable.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | 5 | #include <linux/module.h> |
7 | #include <linux/spinlock.h> | 6 | #include <linux/spinlock.h> |
8 | #include <asm/uaccess.h> | 7 | #include <asm/uaccess.h> |
diff --git a/arch/frv/mm/init.c b/arch/frv/mm/init.c index 8899aa1a4f06..b5b4286f9dd4 100644 --- a/arch/frv/mm/init.c +++ b/arch/frv/mm/init.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * - Copyright (C) 1995 Hamish Macdonald | 16 | * - Copyright (C) 1995 Hamish Macdonald |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/signal.h> | 19 | #include <linux/signal.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
22 | #include <linux/pagemap.h> | 21 | #include <linux/pagemap.h> |
diff --git a/arch/frv/mm/kmap.c b/arch/frv/mm/kmap.c index 40b62c5c2951..fb78be38ea02 100644 --- a/arch/frv/mm/kmap.c +++ b/arch/frv/mm/kmap.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/string.h> | 15 | #include <linux/string.h> |
diff --git a/arch/frv/mm/tlb-flush.S b/arch/frv/mm/tlb-flush.S index 6f43c74c5d95..79b3c70910ac 100644 --- a/arch/frv/mm/tlb-flush.S +++ b/arch/frv/mm/tlb-flush.S | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/sys.h> | 12 | #include <linux/sys.h> |
13 | #include <linux/config.h> | ||
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/page.h> | 14 | #include <asm/page.h> |
16 | #include <asm/ptrace.h> | 15 | #include <asm/ptrace.h> |
diff --git a/arch/frv/mm/tlb-miss.S b/arch/frv/mm/tlb-miss.S index 8729f7d7c6e0..04da67468378 100644 --- a/arch/frv/mm/tlb-miss.S +++ b/arch/frv/mm/tlb-miss.S | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/sys.h> | 12 | #include <linux/sys.h> |
13 | #include <linux/config.h> | ||
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <asm/page.h> | 14 | #include <asm/page.h> |
16 | #include <asm/pgtable.h> | 15 | #include <asm/pgtable.h> |
diff --git a/arch/frv/mm/unaligned.c b/arch/frv/mm/unaligned.c index 09b361443fc2..8f0375fc15a8 100644 --- a/arch/frv/mm/unaligned.c +++ b/arch/frv/mm/unaligned.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/signal.h> | 13 | #include <linux/signal.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
diff --git a/arch/h8300/kernel/gpio.c b/arch/h8300/kernel/gpio.c index d195568ca8a2..6a25dd5530e7 100644 --- a/arch/h8300/kernel/gpio.c +++ b/arch/h8300/kernel/gpio.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Internal I/O Port Management | 9 | * Internal I/O Port Management |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/proc_fs.h> | 13 | #include <linux/proc_fs.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
diff --git a/arch/h8300/kernel/h8300_ksyms.c b/arch/h8300/kernel/h8300_ksyms.c index f8d6dee84781..9b4be053de3c 100644 --- a/arch/h8300/kernel/h8300_ksyms.c +++ b/arch/h8300/kernel/h8300_ksyms.c | |||
@@ -7,7 +7,6 @@ | |||
7 | #include <linux/elfcore.h> | 7 | #include <linux/elfcore.h> |
8 | #include <linux/in6.h> | 8 | #include <linux/in6.h> |
9 | #include <linux/interrupt.h> | 9 | #include <linux/interrupt.h> |
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/setup.h> | 11 | #include <asm/setup.h> |
13 | #include <asm/pgalloc.h> | 12 | #include <asm/pgalloc.h> |
diff --git a/arch/h8300/kernel/ints.c b/arch/h8300/kernel/ints.c index edb3c4170013..1488b6ace18c 100644 --- a/arch/h8300/kernel/ints.c +++ b/arch/h8300/kernel/ints.c | |||
@@ -158,7 +158,7 @@ int request_irq(unsigned int irq, | |||
158 | irq_handle->devname = devname; | 158 | irq_handle->devname = devname; |
159 | irq_list[irq] = irq_handle; | 159 | irq_list[irq] = irq_handle; |
160 | 160 | ||
161 | if (irq_handle->flags & SA_SAMPLE_RANDOM) | 161 | if (irq_handle->flags & IRQF_SAMPLE_RANDOM) |
162 | rand_initialize_irq(irq); | 162 | rand_initialize_irq(irq); |
163 | 163 | ||
164 | enable_irq(irq); | 164 | enable_irq(irq); |
@@ -222,7 +222,7 @@ asmlinkage void process_int(int irq, struct pt_regs *fp) | |||
222 | if (irq_list[irq]) { | 222 | if (irq_list[irq]) { |
223 | irq_list[irq]->handler(irq, irq_list[irq]->dev_id, fp); | 223 | irq_list[irq]->handler(irq, irq_list[irq]->dev_id, fp); |
224 | irq_list[irq]->count++; | 224 | irq_list[irq]->count++; |
225 | if (irq_list[irq]->flags & SA_SAMPLE_RANDOM) | 225 | if (irq_list[irq]->flags & IRQF_SAMPLE_RANDOM) |
226 | add_interrupt_randomness(irq); | 226 | add_interrupt_randomness(irq); |
227 | } | 227 | } |
228 | } else { | 228 | } else { |
diff --git a/arch/h8300/kernel/process.c b/arch/h8300/kernel/process.c index 16ccddc69c2b..e061b63a0038 100644 --- a/arch/h8300/kernel/process.c +++ b/arch/h8300/kernel/process.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * This file handles the architecture-dependent parts of process handling.. | 22 | * This file handles the architecture-dependent parts of process handling.. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <linux/errno.h> | 25 | #include <linux/errno.h> |
27 | #include <linux/module.h> | 26 | #include <linux/module.h> |
28 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
diff --git a/arch/h8300/kernel/ptrace.c b/arch/h8300/kernel/ptrace.c index 0ff6f79b0fed..f6031373dc21 100644 --- a/arch/h8300/kernel/ptrace.c +++ b/arch/h8300/kernel/ptrace.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <linux/errno.h> | 23 | #include <linux/errno.h> |
24 | #include <linux/ptrace.h> | 24 | #include <linux/ptrace.h> |
25 | #include <linux/user.h> | 25 | #include <linux/user.h> |
26 | #include <linux/config.h> | ||
27 | #include <linux/signal.h> | 26 | #include <linux/signal.h> |
28 | 27 | ||
29 | #include <asm/uaccess.h> | 28 | #include <asm/uaccess.h> |
diff --git a/arch/h8300/kernel/semaphore.c b/arch/h8300/kernel/semaphore.c index 1ebb79baaa8c..d12cbbfe6ebd 100644 --- a/arch/h8300/kernel/semaphore.c +++ b/arch/h8300/kernel/semaphore.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * specific changes in <asm/semaphore-helper.h> | 3 | * specific changes in <asm/semaphore-helper.h> |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <linux/sched.h> | 6 | #include <linux/sched.h> |
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
9 | #include <asm/semaphore-helper.h> | 8 | #include <asm/semaphore-helper.h> |
diff --git a/arch/h8300/kernel/setup.c b/arch/h8300/kernel/setup.c index f469d9160730..1077b71d5226 100644 --- a/arch/h8300/kernel/setup.c +++ b/arch/h8300/kernel/setup.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * This file handles the architecture-dependent parts of system setup | 16 | * This file handles the architecture-dependent parts of system setup |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
22 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
diff --git a/arch/h8300/kernel/syscalls.S b/arch/h8300/kernel/syscalls.S index 79b3bda5c6e3..dab98fd99e63 100644 --- a/arch/h8300/kernel/syscalls.S +++ b/arch/h8300/kernel/syscalls.S | |||
@@ -1,5 +1,4 @@ | |||
1 | /* Systemcall Entry Table */ | 1 | /* Systemcall Entry Table */ |
2 | #include <linux/config.h> | ||
3 | #include <linux/sys.h> | 2 | #include <linux/sys.h> |
4 | #include <asm/linkage.h> | 3 | #include <asm/linkage.h> |
5 | #include <asm/unistd.h> | 4 | #include <asm/unistd.h> |
diff --git a/arch/h8300/kernel/vmlinux.lds.S b/arch/h8300/kernel/vmlinux.lds.S index 17fa11da1e4a..6406c388f88a 100644 --- a/arch/h8300/kernel/vmlinux.lds.S +++ b/arch/h8300/kernel/vmlinux.lds.S | |||
@@ -1,6 +1,5 @@ | |||
1 | #define VMLINUX_SYMBOL(_sym_) _##_sym_ | 1 | #define VMLINUX_SYMBOL(_sym_) _##_sym_ |
2 | #include <asm-generic/vmlinux.lds.h> | 2 | #include <asm-generic/vmlinux.lds.h> |
3 | #include <linux/config.h> | ||
4 | 3 | ||
5 | /* target memory map */ | 4 | /* target memory map */ |
6 | #ifdef CONFIG_H8300H_GENERIC | 5 | #ifdef CONFIG_H8300H_GENERIC |
diff --git a/arch/h8300/lib/romfs.S b/arch/h8300/lib/romfs.S index b72f93a47e31..68910d8e1ff4 100644 --- a/arch/h8300/lib/romfs.S +++ b/arch/h8300/lib/romfs.S | |||
@@ -1,7 +1,6 @@ | |||
1 | /* romfs move to __ebss */ | 1 | /* romfs move to __ebss */ |
2 | 2 | ||
3 | #include <asm/linkage.h> | 3 | #include <asm/linkage.h> |
4 | #include <linux/config.h> | ||
5 | 4 | ||
6 | #if defined(__H8300H__) | 5 | #if defined(__H8300H__) |
7 | .h8300h | 6 | .h8300h |
diff --git a/arch/h8300/mm/init.c b/arch/h8300/mm/init.c index 09efc4b1f038..d3d40bdc2d6a 100644 --- a/arch/h8300/mm/init.c +++ b/arch/h8300/mm/init.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * DEC/2000 -- linux 2.4 support <davidm@snapgear.com> | 16 | * DEC/2000 -- linux 2.4 support <davidm@snapgear.com> |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/signal.h> | 19 | #include <linux/signal.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
diff --git a/arch/h8300/mm/kmap.c b/arch/h8300/mm/kmap.c index 4101ab54fc17..26ab17286a53 100644 --- a/arch/h8300/mm/kmap.c +++ b/arch/h8300/mm/kmap.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 2000-2002 David McCullough <davidm@snapgear.com> | 8 | * Copyright (C) 2000-2002 David McCullough <davidm@snapgear.com> |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/string.h> | 13 | #include <linux/string.h> |
diff --git a/arch/h8300/mm/memory.c b/arch/h8300/mm/memory.c index 81eace93f867..ccd6ade816dd 100644 --- a/arch/h8300/mm/memory.c +++ b/arch/h8300/mm/memory.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * Copyright (C) 1995 Hamish Macdonald | 17 | * Copyright (C) 1995 Hamish Macdonald |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
23 | #include <linux/string.h> | 22 | #include <linux/string.h> |
diff --git a/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S b/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S index 31c3703d8d60..ecaeb31ae9a4 100644 --- a/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S +++ b/arch/h8300/platform/h8300h/aki3068net/crt0_ram.S | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define ASSEMBLY | 11 | #define ASSEMBLY |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
15 | 14 | ||
16 | #if !defined(CONFIG_BLKDEV_RESERVE) | 15 | #if !defined(CONFIG_BLKDEV_RESERVE) |
diff --git a/arch/h8300/platform/h8300h/aki3068net/timer.c b/arch/h8300/platform/h8300h/aki3068net/timer.c index 086efb1fd283..27cd85d56128 100644 --- a/arch/h8300/platform/h8300h/aki3068net/timer.c +++ b/arch/h8300/platform/h8300h/aki3068net/timer.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
diff --git a/arch/h8300/platform/h8300h/entry.S b/arch/h8300/platform/h8300h/entry.S index 2052dbb9483f..d2dea2432fb2 100644 --- a/arch/h8300/platform/h8300h/entry.S +++ b/arch/h8300/platform/h8300h/entry.S | |||
@@ -14,7 +14,6 @@ | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/sys.h> | 16 | #include <linux/sys.h> |
17 | #include <linux/config.h> | ||
18 | #include <asm/unistd.h> | 17 | #include <asm/unistd.h> |
19 | #include <asm/setup.h> | 18 | #include <asm/setup.h> |
20 | #include <asm/segment.h> | 19 | #include <asm/segment.h> |
diff --git a/arch/h8300/platform/h8300h/generic/crt0_ram.S b/arch/h8300/platform/h8300h/generic/crt0_ram.S index b735042a7c3f..80d0e16a4499 100644 --- a/arch/h8300/platform/h8300h/generic/crt0_ram.S +++ b/arch/h8300/platform/h8300h/generic/crt0_ram.S | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define ASSEMBLY | 11 | #define ASSEMBLY |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
15 | 14 | ||
16 | #if !defined(CONFIG_BLKDEV_RESERVE) | 15 | #if !defined(CONFIG_BLKDEV_RESERVE) |
diff --git a/arch/h8300/platform/h8300h/generic/crt0_rom.S b/arch/h8300/platform/h8300h/generic/crt0_rom.S index 2e32d8179db3..120add7ca832 100644 --- a/arch/h8300/platform/h8300h/generic/crt0_rom.S +++ b/arch/h8300/platform/h8300h/generic/crt0_rom.S | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define ASSEMBLY | 11 | #define ASSEMBLY |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
15 | 14 | ||
16 | .global SYMBOL_NAME(_start) | 15 | .global SYMBOL_NAME(_start) |
diff --git a/arch/h8300/platform/h8300h/generic/timer.c b/arch/h8300/platform/h8300h/generic/timer.c index 6590f89e521a..6f5cefe0cceb 100644 --- a/arch/h8300/platform/h8300h/generic/timer.c +++ b/arch/h8300/platform/h8300h/generic/timer.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
diff --git a/arch/h8300/platform/h8300h/h8max/crt0_ram.S b/arch/h8300/platform/h8300h/h8max/crt0_ram.S index a5c5a9156e04..efcbefb91b67 100644 --- a/arch/h8300/platform/h8300h/h8max/crt0_ram.S +++ b/arch/h8300/platform/h8300h/h8max/crt0_ram.S | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define ASSEMBLY | 11 | #define ASSEMBLY |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
15 | 14 | ||
16 | #if !defined(CONFIG_BLKDEV_RESERVE) | 15 | #if !defined(CONFIG_BLKDEV_RESERVE) |
diff --git a/arch/h8300/platform/h8300h/h8max/timer.c b/arch/h8300/platform/h8300h/h8max/timer.c index 9ac9fa6691c0..85a574afe9d0 100644 --- a/arch/h8300/platform/h8300h/h8max/timer.c +++ b/arch/h8300/platform/h8300h/h8max/timer.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
diff --git a/arch/h8300/platform/h8300h/ints_h8300h.c b/arch/h8300/platform/h8300h/ints_h8300h.c index 86a155479167..f1777119b871 100644 --- a/arch/h8300/platform/h8300h/ints_h8300h.c +++ b/arch/h8300/platform/h8300h/ints_h8300h.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | 11 | ||
diff --git a/arch/h8300/platform/h8s/edosk2674/crt0_ram.S b/arch/h8300/platform/h8s/edosk2674/crt0_ram.S index 8105dc17d735..d12b0debe478 100644 --- a/arch/h8300/platform/h8s/edosk2674/crt0_ram.S +++ b/arch/h8300/platform/h8s/edosk2674/crt0_ram.S | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define ASSEMBLY | 11 | #define ASSEMBLY |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
15 | #include <asm/regs267x.h> | 14 | #include <asm/regs267x.h> |
16 | 15 | ||
diff --git a/arch/h8300/platform/h8s/edosk2674/crt0_rom.S b/arch/h8300/platform/h8s/edosk2674/crt0_rom.S index 65748bf18556..c03d23c6fe12 100644 --- a/arch/h8300/platform/h8s/edosk2674/crt0_rom.S +++ b/arch/h8300/platform/h8s/edosk2674/crt0_rom.S | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define ASSEMBLY | 11 | #define ASSEMBLY |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
15 | #include <asm/regs267x.h> | 14 | #include <asm/regs267x.h> |
16 | 15 | ||
diff --git a/arch/h8300/platform/h8s/edosk2674/timer.c b/arch/h8300/platform/h8s/edosk2674/timer.c index 9441a4f1631f..bfb1424482f4 100644 --- a/arch/h8300/platform/h8s/edosk2674/timer.c +++ b/arch/h8300/platform/h8s/edosk2674/timer.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
diff --git a/arch/h8300/platform/h8s/entry.S b/arch/h8300/platform/h8s/entry.S index a7a53c84c801..aeb2e9faa9b2 100644 --- a/arch/h8300/platform/h8s/entry.S +++ b/arch/h8300/platform/h8s/entry.S | |||
@@ -15,7 +15,6 @@ | |||
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/sys.h> | 17 | #include <linux/sys.h> |
18 | #include <linux/config.h> | ||
19 | #include <asm/unistd.h> | 18 | #include <asm/unistd.h> |
20 | #include <asm/setup.h> | 19 | #include <asm/setup.h> |
21 | #include <asm/segment.h> | 20 | #include <asm/segment.h> |
diff --git a/arch/h8300/platform/h8s/generic/crt0_ram.S b/arch/h8300/platform/h8s/generic/crt0_ram.S index 86f450178466..b04541069976 100644 --- a/arch/h8300/platform/h8s/generic/crt0_ram.S +++ b/arch/h8300/platform/h8s/generic/crt0_ram.S | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define ASSEMBLY | 11 | #define ASSEMBLY |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
15 | #include <asm/regs267x.h> | 14 | #include <asm/regs267x.h> |
16 | 15 | ||
diff --git a/arch/h8300/platform/h8s/generic/crt0_rom.S b/arch/h8300/platform/h8s/generic/crt0_rom.S index e18e41202282..95b6f2898f52 100644 --- a/arch/h8300/platform/h8s/generic/crt0_rom.S +++ b/arch/h8300/platform/h8s/generic/crt0_rom.S | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define ASSEMBLY | 11 | #define ASSEMBLY |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/linkage.h> | 13 | #include <asm/linkage.h> |
15 | #include <asm/regs267x.h> | 14 | #include <asm/regs267x.h> |
16 | 15 | ||
diff --git a/arch/h8300/platform/h8s/generic/timer.c b/arch/h8300/platform/h8s/generic/timer.c index 633cd8e1c21d..c2211c6e79da 100644 --- a/arch/h8300/platform/h8s/generic/timer.c +++ b/arch/h8300/platform/h8s/generic/timer.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
diff --git a/arch/h8300/platform/h8s/ints.c b/arch/h8300/platform/h8s/ints.c index f6ed663bdde0..270440de4610 100644 --- a/arch/h8300/platform/h8s/ints.c +++ b/arch/h8300/platform/h8s/ints.c | |||
@@ -192,7 +192,7 @@ int request_irq(unsigned int irq, | |||
192 | irq_handle->dev_id = dev_id; | 192 | irq_handle->dev_id = dev_id; |
193 | irq_handle->devname = devname; | 193 | irq_handle->devname = devname; |
194 | irq_list[irq] = irq_handle; | 194 | irq_list[irq] = irq_handle; |
195 | if (irq_handle->flags & SA_SAMPLE_RANDOM) | 195 | if (irq_handle->flags & IRQF_SAMPLE_RANDOM) |
196 | rand_initialize_irq(irq); | 196 | rand_initialize_irq(irq); |
197 | 197 | ||
198 | /* enable interrupt */ | 198 | /* enable interrupt */ |
@@ -270,7 +270,7 @@ asmlinkage void process_int(unsigned long vec, struct pt_regs *fp) | |||
270 | if (irq_list[vec]) { | 270 | if (irq_list[vec]) { |
271 | irq_list[vec]->handler(vec, irq_list[vec]->dev_id, fp); | 271 | irq_list[vec]->handler(vec, irq_list[vec]->dev_id, fp); |
272 | irq_list[vec]->count++; | 272 | irq_list[vec]->count++; |
273 | if (irq_list[vec]->flags & SA_SAMPLE_RANDOM) | 273 | if (irq_list[vec]->flags & IRQF_SAMPLE_RANDOM) |
274 | add_interrupt_randomness(vec); | 274 | add_interrupt_randomness(vec); |
275 | } | 275 | } |
276 | } else { | 276 | } else { |
diff --git a/arch/h8300/platform/h8s/ints_h8s.c b/arch/h8300/platform/h8s/ints_h8s.c index 8268dfd12f1f..93395d2a8a07 100644 --- a/arch/h8300/platform/h8s/ints_h8s.c +++ b/arch/h8300/platform/h8s/ints_h8s.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 3bb221db164a..27d8dddbaa47 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -176,7 +176,7 @@ endchoice | |||
176 | config ACPI_SRAT | 176 | config ACPI_SRAT |
177 | bool | 177 | bool |
178 | default y | 178 | default y |
179 | depends on NUMA && (X86_SUMMIT || X86_GENERICARCH) | 179 | depends on ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH) |
180 | select ACPI_NUMA | 180 | select ACPI_NUMA |
181 | 181 | ||
182 | config HAVE_ARCH_PARSE_SRAT | 182 | config HAVE_ARCH_PARSE_SRAT |
@@ -529,6 +529,7 @@ config X86_PAE | |||
529 | bool | 529 | bool |
530 | depends on HIGHMEM64G | 530 | depends on HIGHMEM64G |
531 | default y | 531 | default y |
532 | select RESOURCES_64BIT | ||
532 | 533 | ||
533 | # Common NUMA Features | 534 | # Common NUMA Features |
534 | config NUMA | 535 | config NUMA |
@@ -737,7 +738,7 @@ config KEXEC | |||
737 | but it is independent of the system firmware. And like a reboot | 738 | but it is independent of the system firmware. And like a reboot |
738 | you can start any kernel with it, not just Linux. | 739 | you can start any kernel with it, not just Linux. |
739 | 740 | ||
740 | The name comes from the similiarity to the exec system call. | 741 | The name comes from the similarity to the exec system call. |
741 | 742 | ||
742 | It is an ongoing process to be certain the hardware in a machine | 743 | It is an ongoing process to be certain the hardware in a machine |
743 | is properly shutdown, so do not be surprised if this code does not | 744 | is properly shutdown, so do not be surprised if this code does not |
@@ -794,6 +795,9 @@ config COMPAT_VDSO | |||
794 | 795 | ||
795 | endmenu | 796 | endmenu |
796 | 797 | ||
798 | config ARCH_ENABLE_MEMORY_HOTPLUG | ||
799 | def_bool y | ||
800 | depends on HIGHMEM | ||
797 | 801 | ||
798 | menu "Power management options (ACPI, APM)" | 802 | menu "Power management options (ACPI, APM)" |
799 | depends on !X86_VOYAGER | 803 | depends on !X86_VOYAGER |
diff --git a/arch/i386/boot/setup.S b/arch/i386/boot/setup.S index ca668d9df164..0a5a3be6d69c 100644 --- a/arch/i386/boot/setup.S +++ b/arch/i386/boot/setup.S | |||
@@ -46,7 +46,6 @@ | |||
46 | * by Robert Schwebel, December 2001 <robert@schwebel.de> | 46 | * by Robert Schwebel, December 2001 <robert@schwebel.de> |
47 | */ | 47 | */ |
48 | 48 | ||
49 | #include <linux/config.h> | ||
50 | #include <asm/segment.h> | 49 | #include <asm/segment.h> |
51 | #include <linux/version.h> | 50 | #include <linux/version.h> |
52 | #include <linux/compile.h> | 51 | #include <linux/compile.h> |
diff --git a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile index 5e70c2fb273a..cbc1184e9473 100644 --- a/arch/i386/kernel/Makefile +++ b/arch/i386/kernel/Makefile | |||
@@ -38,6 +38,7 @@ obj-$(CONFIG_VM86) += vm86.o | |||
38 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o | 38 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o |
39 | obj-$(CONFIG_HPET_TIMER) += hpet.o | 39 | obj-$(CONFIG_HPET_TIMER) += hpet.o |
40 | obj-$(CONFIG_K8_NB) += k8.o | 40 | obj-$(CONFIG_K8_NB) += k8.o |
41 | obj-$(CONFIG_AUDIT) += audit.o | ||
41 | 42 | ||
42 | EXTRA_AFLAGS := -traditional | 43 | EXTRA_AFLAGS := -traditional |
43 | 44 | ||
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index 97ca17189af5..0db6387025ca 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c | |||
@@ -24,7 +24,6 @@ | |||
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/init.h> | 26 | #include <linux/init.h> |
27 | #include <linux/config.h> | ||
28 | #include <linux/acpi.h> | 27 | #include <linux/acpi.h> |
29 | #include <linux/efi.h> | 28 | #include <linux/efi.h> |
30 | #include <linux/module.h> | 29 | #include <linux/module.h> |
diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c index 50eb0e03777e..7b421b3a053e 100644 --- a/arch/i386/kernel/alternative.c +++ b/arch/i386/kernel/alternative.c | |||
@@ -168,6 +168,8 @@ void apply_alternatives(struct alt_instr *start, struct alt_instr *end) | |||
168 | } | 168 | } |
169 | } | 169 | } |
170 | 170 | ||
171 | #ifdef CONFIG_SMP | ||
172 | |||
171 | static void alternatives_smp_save(struct alt_instr *start, struct alt_instr *end) | 173 | static void alternatives_smp_save(struct alt_instr *start, struct alt_instr *end) |
172 | { | 174 | { |
173 | struct alt_instr *a; | 175 | struct alt_instr *a; |
@@ -328,6 +330,8 @@ void alternatives_smp_switch(int smp) | |||
328 | spin_unlock_irqrestore(&smp_alt, flags); | 330 | spin_unlock_irqrestore(&smp_alt, flags); |
329 | } | 331 | } |
330 | 332 | ||
333 | #endif | ||
334 | |||
331 | void __init alternative_instructions(void) | 335 | void __init alternative_instructions(void) |
332 | { | 336 | { |
333 | if (no_replacement) { | 337 | if (no_replacement) { |
@@ -349,6 +353,7 @@ void __init alternative_instructions(void) | |||
349 | smp_alt_once = 1; | 353 | smp_alt_once = 1; |
350 | #endif | 354 | #endif |
351 | 355 | ||
356 | #ifdef CONFIG_SMP | ||
352 | if (smp_alt_once) { | 357 | if (smp_alt_once) { |
353 | if (1 == num_possible_cpus()) { | 358 | if (1 == num_possible_cpus()) { |
354 | printk(KERN_INFO "SMP alternatives: switching to UP code\n"); | 359 | printk(KERN_INFO "SMP alternatives: switching to UP code\n"); |
@@ -370,4 +375,5 @@ void __init alternative_instructions(void) | |||
370 | _text, _etext); | 375 | _text, _etext); |
371 | alternatives_smp_switch(0); | 376 | alternatives_smp_switch(0); |
372 | } | 377 | } |
378 | #endif | ||
373 | } | 379 | } |
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index 7ce09492fc0c..8c844d07862f 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Mikael Pettersson : PM converted to driver model. | 14 | * Mikael Pettersson : PM converted to driver model. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | 18 | ||
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/i386/kernel/apm.c b/arch/i386/kernel/apm.c index 7c5729d1fd06..8591f2fa920c 100644 --- a/arch/i386/kernel/apm.c +++ b/arch/i386/kernel/apm.c | |||
@@ -201,7 +201,6 @@ | |||
201 | * http://www.microsoft.com/hwdev/busbios/amp_12.htm] | 201 | * http://www.microsoft.com/hwdev/busbios/amp_12.htm] |
202 | */ | 202 | */ |
203 | 203 | ||
204 | #include <linux/config.h> | ||
205 | #include <linux/module.h> | 204 | #include <linux/module.h> |
206 | 205 | ||
207 | #include <linux/poll.h> | 206 | #include <linux/poll.h> |
diff --git a/arch/i386/kernel/audit.c b/arch/i386/kernel/audit.c new file mode 100644 index 000000000000..5a53c6f371ff --- /dev/null +++ b/arch/i386/kernel/audit.c | |||
@@ -0,0 +1,23 @@ | |||
1 | #include <linux/init.h> | ||
2 | #include <linux/types.h> | ||
3 | #include <linux/audit.h> | ||
4 | #include <asm/unistd.h> | ||
5 | |||
6 | static unsigned dir_class[] = { | ||
7 | #include <asm-generic/audit_dir_write.h> | ||
8 | ~0U | ||
9 | }; | ||
10 | |||
11 | static unsigned chattr_class[] = { | ||
12 | #include <asm-generic/audit_change_attr.h> | ||
13 | ~0U | ||
14 | }; | ||
15 | |||
16 | static int __init audit_classes_init(void) | ||
17 | { | ||
18 | audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class); | ||
19 | audit_register_class(AUDIT_CLASS_CHATTR, chattr_class); | ||
20 | return 0; | ||
21 | } | ||
22 | |||
23 | __initcall(audit_classes_init); | ||
diff --git a/arch/i386/kernel/bootflag.c b/arch/i386/kernel/bootflag.c index 4c30ed01f4e1..0b9860530a6b 100644 --- a/arch/i386/kernel/bootflag.c +++ b/arch/i386/kernel/bootflag.c | |||
@@ -3,7 +3,6 @@ | |||
3 | */ | 3 | */ |
4 | 4 | ||
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <linux/types.h> | 6 | #include <linux/types.h> |
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
diff --git a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c index 5fd65325b81a..567b39bea07e 100644 --- a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c | |||
@@ -24,7 +24,6 @@ | |||
24 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 24 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
29 | #include <linux/module.h> | 28 | #include <linux/module.h> |
30 | #include <linux/init.h> | 29 | #include <linux/init.h> |
@@ -418,8 +417,14 @@ acpi_cpufreq_cpu_init ( | |||
418 | goto err_free; | 417 | goto err_free; |
419 | 418 | ||
420 | perf = data->acpi_data; | 419 | perf = data->acpi_data; |
421 | policy->cpus = perf->shared_cpu_map; | ||
422 | policy->shared_type = perf->shared_type; | 420 | policy->shared_type = perf->shared_type; |
421 | /* | ||
422 | * Will let policy->cpus know about dependency only when software | ||
423 | * coordination is required. | ||
424 | */ | ||
425 | if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL || | ||
426 | policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) | ||
427 | policy->cpus = perf->shared_cpu_map; | ||
423 | 428 | ||
424 | if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) { | 429 | if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) { |
425 | acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS; | 430 | acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS; |
diff --git a/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c b/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c index ab6504efd801..304d2eaa4a1b 100644 --- a/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c +++ b/arch/i386/kernel/cpu/cpufreq/p4-clockmod.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * | 20 | * |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <linux/init.h> | 25 | #include <linux/init.h> |
diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c index 694d4793bf6a..54382760983a 100644 --- a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * - We disable half multipliers if ACPI is used on A0 stepping CPUs. | 12 | * - We disable half multipliers if ACPI is used on A0 stepping CPUs. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | #include <linux/moduleparam.h> | 17 | #include <linux/moduleparam.h> |
diff --git a/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c b/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c index f7e4356f6820..b77f1358bd79 100644 --- a/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c +++ b/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/cpufreq.h> | 19 | #include <linux/cpufreq.h> |
20 | #include <linux/config.h> | ||
21 | #include <linux/sched.h> /* current */ | 20 | #include <linux/sched.h> /* current */ |
22 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
23 | #include <linux/compiler.h> | 22 | #include <linux/compiler.h> |
@@ -399,8 +398,14 @@ static int centrino_cpu_init_acpi(struct cpufreq_policy *policy) | |||
399 | dprintk(PFX "obtaining ACPI data failed\n"); | 398 | dprintk(PFX "obtaining ACPI data failed\n"); |
400 | return -EIO; | 399 | return -EIO; |
401 | } | 400 | } |
402 | policy->cpus = p->shared_cpu_map; | ||
403 | policy->shared_type = p->shared_type; | 401 | policy->shared_type = p->shared_type; |
402 | /* | ||
403 | * Will let policy->cpus know about dependency only when software | ||
404 | * coordination is required. | ||
405 | */ | ||
406 | if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL || | ||
407 | policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) | ||
408 | policy->cpus = p->shared_cpu_map; | ||
404 | 409 | ||
405 | /* verify the acpi_data */ | 410 | /* verify the acpi_data */ |
406 | if (p->state_count <= 1) { | 411 | if (p->state_count <= 1) { |
diff --git a/arch/i386/kernel/cpu/intel.c b/arch/i386/kernel/cpu/intel.c index 10afc645c540..5a2e270924b1 100644 --- a/arch/i386/kernel/cpu/intel.c +++ b/arch/i386/kernel/cpu/intel.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/init.h> | 1 | #include <linux/init.h> |
3 | #include <linux/kernel.h> | 2 | #include <linux/kernel.h> |
4 | 3 | ||
diff --git a/arch/i386/kernel/cpu/mcheck/k7.c b/arch/i386/kernel/cpu/mcheck/k7.c index fc5d5215e23d..b0862af595aa 100644 --- a/arch/i386/kernel/cpu/mcheck/k7.c +++ b/arch/i386/kernel/cpu/mcheck/k7.c | |||
@@ -6,7 +6,6 @@ | |||
6 | #include <linux/init.h> | 6 | #include <linux/init.h> |
7 | #include <linux/types.h> | 7 | #include <linux/types.h> |
8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
9 | #include <linux/config.h> | ||
10 | #include <linux/interrupt.h> | 9 | #include <linux/interrupt.h> |
11 | #include <linux/smp.h> | 10 | #include <linux/smp.h> |
12 | 11 | ||
diff --git a/arch/i386/kernel/cpu/mcheck/mce.c b/arch/i386/kernel/cpu/mcheck/mce.c index afa0888f9a1e..d555bec0db99 100644 --- a/arch/i386/kernel/cpu/mcheck/mce.c +++ b/arch/i386/kernel/cpu/mcheck/mce.c | |||
@@ -6,7 +6,6 @@ | |||
6 | #include <linux/init.h> | 6 | #include <linux/init.h> |
7 | #include <linux/types.h> | 7 | #include <linux/types.h> |
8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
9 | #include <linux/config.h> | ||
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
11 | #include <linux/smp.h> | 10 | #include <linux/smp.h> |
12 | #include <linux/thread_info.h> | 11 | #include <linux/thread_info.h> |
diff --git a/arch/i386/kernel/cpu/mcheck/non-fatal.c b/arch/i386/kernel/cpu/mcheck/non-fatal.c index 82dffe0d4954..1f9153ae5b03 100644 --- a/arch/i386/kernel/cpu/mcheck/non-fatal.c +++ b/arch/i386/kernel/cpu/mcheck/non-fatal.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/jiffies.h> | 13 | #include <linux/jiffies.h> |
14 | #include <linux/config.h> | ||
15 | #include <linux/workqueue.h> | 14 | #include <linux/workqueue.h> |
16 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
17 | #include <linux/smp.h> | 16 | #include <linux/smp.h> |
diff --git a/arch/i386/kernel/cpu/mcheck/p4.c b/arch/i386/kernel/cpu/mcheck/p4.c index fd2c459a31ef..b95f1b3d53aa 100644 --- a/arch/i386/kernel/cpu/mcheck/p4.c +++ b/arch/i386/kernel/cpu/mcheck/p4.c | |||
@@ -5,7 +5,6 @@ | |||
5 | #include <linux/init.h> | 5 | #include <linux/init.h> |
6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
7 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
8 | #include <linux/config.h> | ||
9 | #include <linux/interrupt.h> | 8 | #include <linux/interrupt.h> |
10 | #include <linux/smp.h> | 9 | #include <linux/smp.h> |
11 | 10 | ||
diff --git a/arch/i386/kernel/cpuid.c b/arch/i386/kernel/cpuid.c index f6dfa9fb675c..a8d3ecdc3897 100644 --- a/arch/i386/kernel/cpuid.c +++ b/arch/i386/kernel/cpuid.c | |||
@@ -24,7 +24,6 @@ | |||
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/config.h> | ||
28 | 27 | ||
29 | #include <linux/types.h> | 28 | #include <linux/types.h> |
30 | #include <linux/errno.h> | 29 | #include <linux/errno.h> |
diff --git a/arch/i386/kernel/efi.c b/arch/i386/kernel/efi.c index 9202b67c4b2e..fe158042110b 100644 --- a/arch/i386/kernel/efi.c +++ b/arch/i386/kernel/efi.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * Skip non-WB memory and ignore empty memory ranges. | 19 | * Skip non-WB memory and ignore empty memory ranges. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
24 | #include <linux/init.h> | 23 | #include <linux/init.h> |
25 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
@@ -601,8 +600,10 @@ efi_initialize_iomem_resources(struct resource *code_resource, | |||
601 | res->end = res->start + ((md->num_pages << EFI_PAGE_SHIFT) - 1); | 600 | res->end = res->start + ((md->num_pages << EFI_PAGE_SHIFT) - 1); |
602 | res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; | 601 | res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; |
603 | if (request_resource(&iomem_resource, res) < 0) | 602 | if (request_resource(&iomem_resource, res) < 0) |
604 | printk(KERN_ERR PFX "Failed to allocate res %s : 0x%lx-0x%lx\n", | 603 | printk(KERN_ERR PFX "Failed to allocate res %s : " |
605 | res->name, res->start, res->end); | 604 | "0x%llx-0x%llx\n", res->name, |
605 | (unsigned long long)res->start, | ||
606 | (unsigned long long)res->end); | ||
606 | /* | 607 | /* |
607 | * We don't know which region contains kernel data so we try | 608 | * We don't know which region contains kernel data so we try |
608 | * it repeatedly and let the resource manager test it. | 609 | * it repeatedly and let the resource manager test it. |
diff --git a/arch/i386/kernel/efi_stub.S b/arch/i386/kernel/efi_stub.S index 08c0312d9b6c..d3ee73a3eee3 100644 --- a/arch/i386/kernel/efi_stub.S +++ b/arch/i386/kernel/efi_stub.S | |||
@@ -5,7 +5,6 @@ | |||
5 | * turned off. | 5 | * turned off. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/linkage.h> | 8 | #include <linux/linkage.h> |
10 | #include <asm/page.h> | 9 | #include <asm/page.h> |
11 | #include <asm/pgtable.h> | 10 | #include <asm/pgtable.h> |
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S index fbdb933251b6..787190c45fdb 100644 --- a/arch/i386/kernel/entry.S +++ b/arch/i386/kernel/entry.S | |||
@@ -40,7 +40,6 @@ | |||
40 | * "current" is in register %ebx during any slow entries. | 40 | * "current" is in register %ebx during any slow entries. |
41 | */ | 41 | */ |
42 | 42 | ||
43 | #include <linux/config.h> | ||
44 | #include <linux/linkage.h> | 43 | #include <linux/linkage.h> |
45 | #include <asm/thread_info.h> | 44 | #include <asm/thread_info.h> |
46 | #include <asm/errno.h> | 45 | #include <asm/errno.h> |
diff --git a/arch/i386/kernel/head.S b/arch/i386/kernel/head.S index 3debc2e26542..eb79aa2fa8bb 100644 --- a/arch/i386/kernel/head.S +++ b/arch/i386/kernel/head.S | |||
@@ -8,7 +8,6 @@ | |||
8 | */ | 8 | */ |
9 | 9 | ||
10 | .text | 10 | .text |
11 | #include <linux/config.h> | ||
12 | #include <linux/threads.h> | 11 | #include <linux/threads.h> |
13 | #include <linux/linkage.h> | 12 | #include <linux/linkage.h> |
14 | #include <asm/segment.h> | 13 | #include <asm/segment.h> |
diff --git a/arch/i386/kernel/i386_ksyms.c b/arch/i386/kernel/i386_ksyms.c index 036a9857936f..e3d4b73bfdb0 100644 --- a/arch/i386/kernel/i386_ksyms.c +++ b/arch/i386/kernel/i386_ksyms.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <asm/checksum.h> | 2 | #include <asm/checksum.h> |
4 | #include <asm/desc.h> | 3 | #include <asm/desc.h> |
diff --git a/arch/i386/kernel/i387.c b/arch/i386/kernel/i387.c index c4351972d9af..665847281ed2 100644 --- a/arch/i386/kernel/i387.c +++ b/arch/i386/kernel/i387.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Gareth Hughes <gareth@valinux.com>, May 2000 | 8 | * Gareth Hughes <gareth@valinux.com>, May 2000 |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <asm/processor.h> | 13 | #include <asm/processor.h> |
diff --git a/arch/i386/kernel/i8259.c b/arch/i386/kernel/i8259.c index c1a42feba286..d4756d154f47 100644 --- a/arch/i386/kernel/i8259.c +++ b/arch/i386/kernel/i8259.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/errno.h> | 1 | #include <linux/errno.h> |
3 | #include <linux/signal.h> | 2 | #include <linux/signal.h> |
4 | #include <linux/sched.h> | 3 | #include <linux/sched.h> |
@@ -132,7 +131,7 @@ void make_8259A_irq(unsigned int irq) | |||
132 | { | 131 | { |
133 | disable_irq_nosync(irq); | 132 | disable_irq_nosync(irq); |
134 | io_apic_irqs &= ~(1<<irq); | 133 | io_apic_irqs &= ~(1<<irq); |
135 | irq_desc[irq].handler = &i8259A_irq_type; | 134 | irq_desc[irq].chip = &i8259A_irq_type; |
136 | enable_irq(irq); | 135 | enable_irq(irq); |
137 | } | 136 | } |
138 | 137 | ||
@@ -386,12 +385,12 @@ void __init init_ISA_irqs (void) | |||
386 | /* | 385 | /* |
387 | * 16 old-style INTA-cycle interrupts: | 386 | * 16 old-style INTA-cycle interrupts: |
388 | */ | 387 | */ |
389 | irq_desc[i].handler = &i8259A_irq_type; | 388 | irq_desc[i].chip = &i8259A_irq_type; |
390 | } else { | 389 | } else { |
391 | /* | 390 | /* |
392 | * 'high' PCI IRQs filled in on demand | 391 | * 'high' PCI IRQs filled in on demand |
393 | */ | 392 | */ |
394 | irq_desc[i].handler = &no_irq_type; | 393 | irq_desc[i].chip = &no_irq_type; |
395 | } | 394 | } |
396 | } | 395 | } |
397 | } | 396 | } |
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index 72ae414e4d49..4fb32c551fe0 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/init.h> | 25 | #include <linux/init.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
28 | #include <linux/config.h> | ||
29 | #include <linux/smp_lock.h> | 28 | #include <linux/smp_lock.h> |
30 | #include <linux/mc146818rtc.h> | 29 | #include <linux/mc146818rtc.h> |
31 | #include <linux/compiler.h> | 30 | #include <linux/compiler.h> |
@@ -581,7 +580,7 @@ static int balanced_irq(void *unused) | |||
581 | 580 | ||
582 | /* push everything to CPU 0 to give us a starting point. */ | 581 | /* push everything to CPU 0 to give us a starting point. */ |
583 | for (i = 0 ; i < NR_IRQS ; i++) { | 582 | for (i = 0 ; i < NR_IRQS ; i++) { |
584 | pending_irq_cpumask[i] = cpumask_of_cpu(0); | 583 | irq_desc[i].pending_mask = cpumask_of_cpu(0); |
585 | set_pending_irq(i, cpumask_of_cpu(0)); | 584 | set_pending_irq(i, cpumask_of_cpu(0)); |
586 | } | 585 | } |
587 | 586 | ||
@@ -1205,15 +1204,17 @@ static struct hw_interrupt_type ioapic_edge_type; | |||
1205 | #define IOAPIC_EDGE 0 | 1204 | #define IOAPIC_EDGE 0 |
1206 | #define IOAPIC_LEVEL 1 | 1205 | #define IOAPIC_LEVEL 1 |
1207 | 1206 | ||
1208 | static inline void ioapic_register_intr(int irq, int vector, unsigned long trigger) | 1207 | static void ioapic_register_intr(int irq, int vector, unsigned long trigger) |
1209 | { | 1208 | { |
1210 | unsigned idx = use_pci_vector() && !platform_legacy_irq(irq) ? vector : irq; | 1209 | unsigned idx; |
1210 | |||
1211 | idx = use_pci_vector() && !platform_legacy_irq(irq) ? vector : irq; | ||
1211 | 1212 | ||
1212 | if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || | 1213 | if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || |
1213 | trigger == IOAPIC_LEVEL) | 1214 | trigger == IOAPIC_LEVEL) |
1214 | irq_desc[idx].handler = &ioapic_level_type; | 1215 | irq_desc[idx].chip = &ioapic_level_type; |
1215 | else | 1216 | else |
1216 | irq_desc[idx].handler = &ioapic_edge_type; | 1217 | irq_desc[idx].chip = &ioapic_edge_type; |
1217 | set_intr_gate(vector, interrupt[idx]); | 1218 | set_intr_gate(vector, interrupt[idx]); |
1218 | } | 1219 | } |
1219 | 1220 | ||
@@ -1325,7 +1326,7 @@ static void __init setup_ExtINT_IRQ0_pin(unsigned int apic, unsigned int pin, in | |||
1325 | * The timer IRQ doesn't have to know that behind the | 1326 | * The timer IRQ doesn't have to know that behind the |
1326 | * scene we have a 8259A-master in AEOI mode ... | 1327 | * scene we have a 8259A-master in AEOI mode ... |
1327 | */ | 1328 | */ |
1328 | irq_desc[0].handler = &ioapic_edge_type; | 1329 | irq_desc[0].chip = &ioapic_edge_type; |
1329 | 1330 | ||
1330 | /* | 1331 | /* |
1331 | * Add it to the IO-APIC irq-routing table: | 1332 | * Add it to the IO-APIC irq-routing table: |
@@ -2069,6 +2070,13 @@ static void set_ioapic_affinity_vector (unsigned int vector, | |||
2069 | #endif | 2070 | #endif |
2070 | #endif | 2071 | #endif |
2071 | 2072 | ||
2073 | static int ioapic_retrigger(unsigned int irq) | ||
2074 | { | ||
2075 | send_IPI_self(IO_APIC_VECTOR(irq)); | ||
2076 | |||
2077 | return 1; | ||
2078 | } | ||
2079 | |||
2072 | /* | 2080 | /* |
2073 | * Level and edge triggered IO-APIC interrupts need different handling, | 2081 | * Level and edge triggered IO-APIC interrupts need different handling, |
2074 | * so we use two separate IRQ descriptors. Edge triggered IRQs can be | 2082 | * so we use two separate IRQ descriptors. Edge triggered IRQs can be |
@@ -2088,6 +2096,7 @@ static struct hw_interrupt_type ioapic_edge_type __read_mostly = { | |||
2088 | #ifdef CONFIG_SMP | 2096 | #ifdef CONFIG_SMP |
2089 | .set_affinity = set_ioapic_affinity, | 2097 | .set_affinity = set_ioapic_affinity, |
2090 | #endif | 2098 | #endif |
2099 | .retrigger = ioapic_retrigger, | ||
2091 | }; | 2100 | }; |
2092 | 2101 | ||
2093 | static struct hw_interrupt_type ioapic_level_type __read_mostly = { | 2102 | static struct hw_interrupt_type ioapic_level_type __read_mostly = { |
@@ -2101,6 +2110,7 @@ static struct hw_interrupt_type ioapic_level_type __read_mostly = { | |||
2101 | #ifdef CONFIG_SMP | 2110 | #ifdef CONFIG_SMP |
2102 | .set_affinity = set_ioapic_affinity, | 2111 | .set_affinity = set_ioapic_affinity, |
2103 | #endif | 2112 | #endif |
2113 | .retrigger = ioapic_retrigger, | ||
2104 | }; | 2114 | }; |
2105 | 2115 | ||
2106 | static inline void init_IO_APIC_traps(void) | 2116 | static inline void init_IO_APIC_traps(void) |
@@ -2135,7 +2145,7 @@ static inline void init_IO_APIC_traps(void) | |||
2135 | make_8259A_irq(irq); | 2145 | make_8259A_irq(irq); |
2136 | else | 2146 | else |
2137 | /* Strange. Oh, well.. */ | 2147 | /* Strange. Oh, well.. */ |
2138 | irq_desc[irq].handler = &no_irq_type; | 2148 | irq_desc[irq].chip = &no_irq_type; |
2139 | } | 2149 | } |
2140 | } | 2150 | } |
2141 | } | 2151 | } |
@@ -2351,7 +2361,7 @@ static inline void check_timer(void) | |||
2351 | printk(KERN_INFO "...trying to set up timer as Virtual Wire IRQ..."); | 2361 | printk(KERN_INFO "...trying to set up timer as Virtual Wire IRQ..."); |
2352 | 2362 | ||
2353 | disable_8259A_irq(0); | 2363 | disable_8259A_irq(0); |
2354 | irq_desc[0].handler = &lapic_irq_type; | 2364 | irq_desc[0].chip = &lapic_irq_type; |
2355 | apic_write_around(APIC_LVT0, APIC_DM_FIXED | vector); /* Fixed mode */ | 2365 | apic_write_around(APIC_LVT0, APIC_DM_FIXED | vector); /* Fixed mode */ |
2356 | enable_8259A_irq(0); | 2366 | enable_8259A_irq(0); |
2357 | 2367 | ||
diff --git a/arch/i386/kernel/irq.c b/arch/i386/kernel/irq.c index 9eec9435318e..16b491703967 100644 --- a/arch/i386/kernel/irq.c +++ b/arch/i386/kernel/irq.c | |||
@@ -82,6 +82,10 @@ fastcall unsigned int do_IRQ(struct pt_regs *regs) | |||
82 | } | 82 | } |
83 | #endif | 83 | #endif |
84 | 84 | ||
85 | if (!irq_desc[irq].handle_irq) { | ||
86 | __do_IRQ(irq, regs); | ||
87 | goto out_exit; | ||
88 | } | ||
85 | #ifdef CONFIG_4KSTACKS | 89 | #ifdef CONFIG_4KSTACKS |
86 | 90 | ||
87 | curctx = (union irq_ctx *) current_thread_info(); | 91 | curctx = (union irq_ctx *) current_thread_info(); |
@@ -121,6 +125,7 @@ fastcall unsigned int do_IRQ(struct pt_regs *regs) | |||
121 | #endif | 125 | #endif |
122 | __do_IRQ(irq, regs); | 126 | __do_IRQ(irq, regs); |
123 | 127 | ||
128 | out_exit: | ||
124 | irq_exit(); | 129 | irq_exit(); |
125 | 130 | ||
126 | return 1; | 131 | return 1; |
@@ -249,7 +254,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
249 | for_each_online_cpu(j) | 254 | for_each_online_cpu(j) |
250 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 255 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); |
251 | #endif | 256 | #endif |
252 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 257 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
253 | seq_printf(p, " %s", action->name); | 258 | seq_printf(p, " %s", action->name); |
254 | 259 | ||
255 | for (action=action->next; action; action = action->next) | 260 | for (action=action->next; action; action = action->next) |
@@ -291,13 +296,13 @@ void fixup_irqs(cpumask_t map) | |||
291 | if (irq == 2) | 296 | if (irq == 2) |
292 | continue; | 297 | continue; |
293 | 298 | ||
294 | cpus_and(mask, irq_affinity[irq], map); | 299 | cpus_and(mask, irq_desc[irq].affinity, map); |
295 | if (any_online_cpu(mask) == NR_CPUS) { | 300 | if (any_online_cpu(mask) == NR_CPUS) { |
296 | printk("Breaking affinity for irq %i\n", irq); | 301 | printk("Breaking affinity for irq %i\n", irq); |
297 | mask = map; | 302 | mask = map; |
298 | } | 303 | } |
299 | if (irq_desc[irq].handler->set_affinity) | 304 | if (irq_desc[irq].chip->set_affinity) |
300 | irq_desc[irq].handler->set_affinity(irq, mask); | 305 | irq_desc[irq].chip->set_affinity(irq, mask); |
301 | else if (irq_desc[irq].action && !(warned++)) | 306 | else if (irq_desc[irq].action && !(warned++)) |
302 | printk("Cannot set affinity for irq %i\n", irq); | 307 | printk("Cannot set affinity for irq %i\n", irq); |
303 | } | 308 | } |
diff --git a/arch/i386/kernel/kprobes.c b/arch/i386/kernel/kprobes.c index 727e419ad78a..de2e16e561c0 100644 --- a/arch/i386/kernel/kprobes.c +++ b/arch/i386/kernel/kprobes.c | |||
@@ -28,7 +28,6 @@ | |||
28 | * <prasanna@in.ibm.com> added function-return probes. | 28 | * <prasanna@in.ibm.com> added function-return probes. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/config.h> | ||
32 | #include <linux/kprobes.h> | 31 | #include <linux/kprobes.h> |
33 | #include <linux/ptrace.h> | 32 | #include <linux/ptrace.h> |
34 | #include <linux/preempt.h> | 33 | #include <linux/preempt.h> |
diff --git a/arch/i386/kernel/mca.c b/arch/i386/kernel/mca.c index 558bb207720f..cd5456f14af4 100644 --- a/arch/i386/kernel/mca.c +++ b/arch/i386/kernel/mca.c | |||
@@ -46,7 +46,6 @@ | |||
46 | #include <asm/io.h> | 46 | #include <asm/io.h> |
47 | #include <linux/proc_fs.h> | 47 | #include <linux/proc_fs.h> |
48 | #include <linux/mman.h> | 48 | #include <linux/mman.h> |
49 | #include <linux/config.h> | ||
50 | #include <linux/mm.h> | 49 | #include <linux/mm.h> |
51 | #include <linux/pagemap.h> | 50 | #include <linux/pagemap.h> |
52 | #include <linux/ioport.h> | 51 | #include <linux/ioport.h> |
diff --git a/arch/i386/kernel/microcode.c b/arch/i386/kernel/microcode.c index 0a865889b2a9..40b44cc0d14b 100644 --- a/arch/i386/kernel/microcode.c +++ b/arch/i386/kernel/microcode.c | |||
@@ -493,7 +493,6 @@ static struct file_operations microcode_fops = { | |||
493 | static struct miscdevice microcode_dev = { | 493 | static struct miscdevice microcode_dev = { |
494 | .minor = MICROCODE_MINOR, | 494 | .minor = MICROCODE_MINOR, |
495 | .name = "microcode", | 495 | .name = "microcode", |
496 | .devfs_name = "cpu/microcode", | ||
497 | .fops = µcode_fops, | 496 | .fops = µcode_fops, |
498 | }; | 497 | }; |
499 | 498 | ||
diff --git a/arch/i386/kernel/mpparse.c b/arch/i386/kernel/mpparse.c index 6b1392d33ed5..a70b5fa0ef06 100644 --- a/arch/i386/kernel/mpparse.c +++ b/arch/i386/kernel/mpparse.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/acpi.h> | 18 | #include <linux/acpi.h> |
19 | #include <linux/delay.h> | 19 | #include <linux/delay.h> |
20 | #include <linux/config.h> | ||
21 | #include <linux/bootmem.h> | 20 | #include <linux/bootmem.h> |
22 | #include <linux/smp_lock.h> | 21 | #include <linux/smp_lock.h> |
23 | #include <linux/kernel_stat.h> | 22 | #include <linux/kernel_stat.h> |
diff --git a/arch/i386/kernel/msr.c b/arch/i386/kernel/msr.c index d022cb8fd725..d535cdbbfd25 100644 --- a/arch/i386/kernel/msr.c +++ b/arch/i386/kernel/msr.c | |||
@@ -24,7 +24,6 @@ | |||
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/config.h> | ||
28 | 27 | ||
29 | #include <linux/types.h> | 28 | #include <linux/types.h> |
30 | #include <linux/errno.h> | 29 | #include <linux/errno.h> |
@@ -251,7 +250,9 @@ static int msr_class_device_create(int i) | |||
251 | return err; | 250 | return err; |
252 | } | 251 | } |
253 | 252 | ||
254 | static int msr_class_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | 253 | #ifdef CONFIG_HOTPLUG_CPU |
254 | static int msr_class_cpu_callback(struct notifier_block *nfb, | ||
255 | unsigned long action, void *hcpu) | ||
255 | { | 256 | { |
256 | unsigned int cpu = (unsigned long)hcpu; | 257 | unsigned int cpu = (unsigned long)hcpu; |
257 | 258 | ||
@@ -270,6 +271,7 @@ static struct notifier_block __cpuinitdata msr_class_cpu_notifier = | |||
270 | { | 271 | { |
271 | .notifier_call = msr_class_cpu_callback, | 272 | .notifier_call = msr_class_cpu_callback, |
272 | }; | 273 | }; |
274 | #endif | ||
273 | 275 | ||
274 | static int __init msr_init(void) | 276 | static int __init msr_init(void) |
275 | { | 277 | { |
@@ -292,7 +294,7 @@ static int __init msr_init(void) | |||
292 | if (err != 0) | 294 | if (err != 0) |
293 | goto out_class; | 295 | goto out_class; |
294 | } | 296 | } |
295 | register_cpu_notifier(&msr_class_cpu_notifier); | 297 | register_hotcpu_notifier(&msr_class_cpu_notifier); |
296 | 298 | ||
297 | err = 0; | 299 | err = 0; |
298 | goto out; | 300 | goto out; |
@@ -315,7 +317,7 @@ static void __exit msr_exit(void) | |||
315 | class_device_destroy(msr_class, MKDEV(MSR_MAJOR, cpu)); | 317 | class_device_destroy(msr_class, MKDEV(MSR_MAJOR, cpu)); |
316 | class_destroy(msr_class); | 318 | class_destroy(msr_class); |
317 | unregister_chrdev(MSR_MAJOR, "cpu/msr"); | 319 | unregister_chrdev(MSR_MAJOR, "cpu/msr"); |
318 | unregister_cpu_notifier(&msr_class_cpu_notifier); | 320 | unregister_hotcpu_notifier(&msr_class_cpu_notifier); |
319 | } | 321 | } |
320 | 322 | ||
321 | module_init(msr_init); | 323 | module_init(msr_init); |
diff --git a/arch/i386/kernel/numaq.c b/arch/i386/kernel/numaq.c index 0caf14652bad..9000d82c6dc0 100644 --- a/arch/i386/kernel/numaq.c +++ b/arch/i386/kernel/numaq.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * Send feedback to <gone@us.ibm.com> | 23 | * Send feedback to <gone@us.ibm.com> |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
28 | #include <linux/bootmem.h> | 27 | #include <linux/bootmem.h> |
29 | #include <linux/mmzone.h> | 28 | #include <linux/mmzone.h> |
diff --git a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c index 6946b06e2784..94e2c87edeaa 100644 --- a/arch/i386/kernel/process.c +++ b/arch/i386/kernel/process.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/user.h> | 28 | #include <linux/user.h> |
29 | #include <linux/a.out.h> | 29 | #include <linux/a.out.h> |
30 | #include <linux/interrupt.h> | 30 | #include <linux/interrupt.h> |
31 | #include <linux/config.h> | ||
32 | #include <linux/utsname.h> | 31 | #include <linux/utsname.h> |
33 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
34 | #include <linux/reboot.h> | 33 | #include <linux/reboot.h> |
diff --git a/arch/i386/kernel/quirks.c b/arch/i386/kernel/quirks.c index 87ccdac84928..9f6ab1789bb0 100644 --- a/arch/i386/kernel/quirks.c +++ b/arch/i386/kernel/quirks.c | |||
@@ -1,7 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * This file contains work-arounds for x86 and x86_64 platform bugs. | 2 | * This file contains work-arounds for x86 and x86_64 platform bugs. |
3 | */ | 3 | */ |
4 | #include <linux/config.h> | ||
5 | #include <linux/pci.h> | 4 | #include <linux/pci.h> |
6 | #include <linux/irq.h> | 5 | #include <linux/irq.h> |
7 | 6 | ||
diff --git a/arch/i386/kernel/reboot.c b/arch/i386/kernel/reboot.c index d207242976d3..54cfeabbc5e4 100644 --- a/arch/i386/kernel/reboot.c +++ b/arch/i386/kernel/reboot.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/i386/kernel/reboot.c | 2 | * linux/arch/i386/kernel/reboot.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/mm.h> | 5 | #include <linux/mm.h> |
7 | #include <linux/module.h> | 6 | #include <linux/module.h> |
8 | #include <linux/delay.h> | 7 | #include <linux/delay.h> |
diff --git a/arch/i386/kernel/scx200.c b/arch/i386/kernel/scx200.c index 9bf590cefc7d..c7d3df23f589 100644 --- a/arch/i386/kernel/scx200.c +++ b/arch/i386/kernel/scx200.c | |||
@@ -4,7 +4,6 @@ | |||
4 | 4 | ||
5 | National Semiconductor SCx200 support. */ | 5 | National Semiconductor SCx200 support. */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/module.h> | 7 | #include <linux/module.h> |
9 | #include <linux/errno.h> | 8 | #include <linux/errno.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
diff --git a/arch/i386/kernel/semaphore.c b/arch/i386/kernel/semaphore.c index 967dc74df9ee..98352c374c76 100644 --- a/arch/i386/kernel/semaphore.c +++ b/arch/i386/kernel/semaphore.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * | 12 | * |
13 | * rw semaphores implemented November 1999 by Benjamin LaHaise <bcrl@kvack.org> | 13 | * rw semaphores implemented November 1999 by Benjamin LaHaise <bcrl@kvack.org> |
14 | */ | 14 | */ |
15 | #include <linux/config.h> | ||
16 | #include <asm/semaphore.h> | 15 | #include <asm/semaphore.h> |
17 | 16 | ||
18 | /* | 17 | /* |
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index 4a65040cc624..08c00d20f162 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * This file handles the architecture-dependent parts of initialization | 23 | * This file handles the architecture-dependent parts of initialization |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
28 | #include <linux/mm.h> | 27 | #include <linux/mm.h> |
29 | #include <linux/mmzone.h> | 28 | #include <linux/mmzone.h> |
@@ -1314,8 +1313,10 @@ legacy_init_iomem_resources(struct resource *code_resource, struct resource *dat | |||
1314 | probe_roms(); | 1313 | probe_roms(); |
1315 | for (i = 0; i < e820.nr_map; i++) { | 1314 | for (i = 0; i < e820.nr_map; i++) { |
1316 | struct resource *res; | 1315 | struct resource *res; |
1316 | #ifndef CONFIG_RESOURCES_64BIT | ||
1317 | if (e820.map[i].addr + e820.map[i].size > 0x100000000ULL) | 1317 | if (e820.map[i].addr + e820.map[i].size > 0x100000000ULL) |
1318 | continue; | 1318 | continue; |
1319 | #endif | ||
1319 | res = kzalloc(sizeof(struct resource), GFP_ATOMIC); | 1320 | res = kzalloc(sizeof(struct resource), GFP_ATOMIC); |
1320 | switch (e820.map[i].type) { | 1321 | switch (e820.map[i].type) { |
1321 | case E820_RAM: res->name = "System RAM"; break; | 1322 | case E820_RAM: res->name = "System RAM"; break; |
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index 89e7315e539c..6f5fea05f1d7 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c | |||
@@ -34,7 +34,6 @@ | |||
34 | * Rusty Russell : Hacked into shape for new "hotplug" boot process. */ | 34 | * Rusty Russell : Hacked into shape for new "hotplug" boot process. */ |
35 | 35 | ||
36 | #include <linux/module.h> | 36 | #include <linux/module.h> |
37 | #include <linux/config.h> | ||
38 | #include <linux/init.h> | 37 | #include <linux/init.h> |
39 | #include <linux/kernel.h> | 38 | #include <linux/kernel.h> |
40 | 39 | ||
diff --git a/arch/i386/kernel/srat.c b/arch/i386/kernel/srat.c index 989c85255dbe..b1809c9a0899 100644 --- a/arch/i386/kernel/srat.c +++ b/arch/i386/kernel/srat.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * | 23 | * |
24 | * Send feedback to Pat Gaughen <gone@us.ibm.com> | 24 | * Send feedback to Pat Gaughen <gone@us.ibm.com> |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
28 | #include <linux/bootmem.h> | 27 | #include <linux/bootmem.h> |
29 | #include <linux/mmzone.h> | 28 | #include <linux/mmzone.h> |
diff --git a/arch/i386/kernel/time.c b/arch/i386/kernel/time.c index 5f43d0410122..316421a7f56f 100644 --- a/arch/i386/kernel/time.c +++ b/arch/i386/kernel/time.c | |||
@@ -60,7 +60,6 @@ | |||
60 | #include "mach_time.h" | 60 | #include "mach_time.h" |
61 | 61 | ||
62 | #include <linux/timex.h> | 62 | #include <linux/timex.h> |
63 | #include <linux/config.h> | ||
64 | 63 | ||
65 | #include <asm/hpet.h> | 64 | #include <asm/hpet.h> |
66 | 65 | ||
diff --git a/arch/i386/kernel/time_hpet.c b/arch/i386/kernel/time_hpet.c index a529f0cdce17..14a1376fedd1 100644 --- a/arch/i386/kernel/time_hpet.c +++ b/arch/i386/kernel/time_hpet.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <asm/apic.h> | 18 | #include <asm/apic.h> |
19 | 19 | ||
20 | #include <linux/timex.h> | 20 | #include <linux/timex.h> |
21 | #include <linux/config.h> | ||
22 | 21 | ||
23 | #include <asm/hpet.h> | 22 | #include <asm/hpet.h> |
24 | #include <linux/hpet.h> | 23 | #include <linux/hpet.h> |
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c index 78464097470a..e8c6086b2aa1 100644 --- a/arch/i386/kernel/traps.c +++ b/arch/i386/kernel/traps.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * 'Traps.c' handles hardware traps and faults after we have saved some | 11 | * 'Traps.c' handles hardware traps and faults after we have saved some |
12 | * state in 'asm.s'. | 12 | * state in 'asm.s'. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/string.h> | 16 | #include <linux/string.h> |
diff --git a/arch/i386/kernel/vm86.c b/arch/i386/kernel/vm86.c index 00e0118e717c..8355d8d87d18 100644 --- a/arch/i386/kernel/vm86.c +++ b/arch/i386/kernel/vm86.c | |||
@@ -31,7 +31,6 @@ | |||
31 | */ | 31 | */ |
32 | 32 | ||
33 | #include <linux/capability.h> | 33 | #include <linux/capability.h> |
34 | #include <linux/config.h> | ||
35 | #include <linux/errno.h> | 34 | #include <linux/errno.h> |
36 | #include <linux/interrupt.h> | 35 | #include <linux/interrupt.h> |
37 | #include <linux/sched.h> | 36 | #include <linux/sched.h> |
diff --git a/arch/i386/lib/checksum.S b/arch/i386/lib/checksum.S index 94c7867ddc33..75ffd02654fc 100644 --- a/arch/i386/lib/checksum.S +++ b/arch/i386/lib/checksum.S | |||
@@ -25,7 +25,6 @@ | |||
25 | * 2 of the License, or (at your option) any later version. | 25 | * 2 of the License, or (at your option) any later version. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include <linux/config.h> | ||
29 | #include <asm/errno.h> | 28 | #include <asm/errno.h> |
30 | 29 | ||
31 | /* | 30 | /* |
diff --git a/arch/i386/lib/memcpy.c b/arch/i386/lib/memcpy.c index 891b2359d18a..8ac51b82a632 100644 --- a/arch/i386/lib/memcpy.c +++ b/arch/i386/lib/memcpy.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/string.h> | 1 | #include <linux/string.h> |
3 | #include <linux/module.h> | 2 | #include <linux/module.h> |
4 | 3 | ||
diff --git a/arch/i386/lib/mmx.c b/arch/i386/lib/mmx.c index 2afda94dffd3..28084d2e8dd4 100644 --- a/arch/i386/lib/mmx.c +++ b/arch/i386/lib/mmx.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/types.h> | 1 | #include <linux/types.h> |
3 | #include <linux/string.h> | 2 | #include <linux/string.h> |
4 | #include <linux/sched.h> | 3 | #include <linux/sched.h> |
diff --git a/arch/i386/lib/usercopy.c b/arch/i386/lib/usercopy.c index c5aa65f7c02a..4b75212ab6dd 100644 --- a/arch/i386/lib/usercopy.c +++ b/arch/i386/lib/usercopy.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright 1997 Andi Kleen <ak@muc.de> | 5 | * Copyright 1997 Andi Kleen <ak@muc.de> |
6 | * Copyright 1997 Linus Torvalds | 6 | * Copyright 1997 Linus Torvalds |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/mm.h> | 8 | #include <linux/mm.h> |
10 | #include <linux/highmem.h> | 9 | #include <linux/highmem.h> |
11 | #include <linux/blkdev.h> | 10 | #include <linux/blkdev.h> |
diff --git a/arch/i386/mach-default/setup.c b/arch/i386/mach-default/setup.c index 004837c58793..c511705c386c 100644 --- a/arch/i386/mach-default/setup.c +++ b/arch/i386/mach-default/setup.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Machine specific setup for generic | 2 | * Machine specific setup for generic |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/smp.h> | 5 | #include <linux/smp.h> |
7 | #include <linux/init.h> | 6 | #include <linux/init.h> |
8 | #include <linux/interrupt.h> | 7 | #include <linux/interrupt.h> |
@@ -80,7 +79,7 @@ void __init trap_init_hook(void) | |||
80 | { | 79 | { |
81 | } | 80 | } |
82 | 81 | ||
83 | static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL}; | 82 | static struct irqaction irq0 = { timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "timer", NULL, NULL}; |
84 | 83 | ||
85 | /** | 84 | /** |
86 | * time_init_hook - do any specific initialisations for the system timer. | 85 | * time_init_hook - do any specific initialisations for the system timer. |
diff --git a/arch/i386/mach-generic/bigsmp.c b/arch/i386/mach-generic/bigsmp.c index 037b2af1a1f4..ef7a6e6fcb9f 100644 --- a/arch/i386/mach-generic/bigsmp.c +++ b/arch/i386/mach-generic/bigsmp.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * Drives the local APIC in "clustered mode". | 3 | * Drives the local APIC in "clustered mode". |
4 | */ | 4 | */ |
5 | #define APIC_DEFINITION 1 | 5 | #define APIC_DEFINITION 1 |
6 | #include <linux/config.h> | ||
7 | #include <linux/threads.h> | 6 | #include <linux/threads.h> |
8 | #include <linux/cpumask.h> | 7 | #include <linux/cpumask.h> |
9 | #include <asm/mpspec.h> | 8 | #include <asm/mpspec.h> |
diff --git a/arch/i386/mach-generic/default.c b/arch/i386/mach-generic/default.c index 7da14e9a79c3..96c19821e47d 100644 --- a/arch/i386/mach-generic/default.c +++ b/arch/i386/mach-generic/default.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Default generic APIC driver. This handles upto 8 CPUs. | 2 | * Default generic APIC driver. This handles upto 8 CPUs. |
3 | */ | 3 | */ |
4 | #define APIC_DEFINITION 1 | 4 | #define APIC_DEFINITION 1 |
5 | #include <linux/config.h> | ||
6 | #include <linux/threads.h> | 5 | #include <linux/threads.h> |
7 | #include <linux/cpumask.h> | 6 | #include <linux/cpumask.h> |
8 | #include <asm/mpspec.h> | 7 | #include <asm/mpspec.h> |
diff --git a/arch/i386/mach-generic/es7000.c b/arch/i386/mach-generic/es7000.c index 48d3ec37241b..845cdd0b3593 100644 --- a/arch/i386/mach-generic/es7000.c +++ b/arch/i386/mach-generic/es7000.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * APIC driver for the Unisys ES7000 chipset. | 2 | * APIC driver for the Unisys ES7000 chipset. |
3 | */ | 3 | */ |
4 | #define APIC_DEFINITION 1 | 4 | #define APIC_DEFINITION 1 |
5 | #include <linux/config.h> | ||
6 | #include <linux/threads.h> | 5 | #include <linux/threads.h> |
7 | #include <linux/cpumask.h> | 6 | #include <linux/cpumask.h> |
8 | #include <asm/mpspec.h> | 7 | #include <asm/mpspec.h> |
diff --git a/arch/i386/mach-generic/probe.c b/arch/i386/mach-generic/probe.c index d55fa7b187ab..bcd1bcfaa723 100644 --- a/arch/i386/mach-generic/probe.c +++ b/arch/i386/mach-generic/probe.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Generic x86 APIC driver probe layer. | 4 | * Generic x86 APIC driver probe layer. |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/threads.h> | 6 | #include <linux/threads.h> |
8 | #include <linux/cpumask.h> | 7 | #include <linux/cpumask.h> |
9 | #include <linux/string.h> | 8 | #include <linux/string.h> |
diff --git a/arch/i386/mach-generic/summit.c b/arch/i386/mach-generic/summit.c index 65ddf74d7f25..b73501ddd653 100644 --- a/arch/i386/mach-generic/summit.c +++ b/arch/i386/mach-generic/summit.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * APIC driver for the IBM "Summit" chipset. | 2 | * APIC driver for the IBM "Summit" chipset. |
3 | */ | 3 | */ |
4 | #define APIC_DEFINITION 1 | 4 | #define APIC_DEFINITION 1 |
5 | #include <linux/config.h> | ||
6 | #include <linux/threads.h> | 5 | #include <linux/threads.h> |
7 | #include <linux/cpumask.h> | 6 | #include <linux/cpumask.h> |
8 | #include <asm/mpspec.h> | 7 | #include <asm/mpspec.h> |
diff --git a/arch/i386/mach-visws/mpparse.c b/arch/i386/mach-visws/mpparse.c index 5f3d7e6de37b..f3c74fab8b95 100644 --- a/arch/i386/mach-visws/mpparse.c +++ b/arch/i386/mach-visws/mpparse.c | |||
@@ -1,5 +1,4 @@ | |||
1 | 1 | ||
2 | #include <linux/config.h> | ||
3 | #include <linux/init.h> | 2 | #include <linux/init.h> |
4 | #include <linux/smp.h> | 3 | #include <linux/smp.h> |
5 | 4 | ||
diff --git a/arch/i386/mach-visws/setup.c b/arch/i386/mach-visws/setup.c index 8a9e1a6f745d..885c7cbfd478 100644 --- a/arch/i386/mach-visws/setup.c +++ b/arch/i386/mach-visws/setup.c | |||
@@ -115,7 +115,7 @@ void __init pre_setup_arch_hook() | |||
115 | 115 | ||
116 | static struct irqaction irq0 = { | 116 | static struct irqaction irq0 = { |
117 | .handler = timer_interrupt, | 117 | .handler = timer_interrupt, |
118 | .flags = SA_INTERRUPT, | 118 | .flags = IRQF_DISABLED, |
119 | .name = "timer", | 119 | .name = "timer", |
120 | }; | 120 | }; |
121 | 121 | ||
@@ -140,8 +140,8 @@ void __init time_init_hook(void) | |||
140 | 140 | ||
141 | #define MB (1024 * 1024) | 141 | #define MB (1024 * 1024) |
142 | 142 | ||
143 | static unsigned long sgivwfb_mem_phys; | 143 | unsigned long sgivwfb_mem_phys; |
144 | static unsigned long sgivwfb_mem_size; | 144 | unsigned long sgivwfb_mem_size; |
145 | 145 | ||
146 | long long mem_size __initdata = 0; | 146 | long long mem_size __initdata = 0; |
147 | 147 | ||
@@ -177,8 +177,4 @@ char * __init machine_specific_memory_setup(void) | |||
177 | add_memory_region(sgivwfb_mem_phys, sgivwfb_mem_size, E820_RESERVED); | 177 | add_memory_region(sgivwfb_mem_phys, sgivwfb_mem_size, E820_RESERVED); |
178 | 178 | ||
179 | return "PROM"; | 179 | return "PROM"; |
180 | |||
181 | /* Remove gcc warnings */ | ||
182 | (void) sanitize_e820_map(NULL, NULL); | ||
183 | (void) copy_e820_map(NULL, 0); | ||
184 | } | 180 | } |
diff --git a/arch/i386/mach-visws/traps.c b/arch/i386/mach-visws/traps.c index 964353992031..5199bd03254a 100644 --- a/arch/i386/mach-visws/traps.c +++ b/arch/i386/mach-visws/traps.c | |||
@@ -1,6 +1,5 @@ | |||
1 | /* VISWS traps */ | 1 | /* VISWS traps */ |
2 | 2 | ||
3 | #include <linux/config.h> | ||
4 | #include <linux/sched.h> | 3 | #include <linux/sched.h> |
5 | #include <linux/kernel.h> | 4 | #include <linux/kernel.h> |
6 | #include <linux/init.h> | 5 | #include <linux/init.h> |
diff --git a/arch/i386/mach-visws/visws_apic.c b/arch/i386/mach-visws/visws_apic.c index 3e64fb721291..828522541a88 100644 --- a/arch/i386/mach-visws/visws_apic.c +++ b/arch/i386/mach-visws/visws_apic.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * 25/11/2002 - Updated for 2.5 by Andrey Panin <pazke@orbita1.ru> | 16 | * 25/11/2002 - Updated for 2.5 by Andrey Panin <pazke@orbita1.ru> |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/kernel_stat.h> | 19 | #include <linux/kernel_stat.h> |
21 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
22 | #include <linux/smp_lock.h> | 21 | #include <linux/smp_lock.h> |
@@ -278,22 +277,22 @@ void init_VISWS_APIC_irqs(void) | |||
278 | irq_desc[i].depth = 1; | 277 | irq_desc[i].depth = 1; |
279 | 278 | ||
280 | if (i == 0) { | 279 | if (i == 0) { |
281 | irq_desc[i].handler = &cobalt_irq_type; | 280 | irq_desc[i].chip = &cobalt_irq_type; |
282 | } | 281 | } |
283 | else if (i == CO_IRQ_IDE0) { | 282 | else if (i == CO_IRQ_IDE0) { |
284 | irq_desc[i].handler = &cobalt_irq_type; | 283 | irq_desc[i].chip = &cobalt_irq_type; |
285 | } | 284 | } |
286 | else if (i == CO_IRQ_IDE1) { | 285 | else if (i == CO_IRQ_IDE1) { |
287 | irq_desc[i].handler = &cobalt_irq_type; | 286 | irq_desc[i].chip = &cobalt_irq_type; |
288 | } | 287 | } |
289 | else if (i == CO_IRQ_8259) { | 288 | else if (i == CO_IRQ_8259) { |
290 | irq_desc[i].handler = &piix4_master_irq_type; | 289 | irq_desc[i].chip = &piix4_master_irq_type; |
291 | } | 290 | } |
292 | else if (i < CO_IRQ_APIC0) { | 291 | else if (i < CO_IRQ_APIC0) { |
293 | irq_desc[i].handler = &piix4_virtual_irq_type; | 292 | irq_desc[i].chip = &piix4_virtual_irq_type; |
294 | } | 293 | } |
295 | else if (IS_CO_APIC(i)) { | 294 | else if (IS_CO_APIC(i)) { |
296 | irq_desc[i].handler = &cobalt_irq_type; | 295 | irq_desc[i].chip = &cobalt_irq_type; |
297 | } | 296 | } |
298 | } | 297 | } |
299 | 298 | ||
diff --git a/arch/i386/mach-voyager/setup.c b/arch/i386/mach-voyager/setup.c index defc6ebbd565..cfa16c151c8f 100644 --- a/arch/i386/mach-voyager/setup.c +++ b/arch/i386/mach-voyager/setup.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Machine specific setup for generic | 2 | * Machine specific setup for generic |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/init.h> | 5 | #include <linux/init.h> |
7 | #include <linux/interrupt.h> | 6 | #include <linux/interrupt.h> |
8 | #include <asm/arch_hooks.h> | 7 | #include <asm/arch_hooks.h> |
@@ -41,7 +40,7 @@ void __init trap_init_hook(void) | |||
41 | { | 40 | { |
42 | } | 41 | } |
43 | 42 | ||
44 | static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL}; | 43 | static struct irqaction irq0 = { timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "timer", NULL, NULL}; |
45 | 44 | ||
46 | void __init time_init_hook(void) | 45 | void __init time_init_hook(void) |
47 | { | 46 | { |
diff --git a/arch/i386/mach-voyager/voyager_basic.c b/arch/i386/mach-voyager/voyager_basic.c index b584060ec004..80b7f2fc4f46 100644 --- a/arch/i386/mach-voyager/voyager_basic.c +++ b/arch/i386/mach-voyager/voyager_basic.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * voyager_smp.c - Voyager SMP hal (emulates linux smp.c) | 12 | * voyager_smp.c - Voyager SMP hal (emulates linux smp.c) |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/types.h> | 16 | #include <linux/types.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
diff --git a/arch/i386/mach-voyager/voyager_cat.c b/arch/i386/mach-voyager/voyager_cat.c index 10d21df14531..f50c6c6ad680 100644 --- a/arch/i386/mach-voyager/voyager_cat.c +++ b/arch/i386/mach-voyager/voyager_cat.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * of bit shift manipulations to send and receive packets on the | 16 | * of bit shift manipulations to send and receive packets on the |
17 | * serial bus */ | 17 | * serial bus */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/types.h> | 19 | #include <linux/types.h> |
21 | #include <linux/completion.h> | 20 | #include <linux/completion.h> |
22 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
diff --git a/arch/i386/mach-voyager/voyager_smp.c b/arch/i386/mach-voyager/voyager_smp.c index 8242af9ebc6f..6c86575ffdcb 100644 --- a/arch/i386/mach-voyager/voyager_smp.c +++ b/arch/i386/mach-voyager/voyager_smp.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * This file provides all the same external entries as smp.c but uses | 9 | * This file provides all the same external entries as smp.c but uses |
10 | * the voyager hal to provide the functionality | 10 | * the voyager hal to provide the functionality |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
15 | #include <linux/kernel_stat.h> | 14 | #include <linux/kernel_stat.h> |
@@ -1419,7 +1418,7 @@ smp_intr_init(void) | |||
1419 | * This is for later: first 16 correspond to PC IRQs; next 16 | 1418 | * This is for later: first 16 correspond to PC IRQs; next 16 |
1420 | * are Primary MC IRQs and final 16 are Secondary MC IRQs */ | 1419 | * are Primary MC IRQs and final 16 are Secondary MC IRQs */ |
1421 | for(i = 0; i < 48; i++) | 1420 | for(i = 0; i < 48; i++) |
1422 | irq_desc[i].handler = &vic_irq_type; | 1421 | irq_desc[i].chip = &vic_irq_type; |
1423 | } | 1422 | } |
1424 | 1423 | ||
1425 | /* send a CPI at level cpi to a set of cpus in cpuset (set 1 bit per | 1424 | /* send a CPI at level cpi to a set of cpus in cpuset (set 1 bit per |
@@ -1938,3 +1937,9 @@ smp_cpus_done(unsigned int max_cpus) | |||
1938 | { | 1937 | { |
1939 | zap_low_mappings(); | 1938 | zap_low_mappings(); |
1940 | } | 1939 | } |
1940 | |||
1941 | void __init | ||
1942 | smp_setup_processor_id(void) | ||
1943 | { | ||
1944 | current_thread_info()->cpu = hard_smp_processor_id(); | ||
1945 | } | ||
diff --git a/arch/i386/mach-voyager/voyager_thread.c b/arch/i386/mach-voyager/voyager_thread.c index 2b03884fdb2a..50f6de6ff64d 100644 --- a/arch/i386/mach-voyager/voyager_thread.c +++ b/arch/i386/mach-voyager/voyager_thread.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * */ | 14 | * */ |
15 | 15 | ||
16 | #include <linux/module.h> | 16 | #include <linux/module.h> |
17 | #include <linux/config.h> | ||
18 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
19 | #include <linux/kernel_stat.h> | 18 | #include <linux/kernel_stat.h> |
20 | #include <linux/delay.h> | 19 | #include <linux/delay.h> |
diff --git a/arch/i386/mm/boot_ioremap.c b/arch/i386/mm/boot_ioremap.c index 523b30634e0a..5d44f4f5ff59 100644 --- a/arch/i386/mm/boot_ioremap.c +++ b/arch/i386/mm/boot_ioremap.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * boot_pte_t is defined only if this all works correctly | 15 | * boot_pte_t is defined only if this all works correctly |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #undef CONFIG_X86_PAE | 18 | #undef CONFIG_X86_PAE |
20 | #include <asm/page.h> | 19 | #include <asm/page.h> |
21 | #include <asm/pgtable.h> | 20 | #include <asm/pgtable.h> |
diff --git a/arch/i386/mm/discontig.c b/arch/i386/mm/discontig.c index fe6eb901326e..7c392dc553b8 100644 --- a/arch/i386/mm/discontig.c +++ b/arch/i386/mm/discontig.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <linux/mm.h> | 25 | #include <linux/mm.h> |
27 | #include <linux/bootmem.h> | 26 | #include <linux/bootmem.h> |
28 | #include <linux/mmzone.h> | 27 | #include <linux/mmzone.h> |
@@ -43,7 +42,7 @@ EXPORT_SYMBOL(node_data); | |||
43 | bootmem_data_t node0_bdata; | 42 | bootmem_data_t node0_bdata; |
44 | 43 | ||
45 | /* | 44 | /* |
46 | * numa interface - we expect the numa architecture specfic code to have | 45 | * numa interface - we expect the numa architecture specific code to have |
47 | * populated the following initialisation. | 46 | * populated the following initialisation. |
48 | * | 47 | * |
49 | * 1) node_online_map - the map of all nodes configured (online) in the system | 48 | * 1) node_online_map - the map of all nodes configured (online) in the system |
diff --git a/arch/i386/mm/extable.c b/arch/i386/mm/extable.c index f706449319c4..de03c5430abc 100644 --- a/arch/i386/mm/extable.c +++ b/arch/i386/mm/extable.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/i386/mm/extable.c | 2 | * linux/arch/i386/mm/extable.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | 5 | #include <linux/module.h> |
7 | #include <linux/spinlock.h> | 6 | #include <linux/spinlock.h> |
8 | #include <asm/uaccess.h> | 7 | #include <asm/uaccess.h> |
diff --git a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c index 6ee7faaf2c1b..f7279468323a 100644 --- a/arch/i386/mm/fault.c +++ b/arch/i386/mm/fault.c | |||
@@ -389,7 +389,7 @@ fastcall void __kprobes do_page_fault(struct pt_regs *regs, | |||
389 | /* When running in the kernel we expect faults to occur only to | 389 | /* When running in the kernel we expect faults to occur only to |
390 | * addresses in user space. All other faults represent errors in the | 390 | * addresses in user space. All other faults represent errors in the |
391 | * kernel and should generate an OOPS. Unfortunatly, in the case of an | 391 | * kernel and should generate an OOPS. Unfortunatly, in the case of an |
392 | * erroneous fault occuring in a code path which already holds mmap_sem | 392 | * erroneous fault occurring in a code path which already holds mmap_sem |
393 | * we will deadlock attempting to validate the fault against the | 393 | * we will deadlock attempting to validate the fault against the |
394 | * address space. Luckily the kernel only validly references user | 394 | * address space. Luckily the kernel only validly references user |
395 | * space from well defined areas of code, which are listed in the | 395 | * space from well defined areas of code, which are listed in the |
diff --git a/arch/i386/mm/hugetlbpage.c b/arch/i386/mm/hugetlbpage.c index a7d891585411..1719a8141f81 100644 --- a/arch/i386/mm/hugetlbpage.c +++ b/arch/i386/mm/hugetlbpage.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 2002, Rohit Seth <rohit.seth@intel.com> | 4 | * Copyright (C) 2002, Rohit Seth <rohit.seth@intel.com> |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
9 | #include <linux/fs.h> | 8 | #include <linux/fs.h> |
10 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
diff --git a/arch/i386/mm/init.c b/arch/i386/mm/init.c index f84b16e007ff..89e8486aac34 100644 --- a/arch/i386/mm/init.c +++ b/arch/i386/mm/init.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999 | 6 | * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999 |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
11 | #include <linux/signal.h> | 10 | #include <linux/signal.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
@@ -726,16 +725,15 @@ static int noinline do_test_wp_bit(void) | |||
726 | 725 | ||
727 | #ifdef CONFIG_DEBUG_RODATA | 726 | #ifdef CONFIG_DEBUG_RODATA |
728 | 727 | ||
729 | extern char __start_rodata, __end_rodata; | ||
730 | void mark_rodata_ro(void) | 728 | void mark_rodata_ro(void) |
731 | { | 729 | { |
732 | unsigned long addr = (unsigned long)&__start_rodata; | 730 | unsigned long addr = (unsigned long)__start_rodata; |
733 | 731 | ||
734 | for (; addr < (unsigned long)&__end_rodata; addr += PAGE_SIZE) | 732 | for (; addr < (unsigned long)__end_rodata; addr += PAGE_SIZE) |
735 | change_page_attr(virt_to_page(addr), 1, PAGE_KERNEL_RO); | 733 | change_page_attr(virt_to_page(addr), 1, PAGE_KERNEL_RO); |
736 | 734 | ||
737 | printk ("Write protecting the kernel read-only data: %luk\n", | 735 | printk("Write protecting the kernel read-only data: %uk\n", |
738 | (unsigned long)(&__end_rodata - &__start_rodata) >> 10); | 736 | (__end_rodata - __start_rodata) >> 10); |
739 | 737 | ||
740 | /* | 738 | /* |
741 | * change_page_attr() requires a global_flush_tlb() call after it. | 739 | * change_page_attr() requires a global_flush_tlb() call after it. |
diff --git a/arch/i386/mm/pageattr.c b/arch/i386/mm/pageattr.c index 353a836ed63c..8564b6ae17e3 100644 --- a/arch/i386/mm/pageattr.c +++ b/arch/i386/mm/pageattr.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * Thanks to Ben LaHaise for precious feedback. | 3 | * Thanks to Ben LaHaise for precious feedback. |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <linux/mm.h> | 6 | #include <linux/mm.h> |
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
9 | #include <linux/highmem.h> | 8 | #include <linux/highmem.h> |
diff --git a/arch/i386/mm/pgtable.c b/arch/i386/mm/pgtable.c index 2889567e21a1..bd98768d8764 100644 --- a/arch/i386/mm/pgtable.c +++ b/arch/i386/mm/pgtable.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/i386/mm/pgtable.c | 2 | * linux/arch/i386/mm/pgtable.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/sched.h> | 5 | #include <linux/sched.h> |
7 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
8 | #include <linux/errno.h> | 7 | #include <linux/errno.h> |
@@ -30,7 +29,6 @@ void show_mem(void) | |||
30 | struct page *page; | 29 | struct page *page; |
31 | pg_data_t *pgdat; | 30 | pg_data_t *pgdat; |
32 | unsigned long i; | 31 | unsigned long i; |
33 | struct page_state ps; | ||
34 | unsigned long flags; | 32 | unsigned long flags; |
35 | 33 | ||
36 | printk(KERN_INFO "Mem-info:\n"); | 34 | printk(KERN_INFO "Mem-info:\n"); |
@@ -58,12 +56,13 @@ void show_mem(void) | |||
58 | printk(KERN_INFO "%d pages shared\n", shared); | 56 | printk(KERN_INFO "%d pages shared\n", shared); |
59 | printk(KERN_INFO "%d pages swap cached\n", cached); | 57 | printk(KERN_INFO "%d pages swap cached\n", cached); |
60 | 58 | ||
61 | get_page_state(&ps); | 59 | printk(KERN_INFO "%lu pages dirty\n", global_page_state(NR_FILE_DIRTY)); |
62 | printk(KERN_INFO "%lu pages dirty\n", ps.nr_dirty); | 60 | printk(KERN_INFO "%lu pages writeback\n", |
63 | printk(KERN_INFO "%lu pages writeback\n", ps.nr_writeback); | 61 | global_page_state(NR_WRITEBACK)); |
64 | printk(KERN_INFO "%lu pages mapped\n", ps.nr_mapped); | 62 | printk(KERN_INFO "%lu pages mapped\n", global_page_state(NR_FILE_MAPPED)); |
65 | printk(KERN_INFO "%lu pages slab\n", ps.nr_slab); | 63 | printk(KERN_INFO "%lu pages slab\n", global_page_state(NR_SLAB)); |
66 | printk(KERN_INFO "%lu pages pagetables\n", ps.nr_page_table_pages); | 64 | printk(KERN_INFO "%lu pages pagetables\n", |
65 | global_page_state(NR_PAGETABLE)); | ||
67 | } | 66 | } |
68 | 67 | ||
69 | /* | 68 | /* |
diff --git a/arch/i386/pci/i386.c b/arch/i386/pci/i386.c index a151f7a99f5e..10154a2cac68 100644 --- a/arch/i386/pci/i386.c +++ b/arch/i386/pci/i386.c | |||
@@ -48,10 +48,10 @@ | |||
48 | */ | 48 | */ |
49 | void | 49 | void |
50 | pcibios_align_resource(void *data, struct resource *res, | 50 | pcibios_align_resource(void *data, struct resource *res, |
51 | unsigned long size, unsigned long align) | 51 | resource_size_t size, resource_size_t align) |
52 | { | 52 | { |
53 | if (res->flags & IORESOURCE_IO) { | 53 | if (res->flags & IORESOURCE_IO) { |
54 | unsigned long start = res->start; | 54 | resource_size_t start = res->start; |
55 | 55 | ||
56 | if (start & 0x300) { | 56 | if (start & 0x300) { |
57 | start = (start + 0x3ff) & ~0x3ff; | 57 | start = (start + 0x3ff) & ~0x3ff; |
diff --git a/arch/i386/pci/init.c b/arch/i386/pci/init.c index f9156d3ac723..c7650a7e0b07 100644 --- a/arch/i386/pci/init.c +++ b/arch/i386/pci/init.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/pci.h> | 1 | #include <linux/pci.h> |
3 | #include <linux/init.h> | 2 | #include <linux/init.h> |
4 | #include "pci.h" | 3 | #include "pci.h" |
diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c index 8ce69508f3c7..4a8995c9c762 100644 --- a/arch/i386/pci/irq.c +++ b/arch/i386/pci/irq.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * (c) 1999--2000 Martin Mares <mj@ucw.cz> | 4 | * (c) 1999--2000 Martin Mares <mj@ucw.cz> |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/types.h> | 7 | #include <linux/types.h> |
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/pci.h> | 9 | #include <linux/pci.h> |
@@ -865,7 +864,7 @@ static int pcibios_lookup_irq(struct pci_dev *dev, int assign) | |||
865 | for (i = 0; i < 16; i++) { | 864 | for (i = 0; i < 16; i++) { |
866 | if (!(mask & (1 << i))) | 865 | if (!(mask & (1 << i))) |
867 | continue; | 866 | continue; |
868 | if (pirq_penalty[i] < pirq_penalty[newirq] && can_request_irq(i, SA_SHIRQ)) | 867 | if (pirq_penalty[i] < pirq_penalty[newirq] && can_request_irq(i, IRQF_SHARED)) |
869 | newirq = i; | 868 | newirq = i; |
870 | } | 869 | } |
871 | } | 870 | } |
diff --git a/arch/i386/pci/visws.c b/arch/i386/pci/visws.c index 6c17433fdf7d..f1b486d4190b 100644 --- a/arch/i386/pci/visws.c +++ b/arch/i386/pci/visws.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * (c) 1999--2000 Martin Mares <mj@ucw.cz> | 4 | * (c) 1999--2000 Martin Mares <mj@ucw.cz> |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/pci.h> | 8 | #include <linux/pci.h> |
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
diff --git a/arch/i386/power/cpu.c b/arch/i386/power/cpu.c index e6517915fe3e..5a1abeff033b 100644 --- a/arch/i386/power/cpu.c +++ b/arch/i386/power/cpu.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (c) 2001 Patrick Mochel <mochel@osdl.org> | 7 | * Copyright (c) 2001 Patrick Mochel <mochel@osdl.org> |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/suspend.h> | 11 | #include <linux/suspend.h> |
13 | #include <asm/mtrr.h> | 12 | #include <asm/mtrr.h> |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index a56df7bf022d..47de9ee6bcd6 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -70,6 +70,11 @@ config DMA_IS_DMA32 | |||
70 | bool | 70 | bool |
71 | default y | 71 | default y |
72 | 72 | ||
73 | config DMA_IS_NORMAL | ||
74 | bool | ||
75 | depends on IA64_SGI_SN2 | ||
76 | default y | ||
77 | |||
73 | choice | 78 | choice |
74 | prompt "System type" | 79 | prompt "System type" |
75 | default IA64_GENERIC | 80 | default IA64_GENERIC |
@@ -271,6 +276,9 @@ config HOTPLUG_CPU | |||
271 | can be controlled through /sys/devices/system/cpu/cpu#. | 276 | can be controlled through /sys/devices/system/cpu/cpu#. |
272 | Say N if you want to disable CPU hotplug. | 277 | Say N if you want to disable CPU hotplug. |
273 | 278 | ||
279 | config ARCH_ENABLE_MEMORY_HOTPLUG | ||
280 | def_bool y | ||
281 | |||
274 | config SCHED_SMT | 282 | config SCHED_SMT |
275 | bool "SMT scheduler support" | 283 | bool "SMT scheduler support" |
276 | depends on SMP | 284 | depends on SMP |
@@ -489,6 +497,10 @@ config GENERIC_PENDING_IRQ | |||
489 | depends on GENERIC_HARDIRQS && SMP | 497 | depends on GENERIC_HARDIRQS && SMP |
490 | default y | 498 | default y |
491 | 499 | ||
500 | config IRQ_PER_CPU | ||
501 | bool | ||
502 | default y | ||
503 | |||
492 | source "arch/ia64/hp/sim/Kconfig" | 504 | source "arch/ia64/hp/sim/Kconfig" |
493 | 505 | ||
494 | menu "Instrumentation Support" | 506 | menu "Instrumentation Support" |
diff --git a/arch/ia64/dig/setup.c b/arch/ia64/dig/setup.c index 38aa9c108857..5ab12b8351d0 100644 --- a/arch/ia64/dig/setup.c +++ b/arch/ia64/dig/setup.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1999 Walt Drummond <drummond@valinux.com> | 8 | * Copyright (C) 1999 Walt Drummond <drummond@valinux.com> |
9 | * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com> | 9 | * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com> |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | 11 | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c index 5825ddee58d6..db8e1fcfa047 100644 --- a/arch/ia64/hp/common/sba_iommu.c +++ b/arch/ia64/hp/common/sba_iommu.c | |||
@@ -19,7 +19,6 @@ | |||
19 | ** | 19 | ** |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/types.h> | 22 | #include <linux/types.h> |
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
diff --git a/arch/ia64/hp/sim/boot/bootloader.c b/arch/ia64/hp/sim/boot/bootloader.c index 51a7b7b4dd0e..c5e9baafafe0 100644 --- a/arch/ia64/hp/sim/boot/bootloader.c +++ b/arch/ia64/hp/sim/boot/bootloader.c | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | struct task_struct; /* forward declaration for elf.h */ | 12 | struct task_struct; /* forward declaration for elf.h */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/elf.h> | 14 | #include <linux/elf.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
diff --git a/arch/ia64/hp/sim/boot/fw-emu.c b/arch/ia64/hp/sim/boot/fw-emu.c index 30fdfb1d0a53..5a0a7afcfc3a 100644 --- a/arch/ia64/hp/sim/boot/fw-emu.c +++ b/arch/ia64/hp/sim/boot/fw-emu.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1998-2001 Hewlett-Packard Co | 4 | * Copyright (C) 1998-2001 Hewlett-Packard Co |
5 | * David Mosberger-Tang <davidm@hpl.hp.com> | 5 | * David Mosberger-Tang <davidm@hpl.hp.com> |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | 7 | ||
9 | #ifdef CONFIG_PCI | 8 | #ifdef CONFIG_PCI |
10 | # include <linux/pci.h> | 9 | # include <linux/pci.h> |
diff --git a/arch/ia64/hp/sim/hpsim_console.c b/arch/ia64/hp/sim/hpsim_console.c index 5deff21e5877..6e149c8ab835 100644 --- a/arch/ia64/hp/sim/hpsim_console.c +++ b/arch/ia64/hp/sim/hpsim_console.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * David Mosberger-Tang <davidm@hpl.hp.com> | 5 | * David Mosberger-Tang <davidm@hpl.hp.com> |
6 | * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com> | 6 | * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com> |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | 8 | ||
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
diff --git a/arch/ia64/hp/sim/hpsim_irq.c b/arch/ia64/hp/sim/hpsim_irq.c index c0d25a2a3e9c..8145547bb52d 100644 --- a/arch/ia64/hp/sim/hpsim_irq.c +++ b/arch/ia64/hp/sim/hpsim_irq.c | |||
@@ -44,8 +44,8 @@ hpsim_irq_init (void) | |||
44 | int i; | 44 | int i; |
45 | 45 | ||
46 | for (i = 0; i < NR_IRQS; ++i) { | 46 | for (i = 0; i < NR_IRQS; ++i) { |
47 | idesc = irq_descp(i); | 47 | idesc = irq_desc + i; |
48 | if (idesc->handler == &no_irq_type) | 48 | if (idesc->chip == &no_irq_type) |
49 | idesc->handler = &irq_type_hp_sim; | 49 | idesc->chip = &irq_type_hp_sim; |
50 | } | 50 | } |
51 | } | 51 | } |
diff --git a/arch/ia64/hp/sim/hpsim_setup.c b/arch/ia64/hp/sim/hpsim_setup.c index 694fc86bfbd5..f2297192a582 100644 --- a/arch/ia64/hp/sim/hpsim_setup.c +++ b/arch/ia64/hp/sim/hpsim_setup.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * David Mosberger-Tang <davidm@hpl.hp.com> | 5 | * David Mosberger-Tang <davidm@hpl.hp.com> |
6 | * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com> | 6 | * Copyright (C) 1999 Vijay Chander <vijay@engr.sgi.com> |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/console.h> | 8 | #include <linux/console.h> |
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | #include <linux/kdev_t.h> | 10 | #include <linux/kdev_t.h> |
diff --git a/arch/ia64/hp/sim/simeth.c b/arch/ia64/hp/sim/simeth.c index 0639ec0ed015..b5195be62818 100644 --- a/arch/ia64/hp/sim/simeth.c +++ b/arch/ia64/hp/sim/simeth.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1999-2001, 2003 Hewlett-Packard Co | 4 | * Copyright (C) 1999-2001, 2003 Hewlett-Packard Co |
5 | * Stephane Eranian <eranian@hpl.hp.com> | 5 | * Stephane Eranian <eranian@hpl.hp.com> |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/sched.h> | 8 | #include <linux/sched.h> |
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c index 0e5c6ae50228..0daacc20ed36 100644 --- a/arch/ia64/hp/sim/simserial.c +++ b/arch/ia64/hp/sim/simserial.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * 07/30/02 D. Mosberger Replace sti()/cli() with explicit spinlocks & local irq masking | 16 | * 07/30/02 D. Mosberger Replace sti()/cli() with explicit spinlocks & local irq masking |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/errno.h> | 20 | #include <linux/errno.h> |
22 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
@@ -47,7 +46,7 @@ | |||
47 | 46 | ||
48 | #define NR_PORTS 1 /* only one port for now */ | 47 | #define NR_PORTS 1 /* only one port for now */ |
49 | 48 | ||
50 | #define IRQ_T(info) ((info->flags & ASYNC_SHARE_IRQ) ? SA_SHIRQ : SA_INTERRUPT) | 49 | #define IRQ_T(info) ((info->flags & ASYNC_SHARE_IRQ) ? IRQF_SHARED : IRQF_DISABLED) |
51 | 50 | ||
52 | #define SSC_GETCHAR 21 | 51 | #define SSC_GETCHAR 21 |
53 | 52 | ||
diff --git a/arch/ia64/ia32/Makefile b/arch/ia64/ia32/Makefile index 61cb60affd95..baad8c7699c0 100644 --- a/arch/ia64/ia32/Makefile +++ b/arch/ia64/ia32/Makefile | |||
@@ -4,6 +4,7 @@ | |||
4 | 4 | ||
5 | obj-y := ia32_entry.o sys_ia32.o ia32_signal.o \ | 5 | obj-y := ia32_entry.o sys_ia32.o ia32_signal.o \ |
6 | ia32_support.o ia32_traps.o binfmt_elf32.o ia32_ldt.o | 6 | ia32_support.o ia32_traps.o binfmt_elf32.o ia32_ldt.o |
7 | obj-$(CONFIG_AUDIT) += audit.o | ||
7 | 8 | ||
8 | # Don't let GCC uses f16-f31 so that save_ia32_fpstate_live() and | 9 | # Don't let GCC uses f16-f31 so that save_ia32_fpstate_live() and |
9 | # restore_ia32_fpstate_live() can be sure the live register contain user-level state. | 10 | # restore_ia32_fpstate_live() can be sure the live register contain user-level state. |
diff --git a/arch/ia64/ia32/audit.c b/arch/ia64/ia32/audit.c new file mode 100644 index 000000000000..ab94f2e58cdd --- /dev/null +++ b/arch/ia64/ia32/audit.c | |||
@@ -0,0 +1,11 @@ | |||
1 | #include <asm-i386/unistd.h> | ||
2 | |||
3 | unsigned ia32_dir_class[] = { | ||
4 | #include <asm-generic/audit_dir_write.h> | ||
5 | ~0U | ||
6 | }; | ||
7 | |||
8 | unsigned ia32_chattr_class[] = { | ||
9 | #include <asm-generic/audit_change_attr.h> | ||
10 | ~0U | ||
11 | }; | ||
diff --git a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c index da03c06744f1..daa6b91bc921 100644 --- a/arch/ia64/ia32/binfmt_elf32.c +++ b/arch/ia64/ia32/binfmt_elf32.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 04/13/01 D. Mosberger dropped saving tssd in ar.k1---it's not needed | 9 | * 04/13/01 D. Mosberger dropped saving tssd in ar.k1---it's not needed |
10 | * 09/14/01 D. Mosberger fixed memory management for gdt/tss page | 10 | * 09/14/01 D. Mosberger fixed memory management for gdt/tss page |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | 12 | ||
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
diff --git a/arch/ia64/ia32/ia32priv.h b/arch/ia64/ia32/ia32priv.h index ccb98ed48e58..703a67c934f8 100644 --- a/arch/ia64/ia32/ia32priv.h +++ b/arch/ia64/ia32/ia32priv.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_IA64_IA32_PRIV_H | 1 | #ifndef _ASM_IA64_IA32_PRIV_H |
2 | #define _ASM_IA64_IA32_PRIV_H | 2 | #define _ASM_IA64_IA32_PRIV_H |
3 | 3 | ||
4 | #include <linux/config.h> | ||
5 | 4 | ||
6 | #include <asm/ia32.h> | 5 | #include <asm/ia32.h> |
7 | 6 | ||
diff --git a/arch/ia64/ia32/sys_ia32.c b/arch/ia64/ia32/sys_ia32.c index 5366b3b23d09..6aa3c51619ca 100644 --- a/arch/ia64/ia32/sys_ia32.c +++ b/arch/ia64/ia32/sys_ia32.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * environment. | 14 | * environment. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/syscalls.h> | 18 | #include <linux/syscalls.h> |
20 | #include <linux/sysctl.h> | 19 | #include <linux/sysctl.h> |
diff --git a/arch/ia64/kernel/Makefile b/arch/ia64/kernel/Makefile index 09a0dbc17fb6..0e4553f320bf 100644 --- a/arch/ia64/kernel/Makefile +++ b/arch/ia64/kernel/Makefile | |||
@@ -29,6 +29,7 @@ obj-$(CONFIG_CPU_FREQ) += cpufreq/ | |||
29 | obj-$(CONFIG_IA64_MCA_RECOVERY) += mca_recovery.o | 29 | obj-$(CONFIG_IA64_MCA_RECOVERY) += mca_recovery.o |
30 | obj-$(CONFIG_KPROBES) += kprobes.o jprobes.o | 30 | obj-$(CONFIG_KPROBES) += kprobes.o jprobes.o |
31 | obj-$(CONFIG_IA64_UNCACHED_ALLOCATOR) += uncached.o | 31 | obj-$(CONFIG_IA64_UNCACHED_ALLOCATOR) += uncached.o |
32 | obj-$(CONFIG_AUDIT) += audit.o | ||
32 | mca_recovery-y += mca_drv.o mca_drv_asm.o | 33 | mca_recovery-y += mca_drv.o mca_drv_asm.o |
33 | 34 | ||
34 | # The gate DSO image is built using a special linker script. | 35 | # The gate DSO image is built using a special linker script. |
diff --git a/arch/ia64/kernel/acpi-ext.c b/arch/ia64/kernel/acpi-ext.c index fff82929d225..2a1ef742e223 100644 --- a/arch/ia64/kernel/acpi-ext.c +++ b/arch/ia64/kernel/acpi-ext.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/acpi.h> | 13 | #include <linux/acpi.h> |
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index ca16d9556bde..ccdef199d915 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -32,7 +32,6 @@ | |||
32 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 32 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
33 | */ | 33 | */ |
34 | 34 | ||
35 | #include <linux/config.h> | ||
36 | #include <linux/module.h> | 35 | #include <linux/module.h> |
37 | #include <linux/init.h> | 36 | #include <linux/init.h> |
38 | #include <linux/kernel.h> | 37 | #include <linux/kernel.h> |
diff --git a/arch/ia64/kernel/asm-offsets.c b/arch/ia64/kernel/asm-offsets.c index 16e7b6600ae6..75a2a2c12258 100644 --- a/arch/ia64/kernel/asm-offsets.c +++ b/arch/ia64/kernel/asm-offsets.c | |||
@@ -5,7 +5,6 @@ | |||
5 | */ | 5 | */ |
6 | 6 | ||
7 | #define ASM_OFFSETS_C 1 | 7 | #define ASM_OFFSETS_C 1 |
8 | #include <linux/config.h> | ||
9 | 8 | ||
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
11 | 10 | ||
diff --git a/arch/ia64/kernel/audit.c b/arch/ia64/kernel/audit.c new file mode 100644 index 000000000000..f2512931ccaf --- /dev/null +++ b/arch/ia64/kernel/audit.c | |||
@@ -0,0 +1,29 @@ | |||
1 | #include <linux/init.h> | ||
2 | #include <linux/types.h> | ||
3 | #include <linux/audit.h> | ||
4 | #include <asm/unistd.h> | ||
5 | |||
6 | static unsigned dir_class[] = { | ||
7 | #include <asm-generic/audit_dir_write.h> | ||
8 | ~0U | ||
9 | }; | ||
10 | |||
11 | static unsigned chattr_class[] = { | ||
12 | #include <asm-generic/audit_change_attr.h> | ||
13 | ~0U | ||
14 | }; | ||
15 | |||
16 | static int __init audit_classes_init(void) | ||
17 | { | ||
18 | #ifdef CONFIG_IA32_SUPPORT | ||
19 | extern __u32 ia32_dir_class[]; | ||
20 | extern __u32 ia32_chattr_class[]; | ||
21 | audit_register_class(AUDIT_CLASS_DIR_WRITE_32, ia32_dir_class); | ||
22 | audit_register_class(AUDIT_CLASS_CHATTR_32, ia32_chattr_class); | ||
23 | #endif | ||
24 | audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class); | ||
25 | audit_register_class(AUDIT_CLASS_CHATTR, chattr_class); | ||
26 | return 0; | ||
27 | } | ||
28 | |||
29 | __initcall(audit_classes_init); | ||
diff --git a/arch/ia64/kernel/cpufreq/acpi-cpufreq.c b/arch/ia64/kernel/cpufreq/acpi-cpufreq.c index 5a1bf815282d..86faf221a070 100644 --- a/arch/ia64/kernel/cpufreq/acpi-cpufreq.c +++ b/arch/ia64/kernel/cpufreq/acpi-cpufreq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> | 9 | * Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index c33d0ba7e300..b13c0555c3ba 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * Goutham Rao: <goutham.rao@intel.com> | 20 | * Goutham Rao: <goutham.rao@intel.com> |
21 | * Skip non-WB memory and ignore empty memory ranges. | 21 | * Skip non-WB memory and ignore empty memory ranges. |
22 | */ | 22 | */ |
23 | #include <linux/config.h> | ||
24 | #include <linux/module.h> | 23 | #include <linux/module.h> |
25 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
26 | #include <linux/init.h> | 25 | #include <linux/init.h> |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index 32c999f58d12..12701cf32d99 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
@@ -31,7 +31,6 @@ | |||
31 | * pNonSys: !pSys | 31 | * pNonSys: !pSys |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <linux/config.h> | ||
35 | 34 | ||
36 | #include <asm/asmmacro.h> | 35 | #include <asm/asmmacro.h> |
37 | #include <asm/cache.h> | 36 | #include <asm/cache.h> |
diff --git a/arch/ia64/kernel/entry.h b/arch/ia64/kernel/entry.h index ebc3dfb88826..b83edac02965 100644 --- a/arch/ia64/kernel/entry.h +++ b/arch/ia64/kernel/entry.h | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | /* | 2 | /* |
4 | * Preserved registers that are shared between code in ivt.S and | 3 | * Preserved registers that are shared between code in ivt.S and |
diff --git a/arch/ia64/kernel/gate.S b/arch/ia64/kernel/gate.S index 86064ca98952..3274850cf272 100644 --- a/arch/ia64/kernel/gate.S +++ b/arch/ia64/kernel/gate.S | |||
@@ -6,7 +6,6 @@ | |||
6 | * David Mosberger-Tang <davidm@hpl.hp.com> | 6 | * David Mosberger-Tang <davidm@hpl.hp.com> |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | 9 | ||
11 | #include <asm/asmmacro.h> | 10 | #include <asm/asmmacro.h> |
12 | #include <asm/errno.h> | 11 | #include <asm/errno.h> |
diff --git a/arch/ia64/kernel/gate.lds.S b/arch/ia64/kernel/gate.lds.S index 7c99e6ec3daf..cc35cddfd4cf 100644 --- a/arch/ia64/kernel/gate.lds.S +++ b/arch/ia64/kernel/gate.lds.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * in one page). This script controls its layout. | 4 | * in one page). This script controls its layout. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | 7 | ||
9 | #include <asm/system.h> | 8 | #include <asm/system.h> |
10 | 9 | ||
diff --git a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S index f1778a84ea61..561b8f1d3bc7 100644 --- a/arch/ia64/kernel/head.S +++ b/arch/ia64/kernel/head.S | |||
@@ -19,7 +19,6 @@ | |||
19 | * Support for CPU Hotplug | 19 | * Support for CPU Hotplug |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | 22 | ||
24 | #include <asm/asmmacro.h> | 23 | #include <asm/asmmacro.h> |
25 | #include <asm/fpu.h> | 24 | #include <asm/fpu.h> |
diff --git a/arch/ia64/kernel/ia64_ksyms.c b/arch/ia64/kernel/ia64_ksyms.c index bbcfd08378a6..b7cf651ceb14 100644 --- a/arch/ia64/kernel/ia64_ksyms.c +++ b/arch/ia64/kernel/ia64_ksyms.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * All other exports should be put directly after the definition. | 5 | * All other exports should be put directly after the definition. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
10 | 9 | ||
11 | #include <linux/string.h> | 10 | #include <linux/string.h> |
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c index d58c1c5c903a..9bf15fefa7e4 100644 --- a/arch/ia64/kernel/iosapic.c +++ b/arch/ia64/kernel/iosapic.c | |||
@@ -79,7 +79,6 @@ | |||
79 | * describeinterrupts. Now we use "IRQ" only for Linux IRQ's. ISA IRQ | 79 | * describeinterrupts. Now we use "IRQ" only for Linux IRQ's. ISA IRQ |
80 | * (isa_irq) is the only exception in this source code. | 80 | * (isa_irq) is the only exception in this source code. |
81 | */ | 81 | */ |
82 | #include <linux/config.h> | ||
83 | 82 | ||
84 | #include <linux/acpi.h> | 83 | #include <linux/acpi.h> |
85 | #include <linux/init.h> | 84 | #include <linux/init.h> |
@@ -456,7 +455,7 @@ iosapic_startup_edge_irq (unsigned int irq) | |||
456 | static void | 455 | static void |
457 | iosapic_ack_edge_irq (unsigned int irq) | 456 | iosapic_ack_edge_irq (unsigned int irq) |
458 | { | 457 | { |
459 | irq_desc_t *idesc = irq_descp(irq); | 458 | irq_desc_t *idesc = irq_desc + irq; |
460 | 459 | ||
461 | move_native_irq(irq); | 460 | move_native_irq(irq); |
462 | /* | 461 | /* |
@@ -659,14 +658,14 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery, | |||
659 | else | 658 | else |
660 | irq_type = &irq_type_iosapic_level; | 659 | irq_type = &irq_type_iosapic_level; |
661 | 660 | ||
662 | idesc = irq_descp(vector); | 661 | idesc = irq_desc + vector; |
663 | if (idesc->handler != irq_type) { | 662 | if (idesc->chip != irq_type) { |
664 | if (idesc->handler != &no_irq_type) | 663 | if (idesc->chip != &no_irq_type) |
665 | printk(KERN_WARNING | 664 | printk(KERN_WARNING |
666 | "%s: changing vector %d from %s to %s\n", | 665 | "%s: changing vector %d from %s to %s\n", |
667 | __FUNCTION__, vector, | 666 | __FUNCTION__, vector, |
668 | idesc->handler->typename, irq_type->typename); | 667 | idesc->chip->typename, irq_type->typename); |
669 | idesc->handler = irq_type; | 668 | idesc->chip = irq_type; |
670 | } | 669 | } |
671 | return 0; | 670 | return 0; |
672 | } | 671 | } |
@@ -793,14 +792,14 @@ again: | |||
793 | return -ENOSPC; | 792 | return -ENOSPC; |
794 | } | 793 | } |
795 | 794 | ||
796 | spin_lock_irqsave(&irq_descp(vector)->lock, flags); | 795 | spin_lock_irqsave(&irq_desc[vector].lock, flags); |
797 | spin_lock(&iosapic_lock); | 796 | spin_lock(&iosapic_lock); |
798 | { | 797 | { |
799 | if (gsi_to_vector(gsi) > 0) { | 798 | if (gsi_to_vector(gsi) > 0) { |
800 | if (list_empty(&iosapic_intr_info[vector].rtes)) | 799 | if (list_empty(&iosapic_intr_info[vector].rtes)) |
801 | free_irq_vector(vector); | 800 | free_irq_vector(vector); |
802 | spin_unlock(&iosapic_lock); | 801 | spin_unlock(&iosapic_lock); |
803 | spin_unlock_irqrestore(&irq_descp(vector)->lock, | 802 | spin_unlock_irqrestore(&irq_desc[vector].lock, |
804 | flags); | 803 | flags); |
805 | goto again; | 804 | goto again; |
806 | } | 805 | } |
@@ -810,7 +809,7 @@ again: | |||
810 | polarity, trigger); | 809 | polarity, trigger); |
811 | if (err < 0) { | 810 | if (err < 0) { |
812 | spin_unlock(&iosapic_lock); | 811 | spin_unlock(&iosapic_lock); |
813 | spin_unlock_irqrestore(&irq_descp(vector)->lock, | 812 | spin_unlock_irqrestore(&irq_desc[vector].lock, |
814 | flags); | 813 | flags); |
815 | return err; | 814 | return err; |
816 | } | 815 | } |
@@ -825,7 +824,7 @@ again: | |||
825 | set_rte(gsi, vector, dest, mask); | 824 | set_rte(gsi, vector, dest, mask); |
826 | } | 825 | } |
827 | spin_unlock(&iosapic_lock); | 826 | spin_unlock(&iosapic_lock); |
828 | spin_unlock_irqrestore(&irq_descp(vector)->lock, flags); | 827 | spin_unlock_irqrestore(&irq_desc[vector].lock, flags); |
829 | 828 | ||
830 | printk(KERN_INFO "GSI %u (%s, %s) -> CPU %d (0x%04x) vector %d\n", | 829 | printk(KERN_INFO "GSI %u (%s, %s) -> CPU %d (0x%04x) vector %d\n", |
831 | gsi, (trigger == IOSAPIC_EDGE ? "edge" : "level"), | 830 | gsi, (trigger == IOSAPIC_EDGE ? "edge" : "level"), |
@@ -860,7 +859,7 @@ iosapic_unregister_intr (unsigned int gsi) | |||
860 | } | 859 | } |
861 | vector = irq_to_vector(irq); | 860 | vector = irq_to_vector(irq); |
862 | 861 | ||
863 | idesc = irq_descp(irq); | 862 | idesc = irq_desc + irq; |
864 | spin_lock_irqsave(&idesc->lock, flags); | 863 | spin_lock_irqsave(&idesc->lock, flags); |
865 | spin_lock(&iosapic_lock); | 864 | spin_lock(&iosapic_lock); |
866 | { | 865 | { |
@@ -903,7 +902,7 @@ iosapic_unregister_intr (unsigned int gsi) | |||
903 | BUG_ON(iosapic_intr_info[vector].count); | 902 | BUG_ON(iosapic_intr_info[vector].count); |
904 | 903 | ||
905 | /* Clear the interrupt controller descriptor */ | 904 | /* Clear the interrupt controller descriptor */ |
906 | idesc->handler = &no_irq_type; | 905 | idesc->chip = &no_irq_type; |
907 | 906 | ||
908 | /* Clear the interrupt information */ | 907 | /* Clear the interrupt information */ |
909 | memset(&iosapic_intr_info[vector], 0, | 908 | memset(&iosapic_intr_info[vector], 0, |
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c index 9c72ea3f6432..7852382de2fa 100644 --- a/arch/ia64/kernel/irq.c +++ b/arch/ia64/kernel/irq.c | |||
@@ -76,7 +76,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
76 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 76 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); |
77 | } | 77 | } |
78 | #endif | 78 | #endif |
79 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 79 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
80 | seq_printf(p, " %s", action->name); | 80 | seq_printf(p, " %s", action->name); |
81 | 81 | ||
82 | for (action=action->next; action; action = action->next) | 82 | for (action=action->next; action; action = action->next) |
@@ -100,7 +100,7 @@ void set_irq_affinity_info (unsigned int irq, int hwid, int redir) | |||
100 | cpu_set(cpu_logical_id(hwid), mask); | 100 | cpu_set(cpu_logical_id(hwid), mask); |
101 | 101 | ||
102 | if (irq < NR_IRQS) { | 102 | if (irq < NR_IRQS) { |
103 | irq_affinity[irq] = mask; | 103 | irq_desc[irq].affinity = mask; |
104 | irq_redir[irq] = (char) (redir & 0xff); | 104 | irq_redir[irq] = (char) (redir & 0xff); |
105 | } | 105 | } |
106 | } | 106 | } |
@@ -120,7 +120,7 @@ static void migrate_irqs(void) | |||
120 | int irq, new_cpu; | 120 | int irq, new_cpu; |
121 | 121 | ||
122 | for (irq=0; irq < NR_IRQS; irq++) { | 122 | for (irq=0; irq < NR_IRQS; irq++) { |
123 | desc = irq_descp(irq); | 123 | desc = irq_desc + irq; |
124 | 124 | ||
125 | /* | 125 | /* |
126 | * No handling for now. | 126 | * No handling for now. |
@@ -131,7 +131,7 @@ static void migrate_irqs(void) | |||
131 | if (desc->status == IRQ_PER_CPU) | 131 | if (desc->status == IRQ_PER_CPU) |
132 | continue; | 132 | continue; |
133 | 133 | ||
134 | cpus_and(mask, irq_affinity[irq], cpu_online_map); | 134 | cpus_and(mask, irq_desc[irq].affinity, cpu_online_map); |
135 | if (any_online_cpu(mask) == NR_CPUS) { | 135 | if (any_online_cpu(mask) == NR_CPUS) { |
136 | /* | 136 | /* |
137 | * Save it for phase 2 processing | 137 | * Save it for phase 2 processing |
@@ -144,15 +144,15 @@ static void migrate_irqs(void) | |||
144 | /* | 144 | /* |
145 | * Al three are essential, currently WARN_ON.. maybe panic? | 145 | * Al three are essential, currently WARN_ON.. maybe panic? |
146 | */ | 146 | */ |
147 | if (desc->handler && desc->handler->disable && | 147 | if (desc->chip && desc->chip->disable && |
148 | desc->handler->enable && desc->handler->set_affinity) { | 148 | desc->chip->enable && desc->chip->set_affinity) { |
149 | desc->handler->disable(irq); | 149 | desc->chip->disable(irq); |
150 | desc->handler->set_affinity(irq, mask); | 150 | desc->chip->set_affinity(irq, mask); |
151 | desc->handler->enable(irq); | 151 | desc->chip->enable(irq); |
152 | } else { | 152 | } else { |
153 | WARN_ON((!(desc->handler) || !(desc->handler->disable) || | 153 | WARN_ON((!(desc->chip) || !(desc->chip->disable) || |
154 | !(desc->handler->enable) || | 154 | !(desc->chip->enable) || |
155 | !(desc->handler->set_affinity))); | 155 | !(desc->chip->set_affinity))); |
156 | } | 156 | } |
157 | } | 157 | } |
158 | } | 158 | } |
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index ef9a2b49307a..a041367f043b 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Added CPU Hotplug handling for IPF. | 14 | * Added CPU Hotplug handling for IPF. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/module.h> | 17 | #include <linux/module.h> |
19 | 18 | ||
20 | #include <linux/jiffies.h> | 19 | #include <linux/jiffies.h> |
@@ -236,7 +235,7 @@ extern irqreturn_t handle_IPI (int irq, void *dev_id, struct pt_regs *regs); | |||
236 | 235 | ||
237 | static struct irqaction ipi_irqaction = { | 236 | static struct irqaction ipi_irqaction = { |
238 | .handler = handle_IPI, | 237 | .handler = handle_IPI, |
239 | .flags = SA_INTERRUPT, | 238 | .flags = IRQF_DISABLED, |
240 | .name = "IPI" | 239 | .name = "IPI" |
241 | }; | 240 | }; |
242 | #endif | 241 | #endif |
@@ -249,9 +248,9 @@ register_percpu_irq (ia64_vector vec, struct irqaction *action) | |||
249 | 248 | ||
250 | for (irq = 0; irq < NR_IRQS; ++irq) | 249 | for (irq = 0; irq < NR_IRQS; ++irq) |
251 | if (irq_to_vector(irq) == vec) { | 250 | if (irq_to_vector(irq) == vec) { |
252 | desc = irq_descp(irq); | 251 | desc = irq_desc + irq; |
253 | desc->status |= IRQ_PER_CPU; | 252 | desc->status |= IRQ_PER_CPU; |
254 | desc->handler = &irq_type_ia64_lsapic; | 253 | desc->chip = &irq_type_ia64_lsapic; |
255 | if (action) | 254 | if (action) |
256 | setup_irq(irq, action); | 255 | setup_irq(irq, action); |
257 | } | 256 | } |
diff --git a/arch/ia64/kernel/irq_lsapic.c b/arch/ia64/kernel/irq_lsapic.c index ea14e6a04409..1ab58b09f3d7 100644 --- a/arch/ia64/kernel/irq_lsapic.c +++ b/arch/ia64/kernel/irq_lsapic.c | |||
@@ -26,6 +26,13 @@ lsapic_noop (unsigned int irq) | |||
26 | /* nuthing to do... */ | 26 | /* nuthing to do... */ |
27 | } | 27 | } |
28 | 28 | ||
29 | static int lsapic_retrigger(unsigned int irq) | ||
30 | { | ||
31 | ia64_resend_irq(irq); | ||
32 | |||
33 | return 1; | ||
34 | } | ||
35 | |||
29 | struct hw_interrupt_type irq_type_ia64_lsapic = { | 36 | struct hw_interrupt_type irq_type_ia64_lsapic = { |
30 | .typename = "LSAPIC", | 37 | .typename = "LSAPIC", |
31 | .startup = lsapic_noop_startup, | 38 | .startup = lsapic_noop_startup, |
@@ -33,5 +40,6 @@ struct hw_interrupt_type irq_type_ia64_lsapic = { | |||
33 | .enable = lsapic_noop, | 40 | .enable = lsapic_noop, |
34 | .disable = lsapic_noop, | 41 | .disable = lsapic_noop, |
35 | .ack = lsapic_noop, | 42 | .ack = lsapic_noop, |
36 | .end = lsapic_noop | 43 | .end = lsapic_noop, |
44 | .retrigger = lsapic_retrigger, | ||
37 | }; | 45 | }; |
diff --git a/arch/ia64/kernel/ivt.S b/arch/ia64/kernel/ivt.S index 829a43cab797..6b7fcbd3f6f1 100644 --- a/arch/ia64/kernel/ivt.S +++ b/arch/ia64/kernel/ivt.S | |||
@@ -38,7 +38,6 @@ | |||
38 | * Table is based upon EAS2.6 (Oct 1999) | 38 | * Table is based upon EAS2.6 (Oct 1999) |
39 | */ | 39 | */ |
40 | 40 | ||
41 | #include <linux/config.h> | ||
42 | 41 | ||
43 | #include <asm/asmmacro.h> | 42 | #include <asm/asmmacro.h> |
44 | #include <asm/break.h> | 43 | #include <asm/break.h> |
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c index f9039f88d01d..00d9c83b8020 100644 --- a/arch/ia64/kernel/kprobes.c +++ b/arch/ia64/kernel/kprobes.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * <anil.s.keshavamurthy@intel.com> adapted from i386 | 23 | * <anil.s.keshavamurthy@intel.com> adapted from i386 |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/kprobes.h> | 26 | #include <linux/kprobes.h> |
28 | #include <linux/ptrace.h> | 27 | #include <linux/ptrace.h> |
29 | #include <linux/string.h> | 28 | #include <linux/string.h> |
diff --git a/arch/ia64/kernel/machvec.c b/arch/ia64/kernel/machvec.c index 4b0b71d5aef4..d4a546aa5048 100644 --- a/arch/ia64/kernel/machvec.c +++ b/arch/ia64/kernel/machvec.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | 2 | ||
4 | #include <asm/machvec.h> | 3 | #include <asm/machvec.h> |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 6a0880639bc9..eb8e8dc5ac8e 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -55,7 +55,6 @@ | |||
55 | * 2005-10-07 Keith Owens <kaos@sgi.com> | 55 | * 2005-10-07 Keith Owens <kaos@sgi.com> |
56 | * Add notify_die() hooks. | 56 | * Add notify_die() hooks. |
57 | */ | 57 | */ |
58 | #include <linux/config.h> | ||
59 | #include <linux/types.h> | 58 | #include <linux/types.h> |
60 | #include <linux/init.h> | 59 | #include <linux/init.h> |
61 | #include <linux/sched.h> | 60 | #include <linux/sched.h> |
@@ -1458,38 +1457,38 @@ __setup("disable_cpe_poll", ia64_mca_disable_cpe_polling); | |||
1458 | 1457 | ||
1459 | static struct irqaction cmci_irqaction = { | 1458 | static struct irqaction cmci_irqaction = { |
1460 | .handler = ia64_mca_cmc_int_handler, | 1459 | .handler = ia64_mca_cmc_int_handler, |
1461 | .flags = SA_INTERRUPT, | 1460 | .flags = IRQF_DISABLED, |
1462 | .name = "cmc_hndlr" | 1461 | .name = "cmc_hndlr" |
1463 | }; | 1462 | }; |
1464 | 1463 | ||
1465 | static struct irqaction cmcp_irqaction = { | 1464 | static struct irqaction cmcp_irqaction = { |
1466 | .handler = ia64_mca_cmc_int_caller, | 1465 | .handler = ia64_mca_cmc_int_caller, |
1467 | .flags = SA_INTERRUPT, | 1466 | .flags = IRQF_DISABLED, |
1468 | .name = "cmc_poll" | 1467 | .name = "cmc_poll" |
1469 | }; | 1468 | }; |
1470 | 1469 | ||
1471 | static struct irqaction mca_rdzv_irqaction = { | 1470 | static struct irqaction mca_rdzv_irqaction = { |
1472 | .handler = ia64_mca_rendez_int_handler, | 1471 | .handler = ia64_mca_rendez_int_handler, |
1473 | .flags = SA_INTERRUPT, | 1472 | .flags = IRQF_DISABLED, |
1474 | .name = "mca_rdzv" | 1473 | .name = "mca_rdzv" |
1475 | }; | 1474 | }; |
1476 | 1475 | ||
1477 | static struct irqaction mca_wkup_irqaction = { | 1476 | static struct irqaction mca_wkup_irqaction = { |
1478 | .handler = ia64_mca_wakeup_int_handler, | 1477 | .handler = ia64_mca_wakeup_int_handler, |
1479 | .flags = SA_INTERRUPT, | 1478 | .flags = IRQF_DISABLED, |
1480 | .name = "mca_wkup" | 1479 | .name = "mca_wkup" |
1481 | }; | 1480 | }; |
1482 | 1481 | ||
1483 | #ifdef CONFIG_ACPI | 1482 | #ifdef CONFIG_ACPI |
1484 | static struct irqaction mca_cpe_irqaction = { | 1483 | static struct irqaction mca_cpe_irqaction = { |
1485 | .handler = ia64_mca_cpe_int_handler, | 1484 | .handler = ia64_mca_cpe_int_handler, |
1486 | .flags = SA_INTERRUPT, | 1485 | .flags = IRQF_DISABLED, |
1487 | .name = "cpe_hndlr" | 1486 | .name = "cpe_hndlr" |
1488 | }; | 1487 | }; |
1489 | 1488 | ||
1490 | static struct irqaction mca_cpep_irqaction = { | 1489 | static struct irqaction mca_cpep_irqaction = { |
1491 | .handler = ia64_mca_cpe_int_caller, | 1490 | .handler = ia64_mca_cpe_int_caller, |
1492 | .flags = SA_INTERRUPT, | 1491 | .flags = IRQF_DISABLED, |
1493 | .name = "cpe_poll" | 1492 | .name = "cpe_poll" |
1494 | }; | 1493 | }; |
1495 | #endif /* CONFIG_ACPI */ | 1494 | #endif /* CONFIG_ACPI */ |
@@ -1788,7 +1787,7 @@ ia64_mca_late_init(void) | |||
1788 | cpe_poll_enabled = 0; | 1787 | cpe_poll_enabled = 0; |
1789 | for (irq = 0; irq < NR_IRQS; ++irq) | 1788 | for (irq = 0; irq < NR_IRQS; ++irq) |
1790 | if (irq_to_vector(irq) == cpe_vector) { | 1789 | if (irq_to_vector(irq) == cpe_vector) { |
1791 | desc = irq_descp(irq); | 1790 | desc = irq_desc + irq; |
1792 | desc->status |= IRQ_PER_CPU; | 1791 | desc->status |= IRQ_PER_CPU; |
1793 | setup_irq(irq, &mca_cpe_irqaction); | 1792 | setup_irq(irq, &mca_cpe_irqaction); |
1794 | ia64_cpe_irq = irq; | 1793 | ia64_cpe_irq = irq; |
diff --git a/arch/ia64/kernel/mca_asm.S b/arch/ia64/kernel/mca_asm.S index c1bd1feffab0..96047491d1b9 100644 --- a/arch/ia64/kernel/mca_asm.S +++ b/arch/ia64/kernel/mca_asm.S | |||
@@ -19,7 +19,6 @@ | |||
19 | // 12/08/05 Keith Owens <kaos@sgi.com> | 19 | // 12/08/05 Keith Owens <kaos@sgi.com> |
20 | // Use per cpu MCA/INIT stacks for all data. | 20 | // Use per cpu MCA/INIT stacks for all data. |
21 | // | 21 | // |
22 | #include <linux/config.h> | ||
23 | #include <linux/threads.h> | 22 | #include <linux/threads.h> |
24 | 23 | ||
25 | #include <asm/asmmacro.h> | 24 | #include <asm/asmmacro.h> |
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c index ca6666b51ccb..8db6e0cedadc 100644 --- a/arch/ia64/kernel/mca_drv.c +++ b/arch/ia64/kernel/mca_drv.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 2005 Keith Owens <kaos@sgi.com> | 8 | * Copyright (C) 2005 Keith Owens <kaos@sgi.com> |
9 | * Copyright (C) 2006 Russ Anderson <rja@sgi.com> | 9 | * Copyright (C) 2006 Russ Anderson <rja@sgi.com> |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
diff --git a/arch/ia64/kernel/mca_drv_asm.S b/arch/ia64/kernel/mca_drv_asm.S index e6a580d354b9..f2d4900751ba 100644 --- a/arch/ia64/kernel/mca_drv_asm.S +++ b/arch/ia64/kernel/mca_drv_asm.S | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 2004 FUJITSU LIMITED | 5 | * Copyright (C) 2004 FUJITSU LIMITED |
6 | * Copyright (C) Hidetoshi Seto (seto.hidetoshi@jp.fujitsu.com) | 6 | * Copyright (C) Hidetoshi Seto (seto.hidetoshi@jp.fujitsu.com) |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/threads.h> | 8 | #include <linux/threads.h> |
10 | 9 | ||
11 | #include <asm/asmmacro.h> | 10 | #include <asm/asmmacro.h> |
diff --git a/arch/ia64/kernel/minstate.h b/arch/ia64/kernel/minstate.h index 85ed54179afa..c9ac8bada786 100644 --- a/arch/ia64/kernel/minstate.h +++ b/arch/ia64/kernel/minstate.h | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | #include <asm/cache.h> | 2 | #include <asm/cache.h> |
4 | 3 | ||
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c index 3a30cfc9574f..158e3c51bb77 100644 --- a/arch/ia64/kernel/module.c +++ b/arch/ia64/kernel/module.c | |||
@@ -25,7 +25,6 @@ | |||
25 | SEGREL64LSB | 25 | SEGREL64LSB |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include <linux/config.h> | ||
29 | 28 | ||
30 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
31 | #include <linux/sched.h> | 30 | #include <linux/sched.h> |
diff --git a/arch/ia64/kernel/numa.c b/arch/ia64/kernel/numa.c index 0766493d4d00..1cc360c83e7a 100644 --- a/arch/ia64/kernel/numa.c +++ b/arch/ia64/kernel/numa.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * Copyright (C) 2004 Silicon Graphics, Inc. | 19 | * Copyright (C) 2004 Silicon Graphics, Inc. |
20 | * Jesse Barnes <jbarnes@sgi.com> | 20 | * Jesse Barnes <jbarnes@sgi.com> |
21 | */ | 21 | */ |
22 | #include <linux/config.h> | ||
23 | #include <linux/topology.h> | 22 | #include <linux/topology.h> |
24 | #include <linux/module.h> | 23 | #include <linux/module.h> |
25 | #include <asm/processor.h> | 24 | #include <asm/processor.h> |
diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c index 8a1208419138..3f5bac59209a 100644 --- a/arch/ia64/kernel/palinfo.c +++ b/arch/ia64/kernel/palinfo.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * 10/23/2001 S.Eranian updated pal_perf_mon_info bug fixes | 17 | * 10/23/2001 S.Eranian updated pal_perf_mon_info bug fixes |
18 | * 03/24/2004 Ashok Raj updated to work with CPU Hotplug | 18 | * 03/24/2004 Ashok Raj updated to work with CPU Hotplug |
19 | */ | 19 | */ |
20 | #include <linux/config.h> | ||
21 | #include <linux/types.h> | 20 | #include <linux/types.h> |
22 | #include <linux/errno.h> | 21 | #include <linux/errno.h> |
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index 6d7bc8ff7b3a..c7ccd6ee1ddf 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * http://www.hpl.hp.com/research/linux/perfmon | 19 | * http://www.hpl.hp.com/research/linux/perfmon |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/module.h> | 22 | #include <linux/module.h> |
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
25 | #include <linux/sched.h> | 24 | #include <linux/sched.h> |
@@ -6165,7 +6164,7 @@ pfm_load_regs (struct task_struct *task) | |||
6165 | /* | 6164 | /* |
6166 | * will replay the PMU interrupt | 6165 | * will replay the PMU interrupt |
6167 | */ | 6166 | */ |
6168 | if (need_irq_resend) hw_resend_irq(NULL, IA64_PERFMON_VECTOR); | 6167 | if (need_irq_resend) ia64_resend_irq(IA64_PERFMON_VECTOR); |
6169 | 6168 | ||
6170 | pfm_stats[smp_processor_id()].pfm_replay_ovfl_intr_count++; | 6169 | pfm_stats[smp_processor_id()].pfm_replay_ovfl_intr_count++; |
6171 | } | 6170 | } |
@@ -6305,7 +6304,7 @@ pfm_load_regs (struct task_struct *task) | |||
6305 | /* | 6304 | /* |
6306 | * will replay the PMU interrupt | 6305 | * will replay the PMU interrupt |
6307 | */ | 6306 | */ |
6308 | if (need_irq_resend) hw_resend_irq(NULL, IA64_PERFMON_VECTOR); | 6307 | if (need_irq_resend) ia64_resend_irq(IA64_PERFMON_VECTOR); |
6309 | 6308 | ||
6310 | pfm_stats[smp_processor_id()].pfm_replay_ovfl_intr_count++; | 6309 | pfm_stats[smp_processor_id()].pfm_replay_ovfl_intr_count++; |
6311 | } | 6310 | } |
@@ -6440,7 +6439,7 @@ pfm_flush_pmds(struct task_struct *task, pfm_context_t *ctx) | |||
6440 | 6439 | ||
6441 | static struct irqaction perfmon_irqaction = { | 6440 | static struct irqaction perfmon_irqaction = { |
6442 | .handler = pfm_interrupt_handler, | 6441 | .handler = pfm_interrupt_handler, |
6443 | .flags = SA_INTERRUPT, | 6442 | .flags = IRQF_DISABLED, |
6444 | .name = "perfmon" | 6443 | .name = "perfmon" |
6445 | }; | 6444 | }; |
6446 | 6445 | ||
diff --git a/arch/ia64/kernel/perfmon_default_smpl.c b/arch/ia64/kernel/perfmon_default_smpl.c index 344941db0a9e..ff80eab83b38 100644 --- a/arch/ia64/kernel/perfmon_default_smpl.c +++ b/arch/ia64/kernel/perfmon_default_smpl.c | |||
@@ -8,7 +8,6 @@ | |||
8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
9 | #include <linux/types.h> | 9 | #include <linux/types.h> |
10 | #include <linux/module.h> | 10 | #include <linux/module.h> |
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <asm/delay.h> | 12 | #include <asm/delay.h> |
14 | #include <linux/smp.h> | 13 | #include <linux/smp.h> |
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index b045c279136c..ea914cc6812a 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Add notify_die() hooks. | 9 | * Add notify_die() hooks. |
10 | */ | 10 | */ |
11 | #define __KERNEL_SYSCALLS__ /* see <asm/unistd.h> */ | 11 | #define __KERNEL_SYSCALLS__ /* see <asm/unistd.h> */ |
12 | #include <linux/config.h> | ||
13 | 12 | ||
14 | #include <linux/cpu.h> | 13 | #include <linux/cpu.h> |
15 | #include <linux/pm.h> | 14 | #include <linux/pm.h> |
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index e61e15e28d8b..aa705e46b974 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | * Derived from the x86 and Alpha versions. | 7 | * Derived from the x86 and Alpha versions. |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
12 | #include <linux/slab.h> | 11 | #include <linux/slab.h> |
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c index 77fa65903d94..642fdc7b969d 100644 --- a/arch/ia64/kernel/sal.c +++ b/arch/ia64/kernel/sal.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1999 VA Linux Systems | 6 | * Copyright (C) 1999 VA Linux Systems |
7 | * Copyright (C) 1999 Walt Drummond <drummond@valinux.com> | 7 | * Copyright (C) 1999 Walt Drummond <drummond@valinux.com> |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | 9 | ||
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index 6dba2d63f24d..6a33f414de58 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * 06/24/99 W.Drummond added boot_cpu_data. | 22 | * 06/24/99 W.Drummond added boot_cpu_data. |
23 | * 05/28/05 Z. Menyhart Dynamic stride size for "flush_icache_range()" | 23 | * 05/28/05 Z. Menyhart Dynamic stride size for "flush_icache_range()" |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | 27 | ||
diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c index 1d7903ee2126..77f8b49c7882 100644 --- a/arch/ia64/kernel/signal.c +++ b/arch/ia64/kernel/signal.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Derived from i386 and Alpha versions. | 7 | * Derived from i386 and Alpha versions. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index 44e9547878ac..e1960979be29 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * 05/01/30 Suresh Siddha <suresh.b.siddha@intel.com> | 21 | * 05/01/30 Suresh Siddha <suresh.b.siddha@intel.com> |
22 | * Setup cpu_sibling_map and cpu_core_map | 22 | * Setup cpu_sibling_map and cpu_core_map |
23 | */ | 23 | */ |
24 | #include <linux/config.h> | ||
25 | 24 | ||
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/acpi.h> | 26 | #include <linux/acpi.h> |
@@ -677,16 +676,16 @@ int migrate_platform_irqs(unsigned int cpu) | |||
677 | new_cpei_cpu = any_online_cpu(cpu_online_map); | 676 | new_cpei_cpu = any_online_cpu(cpu_online_map); |
678 | mask = cpumask_of_cpu(new_cpei_cpu); | 677 | mask = cpumask_of_cpu(new_cpei_cpu); |
679 | set_cpei_target_cpu(new_cpei_cpu); | 678 | set_cpei_target_cpu(new_cpei_cpu); |
680 | desc = irq_descp(ia64_cpe_irq); | 679 | desc = irq_desc + ia64_cpe_irq; |
681 | /* | 680 | /* |
682 | * Switch for now, immediatly, we need to do fake intr | 681 | * Switch for now, immediatly, we need to do fake intr |
683 | * as other interrupts, but need to study CPEI behaviour with | 682 | * as other interrupts, but need to study CPEI behaviour with |
684 | * polling before making changes. | 683 | * polling before making changes. |
685 | */ | 684 | */ |
686 | if (desc) { | 685 | if (desc) { |
687 | desc->handler->disable(ia64_cpe_irq); | 686 | desc->chip->disable(ia64_cpe_irq); |
688 | desc->handler->set_affinity(ia64_cpe_irq, mask); | 687 | desc->chip->set_affinity(ia64_cpe_irq, mask); |
689 | desc->handler->enable(ia64_cpe_irq); | 688 | desc->chip->enable(ia64_cpe_irq); |
690 | printk ("Re-targetting CPEI to cpu %d\n", new_cpei_cpu); | 689 | printk ("Re-targetting CPEI to cpu %d\n", new_cpei_cpu); |
691 | } | 690 | } |
692 | } | 691 | } |
diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c index c7b943f10199..40722d88607a 100644 --- a/arch/ia64/kernel/sys_ia64.c +++ b/arch/ia64/kernel/sys_ia64.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 1999-2000, 2002-2003, 2005 Hewlett-Packard Co | 5 | * Copyright (C) 1999-2000, 2002-2003, 2005 Hewlett-Packard Co |
6 | * David Mosberger-Tang <davidm@hpl.hp.com> | 6 | * David Mosberger-Tang <davidm@hpl.hp.com> |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/errno.h> | 8 | #include <linux/errno.h> |
10 | #include <linux/fs.h> | 9 | #include <linux/fs.h> |
11 | #include <linux/mm.h> | 10 | #include <linux/mm.h> |
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index 49958904045b..6928ef0d64d8 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1999-2000 VA Linux Systems | 8 | * Copyright (C) 1999-2000 VA Linux Systems |
9 | * Copyright (C) 1999-2000 Walt Drummond <drummond@valinux.com> | 9 | * Copyright (C) 1999-2000 Walt Drummond <drummond@valinux.com> |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | 11 | ||
13 | #include <linux/cpu.h> | 12 | #include <linux/cpu.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
@@ -232,7 +231,7 @@ ia64_init_itm (void) | |||
232 | 231 | ||
233 | static struct irqaction timer_irqaction = { | 232 | static struct irqaction timer_irqaction = { |
234 | .handler = timer_interrupt, | 233 | .handler = timer_interrupt, |
235 | .flags = SA_INTERRUPT, | 234 | .flags = IRQF_DISABLED, |
236 | .name = "timer" | 235 | .name = "timer" |
237 | }; | 236 | }; |
238 | 237 | ||
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c index 5511d9c6c701..b146f1cfad31 100644 --- a/arch/ia64/kernel/topology.c +++ b/arch/ia64/kernel/topology.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * Populate cpu cache entries in sysfs for cpu cache info | 13 | * Populate cpu cache entries in sysfs for cpu cache info |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/cpu.h> | 16 | #include <linux/cpu.h> |
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
diff --git a/arch/ia64/kernel/traps.c b/arch/ia64/kernel/traps.c index 7c1ddc8ac443..e7bbb0f40aa2 100644 --- a/arch/ia64/kernel/traps.c +++ b/arch/ia64/kernel/traps.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * 05/12/00 grao <goutham.rao@intel.com> : added isr in siginfo for SIGFPE | 7 | * 05/12/00 grao <goutham.rao@intel.com> : added isr in siginfo for SIGFPE |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 783600fe52b2..5b0d5f64a9b1 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | #include <asm/cache.h> | 2 | #include <asm/cache.h> |
4 | #include <asm/ptrace.h> | 3 | #include <asm/ptrace.h> |
diff --git a/arch/ia64/lib/clear_page.S b/arch/ia64/lib/clear_page.S index d4987061dda7..2d814e7ed191 100644 --- a/arch/ia64/lib/clear_page.S +++ b/arch/ia64/lib/clear_page.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * 2/12/02 kchen Tuned for both Itanium and McKinley | 8 | * 2/12/02 kchen Tuned for both Itanium and McKinley |
9 | * 3/08/02 davidm Some more tweaking | 9 | * 3/08/02 davidm Some more tweaking |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | 11 | ||
13 | #include <asm/asmmacro.h> | 12 | #include <asm/asmmacro.h> |
14 | #include <asm/page.h> | 13 | #include <asm/page.h> |
diff --git a/arch/ia64/lib/io.c b/arch/ia64/lib/io.c index 8949e44091ac..bcd16f8ad9d9 100644 --- a/arch/ia64/lib/io.c +++ b/arch/ia64/lib/io.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/types.h> | 2 | #include <linux/types.h> |
4 | 3 | ||
diff --git a/arch/ia64/lib/memcpy_mck.S b/arch/ia64/lib/memcpy_mck.S index 9e534d52b1d5..ab0f87639729 100644 --- a/arch/ia64/lib/memcpy_mck.S +++ b/arch/ia64/lib/memcpy_mck.S | |||
@@ -13,7 +13,6 @@ | |||
13 | * Copyright (C) 2002 Intel Corp. | 13 | * Copyright (C) 2002 Intel Corp. |
14 | * Copyright (C) 2002 Ken Chen <kenneth.w.chen@intel.com> | 14 | * Copyright (C) 2002 Ken Chen <kenneth.w.chen@intel.com> |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | #include <asm/asmmacro.h> | 16 | #include <asm/asmmacro.h> |
18 | #include <asm/page.h> | 17 | #include <asm/page.h> |
19 | 18 | ||
diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index 84fd1c14c8a9..2a88cdd6d924 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Routines used by ia64 machines with contiguous (or virtually contiguous) | 14 | * Routines used by ia64 machines with contiguous (or virtually contiguous) |
15 | * memory. | 15 | * memory. |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/bootmem.h> | 17 | #include <linux/bootmem.h> |
19 | #include <linux/efi.h> | 18 | #include <linux/efi.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/ia64/mm/extable.c b/arch/ia64/mm/extable.c index 6d259e34f359..71c50dd8f870 100644 --- a/arch/ia64/mm/extable.c +++ b/arch/ia64/mm/extable.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * David Mosberger-Tang <davidm@hpl.hp.com> | 5 | * David Mosberger-Tang <davidm@hpl.hp.com> |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/sort.h> | 8 | #include <linux/sort.h> |
10 | 9 | ||
11 | #include <asm/uaccess.h> | 10 | #include <asm/uaccess.h> |
diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c index 8d506710fdbd..eee5c1cfbe32 100644 --- a/arch/ia64/mm/hugetlbpage.c +++ b/arch/ia64/mm/hugetlbpage.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Feb, 2004: dynamic hugetlb page size via boot parameter | 8 | * Feb, 2004: dynamic hugetlb page size via boot parameter |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index 38306e98f04b..2f50c064513c 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1998-2003 Hewlett-Packard Co | 4 | * Copyright (C) 1998-2003 Hewlett-Packard Co |
5 | * David Mosberger-Tang <davidm@hpl.hp.com> | 5 | * David Mosberger-Tang <davidm@hpl.hp.com> |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | 9 | ||
diff --git a/arch/ia64/mm/numa.c b/arch/ia64/mm/numa.c index 4e5c8b36ad93..64e4c21f311c 100644 --- a/arch/ia64/mm/numa.c +++ b/arch/ia64/mm/numa.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 2002/08/07 Erich Focht <efocht@ess.nec.de> | 10 | * 2002/08/07 Erich Focht <efocht@ess.nec.de> |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/cpu.h> | 13 | #include <linux/cpu.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
diff --git a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c index 4dbbca0b5e9c..ffad7624436c 100644 --- a/arch/ia64/mm/tlb.c +++ b/arch/ia64/mm/tlb.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Rohit Seth <rohit.seth@intel.com> | 11 | * Rohit Seth <rohit.seth@intel.com> |
12 | * Ken Chen <kenneth.w.chen@intel.com> | 12 | * Ken Chen <kenneth.w.chen@intel.com> |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
diff --git a/arch/ia64/oprofile/perfmon.c b/arch/ia64/oprofile/perfmon.c index b7975a469fb8..bc41dd32fec6 100644 --- a/arch/ia64/oprofile/perfmon.c +++ b/arch/ia64/oprofile/perfmon.c | |||
@@ -8,7 +8,6 @@ | |||
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
11 | #include <linux/config.h> | ||
12 | #include <linux/oprofile.h> | 11 | #include <linux/oprofile.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <asm/perfmon.h> | 13 | #include <asm/perfmon.h> |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 77375a55da31..276512fd8922 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | * Note: Above list of copyright holders is incomplete... | 11 | * Note: Above list of copyright holders is incomplete... |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | 13 | ||
15 | #include <linux/acpi.h> | 14 | #include <linux/acpi.h> |
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
@@ -568,7 +567,7 @@ pcibios_disable_device (struct pci_dev *dev) | |||
568 | 567 | ||
569 | void | 568 | void |
570 | pcibios_align_resource (void *data, struct resource *res, | 569 | pcibios_align_resource (void *data, struct resource *res, |
571 | unsigned long size, unsigned long align) | 570 | resource_size_t size, resource_size_t align) |
572 | { | 571 | { |
573 | } | 572 | } |
574 | 573 | ||
diff --git a/arch/ia64/sn/kernel/bte.c b/arch/ia64/sn/kernel/bte.c index e952ef4f6d91..27dee4584061 100644 --- a/arch/ia64/sn/kernel/bte.c +++ b/arch/ia64/sn/kernel/bte.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (c) 2000-2006 Silicon Graphics, Inc. All Rights Reserved. | 6 | * Copyright (c) 2000-2006 Silicon Graphics, Inc. All Rights Reserved. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
11 | #include <asm/sn/nodepda.h> | 10 | #include <asm/sn/nodepda.h> |
12 | #include <asm/sn/addrs.h> | 11 | #include <asm/sn/addrs.h> |
diff --git a/arch/ia64/sn/kernel/huberror.c b/arch/ia64/sn/kernel/huberror.c index 56ab6bae00ee..96fb81e6321f 100644 --- a/arch/ia64/sn/kernel/huberror.c +++ b/arch/ia64/sn/kernel/huberror.c | |||
@@ -178,7 +178,7 @@ void hubiio_crb_error_handler(struct hubdev_info *hubdev_info) | |||
178 | */ | 178 | */ |
179 | void hub_error_init(struct hubdev_info *hubdev_info) | 179 | void hub_error_init(struct hubdev_info *hubdev_info) |
180 | { | 180 | { |
181 | if (request_irq(SGI_II_ERROR, (void *)hub_eint_handler, SA_SHIRQ, | 181 | if (request_irq(SGI_II_ERROR, (void *)hub_eint_handler, IRQF_SHARED, |
182 | "SN_hub_error", (void *)hubdev_info)) | 182 | "SN_hub_error", (void *)hubdev_info)) |
183 | printk("hub_error_init: Failed to request_irq for 0x%p\n", | 183 | printk("hub_error_init: Failed to request_irq for 0x%p\n", |
184 | hubdev_info); | 184 | hubdev_info); |
@@ -196,7 +196,7 @@ void hub_error_init(struct hubdev_info *hubdev_info) | |||
196 | void ice_error_init(struct hubdev_info *hubdev_info) | 196 | void ice_error_init(struct hubdev_info *hubdev_info) |
197 | { | 197 | { |
198 | if (request_irq | 198 | if (request_irq |
199 | (SGI_TIO_ERROR, (void *)hub_eint_handler, SA_SHIRQ, "SN_TIO_error", | 199 | (SGI_TIO_ERROR, (void *)hub_eint_handler, IRQF_SHARED, "SN_TIO_error", |
200 | (void *)hubdev_info)) | 200 | (void *)hubdev_info)) |
201 | printk("ice_error_init: request_irq() error hubdev_info 0x%p\n", | 201 | printk("ice_error_init: request_irq() error hubdev_info 0x%p\n", |
202 | hubdev_info); | 202 | hubdev_info); |
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index 677c6c0fd661..7bb6ad188ba3 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c | |||
@@ -225,8 +225,8 @@ void sn_irq_init(void) | |||
225 | ia64_last_device_vector = IA64_SN2_LAST_DEVICE_VECTOR; | 225 | ia64_last_device_vector = IA64_SN2_LAST_DEVICE_VECTOR; |
226 | 226 | ||
227 | for (i = 0; i < NR_IRQS; i++) { | 227 | for (i = 0; i < NR_IRQS; i++) { |
228 | if (base_desc[i].handler == &no_irq_type) { | 228 | if (base_desc[i].chip == &no_irq_type) { |
229 | base_desc[i].handler = &irq_type_sn; | 229 | base_desc[i].chip = &irq_type_sn; |
230 | } | 230 | } |
231 | } | 231 | } |
232 | } | 232 | } |
diff --git a/arch/ia64/sn/kernel/setup.c b/arch/ia64/sn/kernel/setup.c index 3bfccf354343..dd6bcf4d58bf 100644 --- a/arch/ia64/sn/kernel/setup.c +++ b/arch/ia64/sn/kernel/setup.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1999,2001-2006 Silicon Graphics, Inc. All rights reserved. | 6 | * Copyright (C) 1999,2001-2006 Silicon Graphics, Inc. All rights reserved. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/delay.h> | 11 | #include <linux/delay.h> |
diff --git a/arch/ia64/sn/kernel/sn2/prominfo_proc.c b/arch/ia64/sn/kernel/sn2/prominfo_proc.c index 6ae276d5d50c..4dcce3d0e04c 100644 --- a/arch/ia64/sn/kernel/sn2/prominfo_proc.c +++ b/arch/ia64/sn/kernel/sn2/prominfo_proc.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Module to export the system's Firmware Interface Tables, including | 8 | * Module to export the system's Firmware Interface Tables, including |
9 | * PROM revision numbers and banners, in /proc | 9 | * PROM revision numbers and banners, in /proc |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/slab.h> | 12 | #include <linux/slab.h> |
14 | #include <linux/proc_fs.h> | 13 | #include <linux/proc_fs.h> |
diff --git a/arch/ia64/sn/kernel/sn2/sn_proc_fs.c b/arch/ia64/sn/kernel/sn2/sn_proc_fs.c index 5100261310f7..43ddc2eccb96 100644 --- a/arch/ia64/sn/kernel/sn2/sn_proc_fs.c +++ b/arch/ia64/sn/kernel/sn2/sn_proc_fs.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | * Copyright (C) 2000-2005 Silicon Graphics, Inc. All rights reserved. | 6 | * Copyright (C) 2000-2005 Silicon Graphics, Inc. All rights reserved. |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | 8 | ||
10 | #ifdef CONFIG_PROC_FS | 9 | #ifdef CONFIG_PROC_FS |
11 | #include <linux/proc_fs.h> | 10 | #include <linux/proc_fs.h> |
diff --git a/arch/ia64/sn/kernel/xpc_channel.c b/arch/ia64/sn/kernel/xpc_channel.c index 8255a9be4632..c2f69f7942af 100644 --- a/arch/ia64/sn/kernel/xpc_channel.c +++ b/arch/ia64/sn/kernel/xpc_channel.c | |||
@@ -202,7 +202,7 @@ xpc_setup_infrastructure(struct xpc_partition *part) | |||
202 | init_waitqueue_head(&part->channel_mgr_wq); | 202 | init_waitqueue_head(&part->channel_mgr_wq); |
203 | 203 | ||
204 | sprintf(part->IPI_owner, "xpc%02d", partid); | 204 | sprintf(part->IPI_owner, "xpc%02d", partid); |
205 | ret = request_irq(SGI_XPC_NOTIFY, xpc_notify_IRQ_handler, SA_SHIRQ, | 205 | ret = request_irq(SGI_XPC_NOTIFY, xpc_notify_IRQ_handler, IRQF_SHARED, |
206 | part->IPI_owner, (void *) (u64) partid); | 206 | part->IPI_owner, (void *) (u64) partid); |
207 | if (ret != 0) { | 207 | if (ret != 0) { |
208 | dev_err(xpc_chan, "can't register NOTIFY IRQ handler, " | 208 | dev_err(xpc_chan, "can't register NOTIFY IRQ handler, " |
diff --git a/arch/ia64/sn/kernel/xpnet.c b/arch/ia64/sn/kernel/xpnet.c index e5c6d3c0a8e9..007703c494a4 100644 --- a/arch/ia64/sn/kernel/xpnet.c +++ b/arch/ia64/sn/kernel/xpnet.c | |||
@@ -22,7 +22,6 @@ | |||
22 | */ | 22 | */ |
23 | 23 | ||
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
28 | #include <linux/pci.h> | 27 | #include <linux/pci.h> |
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_provider.c b/arch/ia64/sn/pci/pcibr/pcibr_provider.c index ab1211ef0176..838c93c9a16a 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_provider.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_provider.c | |||
@@ -139,7 +139,7 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
139 | * register the bridge's error interrupt handler | 139 | * register the bridge's error interrupt handler |
140 | */ | 140 | */ |
141 | if (request_irq(SGI_PCIASIC_ERROR, (void *)pcibr_error_intr_handler, | 141 | if (request_irq(SGI_PCIASIC_ERROR, (void *)pcibr_error_intr_handler, |
142 | SA_SHIRQ, "PCIBR error", (void *)(soft))) { | 142 | IRQF_SHARED, "PCIBR error", (void *)(soft))) { |
143 | printk(KERN_WARNING | 143 | printk(KERN_WARNING |
144 | "pcibr cannot allocate interrupt for error handler\n"); | 144 | "pcibr cannot allocate interrupt for error handler\n"); |
145 | } | 145 | } |
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c index e4aa839d0189..c36b0f5affb3 100644 --- a/arch/ia64/sn/pci/tioca_provider.c +++ b/arch/ia64/sn/pci/tioca_provider.c | |||
@@ -646,7 +646,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
646 | 646 | ||
647 | if (request_irq(SGI_TIOCA_ERROR, | 647 | if (request_irq(SGI_TIOCA_ERROR, |
648 | tioca_error_intr_handler, | 648 | tioca_error_intr_handler, |
649 | SA_SHIRQ, "TIOCA error", (void *)tioca_common)) | 649 | IRQF_SHARED, "TIOCA error", (void *)tioca_common)) |
650 | printk(KERN_WARNING | 650 | printk(KERN_WARNING |
651 | "%s: Unable to get irq %d. " | 651 | "%s: Unable to get irq %d. " |
652 | "Error interrupts won't be routed for TIOCA bus %d\n", | 652 | "Error interrupts won't be routed for TIOCA bus %d\n", |
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c index 2d7948567ebc..17cd34284886 100644 --- a/arch/ia64/sn/pci/tioce_provider.c +++ b/arch/ia64/sn/pci/tioce_provider.c | |||
@@ -1027,7 +1027,7 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
1027 | 1027 | ||
1028 | if (request_irq(SGI_PCIASIC_ERROR, | 1028 | if (request_irq(SGI_PCIASIC_ERROR, |
1029 | tioce_error_intr_handler, | 1029 | tioce_error_intr_handler, |
1030 | SA_SHIRQ, "TIOCE error", (void *)tioce_common)) | 1030 | IRQF_SHARED, "TIOCE error", (void *)tioce_common)) |
1031 | printk(KERN_WARNING | 1031 | printk(KERN_WARNING |
1032 | "%s: Unable to get irq %d. " | 1032 | "%s: Unable to get irq %d. " |
1033 | "Error interrupts won't be routed for " | 1033 | "Error interrupts won't be routed for " |
diff --git a/arch/m32r/boot/compressed/head.S b/arch/m32r/boot/compressed/head.S index 234d8b1e0ac1..95a0563ff076 100644 --- a/arch/m32r/boot/compressed/head.S +++ b/arch/m32r/boot/compressed/head.S | |||
@@ -7,7 +7,6 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | .text | 9 | .text |
10 | #include <linux/config.h> | ||
11 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
12 | #include <asm/addrspace.h> | 11 | #include <asm/addrspace.h> |
13 | #include <asm/page.h> | 12 | #include <asm/page.h> |
diff --git a/arch/m32r/boot/compressed/m32r_sio.c b/arch/m32r/boot/compressed/m32r_sio.c index 8f9a57271f83..bce8af5e3bb2 100644 --- a/arch/m32r/boot/compressed/m32r_sio.c +++ b/arch/m32r/boot/compressed/m32r_sio.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <asm/processor.h> | 8 | #include <asm/processor.h> |
10 | 9 | ||
11 | static void putc(char c); | 10 | static void putc(char c); |
diff --git a/arch/m32r/boot/compressed/misc.c b/arch/m32r/boot/compressed/misc.c index 70fa799005c3..600d40e33495 100644 --- a/arch/m32r/boot/compressed/misc.c +++ b/arch/m32r/boot/compressed/misc.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * This is based on arch/sh/boot/compressed/misc.c. | 12 | * This is based on arch/sh/boot/compressed/misc.c. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/string.h> | 15 | #include <linux/string.h> |
17 | 16 | ||
18 | /* | 17 | /* |
diff --git a/arch/m32r/boot/compressed/vmlinux.lds.S b/arch/m32r/boot/compressed/vmlinux.lds.S index a18431759633..dd11963f6939 100644 --- a/arch/m32r/boot/compressed/vmlinux.lds.S +++ b/arch/m32r/boot/compressed/vmlinux.lds.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | OUTPUT_ARCH(m32r) | 2 | OUTPUT_ARCH(m32r) |
4 | ENTRY(startup) | 3 | ENTRY(startup) |
diff --git a/arch/m32r/boot/setup.S b/arch/m32r/boot/setup.S index 398542507d84..ef843d63083d 100644 --- a/arch/m32r/boot/setup.S +++ b/arch/m32r/boot/setup.S | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <asm/page.h> | 11 | #include <asm/page.h> |
12 | #include <asm/pgtable.h> | 12 | #include <asm/pgtable.h> |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <asm/assembler.h> | 14 | #include <asm/assembler.h> |
16 | #include <asm/mmu_context.h> | 15 | #include <asm/mmu_context.h> |
17 | #include <asm/m32r.h> | 16 | #include <asm/m32r.h> |
diff --git a/arch/m32r/kernel/align.c b/arch/m32r/kernel/align.c index 48ec29714238..ab871ccd33f8 100644 --- a/arch/m32r/kernel/align.c +++ b/arch/m32r/kernel/align.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (c) 2003 Hitoshi Yamamoto | 4 | * Copyright (c) 2003 Hitoshi Yamamoto |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/ptrace.h> | 7 | #include <asm/ptrace.h> |
9 | #include <asm/uaccess.h> | 8 | #include <asm/uaccess.h> |
10 | 9 | ||
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S index 920bb742b7a2..ac6d840b382b 100644 --- a/arch/m32r/kernel/entry.S +++ b/arch/m32r/kernel/entry.S | |||
@@ -54,7 +54,6 @@ | |||
54 | * @(0x6c,sp) - orig_r0 ditto | 54 | * @(0x6c,sp) - orig_r0 ditto |
55 | */ | 55 | */ |
56 | 56 | ||
57 | #include <linux/config.h> | ||
58 | #include <linux/linkage.h> | 57 | #include <linux/linkage.h> |
59 | #include <asm/irq.h> | 58 | #include <asm/irq.h> |
60 | #include <asm/unistd.h> | 59 | #include <asm/unistd.h> |
diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S index 3e83173995cd..0d3c8ee0e03d 100644 --- a/arch/m32r/kernel/head.S +++ b/arch/m32r/kernel/head.S | |||
@@ -14,7 +14,6 @@ __INIT | |||
14 | __INITDATA | 14 | __INITDATA |
15 | 15 | ||
16 | .text | 16 | .text |
17 | #include <linux/config.h> | ||
18 | #include <linux/linkage.h> | 17 | #include <linux/linkage.h> |
19 | #include <asm/segment.h> | 18 | #include <asm/segment.h> |
20 | #include <asm/page.h> | 19 | #include <asm/page.h> |
diff --git a/arch/m32r/kernel/io_m32104ut.c b/arch/m32r/kernel/io_m32104ut.c index d26adab9586c..2189eca30b56 100644 --- a/arch/m32r/kernel/io_m32104ut.c +++ b/arch/m32r/kernel/io_m32104ut.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Naoto Sugai, Hayato Fujiwara | 8 | * Naoto Sugai, Hayato Fujiwara |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <asm/m32r.h> | 11 | #include <asm/m32r.h> |
13 | #include <asm/page.h> | 12 | #include <asm/page.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
diff --git a/arch/m32r/kernel/io_m32700ut.c b/arch/m32r/kernel/io_m32700ut.c index 939932d6cc00..5898f4031a0c 100644 --- a/arch/m32r/kernel/io_m32700ut.c +++ b/arch/m32r/kernel/io_m32700ut.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * archive for more details. | 11 | * archive for more details. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <asm/m32r.h> | 14 | #include <asm/m32r.h> |
16 | #include <asm/page.h> | 15 | #include <asm/page.h> |
17 | #include <asm/io.h> | 16 | #include <asm/io.h> |
diff --git a/arch/m32r/kernel/io_mappi.c b/arch/m32r/kernel/io_mappi.c index a662b537c5ba..31396789ab1b 100644 --- a/arch/m32r/kernel/io_mappi.c +++ b/arch/m32r/kernel/io_mappi.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto | 7 | * Hitoshi Yamamoto |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <asm/m32r.h> | 10 | #include <asm/m32r.h> |
12 | #include <asm/page.h> | 11 | #include <asm/page.h> |
13 | #include <asm/io.h> | 12 | #include <asm/io.h> |
diff --git a/arch/m32r/kernel/io_mappi2.c b/arch/m32r/kernel/io_mappi2.c index e72d725606af..ecc6aa88f9ac 100644 --- a/arch/m32r/kernel/io_mappi2.c +++ b/arch/m32r/kernel/io_mappi2.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto, Mamoru Sakugawa | 7 | * Hitoshi Yamamoto, Mamoru Sakugawa |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <asm/m32r.h> | 10 | #include <asm/m32r.h> |
12 | #include <asm/page.h> | 11 | #include <asm/page.h> |
13 | #include <asm/io.h> | 12 | #include <asm/io.h> |
diff --git a/arch/m32r/kernel/io_mappi3.c b/arch/m32r/kernel/io_mappi3.c index ed6da930bc64..a13b5f6b07e9 100644 --- a/arch/m32r/kernel/io_mappi3.c +++ b/arch/m32r/kernel/io_mappi3.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto, Mamoru Sakugawa | 7 | * Hitoshi Yamamoto, Mamoru Sakugawa |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <asm/m32r.h> | 10 | #include <asm/m32r.h> |
12 | #include <asm/page.h> | 11 | #include <asm/page.h> |
13 | #include <asm/io.h> | 12 | #include <asm/io.h> |
diff --git a/arch/m32r/kernel/io_oaks32r.c b/arch/m32r/kernel/io_oaks32r.c index 910dd131c227..068bf47060f8 100644 --- a/arch/m32r/kernel/io_oaks32r.c +++ b/arch/m32r/kernel/io_oaks32r.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto, Mamoru Sakugawa | 7 | * Hitoshi Yamamoto, Mamoru Sakugawa |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <asm/m32r.h> | 10 | #include <asm/m32r.h> |
12 | #include <asm/page.h> | 11 | #include <asm/page.h> |
13 | #include <asm/io.h> | 12 | #include <asm/io.h> |
diff --git a/arch/m32r/kernel/io_opsput.c b/arch/m32r/kernel/io_opsput.c index bec69297db3c..da6c5f5c1f82 100644 --- a/arch/m32r/kernel/io_opsput.c +++ b/arch/m32r/kernel/io_opsput.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * archive for more details. | 11 | * archive for more details. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <asm/m32r.h> | 14 | #include <asm/m32r.h> |
16 | #include <asm/page.h> | 15 | #include <asm/page.h> |
17 | #include <asm/io.h> | 16 | #include <asm/io.h> |
diff --git a/arch/m32r/kernel/io_usrv.c b/arch/m32r/kernel/io_usrv.c index 39a379af40bc..a8c0e2eceb4d 100644 --- a/arch/m32r/kernel/io_usrv.c +++ b/arch/m32r/kernel/io_usrv.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * | 12 | * |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <asm/m32r.h> | 15 | #include <asm/m32r.h> |
17 | #include <asm/page.h> | 16 | #include <asm/page.h> |
18 | #include <asm/io.h> | 17 | #include <asm/io.h> |
diff --git a/arch/m32r/kernel/irq.c b/arch/m32r/kernel/irq.c index a4634b06f675..3841861df6a2 100644 --- a/arch/m32r/kernel/irq.c +++ b/arch/m32r/kernel/irq.c | |||
@@ -54,7 +54,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
54 | for_each_online_cpu(j) | 54 | for_each_online_cpu(j) |
55 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 55 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); |
56 | #endif | 56 | #endif |
57 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 57 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
58 | seq_printf(p, " %s", action->name); | 58 | seq_printf(p, " %s", action->name); |
59 | 59 | ||
60 | for (action=action->next; action; action = action->next) | 60 | for (action=action->next; action; action = action->next) |
diff --git a/arch/m32r/kernel/m32r_ksyms.c b/arch/m32r/kernel/m32r_ksyms.c index c50330fa83b9..8cbbb0b11e0c 100644 --- a/arch/m32r/kernel/m32r_ksyms.c +++ b/arch/m32r/kernel/m32r_ksyms.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/smp.h> | 2 | #include <linux/smp.h> |
4 | #include <linux/user.h> | 3 | #include <linux/user.h> |
diff --git a/arch/m32r/kernel/module.c b/arch/m32r/kernel/module.c index f6a79a016ce0..8d4205794380 100644 --- a/arch/m32r/kernel/module.c +++ b/arch/m32r/kernel/module.c | |||
@@ -15,7 +15,6 @@ | |||
15 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 15 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/moduleloader.h> | 18 | #include <linux/moduleloader.h> |
20 | #include <linux/elf.h> | 19 | #include <linux/elf.h> |
21 | #include <linux/vmalloc.h> | 20 | #include <linux/vmalloc.h> |
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c index 065f5e719058..44cbe0ce0f8f 100644 --- a/arch/m32r/kernel/process.c +++ b/arch/m32r/kernel/process.c | |||
@@ -21,7 +21,6 @@ | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/fs.h> | 23 | #include <linux/fs.h> |
24 | #include <linux/config.h> | ||
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <linux/ptrace.h> | 25 | #include <linux/ptrace.h> |
27 | #include <linux/unistd.h> | 26 | #include <linux/unistd.h> |
diff --git a/arch/m32r/kernel/ptrace.c b/arch/m32r/kernel/ptrace.c index 340a3bf59b88..5f02b3144875 100644 --- a/arch/m32r/kernel/ptrace.c +++ b/arch/m32r/kernel/ptrace.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Copyright (C) 2000 Russell King | 14 | * Copyright (C) 2000 Russell King |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/m32r/kernel/semaphore.c b/arch/m32r/kernel/semaphore.c index 9a6e6d754ddc..940c2d37cfd1 100644 --- a/arch/m32r/kernel/semaphore.c +++ b/arch/m32r/kernel/semaphore.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * | 21 | * |
22 | * rw semaphores implemented November 1999 by Benjamin LaHaise <bcrl@kvack.org> | 22 | * rw semaphores implemented November 1999 by Benjamin LaHaise <bcrl@kvack.org> |
23 | */ | 23 | */ |
24 | #include <linux/config.h> | ||
25 | #include <linux/sched.h> | 24 | #include <linux/sched.h> |
26 | #include <linux/err.h> | 25 | #include <linux/err.h> |
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
diff --git a/arch/m32r/kernel/setup.c b/arch/m32r/kernel/setup.c index 1ff483c8a4c9..0a6c6e677afe 100644 --- a/arch/m32r/kernel/setup.c +++ b/arch/m32r/kernel/setup.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto | 7 | * Hitoshi Yamamoto |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
diff --git a/arch/m32r/kernel/setup_m32104ut.c b/arch/m32r/kernel/setup_m32104ut.c index 6328e1357a80..1692b321f476 100644 --- a/arch/m32r/kernel/setup_m32104ut.c +++ b/arch/m32r/kernel/setup_m32104ut.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Naoto Sugai, Hayato Fujiwara | 8 | * Naoto Sugai, Hayato Fujiwara |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
@@ -87,7 +86,7 @@ void __init init_IRQ(void) | |||
87 | #if defined(CONFIG_SMC91X) | 86 | #if defined(CONFIG_SMC91X) |
88 | /* INT#0: LAN controller on M32104UT-LAN (SMC91C111)*/ | 87 | /* INT#0: LAN controller on M32104UT-LAN (SMC91C111)*/ |
89 | irq_desc[M32R_IRQ_INT0].status = IRQ_DISABLED; | 88 | irq_desc[M32R_IRQ_INT0].status = IRQ_DISABLED; |
90 | irq_desc[M32R_IRQ_INT0].handler = &m32104ut_irq_type; | 89 | irq_desc[M32R_IRQ_INT0].chip = &m32104ut_irq_type; |
91 | irq_desc[M32R_IRQ_INT0].action = 0; | 90 | irq_desc[M32R_IRQ_INT0].action = 0; |
92 | irq_desc[M32R_IRQ_INT0].depth = 1; | 91 | irq_desc[M32R_IRQ_INT0].depth = 1; |
93 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN | M32R_ICUCR_ISMOD11; /* "H" level sense */ | 92 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN | M32R_ICUCR_ISMOD11; /* "H" level sense */ |
@@ -96,7 +95,7 @@ void __init init_IRQ(void) | |||
96 | 95 | ||
97 | /* MFT2 : system timer */ | 96 | /* MFT2 : system timer */ |
98 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; | 97 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; |
99 | irq_desc[M32R_IRQ_MFT2].handler = &m32104ut_irq_type; | 98 | irq_desc[M32R_IRQ_MFT2].chip = &m32104ut_irq_type; |
100 | irq_desc[M32R_IRQ_MFT2].action = 0; | 99 | irq_desc[M32R_IRQ_MFT2].action = 0; |
101 | irq_desc[M32R_IRQ_MFT2].depth = 1; | 100 | irq_desc[M32R_IRQ_MFT2].depth = 1; |
102 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; | 101 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; |
@@ -105,7 +104,7 @@ void __init init_IRQ(void) | |||
105 | #ifdef CONFIG_SERIAL_M32R_SIO | 104 | #ifdef CONFIG_SERIAL_M32R_SIO |
106 | /* SIO0_R : uart receive data */ | 105 | /* SIO0_R : uart receive data */ |
107 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; | 106 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; |
108 | irq_desc[M32R_IRQ_SIO0_R].handler = &m32104ut_irq_type; | 107 | irq_desc[M32R_IRQ_SIO0_R].chip = &m32104ut_irq_type; |
109 | irq_desc[M32R_IRQ_SIO0_R].action = 0; | 108 | irq_desc[M32R_IRQ_SIO0_R].action = 0; |
110 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; | 109 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; |
111 | icu_data[M32R_IRQ_SIO0_R].icucr = M32R_ICUCR_IEN; | 110 | icu_data[M32R_IRQ_SIO0_R].icucr = M32R_ICUCR_IEN; |
@@ -113,7 +112,7 @@ void __init init_IRQ(void) | |||
113 | 112 | ||
114 | /* SIO0_S : uart send data */ | 113 | /* SIO0_S : uart send data */ |
115 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; | 114 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; |
116 | irq_desc[M32R_IRQ_SIO0_S].handler = &m32104ut_irq_type; | 115 | irq_desc[M32R_IRQ_SIO0_S].chip = &m32104ut_irq_type; |
117 | irq_desc[M32R_IRQ_SIO0_S].action = 0; | 116 | irq_desc[M32R_IRQ_SIO0_S].action = 0; |
118 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; | 117 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; |
119 | icu_data[M32R_IRQ_SIO0_S].icucr = M32R_ICUCR_IEN; | 118 | icu_data[M32R_IRQ_SIO0_S].icucr = M32R_ICUCR_IEN; |
diff --git a/arch/m32r/kernel/setup_m32700ut.c b/arch/m32r/kernel/setup_m32700ut.c index fad1fc99bb27..7efc145c74c2 100644 --- a/arch/m32r/kernel/setup_m32700ut.c +++ b/arch/m32r/kernel/setup_m32700ut.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * archive for more details. | 11 | * archive for more details. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
@@ -301,7 +300,7 @@ void __init init_IRQ(void) | |||
301 | #if defined(CONFIG_SMC91X) | 300 | #if defined(CONFIG_SMC91X) |
302 | /* INT#0: LAN controller on M32700UT-LAN (SMC91C111)*/ | 301 | /* INT#0: LAN controller on M32700UT-LAN (SMC91C111)*/ |
303 | irq_desc[M32700UT_LAN_IRQ_LAN].status = IRQ_DISABLED; | 302 | irq_desc[M32700UT_LAN_IRQ_LAN].status = IRQ_DISABLED; |
304 | irq_desc[M32700UT_LAN_IRQ_LAN].handler = &m32700ut_lanpld_irq_type; | 303 | irq_desc[M32700UT_LAN_IRQ_LAN].chip = &m32700ut_lanpld_irq_type; |
305 | irq_desc[M32700UT_LAN_IRQ_LAN].action = 0; | 304 | irq_desc[M32700UT_LAN_IRQ_LAN].action = 0; |
306 | irq_desc[M32700UT_LAN_IRQ_LAN].depth = 1; /* disable nested irq */ | 305 | irq_desc[M32700UT_LAN_IRQ_LAN].depth = 1; /* disable nested irq */ |
307 | lanpld_icu_data[irq2lanpldirq(M32700UT_LAN_IRQ_LAN)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD02; /* "H" edge sense */ | 306 | lanpld_icu_data[irq2lanpldirq(M32700UT_LAN_IRQ_LAN)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD02; /* "H" edge sense */ |
@@ -310,7 +309,7 @@ void __init init_IRQ(void) | |||
310 | 309 | ||
311 | /* MFT2 : system timer */ | 310 | /* MFT2 : system timer */ |
312 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; | 311 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; |
313 | irq_desc[M32R_IRQ_MFT2].handler = &m32700ut_irq_type; | 312 | irq_desc[M32R_IRQ_MFT2].chip = &m32700ut_irq_type; |
314 | irq_desc[M32R_IRQ_MFT2].action = 0; | 313 | irq_desc[M32R_IRQ_MFT2].action = 0; |
315 | irq_desc[M32R_IRQ_MFT2].depth = 1; | 314 | irq_desc[M32R_IRQ_MFT2].depth = 1; |
316 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; | 315 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; |
@@ -318,7 +317,7 @@ void __init init_IRQ(void) | |||
318 | 317 | ||
319 | /* SIO0 : receive */ | 318 | /* SIO0 : receive */ |
320 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; | 319 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; |
321 | irq_desc[M32R_IRQ_SIO0_R].handler = &m32700ut_irq_type; | 320 | irq_desc[M32R_IRQ_SIO0_R].chip = &m32700ut_irq_type; |
322 | irq_desc[M32R_IRQ_SIO0_R].action = 0; | 321 | irq_desc[M32R_IRQ_SIO0_R].action = 0; |
323 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; | 322 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; |
324 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; | 323 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; |
@@ -326,7 +325,7 @@ void __init init_IRQ(void) | |||
326 | 325 | ||
327 | /* SIO0 : send */ | 326 | /* SIO0 : send */ |
328 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; | 327 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; |
329 | irq_desc[M32R_IRQ_SIO0_S].handler = &m32700ut_irq_type; | 328 | irq_desc[M32R_IRQ_SIO0_S].chip = &m32700ut_irq_type; |
330 | irq_desc[M32R_IRQ_SIO0_S].action = 0; | 329 | irq_desc[M32R_IRQ_SIO0_S].action = 0; |
331 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; | 330 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; |
332 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; | 331 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; |
@@ -334,7 +333,7 @@ void __init init_IRQ(void) | |||
334 | 333 | ||
335 | /* SIO1 : receive */ | 334 | /* SIO1 : receive */ |
336 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; | 335 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; |
337 | irq_desc[M32R_IRQ_SIO1_R].handler = &m32700ut_irq_type; | 336 | irq_desc[M32R_IRQ_SIO1_R].chip = &m32700ut_irq_type; |
338 | irq_desc[M32R_IRQ_SIO1_R].action = 0; | 337 | irq_desc[M32R_IRQ_SIO1_R].action = 0; |
339 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; | 338 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; |
340 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; | 339 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; |
@@ -342,7 +341,7 @@ void __init init_IRQ(void) | |||
342 | 341 | ||
343 | /* SIO1 : send */ | 342 | /* SIO1 : send */ |
344 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; | 343 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; |
345 | irq_desc[M32R_IRQ_SIO1_S].handler = &m32700ut_irq_type; | 344 | irq_desc[M32R_IRQ_SIO1_S].chip = &m32700ut_irq_type; |
346 | irq_desc[M32R_IRQ_SIO1_S].action = 0; | 345 | irq_desc[M32R_IRQ_SIO1_S].action = 0; |
347 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; | 346 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; |
348 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; | 347 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; |
@@ -350,7 +349,7 @@ void __init init_IRQ(void) | |||
350 | 349 | ||
351 | /* DMA1 : */ | 350 | /* DMA1 : */ |
352 | irq_desc[M32R_IRQ_DMA1].status = IRQ_DISABLED; | 351 | irq_desc[M32R_IRQ_DMA1].status = IRQ_DISABLED; |
353 | irq_desc[M32R_IRQ_DMA1].handler = &m32700ut_irq_type; | 352 | irq_desc[M32R_IRQ_DMA1].chip = &m32700ut_irq_type; |
354 | irq_desc[M32R_IRQ_DMA1].action = 0; | 353 | irq_desc[M32R_IRQ_DMA1].action = 0; |
355 | irq_desc[M32R_IRQ_DMA1].depth = 1; | 354 | irq_desc[M32R_IRQ_DMA1].depth = 1; |
356 | icu_data[M32R_IRQ_DMA1].icucr = 0; | 355 | icu_data[M32R_IRQ_DMA1].icucr = 0; |
@@ -359,7 +358,7 @@ void __init init_IRQ(void) | |||
359 | #ifdef CONFIG_SERIAL_M32R_PLDSIO | 358 | #ifdef CONFIG_SERIAL_M32R_PLDSIO |
360 | /* INT#1: SIO0 Receive on PLD */ | 359 | /* INT#1: SIO0 Receive on PLD */ |
361 | irq_desc[PLD_IRQ_SIO0_RCV].status = IRQ_DISABLED; | 360 | irq_desc[PLD_IRQ_SIO0_RCV].status = IRQ_DISABLED; |
362 | irq_desc[PLD_IRQ_SIO0_RCV].handler = &m32700ut_pld_irq_type; | 361 | irq_desc[PLD_IRQ_SIO0_RCV].chip = &m32700ut_pld_irq_type; |
363 | irq_desc[PLD_IRQ_SIO0_RCV].action = 0; | 362 | irq_desc[PLD_IRQ_SIO0_RCV].action = 0; |
364 | irq_desc[PLD_IRQ_SIO0_RCV].depth = 1; /* disable nested irq */ | 363 | irq_desc[PLD_IRQ_SIO0_RCV].depth = 1; /* disable nested irq */ |
365 | pld_icu_data[irq2pldirq(PLD_IRQ_SIO0_RCV)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD03; | 364 | pld_icu_data[irq2pldirq(PLD_IRQ_SIO0_RCV)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD03; |
@@ -367,7 +366,7 @@ void __init init_IRQ(void) | |||
367 | 366 | ||
368 | /* INT#1: SIO0 Send on PLD */ | 367 | /* INT#1: SIO0 Send on PLD */ |
369 | irq_desc[PLD_IRQ_SIO0_SND].status = IRQ_DISABLED; | 368 | irq_desc[PLD_IRQ_SIO0_SND].status = IRQ_DISABLED; |
370 | irq_desc[PLD_IRQ_SIO0_SND].handler = &m32700ut_pld_irq_type; | 369 | irq_desc[PLD_IRQ_SIO0_SND].chip = &m32700ut_pld_irq_type; |
371 | irq_desc[PLD_IRQ_SIO0_SND].action = 0; | 370 | irq_desc[PLD_IRQ_SIO0_SND].action = 0; |
372 | irq_desc[PLD_IRQ_SIO0_SND].depth = 1; /* disable nested irq */ | 371 | irq_desc[PLD_IRQ_SIO0_SND].depth = 1; /* disable nested irq */ |
373 | pld_icu_data[irq2pldirq(PLD_IRQ_SIO0_SND)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD03; | 372 | pld_icu_data[irq2pldirq(PLD_IRQ_SIO0_SND)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD03; |
@@ -376,7 +375,7 @@ void __init init_IRQ(void) | |||
376 | 375 | ||
377 | /* INT#1: CFC IREQ on PLD */ | 376 | /* INT#1: CFC IREQ on PLD */ |
378 | irq_desc[PLD_IRQ_CFIREQ].status = IRQ_DISABLED; | 377 | irq_desc[PLD_IRQ_CFIREQ].status = IRQ_DISABLED; |
379 | irq_desc[PLD_IRQ_CFIREQ].handler = &m32700ut_pld_irq_type; | 378 | irq_desc[PLD_IRQ_CFIREQ].chip = &m32700ut_pld_irq_type; |
380 | irq_desc[PLD_IRQ_CFIREQ].action = 0; | 379 | irq_desc[PLD_IRQ_CFIREQ].action = 0; |
381 | irq_desc[PLD_IRQ_CFIREQ].depth = 1; /* disable nested irq */ | 380 | irq_desc[PLD_IRQ_CFIREQ].depth = 1; /* disable nested irq */ |
382 | pld_icu_data[irq2pldirq(PLD_IRQ_CFIREQ)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD01; /* 'L' level sense */ | 381 | pld_icu_data[irq2pldirq(PLD_IRQ_CFIREQ)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD01; /* 'L' level sense */ |
@@ -384,7 +383,7 @@ void __init init_IRQ(void) | |||
384 | 383 | ||
385 | /* INT#1: CFC Insert on PLD */ | 384 | /* INT#1: CFC Insert on PLD */ |
386 | irq_desc[PLD_IRQ_CFC_INSERT].status = IRQ_DISABLED; | 385 | irq_desc[PLD_IRQ_CFC_INSERT].status = IRQ_DISABLED; |
387 | irq_desc[PLD_IRQ_CFC_INSERT].handler = &m32700ut_pld_irq_type; | 386 | irq_desc[PLD_IRQ_CFC_INSERT].chip = &m32700ut_pld_irq_type; |
388 | irq_desc[PLD_IRQ_CFC_INSERT].action = 0; | 387 | irq_desc[PLD_IRQ_CFC_INSERT].action = 0; |
389 | irq_desc[PLD_IRQ_CFC_INSERT].depth = 1; /* disable nested irq */ | 388 | irq_desc[PLD_IRQ_CFC_INSERT].depth = 1; /* disable nested irq */ |
390 | pld_icu_data[irq2pldirq(PLD_IRQ_CFC_INSERT)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD00; /* 'L' edge sense */ | 389 | pld_icu_data[irq2pldirq(PLD_IRQ_CFC_INSERT)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD00; /* 'L' edge sense */ |
@@ -392,7 +391,7 @@ void __init init_IRQ(void) | |||
392 | 391 | ||
393 | /* INT#1: CFC Eject on PLD */ | 392 | /* INT#1: CFC Eject on PLD */ |
394 | irq_desc[PLD_IRQ_CFC_EJECT].status = IRQ_DISABLED; | 393 | irq_desc[PLD_IRQ_CFC_EJECT].status = IRQ_DISABLED; |
395 | irq_desc[PLD_IRQ_CFC_EJECT].handler = &m32700ut_pld_irq_type; | 394 | irq_desc[PLD_IRQ_CFC_EJECT].chip = &m32700ut_pld_irq_type; |
396 | irq_desc[PLD_IRQ_CFC_EJECT].action = 0; | 395 | irq_desc[PLD_IRQ_CFC_EJECT].action = 0; |
397 | irq_desc[PLD_IRQ_CFC_EJECT].depth = 1; /* disable nested irq */ | 396 | irq_desc[PLD_IRQ_CFC_EJECT].depth = 1; /* disable nested irq */ |
398 | pld_icu_data[irq2pldirq(PLD_IRQ_CFC_EJECT)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD02; /* 'H' edge sense */ | 397 | pld_icu_data[irq2pldirq(PLD_IRQ_CFC_EJECT)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD02; /* 'H' edge sense */ |
@@ -416,7 +415,7 @@ void __init init_IRQ(void) | |||
416 | outw(USBCR_OTGS, USBCR); /* USBCR: non-OTG */ | 415 | outw(USBCR_OTGS, USBCR); /* USBCR: non-OTG */ |
417 | 416 | ||
418 | irq_desc[M32700UT_LCD_IRQ_USB_INT1].status = IRQ_DISABLED; | 417 | irq_desc[M32700UT_LCD_IRQ_USB_INT1].status = IRQ_DISABLED; |
419 | irq_desc[M32700UT_LCD_IRQ_USB_INT1].handler = &m32700ut_lcdpld_irq_type; | 418 | irq_desc[M32700UT_LCD_IRQ_USB_INT1].chip = &m32700ut_lcdpld_irq_type; |
420 | irq_desc[M32700UT_LCD_IRQ_USB_INT1].action = 0; | 419 | irq_desc[M32700UT_LCD_IRQ_USB_INT1].action = 0; |
421 | irq_desc[M32700UT_LCD_IRQ_USB_INT1].depth = 1; | 420 | irq_desc[M32700UT_LCD_IRQ_USB_INT1].depth = 1; |
422 | lcdpld_icu_data[irq2lcdpldirq(M32700UT_LCD_IRQ_USB_INT1)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD01; /* "L" level sense */ | 421 | lcdpld_icu_data[irq2lcdpldirq(M32700UT_LCD_IRQ_USB_INT1)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD01; /* "L" level sense */ |
@@ -434,7 +433,7 @@ void __init init_IRQ(void) | |||
434 | * INT3# is used for AR | 433 | * INT3# is used for AR |
435 | */ | 434 | */ |
436 | irq_desc[M32R_IRQ_INT3].status = IRQ_DISABLED; | 435 | irq_desc[M32R_IRQ_INT3].status = IRQ_DISABLED; |
437 | irq_desc[M32R_IRQ_INT3].handler = &m32700ut_irq_type; | 436 | irq_desc[M32R_IRQ_INT3].chip = &m32700ut_irq_type; |
438 | irq_desc[M32R_IRQ_INT3].action = 0; | 437 | irq_desc[M32R_IRQ_INT3].action = 0; |
439 | irq_desc[M32R_IRQ_INT3].depth = 1; | 438 | irq_desc[M32R_IRQ_INT3].depth = 1; |
440 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 439 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
diff --git a/arch/m32r/kernel/setup_mappi.c b/arch/m32r/kernel/setup_mappi.c index 00f253209cb3..67dbbdc9d111 100644 --- a/arch/m32r/kernel/setup_mappi.c +++ b/arch/m32r/kernel/setup_mappi.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto | 7 | * Hitoshi Yamamoto |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/irq.h> | 10 | #include <linux/irq.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
@@ -86,7 +85,7 @@ void __init init_IRQ(void) | |||
86 | #ifdef CONFIG_NE2000 | 85 | #ifdef CONFIG_NE2000 |
87 | /* INT0 : LAN controller (RTL8019AS) */ | 86 | /* INT0 : LAN controller (RTL8019AS) */ |
88 | irq_desc[M32R_IRQ_INT0].status = IRQ_DISABLED; | 87 | irq_desc[M32R_IRQ_INT0].status = IRQ_DISABLED; |
89 | irq_desc[M32R_IRQ_INT0].handler = &mappi_irq_type; | 88 | irq_desc[M32R_IRQ_INT0].chip = &mappi_irq_type; |
90 | irq_desc[M32R_IRQ_INT0].action = 0; | 89 | irq_desc[M32R_IRQ_INT0].action = 0; |
91 | irq_desc[M32R_IRQ_INT0].depth = 1; | 90 | irq_desc[M32R_IRQ_INT0].depth = 1; |
92 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 91 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
@@ -95,7 +94,7 @@ void __init init_IRQ(void) | |||
95 | 94 | ||
96 | /* MFT2 : system timer */ | 95 | /* MFT2 : system timer */ |
97 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; | 96 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; |
98 | irq_desc[M32R_IRQ_MFT2].handler = &mappi_irq_type; | 97 | irq_desc[M32R_IRQ_MFT2].chip = &mappi_irq_type; |
99 | irq_desc[M32R_IRQ_MFT2].action = 0; | 98 | irq_desc[M32R_IRQ_MFT2].action = 0; |
100 | irq_desc[M32R_IRQ_MFT2].depth = 1; | 99 | irq_desc[M32R_IRQ_MFT2].depth = 1; |
101 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; | 100 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; |
@@ -104,7 +103,7 @@ void __init init_IRQ(void) | |||
104 | #ifdef CONFIG_SERIAL_M32R_SIO | 103 | #ifdef CONFIG_SERIAL_M32R_SIO |
105 | /* SIO0_R : uart receive data */ | 104 | /* SIO0_R : uart receive data */ |
106 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; | 105 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; |
107 | irq_desc[M32R_IRQ_SIO0_R].handler = &mappi_irq_type; | 106 | irq_desc[M32R_IRQ_SIO0_R].chip = &mappi_irq_type; |
108 | irq_desc[M32R_IRQ_SIO0_R].action = 0; | 107 | irq_desc[M32R_IRQ_SIO0_R].action = 0; |
109 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; | 108 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; |
110 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; | 109 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; |
@@ -112,7 +111,7 @@ void __init init_IRQ(void) | |||
112 | 111 | ||
113 | /* SIO0_S : uart send data */ | 112 | /* SIO0_S : uart send data */ |
114 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; | 113 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; |
115 | irq_desc[M32R_IRQ_SIO0_S].handler = &mappi_irq_type; | 114 | irq_desc[M32R_IRQ_SIO0_S].chip = &mappi_irq_type; |
116 | irq_desc[M32R_IRQ_SIO0_S].action = 0; | 115 | irq_desc[M32R_IRQ_SIO0_S].action = 0; |
117 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; | 116 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; |
118 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; | 117 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; |
@@ -120,7 +119,7 @@ void __init init_IRQ(void) | |||
120 | 119 | ||
121 | /* SIO1_R : uart receive data */ | 120 | /* SIO1_R : uart receive data */ |
122 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; | 121 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; |
123 | irq_desc[M32R_IRQ_SIO1_R].handler = &mappi_irq_type; | 122 | irq_desc[M32R_IRQ_SIO1_R].chip = &mappi_irq_type; |
124 | irq_desc[M32R_IRQ_SIO1_R].action = 0; | 123 | irq_desc[M32R_IRQ_SIO1_R].action = 0; |
125 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; | 124 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; |
126 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; | 125 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; |
@@ -128,7 +127,7 @@ void __init init_IRQ(void) | |||
128 | 127 | ||
129 | /* SIO1_S : uart send data */ | 128 | /* SIO1_S : uart send data */ |
130 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; | 129 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; |
131 | irq_desc[M32R_IRQ_SIO1_S].handler = &mappi_irq_type; | 130 | irq_desc[M32R_IRQ_SIO1_S].chip = &mappi_irq_type; |
132 | irq_desc[M32R_IRQ_SIO1_S].action = 0; | 131 | irq_desc[M32R_IRQ_SIO1_S].action = 0; |
133 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; | 132 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; |
134 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; | 133 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; |
@@ -138,7 +137,7 @@ void __init init_IRQ(void) | |||
138 | #if defined(CONFIG_M32R_PCC) | 137 | #if defined(CONFIG_M32R_PCC) |
139 | /* INT1 : pccard0 interrupt */ | 138 | /* INT1 : pccard0 interrupt */ |
140 | irq_desc[M32R_IRQ_INT1].status = IRQ_DISABLED; | 139 | irq_desc[M32R_IRQ_INT1].status = IRQ_DISABLED; |
141 | irq_desc[M32R_IRQ_INT1].handler = &mappi_irq_type; | 140 | irq_desc[M32R_IRQ_INT1].chip = &mappi_irq_type; |
142 | irq_desc[M32R_IRQ_INT1].action = 0; | 141 | irq_desc[M32R_IRQ_INT1].action = 0; |
143 | irq_desc[M32R_IRQ_INT1].depth = 1; | 142 | irq_desc[M32R_IRQ_INT1].depth = 1; |
144 | icu_data[M32R_IRQ_INT1].icucr = M32R_ICUCR_IEN | M32R_ICUCR_ISMOD00; | 143 | icu_data[M32R_IRQ_INT1].icucr = M32R_ICUCR_IEN | M32R_ICUCR_ISMOD00; |
@@ -146,7 +145,7 @@ void __init init_IRQ(void) | |||
146 | 145 | ||
147 | /* INT2 : pccard1 interrupt */ | 146 | /* INT2 : pccard1 interrupt */ |
148 | irq_desc[M32R_IRQ_INT2].status = IRQ_DISABLED; | 147 | irq_desc[M32R_IRQ_INT2].status = IRQ_DISABLED; |
149 | irq_desc[M32R_IRQ_INT2].handler = &mappi_irq_type; | 148 | irq_desc[M32R_IRQ_INT2].chip = &mappi_irq_type; |
150 | irq_desc[M32R_IRQ_INT2].action = 0; | 149 | irq_desc[M32R_IRQ_INT2].action = 0; |
151 | irq_desc[M32R_IRQ_INT2].depth = 1; | 150 | irq_desc[M32R_IRQ_INT2].depth = 1; |
152 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN | M32R_ICUCR_ISMOD00; | 151 | icu_data[M32R_IRQ_INT2].icucr = M32R_ICUCR_IEN | M32R_ICUCR_ISMOD00; |
diff --git a/arch/m32r/kernel/setup_mappi2.c b/arch/m32r/kernel/setup_mappi2.c index eebc9d8b4e72..55abb2102750 100644 --- a/arch/m32r/kernel/setup_mappi2.c +++ b/arch/m32r/kernel/setup_mappi2.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto, Mamoru Sakugawa | 7 | * Hitoshi Yamamoto, Mamoru Sakugawa |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/irq.h> | 10 | #include <linux/irq.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
@@ -87,7 +86,7 @@ void __init init_IRQ(void) | |||
87 | #if defined(CONFIG_SMC91X) | 86 | #if defined(CONFIG_SMC91X) |
88 | /* INT0 : LAN controller (SMC91111) */ | 87 | /* INT0 : LAN controller (SMC91111) */ |
89 | irq_desc[M32R_IRQ_INT0].status = IRQ_DISABLED; | 88 | irq_desc[M32R_IRQ_INT0].status = IRQ_DISABLED; |
90 | irq_desc[M32R_IRQ_INT0].handler = &mappi2_irq_type; | 89 | irq_desc[M32R_IRQ_INT0].chip = &mappi2_irq_type; |
91 | irq_desc[M32R_IRQ_INT0].action = 0; | 90 | irq_desc[M32R_IRQ_INT0].action = 0; |
92 | irq_desc[M32R_IRQ_INT0].depth = 1; | 91 | irq_desc[M32R_IRQ_INT0].depth = 1; |
93 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 92 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
@@ -96,7 +95,7 @@ void __init init_IRQ(void) | |||
96 | 95 | ||
97 | /* MFT2 : system timer */ | 96 | /* MFT2 : system timer */ |
98 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; | 97 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; |
99 | irq_desc[M32R_IRQ_MFT2].handler = &mappi2_irq_type; | 98 | irq_desc[M32R_IRQ_MFT2].chip = &mappi2_irq_type; |
100 | irq_desc[M32R_IRQ_MFT2].action = 0; | 99 | irq_desc[M32R_IRQ_MFT2].action = 0; |
101 | irq_desc[M32R_IRQ_MFT2].depth = 1; | 100 | irq_desc[M32R_IRQ_MFT2].depth = 1; |
102 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; | 101 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; |
@@ -105,7 +104,7 @@ void __init init_IRQ(void) | |||
105 | #ifdef CONFIG_SERIAL_M32R_SIO | 104 | #ifdef CONFIG_SERIAL_M32R_SIO |
106 | /* SIO0_R : uart receive data */ | 105 | /* SIO0_R : uart receive data */ |
107 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; | 106 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; |
108 | irq_desc[M32R_IRQ_SIO0_R].handler = &mappi2_irq_type; | 107 | irq_desc[M32R_IRQ_SIO0_R].chip = &mappi2_irq_type; |
109 | irq_desc[M32R_IRQ_SIO0_R].action = 0; | 108 | irq_desc[M32R_IRQ_SIO0_R].action = 0; |
110 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; | 109 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; |
111 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; | 110 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; |
@@ -113,14 +112,14 @@ void __init init_IRQ(void) | |||
113 | 112 | ||
114 | /* SIO0_S : uart send data */ | 113 | /* SIO0_S : uart send data */ |
115 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; | 114 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; |
116 | irq_desc[M32R_IRQ_SIO0_S].handler = &mappi2_irq_type; | 115 | irq_desc[M32R_IRQ_SIO0_S].chip = &mappi2_irq_type; |
117 | irq_desc[M32R_IRQ_SIO0_S].action = 0; | 116 | irq_desc[M32R_IRQ_SIO0_S].action = 0; |
118 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; | 117 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; |
119 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; | 118 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; |
120 | disable_mappi2_irq(M32R_IRQ_SIO0_S); | 119 | disable_mappi2_irq(M32R_IRQ_SIO0_S); |
121 | /* SIO1_R : uart receive data */ | 120 | /* SIO1_R : uart receive data */ |
122 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; | 121 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; |
123 | irq_desc[M32R_IRQ_SIO1_R].handler = &mappi2_irq_type; | 122 | irq_desc[M32R_IRQ_SIO1_R].chip = &mappi2_irq_type; |
124 | irq_desc[M32R_IRQ_SIO1_R].action = 0; | 123 | irq_desc[M32R_IRQ_SIO1_R].action = 0; |
125 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; | 124 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; |
126 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; | 125 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; |
@@ -128,7 +127,7 @@ void __init init_IRQ(void) | |||
128 | 127 | ||
129 | /* SIO1_S : uart send data */ | 128 | /* SIO1_S : uart send data */ |
130 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; | 129 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; |
131 | irq_desc[M32R_IRQ_SIO1_S].handler = &mappi2_irq_type; | 130 | irq_desc[M32R_IRQ_SIO1_S].chip = &mappi2_irq_type; |
132 | irq_desc[M32R_IRQ_SIO1_S].action = 0; | 131 | irq_desc[M32R_IRQ_SIO1_S].action = 0; |
133 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; | 132 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; |
134 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; | 133 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; |
@@ -138,7 +137,7 @@ void __init init_IRQ(void) | |||
138 | #if defined(CONFIG_USB) | 137 | #if defined(CONFIG_USB) |
139 | /* INT1 : USB Host controller interrupt */ | 138 | /* INT1 : USB Host controller interrupt */ |
140 | irq_desc[M32R_IRQ_INT1].status = IRQ_DISABLED; | 139 | irq_desc[M32R_IRQ_INT1].status = IRQ_DISABLED; |
141 | irq_desc[M32R_IRQ_INT1].handler = &mappi2_irq_type; | 140 | irq_desc[M32R_IRQ_INT1].chip = &mappi2_irq_type; |
142 | irq_desc[M32R_IRQ_INT1].action = 0; | 141 | irq_desc[M32R_IRQ_INT1].action = 0; |
143 | irq_desc[M32R_IRQ_INT1].depth = 1; | 142 | irq_desc[M32R_IRQ_INT1].depth = 1; |
144 | icu_data[M32R_IRQ_INT1].icucr = M32R_ICUCR_ISMOD01; | 143 | icu_data[M32R_IRQ_INT1].icucr = M32R_ICUCR_ISMOD01; |
@@ -147,7 +146,7 @@ void __init init_IRQ(void) | |||
147 | 146 | ||
148 | /* ICUCR40: CFC IREQ */ | 147 | /* ICUCR40: CFC IREQ */ |
149 | irq_desc[PLD_IRQ_CFIREQ].status = IRQ_DISABLED; | 148 | irq_desc[PLD_IRQ_CFIREQ].status = IRQ_DISABLED; |
150 | irq_desc[PLD_IRQ_CFIREQ].handler = &mappi2_irq_type; | 149 | irq_desc[PLD_IRQ_CFIREQ].chip = &mappi2_irq_type; |
151 | irq_desc[PLD_IRQ_CFIREQ].action = 0; | 150 | irq_desc[PLD_IRQ_CFIREQ].action = 0; |
152 | irq_desc[PLD_IRQ_CFIREQ].depth = 1; /* disable nested irq */ | 151 | irq_desc[PLD_IRQ_CFIREQ].depth = 1; /* disable nested irq */ |
153 | icu_data[PLD_IRQ_CFIREQ].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; | 152 | icu_data[PLD_IRQ_CFIREQ].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; |
@@ -156,7 +155,7 @@ void __init init_IRQ(void) | |||
156 | #if defined(CONFIG_M32R_CFC) | 155 | #if defined(CONFIG_M32R_CFC) |
157 | /* ICUCR41: CFC Insert */ | 156 | /* ICUCR41: CFC Insert */ |
158 | irq_desc[PLD_IRQ_CFC_INSERT].status = IRQ_DISABLED; | 157 | irq_desc[PLD_IRQ_CFC_INSERT].status = IRQ_DISABLED; |
159 | irq_desc[PLD_IRQ_CFC_INSERT].handler = &mappi2_irq_type; | 158 | irq_desc[PLD_IRQ_CFC_INSERT].chip = &mappi2_irq_type; |
160 | irq_desc[PLD_IRQ_CFC_INSERT].action = 0; | 159 | irq_desc[PLD_IRQ_CFC_INSERT].action = 0; |
161 | irq_desc[PLD_IRQ_CFC_INSERT].depth = 1; /* disable nested irq */ | 160 | irq_desc[PLD_IRQ_CFC_INSERT].depth = 1; /* disable nested irq */ |
162 | icu_data[PLD_IRQ_CFC_INSERT].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD00; | 161 | icu_data[PLD_IRQ_CFC_INSERT].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD00; |
@@ -164,7 +163,7 @@ void __init init_IRQ(void) | |||
164 | 163 | ||
165 | /* ICUCR42: CFC Eject */ | 164 | /* ICUCR42: CFC Eject */ |
166 | irq_desc[PLD_IRQ_CFC_EJECT].status = IRQ_DISABLED; | 165 | irq_desc[PLD_IRQ_CFC_EJECT].status = IRQ_DISABLED; |
167 | irq_desc[PLD_IRQ_CFC_EJECT].handler = &mappi2_irq_type; | 166 | irq_desc[PLD_IRQ_CFC_EJECT].chip = &mappi2_irq_type; |
168 | irq_desc[PLD_IRQ_CFC_EJECT].action = 0; | 167 | irq_desc[PLD_IRQ_CFC_EJECT].action = 0; |
169 | irq_desc[PLD_IRQ_CFC_EJECT].depth = 1; /* disable nested irq */ | 168 | irq_desc[PLD_IRQ_CFC_EJECT].depth = 1; /* disable nested irq */ |
170 | icu_data[PLD_IRQ_CFC_EJECT].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 169 | icu_data[PLD_IRQ_CFC_EJECT].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
diff --git a/arch/m32r/kernel/setup_mappi3.c b/arch/m32r/kernel/setup_mappi3.c index d2ff021e2d3d..93dc010c7fc3 100644 --- a/arch/m32r/kernel/setup_mappi3.c +++ b/arch/m32r/kernel/setup_mappi3.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto, Mamoru Sakugawa | 7 | * Hitoshi Yamamoto, Mamoru Sakugawa |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/irq.h> | 10 | #include <linux/irq.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
@@ -87,7 +86,7 @@ void __init init_IRQ(void) | |||
87 | #if defined(CONFIG_SMC91X) | 86 | #if defined(CONFIG_SMC91X) |
88 | /* INT0 : LAN controller (SMC91111) */ | 87 | /* INT0 : LAN controller (SMC91111) */ |
89 | irq_desc[M32R_IRQ_INT0].status = IRQ_DISABLED; | 88 | irq_desc[M32R_IRQ_INT0].status = IRQ_DISABLED; |
90 | irq_desc[M32R_IRQ_INT0].handler = &mappi3_irq_type; | 89 | irq_desc[M32R_IRQ_INT0].chip = &mappi3_irq_type; |
91 | irq_desc[M32R_IRQ_INT0].action = 0; | 90 | irq_desc[M32R_IRQ_INT0].action = 0; |
92 | irq_desc[M32R_IRQ_INT0].depth = 1; | 91 | irq_desc[M32R_IRQ_INT0].depth = 1; |
93 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 92 | icu_data[M32R_IRQ_INT0].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
@@ -96,7 +95,7 @@ void __init init_IRQ(void) | |||
96 | 95 | ||
97 | /* MFT2 : system timer */ | 96 | /* MFT2 : system timer */ |
98 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; | 97 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; |
99 | irq_desc[M32R_IRQ_MFT2].handler = &mappi3_irq_type; | 98 | irq_desc[M32R_IRQ_MFT2].chip = &mappi3_irq_type; |
100 | irq_desc[M32R_IRQ_MFT2].action = 0; | 99 | irq_desc[M32R_IRQ_MFT2].action = 0; |
101 | irq_desc[M32R_IRQ_MFT2].depth = 1; | 100 | irq_desc[M32R_IRQ_MFT2].depth = 1; |
102 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; | 101 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; |
@@ -105,7 +104,7 @@ void __init init_IRQ(void) | |||
105 | #ifdef CONFIG_SERIAL_M32R_SIO | 104 | #ifdef CONFIG_SERIAL_M32R_SIO |
106 | /* SIO0_R : uart receive data */ | 105 | /* SIO0_R : uart receive data */ |
107 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; | 106 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; |
108 | irq_desc[M32R_IRQ_SIO0_R].handler = &mappi3_irq_type; | 107 | irq_desc[M32R_IRQ_SIO0_R].chip = &mappi3_irq_type; |
109 | irq_desc[M32R_IRQ_SIO0_R].action = 0; | 108 | irq_desc[M32R_IRQ_SIO0_R].action = 0; |
110 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; | 109 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; |
111 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; | 110 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; |
@@ -113,14 +112,14 @@ void __init init_IRQ(void) | |||
113 | 112 | ||
114 | /* SIO0_S : uart send data */ | 113 | /* SIO0_S : uart send data */ |
115 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; | 114 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; |
116 | irq_desc[M32R_IRQ_SIO0_S].handler = &mappi3_irq_type; | 115 | irq_desc[M32R_IRQ_SIO0_S].chip = &mappi3_irq_type; |
117 | irq_desc[M32R_IRQ_SIO0_S].action = 0; | 116 | irq_desc[M32R_IRQ_SIO0_S].action = 0; |
118 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; | 117 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; |
119 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; | 118 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; |
120 | disable_mappi3_irq(M32R_IRQ_SIO0_S); | 119 | disable_mappi3_irq(M32R_IRQ_SIO0_S); |
121 | /* SIO1_R : uart receive data */ | 120 | /* SIO1_R : uart receive data */ |
122 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; | 121 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; |
123 | irq_desc[M32R_IRQ_SIO1_R].handler = &mappi3_irq_type; | 122 | irq_desc[M32R_IRQ_SIO1_R].chip = &mappi3_irq_type; |
124 | irq_desc[M32R_IRQ_SIO1_R].action = 0; | 123 | irq_desc[M32R_IRQ_SIO1_R].action = 0; |
125 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; | 124 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; |
126 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; | 125 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; |
@@ -128,7 +127,7 @@ void __init init_IRQ(void) | |||
128 | 127 | ||
129 | /* SIO1_S : uart send data */ | 128 | /* SIO1_S : uart send data */ |
130 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; | 129 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; |
131 | irq_desc[M32R_IRQ_SIO1_S].handler = &mappi3_irq_type; | 130 | irq_desc[M32R_IRQ_SIO1_S].chip = &mappi3_irq_type; |
132 | irq_desc[M32R_IRQ_SIO1_S].action = 0; | 131 | irq_desc[M32R_IRQ_SIO1_S].action = 0; |
133 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; | 132 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; |
134 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; | 133 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; |
@@ -138,7 +137,7 @@ void __init init_IRQ(void) | |||
138 | #if defined(CONFIG_USB) | 137 | #if defined(CONFIG_USB) |
139 | /* INT1 : USB Host controller interrupt */ | 138 | /* INT1 : USB Host controller interrupt */ |
140 | irq_desc[M32R_IRQ_INT1].status = IRQ_DISABLED; | 139 | irq_desc[M32R_IRQ_INT1].status = IRQ_DISABLED; |
141 | irq_desc[M32R_IRQ_INT1].handler = &mappi3_irq_type; | 140 | irq_desc[M32R_IRQ_INT1].chip = &mappi3_irq_type; |
142 | irq_desc[M32R_IRQ_INT1].action = 0; | 141 | irq_desc[M32R_IRQ_INT1].action = 0; |
143 | irq_desc[M32R_IRQ_INT1].depth = 1; | 142 | irq_desc[M32R_IRQ_INT1].depth = 1; |
144 | icu_data[M32R_IRQ_INT1].icucr = M32R_ICUCR_ISMOD01; | 143 | icu_data[M32R_IRQ_INT1].icucr = M32R_ICUCR_ISMOD01; |
@@ -147,7 +146,7 @@ void __init init_IRQ(void) | |||
147 | 146 | ||
148 | /* CFC IREQ */ | 147 | /* CFC IREQ */ |
149 | irq_desc[PLD_IRQ_CFIREQ].status = IRQ_DISABLED; | 148 | irq_desc[PLD_IRQ_CFIREQ].status = IRQ_DISABLED; |
150 | irq_desc[PLD_IRQ_CFIREQ].handler = &mappi3_irq_type; | 149 | irq_desc[PLD_IRQ_CFIREQ].chip = &mappi3_irq_type; |
151 | irq_desc[PLD_IRQ_CFIREQ].action = 0; | 150 | irq_desc[PLD_IRQ_CFIREQ].action = 0; |
152 | irq_desc[PLD_IRQ_CFIREQ].depth = 1; /* disable nested irq */ | 151 | irq_desc[PLD_IRQ_CFIREQ].depth = 1; /* disable nested irq */ |
153 | icu_data[PLD_IRQ_CFIREQ].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; | 152 | icu_data[PLD_IRQ_CFIREQ].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD01; |
@@ -156,7 +155,7 @@ void __init init_IRQ(void) | |||
156 | #if defined(CONFIG_M32R_CFC) | 155 | #if defined(CONFIG_M32R_CFC) |
157 | /* ICUCR41: CFC Insert & eject */ | 156 | /* ICUCR41: CFC Insert & eject */ |
158 | irq_desc[PLD_IRQ_CFC_INSERT].status = IRQ_DISABLED; | 157 | irq_desc[PLD_IRQ_CFC_INSERT].status = IRQ_DISABLED; |
159 | irq_desc[PLD_IRQ_CFC_INSERT].handler = &mappi3_irq_type; | 158 | irq_desc[PLD_IRQ_CFC_INSERT].chip = &mappi3_irq_type; |
160 | irq_desc[PLD_IRQ_CFC_INSERT].action = 0; | 159 | irq_desc[PLD_IRQ_CFC_INSERT].action = 0; |
161 | irq_desc[PLD_IRQ_CFC_INSERT].depth = 1; /* disable nested irq */ | 160 | irq_desc[PLD_IRQ_CFC_INSERT].depth = 1; /* disable nested irq */ |
162 | icu_data[PLD_IRQ_CFC_INSERT].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD00; | 161 | icu_data[PLD_IRQ_CFC_INSERT].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD00; |
@@ -166,7 +165,7 @@ void __init init_IRQ(void) | |||
166 | 165 | ||
167 | /* IDE IREQ */ | 166 | /* IDE IREQ */ |
168 | irq_desc[PLD_IRQ_IDEIREQ].status = IRQ_DISABLED; | 167 | irq_desc[PLD_IRQ_IDEIREQ].status = IRQ_DISABLED; |
169 | irq_desc[PLD_IRQ_IDEIREQ].handler = &mappi3_irq_type; | 168 | irq_desc[PLD_IRQ_IDEIREQ].chip = &mappi3_irq_type; |
170 | irq_desc[PLD_IRQ_IDEIREQ].action = 0; | 169 | irq_desc[PLD_IRQ_IDEIREQ].action = 0; |
171 | irq_desc[PLD_IRQ_IDEIREQ].depth = 1; /* disable nested irq */ | 170 | irq_desc[PLD_IRQ_IDEIREQ].depth = 1; /* disable nested irq */ |
172 | icu_data[PLD_IRQ_IDEIREQ].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 171 | icu_data[PLD_IRQ_IDEIREQ].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
diff --git a/arch/m32r/kernel/setup_oaks32r.c b/arch/m32r/kernel/setup_oaks32r.c index 0e9e63538c0f..cd62598e3cea 100644 --- a/arch/m32r/kernel/setup_oaks32r.c +++ b/arch/m32r/kernel/setup_oaks32r.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto, Mamoru Sakugawa | 7 | * Hitoshi Yamamoto, Mamoru Sakugawa |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/irq.h> | 10 | #include <linux/irq.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
@@ -85,7 +84,7 @@ void __init init_IRQ(void) | |||
85 | #ifdef CONFIG_NE2000 | 84 | #ifdef CONFIG_NE2000 |
86 | /* INT3 : LAN controller (RTL8019AS) */ | 85 | /* INT3 : LAN controller (RTL8019AS) */ |
87 | irq_desc[M32R_IRQ_INT3].status = IRQ_DISABLED; | 86 | irq_desc[M32R_IRQ_INT3].status = IRQ_DISABLED; |
88 | irq_desc[M32R_IRQ_INT3].handler = &oaks32r_irq_type; | 87 | irq_desc[M32R_IRQ_INT3].chip = &oaks32r_irq_type; |
89 | irq_desc[M32R_IRQ_INT3].action = 0; | 88 | irq_desc[M32R_IRQ_INT3].action = 0; |
90 | irq_desc[M32R_IRQ_INT3].depth = 1; | 89 | irq_desc[M32R_IRQ_INT3].depth = 1; |
91 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 90 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
@@ -94,7 +93,7 @@ void __init init_IRQ(void) | |||
94 | 93 | ||
95 | /* MFT2 : system timer */ | 94 | /* MFT2 : system timer */ |
96 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; | 95 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; |
97 | irq_desc[M32R_IRQ_MFT2].handler = &oaks32r_irq_type; | 96 | irq_desc[M32R_IRQ_MFT2].chip = &oaks32r_irq_type; |
98 | irq_desc[M32R_IRQ_MFT2].action = 0; | 97 | irq_desc[M32R_IRQ_MFT2].action = 0; |
99 | irq_desc[M32R_IRQ_MFT2].depth = 1; | 98 | irq_desc[M32R_IRQ_MFT2].depth = 1; |
100 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; | 99 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; |
@@ -103,7 +102,7 @@ void __init init_IRQ(void) | |||
103 | #ifdef CONFIG_SERIAL_M32R_SIO | 102 | #ifdef CONFIG_SERIAL_M32R_SIO |
104 | /* SIO0_R : uart receive data */ | 103 | /* SIO0_R : uart receive data */ |
105 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; | 104 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; |
106 | irq_desc[M32R_IRQ_SIO0_R].handler = &oaks32r_irq_type; | 105 | irq_desc[M32R_IRQ_SIO0_R].chip = &oaks32r_irq_type; |
107 | irq_desc[M32R_IRQ_SIO0_R].action = 0; | 106 | irq_desc[M32R_IRQ_SIO0_R].action = 0; |
108 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; | 107 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; |
109 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; | 108 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; |
@@ -111,7 +110,7 @@ void __init init_IRQ(void) | |||
111 | 110 | ||
112 | /* SIO0_S : uart send data */ | 111 | /* SIO0_S : uart send data */ |
113 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; | 112 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; |
114 | irq_desc[M32R_IRQ_SIO0_S].handler = &oaks32r_irq_type; | 113 | irq_desc[M32R_IRQ_SIO0_S].chip = &oaks32r_irq_type; |
115 | irq_desc[M32R_IRQ_SIO0_S].action = 0; | 114 | irq_desc[M32R_IRQ_SIO0_S].action = 0; |
116 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; | 115 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; |
117 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; | 116 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; |
@@ -119,7 +118,7 @@ void __init init_IRQ(void) | |||
119 | 118 | ||
120 | /* SIO1_R : uart receive data */ | 119 | /* SIO1_R : uart receive data */ |
121 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; | 120 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; |
122 | irq_desc[M32R_IRQ_SIO1_R].handler = &oaks32r_irq_type; | 121 | irq_desc[M32R_IRQ_SIO1_R].chip = &oaks32r_irq_type; |
123 | irq_desc[M32R_IRQ_SIO1_R].action = 0; | 122 | irq_desc[M32R_IRQ_SIO1_R].action = 0; |
124 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; | 123 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; |
125 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; | 124 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; |
@@ -127,7 +126,7 @@ void __init init_IRQ(void) | |||
127 | 126 | ||
128 | /* SIO1_S : uart send data */ | 127 | /* SIO1_S : uart send data */ |
129 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; | 128 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; |
130 | irq_desc[M32R_IRQ_SIO1_S].handler = &oaks32r_irq_type; | 129 | irq_desc[M32R_IRQ_SIO1_S].chip = &oaks32r_irq_type; |
131 | irq_desc[M32R_IRQ_SIO1_S].action = 0; | 130 | irq_desc[M32R_IRQ_SIO1_S].action = 0; |
132 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; | 131 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; |
133 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; | 132 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; |
diff --git a/arch/m32r/kernel/setup_opsput.c b/arch/m32r/kernel/setup_opsput.c index 548e8fc7949b..61d3b01cbe07 100644 --- a/arch/m32r/kernel/setup_opsput.c +++ b/arch/m32r/kernel/setup_opsput.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * archive for more details. | 12 | * archive for more details. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/irq.h> | 15 | #include <linux/irq.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
@@ -302,7 +301,7 @@ void __init init_IRQ(void) | |||
302 | #if defined(CONFIG_SMC91X) | 301 | #if defined(CONFIG_SMC91X) |
303 | /* INT#0: LAN controller on OPSPUT-LAN (SMC91C111)*/ | 302 | /* INT#0: LAN controller on OPSPUT-LAN (SMC91C111)*/ |
304 | irq_desc[OPSPUT_LAN_IRQ_LAN].status = IRQ_DISABLED; | 303 | irq_desc[OPSPUT_LAN_IRQ_LAN].status = IRQ_DISABLED; |
305 | irq_desc[OPSPUT_LAN_IRQ_LAN].handler = &opsput_lanpld_irq_type; | 304 | irq_desc[OPSPUT_LAN_IRQ_LAN].chip = &opsput_lanpld_irq_type; |
306 | irq_desc[OPSPUT_LAN_IRQ_LAN].action = 0; | 305 | irq_desc[OPSPUT_LAN_IRQ_LAN].action = 0; |
307 | irq_desc[OPSPUT_LAN_IRQ_LAN].depth = 1; /* disable nested irq */ | 306 | irq_desc[OPSPUT_LAN_IRQ_LAN].depth = 1; /* disable nested irq */ |
308 | lanpld_icu_data[irq2lanpldirq(OPSPUT_LAN_IRQ_LAN)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD02; /* "H" edge sense */ | 307 | lanpld_icu_data[irq2lanpldirq(OPSPUT_LAN_IRQ_LAN)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD02; /* "H" edge sense */ |
@@ -311,7 +310,7 @@ void __init init_IRQ(void) | |||
311 | 310 | ||
312 | /* MFT2 : system timer */ | 311 | /* MFT2 : system timer */ |
313 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; | 312 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; |
314 | irq_desc[M32R_IRQ_MFT2].handler = &opsput_irq_type; | 313 | irq_desc[M32R_IRQ_MFT2].chip = &opsput_irq_type; |
315 | irq_desc[M32R_IRQ_MFT2].action = 0; | 314 | irq_desc[M32R_IRQ_MFT2].action = 0; |
316 | irq_desc[M32R_IRQ_MFT2].depth = 1; | 315 | irq_desc[M32R_IRQ_MFT2].depth = 1; |
317 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; | 316 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; |
@@ -319,7 +318,7 @@ void __init init_IRQ(void) | |||
319 | 318 | ||
320 | /* SIO0 : receive */ | 319 | /* SIO0 : receive */ |
321 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; | 320 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; |
322 | irq_desc[M32R_IRQ_SIO0_R].handler = &opsput_irq_type; | 321 | irq_desc[M32R_IRQ_SIO0_R].chip = &opsput_irq_type; |
323 | irq_desc[M32R_IRQ_SIO0_R].action = 0; | 322 | irq_desc[M32R_IRQ_SIO0_R].action = 0; |
324 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; | 323 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; |
325 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; | 324 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; |
@@ -327,7 +326,7 @@ void __init init_IRQ(void) | |||
327 | 326 | ||
328 | /* SIO0 : send */ | 327 | /* SIO0 : send */ |
329 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; | 328 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; |
330 | irq_desc[M32R_IRQ_SIO0_S].handler = &opsput_irq_type; | 329 | irq_desc[M32R_IRQ_SIO0_S].chip = &opsput_irq_type; |
331 | irq_desc[M32R_IRQ_SIO0_S].action = 0; | 330 | irq_desc[M32R_IRQ_SIO0_S].action = 0; |
332 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; | 331 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; |
333 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; | 332 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; |
@@ -335,7 +334,7 @@ void __init init_IRQ(void) | |||
335 | 334 | ||
336 | /* SIO1 : receive */ | 335 | /* SIO1 : receive */ |
337 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; | 336 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; |
338 | irq_desc[M32R_IRQ_SIO1_R].handler = &opsput_irq_type; | 337 | irq_desc[M32R_IRQ_SIO1_R].chip = &opsput_irq_type; |
339 | irq_desc[M32R_IRQ_SIO1_R].action = 0; | 338 | irq_desc[M32R_IRQ_SIO1_R].action = 0; |
340 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; | 339 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; |
341 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; | 340 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; |
@@ -343,7 +342,7 @@ void __init init_IRQ(void) | |||
343 | 342 | ||
344 | /* SIO1 : send */ | 343 | /* SIO1 : send */ |
345 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; | 344 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; |
346 | irq_desc[M32R_IRQ_SIO1_S].handler = &opsput_irq_type; | 345 | irq_desc[M32R_IRQ_SIO1_S].chip = &opsput_irq_type; |
347 | irq_desc[M32R_IRQ_SIO1_S].action = 0; | 346 | irq_desc[M32R_IRQ_SIO1_S].action = 0; |
348 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; | 347 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; |
349 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; | 348 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; |
@@ -351,7 +350,7 @@ void __init init_IRQ(void) | |||
351 | 350 | ||
352 | /* DMA1 : */ | 351 | /* DMA1 : */ |
353 | irq_desc[M32R_IRQ_DMA1].status = IRQ_DISABLED; | 352 | irq_desc[M32R_IRQ_DMA1].status = IRQ_DISABLED; |
354 | irq_desc[M32R_IRQ_DMA1].handler = &opsput_irq_type; | 353 | irq_desc[M32R_IRQ_DMA1].chip = &opsput_irq_type; |
355 | irq_desc[M32R_IRQ_DMA1].action = 0; | 354 | irq_desc[M32R_IRQ_DMA1].action = 0; |
356 | irq_desc[M32R_IRQ_DMA1].depth = 1; | 355 | irq_desc[M32R_IRQ_DMA1].depth = 1; |
357 | icu_data[M32R_IRQ_DMA1].icucr = 0; | 356 | icu_data[M32R_IRQ_DMA1].icucr = 0; |
@@ -360,7 +359,7 @@ void __init init_IRQ(void) | |||
360 | #ifdef CONFIG_SERIAL_M32R_PLDSIO | 359 | #ifdef CONFIG_SERIAL_M32R_PLDSIO |
361 | /* INT#1: SIO0 Receive on PLD */ | 360 | /* INT#1: SIO0 Receive on PLD */ |
362 | irq_desc[PLD_IRQ_SIO0_RCV].status = IRQ_DISABLED; | 361 | irq_desc[PLD_IRQ_SIO0_RCV].status = IRQ_DISABLED; |
363 | irq_desc[PLD_IRQ_SIO0_RCV].handler = &opsput_pld_irq_type; | 362 | irq_desc[PLD_IRQ_SIO0_RCV].chip = &opsput_pld_irq_type; |
364 | irq_desc[PLD_IRQ_SIO0_RCV].action = 0; | 363 | irq_desc[PLD_IRQ_SIO0_RCV].action = 0; |
365 | irq_desc[PLD_IRQ_SIO0_RCV].depth = 1; /* disable nested irq */ | 364 | irq_desc[PLD_IRQ_SIO0_RCV].depth = 1; /* disable nested irq */ |
366 | pld_icu_data[irq2pldirq(PLD_IRQ_SIO0_RCV)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD03; | 365 | pld_icu_data[irq2pldirq(PLD_IRQ_SIO0_RCV)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD03; |
@@ -368,7 +367,7 @@ void __init init_IRQ(void) | |||
368 | 367 | ||
369 | /* INT#1: SIO0 Send on PLD */ | 368 | /* INT#1: SIO0 Send on PLD */ |
370 | irq_desc[PLD_IRQ_SIO0_SND].status = IRQ_DISABLED; | 369 | irq_desc[PLD_IRQ_SIO0_SND].status = IRQ_DISABLED; |
371 | irq_desc[PLD_IRQ_SIO0_SND].handler = &opsput_pld_irq_type; | 370 | irq_desc[PLD_IRQ_SIO0_SND].chip = &opsput_pld_irq_type; |
372 | irq_desc[PLD_IRQ_SIO0_SND].action = 0; | 371 | irq_desc[PLD_IRQ_SIO0_SND].action = 0; |
373 | irq_desc[PLD_IRQ_SIO0_SND].depth = 1; /* disable nested irq */ | 372 | irq_desc[PLD_IRQ_SIO0_SND].depth = 1; /* disable nested irq */ |
374 | pld_icu_data[irq2pldirq(PLD_IRQ_SIO0_SND)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD03; | 373 | pld_icu_data[irq2pldirq(PLD_IRQ_SIO0_SND)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD03; |
@@ -378,7 +377,7 @@ void __init init_IRQ(void) | |||
378 | #if defined(CONFIG_M32R_CFC) | 377 | #if defined(CONFIG_M32R_CFC) |
379 | /* INT#1: CFC IREQ on PLD */ | 378 | /* INT#1: CFC IREQ on PLD */ |
380 | irq_desc[PLD_IRQ_CFIREQ].status = IRQ_DISABLED; | 379 | irq_desc[PLD_IRQ_CFIREQ].status = IRQ_DISABLED; |
381 | irq_desc[PLD_IRQ_CFIREQ].handler = &opsput_pld_irq_type; | 380 | irq_desc[PLD_IRQ_CFIREQ].chip = &opsput_pld_irq_type; |
382 | irq_desc[PLD_IRQ_CFIREQ].action = 0; | 381 | irq_desc[PLD_IRQ_CFIREQ].action = 0; |
383 | irq_desc[PLD_IRQ_CFIREQ].depth = 1; /* disable nested irq */ | 382 | irq_desc[PLD_IRQ_CFIREQ].depth = 1; /* disable nested irq */ |
384 | pld_icu_data[irq2pldirq(PLD_IRQ_CFIREQ)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD01; /* 'L' level sense */ | 383 | pld_icu_data[irq2pldirq(PLD_IRQ_CFIREQ)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD01; /* 'L' level sense */ |
@@ -386,7 +385,7 @@ void __init init_IRQ(void) | |||
386 | 385 | ||
387 | /* INT#1: CFC Insert on PLD */ | 386 | /* INT#1: CFC Insert on PLD */ |
388 | irq_desc[PLD_IRQ_CFC_INSERT].status = IRQ_DISABLED; | 387 | irq_desc[PLD_IRQ_CFC_INSERT].status = IRQ_DISABLED; |
389 | irq_desc[PLD_IRQ_CFC_INSERT].handler = &opsput_pld_irq_type; | 388 | irq_desc[PLD_IRQ_CFC_INSERT].chip = &opsput_pld_irq_type; |
390 | irq_desc[PLD_IRQ_CFC_INSERT].action = 0; | 389 | irq_desc[PLD_IRQ_CFC_INSERT].action = 0; |
391 | irq_desc[PLD_IRQ_CFC_INSERT].depth = 1; /* disable nested irq */ | 390 | irq_desc[PLD_IRQ_CFC_INSERT].depth = 1; /* disable nested irq */ |
392 | pld_icu_data[irq2pldirq(PLD_IRQ_CFC_INSERT)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD00; /* 'L' edge sense */ | 391 | pld_icu_data[irq2pldirq(PLD_IRQ_CFC_INSERT)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD00; /* 'L' edge sense */ |
@@ -394,7 +393,7 @@ void __init init_IRQ(void) | |||
394 | 393 | ||
395 | /* INT#1: CFC Eject on PLD */ | 394 | /* INT#1: CFC Eject on PLD */ |
396 | irq_desc[PLD_IRQ_CFC_EJECT].status = IRQ_DISABLED; | 395 | irq_desc[PLD_IRQ_CFC_EJECT].status = IRQ_DISABLED; |
397 | irq_desc[PLD_IRQ_CFC_EJECT].handler = &opsput_pld_irq_type; | 396 | irq_desc[PLD_IRQ_CFC_EJECT].chip = &opsput_pld_irq_type; |
398 | irq_desc[PLD_IRQ_CFC_EJECT].action = 0; | 397 | irq_desc[PLD_IRQ_CFC_EJECT].action = 0; |
399 | irq_desc[PLD_IRQ_CFC_EJECT].depth = 1; /* disable nested irq */ | 398 | irq_desc[PLD_IRQ_CFC_EJECT].depth = 1; /* disable nested irq */ |
400 | pld_icu_data[irq2pldirq(PLD_IRQ_CFC_EJECT)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD02; /* 'H' edge sense */ | 399 | pld_icu_data[irq2pldirq(PLD_IRQ_CFC_EJECT)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD02; /* 'H' edge sense */ |
@@ -420,7 +419,7 @@ void __init init_IRQ(void) | |||
420 | outw(USBCR_OTGS, USBCR); /* USBCR: non-OTG */ | 419 | outw(USBCR_OTGS, USBCR); /* USBCR: non-OTG */ |
421 | 420 | ||
422 | irq_desc[OPSPUT_LCD_IRQ_USB_INT1].status = IRQ_DISABLED; | 421 | irq_desc[OPSPUT_LCD_IRQ_USB_INT1].status = IRQ_DISABLED; |
423 | irq_desc[OPSPUT_LCD_IRQ_USB_INT1].handler = &opsput_lcdpld_irq_type; | 422 | irq_desc[OPSPUT_LCD_IRQ_USB_INT1].chip = &opsput_lcdpld_irq_type; |
424 | irq_desc[OPSPUT_LCD_IRQ_USB_INT1].action = 0; | 423 | irq_desc[OPSPUT_LCD_IRQ_USB_INT1].action = 0; |
425 | irq_desc[OPSPUT_LCD_IRQ_USB_INT1].depth = 1; | 424 | irq_desc[OPSPUT_LCD_IRQ_USB_INT1].depth = 1; |
426 | lcdpld_icu_data[irq2lcdpldirq(OPSPUT_LCD_IRQ_USB_INT1)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD01; /* "L" level sense */ | 425 | lcdpld_icu_data[irq2lcdpldirq(OPSPUT_LCD_IRQ_USB_INT1)].icucr = PLD_ICUCR_IEN|PLD_ICUCR_ISMOD01; /* "L" level sense */ |
@@ -438,7 +437,7 @@ void __init init_IRQ(void) | |||
438 | * INT3# is used for AR | 437 | * INT3# is used for AR |
439 | */ | 438 | */ |
440 | irq_desc[M32R_IRQ_INT3].status = IRQ_DISABLED; | 439 | irq_desc[M32R_IRQ_INT3].status = IRQ_DISABLED; |
441 | irq_desc[M32R_IRQ_INT3].handler = &opsput_irq_type; | 440 | irq_desc[M32R_IRQ_INT3].chip = &opsput_irq_type; |
442 | irq_desc[M32R_IRQ_INT3].action = 0; | 441 | irq_desc[M32R_IRQ_INT3].action = 0; |
443 | irq_desc[M32R_IRQ_INT3].depth = 1; | 442 | irq_desc[M32R_IRQ_INT3].depth = 1; |
444 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; | 443 | icu_data[M32R_IRQ_INT3].icucr = M32R_ICUCR_IEN|M32R_ICUCR_ISMOD10; |
diff --git a/arch/m32r/kernel/setup_usrv.c b/arch/m32r/kernel/setup_usrv.c index 64be659a23e7..f5b4b5ac31e7 100644 --- a/arch/m32r/kernel/setup_usrv.c +++ b/arch/m32r/kernel/setup_usrv.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Hitoshi Yamamoto | 7 | * Hitoshi Yamamoto |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/irq.h> | 10 | #include <linux/irq.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
@@ -158,7 +157,7 @@ void __init init_IRQ(void) | |||
158 | 157 | ||
159 | /* MFT2 : system timer */ | 158 | /* MFT2 : system timer */ |
160 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; | 159 | irq_desc[M32R_IRQ_MFT2].status = IRQ_DISABLED; |
161 | irq_desc[M32R_IRQ_MFT2].handler = &mappi_irq_type; | 160 | irq_desc[M32R_IRQ_MFT2].chip = &mappi_irq_type; |
162 | irq_desc[M32R_IRQ_MFT2].action = 0; | 161 | irq_desc[M32R_IRQ_MFT2].action = 0; |
163 | irq_desc[M32R_IRQ_MFT2].depth = 1; | 162 | irq_desc[M32R_IRQ_MFT2].depth = 1; |
164 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; | 163 | icu_data[M32R_IRQ_MFT2].icucr = M32R_ICUCR_IEN; |
@@ -167,7 +166,7 @@ void __init init_IRQ(void) | |||
167 | #if defined(CONFIG_SERIAL_M32R_SIO) | 166 | #if defined(CONFIG_SERIAL_M32R_SIO) |
168 | /* SIO0_R : uart receive data */ | 167 | /* SIO0_R : uart receive data */ |
169 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; | 168 | irq_desc[M32R_IRQ_SIO0_R].status = IRQ_DISABLED; |
170 | irq_desc[M32R_IRQ_SIO0_R].handler = &mappi_irq_type; | 169 | irq_desc[M32R_IRQ_SIO0_R].chip = &mappi_irq_type; |
171 | irq_desc[M32R_IRQ_SIO0_R].action = 0; | 170 | irq_desc[M32R_IRQ_SIO0_R].action = 0; |
172 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; | 171 | irq_desc[M32R_IRQ_SIO0_R].depth = 1; |
173 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; | 172 | icu_data[M32R_IRQ_SIO0_R].icucr = 0; |
@@ -175,7 +174,7 @@ void __init init_IRQ(void) | |||
175 | 174 | ||
176 | /* SIO0_S : uart send data */ | 175 | /* SIO0_S : uart send data */ |
177 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; | 176 | irq_desc[M32R_IRQ_SIO0_S].status = IRQ_DISABLED; |
178 | irq_desc[M32R_IRQ_SIO0_S].handler = &mappi_irq_type; | 177 | irq_desc[M32R_IRQ_SIO0_S].chip = &mappi_irq_type; |
179 | irq_desc[M32R_IRQ_SIO0_S].action = 0; | 178 | irq_desc[M32R_IRQ_SIO0_S].action = 0; |
180 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; | 179 | irq_desc[M32R_IRQ_SIO0_S].depth = 1; |
181 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; | 180 | icu_data[M32R_IRQ_SIO0_S].icucr = 0; |
@@ -183,7 +182,7 @@ void __init init_IRQ(void) | |||
183 | 182 | ||
184 | /* SIO1_R : uart receive data */ | 183 | /* SIO1_R : uart receive data */ |
185 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; | 184 | irq_desc[M32R_IRQ_SIO1_R].status = IRQ_DISABLED; |
186 | irq_desc[M32R_IRQ_SIO1_R].handler = &mappi_irq_type; | 185 | irq_desc[M32R_IRQ_SIO1_R].chip = &mappi_irq_type; |
187 | irq_desc[M32R_IRQ_SIO1_R].action = 0; | 186 | irq_desc[M32R_IRQ_SIO1_R].action = 0; |
188 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; | 187 | irq_desc[M32R_IRQ_SIO1_R].depth = 1; |
189 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; | 188 | icu_data[M32R_IRQ_SIO1_R].icucr = 0; |
@@ -191,7 +190,7 @@ void __init init_IRQ(void) | |||
191 | 190 | ||
192 | /* SIO1_S : uart send data */ | 191 | /* SIO1_S : uart send data */ |
193 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; | 192 | irq_desc[M32R_IRQ_SIO1_S].status = IRQ_DISABLED; |
194 | irq_desc[M32R_IRQ_SIO1_S].handler = &mappi_irq_type; | 193 | irq_desc[M32R_IRQ_SIO1_S].chip = &mappi_irq_type; |
195 | irq_desc[M32R_IRQ_SIO1_S].action = 0; | 194 | irq_desc[M32R_IRQ_SIO1_S].action = 0; |
196 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; | 195 | irq_desc[M32R_IRQ_SIO1_S].depth = 1; |
197 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; | 196 | icu_data[M32R_IRQ_SIO1_S].icucr = 0; |
@@ -201,7 +200,7 @@ void __init init_IRQ(void) | |||
201 | /* INT#67-#71: CFC#0 IREQ on PLD */ | 200 | /* INT#67-#71: CFC#0 IREQ on PLD */ |
202 | for (i = 0 ; i < CONFIG_CFC_NUM ; i++ ) { | 201 | for (i = 0 ; i < CONFIG_CFC_NUM ; i++ ) { |
203 | irq_desc[PLD_IRQ_CF0 + i].status = IRQ_DISABLED; | 202 | irq_desc[PLD_IRQ_CF0 + i].status = IRQ_DISABLED; |
204 | irq_desc[PLD_IRQ_CF0 + i].handler = &m32700ut_pld_irq_type; | 203 | irq_desc[PLD_IRQ_CF0 + i].chip = &m32700ut_pld_irq_type; |
205 | irq_desc[PLD_IRQ_CF0 + i].action = 0; | 204 | irq_desc[PLD_IRQ_CF0 + i].action = 0; |
206 | irq_desc[PLD_IRQ_CF0 + i].depth = 1; /* disable nested irq */ | 205 | irq_desc[PLD_IRQ_CF0 + i].depth = 1; /* disable nested irq */ |
207 | pld_icu_data[irq2pldirq(PLD_IRQ_CF0 + i)].icucr | 206 | pld_icu_data[irq2pldirq(PLD_IRQ_CF0 + i)].icucr |
@@ -212,7 +211,7 @@ void __init init_IRQ(void) | |||
212 | #if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE) | 211 | #if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE) |
213 | /* INT#76: 16552D#0 IREQ on PLD */ | 212 | /* INT#76: 16552D#0 IREQ on PLD */ |
214 | irq_desc[PLD_IRQ_UART0].status = IRQ_DISABLED; | 213 | irq_desc[PLD_IRQ_UART0].status = IRQ_DISABLED; |
215 | irq_desc[PLD_IRQ_UART0].handler = &m32700ut_pld_irq_type; | 214 | irq_desc[PLD_IRQ_UART0].chip = &m32700ut_pld_irq_type; |
216 | irq_desc[PLD_IRQ_UART0].action = 0; | 215 | irq_desc[PLD_IRQ_UART0].action = 0; |
217 | irq_desc[PLD_IRQ_UART0].depth = 1; /* disable nested irq */ | 216 | irq_desc[PLD_IRQ_UART0].depth = 1; /* disable nested irq */ |
218 | pld_icu_data[irq2pldirq(PLD_IRQ_UART0)].icucr | 217 | pld_icu_data[irq2pldirq(PLD_IRQ_UART0)].icucr |
@@ -221,7 +220,7 @@ void __init init_IRQ(void) | |||
221 | 220 | ||
222 | /* INT#77: 16552D#1 IREQ on PLD */ | 221 | /* INT#77: 16552D#1 IREQ on PLD */ |
223 | irq_desc[PLD_IRQ_UART1].status = IRQ_DISABLED; | 222 | irq_desc[PLD_IRQ_UART1].status = IRQ_DISABLED; |
224 | irq_desc[PLD_IRQ_UART1].handler = &m32700ut_pld_irq_type; | 223 | irq_desc[PLD_IRQ_UART1].chip = &m32700ut_pld_irq_type; |
225 | irq_desc[PLD_IRQ_UART1].action = 0; | 224 | irq_desc[PLD_IRQ_UART1].action = 0; |
226 | irq_desc[PLD_IRQ_UART1].depth = 1; /* disable nested irq */ | 225 | irq_desc[PLD_IRQ_UART1].depth = 1; /* disable nested irq */ |
227 | pld_icu_data[irq2pldirq(PLD_IRQ_UART1)].icucr | 226 | pld_icu_data[irq2pldirq(PLD_IRQ_UART1)].icucr |
@@ -232,7 +231,7 @@ void __init init_IRQ(void) | |||
232 | #if defined(CONFIG_IDC_AK4524) || defined(CONFIG_IDC_AK4524_MODULE) | 231 | #if defined(CONFIG_IDC_AK4524) || defined(CONFIG_IDC_AK4524_MODULE) |
233 | /* INT#80: AK4524 IREQ on PLD */ | 232 | /* INT#80: AK4524 IREQ on PLD */ |
234 | irq_desc[PLD_IRQ_SNDINT].status = IRQ_DISABLED; | 233 | irq_desc[PLD_IRQ_SNDINT].status = IRQ_DISABLED; |
235 | irq_desc[PLD_IRQ_SNDINT].handler = &m32700ut_pld_irq_type; | 234 | irq_desc[PLD_IRQ_SNDINT].chip = &m32700ut_pld_irq_type; |
236 | irq_desc[PLD_IRQ_SNDINT].action = 0; | 235 | irq_desc[PLD_IRQ_SNDINT].action = 0; |
237 | irq_desc[PLD_IRQ_SNDINT].depth = 1; /* disable nested irq */ | 236 | irq_desc[PLD_IRQ_SNDINT].depth = 1; /* disable nested irq */ |
238 | pld_icu_data[irq2pldirq(PLD_IRQ_SNDINT)].icucr | 237 | pld_icu_data[irq2pldirq(PLD_IRQ_SNDINT)].icucr |
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c index 6498ee70bb73..a9174efe80cb 100644 --- a/arch/m32r/kernel/signal.c +++ b/arch/m32r/kernel/signal.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 2000-06-20 Pentium III FXSR, SSE support by Gareth Hughes | 10 | * 2000-06-20 Pentium III FXSR, SSE support by Gareth Hughes |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
16 | #include <linux/smp.h> | 15 | #include <linux/smp.h> |
diff --git a/arch/m32r/kernel/smpboot.c b/arch/m32r/kernel/smpboot.c index 840b4348bf0c..fa7865609495 100644 --- a/arch/m32r/kernel/smpboot.c +++ b/arch/m32r/kernel/smpboot.c | |||
@@ -40,7 +40,6 @@ | |||
40 | */ | 40 | */ |
41 | 41 | ||
42 | #include <linux/module.h> | 42 | #include <linux/module.h> |
43 | #include <linux/config.h> | ||
44 | #include <linux/init.h> | 43 | #include <linux/init.h> |
45 | #include <linux/kernel.h> | 44 | #include <linux/kernel.h> |
46 | #include <linux/mm.h> | 45 | #include <linux/mm.h> |
diff --git a/arch/m32r/kernel/sys_m32r.c b/arch/m32r/kernel/sys_m32r.c index 670cb49210af..a9cea32eb824 100644 --- a/arch/m32r/kernel/sys_m32r.c +++ b/arch/m32r/kernel/sys_m32r.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Taken from i386 version. | 7 | * Taken from i386 version. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
diff --git a/arch/m32r/kernel/time.c b/arch/m32r/kernel/time.c index b8e68b542302..ded0be07a476 100644 --- a/arch/m32r/kernel/time.c +++ b/arch/m32r/kernel/time.c | |||
@@ -17,7 +17,6 @@ | |||
17 | 17 | ||
18 | #undef DEBUG_TIMER | 18 | #undef DEBUG_TIMER |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/errno.h> | 20 | #include <linux/errno.h> |
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
23 | #include <linux/module.h> | 22 | #include <linux/module.h> |
@@ -238,7 +237,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
238 | return IRQ_HANDLED; | 237 | return IRQ_HANDLED; |
239 | } | 238 | } |
240 | 239 | ||
241 | struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, | 240 | struct irqaction irq0 = { timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, |
242 | "MFT2", NULL, NULL }; | 241 | "MFT2", NULL, NULL }; |
243 | 242 | ||
244 | void __init time_init(void) | 243 | void __init time_init(void) |
diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c index 5fe8ed6d62dc..c1daf2c40c7c 100644 --- a/arch/m32r/kernel/traps.c +++ b/arch/m32r/kernel/traps.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 'traps.c' handles hardware traps and faults after we have saved some | 9 | * 'traps.c' handles hardware traps and faults after we have saved some |
10 | * state in 'entry.S'. | 10 | * state in 'entry.S'. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/kallsyms.h> | 14 | #include <linux/kallsyms.h> |
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S index 729a2645a03f..13c7bb698e37 100644 --- a/arch/m32r/kernel/vmlinux.lds.S +++ b/arch/m32r/kernel/vmlinux.lds.S | |||
@@ -1,7 +1,6 @@ | |||
1 | /* ld script to make M32R Linux kernel | 1 | /* ld script to make M32R Linux kernel |
2 | */ | 2 | */ |
3 | 3 | ||
4 | #include <linux/config.h> | ||
5 | #include <asm-generic/vmlinux.lds.h> | 4 | #include <asm-generic/vmlinux.lds.h> |
6 | #include <asm/addrspace.h> | 5 | #include <asm/addrspace.h> |
7 | #include <asm/page.h> | 6 | #include <asm/page.h> |
diff --git a/arch/m32r/lib/ashxdi3.S b/arch/m32r/lib/ashxdi3.S index 78effca9d97a..107594b65d58 100644 --- a/arch/m32r/lib/ashxdi3.S +++ b/arch/m32r/lib/ashxdi3.S | |||
@@ -6,7 +6,6 @@ | |||
6 | */ | 6 | */ |
7 | /* $Id$ */ | 7 | /* $Id$ */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | 9 | ||
11 | ; | 10 | ; |
12 | ; input (r0,r1) src | 11 | ; input (r0,r1) src |
diff --git a/arch/m32r/lib/checksum.S b/arch/m32r/lib/checksum.S index f6fc1bdb87e4..cfbe00e5184a 100644 --- a/arch/m32r/lib/checksum.S +++ b/arch/m32r/lib/checksum.S | |||
@@ -28,7 +28,6 @@ | |||
28 | /* $Id$ */ | 28 | /* $Id$ */ |
29 | 29 | ||
30 | 30 | ||
31 | #include <linux/config.h> | ||
32 | #include <linux/linkage.h> | 31 | #include <linux/linkage.h> |
33 | #include <asm/assembler.h> | 32 | #include <asm/assembler.h> |
34 | #include <asm/errno.h> | 33 | #include <asm/errno.h> |
diff --git a/arch/m32r/lib/delay.c b/arch/m32r/lib/delay.c index fb29632c7eaa..06382a38c318 100644 --- a/arch/m32r/lib/delay.c +++ b/arch/m32r/lib/delay.c | |||
@@ -7,7 +7,6 @@ | |||
7 | 7 | ||
8 | /* $Id$ */ | 8 | /* $Id$ */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/param.h> | 10 | #include <linux/param.h> |
12 | #ifdef CONFIG_SMP | 11 | #ifdef CONFIG_SMP |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
diff --git a/arch/m32r/lib/memcpy.S b/arch/m32r/lib/memcpy.S index 800898a2d2e3..2089a215314e 100644 --- a/arch/m32r/lib/memcpy.S +++ b/arch/m32r/lib/memcpy.S | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | 15 | ||
16 | .text | 16 | .text |
17 | #include <linux/config.h> | ||
18 | #include <linux/linkage.h> | 17 | #include <linux/linkage.h> |
19 | #include <asm/assembler.h> | 18 | #include <asm/assembler.h> |
20 | 19 | ||
diff --git a/arch/m32r/lib/memset.S b/arch/m32r/lib/memset.S index 6e26df120acb..b47fa3537aa4 100644 --- a/arch/m32r/lib/memset.S +++ b/arch/m32r/lib/memset.S | |||
@@ -14,7 +14,6 @@ | |||
14 | */ | 14 | */ |
15 | /* $Id$ */ | 15 | /* $Id$ */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | 17 | ||
19 | .text | 18 | .text |
20 | .global memset | 19 | .global memset |
diff --git a/arch/m32r/lib/strlen.S b/arch/m32r/lib/strlen.S index 8d23cfbd600c..5f41aacd7b3e 100644 --- a/arch/m32r/lib/strlen.S +++ b/arch/m32r/lib/strlen.S | |||
@@ -9,7 +9,6 @@ | |||
9 | /* $Id$ */ | 9 | /* $Id$ */ |
10 | 10 | ||
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/linkage.h> | 12 | #include <linux/linkage.h> |
14 | #include <asm/assembler.h> | 13 | #include <asm/assembler.h> |
15 | 14 | ||
diff --git a/arch/m32r/lib/usercopy.c b/arch/m32r/lib/usercopy.c index 2d1dd2106c4d..896cef1aca5f 100644 --- a/arch/m32r/lib/usercopy.c +++ b/arch/m32r/lib/usercopy.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright 1997 Linus Torvalds | 6 | * Copyright 1997 Linus Torvalds |
7 | * Copyright 2001, 2002, 2004 Hirokazu Takata | 7 | * Copyright 2001, 2002, 2004 Hirokazu Takata |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/prefetch.h> | 9 | #include <linux/prefetch.h> |
11 | #include <linux/string.h> | 10 | #include <linux/string.h> |
12 | #include <linux/thread_info.h> | 11 | #include <linux/thread_info.h> |
diff --git a/arch/m32r/mm/cache.c b/arch/m32r/mm/cache.c index 9f54dd937013..fac759584875 100644 --- a/arch/m32r/mm/cache.c +++ b/arch/m32r/mm/cache.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 2002-2005 Hirokazu Takata, Hayato Fujiwara | 4 | * Copyright (C) 2002-2005 Hirokazu Takata, Hayato Fujiwara |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/pgtable.h> | 7 | #include <asm/pgtable.h> |
9 | 8 | ||
10 | #undef MCCR | 9 | #undef MCCR |
diff --git a/arch/m32r/mm/discontig.c b/arch/m32r/mm/discontig.c index cf610a7c5ff0..abb34ccd5986 100644 --- a/arch/m32r/mm/discontig.c +++ b/arch/m32r/mm/discontig.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (c) 2003 Hitoshi Yamamoto | 6 | * Copyright (c) 2003 Hitoshi Yamamoto |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
11 | #include <linux/bootmem.h> | 10 | #include <linux/bootmem.h> |
12 | #include <linux/mmzone.h> | 11 | #include <linux/mmzone.h> |
diff --git a/arch/m32r/mm/fault-nommu.c b/arch/m32r/mm/fault-nommu.c index d9d488d782e8..03fc4c858e0e 100644 --- a/arch/m32r/mm/fault-nommu.c +++ b/arch/m32r/mm/fault-nommu.c | |||
@@ -9,7 +9,6 @@ | |||
9 | 9 | ||
10 | /* $Id: fault-nommu.c,v 1.1 2004/03/30 06:40:59 sakugawa Exp $ */ | 10 | /* $Id: fault-nommu.c,v 1.1 2004/03/30 06:40:59 sakugawa Exp $ */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/signal.h> | 12 | #include <linux/signal.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
diff --git a/arch/m32r/mm/fault.c b/arch/m32r/mm/fault.c index bf7fb58ef02c..dc18a33eefef 100644 --- a/arch/m32r/mm/fault.c +++ b/arch/m32r/mm/fault.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1995 Linus Torvalds | 8 | * Copyright (C) 1995 Linus Torvalds |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/signal.h> | 11 | #include <linux/signal.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
@@ -148,7 +147,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code, | |||
148 | /* When running in the kernel we expect faults to occur only to | 147 | /* When running in the kernel we expect faults to occur only to |
149 | * addresses in user space. All other faults represent errors in the | 148 | * addresses in user space. All other faults represent errors in the |
150 | * kernel and should generate an OOPS. Unfortunatly, in the case of an | 149 | * kernel and should generate an OOPS. Unfortunatly, in the case of an |
151 | * erroneous fault occuring in a code path which already holds mmap_sem | 150 | * erroneous fault occurring in a code path which already holds mmap_sem |
152 | * we will deadlock attempting to validate the fault against the | 151 | * we will deadlock attempting to validate the fault against the |
153 | * address space. Luckily the kernel only validly references user | 152 | * address space. Luckily the kernel only validly references user |
154 | * space from well defined areas of code, which are listed in the | 153 | * space from well defined areas of code, which are listed in the |
diff --git a/arch/m68k/amiga/amiga_ksyms.c b/arch/m68k/amiga/amiga_ksyms.c index 8f2e0587ae2f..7fdcf6bf3ada 100644 --- a/arch/m68k/amiga/amiga_ksyms.c +++ b/arch/m68k/amiga/amiga_ksyms.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/types.h> | 2 | #include <linux/types.h> |
4 | #include <asm/ptrace.h> | 3 | #include <asm/ptrace.h> |
diff --git a/arch/m68k/amiga/amiints.c b/arch/m68k/amiga/amiints.c index f9403f4640a1..96c79d840cff 100644 --- a/arch/m68k/amiga/amiints.c +++ b/arch/m68k/amiga/amiints.c | |||
@@ -22,7 +22,7 @@ | |||
22 | * | 22 | * |
23 | * 07/08/99: rewamp of the interrupt handling - we now have two types of | 23 | * 07/08/99: rewamp of the interrupt handling - we now have two types of |
24 | * interrupts, normal and fast handlers, fast handlers being | 24 | * interrupts, normal and fast handlers, fast handlers being |
25 | * marked with SA_INTERRUPT and runs with all other interrupts | 25 | * marked with IRQF_DISABLED and runs with all other interrupts |
26 | * disabled. Normal interrupts disable their own source but | 26 | * disabled. Normal interrupts disable their own source but |
27 | * run with all other interrupt sources enabled. | 27 | * run with all other interrupt sources enabled. |
28 | * PORTS and EXTER interrupts are always shared even if the | 28 | * PORTS and EXTER interrupts are always shared even if the |
diff --git a/arch/m68k/amiga/amisound.c b/arch/m68k/amiga/amisound.c index ae94db5d93b2..1f5bfb584297 100644 --- a/arch/m68k/amiga/amisound.c +++ b/arch/m68k/amiga/amisound.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * for more details. | 8 | * for more details. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/jiffies.h> | 11 | #include <linux/jiffies.h> |
13 | #include <linux/timer.h> | 12 | #include <linux/timer.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
diff --git a/arch/m68k/amiga/chipram.c b/arch/m68k/amiga/chipram.c index 558d5fd2d2ba..de1304c91112 100644 --- a/arch/m68k/amiga/chipram.c +++ b/arch/m68k/amiga/chipram.c | |||
@@ -7,7 +7,6 @@ | |||
7 | ** Rewritten 15/9/2000 by Geert to use resource management | 7 | ** Rewritten 15/9/2000 by Geert to use resource management |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/types.h> | 10 | #include <linux/types.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
diff --git a/arch/m68k/amiga/cia.c b/arch/m68k/amiga/cia.c index 0956e45399e5..dbad30054721 100644 --- a/arch/m68k/amiga/cia.c +++ b/arch/m68k/amiga/cia.c | |||
@@ -176,5 +176,5 @@ void __init cia_init_IRQ(struct ciabase *base) | |||
176 | /* override auto int and install CIA handler */ | 176 | /* override auto int and install CIA handler */ |
177 | m68k_setup_irq_controller(&auto_irq_controller, base->handler_irq, 1); | 177 | m68k_setup_irq_controller(&auto_irq_controller, base->handler_irq, 1); |
178 | m68k_irq_startup(base->handler_irq); | 178 | m68k_irq_startup(base->handler_irq); |
179 | request_irq(base->handler_irq, cia_handler, SA_SHIRQ, base->name, base); | 179 | request_irq(base->handler_irq, cia_handler, IRQF_SHARED, base->name, base); |
180 | } | 180 | } |
diff --git a/arch/m68k/amiga/config.c b/arch/m68k/amiga/config.c index b5b8a416a07a..092e50d2cb13 100644 --- a/arch/m68k/amiga/config.c +++ b/arch/m68k/amiga/config.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Miscellaneous Amiga stuff | 12 | * Miscellaneous Amiga stuff |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
diff --git a/arch/m68k/apollo/config.c b/arch/m68k/apollo/config.c index 99c70978aafa..6f4581575fb4 100644 --- a/arch/m68k/apollo/config.c +++ b/arch/m68k/apollo/config.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/types.h> | 1 | #include <linux/types.h> |
3 | #include <linux/kernel.h> | 2 | #include <linux/kernel.h> |
4 | #include <linux/mm.h> | 3 | #include <linux/mm.h> |
diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c index 727289acad7e..b2079252a954 100644 --- a/arch/m68k/atari/config.c +++ b/arch/m68k/atari/config.c | |||
@@ -24,7 +24,6 @@ | |||
24 | * Miscellaneous atari stuff | 24 | * Miscellaneous atari stuff |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/types.h> | 27 | #include <linux/types.h> |
29 | #include <linux/mm.h> | 28 | #include <linux/mm.h> |
30 | #include <linux/console.h> | 29 | #include <linux/console.h> |
diff --git a/arch/m68k/atari/debug.c b/arch/m68k/atari/debug.c index ace05f79d968..4ae01004d8dd 100644 --- a/arch/m68k/atari/debug.c +++ b/arch/m68k/atari/debug.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * for more details. | 10 | * for more details. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/tty.h> | 14 | #include <linux/tty.h> |
16 | #include <linux/console.h> | 15 | #include <linux/console.h> |
diff --git a/arch/m68k/atari/hades-pci.c b/arch/m68k/atari/hades-pci.c index 8888debf71ec..6ca57b6564da 100644 --- a/arch/m68k/atari/hades-pci.c +++ b/arch/m68k/atari/hades-pci.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Written by Wout Klaren. | 4 | * Written by Wout Klaren. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <asm/io.h> | 9 | #include <asm/io.h> |
diff --git a/arch/m68k/atari/stram.c b/arch/m68k/atari/stram.c index 22e0481a5f7b..bf4588cbe371 100644 --- a/arch/m68k/atari/stram.c +++ b/arch/m68k/atari/stram.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * for more details. | 8 | * for more details. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
diff --git a/arch/m68k/hp300/config.c b/arch/m68k/hp300/config.c index 2ef271cd818b..1c05a6260546 100644 --- a/arch/m68k/hp300/config.c +++ b/arch/m68k/hp300/config.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * called by setup.c. | 7 | * called by setup.c. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/string.h> | 12 | #include <linux/string.h> |
diff --git a/arch/m68k/kernel/bios32.c b/arch/m68k/kernel/bios32.c index a901685eb6a9..af170c2be735 100644 --- a/arch/m68k/kernel/bios32.c +++ b/arch/m68k/kernel/bios32.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Based on the DEC Alpha bios32.c by Dave Rusling and David Mosberger. | 6 | * Based on the DEC Alpha bios32.c by Dave Rusling and David Mosberger. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | 11 | ||
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S index 449b62b30f45..9083c8b7659f 100644 --- a/arch/m68k/kernel/entry.S +++ b/arch/m68k/kernel/entry.S | |||
@@ -33,7 +33,6 @@ | |||
33 | * for 68040 | 33 | * for 68040 |
34 | */ | 34 | */ |
35 | 35 | ||
36 | #include <linux/config.h> | ||
37 | #include <linux/linkage.h> | 36 | #include <linux/linkage.h> |
38 | #include <asm/entry.h> | 37 | #include <asm/entry.h> |
39 | #include <asm/errno.h> | 38 | #include <asm/errno.h> |
diff --git a/arch/m68k/kernel/head.S b/arch/m68k/kernel/head.S index 70002c146eed..6739e87fe825 100644 --- a/arch/m68k/kernel/head.S +++ b/arch/m68k/kernel/head.S | |||
@@ -255,7 +255,6 @@ | |||
255 | * MAC_USE_SCC_B: Use the SCC port B (printer) for serial debug (default). | 255 | * MAC_USE_SCC_B: Use the SCC port B (printer) for serial debug (default). |
256 | */ | 256 | */ |
257 | 257 | ||
258 | #include <linux/config.h> | ||
259 | #include <linux/linkage.h> | 258 | #include <linux/linkage.h> |
260 | #include <linux/init.h> | 259 | #include <linux/init.h> |
261 | #include <asm/bootinfo.h> | 260 | #include <asm/bootinfo.h> |
diff --git a/arch/m68k/kernel/ints.c b/arch/m68k/kernel/ints.c index 5a8344b93547..b33e37fb7b0e 100644 --- a/arch/m68k/kernel/ints.c +++ b/arch/m68k/kernel/ints.c | |||
@@ -25,7 +25,6 @@ | |||
25 | * which must be served /Roman Zippel | 25 | * which must be served /Roman Zippel |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include <linux/config.h> | ||
29 | #include <linux/module.h> | 28 | #include <linux/module.h> |
30 | #include <linux/types.h> | 29 | #include <linux/types.h> |
31 | #include <linux/sched.h> | 30 | #include <linux/sched.h> |
@@ -193,7 +192,7 @@ int setup_irq(unsigned int irq, struct irq_node *node) | |||
193 | prev = irq_list + irq; | 192 | prev = irq_list + irq; |
194 | if (*prev) { | 193 | if (*prev) { |
195 | /* Can't share interrupts unless both agree to */ | 194 | /* Can't share interrupts unless both agree to */ |
196 | if (!((*prev)->flags & node->flags & SA_SHIRQ)) { | 195 | if (!((*prev)->flags & node->flags & IRQF_SHARED)) { |
197 | spin_unlock_irqrestore(&contr->lock, flags); | 196 | spin_unlock_irqrestore(&contr->lock, flags); |
198 | return -EBUSY; | 197 | return -EBUSY; |
199 | } | 198 | } |
diff --git a/arch/m68k/kernel/m68k_ksyms.c b/arch/m68k/kernel/m68k_ksyms.c index 1f5e1b5aeda4..aff26a52167c 100644 --- a/arch/m68k/kernel/m68k_ksyms.c +++ b/arch/m68k/kernel/m68k_ksyms.c | |||
@@ -7,7 +7,6 @@ | |||
7 | #include <linux/elfcore.h> | 7 | #include <linux/elfcore.h> |
8 | #include <linux/in6.h> | 8 | #include <linux/in6.h> |
9 | #include <linux/interrupt.h> | 9 | #include <linux/interrupt.h> |
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/setup.h> | 11 | #include <asm/setup.h> |
13 | #include <asm/machdep.h> | 12 | #include <asm/machdep.h> |
diff --git a/arch/m68k/kernel/process.c b/arch/m68k/kernel/process.c index 33648efb772e..45a46646c1b3 100644 --- a/arch/m68k/kernel/process.c +++ b/arch/m68k/kernel/process.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * This file handles the architecture-dependent parts of process handling.. | 10 | * This file handles the architecture-dependent parts of process handling.. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
diff --git a/arch/m68k/kernel/ptrace.c b/arch/m68k/kernel/ptrace.c index 540638ca81f9..ef89060ea328 100644 --- a/arch/m68k/kernel/ptrace.c +++ b/arch/m68k/kernel/ptrace.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
19 | #include <linux/ptrace.h> | 19 | #include <linux/ptrace.h> |
20 | #include <linux/user.h> | 20 | #include <linux/user.h> |
21 | #include <linux/config.h> | ||
22 | #include <linux/signal.h> | 21 | #include <linux/signal.h> |
23 | 22 | ||
24 | #include <asm/uaccess.h> | 23 | #include <asm/uaccess.h> |
diff --git a/arch/m68k/kernel/semaphore.c b/arch/m68k/kernel/semaphore.c index 1ebb79baaa8c..d12cbbfe6ebd 100644 --- a/arch/m68k/kernel/semaphore.c +++ b/arch/m68k/kernel/semaphore.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * specific changes in <asm/semaphore-helper.h> | 3 | * specific changes in <asm/semaphore-helper.h> |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <linux/sched.h> | 6 | #include <linux/sched.h> |
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
9 | #include <asm/semaphore-helper.h> | 8 | #include <asm/semaphore-helper.h> |
diff --git a/arch/m68k/kernel/setup.c b/arch/m68k/kernel/setup.c index 214a95f9f3ac..f2d7ee0ee18c 100644 --- a/arch/m68k/kernel/setup.c +++ b/arch/m68k/kernel/setup.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * This file handles the architecture-dependent parts of system setup | 8 | * This file handles the architecture-dependent parts of system setup |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
diff --git a/arch/m68k/kernel/traps.c b/arch/m68k/kernel/traps.c index e86de7b061cd..4569406a2e1f 100644 --- a/arch/m68k/kernel/traps.c +++ b/arch/m68k/kernel/traps.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * Sets up all exception vectors | 18 | * Sets up all exception vectors |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
23 | #include <linux/signal.h> | 22 | #include <linux/signal.h> |
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
diff --git a/arch/m68k/kernel/vmlinux.lds.S b/arch/m68k/kernel/vmlinux.lds.S index 497b924f3c86..99ba315bd0a8 100644 --- a/arch/m68k/kernel/vmlinux.lds.S +++ b/arch/m68k/kernel/vmlinux.lds.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | PHDRS | 1 | PHDRS |
3 | { | 2 | { |
4 | text PT_LOAD FILEHDR PHDRS FLAGS (7); | 3 | text PT_LOAD FILEHDR PHDRS FLAGS (7); |
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c index 5a9990e436bb..85dda1095b1f 100644 --- a/arch/m68k/mac/config.c +++ b/arch/m68k/mac/config.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Miscellaneous linux stuff | 10 | * Miscellaneous linux stuff |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
diff --git a/arch/m68k/mac/debug.c b/arch/m68k/mac/debug.c index cc62ed61cda2..4eeb09dc0e8f 100644 --- a/arch/m68k/mac/debug.c +++ b/arch/m68k/mac/debug.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * for more details. | 14 | * for more details. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/types.h> | 17 | #include <linux/types.h> |
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
20 | #include <linux/tty.h> | 19 | #include <linux/tty.h> |
diff --git a/arch/m68k/mac/iop.c b/arch/m68k/mac/iop.c index 4c8ece7e64a3..bc657b1057a7 100644 --- a/arch/m68k/mac/iop.c +++ b/arch/m68k/mac/iop.c | |||
@@ -104,7 +104,6 @@ | |||
104 | * should execute quickly.) | 104 | * should execute quickly.) |
105 | */ | 105 | */ |
106 | 106 | ||
107 | #include <linux/config.h> | ||
108 | #include <linux/types.h> | 107 | #include <linux/types.h> |
109 | #include <linux/kernel.h> | 108 | #include <linux/kernel.h> |
110 | #include <linux/mm.h> | 109 | #include <linux/mm.h> |
diff --git a/arch/m68k/mac/misc.c b/arch/m68k/mac/misc.c index bbb0c3b95e9c..56d1f5676ade 100644 --- a/arch/m68k/mac/misc.c +++ b/arch/m68k/mac/misc.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Miscellaneous Mac68K-specific stuff | 2 | * Miscellaneous Mac68K-specific stuff |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/types.h> | 5 | #include <linux/types.h> |
7 | #include <linux/errno.h> | 6 | #include <linux/errno.h> |
8 | #include <linux/miscdevice.h> | 7 | #include <linux/miscdevice.h> |
diff --git a/arch/m68k/math-emu/fp_entry.S b/arch/m68k/math-emu/fp_entry.S index 5ec2d9101ea3..954b4f304a7d 100644 --- a/arch/m68k/math-emu/fp_entry.S +++ b/arch/m68k/math-emu/fp_entry.S | |||
@@ -35,7 +35,6 @@ | |||
35 | * OF THE POSSIBILITY OF SUCH DAMAGE. | 35 | * OF THE POSSIBILITY OF SUCH DAMAGE. |
36 | */ | 36 | */ |
37 | 37 | ||
38 | #include <linux/config.h> | ||
39 | #include <linux/linkage.h> | 38 | #include <linux/linkage.h> |
40 | #include <asm/entry.h> | 39 | #include <asm/entry.h> |
41 | 40 | ||
diff --git a/arch/m68k/math-emu/fp_util.S b/arch/m68k/math-emu/fp_util.S index a9f7f0129067..b093b85fcdd2 100644 --- a/arch/m68k/math-emu/fp_util.S +++ b/arch/m68k/math-emu/fp_util.S | |||
@@ -35,7 +35,6 @@ | |||
35 | * OF THE POSSIBILITY OF SUCH DAMAGE. | 35 | * OF THE POSSIBILITY OF SUCH DAMAGE. |
36 | */ | 36 | */ |
37 | 37 | ||
38 | #include <linux/config.h> | ||
39 | #include "fp_emu.h" | 38 | #include "fp_emu.h" |
40 | 39 | ||
41 | /* | 40 | /* |
diff --git a/arch/m68k/mm/init.c b/arch/m68k/mm/init.c index a190e39c907a..ab90213e5c54 100644 --- a/arch/m68k/mm/init.c +++ b/arch/m68k/mm/init.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * to motorola.c and sun3mmu.c | 7 | * to motorola.c and sun3mmu.c |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/signal.h> | 10 | #include <linux/signal.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
diff --git a/arch/m68k/mm/kmap.c b/arch/m68k/mm/kmap.c index 43ffab048724..f46f049d29ff 100644 --- a/arch/m68k/mm/kmap.c +++ b/arch/m68k/mm/kmap.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * used by other architectures /Roman Zippel | 7 | * used by other architectures /Roman Zippel |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/mm.h> | 10 | #include <linux/mm.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/string.h> | 12 | #include <linux/string.h> |
diff --git a/arch/m68k/mm/memory.c b/arch/m68k/mm/memory.c index a226668f20c3..a0c095e17222 100644 --- a/arch/m68k/mm/memory.c +++ b/arch/m68k/mm/memory.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1995 Hamish Macdonald | 4 | * Copyright (C) 1995 Hamish Macdonald |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/mm.h> | 7 | #include <linux/mm.h> |
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/string.h> | 9 | #include <linux/string.h> |
diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c index bdb11103694b..49015e32d8fc 100644 --- a/arch/m68k/mm/motorola.c +++ b/arch/m68k/mm/motorola.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Moved 8/20/1999 Sam Creasey | 8 | * Moved 8/20/1999 Sam Creasey |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/signal.h> | 12 | #include <linux/signal.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
diff --git a/arch/m68k/q40/config.c b/arch/m68k/q40/config.c index efa52d302d67..9a1827876408 100644 --- a/arch/m68k/q40/config.c +++ b/arch/m68k/q40/config.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * for more details. | 12 | * for more details. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
diff --git a/arch/m68k/sun3/config.c b/arch/m68k/sun3/config.c index 553c304aa2c5..d09d03b3d956 100644 --- a/arch/m68k/sun3/config.c +++ b/arch/m68k/sun3/config.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * for more details. | 8 | * for more details. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
diff --git a/arch/m68k/sun3/prom/init.c b/arch/m68k/sun3/prom/init.c index 2e6ae56aec12..202adfcc316e 100644 --- a/arch/m68k/sun3/prom/init.c +++ b/arch/m68k/sun3/prom/init.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | 5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | 10 | ||
diff --git a/arch/m68k/sun3/prom/printf.c b/arch/m68k/sun3/prom/printf.c index e6ee1006344e..e7bfde377b5e 100644 --- a/arch/m68k/sun3/prom/printf.c +++ b/arch/m68k/sun3/prom/printf.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * about or use it! It's simple and smelly anyway.... | 8 | * about or use it! It's simple and smelly anyway.... |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | 12 | ||
14 | #include <asm/openprom.h> | 13 | #include <asm/openprom.h> |
diff --git a/arch/m68k/sun3/sun3dvma.c b/arch/m68k/sun3/sun3dvma.c index 97c7bfde8ae8..6c265222cbcd 100644 --- a/arch/m68k/sun3/sun3dvma.c +++ b/arch/m68k/sun3/sun3dvma.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Contains common routines for sun3/sun3x DVMA management. | 6 | * Contains common routines for sun3/sun3x DVMA management. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/mm.h> | 10 | #include <linux/mm.h> |
12 | #include <linux/list.h> | 11 | #include <linux/list.h> |
diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c index 0912435e9e90..f18b9d3ef16d 100644 --- a/arch/m68k/sun3/sun3ints.c +++ b/arch/m68k/sun3/sun3ints.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * for more details. | 6 | * for more details. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
diff --git a/arch/m68k/sun3x/config.c b/arch/m68k/sun3x/config.c index 52fb17408869..987891783a47 100644 --- a/arch/m68k/sun3x/config.c +++ b/arch/m68k/sun3x/config.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * based on code from Oliver Jowett <oliver@jowett.manawatu.gen.nz> | 6 | * based on code from Oliver Jowett <oliver@jowett.manawatu.gen.nz> |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/mm.h> | 10 | #include <linux/mm.h> |
12 | #include <linux/console.h> | 11 | #include <linux/console.h> |
diff --git a/arch/m68knommu/kernel/comempci.c b/arch/m68knommu/kernel/comempci.c index 8670938f1107..6ee00effbad2 100644 --- a/arch/m68knommu/kernel/comempci.c +++ b/arch/m68knommu/kernel/comempci.c | |||
@@ -9,7 +9,6 @@ | |||
9 | 9 | ||
10 | /*****************************************************************************/ | 10 | /*****************************************************************************/ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/pci.h> | 14 | #include <linux/pci.h> |
@@ -357,7 +356,8 @@ void pcibios_fixup_bus(struct pci_bus *b) | |||
357 | 356 | ||
358 | /*****************************************************************************/ | 357 | /*****************************************************************************/ |
359 | 358 | ||
360 | void pcibios_align_resource(void *data, struct resource *res, unsigned long size, unsigned long align) | 359 | void pcibios_align_resource(void *data, struct resource *res, |
360 | resource_size_t size, resource_size_t align) | ||
361 | { | 361 | { |
362 | } | 362 | } |
363 | 363 | ||
diff --git a/arch/m68knommu/kernel/entry.S b/arch/m68knommu/kernel/entry.S index 8b1f47239b9a..1e7ea6a3e1a1 100644 --- a/arch/m68knommu/kernel/entry.S +++ b/arch/m68knommu/kernel/entry.S | |||
@@ -24,7 +24,6 @@ | |||
24 | * linux 2.4 support David McCullough <davidm@snapgear.com> | 24 | * linux 2.4 support David McCullough <davidm@snapgear.com> |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/sys.h> | 27 | #include <linux/sys.h> |
29 | #include <linux/linkage.h> | 28 | #include <linux/linkage.h> |
30 | #include <asm/thread_info.h> | 29 | #include <asm/thread_info.h> |
diff --git a/arch/m68knommu/kernel/m68k_ksyms.c b/arch/m68knommu/kernel/m68k_ksyms.c index 4320d5dcc9cb..1e62150f3588 100644 --- a/arch/m68knommu/kernel/m68k_ksyms.c +++ b/arch/m68knommu/kernel/m68k_ksyms.c | |||
@@ -7,7 +7,6 @@ | |||
7 | #include <linux/elfcore.h> | 7 | #include <linux/elfcore.h> |
8 | #include <linux/in6.h> | 8 | #include <linux/in6.h> |
9 | #include <linux/interrupt.h> | 9 | #include <linux/interrupt.h> |
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/setup.h> | 11 | #include <asm/setup.h> |
13 | #include <asm/machdep.h> | 12 | #include <asm/machdep.h> |
diff --git a/arch/m68knommu/kernel/process.c b/arch/m68knommu/kernel/process.c index f861755ec88b..c18a83306953 100644 --- a/arch/m68knommu/kernel/process.c +++ b/arch/m68knommu/kernel/process.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * This file handles the architecture-dependent parts of process handling.. | 13 | * This file handles the architecture-dependent parts of process handling.. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
diff --git a/arch/m68knommu/kernel/ptrace.c b/arch/m68knommu/kernel/ptrace.c index 382ca5797b97..9130119537b9 100644 --- a/arch/m68knommu/kernel/ptrace.c +++ b/arch/m68knommu/kernel/ptrace.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
19 | #include <linux/ptrace.h> | 19 | #include <linux/ptrace.h> |
20 | #include <linux/user.h> | 20 | #include <linux/user.h> |
21 | #include <linux/config.h> | ||
22 | #include <linux/signal.h> | 21 | #include <linux/signal.h> |
23 | 22 | ||
24 | #include <asm/uaccess.h> | 23 | #include <asm/uaccess.h> |
diff --git a/arch/m68knommu/kernel/semaphore.c b/arch/m68knommu/kernel/semaphore.c index c083f4772add..bce2bc7d87c6 100644 --- a/arch/m68knommu/kernel/semaphore.c +++ b/arch/m68knommu/kernel/semaphore.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * specific changes in <asm/semaphore-helper.h> | 3 | * specific changes in <asm/semaphore-helper.h> |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <linux/sched.h> | 6 | #include <linux/sched.h> |
8 | #include <linux/err.h> | 7 | #include <linux/err.h> |
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
diff --git a/arch/m68knommu/kernel/setup.c b/arch/m68knommu/kernel/setup.c index 99d038e9ab31..bde9811cf98c 100644 --- a/arch/m68knommu/kernel/setup.c +++ b/arch/m68knommu/kernel/setup.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * This file handles the architecture-dependent parts of system setup | 16 | * This file handles the architecture-dependent parts of system setup |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
22 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
diff --git a/arch/m68knommu/kernel/syscalltable.S b/arch/m68knommu/kernel/syscalltable.S index 897deaa06b01..617e43ec95ae 100644 --- a/arch/m68knommu/kernel/syscalltable.S +++ b/arch/m68knommu/kernel/syscalltable.S | |||
@@ -11,7 +11,6 @@ | |||
11 | * Copyright (C) 1991, 1992 Linus Torvalds | 11 | * Copyright (C) 1991, 1992 Linus Torvalds |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/sys.h> | 14 | #include <linux/sys.h> |
16 | #include <linux/linkage.h> | 15 | #include <linux/linkage.h> |
17 | #include <asm/unistd.h> | 16 | #include <asm/unistd.h> |
diff --git a/arch/m68knommu/kernel/time.c b/arch/m68knommu/kernel/time.c index b9d8abb45430..1db987272220 100644 --- a/arch/m68knommu/kernel/time.c +++ b/arch/m68knommu/kernel/time.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * "A Kernel Model for Precision Timekeeping" by Dave Mills | 10 | * "A Kernel Model for Precision Timekeeping" by Dave Mills |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
diff --git a/arch/m68knommu/kernel/traps.c b/arch/m68knommu/kernel/traps.c index 44ff74e643b1..17649d2543ef 100644 --- a/arch/m68knommu/kernel/traps.c +++ b/arch/m68knommu/kernel/traps.c | |||
@@ -16,7 +16,6 @@ | |||
16 | /* | 16 | /* |
17 | * Sets up all exception vectors | 17 | * Sets up all exception vectors |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
21 | #include <linux/signal.h> | 20 | #include <linux/signal.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
diff --git a/arch/m68knommu/kernel/vmlinux.lds.S b/arch/m68knommu/kernel/vmlinux.lds.S index 59ced831b792..ccd2ceb05cfb 100644 --- a/arch/m68knommu/kernel/vmlinux.lds.S +++ b/arch/m68knommu/kernel/vmlinux.lds.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * run kernels. | 7 | * run kernels. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <asm-generic/vmlinux.lds.h> | 10 | #include <asm-generic/vmlinux.lds.h> |
12 | 11 | ||
13 | #if defined(CONFIG_RAMKERNEL) | 12 | #if defined(CONFIG_RAMKERNEL) |
diff --git a/arch/m68knommu/lib/semaphore.S b/arch/m68knommu/lib/semaphore.S index 76765362fea6..87c746034376 100644 --- a/arch/m68knommu/lib/semaphore.S +++ b/arch/m68knommu/lib/semaphore.S | |||
@@ -9,7 +9,6 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/linkage.h> | 11 | #include <linux/linkage.h> |
12 | #include <linux/config.h> | ||
13 | #include <asm/semaphore.h> | 12 | #include <asm/semaphore.h> |
14 | 13 | ||
15 | /* | 14 | /* |
diff --git a/arch/m68knommu/mm/init.c b/arch/m68knommu/mm/init.c index 70d1653be3da..e4c233eef195 100644 --- a/arch/m68knommu/mm/init.c +++ b/arch/m68knommu/mm/init.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * DEC/2000 -- linux 2.4 support <davidm@snapgear.com> | 15 | * DEC/2000 -- linux 2.4 support <davidm@snapgear.com> |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/signal.h> | 18 | #include <linux/signal.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
diff --git a/arch/m68knommu/mm/kmap.c b/arch/m68knommu/mm/kmap.c index 04213e1c1e57..bc32f38843f0 100644 --- a/arch/m68knommu/mm/kmap.c +++ b/arch/m68knommu/mm/kmap.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 2000-2002 David McCullough <davidm@snapgear.com> | 5 | * Copyright (C) 2000-2002 David McCullough <davidm@snapgear.com> |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/mm.h> | 8 | #include <linux/mm.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/string.h> | 10 | #include <linux/string.h> |
diff --git a/arch/m68knommu/mm/memory.c b/arch/m68knommu/mm/memory.c index 0eef72915e61..411e45248e5c 100644 --- a/arch/m68knommu/mm/memory.c +++ b/arch/m68knommu/mm/memory.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Copyright (C) 1995 Hamish Macdonald | 11 | * Copyright (C) 1995 Hamish Macdonald |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/string.h> | 16 | #include <linux/string.h> |
diff --git a/arch/m68knommu/platform/5206/config.c b/arch/m68knommu/platform/5206/config.c index 987c91a9a206..34657f85e702 100644 --- a/arch/m68knommu/platform/5206/config.c +++ b/arch/m68knommu/platform/5206/config.c | |||
@@ -9,7 +9,6 @@ | |||
9 | 9 | ||
10 | /***************************************************************************/ | 10 | /***************************************************************************/ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/param.h> | 14 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/5206e/config.c b/arch/m68knommu/platform/5206e/config.c index f35b8606c1ee..48e4d6266507 100644 --- a/arch/m68knommu/platform/5206e/config.c +++ b/arch/m68knommu/platform/5206e/config.c | |||
@@ -8,7 +8,6 @@ | |||
8 | 8 | ||
9 | /***************************************************************************/ | 9 | /***************************************************************************/ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/param.h> | 13 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/520x/config.c b/arch/m68knommu/platform/520x/config.c index 71dea2e0f452..823f561f35b0 100644 --- a/arch/m68knommu/platform/520x/config.c +++ b/arch/m68knommu/platform/520x/config.c | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | /***************************************************************************/ | 12 | /***************************************************************************/ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/param.h> | 15 | #include <linux/param.h> |
17 | #include <asm/machdep.h> | 16 | #include <asm/machdep.h> |
diff --git a/arch/m68knommu/platform/523x/config.c b/arch/m68knommu/platform/523x/config.c index 22767ce506e0..85de817e9ec5 100644 --- a/arch/m68knommu/platform/523x/config.c +++ b/arch/m68knommu/platform/523x/config.c | |||
@@ -12,7 +12,6 @@ | |||
12 | 12 | ||
13 | /***************************************************************************/ | 13 | /***************************************************************************/ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
18 | #include <linux/param.h> | 17 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/5249/config.c b/arch/m68knommu/platform/5249/config.c index 289c1821b841..9d19d5bdb8af 100644 --- a/arch/m68knommu/platform/5249/config.c +++ b/arch/m68knommu/platform/5249/config.c | |||
@@ -8,7 +8,6 @@ | |||
8 | 8 | ||
9 | /***************************************************************************/ | 9 | /***************************************************************************/ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/param.h> | 13 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/5272/config.c b/arch/m68knommu/platform/5272/config.c index cf36e7d007b9..d500e27eda57 100644 --- a/arch/m68knommu/platform/5272/config.c +++ b/arch/m68knommu/platform/5272/config.c | |||
@@ -9,7 +9,6 @@ | |||
9 | 9 | ||
10 | /***************************************************************************/ | 10 | /***************************************************************************/ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/param.h> | 14 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/527x/config.c b/arch/m68knommu/platform/527x/config.c index 804de33cd6b7..bbae51597457 100644 --- a/arch/m68knommu/platform/527x/config.c +++ b/arch/m68knommu/platform/527x/config.c | |||
@@ -12,7 +12,6 @@ | |||
12 | 12 | ||
13 | /***************************************************************************/ | 13 | /***************************************************************************/ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
18 | #include <linux/param.h> | 17 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/528x/config.c b/arch/m68knommu/platform/528x/config.c index a5d2aa38a27a..18dad9046144 100644 --- a/arch/m68knommu/platform/528x/config.c +++ b/arch/m68knommu/platform/528x/config.c | |||
@@ -12,7 +12,6 @@ | |||
12 | 12 | ||
13 | /***************************************************************************/ | 13 | /***************************************************************************/ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
18 | #include <linux/param.h> | 17 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/5307/config.c b/arch/m68knommu/platform/5307/config.c index 7ed5782e9236..8074ac56f479 100644 --- a/arch/m68knommu/platform/5307/config.c +++ b/arch/m68knommu/platform/5307/config.c | |||
@@ -9,7 +9,6 @@ | |||
9 | 9 | ||
10 | /***************************************************************************/ | 10 | /***************************************************************************/ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/param.h> | 14 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/5307/entry.S b/arch/m68knommu/platform/5307/entry.S index 9ddf5476ef8f..f0dba84d9101 100644 --- a/arch/m68knommu/platform/5307/entry.S +++ b/arch/m68knommu/platform/5307/entry.S | |||
@@ -26,7 +26,6 @@ | |||
26 | * Bug, speed and maintainability fixes by Philippe De Muyter <phdm@macqel.be> | 26 | * Bug, speed and maintainability fixes by Philippe De Muyter <phdm@macqel.be> |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <linux/config.h> | ||
30 | #include <linux/sys.h> | 29 | #include <linux/sys.h> |
31 | #include <linux/linkage.h> | 30 | #include <linux/linkage.h> |
32 | #include <asm/unistd.h> | 31 | #include <asm/unistd.h> |
diff --git a/arch/m68knommu/platform/5307/head.S b/arch/m68knommu/platform/5307/head.S index 1d9eb301d7ac..f2edb6498cd9 100644 --- a/arch/m68knommu/platform/5307/head.S +++ b/arch/m68knommu/platform/5307/head.S | |||
@@ -8,7 +8,6 @@ | |||
8 | 8 | ||
9 | /*****************************************************************************/ | 9 | /*****************************************************************************/ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/sys.h> | 11 | #include <linux/sys.h> |
13 | #include <linux/linkage.h> | 12 | #include <linux/linkage.h> |
14 | #include <asm/asm-offsets.h> | 13 | #include <asm/asm-offsets.h> |
diff --git a/arch/m68knommu/platform/5307/ints.c b/arch/m68knommu/platform/5307/ints.c index a134fb2f0566..b4b55093ae7e 100644 --- a/arch/m68knommu/platform/5307/ints.c +++ b/arch/m68knommu/platform/5307/ints.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
22 | #include <linux/kernel_stat.h> | 22 | #include <linux/kernel_stat.h> |
23 | #include <linux/errno.h> | 23 | #include <linux/errno.h> |
24 | #include <linux/config.h> | ||
25 | #include <linux/seq_file.h> | 24 | #include <linux/seq_file.h> |
26 | 25 | ||
27 | #include <asm/system.h> | 26 | #include <asm/system.h> |
diff --git a/arch/m68knommu/platform/5307/pit.c b/arch/m68knommu/platform/5307/pit.c index ef174748825f..9dc5688f71b5 100644 --- a/arch/m68knommu/platform/5307/pit.c +++ b/arch/m68knommu/platform/5307/pit.c | |||
@@ -12,7 +12,6 @@ | |||
12 | 12 | ||
13 | /***************************************************************************/ | 13 | /***************************************************************************/ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
18 | #include <linux/param.h> | 17 | #include <linux/param.h> |
@@ -49,7 +48,7 @@ void coldfire_pit_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)) | |||
49 | volatile unsigned char *icrp; | 48 | volatile unsigned char *icrp; |
50 | volatile unsigned long *imrp; | 49 | volatile unsigned long *imrp; |
51 | 50 | ||
52 | request_irq(MCFINT_VECBASE + MCFINT_PIT1, handler, SA_INTERRUPT, | 51 | request_irq(MCFINT_VECBASE + MCFINT_PIT1, handler, IRQF_DISABLED, |
53 | "ColdFire Timer", NULL); | 52 | "ColdFire Timer", NULL); |
54 | 53 | ||
55 | icrp = (volatile unsigned char *) (MCF_IPSBAR + MCFICM_INTC0 + | 54 | icrp = (volatile unsigned char *) (MCF_IPSBAR + MCFICM_INTC0 + |
diff --git a/arch/m68knommu/platform/5307/timers.c b/arch/m68knommu/platform/5307/timers.c index 83b8b89dfa09..24781f009337 100644 --- a/arch/m68knommu/platform/5307/timers.c +++ b/arch/m68knommu/platform/5307/timers.c | |||
@@ -8,7 +8,6 @@ | |||
8 | 8 | ||
9 | /***************************************************************************/ | 9 | /***************************************************************************/ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/param.h> | 13 | #include <linux/param.h> |
@@ -62,7 +61,7 @@ void coldfire_timer_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)) | |||
62 | __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | | 61 | __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | |
63 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); | 62 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); |
64 | 63 | ||
65 | request_irq(mcf_timervector, handler, SA_INTERRUPT, "timer", NULL); | 64 | request_irq(mcf_timervector, handler, IRQF_DISABLED, "timer", NULL); |
66 | mcf_settimericr(1, mcf_timerlevel); | 65 | mcf_settimericr(1, mcf_timerlevel); |
67 | 66 | ||
68 | #ifdef CONFIG_HIGHPROFILE | 67 | #ifdef CONFIG_HIGHPROFILE |
@@ -126,7 +125,7 @@ void coldfire_profile_init(void) | |||
126 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, PA(MCFTIMER_TMR)); | 125 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, PA(MCFTIMER_TMR)); |
127 | 126 | ||
128 | request_irq(mcf_profilevector, coldfire_profile_tick, | 127 | request_irq(mcf_profilevector, coldfire_profile_tick, |
129 | (SA_INTERRUPT | IRQ_FLG_FAST), "profile timer", NULL); | 128 | (IRQF_DISABLED | IRQ_FLG_FAST), "profile timer", NULL); |
130 | mcf_settimericr(2, 7); | 129 | mcf_settimericr(2, 7); |
131 | } | 130 | } |
132 | 131 | ||
diff --git a/arch/m68knommu/platform/5307/vectors.c b/arch/m68knommu/platform/5307/vectors.c index ac313a160d8d..2a8b0d044ce5 100644 --- a/arch/m68knommu/platform/5307/vectors.c +++ b/arch/m68knommu/platform/5307/vectors.c | |||
@@ -8,7 +8,6 @@ | |||
8 | 8 | ||
9 | /***************************************************************************/ | 9 | /***************************************************************************/ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/param.h> | 13 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/5407/config.c b/arch/m68knommu/platform/5407/config.c index f7c9018b85a7..5aad2645f0f1 100644 --- a/arch/m68knommu/platform/5407/config.c +++ b/arch/m68knommu/platform/5407/config.c | |||
@@ -9,7 +9,6 @@ | |||
9 | 9 | ||
10 | /***************************************************************************/ | 10 | /***************************************************************************/ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/param.h> | 14 | #include <linux/param.h> |
diff --git a/arch/m68knommu/platform/68328/config.c b/arch/m68knommu/platform/68328/config.c index bcfa5d7fe1e2..26ffeba28642 100644 --- a/arch/m68knommu/platform/68328/config.c +++ b/arch/m68knommu/platform/68328/config.c | |||
@@ -17,7 +17,6 @@ | |||
17 | 17 | ||
18 | #include <asm/dbg.h> | 18 | #include <asm/dbg.h> |
19 | #include <stdarg.h> | 19 | #include <stdarg.h> |
20 | #include <linux/config.h> | ||
21 | #include <linux/types.h> | 20 | #include <linux/types.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
23 | #include <linux/mm.h> | 22 | #include <linux/mm.h> |
diff --git a/arch/m68knommu/platform/68328/entry.S b/arch/m68knommu/platform/68328/entry.S index 7d8990d784a2..f97862715450 100644 --- a/arch/m68knommu/platform/68328/entry.S +++ b/arch/m68knommu/platform/68328/entry.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * Linux/m68k support by Hamish Macdonald | 10 | * Linux/m68k support by Hamish Macdonald |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/sys.h> | 13 | #include <linux/sys.h> |
15 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
16 | #include <asm/thread_info.h> | 15 | #include <asm/thread_info.h> |
diff --git a/arch/m68knommu/platform/68328/head-de2.S b/arch/m68knommu/platform/68328/head-de2.S index 94c5a1609a75..92d96456d363 100644 --- a/arch/m68knommu/platform/68328/head-de2.S +++ b/arch/m68knommu/platform/68328/head-de2.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | #if defined(CONFIG_RAM32MB) | 2 | #if defined(CONFIG_RAM32MB) |
4 | #define MEM_END 0x02000000 /* Memory size 32Mb */ | 3 | #define MEM_END 0x02000000 /* Memory size 32Mb */ |
diff --git a/arch/m68knommu/platform/68328/head-pilot.S b/arch/m68knommu/platform/68328/head-pilot.S index 46b3604f999c..9e07faa3e81d 100644 --- a/arch/m68knommu/platform/68328/head-pilot.S +++ b/arch/m68knommu/platform/68328/head-pilot.S | |||
@@ -15,7 +15,6 @@ | |||
15 | #define IMMED # | 15 | #define IMMED # |
16 | #define DBG_PUTC(x) moveb IMMED x, 0xfffff907 | 16 | #define DBG_PUTC(x) moveb IMMED x, 0xfffff907 |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | 18 | ||
20 | .global _stext | 19 | .global _stext |
21 | .global _start | 20 | .global _start |
diff --git a/arch/m68knommu/platform/68328/head-ram.S b/arch/m68knommu/platform/68328/head-ram.S index e8dc9241ff96..252b80b02038 100644 --- a/arch/m68knommu/platform/68328/head-ram.S +++ b/arch/m68knommu/platform/68328/head-ram.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | .global __main | 2 | .global __main |
4 | .global __rom_start | 3 | .global __rom_start |
diff --git a/arch/m68knommu/platform/68328/head-rom.S b/arch/m68knommu/platform/68328/head-rom.S index 234430b9551c..6ec77d3ea0b3 100644 --- a/arch/m68knommu/platform/68328/head-rom.S +++ b/arch/m68knommu/platform/68328/head-rom.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | .global _start | 2 | .global _start |
4 | .global _stext | 3 | .global _stext |
diff --git a/arch/m68knommu/platform/68328/timers.c b/arch/m68knommu/platform/68328/timers.c index 68c2cd6b0030..438ef6ee9720 100644 --- a/arch/m68knommu/platform/68328/timers.c +++ b/arch/m68knommu/platform/68328/timers.c | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | /***************************************************************************/ | 15 | /***************************************************************************/ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/types.h> | 17 | #include <linux/types.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/m68knommu/platform/68360/config.c b/arch/m68knommu/platform/68360/config.c index 69c670dfd62b..c5482e3622eb 100644 --- a/arch/m68knommu/platform/68360/config.c +++ b/arch/m68knommu/platform/68360/config.c | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <stdarg.h> | 13 | #include <stdarg.h> |
14 | #include <linux/config.h> | ||
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
diff --git a/arch/m68knommu/platform/68360/entry.S b/arch/m68knommu/platform/68360/entry.S index 8ff48adf24ab..f1af8977f294 100644 --- a/arch/m68knommu/platform/68360/entry.S +++ b/arch/m68knommu/platform/68360/entry.S | |||
@@ -12,7 +12,6 @@ | |||
12 | * M68360 Port by SED Systems, and Lineo. | 12 | * M68360 Port by SED Systems, and Lineo. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/sys.h> | 15 | #include <linux/sys.h> |
17 | #include <linux/linkage.h> | 16 | #include <linux/linkage.h> |
18 | #include <asm/thread_info.h> | 17 | #include <asm/thread_info.h> |
diff --git a/arch/m68knommu/platform/68360/head-ram.S b/arch/m68knommu/platform/68360/head-ram.S index f497713a4ec7..2ea51479f13a 100644 --- a/arch/m68knommu/platform/68360/head-ram.S +++ b/arch/m68knommu/platform/68360/head-ram.S | |||
@@ -12,7 +12,6 @@ | |||
12 | * | 12 | * |
13 | */ | 13 | */ |
14 | #define ASSEMBLY | 14 | #define ASSEMBLY |
15 | #include <linux/config.h> | ||
16 | 15 | ||
17 | .global _stext | 16 | .global _stext |
18 | .global _start | 17 | .global _start |
diff --git a/arch/m68knommu/platform/68360/head-rom.S b/arch/m68knommu/platform/68360/head-rom.S index 2d28c3e19a88..62ecf4144b3b 100644 --- a/arch/m68knommu/platform/68360/head-rom.S +++ b/arch/m68knommu/platform/68360/head-rom.S | |||
@@ -11,7 +11,6 @@ | |||
11 | * Copyright (C) 1998 D. Jeff Dionne <jeff@uclinux.org>, | 11 | * Copyright (C) 1998 D. Jeff Dionne <jeff@uclinux.org>, |
12 | * | 12 | * |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | 14 | ||
16 | .global _stext | 15 | .global _stext |
17 | .global _sbss | 16 | .global _sbss |
diff --git a/arch/m68knommu/platform/68360/ints.c b/arch/m68knommu/platform/68360/ints.c index 0245fc4a4781..4df3c146eb74 100644 --- a/arch/m68knommu/platform/68360/ints.c +++ b/arch/m68knommu/platform/68360/ints.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Copyright (c) 1999 D. Jeff Dionne <jeff@uclinux.org> | 10 | * Copyright (c) 1999 D. Jeff Dionne <jeff@uclinux.org> |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
diff --git a/arch/m68knommu/platform/68EZ328/config.c b/arch/m68knommu/platform/68EZ328/config.c index 15a14a67c2bf..659b80aca118 100644 --- a/arch/m68knommu/platform/68EZ328/config.c +++ b/arch/m68knommu/platform/68EZ328/config.c | |||
@@ -14,7 +14,6 @@ | |||
14 | /***************************************************************************/ | 14 | /***************************************************************************/ |
15 | 15 | ||
16 | #include <stdarg.h> | 16 | #include <stdarg.h> |
17 | #include <linux/config.h> | ||
18 | #include <linux/types.h> | 17 | #include <linux/types.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/m68knommu/platform/68VZ328/config.c b/arch/m68knommu/platform/68VZ328/config.c index 4058de5c8fa2..fcd100b7594d 100644 --- a/arch/m68knommu/platform/68VZ328/config.c +++ b/arch/m68knommu/platform/68VZ328/config.c | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | /***************************************************************************/ | 15 | /***************************************************************************/ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/types.h> | 17 | #include <linux/types.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 35e038a974c6..747a9c1228f2 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -308,6 +308,7 @@ config MIPS_ATLAS | |||
308 | select SYS_SUPPORTS_64BIT_KERNEL | 308 | select SYS_SUPPORTS_64BIT_KERNEL |
309 | select SYS_SUPPORTS_BIG_ENDIAN | 309 | select SYS_SUPPORTS_BIG_ENDIAN |
310 | select SYS_SUPPORTS_LITTLE_ENDIAN | 310 | select SYS_SUPPORTS_LITTLE_ENDIAN |
311 | select SYS_SUPPORTS_MULTITHREADING if EXPERIMENTAL | ||
311 | help | 312 | help |
312 | This enables support for the MIPS Technologies Atlas evaluation | 313 | This enables support for the MIPS Technologies Atlas evaluation |
313 | board. | 314 | board. |
@@ -324,6 +325,7 @@ config MIPS_MALTA | |||
324 | select I8259 | 325 | select I8259 |
325 | select MIPS_BOARDS_GEN | 326 | select MIPS_BOARDS_GEN |
326 | select MIPS_BONITO64 | 327 | select MIPS_BONITO64 |
328 | select MIPS_CPU_SCACHE | ||
327 | select MIPS_GT64120 | 329 | select MIPS_GT64120 |
328 | select MIPS_MSC | 330 | select MIPS_MSC |
329 | select SWAP_IO_SPACE | 331 | select SWAP_IO_SPACE |
@@ -336,6 +338,7 @@ config MIPS_MALTA | |||
336 | select SYS_SUPPORTS_64BIT_KERNEL | 338 | select SYS_SUPPORTS_64BIT_KERNEL |
337 | select SYS_SUPPORTS_BIG_ENDIAN | 339 | select SYS_SUPPORTS_BIG_ENDIAN |
338 | select SYS_SUPPORTS_LITTLE_ENDIAN | 340 | select SYS_SUPPORTS_LITTLE_ENDIAN |
341 | select SYS_SUPPORTS_MULTITHREADING | ||
339 | help | 342 | help |
340 | This enables support for the MIPS Technologies Malta evaluation | 343 | This enables support for the MIPS Technologies Malta evaluation |
341 | board. | 344 | board. |
@@ -358,7 +361,7 @@ config MIPS_SEAD | |||
358 | board. | 361 | board. |
359 | 362 | ||
360 | config WR_PPMC | 363 | config WR_PPMC |
361 | bool "Support for Wind River PPMC board" | 364 | bool "Wind River PPMC board" |
362 | select IRQ_CPU | 365 | select IRQ_CPU |
363 | select BOOT_ELF32 | 366 | select BOOT_ELF32 |
364 | select DMA_NONCOHERENT | 367 | select DMA_NONCOHERENT |
@@ -536,6 +539,7 @@ config PMC_YOSEMITE | |||
536 | select SYS_SUPPORTS_64BIT_KERNEL | 539 | select SYS_SUPPORTS_64BIT_KERNEL |
537 | select SYS_SUPPORTS_BIG_ENDIAN | 540 | select SYS_SUPPORTS_BIG_ENDIAN |
538 | select SYS_SUPPORTS_HIGHMEM | 541 | select SYS_SUPPORTS_HIGHMEM |
542 | select SYS_SUPPORTS_SMP | ||
539 | help | 543 | help |
540 | Yosemite is an evaluation board for the RM9000x2 processor | 544 | Yosemite is an evaluation board for the RM9000x2 processor |
541 | manufactured by PMC-Sierra. | 545 | manufactured by PMC-Sierra. |
@@ -590,6 +594,7 @@ config SGI_IP22 | |||
590 | select SYS_SUPPORTS_32BIT_KERNEL | 594 | select SYS_SUPPORTS_32BIT_KERNEL |
591 | select SYS_SUPPORTS_64BIT_KERNEL | 595 | select SYS_SUPPORTS_64BIT_KERNEL |
592 | select SYS_SUPPORTS_BIG_ENDIAN | 596 | select SYS_SUPPORTS_BIG_ENDIAN |
597 | select SYS_SUPPORTS_SMP | ||
593 | help | 598 | help |
594 | This are the SGI Indy, Challenge S and Indigo2, as well as certain | 599 | This are the SGI Indy, Challenge S and Indigo2, as well as certain |
595 | OEM variants like the Tandem CMN B006S. To compile a Linux kernel | 600 | OEM variants like the Tandem CMN B006S. To compile a Linux kernel |
@@ -601,6 +606,7 @@ config SGI_IP27 | |||
601 | select ARC64 | 606 | select ARC64 |
602 | select BOOT_ELF64 | 607 | select BOOT_ELF64 |
603 | select DMA_IP27 | 608 | select DMA_IP27 |
609 | select EARLY_PRINTK | ||
604 | select HW_HAS_PCI | 610 | select HW_HAS_PCI |
605 | select PCI_DOMAINS | 611 | select PCI_DOMAINS |
606 | select SYS_HAS_CPU_R10000 | 612 | select SYS_HAS_CPU_R10000 |
@@ -1249,7 +1255,7 @@ config CPU_R6000 | |||
1249 | select CPU_SUPPORTS_32BIT_KERNEL | 1255 | select CPU_SUPPORTS_32BIT_KERNEL |
1250 | help | 1256 | help |
1251 | MIPS Technologies R6000 and R6000A series processors. Note these | 1257 | MIPS Technologies R6000 and R6000A series processors. Note these |
1252 | processors are extremly rare and the support for them is incomplete. | 1258 | processors are extremely rare and the support for them is incomplete. |
1253 | 1259 | ||
1254 | config CPU_NEVADA | 1260 | config CPU_NEVADA |
1255 | bool "RM52xx" | 1261 | bool "RM52xx" |
@@ -1370,7 +1376,7 @@ config SYS_HAS_CPU_SB1 | |||
1370 | endmenu | 1376 | endmenu |
1371 | 1377 | ||
1372 | # | 1378 | # |
1373 | # These two indicate any levelof the MIPS32 and MIPS64 architecture | 1379 | # These two indicate any level of the MIPS32 and MIPS64 architecture |
1374 | # | 1380 | # |
1375 | config CPU_MIPS32 | 1381 | config CPU_MIPS32 |
1376 | bool | 1382 | bool |
@@ -1381,7 +1387,7 @@ config CPU_MIPS64 | |||
1381 | default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 | 1387 | default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 |
1382 | 1388 | ||
1383 | # | 1389 | # |
1384 | # These two indicate the revision of the architecture, either 32 bot 64 bit. | 1390 | # These two indicate the revision of the architecture, either Release 1 or Release 2 |
1385 | # | 1391 | # |
1386 | config CPU_MIPSR1 | 1392 | config CPU_MIPSR1 |
1387 | bool | 1393 | bool |
@@ -1474,6 +1480,13 @@ config IP22_CPU_SCACHE | |||
1474 | bool | 1480 | bool |
1475 | select BOARD_SCACHE | 1481 | select BOARD_SCACHE |
1476 | 1482 | ||
1483 | # | ||
1484 | # Support for a MIPS32 / MIPS64 style S-caches | ||
1485 | # | ||
1486 | config MIPS_CPU_SCACHE | ||
1487 | bool | ||
1488 | select BOARD_SCACHE | ||
1489 | |||
1477 | config R5000_CPU_SCACHE | 1490 | config R5000_CPU_SCACHE |
1478 | bool | 1491 | bool |
1479 | select BOARD_SCACHE | 1492 | select BOARD_SCACHE |
@@ -1493,32 +1506,57 @@ config SIBYTE_DMA_PAGEOPS | |||
1493 | config CPU_HAS_PREFETCH | 1506 | config CPU_HAS_PREFETCH |
1494 | bool | 1507 | bool |
1495 | 1508 | ||
1496 | config MIPS_MT | ||
1497 | bool "Enable MIPS MT" | ||
1498 | |||
1499 | choice | 1509 | choice |
1500 | prompt "MIPS MT options" | 1510 | prompt "MIPS MT options" |
1501 | depends on MIPS_MT | 1511 | |
1512 | config MIPS_MT_DISABLED | ||
1513 | bool "Disable multithreading support." | ||
1514 | help | ||
1515 | Use this option if your workload can't take advantage of | ||
1516 | MIPS hardware multithreading support. On systems that don't have | ||
1517 | the option of an MT-enabled processor this option will be the only | ||
1518 | option in this menu. | ||
1502 | 1519 | ||
1503 | config MIPS_MT_SMTC | 1520 | config MIPS_MT_SMTC |
1504 | bool "SMTC: Use all TCs on all VPEs for SMP" | 1521 | bool "SMTC: Use all TCs on all VPEs for SMP" |
1522 | depends on CPU_MIPS32_R2 | ||
1523 | #depends on CPU_MIPS64_R2 # once there is hardware ... | ||
1524 | depends on SYS_SUPPORTS_MULTITHREADING | ||
1505 | select CPU_MIPSR2_IRQ_VI | 1525 | select CPU_MIPSR2_IRQ_VI |
1506 | select CPU_MIPSR2_SRS | 1526 | select CPU_MIPSR2_SRS |
1527 | select MIPS_MT | ||
1507 | select SMP | 1528 | select SMP |
1529 | help | ||
1530 | This is a kernel model which is known a SMTC or lately has been | ||
1531 | marketesed into SMVP. | ||
1508 | 1532 | ||
1509 | config MIPS_MT_SMP | 1533 | config MIPS_MT_SMP |
1510 | bool "Use 1 TC on each available VPE for SMP" | 1534 | bool "Use 1 TC on each available VPE for SMP" |
1535 | depends on SYS_SUPPORTS_MULTITHREADING | ||
1536 | select CPU_MIPSR2_IRQ_VI | ||
1537 | select CPU_MIPSR2_SRS | ||
1538 | select MIPS_MT | ||
1511 | select SMP | 1539 | select SMP |
1540 | help | ||
1541 | This is a kernel model which is also known a VSMP or lately | ||
1542 | has been marketesed into SMVP. | ||
1512 | 1543 | ||
1513 | config MIPS_VPE_LOADER | 1544 | config MIPS_VPE_LOADER |
1514 | bool "VPE loader support." | 1545 | bool "VPE loader support." |
1515 | depends on MIPS_MT | 1546 | depends on SYS_SUPPORTS_MULTITHREADING |
1547 | select MIPS_MT | ||
1516 | help | 1548 | help |
1517 | Includes a loader for loading an elf relocatable object | 1549 | Includes a loader for loading an elf relocatable object |
1518 | onto another VPE and running it. | 1550 | onto another VPE and running it. |
1519 | 1551 | ||
1520 | endchoice | 1552 | endchoice |
1521 | 1553 | ||
1554 | config MIPS_MT | ||
1555 | bool | ||
1556 | |||
1557 | config SYS_SUPPORTS_MULTITHREADING | ||
1558 | bool | ||
1559 | |||
1522 | config MIPS_MT_FPAFF | 1560 | config MIPS_MT_FPAFF |
1523 | bool "Dynamic FPU affinity for FP-intensive threads" | 1561 | bool "Dynamic FPU affinity for FP-intensive threads" |
1524 | depends on MIPS_MT | 1562 | depends on MIPS_MT |
@@ -1575,32 +1613,23 @@ config CPU_HAS_LLSC | |||
1575 | config CPU_HAS_WB | 1613 | config CPU_HAS_WB |
1576 | bool | 1614 | bool |
1577 | 1615 | ||
1616 | # | ||
1617 | # Vectored interrupt mode is an R2 feature | ||
1618 | # | ||
1578 | config CPU_MIPSR2_IRQ_VI | 1619 | config CPU_MIPSR2_IRQ_VI |
1579 | bool "Vectored interrupt mode" | 1620 | bool |
1580 | depends on CPU_MIPSR2 | ||
1581 | help | ||
1582 | Vectored interrupt mode allowing faster dispatching of interrupts. | ||
1583 | The board support code needs to be written to take advantage of this | ||
1584 | mode. Compatibility code is included to allow the kernel to run on | ||
1585 | a CPU that does not support vectored interrupts. It's safe to | ||
1586 | say Y here. | ||
1587 | 1621 | ||
1622 | # | ||
1623 | # Extended interrupt mode is an R2 feature | ||
1624 | # | ||
1588 | config CPU_MIPSR2_IRQ_EI | 1625 | config CPU_MIPSR2_IRQ_EI |
1589 | bool "External interrupt controller mode" | 1626 | bool |
1590 | depends on CPU_MIPSR2 | ||
1591 | help | ||
1592 | Extended interrupt mode takes advantage of an external interrupt | ||
1593 | controller to allow fast dispatching from many possible interrupt | ||
1594 | sources. Say N unless you know that external interrupt support is | ||
1595 | required. | ||
1596 | 1627 | ||
1628 | # | ||
1629 | # Shadow registers are an R2 feature | ||
1630 | # | ||
1597 | config CPU_MIPSR2_SRS | 1631 | config CPU_MIPSR2_SRS |
1598 | bool "Make shadow set registers available for interrupt handlers" | 1632 | bool |
1599 | depends on CPU_MIPSR2_IRQ_VI || CPU_MIPSR2_IRQ_EI | ||
1600 | help | ||
1601 | Allow the kernel to use shadow register sets for fast interrupts. | ||
1602 | Interrupt handlers must be specially written to use shadow sets. | ||
1603 | Say N unless you know that shadow register set upport is needed. | ||
1604 | 1633 | ||
1605 | config CPU_HAS_SYNC | 1634 | config CPU_HAS_SYNC |
1606 | bool | 1635 | bool |
@@ -1618,6 +1647,11 @@ config GENERIC_IRQ_PROBE | |||
1618 | bool | 1647 | bool |
1619 | default y | 1648 | default y |
1620 | 1649 | ||
1650 | config IRQ_PER_CPU | ||
1651 | depends on SMP | ||
1652 | bool | ||
1653 | default y | ||
1654 | |||
1621 | # | 1655 | # |
1622 | # - Highmem only makes sense for the 32-bit kernel. | 1656 | # - Highmem only makes sense for the 32-bit kernel. |
1623 | # - The current highmem code will only work properly on physically indexed | 1657 | # - The current highmem code will only work properly on physically indexed |
@@ -1676,8 +1710,8 @@ source "mm/Kconfig" | |||
1676 | 1710 | ||
1677 | config SMP | 1711 | config SMP |
1678 | bool "Multi-Processing support" | 1712 | bool "Multi-Processing support" |
1679 | depends on CPU_RM9000 || ((SIBYTE_BCM1x80 || SIBYTE_BCM1x55 || SIBYTE_SB1250 || QEMU) && !SIBYTE_STANDALONE) || SGI_IP27 || MIPS_MT_SMP || MIPS_MT_SMTC | 1713 | depends on SYS_SUPPORTS_SMP |
1680 | ---help--- | 1714 | help |
1681 | This enables support for systems with more than one CPU. If you have | 1715 | This enables support for systems with more than one CPU. If you have |
1682 | a system with only one CPU, like most personal computers, say N. If | 1716 | a system with only one CPU, like most personal computers, say N. If |
1683 | you have a system with more than one CPU, say Y. | 1717 | you have a system with more than one CPU, say Y. |
@@ -1696,6 +1730,9 @@ config SMP | |||
1696 | 1730 | ||
1697 | If you don't know what to do here, say N. | 1731 | If you don't know what to do here, say N. |
1698 | 1732 | ||
1733 | config SYS_SUPPORTS_SMP | ||
1734 | bool | ||
1735 | |||
1699 | config NR_CPUS | 1736 | config NR_CPUS |
1700 | int "Maximum number of CPUs (2-64)" | 1737 | int "Maximum number of CPUs (2-64)" |
1701 | range 2 64 | 1738 | range 2 64 |
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index d5930148495a..ebbb9adc0e2f 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -374,6 +374,7 @@ core-$(CONFIG_PMC_YOSEMITE) += arch/mips/pmc-sierra/yosemite/ | |||
374 | cflags-$(CONFIG_PMC_YOSEMITE) += -Iinclude/asm-mips/mach-yosemite | 374 | cflags-$(CONFIG_PMC_YOSEMITE) += -Iinclude/asm-mips/mach-yosemite |
375 | load-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 | 375 | load-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 |
376 | 376 | ||
377 | # | ||
377 | # Qemu simulating MIPS32 4Kc | 378 | # Qemu simulating MIPS32 4Kc |
378 | # | 379 | # |
379 | core-$(CONFIG_QEMU) += arch/mips/qemu/ | 380 | core-$(CONFIG_QEMU) += arch/mips/qemu/ |
diff --git a/arch/mips/arc/identify.c b/arch/mips/arc/identify.c index 1bd6199e174a..3ba7c47f9f23 100644 --- a/arch/mips/arc/identify.c +++ b/arch/mips/arc/identify.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * | 11 | * |
12 | * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) | 12 | * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/types.h> | 16 | #include <linux/types.h> |
diff --git a/arch/mips/au1000/common/au1xxx_irqmap.c b/arch/mips/au1000/common/au1xxx_irqmap.c index 5a1e3687cafa..7acfe9bf5fc3 100644 --- a/arch/mips/au1000/common/au1xxx_irqmap.c +++ b/arch/mips/au1000/common/au1xxx_irqmap.c | |||
@@ -25,7 +25,6 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/config.h> | ||
29 | #include <linux/errno.h> | 28 | #include <linux/errno.h> |
30 | #include <linux/init.h> | 29 | #include <linux/init.h> |
31 | #include <linux/irq.h> | 30 | #include <linux/irq.h> |
diff --git a/arch/mips/au1000/common/dbdma.c b/arch/mips/au1000/common/dbdma.c index 6ee090bd86c9..98244d51c154 100644 --- a/arch/mips/au1000/common/dbdma.c +++ b/arch/mips/au1000/common/dbdma.c | |||
@@ -30,7 +30,6 @@ | |||
30 | * | 30 | * |
31 | */ | 31 | */ |
32 | 32 | ||
33 | #include <linux/config.h> | ||
34 | #include <linux/kernel.h> | 33 | #include <linux/kernel.h> |
35 | #include <linux/errno.h> | 34 | #include <linux/errno.h> |
36 | #include <linux/sched.h> | 35 | #include <linux/sched.h> |
@@ -290,7 +289,7 @@ au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid, | |||
290 | /* If kmalloc fails, it is caught below same | 289 | /* If kmalloc fails, it is caught below same |
291 | * as a channel not available. | 290 | * as a channel not available. |
292 | */ | 291 | */ |
293 | ctp = kmalloc(sizeof(chan_tab_t), GFP_KERNEL); | 292 | ctp = kmalloc(sizeof(chan_tab_t), GFP_ATOMIC); |
294 | chan_tab_ptr[i] = ctp; | 293 | chan_tab_ptr[i] = ctp; |
295 | break; | 294 | break; |
296 | } | 295 | } |
@@ -730,6 +729,8 @@ au1xxx_dbdma_get_dest(u32 chanid, void **buf, int *nbytes) | |||
730 | return rv; | 729 | return rv; |
731 | } | 730 | } |
732 | 731 | ||
732 | EXPORT_SYMBOL_GPL(au1xxx_dbdma_get_dest); | ||
733 | |||
733 | void | 734 | void |
734 | au1xxx_dbdma_stop(u32 chanid) | 735 | au1xxx_dbdma_stop(u32 chanid) |
735 | { | 736 | { |
@@ -821,6 +822,8 @@ au1xxx_get_dma_residue(u32 chanid) | |||
821 | return rv; | 822 | return rv; |
822 | } | 823 | } |
823 | 824 | ||
825 | EXPORT_SYMBOL_GPL(au1xxx_get_dma_residue); | ||
826 | |||
824 | void | 827 | void |
825 | au1xxx_dbdma_chan_free(u32 chanid) | 828 | au1xxx_dbdma_chan_free(u32 chanid) |
826 | { | 829 | { |
@@ -889,7 +892,7 @@ static void au1xxx_dbdma_init(void) | |||
889 | #error Unknown Au1x00 SOC | 892 | #error Unknown Au1x00 SOC |
890 | #endif | 893 | #endif |
891 | 894 | ||
892 | if (request_irq(irq_nr, dbdma_interrupt, SA_INTERRUPT, | 895 | if (request_irq(irq_nr, dbdma_interrupt, IRQF_DISABLED, |
893 | "Au1xxx dbdma", (void *)dbdma_gptr)) | 896 | "Au1xxx dbdma", (void *)dbdma_gptr)) |
894 | printk("Can't get 1550 dbdma irq"); | 897 | printk("Can't get 1550 dbdma irq"); |
895 | } | 898 | } |
diff --git a/arch/mips/au1000/common/dbg_io.c b/arch/mips/au1000/common/dbg_io.c index 7bc768e558db..0a50af7f34b8 100644 --- a/arch/mips/au1000/common/dbg_io.c +++ b/arch/mips/au1000/common/dbg_io.c | |||
@@ -1,5 +1,4 @@ | |||
1 | 1 | ||
2 | #include <linux/config.h> | ||
3 | #include <asm/io.h> | 2 | #include <asm/io.h> |
4 | #include <asm/mach-au1x00/au1000.h> | 3 | #include <asm/mach-au1x00/au1000.h> |
5 | 4 | ||
diff --git a/arch/mips/au1000/common/dma.c b/arch/mips/au1000/common/dma.c index 1d82f2277517..fb7c47c1585d 100644 --- a/arch/mips/au1000/common/dma.c +++ b/arch/mips/au1000/common/dma.c | |||
@@ -30,7 +30,6 @@ | |||
30 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 30 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
31 | * | 31 | * |
32 | */ | 32 | */ |
33 | #include <linux/config.h> | ||
34 | #include <linux/module.h> | 33 | #include <linux/module.h> |
35 | #include <linux/kernel.h> | 34 | #include <linux/kernel.h> |
36 | #include <linux/errno.h> | 35 | #include <linux/errno.h> |
diff --git a/arch/mips/au1000/common/gpio.c b/arch/mips/au1000/common/gpio.c index 5f5915b83142..ce55297dcb8c 100644 --- a/arch/mips/au1000/common/gpio.c +++ b/arch/mips/au1000/common/gpio.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * with this program; if not, write to the Free Software Foundation, Inc., | 19 | * with this program; if not, write to the Free Software Foundation, Inc., |
20 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 20 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
21 | */ | 21 | */ |
22 | #include <linux/config.h> | ||
23 | #include <linux/module.h> | 22 | #include <linux/module.h> |
24 | #include <au1000.h> | 23 | #include <au1000.h> |
25 | #include <au1xxx_gpio.h> | 24 | #include <au1xxx_gpio.h> |
diff --git a/arch/mips/au1000/common/irq.c b/arch/mips/au1000/common/irq.c index afe05ec12c27..29d6f8178bad 100644 --- a/arch/mips/au1000/common/irq.c +++ b/arch/mips/au1000/common/irq.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * with this program; if not, write to the Free Software Foundation, Inc., | 26 | * with this program; if not, write to the Free Software Foundation, Inc., |
27 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 27 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
28 | */ | 28 | */ |
29 | #include <linux/config.h> | ||
30 | #include <linux/errno.h> | 29 | #include <linux/errno.h> |
31 | #include <linux/init.h> | 30 | #include <linux/init.h> |
32 | #include <linux/irq.h> | 31 | #include <linux/irq.h> |
@@ -310,7 +309,7 @@ void startup_match20_interrupt(irqreturn_t (*handler)(int, void *, struct pt_reg | |||
310 | * can avoid it. --cgray | 309 | * can avoid it. --cgray |
311 | */ | 310 | */ |
312 | action.dev_id = handler; | 311 | action.dev_id = handler; |
313 | action.flags = SA_INTERRUPT; | 312 | action.flags = IRQF_DISABLED; |
314 | cpus_clear(action.mask); | 313 | cpus_clear(action.mask); |
315 | action.name = "Au1xxx TOY"; | 314 | action.name = "Au1xxx TOY"; |
316 | action.handler = handler; | 315 | action.handler = handler; |
@@ -333,31 +332,31 @@ static void setup_local_irq(unsigned int irq_nr, int type, int int_req) | |||
333 | au_writel(1<<(irq_nr-32), IC1_CFG2CLR); | 332 | au_writel(1<<(irq_nr-32), IC1_CFG2CLR); |
334 | au_writel(1<<(irq_nr-32), IC1_CFG1CLR); | 333 | au_writel(1<<(irq_nr-32), IC1_CFG1CLR); |
335 | au_writel(1<<(irq_nr-32), IC1_CFG0SET); | 334 | au_writel(1<<(irq_nr-32), IC1_CFG0SET); |
336 | irq_desc[irq_nr].handler = &rise_edge_irq_type; | 335 | irq_desc[irq_nr].chip = &rise_edge_irq_type; |
337 | break; | 336 | break; |
338 | case INTC_INT_FALL_EDGE: /* 0:1:0 */ | 337 | case INTC_INT_FALL_EDGE: /* 0:1:0 */ |
339 | au_writel(1<<(irq_nr-32), IC1_CFG2CLR); | 338 | au_writel(1<<(irq_nr-32), IC1_CFG2CLR); |
340 | au_writel(1<<(irq_nr-32), IC1_CFG1SET); | 339 | au_writel(1<<(irq_nr-32), IC1_CFG1SET); |
341 | au_writel(1<<(irq_nr-32), IC1_CFG0CLR); | 340 | au_writel(1<<(irq_nr-32), IC1_CFG0CLR); |
342 | irq_desc[irq_nr].handler = &fall_edge_irq_type; | 341 | irq_desc[irq_nr].chip = &fall_edge_irq_type; |
343 | break; | 342 | break; |
344 | case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */ | 343 | case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */ |
345 | au_writel(1<<(irq_nr-32), IC1_CFG2CLR); | 344 | au_writel(1<<(irq_nr-32), IC1_CFG2CLR); |
346 | au_writel(1<<(irq_nr-32), IC1_CFG1SET); | 345 | au_writel(1<<(irq_nr-32), IC1_CFG1SET); |
347 | au_writel(1<<(irq_nr-32), IC1_CFG0SET); | 346 | au_writel(1<<(irq_nr-32), IC1_CFG0SET); |
348 | irq_desc[irq_nr].handler = &either_edge_irq_type; | 347 | irq_desc[irq_nr].chip = &either_edge_irq_type; |
349 | break; | 348 | break; |
350 | case INTC_INT_HIGH_LEVEL: /* 1:0:1 */ | 349 | case INTC_INT_HIGH_LEVEL: /* 1:0:1 */ |
351 | au_writel(1<<(irq_nr-32), IC1_CFG2SET); | 350 | au_writel(1<<(irq_nr-32), IC1_CFG2SET); |
352 | au_writel(1<<(irq_nr-32), IC1_CFG1CLR); | 351 | au_writel(1<<(irq_nr-32), IC1_CFG1CLR); |
353 | au_writel(1<<(irq_nr-32), IC1_CFG0SET); | 352 | au_writel(1<<(irq_nr-32), IC1_CFG0SET); |
354 | irq_desc[irq_nr].handler = &level_irq_type; | 353 | irq_desc[irq_nr].chip = &level_irq_type; |
355 | break; | 354 | break; |
356 | case INTC_INT_LOW_LEVEL: /* 1:1:0 */ | 355 | case INTC_INT_LOW_LEVEL: /* 1:1:0 */ |
357 | au_writel(1<<(irq_nr-32), IC1_CFG2SET); | 356 | au_writel(1<<(irq_nr-32), IC1_CFG2SET); |
358 | au_writel(1<<(irq_nr-32), IC1_CFG1SET); | 357 | au_writel(1<<(irq_nr-32), IC1_CFG1SET); |
359 | au_writel(1<<(irq_nr-32), IC1_CFG0CLR); | 358 | au_writel(1<<(irq_nr-32), IC1_CFG0CLR); |
360 | irq_desc[irq_nr].handler = &level_irq_type; | 359 | irq_desc[irq_nr].chip = &level_irq_type; |
361 | break; | 360 | break; |
362 | case INTC_INT_DISABLED: /* 0:0:0 */ | 361 | case INTC_INT_DISABLED: /* 0:0:0 */ |
363 | au_writel(1<<(irq_nr-32), IC1_CFG0CLR); | 362 | au_writel(1<<(irq_nr-32), IC1_CFG0CLR); |
@@ -385,31 +384,31 @@ static void setup_local_irq(unsigned int irq_nr, int type, int int_req) | |||
385 | au_writel(1<<irq_nr, IC0_CFG2CLR); | 384 | au_writel(1<<irq_nr, IC0_CFG2CLR); |
386 | au_writel(1<<irq_nr, IC0_CFG1CLR); | 385 | au_writel(1<<irq_nr, IC0_CFG1CLR); |
387 | au_writel(1<<irq_nr, IC0_CFG0SET); | 386 | au_writel(1<<irq_nr, IC0_CFG0SET); |
388 | irq_desc[irq_nr].handler = &rise_edge_irq_type; | 387 | irq_desc[irq_nr].chip = &rise_edge_irq_type; |
389 | break; | 388 | break; |
390 | case INTC_INT_FALL_EDGE: /* 0:1:0 */ | 389 | case INTC_INT_FALL_EDGE: /* 0:1:0 */ |
391 | au_writel(1<<irq_nr, IC0_CFG2CLR); | 390 | au_writel(1<<irq_nr, IC0_CFG2CLR); |
392 | au_writel(1<<irq_nr, IC0_CFG1SET); | 391 | au_writel(1<<irq_nr, IC0_CFG1SET); |
393 | au_writel(1<<irq_nr, IC0_CFG0CLR); | 392 | au_writel(1<<irq_nr, IC0_CFG0CLR); |
394 | irq_desc[irq_nr].handler = &fall_edge_irq_type; | 393 | irq_desc[irq_nr].chip = &fall_edge_irq_type; |
395 | break; | 394 | break; |
396 | case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */ | 395 | case INTC_INT_RISE_AND_FALL_EDGE: /* 0:1:1 */ |
397 | au_writel(1<<irq_nr, IC0_CFG2CLR); | 396 | au_writel(1<<irq_nr, IC0_CFG2CLR); |
398 | au_writel(1<<irq_nr, IC0_CFG1SET); | 397 | au_writel(1<<irq_nr, IC0_CFG1SET); |
399 | au_writel(1<<irq_nr, IC0_CFG0SET); | 398 | au_writel(1<<irq_nr, IC0_CFG0SET); |
400 | irq_desc[irq_nr].handler = &either_edge_irq_type; | 399 | irq_desc[irq_nr].chip = &either_edge_irq_type; |
401 | break; | 400 | break; |
402 | case INTC_INT_HIGH_LEVEL: /* 1:0:1 */ | 401 | case INTC_INT_HIGH_LEVEL: /* 1:0:1 */ |
403 | au_writel(1<<irq_nr, IC0_CFG2SET); | 402 | au_writel(1<<irq_nr, IC0_CFG2SET); |
404 | au_writel(1<<irq_nr, IC0_CFG1CLR); | 403 | au_writel(1<<irq_nr, IC0_CFG1CLR); |
405 | au_writel(1<<irq_nr, IC0_CFG0SET); | 404 | au_writel(1<<irq_nr, IC0_CFG0SET); |
406 | irq_desc[irq_nr].handler = &level_irq_type; | 405 | irq_desc[irq_nr].chip = &level_irq_type; |
407 | break; | 406 | break; |
408 | case INTC_INT_LOW_LEVEL: /* 1:1:0 */ | 407 | case INTC_INT_LOW_LEVEL: /* 1:1:0 */ |
409 | au_writel(1<<irq_nr, IC0_CFG2SET); | 408 | au_writel(1<<irq_nr, IC0_CFG2SET); |
410 | au_writel(1<<irq_nr, IC0_CFG1SET); | 409 | au_writel(1<<irq_nr, IC0_CFG1SET); |
411 | au_writel(1<<irq_nr, IC0_CFG0CLR); | 410 | au_writel(1<<irq_nr, IC0_CFG0CLR); |
412 | irq_desc[irq_nr].handler = &level_irq_type; | 411 | irq_desc[irq_nr].chip = &level_irq_type; |
413 | break; | 412 | break; |
414 | case INTC_INT_DISABLED: /* 0:0:0 */ | 413 | case INTC_INT_DISABLED: /* 0:0:0 */ |
415 | au_writel(1<<irq_nr, IC0_CFG0CLR); | 414 | au_writel(1<<irq_nr, IC0_CFG0CLR); |
@@ -585,13 +584,13 @@ void intc1_req1_irqdispatch(struct pt_regs *regs) | |||
585 | * au_sleep function in power.c.....maybe I should just pm_register() | 584 | * au_sleep function in power.c.....maybe I should just pm_register() |
586 | * them instead? | 585 | * them instead? |
587 | */ | 586 | */ |
588 | static uint sleep_intctl_config0[2]; | 587 | static unsigned int sleep_intctl_config0[2]; |
589 | static uint sleep_intctl_config1[2]; | 588 | static unsigned int sleep_intctl_config1[2]; |
590 | static uint sleep_intctl_config2[2]; | 589 | static unsigned int sleep_intctl_config2[2]; |
591 | static uint sleep_intctl_src[2]; | 590 | static unsigned int sleep_intctl_src[2]; |
592 | static uint sleep_intctl_assign[2]; | 591 | static unsigned int sleep_intctl_assign[2]; |
593 | static uint sleep_intctl_wake[2]; | 592 | static unsigned int sleep_intctl_wake[2]; |
594 | static uint sleep_intctl_mask[2]; | 593 | static unsigned int sleep_intctl_mask[2]; |
595 | 594 | ||
596 | void | 595 | void |
597 | save_au1xxx_intctl(void) | 596 | save_au1xxx_intctl(void) |
diff --git a/arch/mips/au1000/common/pci.c b/arch/mips/au1000/common/pci.c index b1392abac809..da591f674893 100644 --- a/arch/mips/au1000/common/pci.c +++ b/arch/mips/au1000/common/pci.c | |||
@@ -30,7 +30,6 @@ | |||
30 | * with this program; if not, write to the Free Software Foundation, Inc., | 30 | * with this program; if not, write to the Free Software Foundation, Inc., |
31 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 31 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
32 | */ | 32 | */ |
33 | #include <linux/config.h> | ||
34 | #include <linux/types.h> | 33 | #include <linux/types.h> |
35 | #include <linux/pci.h> | 34 | #include <linux/pci.h> |
36 | #include <linux/kernel.h> | 35 | #include <linux/kernel.h> |
diff --git a/arch/mips/au1000/common/platform.c b/arch/mips/au1000/common/platform.c index 32702e5fbf67..8fd203d4a339 100644 --- a/arch/mips/au1000/common/platform.c +++ b/arch/mips/au1000/common/platform.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * License version 2. This program is licensed "as is" without any | 7 | * License version 2. This program is licensed "as is" without any |
8 | * warranty of any kind, whether express or implied. | 8 | * warranty of any kind, whether express or implied. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/device.h> | 10 | #include <linux/device.h> |
12 | #include <linux/platform_device.h> | 11 | #include <linux/platform_device.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
diff --git a/arch/mips/au1000/common/power.c b/arch/mips/au1000/common/power.c index f4926315fb68..7504a6364616 100644 --- a/arch/mips/au1000/common/power.c +++ b/arch/mips/au1000/common/power.c | |||
@@ -29,7 +29,6 @@ | |||
29 | * with this program; if not, write to the Free Software Foundation, Inc., | 29 | * with this program; if not, write to the Free Software Foundation, Inc., |
30 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 30 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
31 | */ | 31 | */ |
32 | #include <linux/config.h> | ||
33 | #include <linux/init.h> | 32 | #include <linux/init.h> |
34 | #include <linux/pm.h> | 33 | #include <linux/pm.h> |
35 | #include <linux/pm_legacy.h> | 34 | #include <linux/pm_legacy.h> |
@@ -80,17 +79,17 @@ static DEFINE_SPINLOCK(pm_lock); | |||
80 | * We only have to save/restore registers that aren't otherwise | 79 | * We only have to save/restore registers that aren't otherwise |
81 | * done as part of a driver pm_* function. | 80 | * done as part of a driver pm_* function. |
82 | */ | 81 | */ |
83 | static uint sleep_aux_pll_cntrl; | 82 | static unsigned int sleep_aux_pll_cntrl; |
84 | static uint sleep_cpu_pll_cntrl; | 83 | static unsigned int sleep_cpu_pll_cntrl; |
85 | static uint sleep_pin_function; | 84 | static unsigned int sleep_pin_function; |
86 | static uint sleep_uart0_inten; | 85 | static unsigned int sleep_uart0_inten; |
87 | static uint sleep_uart0_fifoctl; | 86 | static unsigned int sleep_uart0_fifoctl; |
88 | static uint sleep_uart0_linectl; | 87 | static unsigned int sleep_uart0_linectl; |
89 | static uint sleep_uart0_clkdiv; | 88 | static unsigned int sleep_uart0_clkdiv; |
90 | static uint sleep_uart0_enable; | 89 | static unsigned int sleep_uart0_enable; |
91 | static uint sleep_usbhost_enable; | 90 | static unsigned int sleep_usbhost_enable; |
92 | static uint sleep_usbdev_enable; | 91 | static unsigned int sleep_usbdev_enable; |
93 | static uint sleep_static_memctlr[4][3]; | 92 | static unsigned int sleep_static_memctlr[4][3]; |
94 | 93 | ||
95 | /* Define this to cause the value you write to /proc/sys/pm/sleep to | 94 | /* Define this to cause the value you write to /proc/sys/pm/sleep to |
96 | * set the TOY timer for the amount of time you want to sleep. | 95 | * set the TOY timer for the amount of time you want to sleep. |
diff --git a/arch/mips/au1000/common/reset.c b/arch/mips/au1000/common/reset.c index c93af224c1b3..de5447e83849 100644 --- a/arch/mips/au1000/common/reset.c +++ b/arch/mips/au1000/common/reset.c | |||
@@ -27,7 +27,6 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | #include <linux/config.h> | ||
31 | #include <linux/sched.h> | 30 | #include <linux/sched.h> |
32 | #include <linux/mm.h> | 31 | #include <linux/mm.h> |
33 | #include <asm/io.h> | 32 | #include <asm/io.h> |
diff --git a/arch/mips/au1000/common/setup.c b/arch/mips/au1000/common/setup.c index 97165b6b3894..cc5138ce9c95 100644 --- a/arch/mips/au1000/common/setup.c +++ b/arch/mips/au1000/common/setup.c | |||
@@ -25,7 +25,6 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/config.h> | ||
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
30 | #include <linux/sched.h> | 29 | #include <linux/sched.h> |
31 | #include <linux/ioport.h> | 30 | #include <linux/ioport.h> |
diff --git a/arch/mips/au1000/common/time.c b/arch/mips/au1000/common/time.c index 842e1b5ac4a1..7e988b0b0130 100644 --- a/arch/mips/au1000/common/time.c +++ b/arch/mips/au1000/common/time.c | |||
@@ -33,7 +33,6 @@ | |||
33 | */ | 33 | */ |
34 | 34 | ||
35 | #include <linux/types.h> | 35 | #include <linux/types.h> |
36 | #include <linux/config.h> | ||
37 | #include <linux/init.h> | 36 | #include <linux/init.h> |
38 | #include <linux/kernel_stat.h> | 37 | #include <linux/kernel_stat.h> |
39 | #include <linux/sched.h> | 38 | #include <linux/sched.h> |
diff --git a/arch/mips/au1000/common/usbdev.c b/arch/mips/au1000/common/usbdev.c index 2cab7629702c..63bcb3a95dc7 100644 --- a/arch/mips/au1000/common/usbdev.c +++ b/arch/mips/au1000/common/usbdev.c | |||
@@ -1465,14 +1465,14 @@ usbdev_init(struct usb_device_descriptor* dev_desc, | |||
1465 | */ | 1465 | */ |
1466 | 1466 | ||
1467 | /* request the USB device transfer complete interrupt */ | 1467 | /* request the USB device transfer complete interrupt */ |
1468 | if (request_irq(AU1000_USB_DEV_REQ_INT, req_sus_intr, SA_INTERRUPT, | 1468 | if (request_irq(AU1000_USB_DEV_REQ_INT, req_sus_intr, IRQF_DISABLED, |
1469 | "USBdev req", &usbdev)) { | 1469 | "USBdev req", &usbdev)) { |
1470 | err("Can't get device request intr"); | 1470 | err("Can't get device request intr"); |
1471 | ret = -ENXIO; | 1471 | ret = -ENXIO; |
1472 | goto out; | 1472 | goto out; |
1473 | } | 1473 | } |
1474 | /* request the USB device suspend interrupt */ | 1474 | /* request the USB device suspend interrupt */ |
1475 | if (request_irq(AU1000_USB_DEV_SUS_INT, req_sus_intr, SA_INTERRUPT, | 1475 | if (request_irq(AU1000_USB_DEV_SUS_INT, req_sus_intr, IRQF_DISABLED, |
1476 | "USBdev sus", &usbdev)) { | 1476 | "USBdev sus", &usbdev)) { |
1477 | err("Can't get device suspend intr"); | 1477 | err("Can't get device suspend intr"); |
1478 | ret = -ENXIO; | 1478 | ret = -ENXIO; |
@@ -1483,7 +1483,7 @@ usbdev_init(struct usb_device_descriptor* dev_desc, | |||
1483 | if ((ep0->indma = request_au1000_dma(ep_dma_id[0].id, | 1483 | if ((ep0->indma = request_au1000_dma(ep_dma_id[0].id, |
1484 | ep_dma_id[0].str, | 1484 | ep_dma_id[0].str, |
1485 | dma_done_ep0_intr, | 1485 | dma_done_ep0_intr, |
1486 | SA_INTERRUPT, | 1486 | IRQF_DISABLED, |
1487 | &usbdev)) < 0) { | 1487 | &usbdev)) < 0) { |
1488 | err("Can't get %s DMA", ep_dma_id[0].str); | 1488 | err("Can't get %s DMA", ep_dma_id[0].str); |
1489 | ret = -ENXIO; | 1489 | ret = -ENXIO; |
@@ -1516,7 +1516,7 @@ usbdev_init(struct usb_device_descriptor* dev_desc, | |||
1516 | request_au1000_dma(ep_dma_id[ep->address].id, | 1516 | request_au1000_dma(ep_dma_id[ep->address].id, |
1517 | ep_dma_id[ep->address].str, | 1517 | ep_dma_id[ep->address].str, |
1518 | dma_done_ep_intr, | 1518 | dma_done_ep_intr, |
1519 | SA_INTERRUPT, | 1519 | IRQF_DISABLED, |
1520 | &usbdev); | 1520 | &usbdev); |
1521 | if (ep->indma < 0) { | 1521 | if (ep->indma < 0) { |
1522 | err("Can't get %s DMA", | 1522 | err("Can't get %s DMA", |
diff --git a/arch/mips/au1000/csb250/board_setup.c b/arch/mips/au1000/csb250/board_setup.c index 1c55c5f59d75..348c3024d3d1 100644 --- a/arch/mips/au1000/csb250/board_setup.c +++ b/arch/mips/au1000/csb250/board_setup.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * with this program; if not, write to the Free Software Foundation, Inc., | 26 | * with this program; if not, write to the Free Software Foundation, Inc., |
27 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 27 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
28 | */ | 28 | */ |
29 | #include <linux/config.h> | ||
30 | #include <linux/init.h> | 29 | #include <linux/init.h> |
31 | #include <linux/sched.h> | 30 | #include <linux/sched.h> |
32 | #include <linux/ioport.h> | 31 | #include <linux/ioport.h> |
diff --git a/arch/mips/au1000/csb250/init.c b/arch/mips/au1000/csb250/init.c index a4898b1bc66a..83f1b31a0b8e 100644 --- a/arch/mips/au1000/csb250/init.c +++ b/arch/mips/au1000/csb250/init.c | |||
@@ -65,9 +65,9 @@ int __init prom_init(int argc, char **argv, char **envp, int *prom_vec) | |||
65 | 65 | ||
66 | /* We use a0 and a1 to pass initrd start and size. | 66 | /* We use a0 and a1 to pass initrd start and size. |
67 | */ | 67 | */ |
68 | if (((uint) argc > 0) && ((uint)argv > 0)) { | 68 | if (((unsigned int) argc > 0) && ((uint)argv > 0)) { |
69 | my_initrd_start = (uint)argc; | 69 | my_initrd_start = (unsigned int)argc; |
70 | my_initrd_size = (uint)argv; | 70 | my_initrd_size = (unsigned int)argv; |
71 | } | 71 | } |
72 | 72 | ||
73 | /* First argv is ignored. | 73 | /* First argv is ignored. |
diff --git a/arch/mips/au1000/db1x00/board_setup.c b/arch/mips/au1000/db1x00/board_setup.c index f00ec3b175d8..7a79293f8527 100644 --- a/arch/mips/au1000/db1x00/board_setup.c +++ b/arch/mips/au1000/db1x00/board_setup.c | |||
@@ -27,7 +27,6 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | #include <linux/config.h> | ||
31 | #include <linux/init.h> | 30 | #include <linux/init.h> |
32 | #include <linux/sched.h> | 31 | #include <linux/sched.h> |
33 | #include <linux/ioport.h> | 32 | #include <linux/ioport.h> |
diff --git a/arch/mips/au1000/db1x00/init.c b/arch/mips/au1000/db1x00/init.c index 41e0522f3cf1..0a3f025eb023 100644 --- a/arch/mips/au1000/db1x00/init.c +++ b/arch/mips/au1000/db1x00/init.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <linux/bootmem.h> | 33 | #include <linux/bootmem.h> |
34 | #include <asm/addrspace.h> | 34 | #include <asm/addrspace.h> |
35 | #include <asm/bootinfo.h> | 35 | #include <asm/bootinfo.h> |
36 | #include <linux/config.h> | ||
37 | #include <linux/string.h> | 36 | #include <linux/string.h> |
38 | #include <linux/kernel.h> | 37 | #include <linux/kernel.h> |
39 | 38 | ||
diff --git a/arch/mips/au1000/db1x00/irqmap.c b/arch/mips/au1000/db1x00/irqmap.c index 0138c5b7c860..3e5729145c2b 100644 --- a/arch/mips/au1000/db1x00/irqmap.c +++ b/arch/mips/au1000/db1x00/irqmap.c | |||
@@ -25,7 +25,6 @@ | |||
25 | * with this program; if not, write to the Free Software Foundation, Inc., | 25 | * with this program; if not, write to the Free Software Foundation, Inc., |
26 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | */ | 27 | */ |
28 | #include <linux/config.h> | ||
29 | #include <linux/errno.h> | 28 | #include <linux/errno.h> |
30 | #include <linux/init.h> | 29 | #include <linux/init.h> |
31 | #include <linux/irq.h> | 30 | #include <linux/irq.h> |
diff --git a/arch/mips/au1000/db1x00/mirage_ts.c b/arch/mips/au1000/db1x00/mirage_ts.c index c29852c24b4f..0942dcf69518 100644 --- a/arch/mips/au1000/db1x00/mirage_ts.c +++ b/arch/mips/au1000/db1x00/mirage_ts.c | |||
@@ -31,7 +31,6 @@ | |||
31 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 31 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <linux/config.h> | ||
35 | #include <linux/types.h> | 34 | #include <linux/types.h> |
36 | #include <linux/module.h> | 35 | #include <linux/module.h> |
37 | #include <linux/sched.h> | 36 | #include <linux/sched.h> |
diff --git a/arch/mips/au1000/hydrogen3/board_setup.c b/arch/mips/au1000/hydrogen3/board_setup.c index 2efae1064647..d081640e2e00 100644 --- a/arch/mips/au1000/hydrogen3/board_setup.c +++ b/arch/mips/au1000/hydrogen3/board_setup.c | |||
@@ -27,7 +27,6 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | #include <linux/config.h> | ||
31 | #include <linux/init.h> | 30 | #include <linux/init.h> |
32 | #include <linux/sched.h> | 31 | #include <linux/sched.h> |
33 | #include <linux/ioport.h> | 32 | #include <linux/ioport.h> |
diff --git a/arch/mips/au1000/hydrogen3/init.c b/arch/mips/au1000/hydrogen3/init.c index 01ab28483959..8f02bb80a55a 100644 --- a/arch/mips/au1000/hydrogen3/init.c +++ b/arch/mips/au1000/hydrogen3/init.c | |||
@@ -34,7 +34,6 @@ | |||
34 | #include <linux/bootmem.h> | 34 | #include <linux/bootmem.h> |
35 | #include <asm/addrspace.h> | 35 | #include <asm/addrspace.h> |
36 | #include <asm/bootinfo.h> | 36 | #include <asm/bootinfo.h> |
37 | #include <linux/config.h> | ||
38 | #include <linux/string.h> | 37 | #include <linux/string.h> |
39 | #include <linux/kernel.h> | 38 | #include <linux/kernel.h> |
40 | 39 | ||
diff --git a/arch/mips/au1000/mtx-1/board_setup.c b/arch/mips/au1000/mtx-1/board_setup.c index 638de7bb43f0..e917e54fc683 100644 --- a/arch/mips/au1000/mtx-1/board_setup.c +++ b/arch/mips/au1000/mtx-1/board_setup.c | |||
@@ -28,7 +28,6 @@ | |||
28 | * with this program; if not, write to the Free Software Foundation, Inc., | 28 | * with this program; if not, write to the Free Software Foundation, Inc., |
29 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 29 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
30 | */ | 30 | */ |
31 | #include <linux/config.h> | ||
32 | #include <linux/init.h> | 31 | #include <linux/init.h> |
33 | #include <linux/sched.h> | 32 | #include <linux/sched.h> |
34 | #include <linux/ioport.h> | 33 | #include <linux/ioport.h> |
diff --git a/arch/mips/au1000/pb1000/board_setup.c b/arch/mips/au1000/pb1000/board_setup.c index 0b4807dc9f44..1cf18e16ab54 100644 --- a/arch/mips/au1000/pb1000/board_setup.c +++ b/arch/mips/au1000/pb1000/board_setup.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
29 | #include <linux/ioport.h> | 28 | #include <linux/ioport.h> |
diff --git a/arch/mips/au1000/pb1100/board_setup.c b/arch/mips/au1000/pb1100/board_setup.c index 13c2f6ca7e33..db27b9331ff3 100644 --- a/arch/mips/au1000/pb1100/board_setup.c +++ b/arch/mips/au1000/pb1100/board_setup.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
29 | #include <linux/ioport.h> | 28 | #include <linux/ioport.h> |
diff --git a/arch/mips/au1000/pb1200/board_setup.c b/arch/mips/au1000/pb1200/board_setup.c index a45b17538ac9..8b953b9fc25c 100644 --- a/arch/mips/au1000/pb1200/board_setup.c +++ b/arch/mips/au1000/pb1200/board_setup.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
29 | #include <linux/ioport.h> | 28 | #include <linux/ioport.h> |
diff --git a/arch/mips/au1000/pb1200/irqmap.c b/arch/mips/au1000/pb1200/irqmap.c index bacc0c6bfe67..2d49f32f4622 100644 --- a/arch/mips/au1000/pb1200/irqmap.c +++ b/arch/mips/au1000/pb1200/irqmap.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * with this program; if not, write to the Free Software Foundation, Inc., | 22 | * with this program; if not, write to the Free Software Foundation, Inc., |
23 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 23 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/errno.h> | 25 | #include <linux/errno.h> |
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/irq.h> | 27 | #include <linux/irq.h> |
@@ -172,7 +171,7 @@ void _board_init_irq(void) | |||
172 | 171 | ||
173 | for (irq_nr = PB1200_INT_BEGIN; irq_nr <= PB1200_INT_END; irq_nr++) | 172 | for (irq_nr = PB1200_INT_BEGIN; irq_nr <= PB1200_INT_END; irq_nr++) |
174 | { | 173 | { |
175 | irq_desc[irq_nr].handler = &external_irq_type; | 174 | irq_desc[irq_nr].chip = &external_irq_type; |
176 | pb1200_disable_irq(irq_nr); | 175 | pb1200_disable_irq(irq_nr); |
177 | } | 176 | } |
178 | 177 | ||
diff --git a/arch/mips/au1000/pb1500/board_setup.c b/arch/mips/au1000/pb1500/board_setup.c index 30bb87282b1f..1a9a293de6ab 100644 --- a/arch/mips/au1000/pb1500/board_setup.c +++ b/arch/mips/au1000/pb1500/board_setup.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
29 | #include <linux/ioport.h> | 28 | #include <linux/ioport.h> |
diff --git a/arch/mips/au1000/xxs1500/board_setup.c b/arch/mips/au1000/xxs1500/board_setup.c index 1e59433dfd66..ae3d6b19e94d 100644 --- a/arch/mips/au1000/xxs1500/board_setup.c +++ b/arch/mips/au1000/xxs1500/board_setup.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
29 | #include <linux/ioport.h> | 28 | #include <linux/ioport.h> |
diff --git a/arch/mips/basler/excite/excite_iodev.c b/arch/mips/basler/excite/excite_iodev.c index 91121e523043..b288151b532e 100644 --- a/arch/mips/basler/excite/excite_iodev.c +++ b/arch/mips/basler/excite/excite_iodev.c | |||
@@ -113,7 +113,7 @@ static int __exit iodev_remove(struct device *dev) | |||
113 | 113 | ||
114 | static int iodev_open(struct inode *i, struct file *f) | 114 | static int iodev_open(struct inode *i, struct file *f) |
115 | { | 115 | { |
116 | return request_irq(iodev_irq, iodev_irqhdl, SA_INTERRUPT, | 116 | return request_irq(iodev_irq, iodev_irqhdl, IRQF_DISABLED, |
117 | iodev_name, &miscdev); | 117 | iodev_name, &miscdev); |
118 | } | 118 | } |
119 | 119 | ||
diff --git a/arch/mips/basler/excite/excite_setup.c b/arch/mips/basler/excite/excite_setup.c index 005b025605e6..3d7670edd5cd 100644 --- a/arch/mips/basler/excite/excite_setup.c +++ b/arch/mips/basler/excite/excite_setup.c | |||
@@ -254,7 +254,7 @@ static int __init excite_platform_init(void) | |||
254 | return 0; | 254 | return 0; |
255 | } | 255 | } |
256 | 256 | ||
257 | void __init plat_setup(void) | 257 | void __init plat_mem_setup(void) |
258 | { | 258 | { |
259 | volatile u32 * const boot_ocd_base = (u32 *) 0xbf7fc000; | 259 | volatile u32 * const boot_ocd_base = (u32 *) 0xbf7fc000; |
260 | 260 | ||
diff --git a/arch/mips/cobalt/console.c b/arch/mips/cobalt/console.c index 300797d5f558..46c23b66bc17 100644 --- a/arch/mips/cobalt/console.c +++ b/arch/mips/cobalt/console.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * (C) P. Horton 2006 | 2 | * (C) P. Horton 2006 |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/init.h> | 5 | #include <linux/init.h> |
7 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
8 | #include <linux/console.h> | 7 | #include <linux/console.h> |
diff --git a/arch/mips/cobalt/setup.c b/arch/mips/cobalt/setup.c index ca719d6398bd..c99714587ce8 100644 --- a/arch/mips/cobalt/setup.c +++ b/arch/mips/cobalt/setup.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv) | 9 | * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv) |
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
14 | #include <linux/pci.h> | 13 | #include <linux/pci.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/mips/ddb5xxx/common/prom.c b/arch/mips/ddb5xxx/common/prom.c index 00c62c1c28a3..efef0f57ce1e 100644 --- a/arch/mips/ddb5xxx/common/prom.c +++ b/arch/mips/ddb5xxx/common/prom.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Free Software Foundation; either version 2 of the License, or (at your | 7 | * Free Software Foundation; either version 2 of the License, or (at your |
8 | * option) any later version. | 8 | * option) any later version. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
@@ -21,8 +20,6 @@ | |||
21 | const char *get_system_type(void) | 20 | const char *get_system_type(void) |
22 | { | 21 | { |
23 | switch (mips_machtype) { | 22 | switch (mips_machtype) { |
24 | case MACH_NEC_DDB5074: return "NEC DDB Vrc-5074"; | ||
25 | case MACH_NEC_DDB5476: return "NEC DDB Vrc-5476"; | ||
26 | case MACH_NEC_DDB5477: return "NEC DDB Vrc-5477"; | 23 | case MACH_NEC_DDB5477: return "NEC DDB Vrc-5477"; |
27 | case MACH_NEC_ROCKHOPPER: return "NEC Rockhopper"; | 24 | case MACH_NEC_ROCKHOPPER: return "NEC Rockhopper"; |
28 | case MACH_NEC_ROCKHOPPERII: return "NEC RockhopperII"; | 25 | case MACH_NEC_ROCKHOPPERII: return "NEC RockhopperII"; |
diff --git a/arch/mips/ddb5xxx/ddb5477/irq.c b/arch/mips/ddb5xxx/ddb5477/irq.c index de433cf9fb50..22fb94b7c440 100644 --- a/arch/mips/ddb5xxx/ddb5477/irq.c +++ b/arch/mips/ddb5xxx/ddb5477/irq.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Free Software Foundation; either version 2 of the License, or (at your | 10 | * Free Software Foundation; either version 2 of the License, or (at your |
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
16 | #include <linux/irq.h> | 15 | #include <linux/irq.h> |
diff --git a/arch/mips/ddb5xxx/ddb5477/irq_5477.c b/arch/mips/ddb5xxx/ddb5477/irq_5477.c index 5fcd5f070cdc..63c3d6534b3a 100644 --- a/arch/mips/ddb5xxx/ddb5477/irq_5477.c +++ b/arch/mips/ddb5xxx/ddb5477/irq_5477.c | |||
@@ -107,7 +107,7 @@ void __init vrc5477_irq_init(u32 irq_base) | |||
107 | irq_desc[i].status = IRQ_DISABLED; | 107 | irq_desc[i].status = IRQ_DISABLED; |
108 | irq_desc[i].action = NULL; | 108 | irq_desc[i].action = NULL; |
109 | irq_desc[i].depth = 1; | 109 | irq_desc[i].depth = 1; |
110 | irq_desc[i].handler = &vrc5477_irq_controller; | 110 | irq_desc[i].chip = &vrc5477_irq_controller; |
111 | } | 111 | } |
112 | 112 | ||
113 | vrc5477_irq_base = irq_base; | 113 | vrc5477_irq_base = irq_base; |
diff --git a/arch/mips/ddb5xxx/ddb5477/setup.c b/arch/mips/ddb5xxx/ddb5477/setup.c index 93167ecdb424..47ba0b6f210f 100644 --- a/arch/mips/ddb5xxx/ddb5477/setup.c +++ b/arch/mips/ddb5xxx/ddb5477/setup.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * Free Software Foundation; either version 2 of the License, or (at your | 13 | * Free Software Foundation; either version 2 of the License, or (at your |
14 | * option) any later version. | 14 | * option) any later version. |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/types.h> | 18 | #include <linux/types.h> |
diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S index e8ec93e33fe6..455a65b91cb0 100644 --- a/arch/mips/dec/int-handler.S +++ b/arch/mips/dec/int-handler.S | |||
@@ -13,7 +13,6 @@ | |||
13 | * Rewritten extensively for controller-driven IRQ support | 13 | * Rewritten extensively for controller-driven IRQ support |
14 | * by Maciej W. Rozycki. | 14 | * by Maciej W. Rozycki. |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | 16 | ||
18 | #include <asm/addrspace.h> | 17 | #include <asm/addrspace.h> |
19 | #include <asm/asm.h> | 18 | #include <asm/asm.h> |
diff --git a/arch/mips/dec/ioasic-irq.c b/arch/mips/dec/ioasic-irq.c index d5bca5d233b6..da2dbb42f913 100644 --- a/arch/mips/dec/ioasic-irq.c +++ b/arch/mips/dec/ioasic-irq.c | |||
@@ -144,13 +144,13 @@ void __init init_ioasic_irqs(int base) | |||
144 | irq_desc[i].status = IRQ_DISABLED; | 144 | irq_desc[i].status = IRQ_DISABLED; |
145 | irq_desc[i].action = 0; | 145 | irq_desc[i].action = 0; |
146 | irq_desc[i].depth = 1; | 146 | irq_desc[i].depth = 1; |
147 | irq_desc[i].handler = &ioasic_irq_type; | 147 | irq_desc[i].chip = &ioasic_irq_type; |
148 | } | 148 | } |
149 | for (; i < base + IO_IRQ_LINES; i++) { | 149 | for (; i < base + IO_IRQ_LINES; i++) { |
150 | irq_desc[i].status = IRQ_DISABLED; | 150 | irq_desc[i].status = IRQ_DISABLED; |
151 | irq_desc[i].action = 0; | 151 | irq_desc[i].action = 0; |
152 | irq_desc[i].depth = 1; | 152 | irq_desc[i].depth = 1; |
153 | irq_desc[i].handler = &ioasic_dma_irq_type; | 153 | irq_desc[i].chip = &ioasic_dma_irq_type; |
154 | } | 154 | } |
155 | 155 | ||
156 | ioasic_irq_base = base; | 156 | ioasic_irq_base = base; |
diff --git a/arch/mips/dec/kn02-irq.c b/arch/mips/dec/kn02-irq.c index 898bed502a34..d44c00d9e80f 100644 --- a/arch/mips/dec/kn02-irq.c +++ b/arch/mips/dec/kn02-irq.c | |||
@@ -123,7 +123,7 @@ void __init init_kn02_irqs(int base) | |||
123 | irq_desc[i].status = IRQ_DISABLED; | 123 | irq_desc[i].status = IRQ_DISABLED; |
124 | irq_desc[i].action = 0; | 124 | irq_desc[i].action = 0; |
125 | irq_desc[i].depth = 1; | 125 | irq_desc[i].depth = 1; |
126 | irq_desc[i].handler = &kn02_irq_type; | 126 | irq_desc[i].chip = &kn02_irq_type; |
127 | } | 127 | } |
128 | 128 | ||
129 | kn02_irq_base = base; | 129 | kn02_irq_base = base; |
diff --git a/arch/mips/dec/prom/init.c b/arch/mips/dec/prom/init.c index 32a7cc7e4c65..bf2858071f1f 100644 --- a/arch/mips/dec/prom/init.c +++ b/arch/mips/dec/prom/init.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1998 Harald Koerfgen | 4 | * Copyright (C) 1998 Harald Koerfgen |
5 | * Copyright (C) 2002, 2004 Maciej W. Rozycki | 5 | * Copyright (C) 2002, 2004 Maciej W. Rozycki |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/linkage.h> | 9 | #include <linux/linkage.h> |
diff --git a/arch/mips/dec/prom/memory.c b/arch/mips/dec/prom/memory.c index 1edaf3074ee9..3027ce782797 100644 --- a/arch/mips/dec/prom/memory.c +++ b/arch/mips/dec/prom/memory.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1998 Harald Koerfgen, Frieder Streffer and Paul M. Antoine | 4 | * Copyright (C) 1998 Harald Koerfgen, Frieder Streffer and Paul M. Antoine |
5 | * Copyright (C) 2000, 2002 Maciej W. Rozycki | 5 | * Copyright (C) 2000, 2002 Maciej W. Rozycki |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
diff --git a/arch/mips/dec/setup.c b/arch/mips/dec/setup.c index 9c707b9ceb65..2684f121784b 100644 --- a/arch/mips/dec/setup.c +++ b/arch/mips/dec/setup.c | |||
@@ -105,7 +105,7 @@ static struct irqaction fpuirq = { | |||
105 | }; | 105 | }; |
106 | 106 | ||
107 | static struct irqaction busirq = { | 107 | static struct irqaction busirq = { |
108 | .flags = SA_INTERRUPT, | 108 | .flags = IRQF_DISABLED, |
109 | .name = "bus error", | 109 | .name = "bus error", |
110 | }; | 110 | }; |
111 | 111 | ||
@@ -124,7 +124,7 @@ static void __init dec_be_init(void) | |||
124 | case MACH_DS23100: /* DS2100/DS3100 Pmin/Pmax */ | 124 | case MACH_DS23100: /* DS2100/DS3100 Pmin/Pmax */ |
125 | board_be_handler = dec_kn01_be_handler; | 125 | board_be_handler = dec_kn01_be_handler; |
126 | busirq.handler = dec_kn01_be_interrupt; | 126 | busirq.handler = dec_kn01_be_interrupt; |
127 | busirq.flags |= SA_SHIRQ; | 127 | busirq.flags |= IRQF_SHARED; |
128 | dec_kn01_be_init(); | 128 | dec_kn01_be_init(); |
129 | break; | 129 | break; |
130 | case MACH_DS5000_1XX: /* DS5000/1xx 3min */ | 130 | case MACH_DS5000_1XX: /* DS5000/1xx 3min */ |
diff --git a/arch/mips/galileo-boards/ev96100/setup.c b/arch/mips/galileo-boards/ev96100/setup.c index a04aea6123da..639ad5562c63 100644 --- a/arch/mips/galileo-boards/ev96100/setup.c +++ b/arch/mips/galileo-boards/ev96100/setup.c | |||
@@ -32,7 +32,6 @@ | |||
32 | * with this program; if not, write to the Free Software Foundation, Inc., | 32 | * with this program; if not, write to the Free Software Foundation, Inc., |
33 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 33 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
34 | */ | 34 | */ |
35 | #include <linux/config.h> | ||
36 | #include <linux/init.h> | 35 | #include <linux/init.h> |
37 | #include <linux/sched.h> | 36 | #include <linux/sched.h> |
38 | #include <linux/ioport.h> | 37 | #include <linux/ioport.h> |
diff --git a/arch/mips/galileo-boards/ev96100/time.c b/arch/mips/galileo-boards/ev96100/time.c index bff5b1c174e4..8cbe8426491a 100644 --- a/arch/mips/galileo-boards/ev96100/time.c +++ b/arch/mips/galileo-boards/ev96100/time.c | |||
@@ -32,7 +32,6 @@ | |||
32 | * with this program; if not, write to the Free Software Foundation, Inc., | 32 | * with this program; if not, write to the Free Software Foundation, Inc., |
33 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 33 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
34 | */ | 34 | */ |
35 | #include <linux/config.h> | ||
36 | #include <linux/init.h> | 35 | #include <linux/init.h> |
37 | #include <linux/kernel_stat.h> | 36 | #include <linux/kernel_stat.h> |
38 | #include <linux/module.h> | 37 | #include <linux/module.h> |
diff --git a/arch/mips/gt64120/common/Makefile b/arch/mips/gt64120/common/Makefile index eba5051015a5..1ef676e22ab4 100644 --- a/arch/mips/gt64120/common/Makefile +++ b/arch/mips/gt64120/common/Makefile | |||
@@ -3,4 +3,3 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y += time.o | 5 | obj-y += time.o |
6 | obj-$(CONFIG_PCI) += pci.o | ||
diff --git a/arch/mips/gt64120/common/pci.c b/arch/mips/gt64120/common/pci.c deleted file mode 100644 index e9e5419a0d53..000000000000 --- a/arch/mips/gt64120/common/pci.c +++ /dev/null | |||
@@ -1,147 +0,0 @@ | |||
1 | /* | ||
2 | * BRIEF MODULE DESCRIPTION | ||
3 | * Galileo Evaluation Boards PCI support. | ||
4 | * | ||
5 | * The general-purpose functions to read/write and configure the GT64120A's | ||
6 | * PCI registers (function names start with pci0 or pci1) are either direct | ||
7 | * copies of functions written by Galileo Technology, or are modifications | ||
8 | * of their functions to work with Linux 2.4 vs Linux 2.2. These functions | ||
9 | * are Copyright - Galileo Technology. | ||
10 | * | ||
11 | * Other functions are derived from other MIPS PCI implementations, or were | ||
12 | * written by RidgeRun, Inc, Copyright (C) 2000 RidgeRun, Inc. | ||
13 | * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or modify it | ||
16 | * under the terms of the GNU General Public License as published by the | ||
17 | * Free Software Foundation; either version 2 of the License, or (at your | ||
18 | * option) any later version. | ||
19 | * | ||
20 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
21 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
22 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN | ||
23 | * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
24 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
25 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||
26 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||
27 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
28 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
29 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
30 | * | ||
31 | * You should have received a copy of the GNU General Public License along | ||
32 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
33 | * 675 Mass Ave, Cambridge, MA 02139, USA. | ||
34 | */ | ||
35 | #include <linux/init.h> | ||
36 | #include <linux/types.h> | ||
37 | #include <linux/pci.h> | ||
38 | #include <linux/kernel.h> | ||
39 | #include <asm/gt64120.h> | ||
40 | |||
41 | #define SELF 0 | ||
42 | |||
43 | /* | ||
44 | * pciXReadConfigReg - Read from a PCI configuration register | ||
45 | * - Make sure the GT is configured as a master before | ||
46 | * reading from another device on the PCI. | ||
47 | * - The function takes care of Big/Little endian conversion. | ||
48 | * INPUTS: regOffset: The register offset as it apears in the GT spec (or PCI | ||
49 | * spec) | ||
50 | * pciDevNum: The device number needs to be addressed. | ||
51 | * RETURNS: data , if the data == 0xffffffff check the master abort bit in the | ||
52 | * cause register to make sure the data is valid | ||
53 | * | ||
54 | * Configuration Address 0xCF8: | ||
55 | * | ||
56 | * 31 30 24 23 16 15 11 10 8 7 2 0 <=bit Number | ||
57 | * |congif|Reserved| Bus |Device|Function|Register|00| | ||
58 | * |Enable| |Number|Number| Number | Number | | <=field Name | ||
59 | * | ||
60 | */ | ||
61 | static unsigned int pci0ReadConfigReg(int offset, struct pci_dev *device) | ||
62 | { | ||
63 | unsigned int DataForRegCf8; | ||
64 | unsigned int data; | ||
65 | |||
66 | DataForRegCf8 = ((PCI_SLOT(device->devfn) << 11) | | ||
67 | (PCI_FUNC(device->devfn) << 8) | | ||
68 | (offset & ~0x3)) | 0x80000000; | ||
69 | GT_WRITE(GT_PCI0_CFGADDR_OFS, DataForRegCf8); | ||
70 | |||
71 | /* | ||
72 | * The casual observer might wonder why the READ is duplicated here, | ||
73 | * rather than immediately following the WRITE, and just have the swap | ||
74 | * in the "if". That's because there is a latency problem with trying | ||
75 | * to read immediately after setting up the address register. The "if" | ||
76 | * check gives enough time for the address to stabilize, so the READ | ||
77 | * can work. | ||
78 | */ | ||
79 | if (PCI_SLOT(device->devfn) == SELF) /* This board */ | ||
80 | return GT_READ(GT_PCI0_CFGDATA_OFS); | ||
81 | else /* PCI is little endian so swap the Data. */ | ||
82 | return __GT_READ(GT_PCI0_CFGDATA_OFS); | ||
83 | } | ||
84 | |||
85 | /* | ||
86 | * pciXWriteConfigReg - Write to a PCI configuration register | ||
87 | * - Make sure the GT is configured as a master before | ||
88 | * writingto another device on the PCI. | ||
89 | * - The function takes care of Big/Little endian conversion. | ||
90 | * Inputs: unsigned int regOffset: The register offset as it apears in the | ||
91 | * GT spec | ||
92 | * (or any other PCI device spec) | ||
93 | * pciDevNum: The device number needs to be addressed. | ||
94 | * | ||
95 | * Configuration Address 0xCF8: | ||
96 | * | ||
97 | * 31 30 24 23 16 15 11 10 8 7 2 0 <=bit Number | ||
98 | * |congif|Reserved| Bus |Device|Function|Register|00| | ||
99 | * |Enable| |Number|Number| Number | Number | | <=field Name | ||
100 | * | ||
101 | */ | ||
102 | static void pci0WriteConfigReg(unsigned int offset, | ||
103 | struct pci_dev *device, unsigned int data) | ||
104 | { | ||
105 | unsigned int DataForRegCf8; | ||
106 | |||
107 | DataForRegCf8 = ((PCI_SLOT(device->devfn) << 11) | | ||
108 | (PCI_FUNC(device->devfn) << 8) | | ||
109 | (offset & ~0x3)) | 0x80000000; | ||
110 | GT_WRITE(GT_PCI0_CFGADDR_OFS, DataForRegCf8); | ||
111 | |||
112 | if (PCI_SLOT(device->devfn) == SELF) /* This board */ | ||
113 | GT_WRITE(GT_PCI0_CFGDATA_OFS, data); | ||
114 | else /* configuration Transaction over the pci. */ | ||
115 | __GT_WRITE(GT_PCI0_CFGDATA_OFS, data); | ||
116 | } | ||
117 | |||
118 | extern struct pci_ops gt64120_pci_ops; | ||
119 | |||
120 | void __init pcibios_init(void) | ||
121 | { | ||
122 | u32 tmp; | ||
123 | struct pci_dev controller; | ||
124 | |||
125 | controller.devfn = SELF; | ||
126 | |||
127 | tmp = GT_READ(GT_PCI0_CMD_OFS); /* Huh??? -- Ralf */ | ||
128 | tmp = GT_READ(GT_PCI0_BARE_OFS); | ||
129 | |||
130 | /* | ||
131 | * You have to enable bus mastering to configure any other | ||
132 | * card on the bus. | ||
133 | */ | ||
134 | tmp = pci0ReadConfigReg(PCI_COMMAND, &controller); | ||
135 | tmp |= PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | PCI_COMMAND_SERR; | ||
136 | pci0WriteConfigReg(PCI_COMMAND, &controller, tmp); | ||
137 | |||
138 | /* | ||
139 | * Reset PCI I/O and PCI MEM values to ones supported by EVM. | ||
140 | */ | ||
141 | ioport_resource.start = GT_PCI_IO_BASE; | ||
142 | ioport_resource.end = GT_PCI_IO_BASE + GT_PCI_IO_SIZE - 1; | ||
143 | iomem_resource.start = GT_PCI_MEM_BASE; | ||
144 | iomem_resource.end = GT_PCI_MEM_BASE + GT_PCI_MEM_SIZE - 1; | ||
145 | |||
146 | pci_scan_bus(0, >64120_pci_ops, NULL); | ||
147 | } | ||
diff --git a/arch/mips/gt64120/common/time.c b/arch/mips/gt64120/common/time.c index 2287b59536e5..d837b26fbe51 100644 --- a/arch/mips/gt64120/common/time.c +++ b/arch/mips/gt64120/common/time.c | |||
@@ -8,7 +8,6 @@ | |||
8 | */ | 8 | */ |
9 | #include <linux/interrupt.h> | 9 | #include <linux/interrupt.h> |
10 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
11 | #include <linux/config.h> | ||
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/kernel_stat.h> | 12 | #include <linux/kernel_stat.h> |
14 | #include <asm/ptrace.h> | 13 | #include <asm/ptrace.h> |
@@ -78,7 +77,7 @@ void gt64120_time_init(void) | |||
78 | * the values to the correct interrupt line. | 77 | * the values to the correct interrupt line. |
79 | */ | 78 | */ |
80 | timer.handler = gt64120_irq; | 79 | timer.handler = gt64120_irq; |
81 | timer.flags = SA_SHIRQ | SA_INTERRUPT; | 80 | timer.flags = IRQF_SHARED | IRQF_DISABLED; |
82 | timer.name = "timer"; | 81 | timer.name = "timer"; |
83 | timer.dev_id = NULL; | 82 | timer.dev_id = NULL; |
84 | timer.next = NULL; | 83 | timer.next = NULL; |
diff --git a/arch/mips/gt64120/ev64120/irq.c b/arch/mips/gt64120/ev64120/irq.c index 46c468b26b30..f489a8067a93 100644 --- a/arch/mips/gt64120/ev64120/irq.c +++ b/arch/mips/gt64120/ev64120/irq.c | |||
@@ -138,7 +138,7 @@ void __init arch_init_irq(void) | |||
138 | /* Let's initialize our IRQ descriptors */ | 138 | /* Let's initialize our IRQ descriptors */ |
139 | for (i = 0; i < NR_IRQS; i++) { | 139 | for (i = 0; i < NR_IRQS; i++) { |
140 | irq_desc[i].status = 0; | 140 | irq_desc[i].status = 0; |
141 | irq_desc[i].handler = &no_irq_type; | 141 | irq_desc[i].chip = &no_irq_type; |
142 | irq_desc[i].action = NULL; | 142 | irq_desc[i].action = NULL; |
143 | irq_desc[i].depth = 0; | 143 | irq_desc[i].depth = 0; |
144 | spin_lock_init(&irq_desc[i].lock); | 144 | spin_lock_init(&irq_desc[i].lock); |
diff --git a/arch/mips/gt64120/momenco_ocelot/dbg_io.c b/arch/mips/gt64120/momenco_ocelot/dbg_io.c index f0a6a38fcf4d..2128684584f5 100644 --- a/arch/mips/gt64120/momenco_ocelot/dbg_io.c +++ b/arch/mips/gt64120/momenco_ocelot/dbg_io.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | #ifdef CONFIG_KGDB | 2 | #ifdef CONFIG_KGDB |
4 | 3 | ||
diff --git a/arch/mips/gt64120/momenco_ocelot/setup.c b/arch/mips/gt64120/momenco_ocelot/setup.c index 1193a22c4693..9804642ecf89 100644 --- a/arch/mips/gt64120/momenco_ocelot/setup.c +++ b/arch/mips/gt64120/momenco_ocelot/setup.c | |||
@@ -164,8 +164,8 @@ void __init plat_mem_setup(void) | |||
164 | pm_power_off = momenco_ocelot_power_off; | 164 | pm_power_off = momenco_ocelot_power_off; |
165 | 165 | ||
166 | /* | 166 | /* |
167 | * initrd_start = (ulong)ocelot_initrd_start; | 167 | * initrd_start = (unsigned long)ocelot_initrd_start; |
168 | * initrd_end = (ulong)ocelot_initrd_start + (ulong)ocelot_initrd_size; | 168 | * initrd_end = (unsigned long)ocelot_initrd_start + (ulong)ocelot_initrd_size; |
169 | * initrd_below_start_ok = 1; | 169 | * initrd_below_start_ok = 1; |
170 | */ | 170 | */ |
171 | 171 | ||
diff --git a/arch/mips/gt64120/wrppmc/Makefile b/arch/mips/gt64120/wrppmc/Makefile index 72606b9af12a..7cf52205511c 100644 --- a/arch/mips/gt64120/wrppmc/Makefile +++ b/arch/mips/gt64120/wrppmc/Makefile | |||
@@ -9,6 +9,6 @@ | |||
9 | # Makefile for the Wind River MIPS 4KC PPMC Eval Board | 9 | # Makefile for the Wind River MIPS 4KC PPMC Eval Board |
10 | # | 10 | # |
11 | 11 | ||
12 | obj-y += int-handler.o irq.o reset.o setup.o time.o pci.o | 12 | obj-y += irq.o reset.o setup.o time.o pci.o |
13 | 13 | ||
14 | EXTRA_AFLAGS := $(CFLAGS) | 14 | EXTRA_AFLAGS := $(CFLAGS) |
diff --git a/arch/mips/gt64120/wrppmc/int-handler.S b/arch/mips/gt64120/wrppmc/int-handler.S deleted file mode 100644 index edee7b394175..000000000000 --- a/arch/mips/gt64120/wrppmc/int-handler.S +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1995, 1996, 1997, 2003 by Ralf Baechle | ||
7 | * Copyright (C) Wind River System Inc. Rongkai.Zhan <rongkai.zhan@windriver.com> | ||
8 | */ | ||
9 | #include <asm/asm.h> | ||
10 | #include <asm/mipsregs.h> | ||
11 | #include <asm/addrspace.h> | ||
12 | #include <asm/regdef.h> | ||
13 | #include <asm/stackframe.h> | ||
14 | #include <asm/mach-wrppmc/mach-gt64120.h> | ||
15 | |||
16 | .align 5 | ||
17 | .set noat | ||
18 | NESTED(handle_IRQ, PT_SIZE, sp) | ||
19 | SAVE_ALL | ||
20 | CLI # Important: mark KERNEL mode ! | ||
21 | .set at | ||
22 | |||
23 | mfc0 t0, CP0_CAUSE # get pending interrupts | ||
24 | mfc0 t1, CP0_STATUS # get enabled interrupts | ||
25 | and t0, t0, t1 # get allowed interrupts | ||
26 | andi t0, t0, 0xFF00 | ||
27 | beqz t0, 1f | ||
28 | move a1, sp # Prepare 'struct pt_regs *regs' pointer | ||
29 | |||
30 | andi t1, t0, CAUSEF_IP7 # CPU Compare/Count internal timer | ||
31 | bnez t1, handle_cputimer_irq | ||
32 | andi t1, t0, CAUSEF_IP6 # UART 16550 port | ||
33 | bnez t1, handle_uart_irq | ||
34 | andi t1, t0, CAUSEF_IP3 # PCI INT_A | ||
35 | bnez t1, handle_pci_intA_irq | ||
36 | |||
37 | /* wrong alarm or masked ... */ | ||
38 | 1: j spurious_interrupt | ||
39 | nop | ||
40 | END(handle_IRQ) | ||
41 | |||
42 | .align 5 | ||
43 | handle_cputimer_irq: | ||
44 | li a0, WRPPMC_MIPS_TIMER_IRQ | ||
45 | jal do_IRQ | ||
46 | j ret_from_irq | ||
47 | |||
48 | .align 5 | ||
49 | handle_uart_irq: | ||
50 | li a0, WRPPMC_UART16550_IRQ | ||
51 | jal do_IRQ | ||
52 | j ret_from_irq | ||
53 | |||
54 | .align 5 | ||
55 | handle_pci_intA_irq: | ||
56 | li a0, WRPPMC_PCI_INTA_IRQ | ||
57 | jal do_IRQ | ||
58 | j ret_from_irq | ||
59 | |||
diff --git a/arch/mips/gt64120/wrppmc/irq.c b/arch/mips/gt64120/wrppmc/irq.c index 8605687e24ed..8d75a43ce877 100644 --- a/arch/mips/gt64120/wrppmc/irq.c +++ b/arch/mips/gt64120/wrppmc/irq.c | |||
@@ -30,7 +30,19 @@ | |||
30 | #include <asm/irq_cpu.h> | 30 | #include <asm/irq_cpu.h> |
31 | #include <asm/gt64120.h> | 31 | #include <asm/gt64120.h> |
32 | 32 | ||
33 | extern asmlinkage void handle_IRQ(void); | 33 | asmlinkage void plat_irq_dispatch(struct pt_regs *regs) |
34 | { | ||
35 | unsigned int pending = read_c0_status() & read_c0_cause(); | ||
36 | |||
37 | if (pending & STATUSF_IP7) | ||
38 | do_IRQ(WRPPMC_MIPS_TIMER_IRQ, regs); /* CPU Compare/Count internal timer */ | ||
39 | else if (pending & STATUSF_IP6) | ||
40 | do_IRQ(WRPPMC_UART16550_IRQ, regs); /* UART 16550 port */ | ||
41 | else if (pending & STATUSF_IP3) | ||
42 | do_IRQ(WRPPMC_PCI_INTA_IRQ, regs); /* PCI INT_A */ | ||
43 | else | ||
44 | spurious_interrupt(regs); | ||
45 | } | ||
34 | 46 | ||
35 | /** | 47 | /** |
36 | * Initialize GT64120 Interrupt Controller | 48 | * Initialize GT64120 Interrupt Controller |
@@ -50,12 +62,6 @@ void gt64120_init_pic(void) | |||
50 | 62 | ||
51 | void __init arch_init_irq(void) | 63 | void __init arch_init_irq(void) |
52 | { | 64 | { |
53 | /* enable all CPU interrupt bits. */ | ||
54 | set_c0_status(ST0_IM); /* IE bit is still 0 */ | ||
55 | |||
56 | /* Install MIPS Interrupt Trap Vector */ | ||
57 | set_except_vector(0, handle_IRQ); | ||
58 | |||
59 | /* IRQ 0 - 7 are for MIPS common irq_cpu controller */ | 65 | /* IRQ 0 - 7 are for MIPS common irq_cpu controller */ |
60 | mips_cpu_irq_init(0); | 66 | mips_cpu_irq_init(0); |
61 | 67 | ||
diff --git a/arch/mips/gt64120/wrppmc/setup.c b/arch/mips/gt64120/wrppmc/setup.c index 20c591e49dae..2db6375ef29e 100644 --- a/arch/mips/gt64120/wrppmc/setup.c +++ b/arch/mips/gt64120/wrppmc/setup.c | |||
@@ -125,7 +125,7 @@ static void wrppmc_setup_serial(void) | |||
125 | } | 125 | } |
126 | #endif | 126 | #endif |
127 | 127 | ||
128 | void __init plat_setup(void) | 128 | void __init plat_mem_setup(void) |
129 | { | 129 | { |
130 | extern void wrppmc_time_init(void); | 130 | extern void wrppmc_time_init(void); |
131 | extern void wrppmc_timer_setup(struct irqaction *); | 131 | extern void wrppmc_timer_setup(struct irqaction *); |
diff --git a/arch/mips/gt64120/wrppmc/time.c b/arch/mips/gt64120/wrppmc/time.c index 175d22adb450..6c24a82df0dd 100644 --- a/arch/mips/gt64120/wrppmc/time.c +++ b/arch/mips/gt64120/wrppmc/time.c | |||
@@ -31,10 +31,6 @@ void __init wrppmc_timer_setup(struct irqaction *irq) | |||
31 | { | 31 | { |
32 | /* Install ISR for timer interrupt */ | 32 | /* Install ISR for timer interrupt */ |
33 | setup_irq(WRPPMC_MIPS_TIMER_IRQ, irq); | 33 | setup_irq(WRPPMC_MIPS_TIMER_IRQ, irq); |
34 | |||
35 | /* to generate the first timer interrupt */ | ||
36 | write_c0_compare(mips_hpt_frequency/HZ); | ||
37 | write_c0_count(0); | ||
38 | } | 34 | } |
39 | 35 | ||
40 | /* | 36 | /* |
diff --git a/arch/mips/ite-boards/generic/dbg_io.c b/arch/mips/ite-boards/generic/dbg_io.c index 6a7ccaf93502..8e9cd8a9670a 100644 --- a/arch/mips/ite-boards/generic/dbg_io.c +++ b/arch/mips/ite-boards/generic/dbg_io.c | |||
@@ -1,5 +1,4 @@ | |||
1 | 1 | ||
2 | #include <linux/config.h> | ||
3 | 2 | ||
4 | #ifdef CONFIG_KGDB | 3 | #ifdef CONFIG_KGDB |
5 | 4 | ||
diff --git a/arch/mips/ite-boards/generic/irq.c b/arch/mips/ite-boards/generic/irq.c index 77be7216bdd0..a6749c56fe38 100644 --- a/arch/mips/ite-boards/generic/irq.c +++ b/arch/mips/ite-boards/generic/irq.c | |||
@@ -208,10 +208,10 @@ void __init arch_init_irq(void) | |||
208 | #endif | 208 | #endif |
209 | 209 | ||
210 | for (i = 0; i <= IT8172_LAST_IRQ; i++) { | 210 | for (i = 0; i <= IT8172_LAST_IRQ; i++) { |
211 | irq_desc[i].handler = &it8172_irq_type; | 211 | irq_desc[i].chip = &it8172_irq_type; |
212 | spin_lock_init(&irq_desc[i].lock); | 212 | spin_lock_init(&irq_desc[i].lock); |
213 | } | 213 | } |
214 | irq_desc[MIPS_CPU_TIMER_IRQ].handler = &cp0_irq_type; | 214 | irq_desc[MIPS_CPU_TIMER_IRQ].chip = &cp0_irq_type; |
215 | set_c0_status(ALLINTS_NOTIMER); | 215 | set_c0_status(ALLINTS_NOTIMER); |
216 | } | 216 | } |
217 | 217 | ||
diff --git a/arch/mips/ite-boards/generic/it8172_cir.c b/arch/mips/ite-boards/generic/it8172_cir.c index 19deb153d005..bfc25adcfec6 100644 --- a/arch/mips/ite-boards/generic/it8172_cir.c +++ b/arch/mips/ite-boards/generic/it8172_cir.c | |||
@@ -28,7 +28,6 @@ | |||
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/config.h> | ||
32 | 31 | ||
33 | #ifdef CONFIG_IT8172_CIR | 32 | #ifdef CONFIG_IT8172_CIR |
34 | 33 | ||
diff --git a/arch/mips/ite-boards/generic/it8172_setup.c b/arch/mips/ite-boards/generic/it8172_setup.c index da6ae0991199..a4615a5904aa 100644 --- a/arch/mips/ite-boards/generic/it8172_setup.c +++ b/arch/mips/ite-boards/generic/it8172_setup.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * with this program; if not, write to the Free Software Foundation, Inc., | 26 | * with this program; if not, write to the Free Software Foundation, Inc., |
27 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 27 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
28 | */ | 28 | */ |
29 | #include <linux/config.h> | ||
30 | #include <linux/init.h> | 29 | #include <linux/init.h> |
31 | #include <linux/sched.h> | 30 | #include <linux/sched.h> |
32 | #include <linux/ioport.h> | 31 | #include <linux/ioport.h> |
diff --git a/arch/mips/ite-boards/generic/pmon_prom.c b/arch/mips/ite-boards/generic/pmon_prom.c index 6e505af0cc08..7d0a79be34d8 100644 --- a/arch/mips/ite-boards/generic/pmon_prom.c +++ b/arch/mips/ite-boards/generic/pmon_prom.c | |||
@@ -35,7 +35,6 @@ | |||
35 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 35 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
36 | */ | 36 | */ |
37 | 37 | ||
38 | #include <linux/config.h> | ||
39 | #include <linux/kernel.h> | 38 | #include <linux/kernel.h> |
40 | #include <linux/init.h> | 39 | #include <linux/init.h> |
41 | #include <linux/string.h> | 40 | #include <linux/string.h> |
diff --git a/arch/mips/jazz/irq.c b/arch/mips/jazz/irq.c index becc9accd495..478be9858a1e 100644 --- a/arch/mips/jazz/irq.c +++ b/arch/mips/jazz/irq.c | |||
@@ -73,7 +73,7 @@ void __init init_r4030_ints(void) | |||
73 | irq_desc[i].status = IRQ_DISABLED; | 73 | irq_desc[i].status = IRQ_DISABLED; |
74 | irq_desc[i].action = 0; | 74 | irq_desc[i].action = 0; |
75 | irq_desc[i].depth = 1; | 75 | irq_desc[i].depth = 1; |
76 | irq_desc[i].handler = &r4030_irq_type; | 76 | irq_desc[i].chip = &r4030_irq_type; |
77 | } | 77 | } |
78 | 78 | ||
79 | r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, 0); | 79 | r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, 0); |
diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c index c8d0df7d0c36..385413e30fdd 100644 --- a/arch/mips/jazz/setup.c +++ b/arch/mips/jazz/setup.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1996, 1997, 1998, 2001 by Ralf Baechle | 8 | * Copyright (C) 1996, 1997, 1998, 2001 by Ralf Baechle |
9 | * Copyright (C) 2001 MIPS Technologies, Inc. | 9 | * Copyright (C) 2001 MIPS Technologies, Inc. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/eisa.h> | 11 | #include <linux/eisa.h> |
13 | #include <linux/hdreg.h> | 12 | #include <linux/hdreg.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
diff --git a/arch/mips/jmr3927/rbhma3100/init.c b/arch/mips/jmr3927/rbhma3100/init.c index a0674d73962f..a55cb4572ded 100644 --- a/arch/mips/jmr3927/rbhma3100/init.c +++ b/arch/mips/jmr3927/rbhma3100/init.c | |||
@@ -27,7 +27,6 @@ | |||
27 | * with this program; if not, write to the Free Software Foundation, Inc., | 27 | * with this program; if not, write to the Free Software Foundation, Inc., |
28 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 28 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
29 | */ | 29 | */ |
30 | #include <linux/config.h> | ||
31 | #include <linux/init.h> | 30 | #include <linux/init.h> |
32 | #include <linux/mm.h> | 31 | #include <linux/mm.h> |
33 | #include <linux/sched.h> | 32 | #include <linux/sched.h> |
diff --git a/arch/mips/jmr3927/rbhma3100/irq.c b/arch/mips/jmr3927/rbhma3100/irq.c index 11304d1354f4..9c43702e7a93 100644 --- a/arch/mips/jmr3927/rbhma3100/irq.c +++ b/arch/mips/jmr3927/rbhma3100/irq.c | |||
@@ -29,7 +29,6 @@ | |||
29 | * with this program; if not, write to the Free Software Foundation, Inc., | 29 | * with this program; if not, write to the Free Software Foundation, Inc., |
30 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 30 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
31 | */ | 31 | */ |
32 | #include <linux/config.h> | ||
33 | #include <linux/init.h> | 32 | #include <linux/init.h> |
34 | 33 | ||
35 | #include <linux/errno.h> | 34 | #include <linux/errno.h> |
@@ -435,7 +434,7 @@ void jmr3927_irq_init(u32 irq_base) | |||
435 | irq_desc[i].status = IRQ_DISABLED; | 434 | irq_desc[i].status = IRQ_DISABLED; |
436 | irq_desc[i].action = NULL; | 435 | irq_desc[i].action = NULL; |
437 | irq_desc[i].depth = 1; | 436 | irq_desc[i].depth = 1; |
438 | irq_desc[i].handler = &jmr3927_irq_controller; | 437 | irq_desc[i].chip = &jmr3927_irq_controller; |
439 | } | 438 | } |
440 | 439 | ||
441 | jmr3927_irq_base = irq_base; | 440 | jmr3927_irq_base = irq_base; |
diff --git a/arch/mips/jmr3927/rbhma3100/setup.c b/arch/mips/jmr3927/rbhma3100/setup.c index 308e6cdcd245..6d4635d89d94 100644 --- a/arch/mips/jmr3927/rbhma3100/setup.c +++ b/arch/mips/jmr3927/rbhma3100/setup.c | |||
@@ -33,7 +33,6 @@ | |||
33 | *********************************************************************** | 33 | *********************************************************************** |
34 | */ | 34 | */ |
35 | 35 | ||
36 | #include <linux/config.h> | ||
37 | #include <linux/init.h> | 36 | #include <linux/init.h> |
38 | #include <linux/kernel.h> | 37 | #include <linux/kernel.h> |
39 | #include <linux/kdev_t.h> | 38 | #include <linux/kdev_t.h> |
diff --git a/arch/mips/kernel/apm.c b/arch/mips/kernel/apm.c index 15f46b4471fd..7bdbcd811b57 100644 --- a/arch/mips/kernel/apm.c +++ b/arch/mips/kernel/apm.c | |||
@@ -260,7 +260,7 @@ static unsigned int apm_poll(struct file *fp, poll_table * wait) | |||
260 | * has acknowledge does the actual suspend happen. | 260 | * has acknowledge does the actual suspend happen. |
261 | */ | 261 | */ |
262 | static int | 262 | static int |
263 | apm_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg) | 263 | apm_ioctl(struct inode * inode, struct file *filp, unsigned int cmd, unsigned long arg) |
264 | { | 264 | { |
265 | struct apm_user *as = filp->private_data; | 265 | struct apm_user *as = filp->private_data; |
266 | unsigned long flags; | 266 | unsigned long flags; |
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c index f1bb6a2dc5fc..ec28077d5ee2 100644 --- a/arch/mips/kernel/asm-offsets.c +++ b/arch/mips/kernel/asm-offsets.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Kevin Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com | 8 | * Kevin Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com |
9 | * Copyright (C) 2000 MIPS Technologies, Inc. | 9 | * Copyright (C) 2000 MIPS Technologies, Inc. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/compat.h> | 11 | #include <linux/compat.h> |
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
diff --git a/arch/mips/kernel/cpu-bugs64.c b/arch/mips/kernel/cpu-bugs64.c index d268827c62bd..c09337b947b9 100644 --- a/arch/mips/kernel/cpu-bugs64.c +++ b/arch/mips/kernel/cpu-bugs64.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * as published by the Free Software Foundation; either version | 6 | * as published by the Free Software Foundation; either version |
7 | * 2 of the License, or (at your option) any later version. | 7 | * 2 of the License, or (at your option) any later version. |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/ptrace.h> | 11 | #include <linux/ptrace.h> |
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 8c2c359a05f4..ba08f055feb2 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * as published by the Free Software Foundation; either version | 11 | * as published by the Free Software Foundation; either version |
12 | * 2 of the License, or (at your option) any later version. | 12 | * 2 of the License, or (at your option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/ptrace.h> | 16 | #include <linux/ptrace.h> |
@@ -597,8 +596,6 @@ static inline void cpu_probe_mips(struct cpuinfo_mips *c) | |||
597 | break; | 596 | break; |
598 | case PRID_IMP_25KF: | 597 | case PRID_IMP_25KF: |
599 | c->cputype = CPU_25KF; | 598 | c->cputype = CPU_25KF; |
600 | /* Probe for L2 cache */ | ||
601 | c->scache.flags &= ~MIPS_CACHE_NOT_PRESENT; | ||
602 | break; | 599 | break; |
603 | case PRID_IMP_34K: | 600 | case PRID_IMP_34K: |
604 | c->cputype = CPU_34K; | 601 | c->cputype = CPU_34K; |
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S index a9c6de1b9542..ecfd637d702a 100644 --- a/arch/mips/kernel/entry.S +++ b/arch/mips/kernel/entry.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 7 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
8 | * Copyright (C) 2001 MIPS Technologies, Inc. | 8 | * Copyright (C) 2001 MIPS Technologies, Inc. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/asm.h> | 11 | #include <asm/asm.h> |
13 | #include <asm/asmmacro.h> | 12 | #include <asm/asmmacro.h> |
@@ -87,7 +86,7 @@ FEXPORT(restore_all) # restore full frame | |||
87 | ori v1, v0, TCSTATUS_IXMT | 86 | ori v1, v0, TCSTATUS_IXMT |
88 | mtc0 v1, CP0_TCSTATUS | 87 | mtc0 v1, CP0_TCSTATUS |
89 | andi v0, TCSTATUS_IXMT | 88 | andi v0, TCSTATUS_IXMT |
90 | ehb | 89 | _ehb |
91 | mfc0 t0, CP0_TCCONTEXT | 90 | mfc0 t0, CP0_TCCONTEXT |
92 | DMT 9 # dmt t1 | 91 | DMT 9 # dmt t1 |
93 | jal mips_ihb | 92 | jal mips_ihb |
@@ -95,7 +94,7 @@ FEXPORT(restore_all) # restore full frame | |||
95 | andi t3, t0, 0xff00 | 94 | andi t3, t0, 0xff00 |
96 | or t2, t2, t3 | 95 | or t2, t2, t3 |
97 | mtc0 t2, CP0_STATUS | 96 | mtc0 t2, CP0_STATUS |
98 | ehb | 97 | _ehb |
99 | andi t1, t1, VPECONTROL_TE | 98 | andi t1, t1, VPECONTROL_TE |
100 | beqz t1, 1f | 99 | beqz t1, 1f |
101 | EMT | 100 | EMT |
@@ -105,7 +104,7 @@ FEXPORT(restore_all) # restore full frame | |||
105 | xori v1, v1, TCSTATUS_IXMT | 104 | xori v1, v1, TCSTATUS_IXMT |
106 | or v1, v0, v1 | 105 | or v1, v0, v1 |
107 | mtc0 v1, CP0_TCSTATUS | 106 | mtc0 v1, CP0_TCSTATUS |
108 | ehb | 107 | _ehb |
109 | xor t0, t0, t3 | 108 | xor t0, t0, t3 |
110 | mtc0 t0, CP0_TCCONTEXT | 109 | mtc0 t0, CP0_TCCONTEXT |
111 | #endif /* CONFIG_MIPS_MT_SMTC */ | 110 | #endif /* CONFIG_MIPS_MT_SMTC */ |
diff --git a/arch/mips/kernel/gdb-low.S b/arch/mips/kernel/gdb-low.S index 5fd7a8af0c62..666bc9014cbd 100644 --- a/arch/mips/kernel/gdb-low.S +++ b/arch/mips/kernel/gdb-low.S | |||
@@ -3,7 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 1995 Andreas Busse | 4 | * Copyright (C) 1995 Andreas Busse |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/sys.h> | 6 | #include <linux/sys.h> |
8 | 7 | ||
9 | #include <asm/asm.h> | 8 | #include <asm/asm.h> |
@@ -291,7 +290,7 @@ | |||
291 | ori t1, t2, TCSTATUS_IXMT | 290 | ori t1, t2, TCSTATUS_IXMT |
292 | mtc0 t1, CP0_TCSTATUS | 291 | mtc0 t1, CP0_TCSTATUS |
293 | andi t2, t2, TCSTATUS_IXMT | 292 | andi t2, t2, TCSTATUS_IXMT |
294 | ehb | 293 | _ehb |
295 | DMT 9 # dmt t1 | 294 | DMT 9 # dmt t1 |
296 | jal mips_ihb | 295 | jal mips_ihb |
297 | nop | 296 | nop |
@@ -310,7 +309,7 @@ | |||
310 | xori t1, t1, TCSTATUS_IXMT | 309 | xori t1, t1, TCSTATUS_IXMT |
311 | or t1, t1, t2 | 310 | or t1, t1, t2 |
312 | mtc0 t1, CP0_TCSTATUS | 311 | mtc0 t1, CP0_TCSTATUS |
313 | ehb | 312 | _ehb |
314 | #endif /* CONFIG_MIPS_MT_SMTC */ | 313 | #endif /* CONFIG_MIPS_MT_SMTC */ |
315 | LONG_L v0, GDB_FR_STATUS(sp) | 314 | LONG_L v0, GDB_FR_STATUS(sp) |
316 | LONG_L v1, GDB_FR_EPC(sp) | 315 | LONG_L v1, GDB_FR_EPC(sp) |
diff --git a/arch/mips/kernel/gdb-stub.c b/arch/mips/kernel/gdb-stub.c index 6ecbdc1fefd1..719d26968cb2 100644 --- a/arch/mips/kernel/gdb-stub.c +++ b/arch/mips/kernel/gdb-stub.c | |||
@@ -120,7 +120,6 @@ | |||
120 | * breakpoints, single stepping, | 120 | * breakpoints, single stepping, |
121 | * printing variables, etc. | 121 | * printing variables, etc. |
122 | */ | 122 | */ |
123 | #include <linux/config.h> | ||
124 | #include <linux/string.h> | 123 | #include <linux/string.h> |
125 | #include <linux/kernel.h> | 124 | #include <linux/kernel.h> |
126 | #include <linux/signal.h> | 125 | #include <linux/signal.h> |
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S index ff7af369f286..5254a2222d2b 100644 --- a/arch/mips/kernel/genex.S +++ b/arch/mips/kernel/genex.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 2001 MIPS Technologies, Inc. | 8 | * Copyright (C) 2001 MIPS Technologies, Inc. |
9 | * Copyright (C) 2002 Maciej W. Rozycki | 9 | * Copyright (C) 2002 Maciej W. Rozycki |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | 12 | ||
14 | #include <asm/asm.h> | 13 | #include <asm/asm.h> |
@@ -214,7 +213,7 @@ NESTED(except_vec_vi_handler, 0, sp) | |||
214 | mtc0 t0, CP0_TCCONTEXT | 213 | mtc0 t0, CP0_TCCONTEXT |
215 | xor t1, t1, t0 | 214 | xor t1, t1, t0 |
216 | mtc0 t1, CP0_STATUS | 215 | mtc0 t1, CP0_STATUS |
217 | ehb | 216 | _ehb |
218 | #endif /* CONFIG_MIPS_MT_SMTC */ | 217 | #endif /* CONFIG_MIPS_MT_SMTC */ |
219 | CLI | 218 | CLI |
220 | move a0, sp | 219 | move a0, sp |
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S index bdf6f6eff721..476c1eb33c94 100644 --- a/arch/mips/kernel/head.S +++ b/arch/mips/kernel/head.S | |||
@@ -13,7 +13,6 @@ | |||
13 | * Kevin Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com | 13 | * Kevin Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com |
14 | * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. | 14 | * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/threads.h> | 17 | #include <linux/threads.h> |
19 | 18 | ||
@@ -96,7 +95,7 @@ | |||
96 | /* Clear TKSU, leave IXMT */ | 95 | /* Clear TKSU, leave IXMT */ |
97 | xori t0, 0x00001800 | 96 | xori t0, 0x00001800 |
98 | mtc0 t0, CP0_TCSTATUS | 97 | mtc0 t0, CP0_TCSTATUS |
99 | ehb | 98 | _ehb |
100 | /* We need to leave the global IE bit set, but clear EXL...*/ | 99 | /* We need to leave the global IE bit set, but clear EXL...*/ |
101 | mfc0 t0, CP0_STATUS | 100 | mfc0 t0, CP0_STATUS |
102 | or t0, ST0_CU0 | ST0_EXL | ST0_ERL | \set | \clr | 101 | or t0, ST0_CU0 | ST0_EXL | ST0_ERL | \set | \clr |
diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c index 0cb8ed5662f3..91ffb1233cad 100644 --- a/arch/mips/kernel/i8259.c +++ b/arch/mips/kernel/i8259.c | |||
@@ -120,7 +120,7 @@ int i8259A_irq_pending(unsigned int irq) | |||
120 | void make_8259A_irq(unsigned int irq) | 120 | void make_8259A_irq(unsigned int irq) |
121 | { | 121 | { |
122 | disable_irq_nosync(irq); | 122 | disable_irq_nosync(irq); |
123 | irq_desc[irq].handler = &i8259A_irq_type; | 123 | irq_desc[irq].chip = &i8259A_irq_type; |
124 | enable_irq(irq); | 124 | enable_irq(irq); |
125 | } | 125 | } |
126 | 126 | ||
@@ -327,7 +327,7 @@ void __init init_i8259_irqs (void) | |||
327 | irq_desc[i].status = IRQ_DISABLED; | 327 | irq_desc[i].status = IRQ_DISABLED; |
328 | irq_desc[i].action = NULL; | 328 | irq_desc[i].action = NULL; |
329 | irq_desc[i].depth = 1; | 329 | irq_desc[i].depth = 1; |
330 | irq_desc[i].handler = &i8259A_irq_type; | 330 | irq_desc[i].chip = &i8259A_irq_type; |
331 | } | 331 | } |
332 | 332 | ||
333 | setup_irq(2, &irq2); | 333 | setup_irq(2, &irq2); |
diff --git a/arch/mips/kernel/irq-msc01.c b/arch/mips/kernel/irq-msc01.c index 97ebdc754b9e..f8cd1ac64d88 100644 --- a/arch/mips/kernel/irq-msc01.c +++ b/arch/mips/kernel/irq-msc01.c | |||
@@ -174,14 +174,14 @@ void __init init_msc_irqs(unsigned int base, msc_irqmap_t *imp, int nirq) | |||
174 | 174 | ||
175 | switch (imp->im_type) { | 175 | switch (imp->im_type) { |
176 | case MSC01_IRQ_EDGE: | 176 | case MSC01_IRQ_EDGE: |
177 | irq_desc[base+n].handler = &msc_edgeirq_type; | 177 | irq_desc[base+n].chip = &msc_edgeirq_type; |
178 | if (cpu_has_veic) | 178 | if (cpu_has_veic) |
179 | MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT); | 179 | MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT); |
180 | else | 180 | else |
181 | MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT | imp->im_lvl); | 181 | MSCIC_WRITE(MSC01_IC_SUP+n*8, MSC01_IC_SUP_EDGE_BIT | imp->im_lvl); |
182 | break; | 182 | break; |
183 | case MSC01_IRQ_LEVEL: | 183 | case MSC01_IRQ_LEVEL: |
184 | irq_desc[base+n].handler = &msc_levelirq_type; | 184 | irq_desc[base+n].chip = &msc_levelirq_type; |
185 | if (cpu_has_veic) | 185 | if (cpu_has_veic) |
186 | MSCIC_WRITE(MSC01_IC_SUP+n*8, 0); | 186 | MSCIC_WRITE(MSC01_IC_SUP+n*8, 0); |
187 | else | 187 | else |
diff --git a/arch/mips/kernel/irq-mv6434x.c b/arch/mips/kernel/irq-mv6434x.c index 0613f1f36b1b..f9c763a65547 100644 --- a/arch/mips/kernel/irq-mv6434x.c +++ b/arch/mips/kernel/irq-mv6434x.c | |||
@@ -155,7 +155,7 @@ void __init mv64340_irq_init(unsigned int base) | |||
155 | irq_desc[i].status = IRQ_DISABLED; | 155 | irq_desc[i].status = IRQ_DISABLED; |
156 | irq_desc[i].action = 0; | 156 | irq_desc[i].action = 0; |
157 | irq_desc[i].depth = 2; | 157 | irq_desc[i].depth = 2; |
158 | irq_desc[i].handler = &mv64340_irq_type; | 158 | irq_desc[i].chip = &mv64340_irq_type; |
159 | } | 159 | } |
160 | 160 | ||
161 | irq_base = base; | 161 | irq_base = base; |
diff --git a/arch/mips/kernel/irq-rm7000.c b/arch/mips/kernel/irq-rm7000.c index 0b130c5ac5d9..121da385a94d 100644 --- a/arch/mips/kernel/irq-rm7000.c +++ b/arch/mips/kernel/irq-rm7000.c | |||
@@ -91,7 +91,7 @@ void __init rm7k_cpu_irq_init(int base) | |||
91 | irq_desc[i].status = IRQ_DISABLED; | 91 | irq_desc[i].status = IRQ_DISABLED; |
92 | irq_desc[i].action = NULL; | 92 | irq_desc[i].action = NULL; |
93 | irq_desc[i].depth = 1; | 93 | irq_desc[i].depth = 1; |
94 | irq_desc[i].handler = &rm7k_irq_controller; | 94 | irq_desc[i].chip = &rm7k_irq_controller; |
95 | } | 95 | } |
96 | 96 | ||
97 | irq_base = base; | 97 | irq_base = base; |
diff --git a/arch/mips/kernel/irq-rm9000.c b/arch/mips/kernel/irq-rm9000.c index 9b5f20c32acb..25109c103e44 100644 --- a/arch/mips/kernel/irq-rm9000.c +++ b/arch/mips/kernel/irq-rm9000.c | |||
@@ -139,11 +139,11 @@ void __init rm9k_cpu_irq_init(int base) | |||
139 | irq_desc[i].status = IRQ_DISABLED; | 139 | irq_desc[i].status = IRQ_DISABLED; |
140 | irq_desc[i].action = NULL; | 140 | irq_desc[i].action = NULL; |
141 | irq_desc[i].depth = 1; | 141 | irq_desc[i].depth = 1; |
142 | irq_desc[i].handler = &rm9k_irq_controller; | 142 | irq_desc[i].chip = &rm9k_irq_controller; |
143 | } | 143 | } |
144 | 144 | ||
145 | rm9000_perfcount_irq = base + 1; | 145 | rm9000_perfcount_irq = base + 1; |
146 | irq_desc[rm9000_perfcount_irq].handler = &rm9k_perfcounter_irq; | 146 | irq_desc[rm9000_perfcount_irq].chip = &rm9k_perfcounter_irq; |
147 | 147 | ||
148 | irq_base = base; | 148 | irq_base = base; |
149 | } | 149 | } |
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c index 3dce742e716f..cde5e5afa179 100644 --- a/arch/mips/kernel/irq.c +++ b/arch/mips/kernel/irq.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1992 Linus Torvalds | 8 | * Copyright (C) 1992 Linus Torvalds |
9 | * Copyright (C) 1994 - 2000 Ralf Baechle | 9 | * Copyright (C) 1994 - 2000 Ralf Baechle |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/delay.h> | 12 | #include <linux/delay.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
@@ -95,7 +94,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
95 | for_each_online_cpu(j) | 94 | for_each_online_cpu(j) |
96 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 95 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); |
97 | #endif | 96 | #endif |
98 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 97 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
99 | seq_printf(p, " %s", action->name); | 98 | seq_printf(p, " %s", action->name); |
100 | 99 | ||
101 | for (action=action->next; action; action = action->next) | 100 | for (action=action->next; action; action = action->next) |
@@ -137,7 +136,7 @@ void __init init_IRQ(void) | |||
137 | irq_desc[i].status = IRQ_DISABLED; | 136 | irq_desc[i].status = IRQ_DISABLED; |
138 | irq_desc[i].action = NULL; | 137 | irq_desc[i].action = NULL; |
139 | irq_desc[i].depth = 1; | 138 | irq_desc[i].depth = 1; |
140 | irq_desc[i].handler = &no_irq_type; | 139 | irq_desc[i].chip = &no_irq_type; |
141 | spin_lock_init(&irq_desc[i].lock); | 140 | spin_lock_init(&irq_desc[i].lock); |
142 | #ifdef CONFIG_MIPS_MT_SMTC | 141 | #ifdef CONFIG_MIPS_MT_SMTC |
143 | irq_hwmask[i] = 0; | 142 | irq_hwmask[i] = 0; |
diff --git a/arch/mips/kernel/irq_cpu.c b/arch/mips/kernel/irq_cpu.c index 5db67e31ec1a..0e455a8ad860 100644 --- a/arch/mips/kernel/irq_cpu.c +++ b/arch/mips/kernel/irq_cpu.c | |||
@@ -167,14 +167,14 @@ void __init mips_cpu_irq_init(int irq_base) | |||
167 | irq_desc[i].status = IRQ_DISABLED; | 167 | irq_desc[i].status = IRQ_DISABLED; |
168 | irq_desc[i].action = NULL; | 168 | irq_desc[i].action = NULL; |
169 | irq_desc[i].depth = 1; | 169 | irq_desc[i].depth = 1; |
170 | irq_desc[i].handler = &mips_mt_cpu_irq_controller; | 170 | irq_desc[i].chip = &mips_mt_cpu_irq_controller; |
171 | } | 171 | } |
172 | 172 | ||
173 | for (i = irq_base + 2; i < irq_base + 8; i++) { | 173 | for (i = irq_base + 2; i < irq_base + 8; i++) { |
174 | irq_desc[i].status = IRQ_DISABLED; | 174 | irq_desc[i].status = IRQ_DISABLED; |
175 | irq_desc[i].action = NULL; | 175 | irq_desc[i].action = NULL; |
176 | irq_desc[i].depth = 1; | 176 | irq_desc[i].depth = 1; |
177 | irq_desc[i].handler = &mips_cpu_irq_controller; | 177 | irq_desc[i].chip = &mips_cpu_irq_controller; |
178 | } | 178 | } |
179 | 179 | ||
180 | mips_cpu_irq_base = irq_base; | 180 | mips_cpu_irq_base = irq_base; |
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c index a7d2bb3cf835..450ac592da57 100644 --- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Written by Ulf Carlsson (ulfc@engr.sgi.com) | 5 | * Written by Ulf Carlsson (ulfc@engr.sgi.com) |
6 | * sys32_execve from ia64/ia32 code, Feb 2000, Kanoj Sarcar (kanoj@sgi.com) | 6 | * sys32_execve from ia64/ia32 code, Feb 2000, Kanoj Sarcar (kanoj@sgi.com) |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/compiler.h> | 8 | #include <linux/compiler.h> |
10 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
diff --git a/arch/mips/kernel/mips_ksyms.c b/arch/mips/kernel/mips_ksyms.c index 0a71a4c33716..f44a01357ada 100644 --- a/arch/mips/kernel/mips_ksyms.c +++ b/arch/mips/kernel/mips_ksyms.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1996, 97, 98, 99, 2000, 01, 03, 04, 05 by Ralf Baechle | 8 | * Copyright (C) 1996, 97, 98, 99, 2000, 01, 03, 04, 05 by Ralf Baechle |
9 | * Copyright (C) 1999, 2000, 01 Silicon Graphics, Inc. | 9 | * Copyright (C) 1999, 2000, 01 Silicon Graphics, Inc. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/interrupt.h> | 11 | #include <linux/interrupt.h> |
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <asm/checksum.h> | 13 | #include <asm/checksum.h> |
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c index 9def554f335b..d8beef107902 100644 --- a/arch/mips/kernel/proc.c +++ b/arch/mips/kernel/proc.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 2001, 2004 MIPS Technologies, Inc. | 5 | * Copyright (C) 2001, 2004 MIPS Technologies, Inc. |
6 | * Copyright (C) 2004 Maciej W. Rozycki | 6 | * Copyright (C) 2004 Maciej W. Rozycki |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/delay.h> | 8 | #include <linux/delay.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index 199a06e873c6..7ab67f786bfe 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
9 | * Copyright (C) 2004 Thiemo Seufer | 9 | * Copyright (C) 2004 Thiemo Seufer |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c index 1d44025188d8..362d1728e531 100644 --- a/arch/mips/kernel/ptrace.c +++ b/arch/mips/kernel/ptrace.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * At this time Linux/MIPS64 only supports syscall tracing, even for 32-bit | 14 | * At this time Linux/MIPS64 only supports syscall tracing, even for 32-bit |
15 | * binaries. | 15 | * binaries. |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/compiler.h> | 17 | #include <linux/compiler.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
diff --git a/arch/mips/kernel/r2300_switch.S b/arch/mips/kernel/r2300_switch.S index 0d9c4a32a9c2..656bde2e11b1 100644 --- a/arch/mips/kernel/r2300_switch.S +++ b/arch/mips/kernel/r2300_switch.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * Further modifications to make this work: | 10 | * Further modifications to make this work: |
11 | * Copyright (c) 1998-2000 Harald Koerfgen | 11 | * Copyright (c) 1998-2000 Harald Koerfgen |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <asm/asm.h> | 13 | #include <asm/asm.h> |
15 | #include <asm/cachectl.h> | 14 | #include <asm/cachectl.h> |
16 | #include <asm/fpregdef.h> | 15 | #include <asm/fpregdef.h> |
diff --git a/arch/mips/kernel/r4k_fpu.S b/arch/mips/kernel/r4k_fpu.S index 283a98508fc8..880fa6e841ee 100644 --- a/arch/mips/kernel/r4k_fpu.S +++ b/arch/mips/kernel/r4k_fpu.S | |||
@@ -12,7 +12,6 @@ | |||
12 | * Copyright (C) 2000 MIPS Technologies, Inc. | 12 | * Copyright (C) 2000 MIPS Technologies, Inc. |
13 | * Copyright (C) 1999, 2001 Silicon Graphics, Inc. | 13 | * Copyright (C) 1999, 2001 Silicon Graphics, Inc. |
14 | */ | 14 | */ |
15 | #include <linux/config.h> | ||
16 | #include <asm/asm.h> | 15 | #include <asm/asm.h> |
17 | #include <asm/errno.h> | 16 | #include <asm/errno.h> |
18 | #include <asm/fpregdef.h> | 17 | #include <asm/fpregdef.h> |
diff --git a/arch/mips/kernel/r4k_switch.S b/arch/mips/kernel/r4k_switch.S index db94e556fc97..d5c8b82fed72 100644 --- a/arch/mips/kernel/r4k_switch.S +++ b/arch/mips/kernel/r4k_switch.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * Copyright (C) 2000 MIPS Technologies, Inc. | 10 | * Copyright (C) 2000 MIPS Technologies, Inc. |
11 | * written by Carsten Langgaard, carstenl@mips.com | 11 | * written by Carsten Langgaard, carstenl@mips.com |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <asm/asm.h> | 13 | #include <asm/asm.h> |
15 | #include <asm/cachectl.h> | 14 | #include <asm/cachectl.h> |
16 | #include <asm/fpregdef.h> | 15 | #include <asm/fpregdef.h> |
@@ -94,7 +93,7 @@ | |||
94 | ori t1, t2, TCSTATUS_IXMT | 93 | ori t1, t2, TCSTATUS_IXMT |
95 | mtc0 t1, CP0_TCSTATUS | 94 | mtc0 t1, CP0_TCSTATUS |
96 | andi t2, t2, TCSTATUS_IXMT | 95 | andi t2, t2, TCSTATUS_IXMT |
97 | ehb | 96 | _ehb |
98 | DMT 8 # dmt t0 | 97 | DMT 8 # dmt t0 |
99 | move t1,ra | 98 | move t1,ra |
100 | jal mips_ihb | 99 | jal mips_ihb |
@@ -109,7 +108,7 @@ | |||
109 | or a2, t1 | 108 | or a2, t1 |
110 | mtc0 a2, CP0_STATUS | 109 | mtc0 a2, CP0_STATUS |
111 | #ifdef CONFIG_MIPS_MT_SMTC | 110 | #ifdef CONFIG_MIPS_MT_SMTC |
112 | ehb | 111 | _ehb |
113 | andi t0, t0, VPECONTROL_TE | 112 | andi t0, t0, VPECONTROL_TE |
114 | beqz t0, 1f | 113 | beqz t0, 1f |
115 | emt | 114 | emt |
@@ -118,7 +117,7 @@ | |||
118 | xori t1, t1, TCSTATUS_IXMT | 117 | xori t1, t1, TCSTATUS_IXMT |
119 | or t1, t1, t2 | 118 | or t1, t1, t2 |
120 | mtc0 t1, CP0_TCSTATUS | 119 | mtc0 t1, CP0_TCSTATUS |
121 | ehb | 120 | _ehb |
122 | #endif /* CONFIG_MIPS_MT_SMTC */ | 121 | #endif /* CONFIG_MIPS_MT_SMTC */ |
123 | move v0, a0 | 122 | move v0, a0 |
124 | jr ra | 123 | jr ra |
diff --git a/arch/mips/kernel/rtlx.c b/arch/mips/kernel/rtlx.c index caf777f83289..cdab1b2cd134 100644 --- a/arch/mips/kernel/rtlx.c +++ b/arch/mips/kernel/rtlx.c | |||
@@ -487,7 +487,7 @@ static struct file_operations rtlx_fops = { | |||
487 | 487 | ||
488 | static struct irqaction rtlx_irq = { | 488 | static struct irqaction rtlx_irq = { |
489 | .handler = rtlx_interrupt, | 489 | .handler = rtlx_interrupt, |
490 | .flags = SA_INTERRUPT, | 490 | .flags = IRQF_DISABLED, |
491 | .name = "RTLX", | 491 | .name = "RTLX", |
492 | }; | 492 | }; |
493 | 493 | ||
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index 2d2fdf77e308..8f8101f878ca 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 2001 MIPS Technologies, Inc. | 7 | * Copyright (C) 2001 MIPS Technologies, Inc. |
8 | * Copyright (C) 2004 Thiemo Seufer | 8 | * Copyright (C) 2004 Thiemo Seufer |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <asm/asm.h> | 11 | #include <asm/asm.h> |
13 | #include <asm/asmmacro.h> | 12 | #include <asm/asmmacro.h> |
@@ -647,6 +646,7 @@ einval: li v0, -EINVAL | |||
647 | sys sys_unshare 1 | 646 | sys sys_unshare 1 |
648 | sys sys_splice 4 | 647 | sys sys_splice 4 |
649 | sys sys_sync_file_range 7 /* 4305 */ | 648 | sys sys_sync_file_range 7 /* 4305 */ |
649 | sys sys_tee 4 | ||
650 | .endm | 650 | .endm |
651 | 651 | ||
652 | /* We pre-compute the number of _instruction_ bytes needed to | 652 | /* We pre-compute the number of _instruction_ bytes needed to |
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S index 9ba750887377..b4a34a625a2e 100644 --- a/arch/mips/kernel/scall64-64.S +++ b/arch/mips/kernel/scall64-64.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 7 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
8 | * Copyright (C) 2001 MIPS Technologies, Inc. | 8 | * Copyright (C) 2001 MIPS Technologies, Inc. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <asm/asm.h> | 11 | #include <asm/asm.h> |
13 | #include <asm/asmmacro.h> | 12 | #include <asm/asmmacro.h> |
@@ -462,3 +461,4 @@ sys_call_table: | |||
462 | PTR sys_unshare | 461 | PTR sys_unshare |
463 | PTR sys_splice | 462 | PTR sys_splice |
464 | PTR sys_sync_file_range | 463 | PTR sys_sync_file_range |
464 | PTR sys_tee /* 5265 */ | ||
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index 942aca26f9c4..df8c4f8ccd61 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 7 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
8 | * Copyright (C) 2001 MIPS Technologies, Inc. | 8 | * Copyright (C) 2001 MIPS Technologies, Inc. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | #include <asm/asm.h> | 11 | #include <asm/asm.h> |
13 | #include <asm/asmmacro.h> | 12 | #include <asm/asmmacro.h> |
@@ -388,3 +387,4 @@ EXPORT(sysn32_call_table) | |||
388 | PTR sys_unshare | 387 | PTR sys_unshare |
389 | PTR sys_splice | 388 | PTR sys_splice |
390 | PTR sys_sync_file_range | 389 | PTR sys_sync_file_range |
390 | PTR sys_tee | ||
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index 8efb23a84131..f04fe4f085c3 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S | |||
@@ -13,7 +13,6 @@ | |||
13 | * to ABI64 calling convention. 64-bit syscalls are also processed | 13 | * to ABI64 calling convention. 64-bit syscalls are also processed |
14 | * here for now. | 14 | * here for now. |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | #include <linux/errno.h> | 16 | #include <linux/errno.h> |
18 | #include <asm/asm.h> | 17 | #include <asm/asm.h> |
19 | #include <asm/asmmacro.h> | 18 | #include <asm/asmmacro.h> |
@@ -510,4 +509,5 @@ sys_call_table: | |||
510 | PTR sys_unshare | 509 | PTR sys_unshare |
511 | PTR sys_splice | 510 | PTR sys_splice |
512 | PTR sys32_sync_file_range /* 4305 */ | 511 | PTR sys32_sync_file_range /* 4305 */ |
512 | PTR sys_tee | ||
513 | .size sys_call_table,.-sys_call_table | 513 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index bfcec8d9bfe4..5edd8d4bb665 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Copyright (C) 1999 Silicon Graphics, Inc. | 10 | * Copyright (C) 1999 Silicon Graphics, Inc. |
11 | * Copyright (C) 2000 2001, 2002 Maciej W. Rozycki | 11 | * Copyright (C) 2000 2001, 2002 Maciej W. Rozycki |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/ioport.h> | 15 | #include <linux/ioport.h> |
@@ -488,6 +487,9 @@ static inline void resource_init(void) | |||
488 | { | 487 | { |
489 | int i; | 488 | int i; |
490 | 489 | ||
490 | if (UNCAC_BASE != IO_BASE) | ||
491 | return; | ||
492 | |||
491 | code_resource.start = virt_to_phys(&_text); | 493 | code_resource.start = virt_to_phys(&_text); |
492 | code_resource.end = virt_to_phys(&_etext) - 1; | 494 | code_resource.end = virt_to_phys(&_etext) - 1; |
493 | data_resource.start = virt_to_phys(&_etext); | 495 | data_resource.start = virt_to_phys(&_etext); |
diff --git a/arch/mips/kernel/signal-common.h b/arch/mips/kernel/signal-common.h index ce6cb915c0a7..b1f09d54ebe6 100644 --- a/arch/mips/kernel/signal-common.h +++ b/arch/mips/kernel/signal-common.h | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | 11 | ||
13 | static inline int | 12 | static inline int |
14 | setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) | 13 | setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) |
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index 402efd27c79e..6b4d9be31615 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1994 - 2000 Ralf Baechle | 7 | * Copyright (C) 1994 - 2000 Ralf Baechle |
8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/cache.h> | 10 | #include <linux/cache.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
diff --git a/arch/mips/kernel/smp-mt.c b/arch/mips/kernel/smp-mt.c index 57770902b9ae..93429a4d3012 100644 --- a/arch/mips/kernel/smp-mt.c +++ b/arch/mips/kernel/smp-mt.c | |||
@@ -130,13 +130,13 @@ irqreturn_t ipi_call_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
130 | 130 | ||
131 | static struct irqaction irq_resched = { | 131 | static struct irqaction irq_resched = { |
132 | .handler = ipi_resched_interrupt, | 132 | .handler = ipi_resched_interrupt, |
133 | .flags = SA_INTERRUPT, | 133 | .flags = IRQF_DISABLED, |
134 | .name = "IPI_resched" | 134 | .name = "IPI_resched" |
135 | }; | 135 | }; |
136 | 136 | ||
137 | static struct irqaction irq_call = { | 137 | static struct irqaction irq_call = { |
138 | .handler = ipi_call_interrupt, | 138 | .handler = ipi_call_interrupt, |
139 | .flags = SA_INTERRUPT, | 139 | .flags = IRQF_DISABLED, |
140 | .name = "IPI_call" | 140 | .name = "IPI_call" |
141 | }; | 141 | }; |
142 | 142 | ||
diff --git a/arch/mips/kernel/smtc-asm.S b/arch/mips/kernel/smtc-asm.S index c9d65196d917..72c6d98f8854 100644 --- a/arch/mips/kernel/smtc-asm.S +++ b/arch/mips/kernel/smtc-asm.S | |||
@@ -52,12 +52,12 @@ FEXPORT(__smtc_ipi_vector) | |||
52 | .set noat | 52 | .set noat |
53 | /* Disable thread scheduling to make Status update atomic */ | 53 | /* Disable thread scheduling to make Status update atomic */ |
54 | DMT 27 # dmt k1 | 54 | DMT 27 # dmt k1 |
55 | ehb | 55 | _ehb |
56 | /* Set EXL */ | 56 | /* Set EXL */ |
57 | mfc0 k0,CP0_STATUS | 57 | mfc0 k0,CP0_STATUS |
58 | ori k0,k0,ST0_EXL | 58 | ori k0,k0,ST0_EXL |
59 | mtc0 k0,CP0_STATUS | 59 | mtc0 k0,CP0_STATUS |
60 | ehb | 60 | _ehb |
61 | /* Thread scheduling now inhibited by EXL. Restore TE state. */ | 61 | /* Thread scheduling now inhibited by EXL. Restore TE state. */ |
62 | andi k1,k1,VPECONTROL_TE | 62 | andi k1,k1,VPECONTROL_TE |
63 | beqz k1,1f | 63 | beqz k1,1f |
@@ -82,7 +82,7 @@ FEXPORT(__smtc_ipi_vector) | |||
82 | li k1,ST0_CU0 | 82 | li k1,ST0_CU0 |
83 | or k1,k1,k0 | 83 | or k1,k1,k0 |
84 | mtc0 k1,CP0_STATUS | 84 | mtc0 k1,CP0_STATUS |
85 | ehb | 85 | _ehb |
86 | get_saved_sp | 86 | get_saved_sp |
87 | /* Interrupting TC will have pre-set values in slots in the new frame */ | 87 | /* Interrupting TC will have pre-set values in slots in the new frame */ |
88 | 2: subu k1,k1,PT_SIZE | 88 | 2: subu k1,k1,PT_SIZE |
@@ -90,7 +90,7 @@ FEXPORT(__smtc_ipi_vector) | |||
90 | lw k0,PT_TCSTATUS(k1) | 90 | lw k0,PT_TCSTATUS(k1) |
91 | /* Write it to TCStatus to restore CU/KSU/IXMT state */ | 91 | /* Write it to TCStatus to restore CU/KSU/IXMT state */ |
92 | mtc0 k0,$2,1 | 92 | mtc0 k0,$2,1 |
93 | ehb | 93 | _ehb |
94 | lw k0,PT_EPC(k1) | 94 | lw k0,PT_EPC(k1) |
95 | mtc0 k0,CP0_EPC | 95 | mtc0 k0,CP0_EPC |
96 | /* Save all will redundantly recompute the SP, but use it for now */ | 96 | /* Save all will redundantly recompute the SP, but use it for now */ |
@@ -116,7 +116,7 @@ LEAF(self_ipi) | |||
116 | mfc0 t0,CP0_TCSTATUS | 116 | mfc0 t0,CP0_TCSTATUS |
117 | ori t1,t0,TCSTATUS_IXMT | 117 | ori t1,t0,TCSTATUS_IXMT |
118 | mtc0 t1,CP0_TCSTATUS | 118 | mtc0 t1,CP0_TCSTATUS |
119 | ehb | 119 | _ehb |
120 | /* We know we're in kernel mode, so prepare stack frame */ | 120 | /* We know we're in kernel mode, so prepare stack frame */ |
121 | subu t1,sp,PT_SIZE | 121 | subu t1,sp,PT_SIZE |
122 | sw ra,PT_EPC(t1) | 122 | sw ra,PT_EPC(t1) |
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c index 70cf09afdf56..a48d9e553083 100644 --- a/arch/mips/kernel/smtc.c +++ b/arch/mips/kernel/smtc.c | |||
@@ -1002,7 +1002,7 @@ void setup_cross_vpe_interrupts(void) | |||
1002 | set_vi_handler(MIPS_CPU_IPI_IRQ, ipi_irq_dispatch); | 1002 | set_vi_handler(MIPS_CPU_IPI_IRQ, ipi_irq_dispatch); |
1003 | 1003 | ||
1004 | irq_ipi.handler = ipi_interrupt; | 1004 | irq_ipi.handler = ipi_interrupt; |
1005 | irq_ipi.flags = SA_INTERRUPT; | 1005 | irq_ipi.flags = IRQF_DISABLED; |
1006 | irq_ipi.name = "SMTC_IPI"; | 1006 | irq_ipi.name = "SMTC_IPI"; |
1007 | 1007 | ||
1008 | setup_irq_smtc(cpu_ipi_irq, &irq_ipi, (0x100 << MIPS_CPU_IPI_IRQ)); | 1008 | setup_irq_smtc(cpu_ipi_irq, &irq_ipi, (0x100 << MIPS_CPU_IPI_IRQ)); |
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index 5e8a18a8e2bd..0721314db657 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 7 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
8 | * Copyright (C) 2001 MIPS Technologies, Inc. | 8 | * Copyright (C) 2001 MIPS Technologies, Inc. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/a.out.h> | 10 | #include <linux/a.out.h> |
12 | #include <linux/capability.h> | 11 | #include <linux/capability.h> |
13 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
@@ -301,7 +300,7 @@ asmlinkage int _sys_sysmips(int cmd, long arg1, int arg2, int arg3) | |||
301 | * | 300 | * |
302 | * This is really horribly ugly. | 301 | * This is really horribly ugly. |
303 | */ | 302 | */ |
304 | asmlinkage int sys_ipc (uint call, int first, int second, | 303 | asmlinkage int sys_ipc (unsigned int call, int first, int second, |
305 | unsigned long third, void __user *ptr, long fifth) | 304 | unsigned long third, void __user *ptr, long fifth) |
306 | { | 305 | { |
307 | int version, ret; | 306 | int version, ret; |
@@ -359,18 +358,18 @@ asmlinkage int sys_ipc (uint call, int first, int second, | |||
359 | case SHMAT: | 358 | case SHMAT: |
360 | switch (version) { | 359 | switch (version) { |
361 | default: { | 360 | default: { |
362 | ulong raddr; | 361 | unsigned long raddr; |
363 | ret = do_shmat (first, (char __user *) ptr, second, | 362 | ret = do_shmat (first, (char __user *) ptr, second, |
364 | &raddr); | 363 | &raddr); |
365 | if (ret) | 364 | if (ret) |
366 | return ret; | 365 | return ret; |
367 | return put_user (raddr, (ulong __user *) third); | 366 | return put_user (raddr, (unsigned long __user *) third); |
368 | } | 367 | } |
369 | case 1: /* iBCS2 emulator entry point */ | 368 | case 1: /* iBCS2 emulator entry point */ |
370 | if (!segment_eq(get_fs(), get_ds())) | 369 | if (!segment_eq(get_fs(), get_ds())) |
371 | return -EINVAL; | 370 | return -EINVAL; |
372 | return do_shmat (first, (char __user *) ptr, second, | 371 | return do_shmat (first, (char __user *) ptr, second, |
373 | (ulong *) third); | 372 | (unsigned long *) third); |
374 | } | 373 | } |
375 | case SHMDT: | 374 | case SHMDT: |
376 | return sys_shmdt ((char __user *)ptr); | 375 | return sys_shmdt ((char __user *)ptr); |
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c index 13ff4da598cd..2393c11d5a20 100644 --- a/arch/mips/kernel/time.c +++ b/arch/mips/kernel/time.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Free Software Foundation; either version 2 of the License, or (at your | 11 | * Free Software Foundation; either version 2 of the License, or (at your |
12 | * option) any later version. | 12 | * option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
@@ -580,7 +579,7 @@ unsigned int mips_hpt_frequency; | |||
580 | 579 | ||
581 | static struct irqaction timer_irqaction = { | 580 | static struct irqaction timer_irqaction = { |
582 | .handler = timer_interrupt, | 581 | .handler = timer_interrupt, |
583 | .flags = SA_INTERRUPT, | 582 | .flags = IRQF_DISABLED, |
584 | .name = "timer", | 583 | .name = "timer", |
585 | }; | 584 | }; |
586 | 585 | ||
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index ad16eceb24dd..8b95eca9ac74 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Copyright (C) 2000, 01 MIPS Technologies, Inc. | 11 | * Copyright (C) 2000, 01 MIPS Technologies, Inc. |
12 | * Copyright (C) 2002, 2003, 2004, 2005 Maciej W. Rozycki | 12 | * Copyright (C) 2002, 2003, 2004, 2005 Maciej W. Rozycki |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
@@ -1050,7 +1049,7 @@ void *set_except_vector(int n, void *addr) | |||
1050 | return (void *)old_handler; | 1049 | return (void *)old_handler; |
1051 | } | 1050 | } |
1052 | 1051 | ||
1053 | #ifdef CONFIG_CPU_MIPSR2 | 1052 | #ifdef CONFIG_CPU_MIPSR2_SRS |
1054 | /* | 1053 | /* |
1055 | * MIPSR2 shadow register set allocation | 1054 | * MIPSR2 shadow register set allocation |
1056 | * FIXME: SMP... | 1055 | * FIXME: SMP... |
@@ -1069,11 +1068,9 @@ static struct shadow_registers { | |||
1069 | 1068 | ||
1070 | static void mips_srs_init(void) | 1069 | static void mips_srs_init(void) |
1071 | { | 1070 | { |
1072 | #ifdef CONFIG_CPU_MIPSR2_SRS | ||
1073 | shadow_registers.sr_supported = ((read_c0_srsctl() >> 26) & 0x0f) + 1; | 1071 | shadow_registers.sr_supported = ((read_c0_srsctl() >> 26) & 0x0f) + 1; |
1074 | printk(KERN_INFO "%d MIPSR2 register sets available\n", | 1072 | printk(KERN_INFO "%d MIPSR2 register sets available\n", |
1075 | shadow_registers.sr_supported); | 1073 | shadow_registers.sr_supported); |
1076 | #endif | ||
1077 | shadow_registers.sr_allocated = 1; /* Set 0 used by kernel */ | 1074 | shadow_registers.sr_allocated = 1; /* Set 0 used by kernel */ |
1078 | } | 1075 | } |
1079 | 1076 | ||
@@ -1198,7 +1195,14 @@ void *set_vi_handler(int n, void *addr) | |||
1198 | { | 1195 | { |
1199 | return set_vi_srs_handler(n, addr, 0); | 1196 | return set_vi_srs_handler(n, addr, 0); |
1200 | } | 1197 | } |
1201 | #endif | 1198 | |
1199 | #else | ||
1200 | |||
1201 | static inline void mips_srs_init(void) | ||
1202 | { | ||
1203 | } | ||
1204 | |||
1205 | #endif /* CONFIG_CPU_MIPSR2_SRS */ | ||
1202 | 1206 | ||
1203 | /* | 1207 | /* |
1204 | * This is used by native signal handling | 1208 | * This is used by native signal handling |
@@ -1388,9 +1392,7 @@ void __init trap_init(void) | |||
1388 | else | 1392 | else |
1389 | ebase = CAC_BASE; | 1393 | ebase = CAC_BASE; |
1390 | 1394 | ||
1391 | #ifdef CONFIG_CPU_MIPSR2 | ||
1392 | mips_srs_init(); | 1395 | mips_srs_init(); |
1393 | #endif | ||
1394 | 1396 | ||
1395 | per_cpu_trap_init(); | 1397 | per_cpu_trap_init(); |
1396 | 1398 | ||
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c index 5b5a3736cbbc..7e7d54823486 100644 --- a/arch/mips/kernel/unaligned.c +++ b/arch/mips/kernel/unaligned.c | |||
@@ -72,7 +72,6 @@ | |||
72 | * A store crossing a page boundary might be executed only partially. | 72 | * A store crossing a page boundary might be executed only partially. |
73 | * Undo the partial store in this case. | 73 | * Undo the partial store in this case. |
74 | */ | 74 | */ |
75 | #include <linux/config.h> | ||
76 | #include <linux/mm.h> | 75 | #include <linux/mm.h> |
77 | #include <linux/module.h> | 76 | #include <linux/module.h> |
78 | #include <linux/signal.h> | 77 | #include <linux/signal.h> |
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index b84d1f9ce28e..0bb9cd889456 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <asm/asm-offsets.h> | 1 | #include <asm/asm-offsets.h> |
3 | #include <asm-generic/vmlinux.lds.h> | 2 | #include <asm-generic/vmlinux.lds.h> |
4 | 3 | ||
diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c index 2d3472b21ebb..9316a024a818 100644 --- a/arch/mips/lasat/interrupt.c +++ b/arch/mips/lasat/interrupt.c | |||
@@ -156,6 +156,6 @@ void __init arch_init_irq(void) | |||
156 | irq_desc[i].status = IRQ_DISABLED; | 156 | irq_desc[i].status = IRQ_DISABLED; |
157 | irq_desc[i].action = 0; | 157 | irq_desc[i].action = 0; |
158 | irq_desc[i].depth = 1; | 158 | irq_desc[i].depth = 1; |
159 | irq_desc[i].handler = &lasat_irq_type; | 159 | irq_desc[i].chip = &lasat_irq_type; |
160 | } | 160 | } |
161 | } | 161 | } |
diff --git a/arch/mips/lasat/lasat_board.c b/arch/mips/lasat/lasat_board.c index fc9b0e2a6be1..d425120b0282 100644 --- a/arch/mips/lasat/lasat_board.c +++ b/arch/mips/lasat/lasat_board.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * | 17 | * |
18 | * Routines specific to the LASAT boards | 18 | * Routines specific to the LASAT boards |
19 | */ | 19 | */ |
20 | #include <linux/config.h> | ||
21 | #include <linux/types.h> | 20 | #include <linux/types.h> |
22 | #include <linux/crc32.h> | 21 | #include <linux/crc32.h> |
23 | #include <asm/lasat/lasat.h> | 22 | #include <asm/lasat/lasat.h> |
diff --git a/arch/mips/lasat/reset.c b/arch/mips/lasat/reset.c index 181bf68175fc..9e22acf03083 100644 --- a/arch/mips/lasat/reset.c +++ b/arch/mips/lasat/reset.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * | 17 | * |
18 | * Reset the LASAT board. | 18 | * Reset the LASAT board. |
19 | */ | 19 | */ |
20 | #include <linux/config.h> | ||
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/pm.h> | 21 | #include <linux/pm.h> |
23 | 22 | ||
diff --git a/arch/mips/lasat/setup.c b/arch/mips/lasat/setup.c index 3f64277429e4..2187e63c6d88 100644 --- a/arch/mips/lasat/setup.c +++ b/arch/mips/lasat/setup.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * | 22 | * |
23 | * Lasat specific setup. | 23 | * Lasat specific setup. |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/init.h> | 25 | #include <linux/init.h> |
27 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
28 | #include <linux/pci.h> | 27 | #include <linux/pci.h> |
diff --git a/arch/mips/lasat/sysctl.c b/arch/mips/lasat/sysctl.c index e3d5aaa90f0d..6dd7ae1b7c25 100644 --- a/arch/mips/lasat/sysctl.c +++ b/arch/mips/lasat/sysctl.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/types.h> | 20 | #include <linux/types.h> |
21 | #include <asm/lasat/lasat.h> | 21 | #include <asm/lasat/lasat.h> |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/module.h> | 23 | #include <linux/module.h> |
25 | #include <linux/sysctl.h> | 24 | #include <linux/sysctl.h> |
26 | #include <linux/stddef.h> | 25 | #include <linux/stddef.h> |
diff --git a/arch/mips/lib-32/dump_tlb.c b/arch/mips/lib-32/dump_tlb.c index c49a925d0169..6a68deb51aae 100644 --- a/arch/mips/lib-32/dump_tlb.c +++ b/arch/mips/lib-32/dump_tlb.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle. | 4 | * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle. |
5 | * Copyright (C) 1999 by Silicon Graphics, Inc. | 5 | * Copyright (C) 1999 by Silicon Graphics, Inc. |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/mm.h> | 8 | #include <linux/mm.h> |
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
diff --git a/arch/mips/lib-64/dump_tlb.c b/arch/mips/lib-64/dump_tlb.c index 11a5f015f040..be8261be679b 100644 --- a/arch/mips/lib-64/dump_tlb.c +++ b/arch/mips/lib-64/dump_tlb.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle. | 4 | * Copyright (C) 1994, 1995 by Waldorf Electronics, written by Ralf Baechle. |
5 | * Copyright (C) 1999 by Silicon Graphics, Inc. | 5 | * Copyright (C) 1999 by Silicon Graphics, Inc. |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/mm.h> | 8 | #include <linux/mm.h> |
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
diff --git a/arch/mips/lib/memcpy.S b/arch/mips/lib/memcpy.S index 7f9aafa4d80e..a526c62cb76a 100644 --- a/arch/mips/lib/memcpy.S +++ b/arch/mips/lib/memcpy.S | |||
@@ -12,7 +12,6 @@ | |||
12 | * | 12 | * |
13 | * Mnemonic names for arguments to memcpy/__copy_user | 13 | * Mnemonic names for arguments to memcpy/__copy_user |
14 | */ | 14 | */ |
15 | #include <linux/config.h> | ||
16 | 15 | ||
17 | /* | 16 | /* |
18 | * Hack to resolve longstanding prefetch issue | 17 | * Hack to resolve longstanding prefetch issue |
diff --git a/arch/mips/math-emu/kernel_linkage.c b/arch/mips/math-emu/kernel_linkage.c index 56ca0c6a7178..5b3390f64917 100644 --- a/arch/mips/math-emu/kernel_linkage.c +++ b/arch/mips/math-emu/kernel_linkage.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * manipulation primitives for the Algorithmics MIPS | 19 | * manipulation primitives for the Algorithmics MIPS |
20 | * FPU Emulator | 20 | * FPU Emulator |
21 | */ | 21 | */ |
22 | #include <linux/config.h> | ||
23 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
24 | #include <asm/processor.h> | 23 | #include <asm/processor.h> |
25 | #include <asm/signal.h> | 24 | #include <asm/signal.h> |
diff --git a/arch/mips/mips-boards/atlas/atlas_int.c b/arch/mips/mips-boards/atlas/atlas_int.c index db53950b7cfb..9dd6b8925581 100644 --- a/arch/mips/mips-boards/atlas/atlas_int.c +++ b/arch/mips/mips-boards/atlas/atlas_int.c | |||
@@ -215,7 +215,7 @@ void __init arch_init_irq(void) | |||
215 | irq_desc[i].status = IRQ_DISABLED; | 215 | irq_desc[i].status = IRQ_DISABLED; |
216 | irq_desc[i].action = 0; | 216 | irq_desc[i].action = 0; |
217 | irq_desc[i].depth = 1; | 217 | irq_desc[i].depth = 1; |
218 | irq_desc[i].handler = &atlas_irq_type; | 218 | irq_desc[i].chip = &atlas_irq_type; |
219 | spin_lock_init(&irq_desc[i].lock); | 219 | spin_lock_init(&irq_desc[i].lock); |
220 | } | 220 | } |
221 | } | 221 | } |
diff --git a/arch/mips/mips-boards/atlas/atlas_setup.c b/arch/mips/mips-boards/atlas/atlas_setup.c index 8cc9effcb832..3a7c3d28aa0d 100644 --- a/arch/mips/mips-boards/atlas/atlas_setup.c +++ b/arch/mips/mips-boards/atlas/atlas_setup.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | 15 | * with this program; if not, write to the Free Software Foundation, Inc., |
16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | 16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
diff --git a/arch/mips/mips-boards/generic/init.c b/arch/mips/mips-boards/generic/init.c index df4e94735604..58a0fe883591 100644 --- a/arch/mips/mips-boards/generic/init.c +++ b/arch/mips/mips-boards/generic/init.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * | 19 | * |
20 | * PROM library initialisation code. | 20 | * PROM library initialisation code. |
21 | */ | 21 | */ |
22 | #include <linux/config.h> | ||
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/string.h> | 23 | #include <linux/string.h> |
25 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
diff --git a/arch/mips/mips-boards/generic/memory.c b/arch/mips/mips-boards/generic/memory.c index fd492562584a..c89fcf9e9c22 100644 --- a/arch/mips/mips-boards/generic/memory.c +++ b/arch/mips/mips-boards/generic/memory.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * PROM library functions for acquiring/using memory descriptors given to | 18 | * PROM library functions for acquiring/using memory descriptors given to |
19 | * us from the YAMON. | 19 | * us from the YAMON. |
20 | */ | 20 | */ |
21 | #include <linux/config.h> | ||
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
23 | #include <linux/mm.h> | 22 | #include <linux/mm.h> |
24 | #include <linux/bootmem.h> | 23 | #include <linux/bootmem.h> |
diff --git a/arch/mips/mips-boards/generic/printf.c b/arch/mips/mips-boards/generic/printf.c index 2c1ab1f19fdc..1a711bd79b51 100644 --- a/arch/mips/mips-boards/generic/printf.c +++ b/arch/mips/mips-boards/generic/printf.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * | 17 | * |
18 | * Putting things on the screen/serial line using YAMONs facilities. | 18 | * Putting things on the screen/serial line using YAMONs facilities. |
19 | */ | 19 | */ |
20 | #include <linux/config.h> | ||
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
23 | #include <linux/serial_reg.h> | 22 | #include <linux/serial_reg.h> |
diff --git a/arch/mips/mips-boards/generic/reset.c b/arch/mips/mips-boards/generic/reset.c index 7213c395fb6b..0996ba368b2a 100644 --- a/arch/mips/mips-boards/generic/reset.c +++ b/arch/mips/mips-boards/generic/reset.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * Reset the MIPS boards. | 22 | * Reset the MIPS boards. |
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/pm.h> | 25 | #include <linux/pm.h> |
27 | 26 | ||
28 | #include <asm/io.h> | 27 | #include <asm/io.h> |
diff --git a/arch/mips/mips-boards/generic/time.c b/arch/mips/mips-boards/generic/time.c index a9f6124b3a22..5e207760826b 100644 --- a/arch/mips/mips-boards/generic/time.c +++ b/arch/mips/mips-boards/generic/time.c | |||
@@ -19,7 +19,6 @@ | |||
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/types.h> | 21 | #include <linux/types.h> |
22 | #include <linux/config.h> | ||
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/kernel_stat.h> | 23 | #include <linux/kernel_stat.h> |
25 | #include <linux/sched.h> | 24 | #include <linux/sched.h> |
diff --git a/arch/mips/mips-boards/malta/malta_setup.c b/arch/mips/mips-boards/malta/malta_setup.c index 0766e434b6bd..bc4ac6f01877 100644 --- a/arch/mips/mips-boards/malta/malta_setup.c +++ b/arch/mips/mips-boards/malta/malta_setup.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | 15 | * with this program; if not, write to the Free Software Foundation, Inc., |
16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | 16 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
21 | #include <linux/ioport.h> | 20 | #include <linux/ioport.h> |
diff --git a/arch/mips/mips-boards/sead/sead_setup.c b/arch/mips/mips-boards/sead/sead_setup.c index 6430f11f3a95..a856bd664879 100644 --- a/arch/mips/mips-boards/sead/sead_setup.c +++ b/arch/mips/mips-boards/sead/sead_setup.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * | 17 | * |
18 | * SEAD specific setup. | 18 | * SEAD specific setup. |
19 | */ | 19 | */ |
20 | #include <linux/config.h> | ||
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |
22 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
23 | #include <linux/ioport.h> | 22 | #include <linux/ioport.h> |
diff --git a/arch/mips/mips-boards/sim/sim_IRQ.c b/arch/mips/mips-boards/sim/sim_IRQ.c index 5b84c7fe1022..ec549f3e2011 100644 --- a/arch/mips/mips-boards/sim/sim_IRQ.c +++ b/arch/mips/mips-boards/sim/sim_IRQ.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * | 17 | * |
18 | * Interrupt exception dispatch code. | 18 | * Interrupt exception dispatch code. |
19 | */ | 19 | */ |
20 | #include <linux/config.h> | ||
21 | 20 | ||
22 | #include <asm/asm.h> | 21 | #include <asm/asm.h> |
23 | #include <asm/mipsregs.h> | 22 | #include <asm/mipsregs.h> |
diff --git a/arch/mips/mips-boards/sim/sim_irq.S b/arch/mips/mips-boards/sim/sim_irq.S index d16cf3822076..b7444e74a6a1 100644 --- a/arch/mips/mips-boards/sim/sim_irq.S +++ b/arch/mips/mips-boards/sim/sim_irq.S | |||
@@ -17,7 +17,6 @@ | |||
17 | * Interrupt exception dispatch code. | 17 | * Interrupt exception dispatch code. |
18 | * | 18 | * |
19 | */ | 19 | */ |
20 | #include <linux/config.h> | ||
21 | 20 | ||
22 | #include <asm/asm.h> | 21 | #include <asm/asm.h> |
23 | #include <asm/mipsregs.h> | 22 | #include <asm/mipsregs.h> |
diff --git a/arch/mips/mips-boards/sim/sim_setup.c b/arch/mips/mips-boards/sim/sim_setup.c index 15a5dac4ae19..3d4a785b565a 100644 --- a/arch/mips/mips-boards/sim/sim_setup.c +++ b/arch/mips/mips-boards/sim/sim_setup.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * | 16 | * |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/string.h> | 20 | #include <linux/string.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
diff --git a/arch/mips/mips-boards/sim/sim_smp.c b/arch/mips/mips-boards/sim/sim_smp.c index 004070956cca..cb47863ecf10 100644 --- a/arch/mips/mips-boards/sim/sim_smp.c +++ b/arch/mips/mips-boards/sim/sim_smp.c | |||
@@ -18,7 +18,6 @@ | |||
18 | /* | 18 | /* |
19 | * Simulator Platform-specific hooks for SMP operation | 19 | * Simulator Platform-specific hooks for SMP operation |
20 | */ | 20 | */ |
21 | #include <linux/config.h> | ||
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
23 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
24 | #include <linux/cpumask.h> | 23 | #include <linux/cpumask.h> |
diff --git a/arch/mips/mips-boards/sim/sim_time.c b/arch/mips/mips-boards/sim/sim_time.c index 18b968c696d1..e7f6003357f7 100644 --- a/arch/mips/mips-boards/sim/sim_time.c +++ b/arch/mips/mips-boards/sim/sim_time.c | |||
@@ -1,5 +1,4 @@ | |||
1 | #include <linux/types.h> | 1 | #include <linux/types.h> |
2 | #include <linux/config.h> | ||
3 | #include <linux/init.h> | 2 | #include <linux/init.h> |
4 | #include <linux/kernel_stat.h> | 3 | #include <linux/kernel_stat.h> |
5 | #include <linux/sched.h> | 4 | #include <linux/sched.h> |
diff --git a/arch/mips/mm/Makefile b/arch/mips/mm/Makefile index 4a6220116c96..19e41fd186c4 100644 --- a/arch/mips/mm/Makefile +++ b/arch/mips/mm/Makefile | |||
@@ -30,6 +30,7 @@ obj-$(CONFIG_CPU_VR41XX) += c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o | |||
30 | obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o | 30 | obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o |
31 | obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o | 31 | obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o |
32 | obj-$(CONFIG_RM7000_CPU_SCACHE) += sc-rm7k.o | 32 | obj-$(CONFIG_RM7000_CPU_SCACHE) += sc-rm7k.o |
33 | obj-$(CONFIG_MIPS_CPU_SCACHE) += sc-mips.o | ||
33 | 34 | ||
34 | # | 35 | # |
35 | # Choose one DMA coherency model | 36 | # Choose one DMA coherency model |
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index 4a43924cd4fc..857b726f4d41 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Ralf Baechle (ralf@gnu.org) | 7 | * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Ralf Baechle (ralf@gnu.org) |
8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 8 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
@@ -60,13 +59,13 @@ static unsigned long scache_size __read_mostly; | |||
60 | /* | 59 | /* |
61 | * Dummy cache handling routines for machines without boardcaches | 60 | * Dummy cache handling routines for machines without boardcaches |
62 | */ | 61 | */ |
63 | static void no_sc_noop(void) {} | 62 | static void cache_noop(void) {} |
64 | 63 | ||
65 | static struct bcache_ops no_sc_ops = { | 64 | static struct bcache_ops no_sc_ops = { |
66 | .bc_enable = (void *)no_sc_noop, | 65 | .bc_enable = (void *)cache_noop, |
67 | .bc_disable = (void *)no_sc_noop, | 66 | .bc_disable = (void *)cache_noop, |
68 | .bc_wback_inv = (void *)no_sc_noop, | 67 | .bc_wback_inv = (void *)cache_noop, |
69 | .bc_inv = (void *)no_sc_noop | 68 | .bc_inv = (void *)cache_noop |
70 | }; | 69 | }; |
71 | 70 | ||
72 | struct bcache_ops *bcops = &no_sc_ops; | 71 | struct bcache_ops *bcops = &no_sc_ops; |
@@ -94,7 +93,9 @@ static inline void r4k_blast_dcache_page_setup(void) | |||
94 | { | 93 | { |
95 | unsigned long dc_lsize = cpu_dcache_line_size(); | 94 | unsigned long dc_lsize = cpu_dcache_line_size(); |
96 | 95 | ||
97 | if (dc_lsize == 16) | 96 | if (dc_lsize == 0) |
97 | r4k_blast_dcache_page = (void *)cache_noop; | ||
98 | else if (dc_lsize == 16) | ||
98 | r4k_blast_dcache_page = blast_dcache16_page; | 99 | r4k_blast_dcache_page = blast_dcache16_page; |
99 | else if (dc_lsize == 32) | 100 | else if (dc_lsize == 32) |
100 | r4k_blast_dcache_page = r4k_blast_dcache_page_dc32; | 101 | r4k_blast_dcache_page = r4k_blast_dcache_page_dc32; |
@@ -106,7 +107,9 @@ static inline void r4k_blast_dcache_page_indexed_setup(void) | |||
106 | { | 107 | { |
107 | unsigned long dc_lsize = cpu_dcache_line_size(); | 108 | unsigned long dc_lsize = cpu_dcache_line_size(); |
108 | 109 | ||
109 | if (dc_lsize == 16) | 110 | if (dc_lsize == 0) |
111 | r4k_blast_dcache_page_indexed = (void *)cache_noop; | ||
112 | else if (dc_lsize == 16) | ||
110 | r4k_blast_dcache_page_indexed = blast_dcache16_page_indexed; | 113 | r4k_blast_dcache_page_indexed = blast_dcache16_page_indexed; |
111 | else if (dc_lsize == 32) | 114 | else if (dc_lsize == 32) |
112 | r4k_blast_dcache_page_indexed = blast_dcache32_page_indexed; | 115 | r4k_blast_dcache_page_indexed = blast_dcache32_page_indexed; |
@@ -118,7 +121,9 @@ static inline void r4k_blast_dcache_setup(void) | |||
118 | { | 121 | { |
119 | unsigned long dc_lsize = cpu_dcache_line_size(); | 122 | unsigned long dc_lsize = cpu_dcache_line_size(); |
120 | 123 | ||
121 | if (dc_lsize == 16) | 124 | if (dc_lsize == 0) |
125 | r4k_blast_dcache = (void *)cache_noop; | ||
126 | else if (dc_lsize == 16) | ||
122 | r4k_blast_dcache = blast_dcache16; | 127 | r4k_blast_dcache = blast_dcache16; |
123 | else if (dc_lsize == 32) | 128 | else if (dc_lsize == 32) |
124 | r4k_blast_dcache = blast_dcache32; | 129 | r4k_blast_dcache = blast_dcache32; |
@@ -201,7 +206,9 @@ static inline void r4k_blast_icache_page_setup(void) | |||
201 | { | 206 | { |
202 | unsigned long ic_lsize = cpu_icache_line_size(); | 207 | unsigned long ic_lsize = cpu_icache_line_size(); |
203 | 208 | ||
204 | if (ic_lsize == 16) | 209 | if (ic_lsize == 0) |
210 | r4k_blast_icache_page = (void *)cache_noop; | ||
211 | else if (ic_lsize == 16) | ||
205 | r4k_blast_icache_page = blast_icache16_page; | 212 | r4k_blast_icache_page = blast_icache16_page; |
206 | else if (ic_lsize == 32) | 213 | else if (ic_lsize == 32) |
207 | r4k_blast_icache_page = blast_icache32_page; | 214 | r4k_blast_icache_page = blast_icache32_page; |
@@ -216,7 +223,9 @@ static inline void r4k_blast_icache_page_indexed_setup(void) | |||
216 | { | 223 | { |
217 | unsigned long ic_lsize = cpu_icache_line_size(); | 224 | unsigned long ic_lsize = cpu_icache_line_size(); |
218 | 225 | ||
219 | if (ic_lsize == 16) | 226 | if (ic_lsize == 0) |
227 | r4k_blast_icache_page_indexed = (void *)cache_noop; | ||
228 | else if (ic_lsize == 16) | ||
220 | r4k_blast_icache_page_indexed = blast_icache16_page_indexed; | 229 | r4k_blast_icache_page_indexed = blast_icache16_page_indexed; |
221 | else if (ic_lsize == 32) { | 230 | else if (ic_lsize == 32) { |
222 | if (R4600_V1_INDEX_ICACHEOP_WAR && cpu_is_r4600_v1_x()) | 231 | if (R4600_V1_INDEX_ICACHEOP_WAR && cpu_is_r4600_v1_x()) |
@@ -238,7 +247,9 @@ static inline void r4k_blast_icache_setup(void) | |||
238 | { | 247 | { |
239 | unsigned long ic_lsize = cpu_icache_line_size(); | 248 | unsigned long ic_lsize = cpu_icache_line_size(); |
240 | 249 | ||
241 | if (ic_lsize == 16) | 250 | if (ic_lsize == 0) |
251 | r4k_blast_icache = (void *)cache_noop; | ||
252 | else if (ic_lsize == 16) | ||
242 | r4k_blast_icache = blast_icache16; | 253 | r4k_blast_icache = blast_icache16; |
243 | else if (ic_lsize == 32) { | 254 | else if (ic_lsize == 32) { |
244 | if (R4600_V1_INDEX_ICACHEOP_WAR && cpu_is_r4600_v1_x()) | 255 | if (R4600_V1_INDEX_ICACHEOP_WAR && cpu_is_r4600_v1_x()) |
@@ -258,7 +269,7 @@ static inline void r4k_blast_scache_page_setup(void) | |||
258 | unsigned long sc_lsize = cpu_scache_line_size(); | 269 | unsigned long sc_lsize = cpu_scache_line_size(); |
259 | 270 | ||
260 | if (scache_size == 0) | 271 | if (scache_size == 0) |
261 | r4k_blast_scache_page = (void *)no_sc_noop; | 272 | r4k_blast_scache_page = (void *)cache_noop; |
262 | else if (sc_lsize == 16) | 273 | else if (sc_lsize == 16) |
263 | r4k_blast_scache_page = blast_scache16_page; | 274 | r4k_blast_scache_page = blast_scache16_page; |
264 | else if (sc_lsize == 32) | 275 | else if (sc_lsize == 32) |
@@ -276,7 +287,7 @@ static inline void r4k_blast_scache_page_indexed_setup(void) | |||
276 | unsigned long sc_lsize = cpu_scache_line_size(); | 287 | unsigned long sc_lsize = cpu_scache_line_size(); |
277 | 288 | ||
278 | if (scache_size == 0) | 289 | if (scache_size == 0) |
279 | r4k_blast_scache_page_indexed = (void *)no_sc_noop; | 290 | r4k_blast_scache_page_indexed = (void *)cache_noop; |
280 | else if (sc_lsize == 16) | 291 | else if (sc_lsize == 16) |
281 | r4k_blast_scache_page_indexed = blast_scache16_page_indexed; | 292 | r4k_blast_scache_page_indexed = blast_scache16_page_indexed; |
282 | else if (sc_lsize == 32) | 293 | else if (sc_lsize == 32) |
@@ -294,7 +305,7 @@ static inline void r4k_blast_scache_setup(void) | |||
294 | unsigned long sc_lsize = cpu_scache_line_size(); | 305 | unsigned long sc_lsize = cpu_scache_line_size(); |
295 | 306 | ||
296 | if (scache_size == 0) | 307 | if (scache_size == 0) |
297 | r4k_blast_scache = (void *)no_sc_noop; | 308 | r4k_blast_scache = (void *)cache_noop; |
298 | else if (sc_lsize == 16) | 309 | else if (sc_lsize == 16) |
299 | r4k_blast_scache = blast_scache16; | 310 | r4k_blast_scache = blast_scache16; |
300 | else if (sc_lsize == 32) | 311 | else if (sc_lsize == 32) |
@@ -508,7 +519,7 @@ static inline void local_r4k_flush_icache_range(void *args) | |||
508 | unsigned long end = fir_args->end; | 519 | unsigned long end = fir_args->end; |
509 | 520 | ||
510 | if (!cpu_has_ic_fills_f_dc) { | 521 | if (!cpu_has_ic_fills_f_dc) { |
511 | if (end - start > dcache_size) { | 522 | if (end - start >= dcache_size) { |
512 | r4k_blast_dcache(); | 523 | r4k_blast_dcache(); |
513 | } else { | 524 | } else { |
514 | R4600_HIT_CACHEOP_WAR_IMPL; | 525 | R4600_HIT_CACHEOP_WAR_IMPL; |
@@ -683,10 +694,12 @@ static void local_r4k_flush_cache_sigtramp(void * arg) | |||
683 | unsigned long addr = (unsigned long) arg; | 694 | unsigned long addr = (unsigned long) arg; |
684 | 695 | ||
685 | R4600_HIT_CACHEOP_WAR_IMPL; | 696 | R4600_HIT_CACHEOP_WAR_IMPL; |
686 | protected_writeback_dcache_line(addr & ~(dc_lsize - 1)); | 697 | if (dc_lsize) |
698 | protected_writeback_dcache_line(addr & ~(dc_lsize - 1)); | ||
687 | if (!cpu_icache_snoops_remote_store && scache_size) | 699 | if (!cpu_icache_snoops_remote_store && scache_size) |
688 | protected_writeback_scache_line(addr & ~(sc_lsize - 1)); | 700 | protected_writeback_scache_line(addr & ~(sc_lsize - 1)); |
689 | protected_flush_icache_line(addr & ~(ic_lsize - 1)); | 701 | if (ic_lsize) |
702 | protected_flush_icache_line(addr & ~(ic_lsize - 1)); | ||
690 | if (MIPS4K_ICACHE_REFILL_WAR) { | 703 | if (MIPS4K_ICACHE_REFILL_WAR) { |
691 | __asm__ __volatile__ ( | 704 | __asm__ __volatile__ ( |
692 | ".set push\n\t" | 705 | ".set push\n\t" |
@@ -973,8 +986,10 @@ static void __init probe_pcache(void) | |||
973 | c->icache.waysize = icache_size / c->icache.ways; | 986 | c->icache.waysize = icache_size / c->icache.ways; |
974 | c->dcache.waysize = dcache_size / c->dcache.ways; | 987 | c->dcache.waysize = dcache_size / c->dcache.ways; |
975 | 988 | ||
976 | c->icache.sets = icache_size / (c->icache.linesz * c->icache.ways); | 989 | c->icache.sets = c->icache.linesz ? |
977 | c->dcache.sets = dcache_size / (c->dcache.linesz * c->dcache.ways); | 990 | icache_size / (c->icache.linesz * c->icache.ways) : 0; |
991 | c->dcache.sets = c->dcache.linesz ? | ||
992 | dcache_size / (c->dcache.linesz * c->dcache.ways) : 0; | ||
978 | 993 | ||
979 | /* | 994 | /* |
980 | * R10000 and R12000 P-caches are odd in a positive way. They're 32kB | 995 | * R10000 and R12000 P-caches are odd in a positive way. They're 32kB |
@@ -993,10 +1008,16 @@ static void __init probe_pcache(void) | |||
993 | break; | 1008 | break; |
994 | case CPU_24K: | 1009 | case CPU_24K: |
995 | case CPU_34K: | 1010 | case CPU_34K: |
996 | if (!(read_c0_config7() & (1 << 16))) | 1011 | case CPU_74K: |
1012 | if ((read_c0_config7() & (1 << 16))) { | ||
1013 | /* effectively physically indexed dcache, | ||
1014 | thus no virtual aliases. */ | ||
1015 | c->dcache.flags |= MIPS_CACHE_PINDEX; | ||
1016 | break; | ||
1017 | } | ||
997 | default: | 1018 | default: |
998 | if (c->dcache.waysize > PAGE_SIZE) | 1019 | if (c->dcache.waysize > PAGE_SIZE) |
999 | c->dcache.flags |= MIPS_CACHE_ALIASES; | 1020 | c->dcache.flags |= MIPS_CACHE_ALIASES; |
1000 | } | 1021 | } |
1001 | 1022 | ||
1002 | switch (c->cputype) { | 1023 | switch (c->cputype) { |
@@ -1092,6 +1113,7 @@ static int __init probe_scache(void) | |||
1092 | 1113 | ||
1093 | extern int r5k_sc_init(void); | 1114 | extern int r5k_sc_init(void); |
1094 | extern int rm7k_sc_init(void); | 1115 | extern int rm7k_sc_init(void); |
1116 | extern int mips_sc_init(void); | ||
1095 | 1117 | ||
1096 | static void __init setup_scache(void) | 1118 | static void __init setup_scache(void) |
1097 | { | 1119 | { |
@@ -1139,17 +1161,29 @@ static void __init setup_scache(void) | |||
1139 | return; | 1161 | return; |
1140 | 1162 | ||
1141 | default: | 1163 | default: |
1164 | if (c->isa_level == MIPS_CPU_ISA_M32R1 || | ||
1165 | c->isa_level == MIPS_CPU_ISA_M32R2 || | ||
1166 | c->isa_level == MIPS_CPU_ISA_M64R1 || | ||
1167 | c->isa_level == MIPS_CPU_ISA_M64R2) { | ||
1168 | #ifdef CONFIG_MIPS_CPU_SCACHE | ||
1169 | if (mips_sc_init ()) { | ||
1170 | scache_size = c->scache.ways * c->scache.sets * c->scache.linesz; | ||
1171 | printk("MIPS secondary cache %ldkB, %s, linesize %d bytes.\n", | ||
1172 | scache_size >> 10, | ||
1173 | way_string[c->scache.ways], c->scache.linesz); | ||
1174 | } | ||
1175 | #else | ||
1176 | if (!(c->scache.flags & MIPS_CACHE_NOT_PRESENT)) | ||
1177 | panic("Dunno how to handle MIPS32 / MIPS64 second level cache"); | ||
1178 | #endif | ||
1179 | return; | ||
1180 | } | ||
1142 | sc_present = 0; | 1181 | sc_present = 0; |
1143 | } | 1182 | } |
1144 | 1183 | ||
1145 | if (!sc_present) | 1184 | if (!sc_present) |
1146 | return; | 1185 | return; |
1147 | 1186 | ||
1148 | if ((c->isa_level == MIPS_CPU_ISA_M32R1 || | ||
1149 | c->isa_level == MIPS_CPU_ISA_M64R1) && | ||
1150 | !(c->scache.flags & MIPS_CACHE_NOT_PRESENT)) | ||
1151 | panic("Dunno how to handle MIPS32 / MIPS64 second level cache"); | ||
1152 | |||
1153 | /* compute a couple of other cache variables */ | 1187 | /* compute a couple of other cache variables */ |
1154 | c->scache.waysize = scache_size / c->scache.ways; | 1188 | c->scache.waysize = scache_size / c->scache.ways; |
1155 | 1189 | ||
@@ -1246,10 +1280,12 @@ void __init r4k_cache_init(void) | |||
1246 | * This code supports virtually indexed processors and will be | 1280 | * This code supports virtually indexed processors and will be |
1247 | * unnecessarily inefficient on physically indexed processors. | 1281 | * unnecessarily inefficient on physically indexed processors. |
1248 | */ | 1282 | */ |
1249 | shm_align_mask = max_t( unsigned long, | 1283 | if (c->dcache.linesz) |
1250 | c->dcache.sets * c->dcache.linesz - 1, | 1284 | shm_align_mask = max_t( unsigned long, |
1251 | PAGE_SIZE - 1); | 1285 | c->dcache.sets * c->dcache.linesz - 1, |
1252 | 1286 | PAGE_SIZE - 1); | |
1287 | else | ||
1288 | shm_align_mask = PAGE_SIZE-1; | ||
1253 | flush_cache_all = r4k_flush_cache_all; | 1289 | flush_cache_all = r4k_flush_cache_all; |
1254 | __flush_cache_all = r4k___flush_cache_all; | 1290 | __flush_cache_all = r4k___flush_cache_all; |
1255 | flush_cache_mm = r4k_flush_cache_mm; | 1291 | flush_cache_mm = r4k_flush_cache_mm; |
diff --git a/arch/mips/mm/c-sb1.c b/arch/mips/mm/c-sb1.c index f9b129491b1e..2d71efb82ac5 100644 --- a/arch/mips/mm/c-sb1.c +++ b/arch/mips/mm/c-sb1.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 19 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
20 | */ | 20 | */ |
21 | #include <linux/config.h> | ||
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
23 | 22 | ||
24 | #include <asm/asm.h> | 23 | #include <asm/asm.h> |
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c index 83a56296be86..ddd3a2de1d73 100644 --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | * Copyright (C) 1994 - 2003 by Ralf Baechle | 6 | * Copyright (C) 1994 - 2003 by Ralf Baechle |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
diff --git a/arch/mips/mm/cerr-sb1.c b/arch/mips/mm/cerr-sb1.c index 1cf3c6006ccd..e19fbb9ee47f 100644 --- a/arch/mips/mm/cerr-sb1.c +++ b/arch/mips/mm/cerr-sb1.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
20 | #include <asm/mipsregs.h> | 19 | #include <asm/mipsregs.h> |
21 | #include <asm/sibyte/sb1250.h> | 20 | #include <asm/sibyte/sb1250.h> |
diff --git a/arch/mips/mm/dma-coherent.c b/arch/mips/mm/dma-coherent.c index f6b3c722230c..7fa5fd16e46b 100644 --- a/arch/mips/mm/dma-coherent.c +++ b/arch/mips/mm/dma-coherent.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 2000, 2001 Ralf Baechle <ralf@gnu.org> | 7 | * Copyright (C) 2000, 2001 Ralf Baechle <ralf@gnu.org> |
8 | * swiped from i386, and cloned for MIPS by Geert, polished by Ralf. | 8 | * swiped from i386, and cloned for MIPS by Geert, polished by Ralf. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/types.h> | 10 | #include <linux/types.h> |
12 | #include <linux/dma-mapping.h> | 11 | #include <linux/dma-mapping.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
diff --git a/arch/mips/mm/dma-noncoherent.c b/arch/mips/mm/dma-noncoherent.c index cd4ea8474f89..2eeffe5c2a3a 100644 --- a/arch/mips/mm/dma-noncoherent.c +++ b/arch/mips/mm/dma-noncoherent.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 2000, 2001 Ralf Baechle <ralf@gnu.org> | 7 | * Copyright (C) 2000, 2001 Ralf Baechle <ralf@gnu.org> |
8 | * swiped from i386, and cloned for MIPS by Geert, polished by Ralf. | 8 | * swiped from i386, and cloned for MIPS by Geert, polished by Ralf. |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/types.h> | 10 | #include <linux/types.h> |
12 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c index 0c544375b856..99ebf3ccc222 100644 --- a/arch/mips/mm/highmem.c +++ b/arch/mips/mm/highmem.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/highmem.h> | 2 | #include <linux/highmem.h> |
4 | #include <asm/tlbflush.h> | 3 | #include <asm/tlbflush.h> |
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index 33f6e1cdfd5b..802bdd32aa2b 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com | 8 | * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com |
9 | * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. | 9 | * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/signal.h> | 13 | #include <linux/signal.h> |
diff --git a/arch/mips/mm/pg-sb1.c b/arch/mips/mm/pg-sb1.c index 148c65b9cd8b..fc3c7878fb45 100644 --- a/arch/mips/mm/pg-sb1.c +++ b/arch/mips/mm/pg-sb1.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * along with this program; if not, write to the Free Software | 22 | * along with this program; if not, write to the Free Software |
23 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 23 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
28 | #include <linux/smp.h> | 27 | #include <linux/smp.h> |
diff --git a/arch/mips/mm/pgtable-32.c b/arch/mips/mm/pgtable-32.c index 4a3c4919e314..4bdaa05f485b 100644 --- a/arch/mips/mm/pgtable-32.c +++ b/arch/mips/mm/pgtable-32.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | * Copyright (C) 2003 by Ralf Baechle | 6 | * Copyright (C) 2003 by Ralf Baechle |
7 | */ | 7 | */ |
8 | #include <linux/config.h> | ||
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
11 | #include <linux/bootmem.h> | 10 | #include <linux/bootmem.h> |
diff --git a/arch/mips/mm/pgtable.c b/arch/mips/mm/pgtable.c index 3fe94202da8c..792c6eb44232 100644 --- a/arch/mips/mm/pgtable.c +++ b/arch/mips/mm/pgtable.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/kernel.h> | 1 | #include <linux/kernel.h> |
3 | #include <linux/mm.h> | 2 | #include <linux/mm.h> |
4 | #include <linux/swap.h> | 3 | #include <linux/swap.h> |
diff --git a/arch/mips/mm/sc-mips.c b/arch/mips/mm/sc-mips.c new file mode 100644 index 000000000000..42b50964c644 --- /dev/null +++ b/arch/mips/mm/sc-mips.c | |||
@@ -0,0 +1,112 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2006 Chris Dearman (chris@mips.com), | ||
3 | */ | ||
4 | #include <linux/init.h> | ||
5 | #include <linux/kernel.h> | ||
6 | #include <linux/sched.h> | ||
7 | #include <linux/mm.h> | ||
8 | |||
9 | #include <asm/mipsregs.h> | ||
10 | #include <asm/bcache.h> | ||
11 | #include <asm/cacheops.h> | ||
12 | #include <asm/page.h> | ||
13 | #include <asm/pgtable.h> | ||
14 | #include <asm/system.h> | ||
15 | #include <asm/mmu_context.h> | ||
16 | #include <asm/r4kcache.h> | ||
17 | |||
18 | /* | ||
19 | * MIPS32/MIPS64 L2 cache handling | ||
20 | */ | ||
21 | |||
22 | /* | ||
23 | * Writeback and invalidate the secondary cache before DMA. | ||
24 | */ | ||
25 | static void mips_sc_wback_inv(unsigned long addr, unsigned long size) | ||
26 | { | ||
27 | blast_scache_range(addr, addr + size); | ||
28 | } | ||
29 | |||
30 | /* | ||
31 | * Invalidate the secondary cache before DMA. | ||
32 | */ | ||
33 | static void mips_sc_inv(unsigned long addr, unsigned long size) | ||
34 | { | ||
35 | blast_inv_scache_range(addr, addr + size); | ||
36 | } | ||
37 | |||
38 | static void mips_sc_enable(void) | ||
39 | { | ||
40 | /* L2 cache is permanently enabled */ | ||
41 | } | ||
42 | |||
43 | static void mips_sc_disable(void) | ||
44 | { | ||
45 | /* L2 cache is permanently enabled */ | ||
46 | } | ||
47 | |||
48 | static struct bcache_ops mips_sc_ops = { | ||
49 | .bc_enable = mips_sc_enable, | ||
50 | .bc_disable = mips_sc_disable, | ||
51 | .bc_wback_inv = mips_sc_wback_inv, | ||
52 | .bc_inv = mips_sc_inv | ||
53 | }; | ||
54 | |||
55 | static inline int __init mips_sc_probe(void) | ||
56 | { | ||
57 | struct cpuinfo_mips *c = ¤t_cpu_data; | ||
58 | unsigned int config1, config2; | ||
59 | unsigned int tmp; | ||
60 | |||
61 | /* Mark as not present until probe completed */ | ||
62 | c->scache.flags |= MIPS_CACHE_NOT_PRESENT; | ||
63 | |||
64 | /* Ignore anything but MIPSxx processors */ | ||
65 | if (c->isa_level != MIPS_CPU_ISA_M32R1 && | ||
66 | c->isa_level != MIPS_CPU_ISA_M32R2 && | ||
67 | c->isa_level != MIPS_CPU_ISA_M64R1 && | ||
68 | c->isa_level != MIPS_CPU_ISA_M64R2) | ||
69 | return 0; | ||
70 | |||
71 | /* Does this MIPS32/MIPS64 CPU have a config2 register? */ | ||
72 | config1 = read_c0_config1(); | ||
73 | if (!(config1 & MIPS_CONF_M)) | ||
74 | return 0; | ||
75 | |||
76 | config2 = read_c0_config2(); | ||
77 | tmp = (config2 >> 4) & 0x0f; | ||
78 | if (0 < tmp && tmp <= 7) | ||
79 | c->scache.linesz = 2 << tmp; | ||
80 | else | ||
81 | return 0; | ||
82 | |||
83 | tmp = (config2 >> 8) & 0x0f; | ||
84 | if (0 <= tmp && tmp <= 7) | ||
85 | c->scache.sets = 64 << tmp; | ||
86 | else | ||
87 | return 0; | ||
88 | |||
89 | tmp = (config2 >> 0) & 0x0f; | ||
90 | if (0 <= tmp && tmp <= 7) | ||
91 | c->scache.ways = tmp + 1; | ||
92 | else | ||
93 | return 0; | ||
94 | |||
95 | c->scache.waysize = c->scache.sets * c->scache.linesz; | ||
96 | c->scache.waybit = __ffs(c->scache.waysize); | ||
97 | |||
98 | c->scache.flags &= ~MIPS_CACHE_NOT_PRESENT; | ||
99 | |||
100 | return 1; | ||
101 | } | ||
102 | |||
103 | int __init mips_sc_init(void) | ||
104 | { | ||
105 | int found = mips_sc_probe (); | ||
106 | if (found) { | ||
107 | mips_sc_enable(); | ||
108 | bcops = &mips_sc_ops; | ||
109 | } | ||
110 | return found; | ||
111 | } | ||
112 | |||
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c index 965cb4c4359d..2cde1b772443 100644 --- a/arch/mips/mm/tlb-r4k.c +++ b/arch/mips/mm/tlb-r4k.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Carsten Langgaard, carstenl@mips.com | 8 | * Carsten Langgaard, carstenl@mips.com |
9 | * Copyright (C) 2002 MIPS Technologies, Inc. All rights reserved. | 9 | * Copyright (C) 2002 MIPS Technologies, Inc. All rights reserved. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
diff --git a/arch/mips/mm/tlb-r8k.c b/arch/mips/mm/tlb-r8k.c index 1bfb09198ce3..266a47d65eed 100644 --- a/arch/mips/mm/tlb-r8k.c +++ b/arch/mips/mm/tlb-r8k.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Carsten Langgaard, carstenl@mips.com | 8 | * Carsten Langgaard, carstenl@mips.com |
9 | * Copyright (C) 2002 MIPS Technologies, Inc. All rights reserved. | 9 | * Copyright (C) 2002 MIPS Technologies, Inc. All rights reserved. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index 54507be2ab5b..e1a8139fc8fb 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c | |||
@@ -21,7 +21,6 @@ | |||
21 | 21 | ||
22 | #include <stdarg.h> | 22 | #include <stdarg.h> |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
26 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
27 | #include <linux/types.h> | 26 | #include <linux/types.h> |
diff --git a/arch/mips/momentum/jaguar_atx/dbg_io.c b/arch/mips/momentum/jaguar_atx/dbg_io.c index d7dea0a136aa..b85a6521f72d 100644 --- a/arch/mips/momentum/jaguar_atx/dbg_io.c +++ b/arch/mips/momentum/jaguar_atx/dbg_io.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | #if defined(CONFIG_REMOTE_DEBUG) | 2 | #if defined(CONFIG_REMOTE_DEBUG) |
4 | 3 | ||
diff --git a/arch/mips/momentum/jaguar_atx/irq.c b/arch/mips/momentum/jaguar_atx/irq.c index ec4032b38f19..f9067469a656 100644 --- a/arch/mips/momentum/jaguar_atx/irq.c +++ b/arch/mips/momentum/jaguar_atx/irq.c | |||
@@ -71,7 +71,7 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs) | |||
71 | } | 71 | } |
72 | 72 | ||
73 | static struct irqaction cascade_mv64340 = { | 73 | static struct irqaction cascade_mv64340 = { |
74 | no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL | 74 | no_action, IRQF_DISABLED, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL |
75 | }; | 75 | }; |
76 | 76 | ||
77 | void __init arch_init_irq(void) | 77 | void __init arch_init_irq(void) |
diff --git a/arch/mips/momentum/jaguar_atx/prom.c b/arch/mips/momentum/jaguar_atx/prom.c index 1cadaa92946a..3d2712929293 100644 --- a/arch/mips/momentum/jaguar_atx/prom.c +++ b/arch/mips/momentum/jaguar_atx/prom.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * | 16 | * |
17 | * Added changes for SMP - Manish Lachwani (lachwani@pmc-sierra.com) | 17 | * Added changes for SMP - Manish Lachwani (lachwani@pmc-sierra.com) |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
22 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
diff --git a/arch/mips/momentum/jaguar_atx/reset.c b/arch/mips/momentum/jaguar_atx/reset.c index ce9fb2e3d952..c73b0897dc52 100644 --- a/arch/mips/momentum/jaguar_atx/reset.c +++ b/arch/mips/momentum/jaguar_atx/reset.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Louis Hamilton, Red Hat, Inc. | 14 | * Louis Hamilton, Red Hat, Inc. |
15 | * hamilton@redhat.com [MIPS64 modifications] | 15 | * hamilton@redhat.com [MIPS64 modifications] |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
19 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
20 | #include <asm/io.h> | 19 | #include <asm/io.h> |
diff --git a/arch/mips/momentum/jaguar_atx/setup.c b/arch/mips/momentum/jaguar_atx/setup.c index df1485501ce6..b08e6a0456c1 100644 --- a/arch/mips/momentum/jaguar_atx/setup.c +++ b/arch/mips/momentum/jaguar_atx/setup.c | |||
@@ -39,7 +39,6 @@ | |||
39 | * with this program; if not, write to the Free Software Foundation, Inc., | 39 | * with this program; if not, write to the Free Software Foundation, Inc., |
40 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 40 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
41 | */ | 41 | */ |
42 | #include <linux/config.h> | ||
43 | #include <linux/bcd.h> | 42 | #include <linux/bcd.h> |
44 | #include <linux/init.h> | 43 | #include <linux/init.h> |
45 | #include <linux/kernel.h> | 44 | #include <linux/kernel.h> |
@@ -370,8 +369,8 @@ void __init plat_mem_setup(void) | |||
370 | pm_power_off = momenco_jaguar_power_off; | 369 | pm_power_off = momenco_jaguar_power_off; |
371 | 370 | ||
372 | /* | 371 | /* |
373 | * initrd_start = (ulong)jaguar_initrd_start; | 372 | * initrd_start = (unsigned long)jaguar_initrd_start; |
374 | * initrd_end = (ulong)jaguar_initrd_start + (ulong)jaguar_initrd_size; | 373 | * initrd_end = (unsigned long)jaguar_initrd_start + (ulong)jaguar_initrd_size; |
375 | * initrd_below_start_ok = 1; | 374 | * initrd_below_start_ok = 1; |
376 | */ | 375 | */ |
377 | 376 | ||
diff --git a/arch/mips/momentum/ocelot_3/irq.c b/arch/mips/momentum/ocelot_3/irq.c index 87c63c340ae3..793782a9c195 100644 --- a/arch/mips/momentum/ocelot_3/irq.c +++ b/arch/mips/momentum/ocelot_3/irq.c | |||
@@ -54,7 +54,7 @@ | |||
54 | #include <asm/system.h> | 54 | #include <asm/system.h> |
55 | 55 | ||
56 | static struct irqaction cascade_mv64340 = { | 56 | static struct irqaction cascade_mv64340 = { |
57 | no_action, SA_INTERRUPT, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL | 57 | no_action, IRQF_DISABLED, CPU_MASK_NONE, "MV64340-Cascade", NULL, NULL |
58 | }; | 58 | }; |
59 | 59 | ||
60 | void __init arch_init_irq(void) | 60 | void __init arch_init_irq(void) |
diff --git a/arch/mips/momentum/ocelot_3/prom.c b/arch/mips/momentum/ocelot_3/prom.c index 9803daa2a792..296d945bc248 100644 --- a/arch/mips/momentum/ocelot_3/prom.c +++ b/arch/mips/momentum/ocelot_3/prom.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * Author: Manish Lachwani, mlachwani@mvista.com | 21 | * Author: Manish Lachwani, mlachwani@mvista.com |
22 | * | 22 | * |
23 | */ | 23 | */ |
24 | #include <linux/config.h> | ||
25 | #include <linux/init.h> | 24 | #include <linux/init.h> |
26 | #include <linux/bootmem.h> | 25 | #include <linux/bootmem.h> |
27 | #include <linux/mv643xx.h> | 26 | #include <linux/mv643xx.h> |
diff --git a/arch/mips/momentum/ocelot_c/cpci-irq.c b/arch/mips/momentum/ocelot_c/cpci-irq.c index bd885785e2f9..31d179c4673f 100644 --- a/arch/mips/momentum/ocelot_c/cpci-irq.c +++ b/arch/mips/momentum/ocelot_c/cpci-irq.c | |||
@@ -147,6 +147,6 @@ void cpci_irq_init(void) | |||
147 | irq_desc[i].status = IRQ_DISABLED; | 147 | irq_desc[i].status = IRQ_DISABLED; |
148 | irq_desc[i].action = 0; | 148 | irq_desc[i].action = 0; |
149 | irq_desc[i].depth = 2; | 149 | irq_desc[i].depth = 2; |
150 | irq_desc[i].handler = &cpci_irq_type; | 150 | irq_desc[i].chip = &cpci_irq_type; |
151 | } | 151 | } |
152 | } | 152 | } |
diff --git a/arch/mips/momentum/ocelot_c/dbg_io.c b/arch/mips/momentum/ocelot_c/dbg_io.c index f0a6a38fcf4d..2128684584f5 100644 --- a/arch/mips/momentum/ocelot_c/dbg_io.c +++ b/arch/mips/momentum/ocelot_c/dbg_io.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | #ifdef CONFIG_KGDB | 2 | #ifdef CONFIG_KGDB |
4 | 3 | ||
diff --git a/arch/mips/momentum/ocelot_c/irq.c b/arch/mips/momentum/ocelot_c/irq.c index 86f61ce59e53..9d44ae1e156b 100644 --- a/arch/mips/momentum/ocelot_c/irq.c +++ b/arch/mips/momentum/ocelot_c/irq.c | |||
@@ -52,11 +52,11 @@ extern void uart_irq_init(void); | |||
52 | extern void cpci_irq_init(void); | 52 | extern void cpci_irq_init(void); |
53 | 53 | ||
54 | static struct irqaction cascade_fpga = { | 54 | static struct irqaction cascade_fpga = { |
55 | no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade via FPGA", NULL, NULL | 55 | no_action, IRQF_DISABLED, CPU_MASK_NONE, "cascade via FPGA", NULL, NULL |
56 | }; | 56 | }; |
57 | 57 | ||
58 | static struct irqaction cascade_mv64340 = { | 58 | static struct irqaction cascade_mv64340 = { |
59 | no_action, SA_INTERRUPT, CPU_MASK_NONE, "cascade via MV64340", NULL, NULL | 59 | no_action, IRQF_DISABLED, CPU_MASK_NONE, "cascade via MV64340", NULL, NULL |
60 | }; | 60 | }; |
61 | 61 | ||
62 | extern void ll_uart_irq(struct pt_regs *regs); | 62 | extern void ll_uart_irq(struct pt_regs *regs); |
diff --git a/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h b/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h index 97fb77dad723..7228cd19e5ea 100644 --- a/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h +++ b/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h | |||
@@ -30,7 +30,6 @@ | |||
30 | #ifndef __OCELOT_C_FPGA_H__ | 30 | #ifndef __OCELOT_C_FPGA_H__ |
31 | #define __OCELOT_C_FPGA_H__ | 31 | #define __OCELOT_C_FPGA_H__ |
32 | 32 | ||
33 | #include <linux/config.h> | ||
34 | 33 | ||
35 | #ifdef CONFIG_64BIT | 34 | #ifdef CONFIG_64BIT |
36 | #define OCELOT_C_CS0_ADDR (0xfffffffffc000000) | 35 | #define OCELOT_C_CS0_ADDR (0xfffffffffc000000) |
diff --git a/arch/mips/momentum/ocelot_c/prom.c b/arch/mips/momentum/ocelot_c/prom.c index e92364482c7b..4c50a147f429 100644 --- a/arch/mips/momentum/ocelot_c/prom.c +++ b/arch/mips/momentum/ocelot_c/prom.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Free Software Foundation; either version 2 of the License, or (at your | 14 | * Free Software Foundation; either version 2 of the License, or (at your |
15 | * option) any later version. | 15 | * option) any later version. |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
diff --git a/arch/mips/momentum/ocelot_c/reset.c b/arch/mips/momentum/ocelot_c/reset.c index 9dcd154c7767..3fdcb64ff1e6 100644 --- a/arch/mips/momentum/ocelot_c/reset.c +++ b/arch/mips/momentum/ocelot_c/reset.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Louis Hamilton, Red Hat, Inc. | 14 | * Louis Hamilton, Red Hat, Inc. |
15 | * hamilton@redhat.com [MIPS64 modifications] | 15 | * hamilton@redhat.com [MIPS64 modifications] |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
19 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
20 | #include <asm/io.h> | 19 | #include <asm/io.h> |
diff --git a/arch/mips/momentum/ocelot_c/setup.c b/arch/mips/momentum/ocelot_c/setup.c index 257e1d1b72dd..6a4519936ee9 100644 --- a/arch/mips/momentum/ocelot_c/setup.c +++ b/arch/mips/momentum/ocelot_c/setup.c | |||
@@ -40,7 +40,6 @@ | |||
40 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 40 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
41 | * | 41 | * |
42 | */ | 42 | */ |
43 | #include <linux/config.h> | ||
44 | #include <linux/bcd.h> | 43 | #include <linux/bcd.h> |
45 | #include <linux/init.h> | 44 | #include <linux/init.h> |
46 | #include <linux/kernel.h> | 45 | #include <linux/kernel.h> |
@@ -242,8 +241,8 @@ void __init plat_mem_setup(void) | |||
242 | pm_power_off = momenco_ocelot_power_off; | 241 | pm_power_off = momenco_ocelot_power_off; |
243 | 242 | ||
244 | /* | 243 | /* |
245 | * initrd_start = (ulong)ocelot_initrd_start; | 244 | * initrd_start = (unsigned long)ocelot_initrd_start; |
246 | * initrd_end = (ulong)ocelot_initrd_start + (ulong)ocelot_initrd_size; | 245 | * initrd_end = (unsigned long)ocelot_initrd_start + (ulong)ocelot_initrd_size; |
247 | * initrd_below_start_ok = 1; | 246 | * initrd_below_start_ok = 1; |
248 | */ | 247 | */ |
249 | 248 | ||
diff --git a/arch/mips/momentum/ocelot_c/uart-irq.c b/arch/mips/momentum/ocelot_c/uart-irq.c index 755bde5146be..852265026fd1 100644 --- a/arch/mips/momentum/ocelot_c/uart-irq.c +++ b/arch/mips/momentum/ocelot_c/uart-irq.c | |||
@@ -137,10 +137,10 @@ void uart_irq_init(void) | |||
137 | irq_desc[80].status = IRQ_DISABLED; | 137 | irq_desc[80].status = IRQ_DISABLED; |
138 | irq_desc[80].action = 0; | 138 | irq_desc[80].action = 0; |
139 | irq_desc[80].depth = 2; | 139 | irq_desc[80].depth = 2; |
140 | irq_desc[80].handler = &uart_irq_type; | 140 | irq_desc[80].chip = &uart_irq_type; |
141 | 141 | ||
142 | irq_desc[81].status = IRQ_DISABLED; | 142 | irq_desc[81].status = IRQ_DISABLED; |
143 | irq_desc[81].action = 0; | 143 | irq_desc[81].action = 0; |
144 | irq_desc[81].depth = 2; | 144 | irq_desc[81].depth = 2; |
145 | irq_desc[81].handler = &uart_irq_type; | 145 | irq_desc[81].chip = &uart_irq_type; |
146 | } | 146 | } |
diff --git a/arch/mips/momentum/ocelot_g/dbg_io.c b/arch/mips/momentum/ocelot_g/dbg_io.c index f0a6a38fcf4d..2128684584f5 100644 --- a/arch/mips/momentum/ocelot_g/dbg_io.c +++ b/arch/mips/momentum/ocelot_g/dbg_io.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | 1 | ||
3 | #ifdef CONFIG_KGDB | 2 | #ifdef CONFIG_KGDB |
4 | 3 | ||
diff --git a/arch/mips/momentum/ocelot_g/gt-irq.c b/arch/mips/momentum/ocelot_g/gt-irq.c index 8bd9b844fa9e..9fb2493fff02 100644 --- a/arch/mips/momentum/ocelot_g/gt-irq.c +++ b/arch/mips/momentum/ocelot_g/gt-irq.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Free Software Foundation; either version 2 of the License, or (at your | 11 | * Free Software Foundation; either version 2 of the License, or (at your |
12 | * option) any later version. | 12 | * option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
@@ -174,7 +173,7 @@ void gt64240_time_init(void) | |||
174 | * the values to the correct interrupt line. | 173 | * the values to the correct interrupt line. |
175 | */ | 174 | */ |
176 | timer.handler = >64240_p0int_irq; | 175 | timer.handler = >64240_p0int_irq; |
177 | timer.flags = SA_SHIRQ | SA_INTERRUPT; | 176 | timer.flags = IRQF_SHARED | IRQF_DISABLED; |
178 | timer.name = "timer"; | 177 | timer.name = "timer"; |
179 | timer.dev_id = NULL; | 178 | timer.dev_id = NULL; |
180 | timer.next = NULL; | 179 | timer.next = NULL; |
diff --git a/arch/mips/momentum/ocelot_g/prom.c b/arch/mips/momentum/ocelot_g/prom.c index 6b4f577c2757..6509a9c9863c 100644 --- a/arch/mips/momentum/ocelot_g/prom.c +++ b/arch/mips/momentum/ocelot_g/prom.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Free Software Foundation; either version 2 of the License, or (at your | 11 | * Free Software Foundation; either version 2 of the License, or (at your |
12 | * option) any later version. | 12 | * option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
17 | #include <linux/sched.h> | 16 | #include <linux/sched.h> |
diff --git a/arch/mips/momentum/ocelot_g/setup.c b/arch/mips/momentum/ocelot_g/setup.c index 72143ab1e900..c580b1de33bc 100644 --- a/arch/mips/momentum/ocelot_g/setup.c +++ b/arch/mips/momentum/ocelot_g/setup.c | |||
@@ -37,7 +37,6 @@ | |||
37 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 37 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
38 | * | 38 | * |
39 | */ | 39 | */ |
40 | #include <linux/config.h> | ||
41 | #include <linux/init.h> | 40 | #include <linux/init.h> |
42 | #include <linux/kernel.h> | 41 | #include <linux/kernel.h> |
43 | #include <linux/types.h> | 42 | #include <linux/types.h> |
@@ -174,8 +173,8 @@ void __init plat_mem_setup(void) | |||
174 | pm_power_off = momenco_ocelot_power_off; | 173 | pm_power_off = momenco_ocelot_power_off; |
175 | 174 | ||
176 | /* | 175 | /* |
177 | * initrd_start = (ulong)ocelot_initrd_start; | 176 | * initrd_start = (unsigned long)ocelot_initrd_start; |
178 | * initrd_end = (ulong)ocelot_initrd_start + (ulong)ocelot_initrd_size; | 177 | * initrd_end = (unsigned long)ocelot_initrd_start + (ulong)ocelot_initrd_size; |
179 | * initrd_below_start_ok = 1; | 178 | * initrd_below_start_ok = 1; |
180 | */ | 179 | */ |
181 | 180 | ||
diff --git a/arch/mips/oprofile/op_model_mipsxx.c b/arch/mips/oprofile/op_model_mipsxx.c index f26a00e13204..a09c5f901233 100644 --- a/arch/mips/oprofile/op_model_mipsxx.c +++ b/arch/mips/oprofile/op_model_mipsxx.c | |||
@@ -12,16 +12,70 @@ | |||
12 | 12 | ||
13 | #include "op_impl.h" | 13 | #include "op_impl.h" |
14 | 14 | ||
15 | #define M_PERFCTL_EXL (1UL << 0) | 15 | #define M_PERFCTL_EXL (1UL << 0) |
16 | #define M_PERFCTL_KERNEL (1UL << 1) | 16 | #define M_PERFCTL_KERNEL (1UL << 1) |
17 | #define M_PERFCTL_SUPERVISOR (1UL << 2) | 17 | #define M_PERFCTL_SUPERVISOR (1UL << 2) |
18 | #define M_PERFCTL_USER (1UL << 3) | 18 | #define M_PERFCTL_USER (1UL << 3) |
19 | #define M_PERFCTL_INTERRUPT_ENABLE (1UL << 4) | 19 | #define M_PERFCTL_INTERRUPT_ENABLE (1UL << 4) |
20 | #define M_PERFCTL_EVENT(event) ((event) << 5) | 20 | #define M_PERFCTL_EVENT(event) ((event) << 5) |
21 | #define M_PERFCTL_WIDE (1UL << 30) | 21 | #define M_PERFCTL_VPEID(vpe) ((vpe) << 16) |
22 | #define M_PERFCTL_MORE (1UL << 31) | 22 | #define M_PERFCTL_MT_EN(filter) ((filter) << 20) |
23 | #define M_TC_EN_ALL M_PERFCTL_MT_EN(0) | ||
24 | #define M_TC_EN_VPE M_PERFCTL_MT_EN(1) | ||
25 | #define M_TC_EN_TC M_PERFCTL_MT_EN(2) | ||
26 | #define M_PERFCTL_TCID(tcid) ((tcid) << 22) | ||
27 | #define M_PERFCTL_WIDE (1UL << 30) | ||
28 | #define M_PERFCTL_MORE (1UL << 31) | ||
29 | |||
30 | #define M_COUNTER_OVERFLOW (1UL << 31) | ||
31 | |||
32 | #ifdef CONFIG_MIPS_MT_SMP | ||
33 | #define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id())) | ||
34 | #else | ||
35 | #define WHAT 0 | ||
36 | #endif | ||
23 | 37 | ||
24 | #define M_COUNTER_OVERFLOW (1UL << 31) | 38 | #define __define_perf_accessors(r, n, np) \ |
39 | \ | ||
40 | static inline unsigned int r_c0_ ## r ## n(void) \ | ||
41 | { \ | ||
42 | unsigned int cpu = smp_processor_id(); \ | ||
43 | \ | ||
44 | switch (cpu) { \ | ||
45 | case 0: \ | ||
46 | return read_c0_ ## r ## n(); \ | ||
47 | case 1: \ | ||
48 | return read_c0_ ## r ## np(); \ | ||
49 | default: \ | ||
50 | BUG(); \ | ||
51 | } \ | ||
52 | } \ | ||
53 | \ | ||
54 | static inline void w_c0_ ## r ## n(unsigned int value) \ | ||
55 | { \ | ||
56 | unsigned int cpu = smp_processor_id(); \ | ||
57 | \ | ||
58 | switch (cpu) { \ | ||
59 | case 0: \ | ||
60 | write_c0_ ## r ## n(value); \ | ||
61 | return; \ | ||
62 | case 1: \ | ||
63 | write_c0_ ## r ## np(value); \ | ||
64 | return; \ | ||
65 | default: \ | ||
66 | BUG(); \ | ||
67 | } \ | ||
68 | } \ | ||
69 | |||
70 | __define_perf_accessors(perfcntr, 0, 2) | ||
71 | __define_perf_accessors(perfcntr, 1, 3) | ||
72 | __define_perf_accessors(perfcntr, 2, 2) | ||
73 | __define_perf_accessors(perfcntr, 3, 2) | ||
74 | |||
75 | __define_perf_accessors(perfctrl, 0, 2) | ||
76 | __define_perf_accessors(perfctrl, 1, 3) | ||
77 | __define_perf_accessors(perfctrl, 2, 2) | ||
78 | __define_perf_accessors(perfctrl, 3, 2) | ||
25 | 79 | ||
26 | struct op_mips_model op_model_mipsxx_ops; | 80 | struct op_mips_model op_model_mipsxx_ops; |
27 | 81 | ||
@@ -66,17 +120,17 @@ static void mipsxx_cpu_setup (void *args) | |||
66 | 120 | ||
67 | switch (counters) { | 121 | switch (counters) { |
68 | case 4: | 122 | case 4: |
69 | write_c0_perfctrl3(0); | 123 | w_c0_perfctrl3(0); |
70 | write_c0_perfcntr3(reg.counter[3]); | 124 | w_c0_perfcntr3(reg.counter[3]); |
71 | case 3: | 125 | case 3: |
72 | write_c0_perfctrl2(0); | 126 | w_c0_perfctrl2(0); |
73 | write_c0_perfcntr2(reg.counter[2]); | 127 | w_c0_perfcntr2(reg.counter[2]); |
74 | case 2: | 128 | case 2: |
75 | write_c0_perfctrl1(0); | 129 | w_c0_perfctrl1(0); |
76 | write_c0_perfcntr1(reg.counter[1]); | 130 | w_c0_perfcntr1(reg.counter[1]); |
77 | case 1: | 131 | case 1: |
78 | write_c0_perfctrl0(0); | 132 | w_c0_perfctrl0(0); |
79 | write_c0_perfcntr0(reg.counter[0]); | 133 | w_c0_perfcntr0(reg.counter[0]); |
80 | } | 134 | } |
81 | } | 135 | } |
82 | 136 | ||
@@ -87,13 +141,13 @@ static void mipsxx_cpu_start(void *args) | |||
87 | 141 | ||
88 | switch (counters) { | 142 | switch (counters) { |
89 | case 4: | 143 | case 4: |
90 | write_c0_perfctrl3(reg.control[3]); | 144 | w_c0_perfctrl3(WHAT | reg.control[3]); |
91 | case 3: | 145 | case 3: |
92 | write_c0_perfctrl2(reg.control[2]); | 146 | w_c0_perfctrl2(WHAT | reg.control[2]); |
93 | case 2: | 147 | case 2: |
94 | write_c0_perfctrl1(reg.control[1]); | 148 | w_c0_perfctrl1(WHAT | reg.control[1]); |
95 | case 1: | 149 | case 1: |
96 | write_c0_perfctrl0(reg.control[0]); | 150 | w_c0_perfctrl0(WHAT | reg.control[0]); |
97 | } | 151 | } |
98 | } | 152 | } |
99 | 153 | ||
@@ -104,13 +158,13 @@ static void mipsxx_cpu_stop(void *args) | |||
104 | 158 | ||
105 | switch (counters) { | 159 | switch (counters) { |
106 | case 4: | 160 | case 4: |
107 | write_c0_perfctrl3(0); | 161 | w_c0_perfctrl3(0); |
108 | case 3: | 162 | case 3: |
109 | write_c0_perfctrl2(0); | 163 | w_c0_perfctrl2(0); |
110 | case 2: | 164 | case 2: |
111 | write_c0_perfctrl1(0); | 165 | w_c0_perfctrl1(0); |
112 | case 1: | 166 | case 1: |
113 | write_c0_perfctrl0(0); | 167 | w_c0_perfctrl0(0); |
114 | } | 168 | } |
115 | } | 169 | } |
116 | 170 | ||
@@ -124,12 +178,12 @@ static int mipsxx_perfcount_handler(struct pt_regs *regs) | |||
124 | switch (counters) { | 178 | switch (counters) { |
125 | #define HANDLE_COUNTER(n) \ | 179 | #define HANDLE_COUNTER(n) \ |
126 | case n + 1: \ | 180 | case n + 1: \ |
127 | control = read_c0_perfctrl ## n(); \ | 181 | control = r_c0_perfctrl ## n(); \ |
128 | counter = read_c0_perfcntr ## n(); \ | 182 | counter = r_c0_perfcntr ## n(); \ |
129 | if ((control & M_PERFCTL_INTERRUPT_ENABLE) && \ | 183 | if ((control & M_PERFCTL_INTERRUPT_ENABLE) && \ |
130 | (counter & M_COUNTER_OVERFLOW)) { \ | 184 | (counter & M_COUNTER_OVERFLOW)) { \ |
131 | oprofile_add_sample(regs, n); \ | 185 | oprofile_add_sample(regs, n); \ |
132 | write_c0_perfcntr ## n(reg.counter[n]); \ | 186 | w_c0_perfcntr ## n(reg.counter[n]); \ |
133 | handled = 1; \ | 187 | handled = 1; \ |
134 | } | 188 | } |
135 | HANDLE_COUNTER(3) | 189 | HANDLE_COUNTER(3) |
@@ -143,35 +197,47 @@ static int mipsxx_perfcount_handler(struct pt_regs *regs) | |||
143 | 197 | ||
144 | #define M_CONFIG1_PC (1 << 4) | 198 | #define M_CONFIG1_PC (1 << 4) |
145 | 199 | ||
146 | static inline int n_counters(void) | 200 | static inline int __n_counters(void) |
147 | { | 201 | { |
148 | if (!(read_c0_config1() & M_CONFIG1_PC)) | 202 | if (!(read_c0_config1() & M_CONFIG1_PC)) |
149 | return 0; | 203 | return 0; |
150 | if (!(read_c0_perfctrl0() & M_PERFCTL_MORE)) | 204 | if (!(r_c0_perfctrl0() & M_PERFCTL_MORE)) |
151 | return 1; | 205 | return 1; |
152 | if (!(read_c0_perfctrl1() & M_PERFCTL_MORE)) | 206 | if (!(r_c0_perfctrl1() & M_PERFCTL_MORE)) |
153 | return 2; | 207 | return 2; |
154 | if (!(read_c0_perfctrl2() & M_PERFCTL_MORE)) | 208 | if (!(r_c0_perfctrl2() & M_PERFCTL_MORE)) |
155 | return 3; | 209 | return 3; |
156 | 210 | ||
157 | return 4; | 211 | return 4; |
158 | } | 212 | } |
159 | 213 | ||
214 | static inline int n_counters(void) | ||
215 | { | ||
216 | int counters = __n_counters(); | ||
217 | |||
218 | #ifndef CONFIG_SMP | ||
219 | if (current_cpu_data.cputype == CPU_34K) | ||
220 | return counters >> 1; | ||
221 | #endif | ||
222 | |||
223 | return counters; | ||
224 | } | ||
225 | |||
160 | static inline void reset_counters(int counters) | 226 | static inline void reset_counters(int counters) |
161 | { | 227 | { |
162 | switch (counters) { | 228 | switch (counters) { |
163 | case 4: | 229 | case 4: |
164 | write_c0_perfctrl3(0); | 230 | w_c0_perfctrl3(0); |
165 | write_c0_perfcntr3(0); | 231 | w_c0_perfcntr3(0); |
166 | case 3: | 232 | case 3: |
167 | write_c0_perfctrl2(0); | 233 | w_c0_perfctrl2(0); |
168 | write_c0_perfcntr2(0); | 234 | w_c0_perfcntr2(0); |
169 | case 2: | 235 | case 2: |
170 | write_c0_perfctrl1(0); | 236 | w_c0_perfctrl1(0); |
171 | write_c0_perfcntr1(0); | 237 | w_c0_perfcntr1(0); |
172 | case 1: | 238 | case 1: |
173 | write_c0_perfctrl0(0); | 239 | w_c0_perfctrl0(0); |
174 | write_c0_perfcntr0(0); | 240 | w_c0_perfcntr0(0); |
175 | } | 241 | } |
176 | } | 242 | } |
177 | 243 | ||
@@ -201,7 +267,6 @@ static int __init mipsxx_init(void) | |||
201 | op_model_mipsxx_ops.cpu_type = "mips/25K"; | 267 | op_model_mipsxx_ops.cpu_type = "mips/25K"; |
202 | break; | 268 | break; |
203 | 269 | ||
204 | #ifndef CONFIG_SMP | ||
205 | case CPU_34K: | 270 | case CPU_34K: |
206 | op_model_mipsxx_ops.cpu_type = "mips/34K"; | 271 | op_model_mipsxx_ops.cpu_type = "mips/34K"; |
207 | break; | 272 | break; |
@@ -209,7 +274,6 @@ static int __init mipsxx_init(void) | |||
209 | case CPU_74K: | 274 | case CPU_74K: |
210 | op_model_mipsxx_ops.cpu_type = "mips/74K"; | 275 | op_model_mipsxx_ops.cpu_type = "mips/74K"; |
211 | break; | 276 | break; |
212 | #endif | ||
213 | 277 | ||
214 | case CPU_5KC: | 278 | case CPU_5KC: |
215 | op_model_mipsxx_ops.cpu_type = "mips/5K"; | 279 | op_model_mipsxx_ops.cpu_type = "mips/5K"; |
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile index 465778c5d816..35d5927706ea 100644 --- a/arch/mips/pci/Makefile +++ b/arch/mips/pci/Makefile | |||
@@ -23,7 +23,7 @@ obj-$(CONFIG_MARKEINS) += ops-emma2rh.o pci-emma2rh.o fixup-emma2rh.o | |||
23 | # | 23 | # |
24 | # These are still pretty much in the old state, watch, go blind. | 24 | # These are still pretty much in the old state, watch, go blind. |
25 | # | 25 | # |
26 | obj-$(CONFIG_BASLER_EXCITE) = ops-titan.o pci-excite.o fixup-excite.o | 26 | obj-$(CONFIG_BASLER_EXCITE) += ops-titan.o pci-excite.o fixup-excite.o |
27 | obj-$(CONFIG_DDB5477) += fixup-ddb5477.o pci-ddb5477.o ops-ddb5477.o | 27 | obj-$(CONFIG_DDB5477) += fixup-ddb5477.o pci-ddb5477.o ops-ddb5477.o |
28 | obj-$(CONFIG_LASAT) += pci-lasat.o | 28 | obj-$(CONFIG_LASAT) += pci-lasat.o |
29 | obj-$(CONFIG_MIPS_ATLAS) += fixup-atlas.o | 29 | obj-$(CONFIG_MIPS_ATLAS) += fixup-atlas.o |
diff --git a/arch/mips/pci/fixup-atlas.c b/arch/mips/pci/fixup-atlas.c index 87920b245931..439510af3037 100644 --- a/arch/mips/pci/fixup-atlas.c +++ b/arch/mips/pci/fixup-atlas.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * with this program; if not, write to the Free Software Foundation, Inc., | 16 | * with this program; if not, write to the Free Software Foundation, Inc., |
17 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | 17 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/pci.h> | 20 | #include <linux/pci.h> |
22 | 21 | ||
diff --git a/arch/mips/pci/fixup-vr4133.c b/arch/mips/pci/fixup-vr4133.c index a8a47b494b23..8e01d0c1b76b 100644 --- a/arch/mips/pci/fixup-vr4133.c +++ b/arch/mips/pci/fixup-vr4133.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * Author: Manish Lachwani (mlachwani@mvista.com) | 15 | * Author: Manish Lachwani (mlachwani@mvista.com) |
16 | * | 16 | * |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/pci.h> | 19 | #include <linux/pci.h> |
21 | 20 | ||
diff --git a/arch/mips/pci/ops-au1000.c b/arch/mips/pci/ops-au1000.c index be1420126c42..0c0c1e6519f9 100644 --- a/arch/mips/pci/ops-au1000.c +++ b/arch/mips/pci/ops-au1000.c | |||
@@ -28,7 +28,6 @@ | |||
28 | * with this program; if not, write to the Free Software Foundation, Inc., | 28 | * with this program; if not, write to the Free Software Foundation, Inc., |
29 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 29 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
30 | */ | 30 | */ |
31 | #include <linux/config.h> | ||
32 | #include <linux/types.h> | 31 | #include <linux/types.h> |
33 | #include <linux/pci.h> | 32 | #include <linux/pci.h> |
34 | #include <linux/kernel.h> | 33 | #include <linux/kernel.h> |
diff --git a/arch/mips/pci/ops-tx4927.c b/arch/mips/pci/ops-tx4927.c index 7688b7711329..150419c8b414 100644 --- a/arch/mips/pci/ops-tx4927.c +++ b/arch/mips/pci/ops-tx4927.c | |||
@@ -119,7 +119,7 @@ static int tx4927_pcibios_read_config(struct pci_bus *bus, unsigned int devfn, i | |||
119 | 119 | ||
120 | switch (size) { | 120 | switch (size) { |
121 | case 1: | 121 | case 1: |
122 | *val = *(volatile u8 *) ((ulong) & tx4927_pcicptr-> | 122 | *val = *(volatile u8 *) ((unsigned long) & tx4927_pcicptr-> |
123 | g2pcfgdata | | 123 | g2pcfgdata | |
124 | #ifdef __LITTLE_ENDIAN | 124 | #ifdef __LITTLE_ENDIAN |
125 | (where & 3)); | 125 | (where & 3)); |
@@ -128,7 +128,7 @@ static int tx4927_pcibios_read_config(struct pci_bus *bus, unsigned int devfn, i | |||
128 | #endif | 128 | #endif |
129 | break; | 129 | break; |
130 | case 2: | 130 | case 2: |
131 | *val = *(volatile u16 *) ((ulong) & tx4927_pcicptr-> | 131 | *val = *(volatile u16 *) ((unsigned long) & tx4927_pcicptr-> |
132 | g2pcfgdata | | 132 | g2pcfgdata | |
133 | #ifdef __LITTLE_ENDIAN | 133 | #ifdef __LITTLE_ENDIAN |
134 | (where & 3)); | 134 | (where & 3)); |
@@ -168,7 +168,7 @@ static int tx4927_pcibios_write_config(struct pci_bus *bus, unsigned int devfn, | |||
168 | 168 | ||
169 | switch (size) { | 169 | switch (size) { |
170 | case 1: | 170 | case 1: |
171 | *(volatile u8 *) ((ulong) & tx4927_pcicptr-> | 171 | *(volatile u8 *) ((unsigned long) & tx4927_pcicptr-> |
172 | g2pcfgdata | | 172 | g2pcfgdata | |
173 | #ifdef __LITTLE_ENDIAN | 173 | #ifdef __LITTLE_ENDIAN |
174 | (where & 3)) = val; | 174 | (where & 3)) = val; |
@@ -178,7 +178,7 @@ static int tx4927_pcibios_write_config(struct pci_bus *bus, unsigned int devfn, | |||
178 | break; | 178 | break; |
179 | 179 | ||
180 | case 2: | 180 | case 2: |
181 | *(volatile u16 *) ((ulong) & tx4927_pcicptr-> | 181 | *(volatile u16 *) ((unsigned long) & tx4927_pcicptr-> |
182 | g2pcfgdata | | 182 | g2pcfgdata | |
183 | #ifdef __LITTLE_ENDIAN | 183 | #ifdef __LITTLE_ENDIAN |
184 | (where & 3)) = val; | 184 | (where & 3)) = val; |
diff --git a/arch/mips/pci/ops-tx4938.c b/arch/mips/pci/ops-tx4938.c index 0ff083489efd..445007084515 100644 --- a/arch/mips/pci/ops-tx4938.c +++ b/arch/mips/pci/ops-tx4938.c | |||
@@ -106,7 +106,7 @@ static int tx4938_pcibios_read_config(struct pci_bus *bus, unsigned int devfn, | |||
106 | 106 | ||
107 | switch (size) { | 107 | switch (size) { |
108 | case 1: | 108 | case 1: |
109 | *val = *(volatile u8 *) ((ulong) & tx4938_pcicptr->g2pcfgdata | | 109 | *val = *(volatile u8 *) ((unsigned long) & tx4938_pcicptr->g2pcfgdata | |
110 | #ifdef __BIG_ENDIAN | 110 | #ifdef __BIG_ENDIAN |
111 | ((where & 3) ^ 3)); | 111 | ((where & 3) ^ 3)); |
112 | #else | 112 | #else |
@@ -114,7 +114,7 @@ static int tx4938_pcibios_read_config(struct pci_bus *bus, unsigned int devfn, | |||
114 | #endif | 114 | #endif |
115 | break; | 115 | break; |
116 | case 2: | 116 | case 2: |
117 | *val = *(volatile u16 *) ((ulong) & tx4938_pcicptr->g2pcfgdata | | 117 | *val = *(volatile u16 *) ((unsigned long) & tx4938_pcicptr->g2pcfgdata | |
118 | #ifdef __BIG_ENDIAN | 118 | #ifdef __BIG_ENDIAN |
119 | ((where & 3) ^ 2)); | 119 | ((where & 3) ^ 2)); |
120 | #else | 120 | #else |
@@ -154,7 +154,7 @@ static int tx4938_pcibios_write_config(struct pci_bus *bus, unsigned int devfn, | |||
154 | 154 | ||
155 | switch (size) { | 155 | switch (size) { |
156 | case 1: | 156 | case 1: |
157 | *(volatile u8 *) ((ulong) & tx4938_pcicptr->g2pcfgdata | | 157 | *(volatile u8 *) ((unsigned long) & tx4938_pcicptr->g2pcfgdata | |
158 | #ifdef __BIG_ENDIAN | 158 | #ifdef __BIG_ENDIAN |
159 | ((where & 3) ^ 3)) = val; | 159 | ((where & 3) ^ 3)) = val; |
160 | #else | 160 | #else |
@@ -162,7 +162,7 @@ static int tx4938_pcibios_write_config(struct pci_bus *bus, unsigned int devfn, | |||
162 | #endif | 162 | #endif |
163 | break; | 163 | break; |
164 | case 2: | 164 | case 2: |
165 | *(volatile u16 *) ((ulong) & tx4938_pcicptr->g2pcfgdata | | 165 | *(volatile u16 *) ((unsigned long) & tx4938_pcicptr->g2pcfgdata | |
166 | #ifdef __BIG_ENDIAN | 166 | #ifdef __BIG_ENDIAN |
167 | ((where & 0x3) ^ 0x2)) = val; | 167 | ((where & 0x3) ^ 0x2)) = val; |
168 | #else | 168 | #else |
diff --git a/arch/mips/pci/pci-bcm1480.c b/arch/mips/pci/pci-bcm1480.c index f4ef1a35ca18..f6774f54cd3c 100644 --- a/arch/mips/pci/pci-bcm1480.c +++ b/arch/mips/pci/pci-bcm1480.c | |||
@@ -32,7 +32,6 @@ | |||
32 | * | 32 | * |
33 | * XXX: AT THIS TIME, ONLY the NATIVE PCI-X INTERFACE IS SUPPORTED. | 33 | * XXX: AT THIS TIME, ONLY the NATIVE PCI-X INTERFACE IS SUPPORTED. |
34 | */ | 34 | */ |
35 | #include <linux/config.h> | ||
36 | #include <linux/types.h> | 35 | #include <linux/types.h> |
37 | #include <linux/pci.h> | 36 | #include <linux/pci.h> |
38 | #include <linux/kernel.h> | 37 | #include <linux/kernel.h> |
diff --git a/arch/mips/pci/pci-bcm1480ht.c b/arch/mips/pci/pci-bcm1480ht.c index a3eebe5890a7..ba2e34b09231 100644 --- a/arch/mips/pci/pci-bcm1480ht.c +++ b/arch/mips/pci/pci-bcm1480ht.c | |||
@@ -31,7 +31,6 @@ | |||
31 | * problem. | 31 | * problem. |
32 | * | 32 | * |
33 | */ | 33 | */ |
34 | #include <linux/config.h> | ||
35 | #include <linux/types.h> | 34 | #include <linux/types.h> |
36 | #include <linux/pci.h> | 35 | #include <linux/pci.h> |
37 | #include <linux/kernel.h> | 36 | #include <linux/kernel.h> |
diff --git a/arch/mips/pci/pci-ip32.c b/arch/mips/pci/pci-ip32.c index 180af89bcb1e..17c7932cf0ae 100644 --- a/arch/mips/pci/pci-ip32.c +++ b/arch/mips/pci/pci-ip32.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 2000, 2001 Keith M Wesolowski | 6 | * Copyright (C) 2000, 2001 Keith M Wesolowski |
7 | * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org) | 7 | * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org) |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/interrupt.h> | 11 | #include <linux/interrupt.h> |
diff --git a/arch/mips/pci/pci-sb1250.c b/arch/mips/pci/pci-sb1250.c index 7cca3bde59b2..80f5e8c4bcd4 100644 --- a/arch/mips/pci/pci-sb1250.c +++ b/arch/mips/pci/pci-sb1250.c | |||
@@ -30,7 +30,6 @@ | |||
30 | * kernel mapped memory. Hopefully neither of these should be a huge | 30 | * kernel mapped memory. Hopefully neither of these should be a huge |
31 | * problem. | 31 | * problem. |
32 | */ | 32 | */ |
33 | #include <linux/config.h> | ||
34 | #include <linux/types.h> | 33 | #include <linux/types.h> |
35 | #include <linux/pci.h> | 34 | #include <linux/pci.h> |
36 | #include <linux/kernel.h> | 35 | #include <linux/kernel.h> |
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c index 4dfce154d4af..5ace368657ad 100644 --- a/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | * Copyright (C) 2003, 04 Ralf Baechle (ralf@linux-mips.org) | 7 | * Copyright (C) 2003, 04 Ralf Baechle (ralf@linux-mips.org) |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/mm.h> | 10 | #include <linux/mm.h> |
12 | #include <linux/bootmem.h> | 11 | #include <linux/bootmem.h> |
@@ -51,11 +50,11 @@ unsigned long PCIBIOS_MIN_MEM = 0; | |||
51 | */ | 50 | */ |
52 | void | 51 | void |
53 | pcibios_align_resource(void *data, struct resource *res, | 52 | pcibios_align_resource(void *data, struct resource *res, |
54 | unsigned long size, unsigned long align) | 53 | resource_size_t size, resource_size_t align) |
55 | { | 54 | { |
56 | struct pci_dev *dev = data; | 55 | struct pci_dev *dev = data; |
57 | struct pci_controller *hose = dev->sysdata; | 56 | struct pci_controller *hose = dev->sysdata; |
58 | unsigned long start = res->start; | 57 | resource_size_t start = res->start; |
59 | 58 | ||
60 | if (res->flags & IORESOURCE_IO) { | 59 | if (res->flags & IORESOURCE_IO) { |
61 | /* Make sure we start at our min on all hoses */ | 60 | /* Make sure we start at our min on all hoses */ |
diff --git a/arch/mips/philips/pnx8550/common/int.c b/arch/mips/philips/pnx8550/common/int.c index 39ee6314f627..8aca317d4624 100644 --- a/arch/mips/philips/pnx8550/common/int.c +++ b/arch/mips/philips/pnx8550/common/int.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | 23 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. |
24 | * | 24 | * |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/irq.h> | 27 | #include <linux/irq.h> |
29 | #include <linux/sched.h> | 28 | #include <linux/sched.h> |
@@ -220,13 +219,13 @@ static struct hw_interrupt_type level_irq_type = { | |||
220 | 219 | ||
221 | static struct irqaction gic_action = { | 220 | static struct irqaction gic_action = { |
222 | .handler = no_action, | 221 | .handler = no_action, |
223 | .flags = SA_INTERRUPT, | 222 | .flags = IRQF_DISABLED, |
224 | .name = "GIC", | 223 | .name = "GIC", |
225 | }; | 224 | }; |
226 | 225 | ||
227 | static struct irqaction timer_action = { | 226 | static struct irqaction timer_action = { |
228 | .handler = no_action, | 227 | .handler = no_action, |
229 | .flags = SA_INTERRUPT, | 228 | .flags = IRQF_DISABLED, |
230 | .name = "Timer", | 229 | .name = "Timer", |
231 | }; | 230 | }; |
232 | 231 | ||
@@ -236,7 +235,7 @@ void __init arch_init_irq(void) | |||
236 | int configPR; | 235 | int configPR; |
237 | 236 | ||
238 | for (i = 0; i < PNX8550_INT_CP0_TOTINT; i++) { | 237 | for (i = 0; i < PNX8550_INT_CP0_TOTINT; i++) { |
239 | irq_desc[i].handler = &level_irq_type; | 238 | irq_desc[i].chip = &level_irq_type; |
240 | pnx8550_ack(i); /* mask the irq just in case */ | 239 | pnx8550_ack(i); /* mask the irq just in case */ |
241 | } | 240 | } |
242 | 241 | ||
@@ -273,7 +272,7 @@ void __init arch_init_irq(void) | |||
273 | /* mask/priority is still 0 so we will not get any | 272 | /* mask/priority is still 0 so we will not get any |
274 | * interrupts until it is unmasked */ | 273 | * interrupts until it is unmasked */ |
275 | 274 | ||
276 | irq_desc[i].handler = &level_irq_type; | 275 | irq_desc[i].chip = &level_irq_type; |
277 | } | 276 | } |
278 | 277 | ||
279 | /* Priority level 0 */ | 278 | /* Priority level 0 */ |
@@ -282,12 +281,12 @@ void __init arch_init_irq(void) | |||
282 | /* Set int vector table address */ | 281 | /* Set int vector table address */ |
283 | PNX8550_GIC_VECTOR_0 = PNX8550_GIC_VECTOR_1 = 0; | 282 | PNX8550_GIC_VECTOR_0 = PNX8550_GIC_VECTOR_1 = 0; |
284 | 283 | ||
285 | irq_desc[MIPS_CPU_GIC_IRQ].handler = &level_irq_type; | 284 | irq_desc[MIPS_CPU_GIC_IRQ].chip = &level_irq_type; |
286 | setup_irq(MIPS_CPU_GIC_IRQ, &gic_action); | 285 | setup_irq(MIPS_CPU_GIC_IRQ, &gic_action); |
287 | 286 | ||
288 | /* init of Timer interrupts */ | 287 | /* init of Timer interrupts */ |
289 | for (i = PNX8550_INT_TIMER_MIN; i <= PNX8550_INT_TIMER_MAX; i++) { | 288 | for (i = PNX8550_INT_TIMER_MIN; i <= PNX8550_INT_TIMER_MAX; i++) { |
290 | irq_desc[i].handler = &level_irq_type; | 289 | irq_desc[i].chip = &level_irq_type; |
291 | } | 290 | } |
292 | 291 | ||
293 | /* Stop Timer 1-3 */ | 292 | /* Stop Timer 1-3 */ |
@@ -295,7 +294,7 @@ void __init arch_init_irq(void) | |||
295 | configPR |= 0x00000038; | 294 | configPR |= 0x00000038; |
296 | write_c0_config7(configPR); | 295 | write_c0_config7(configPR); |
297 | 296 | ||
298 | irq_desc[MIPS_CPU_TIMER_IRQ].handler = &level_irq_type; | 297 | irq_desc[MIPS_CPU_TIMER_IRQ].chip = &level_irq_type; |
299 | setup_irq(MIPS_CPU_TIMER_IRQ, &timer_action); | 298 | setup_irq(MIPS_CPU_TIMER_IRQ, &timer_action); |
300 | } | 299 | } |
301 | 300 | ||
diff --git a/arch/mips/philips/pnx8550/common/setup.c b/arch/mips/philips/pnx8550/common/setup.c index 0e791f4f6ea3..8ac81a9dc293 100644 --- a/arch/mips/philips/pnx8550/common/setup.c +++ b/arch/mips/philips/pnx8550/common/setup.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * with this program; if not, write to the Free Software Foundation, Inc., | 17 | * with this program; if not, write to the Free Software Foundation, Inc., |
18 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | 18 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. |
19 | */ | 19 | */ |
20 | #include <linux/config.h> | ||
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |
22 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
23 | #include <linux/ioport.h> | 22 | #include <linux/ioport.h> |
diff --git a/arch/mips/pmc-sierra/yosemite/ht.c b/arch/mips/pmc-sierra/yosemite/ht.c index 54b65a80abf5..1f7c999eb7c6 100644 --- a/arch/mips/pmc-sierra/yosemite/ht.c +++ b/arch/mips/pmc-sierra/yosemite/ht.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 23 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/types.h> | 26 | #include <linux/types.h> |
28 | #include <linux/pci.h> | 27 | #include <linux/pci.h> |
29 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
@@ -383,12 +382,12 @@ void pcibios_update_resource(struct pci_dev *dev, struct resource *root, | |||
383 | 382 | ||
384 | 383 | ||
385 | void pcibios_align_resource(void *data, struct resource *res, | 384 | void pcibios_align_resource(void *data, struct resource *res, |
386 | unsigned long size, unsigned long align) | 385 | resource_size_t size, resource_size_t align) |
387 | { | 386 | { |
388 | struct pci_dev *dev = data; | 387 | struct pci_dev *dev = data; |
389 | 388 | ||
390 | if (res->flags & IORESOURCE_IO) { | 389 | if (res->flags & IORESOURCE_IO) { |
391 | unsigned long start = res->start; | 390 | resource_size_t start = res->start; |
392 | 391 | ||
393 | /* We need to avoid collisions with `mirrored' VGA ports | 392 | /* We need to avoid collisions with `mirrored' VGA ports |
394 | and other strange ISA hardware, so we always want the | 393 | and other strange ISA hardware, so we always want the |
diff --git a/arch/mips/pmc-sierra/yosemite/irq.c b/arch/mips/pmc-sierra/yosemite/irq.c index a1f524fc4c10..b91d0aa3b7ed 100644 --- a/arch/mips/pmc-sierra/yosemite/irq.c +++ b/arch/mips/pmc-sierra/yosemite/irq.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * | 26 | * |
27 | * Second level Interrupt handlers for the PMC-Sierra Titan/Yosemite board | 27 | * Second level Interrupt handlers for the PMC-Sierra Titan/Yosemite board |
28 | */ | 28 | */ |
29 | #include <linux/config.h> | ||
30 | #include <linux/errno.h> | 29 | #include <linux/errno.h> |
31 | #include <linux/init.h> | 30 | #include <linux/init.h> |
32 | #include <linux/kernel_stat.h> | 31 | #include <linux/kernel_stat.h> |
diff --git a/arch/mips/pmc-sierra/yosemite/prom.c b/arch/mips/pmc-sierra/yosemite/prom.c index 165275c00cbb..9fe4973377c3 100644 --- a/arch/mips/pmc-sierra/yosemite/prom.c +++ b/arch/mips/pmc-sierra/yosemite/prom.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Author: Manish Lachwani (lachwani@pmc-sierra.com) | 8 | * Author: Manish Lachwani (lachwani@pmc-sierra.com) |
9 | * Copyright (C) 2004 Ralf Baechle | 9 | * Copyright (C) 2004 Ralf Baechle |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
diff --git a/arch/mips/sgi-ip22/ip22-eisa.c b/arch/mips/sgi-ip22/ip22-eisa.c index b19820110aa3..ce8e4a7869b0 100644 --- a/arch/mips/sgi-ip22/ip22-eisa.c +++ b/arch/mips/sgi-ip22/ip22-eisa.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * - Fix more bugs. | 19 | * - Fix more bugs. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/eisa.h> | 22 | #include <linux/eisa.h> |
24 | #include <linux/types.h> | 23 | #include <linux/types.h> |
25 | #include <linux/init.h> | 24 | #include <linux/init.h> |
@@ -279,9 +278,9 @@ int __init ip22_eisa_init(void) | |||
279 | irq_desc[i].action = 0; | 278 | irq_desc[i].action = 0; |
280 | irq_desc[i].depth = 1; | 279 | irq_desc[i].depth = 1; |
281 | if (i < (SGINT_EISA + 8)) | 280 | if (i < (SGINT_EISA + 8)) |
282 | irq_desc[i].handler = &ip22_eisa1_irq_type; | 281 | irq_desc[i].chip = &ip22_eisa1_irq_type; |
283 | else | 282 | else |
284 | irq_desc[i].handler = &ip22_eisa2_irq_type; | 283 | irq_desc[i].chip = &ip22_eisa2_irq_type; |
285 | } | 284 | } |
286 | 285 | ||
287 | /* Cannot use request_irq because of kmalloc not being ready at such | 286 | /* Cannot use request_irq because of kmalloc not being ready at such |
diff --git a/arch/mips/sgi-ip22/ip22-int.c b/arch/mips/sgi-ip22/ip22-int.c index fc6a7e2b189c..2d8762818d95 100644 --- a/arch/mips/sgi-ip22/ip22-int.c +++ b/arch/mips/sgi-ip22/ip22-int.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * - Interrupt handling fixes | 9 | * - Interrupt handling fixes |
10 | * Copyright (C) 2001, 2003 Ladislav Michl (ladis@linux-mips.org) | 10 | * Copyright (C) 2001, 2003 Ladislav Michl (ladis@linux-mips.org) |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/kernel_stat.h> | 14 | #include <linux/kernel_stat.h> |
@@ -273,32 +272,32 @@ static void indy_buserror_irq(struct pt_regs *regs) | |||
273 | 272 | ||
274 | static struct irqaction local0_cascade = { | 273 | static struct irqaction local0_cascade = { |
275 | .handler = no_action, | 274 | .handler = no_action, |
276 | .flags = SA_INTERRUPT, | 275 | .flags = IRQF_DISABLED, |
277 | .name = "local0 cascade", | 276 | .name = "local0 cascade", |
278 | }; | 277 | }; |
279 | 278 | ||
280 | static struct irqaction local1_cascade = { | 279 | static struct irqaction local1_cascade = { |
281 | .handler = no_action, | 280 | .handler = no_action, |
282 | .flags = SA_INTERRUPT, | 281 | .flags = IRQF_DISABLED, |
283 | .name = "local1 cascade", | 282 | .name = "local1 cascade", |
284 | }; | 283 | }; |
285 | 284 | ||
286 | static struct irqaction buserr = { | 285 | static struct irqaction buserr = { |
287 | .handler = no_action, | 286 | .handler = no_action, |
288 | .flags = SA_INTERRUPT, | 287 | .flags = IRQF_DISABLED, |
289 | .name = "Bus Error", | 288 | .name = "Bus Error", |
290 | }; | 289 | }; |
291 | 290 | ||
292 | static struct irqaction map0_cascade = { | 291 | static struct irqaction map0_cascade = { |
293 | .handler = no_action, | 292 | .handler = no_action, |
294 | .flags = SA_INTERRUPT, | 293 | .flags = IRQF_DISABLED, |
295 | .name = "mapable0 cascade", | 294 | .name = "mapable0 cascade", |
296 | }; | 295 | }; |
297 | 296 | ||
298 | #ifdef USE_LIO3_IRQ | 297 | #ifdef USE_LIO3_IRQ |
299 | static struct irqaction map1_cascade = { | 298 | static struct irqaction map1_cascade = { |
300 | .handler = no_action, | 299 | .handler = no_action, |
301 | .flags = SA_INTERRUPT, | 300 | .flags = IRQF_DISABLED, |
302 | .name = "mapable1 cascade", | 301 | .name = "mapable1 cascade", |
303 | }; | 302 | }; |
304 | #define SGI_INTERRUPTS SGINT_END | 303 | #define SGI_INTERRUPTS SGINT_END |
@@ -436,7 +435,7 @@ void __init arch_init_irq(void) | |||
436 | irq_desc[i].status = IRQ_DISABLED; | 435 | irq_desc[i].status = IRQ_DISABLED; |
437 | irq_desc[i].action = 0; | 436 | irq_desc[i].action = 0; |
438 | irq_desc[i].depth = 1; | 437 | irq_desc[i].depth = 1; |
439 | irq_desc[i].handler = handler; | 438 | irq_desc[i].chip = handler; |
440 | } | 439 | } |
441 | 440 | ||
442 | /* vector handler. this register the IRQ as non-sharable */ | 441 | /* vector handler. this register the IRQ as non-sharable */ |
diff --git a/arch/mips/sgi-ip22/ip22-setup.c b/arch/mips/sgi-ip22/ip22-setup.c index d7138906eb10..25097ecc9baa 100644 --- a/arch/mips/sgi-ip22/ip22-setup.c +++ b/arch/mips/sgi-ip22/ip22-setup.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) | 4 | * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) |
5 | * Copyright (C) 1997, 1998 Ralf Baechle (ralf@gnu.org) | 5 | * Copyright (C) 1997, 1998 Ralf Baechle (ralf@gnu.org) |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | #include <linux/ds1286.h> | 7 | #include <linux/ds1286.h> |
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
diff --git a/arch/mips/sgi-ip27/Kconfig b/arch/mips/sgi-ip27/Kconfig index f14ef38646d0..5e960ae9735a 100644 --- a/arch/mips/sgi-ip27/Kconfig +++ b/arch/mips/sgi-ip27/Kconfig | |||
@@ -33,12 +33,13 @@ config MAPPED_KERNEL | |||
33 | depends on SGI_IP27 | 33 | depends on SGI_IP27 |
34 | help | 34 | help |
35 | Change the way a Linux kernel is loaded into memory on a MIPS64 | 35 | Change the way a Linux kernel is loaded into memory on a MIPS64 |
36 | machine. This is required in order to support text replication and | 36 | machine. This is required in order to support text replication on |
37 | NUMA. If you need to understand it, read the source code. | 37 | NUMA. If you need to understand it, read the source code. |
38 | 38 | ||
39 | config REPLICATE_KTEXT | 39 | config REPLICATE_KTEXT |
40 | bool "Kernel text replication support" | 40 | bool "Kernel text replication support" |
41 | depends on SGI_IP27 | 41 | depends on SGI_IP27 |
42 | select MAPPED_KERNEL | ||
42 | help | 43 | help |
43 | Say Y here to enable replicating the kernel text across multiple | 44 | Say Y here to enable replicating the kernel text across multiple |
44 | nodes in a NUMA cluster. This trades memory for speed. | 45 | nodes in a NUMA cluster. This trades memory for speed. |
diff --git a/arch/mips/sgi-ip27/Makefile b/arch/mips/sgi-ip27/Makefile index 686ba14e2882..a457263f4391 100644 --- a/arch/mips/sgi-ip27/Makefile +++ b/arch/mips/sgi-ip27/Makefile | |||
@@ -2,11 +2,12 @@ | |||
2 | # Makefile for the IP27 specific kernel interface routines under Linux. | 2 | # Makefile for the IP27 specific kernel interface routines under Linux. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := ip27-berr.o ip27-console.o ip27-irq.o ip27-init.o \ | 5 | obj-y := ip27-berr.o ip27-irq.o ip27-init.o ip27-klconfig.o ip27-klnuma.o \ |
6 | ip27-klconfig.o ip27-klnuma.o ip27-memory.o ip27-nmi.o ip27-reset.o \ | 6 | ip27-memory.o ip27-nmi.o ip27-reset.o ip27-timer.o ip27-hubio.o \ |
7 | ip27-timer.o ip27-hubio.o ip27-xtalk.o | 7 | ip27-xtalk.o |
8 | 8 | ||
9 | obj-$(CONFIG_KGDB) += ip27-dbgio.o | 9 | obj-$(CONFIG_EARLY_PRINTK) += ip27-console.o |
10 | obj-$(CONFIG_SMP) += ip27-smp.o | 10 | obj-$(CONFIG_KGDB) += ip27-dbgio.o |
11 | obj-$(CONFIG_SMP) += ip27-smp.o | ||
11 | 12 | ||
12 | EXTRA_AFLAGS := $(CFLAGS) | 13 | EXTRA_AFLAGS := $(CFLAGS) |
diff --git a/arch/mips/sgi-ip27/ip27-console.c b/arch/mips/sgi-ip27/ip27-console.c index 3e1ac299b804..14211e382374 100644 --- a/arch/mips/sgi-ip27/ip27-console.c +++ b/arch/mips/sgi-ip27/ip27-console.c | |||
@@ -46,33 +46,29 @@ void prom_putchar(char c) | |||
46 | uart->iu_thr = c; | 46 | uart->iu_thr = c; |
47 | } | 47 | } |
48 | 48 | ||
49 | char __init prom_getchar(void) | 49 | static void ioc3_console_write(struct console *con, const char *s, unsigned n) |
50 | { | 50 | { |
51 | return 0; | 51 | while (n-- && *s) { |
52 | if (*s == '\n') | ||
53 | prom_putchar('\r'); | ||
54 | prom_putchar(*s); | ||
55 | s++; | ||
56 | } | ||
52 | } | 57 | } |
53 | 58 | ||
54 | static void inline ioc3_console_probe(void) | 59 | static struct console ioc3_console = { |
55 | { | 60 | .name = "ioc3", |
56 | struct uart_port up; | 61 | .write = ioc3_console_write, |
57 | 62 | .flags = CON_PRINTBUFFER | CON_BOOT, | |
58 | /* | 63 | .index = -1 |
59 | * Register to interrupt zero because we share the interrupt with | 64 | }; |
60 | * the serial driver which we don't properly support yet. | ||
61 | */ | ||
62 | memset(&up, 0, sizeof(up)); | ||
63 | up.membase = (unsigned char *) console_uart(); | ||
64 | up.irq = 0; | ||
65 | up.uartclk = IOC3_CLK; | ||
66 | up.regshift = 0; | ||
67 | up.iotype = UPIO_MEM; | ||
68 | up.flags = IOC3_FLAGS; | ||
69 | up.line = 0; | ||
70 | 65 | ||
71 | if (early_serial_setup(&up)) | 66 | __init void ip27_setup_console(void) |
72 | printk(KERN_ERR "Early serial init of port 0 failed\n"); | 67 | { |
68 | register_console(&ioc3_console); | ||
73 | } | 69 | } |
74 | 70 | ||
75 | __init void ip27_setup_console(void) | 71 | void __init disable_early_printk(void) |
76 | { | 72 | { |
77 | ioc3_console_probe(); | 73 | unregister_console(&ioc3_console); |
78 | } | 74 | } |
diff --git a/arch/mips/sgi-ip27/ip27-init.c b/arch/mips/sgi-ip27/ip27-init.c index a6b490e99709..9094baf31d0e 100644 --- a/arch/mips/sgi-ip27/ip27-init.c +++ b/arch/mips/sgi-ip27/ip27-init.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 2000 - 2001 by Kanoj Sarcar (kanoj@sgi.com) | 6 | * Copyright (C) 2000 - 2001 by Kanoj Sarcar (kanoj@sgi.com) |
7 | * Copyright (C) 2000 - 2001 by Silicon Graphics, Inc. | 7 | * Copyright (C) 2000 - 2001 by Silicon Graphics, Inc. |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c index 0b61a39ce2bb..597ec73359b7 100644 --- a/arch/mips/sgi-ip27/ip27-irq.c +++ b/arch/mips/sgi-ip27/ip27-irq.c | |||
@@ -8,7 +8,6 @@ | |||
8 | 8 | ||
9 | #undef DEBUG | 9 | #undef DEBUG |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/irq.h> | 12 | #include <linux/irq.h> |
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
@@ -119,7 +118,7 @@ static int ms1bit(unsigned long x) | |||
119 | } | 118 | } |
120 | 119 | ||
121 | /* | 120 | /* |
122 | * This code is unnecessarily complex, because we do SA_INTERRUPT | 121 | * This code is unnecessarily complex, because we do IRQF_DISABLED |
123 | * intr enabling. Basically, once we grab the set of intrs we need | 122 | * intr enabling. Basically, once we grab the set of intrs we need |
124 | * to service, we must mask _all_ these interrupts; firstly, to make | 123 | * to service, we must mask _all_ these interrupts; firstly, to make |
125 | * sure the same intr does not intr again, causing recursion that | 124 | * sure the same intr does not intr again, causing recursion that |
@@ -386,7 +385,7 @@ void __devinit register_bridge_irq(unsigned int irq) | |||
386 | irq_desc[irq].status = IRQ_DISABLED; | 385 | irq_desc[irq].status = IRQ_DISABLED; |
387 | irq_desc[irq].action = 0; | 386 | irq_desc[irq].action = 0; |
388 | irq_desc[irq].depth = 1; | 387 | irq_desc[irq].depth = 1; |
389 | irq_desc[irq].handler = &bridge_irq_type; | 388 | irq_desc[irq].chip = &bridge_irq_type; |
390 | } | 389 | } |
391 | 390 | ||
392 | int __devinit request_bridge_irq(struct bridge_controller *bc) | 391 | int __devinit request_bridge_irq(struct bridge_controller *bc) |
diff --git a/arch/mips/sgi-ip27/ip27-klnuma.c b/arch/mips/sgi-ip27/ip27-klnuma.c index 41c3f405e00c..d777b7d1a9fe 100644 --- a/arch/mips/sgi-ip27/ip27-klnuma.c +++ b/arch/mips/sgi-ip27/ip27-klnuma.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * Copyright 2000 - 2001 Silicon Graphics, Inc. | 3 | * Copyright 2000 - 2001 Silicon Graphics, Inc. |
4 | * Copyright 2000 - 2001 Kanoj Sarcar (kanoj@sgi.com) | 4 | * Copyright 2000 - 2001 Kanoj Sarcar (kanoj@sgi.com) |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/init.h> | 6 | #include <linux/init.h> |
8 | #include <linux/mmzone.h> | 7 | #include <linux/mmzone.h> |
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
diff --git a/arch/mips/sgi-ip27/ip27-memory.c b/arch/mips/sgi-ip27/ip27-memory.c index 6c00dce9f73f..efe6971fc800 100644 --- a/arch/mips/sgi-ip27/ip27-memory.c +++ b/arch/mips/sgi-ip27/ip27-memory.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * On SGI IP27 the ARC memory configuration data is completly bogus but | 10 | * On SGI IP27 the ARC memory configuration data is completly bogus but |
11 | * alternate easier to use mechanisms are available. | 11 | * alternate easier to use mechanisms are available. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
diff --git a/arch/mips/sgi-ip27/ip27-reset.c b/arch/mips/sgi-ip27/ip27-reset.c index 4322db57d3c1..c17076108d47 100644 --- a/arch/mips/sgi-ip27/ip27-reset.c +++ b/arch/mips/sgi-ip27/ip27-reset.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1997, 1998, 1999, 2000, 06 by Ralf Baechle | 8 | * Copyright (C) 1997, 1998, 1999, 2000, 06 by Ralf Baechle |
9 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. | 9 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/timer.h> | 13 | #include <linux/timer.h> |
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c index 1fb860c7ac6d..3ca614a851e5 100644 --- a/arch/mips/sgi-ip27/ip27-timer.c +++ b/arch/mips/sgi-ip27/ip27-timer.c | |||
@@ -217,7 +217,7 @@ static struct hw_interrupt_type rt_irq_type = { | |||
217 | 217 | ||
218 | static struct irqaction rt_irqaction = { | 218 | static struct irqaction rt_irqaction = { |
219 | .handler = ip27_rt_timer_interrupt, | 219 | .handler = ip27_rt_timer_interrupt, |
220 | .flags = SA_INTERRUPT, | 220 | .flags = IRQF_DISABLED, |
221 | .mask = CPU_MASK_NONE, | 221 | .mask = CPU_MASK_NONE, |
222 | .name = "timer" | 222 | .name = "timer" |
223 | }; | 223 | }; |
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c index 8ba08047d164..3b7e74b6222e 100644 --- a/arch/mips/sgi-ip32/ip32-irq.c +++ b/arch/mips/sgi-ip32/ip32-irq.c | |||
@@ -125,9 +125,9 @@ extern irqreturn_t crime_memerr_intr (int irq, void *dev_id, | |||
125 | extern irqreturn_t crime_cpuerr_intr (int irq, void *dev_id, | 125 | extern irqreturn_t crime_cpuerr_intr (int irq, void *dev_id, |
126 | struct pt_regs *regs); | 126 | struct pt_regs *regs); |
127 | 127 | ||
128 | struct irqaction memerr_irq = { crime_memerr_intr, SA_INTERRUPT, | 128 | struct irqaction memerr_irq = { crime_memerr_intr, IRQF_DISABLED, |
129 | CPU_MASK_NONE, "CRIME memory error", NULL, NULL }; | 129 | CPU_MASK_NONE, "CRIME memory error", NULL, NULL }; |
130 | struct irqaction cpuerr_irq = { crime_cpuerr_intr, SA_INTERRUPT, | 130 | struct irqaction cpuerr_irq = { crime_cpuerr_intr, IRQF_DISABLED, |
131 | CPU_MASK_NONE, "CRIME CPU error", NULL, NULL }; | 131 | CPU_MASK_NONE, "CRIME CPU error", NULL, NULL }; |
132 | 132 | ||
133 | /* | 133 | /* |
@@ -316,9 +316,9 @@ static struct hw_interrupt_type ip32_macepci_interrupt = { | |||
316 | MACEISA_KEYB_POLL_INT | \ | 316 | MACEISA_KEYB_POLL_INT | \ |
317 | MACEISA_MOUSE_INT | \ | 317 | MACEISA_MOUSE_INT | \ |
318 | MACEISA_MOUSE_POLL_INT | \ | 318 | MACEISA_MOUSE_POLL_INT | \ |
319 | MACEISA_TIMER0_INT | \ | 319 | MACEIIRQF_TIMER0_INT | \ |
320 | MACEISA_TIMER1_INT | \ | 320 | MACEIIRQF_TIMER1_INT | \ |
321 | MACEISA_TIMER2_INT) | 321 | MACEIIRQF_TIMER2_INT) |
322 | #define MACEISA_SUPERIO_INT (MACEISA_PARALLEL_INT | \ | 322 | #define MACEISA_SUPERIO_INT (MACEISA_PARALLEL_INT | \ |
323 | MACEISA_PAR_CTXA_INT | \ | 323 | MACEISA_PAR_CTXA_INT | \ |
324 | MACEISA_PAR_CTXB_INT | \ | 324 | MACEISA_PAR_CTXB_INT | \ |
@@ -349,7 +349,7 @@ static void enable_maceisa_irq (unsigned int irq) | |||
349 | case MACEISA_AUDIO_SW_IRQ ... MACEISA_AUDIO3_MERR_IRQ: | 349 | case MACEISA_AUDIO_SW_IRQ ... MACEISA_AUDIO3_MERR_IRQ: |
350 | crime_int = MACE_AUDIO_INT; | 350 | crime_int = MACE_AUDIO_INT; |
351 | break; | 351 | break; |
352 | case MACEISA_RTC_IRQ ... MACEISA_TIMER2_IRQ: | 352 | case MACEISA_RTC_IRQ ... MACEIIRQF_TIMER2_IRQ: |
353 | crime_int = MACE_MISC_INT; | 353 | crime_int = MACE_MISC_INT; |
354 | break; | 354 | break; |
355 | case MACEISA_PARALLEL_IRQ ... MACEISA_SERIAL2_RDMAOR_IRQ: | 355 | case MACEISA_PARALLEL_IRQ ... MACEISA_SERIAL2_RDMAOR_IRQ: |
@@ -591,7 +591,7 @@ void __init arch_init_irq(void) | |||
591 | irq_desc[irq].status = IRQ_DISABLED; | 591 | irq_desc[irq].status = IRQ_DISABLED; |
592 | irq_desc[irq].action = 0; | 592 | irq_desc[irq].action = 0; |
593 | irq_desc[irq].depth = 0; | 593 | irq_desc[irq].depth = 0; |
594 | irq_desc[irq].handler = controller; | 594 | irq_desc[irq].chip = controller; |
595 | } | 595 | } |
596 | setup_irq(CRIME_MEMERR_IRQ, &memerr_irq); | 596 | setup_irq(CRIME_MEMERR_IRQ, &memerr_irq); |
597 | setup_irq(CRIME_CPUERR_IRQ, &cpuerr_irq); | 597 | setup_irq(CRIME_CPUERR_IRQ, &cpuerr_irq); |
diff --git a/arch/mips/sgi-ip32/ip32-setup.c b/arch/mips/sgi-ip32/ip32-setup.c index acbdad06fac1..240a2f981d08 100644 --- a/arch/mips/sgi-ip32/ip32-setup.c +++ b/arch/mips/sgi-ip32/ip32-setup.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 2000 Harald Koerfgen | 8 | * Copyright (C) 2000 Harald Koerfgen |
9 | * Copyright (C) 2002, 2003, 2005 Ilya A. Volynets | 9 | * Copyright (C) 2002, 2003, 2005 Ilya A. Volynets |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/console.h> | 11 | #include <linux/console.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
diff --git a/arch/mips/sibyte/Kconfig b/arch/mips/sibyte/Kconfig index 816aee7fcd25..ec7a2cffacf0 100644 --- a/arch/mips/sibyte/Kconfig +++ b/arch/mips/sibyte/Kconfig | |||
@@ -3,6 +3,7 @@ config SIBYTE_SB1250 | |||
3 | select HW_HAS_PCI | 3 | select HW_HAS_PCI |
4 | select SIBYTE_HAS_LDT | 4 | select SIBYTE_HAS_LDT |
5 | select SIBYTE_SB1xxx_SOC | 5 | select SIBYTE_SB1xxx_SOC |
6 | select SYS_SUPPORTS_SMP | ||
6 | 7 | ||
7 | config SIBYTE_BCM1120 | 8 | config SIBYTE_BCM1120 |
8 | bool | 9 | bool |
@@ -30,11 +31,13 @@ config SIBYTE_BCM1x80 | |||
30 | bool | 31 | bool |
31 | select HW_HAS_PCI | 32 | select HW_HAS_PCI |
32 | select SIBYTE_SB1xxx_SOC | 33 | select SIBYTE_SB1xxx_SOC |
34 | select SYS_SUPPORTS_SMP | ||
33 | 35 | ||
34 | config SIBYTE_BCM1x55 | 36 | config SIBYTE_BCM1x55 |
35 | bool | 37 | bool |
36 | select HW_HAS_PCI | 38 | select HW_HAS_PCI |
37 | select SIBYTE_SB1xxx_SOC | 39 | select SIBYTE_SB1xxx_SOC |
40 | select SYS_SUPPORTS_SMP | ||
38 | 41 | ||
39 | config SIBYTE_SB1xxx_SOC | 42 | config SIBYTE_SB1xxx_SOC |
40 | bool | 43 | bool |
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c index e61760b14d99..29d3bbb5847d 100644 --- a/arch/mips/sibyte/bcm1480/irq.c +++ b/arch/mips/sibyte/bcm1480/irq.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/linkage.h> | 20 | #include <linux/linkage.h> |
@@ -276,10 +275,10 @@ void __init init_bcm1480_irqs(void) | |||
276 | irq_desc[i].action = 0; | 275 | irq_desc[i].action = 0; |
277 | irq_desc[i].depth = 1; | 276 | irq_desc[i].depth = 1; |
278 | if (i < BCM1480_NR_IRQS) { | 277 | if (i < BCM1480_NR_IRQS) { |
279 | irq_desc[i].handler = &bcm1480_irq_type; | 278 | irq_desc[i].chip = &bcm1480_irq_type; |
280 | bcm1480_irq_owner[i] = 0; | 279 | bcm1480_irq_owner[i] = 0; |
281 | } else { | 280 | } else { |
282 | irq_desc[i].handler = &no_irq_type; | 281 | irq_desc[i].chip = &no_irq_type; |
283 | } | 282 | } |
284 | } | 283 | } |
285 | } | 284 | } |
diff --git a/arch/mips/sibyte/bcm1480/setup.c b/arch/mips/sibyte/bcm1480/setup.c index d90a0b87874c..8236d0c48542 100644 --- a/arch/mips/sibyte/bcm1480/setup.c +++ b/arch/mips/sibyte/bcm1480/setup.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/reboot.h> | 19 | #include <linux/reboot.h> |
21 | #include <linux/string.h> | 20 | #include <linux/string.h> |
diff --git a/arch/mips/sibyte/bcm1480/time.c b/arch/mips/sibyte/bcm1480/time.c index efaf83efd2e4..7e088f6c4a86 100644 --- a/arch/mips/sibyte/bcm1480/time.c +++ b/arch/mips/sibyte/bcm1480/time.c | |||
@@ -25,7 +25,6 @@ | |||
25 | * code to do general bookkeeping (e.g. update jiffies, run | 25 | * code to do general bookkeeping (e.g. update jiffies, run |
26 | * bottom halves, etc.) | 26 | * bottom halves, etc.) |
27 | */ | 27 | */ |
28 | #include <linux/config.h> | ||
29 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
30 | #include <linux/sched.h> | 29 | #include <linux/sched.h> |
31 | #include <linux/spinlock.h> | 30 | #include <linux/spinlock.h> |
diff --git a/arch/mips/sibyte/cfe/console.c b/arch/mips/sibyte/cfe/console.c index 7721100d0275..c6ec748175b0 100644 --- a/arch/mips/sibyte/cfe/console.c +++ b/arch/mips/sibyte/cfe/console.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/init.h> | 1 | #include <linux/init.h> |
3 | #include <linux/errno.h> | 2 | #include <linux/errno.h> |
4 | #include <linux/console.h> | 3 | #include <linux/console.h> |
diff --git a/arch/mips/sibyte/cfe/setup.c b/arch/mips/sibyte/cfe/setup.c index ea308029450e..6e8952da6e2a 100644 --- a/arch/mips/sibyte/cfe/setup.c +++ b/arch/mips/sibyte/cfe/setup.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/linkage.h> | 21 | #include <linux/linkage.h> |
diff --git a/arch/mips/sibyte/sb1250/bus_watcher.c b/arch/mips/sibyte/sb1250/bus_watcher.c index 482dee054e68..bb90649fbc48 100644 --- a/arch/mips/sibyte/sb1250/bus_watcher.c +++ b/arch/mips/sibyte/sb1250/bus_watcher.c | |||
@@ -25,7 +25,6 @@ | |||
25 | * /proc/bus_watcher if PROC_FS is on. | 25 | * /proc/bus_watcher if PROC_FS is on. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include <linux/config.h> | ||
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
30 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
31 | #include <linux/interrupt.h> | 30 | #include <linux/interrupt.h> |
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c index f853c32f60a0..1d280aabcf6a 100644 --- a/arch/mips/sibyte/sb1250/irq.c +++ b/arch/mips/sibyte/sb1250/irq.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/linkage.h> | 20 | #include <linux/linkage.h> |
@@ -246,10 +245,10 @@ void __init init_sb1250_irqs(void) | |||
246 | irq_desc[i].action = 0; | 245 | irq_desc[i].action = 0; |
247 | irq_desc[i].depth = 1; | 246 | irq_desc[i].depth = 1; |
248 | if (i < SB1250_NR_IRQS) { | 247 | if (i < SB1250_NR_IRQS) { |
249 | irq_desc[i].handler = &sb1250_irq_type; | 248 | irq_desc[i].chip = &sb1250_irq_type; |
250 | sb1250_irq_owner[i] = 0; | 249 | sb1250_irq_owner[i] = 0; |
251 | } else { | 250 | } else { |
252 | irq_desc[i].handler = &no_irq_type; | 251 | irq_desc[i].chip = &no_irq_type; |
253 | } | 252 | } |
254 | } | 253 | } |
255 | } | 254 | } |
diff --git a/arch/mips/sibyte/sb1250/prom.c b/arch/mips/sibyte/sb1250/prom.c index 742043f8d755..3c33a4517bc3 100644 --- a/arch/mips/sibyte/sb1250/prom.c +++ b/arch/mips/sibyte/sb1250/prom.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
diff --git a/arch/mips/sibyte/sb1250/setup.c b/arch/mips/sibyte/sb1250/setup.c index fde4751c84fe..d0ee1d5b8223 100644 --- a/arch/mips/sibyte/sb1250/setup.c +++ b/arch/mips/sibyte/sb1250/setup.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * along with this program; if not, write to the Free Software | 15 | * along with this program; if not, write to the Free Software |
16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/reboot.h> | 20 | #include <linux/reboot.h> |
diff --git a/arch/mips/sibyte/sb1250/time.c b/arch/mips/sibyte/sb1250/time.c index 1588f6debd90..4b669dc86ef4 100644 --- a/arch/mips/sibyte/sb1250/time.c +++ b/arch/mips/sibyte/sb1250/time.c | |||
@@ -25,7 +25,6 @@ | |||
25 | * code to do general bookkeeping (e.g. update jiffies, run | 25 | * code to do general bookkeeping (e.g. update jiffies, run |
26 | * bottom halves, etc.) | 26 | * bottom halves, etc.) |
27 | */ | 27 | */ |
28 | #include <linux/config.h> | ||
29 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
30 | #include <linux/sched.h> | 29 | #include <linux/sched.h> |
31 | #include <linux/spinlock.h> | 30 | #include <linux/spinlock.h> |
diff --git a/arch/mips/sibyte/swarm/setup.c b/arch/mips/sibyte/swarm/setup.c index f9e694988cdf..a9a6dbc06849 100644 --- a/arch/mips/sibyte/swarm/setup.c +++ b/arch/mips/sibyte/swarm/setup.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * Setup code for the SWARM board | 21 | * Setup code for the SWARM board |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/spinlock.h> | 24 | #include <linux/spinlock.h> |
26 | #include <linux/mm.h> | 25 | #include <linux/mm.h> |
27 | #include <linux/bootmem.h> | 26 | #include <linux/bootmem.h> |
diff --git a/arch/mips/sni/irq.c b/arch/mips/sni/irq.c index 7365b4853ddb..c19e158ec402 100644 --- a/arch/mips/sni/irq.c +++ b/arch/mips/sni/irq.c | |||
@@ -203,7 +203,7 @@ void __init arch_init_irq(void) | |||
203 | irq_desc[i].status = IRQ_DISABLED; | 203 | irq_desc[i].status = IRQ_DISABLED; |
204 | irq_desc[i].action = 0; | 204 | irq_desc[i].action = 0; |
205 | irq_desc[i].depth = 1; | 205 | irq_desc[i].depth = 1; |
206 | irq_desc[i].handler = &pciasic_irq_type; | 206 | irq_desc[i].chip = &pciasic_irq_type; |
207 | } | 207 | } |
208 | 208 | ||
209 | change_c0_status(ST0_IM, IE_IRQ1|IE_IRQ2|IE_IRQ3|IE_IRQ4); | 209 | change_c0_status(ST0_IM, IE_IRQ1|IE_IRQ2|IE_IRQ3|IE_IRQ4); |
diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c index a050bb6ae704..870486d6cd75 100644 --- a/arch/mips/sni/setup.c +++ b/arch/mips/sni/setup.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | * Copyright (C) 1996, 97, 98, 2000, 03, 04, 06 Ralf Baechle (ralf@linux-mips.org) | 8 | * Copyright (C) 1996, 97, 98, 2000, 03, 04, 06 Ralf Baechle (ralf@linux-mips.org) |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | #include <linux/eisa.h> | 10 | #include <linux/eisa.h> |
12 | #include <linux/hdreg.h> | 11 | #include <linux/hdreg.h> |
13 | #include <linux/ioport.h> | 12 | #include <linux/ioport.h> |
diff --git a/arch/mips/tx4927/common/tx4927_irq.c b/arch/mips/tx4927/common/tx4927_irq.c index 8ca68015cf40..ae9d5653a863 100644 --- a/arch/mips/tx4927/common/tx4927_irq.c +++ b/arch/mips/tx4927/common/tx4927_irq.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <linux/errno.h> | 26 | #include <linux/errno.h> |
28 | #include <linux/init.h> | 27 | #include <linux/init.h> |
29 | #include <linux/kernel_stat.h> | 28 | #include <linux/kernel_stat.h> |
@@ -227,7 +226,7 @@ static void __init tx4927_irq_cp0_init(void) | |||
227 | irq_desc[i].status = IRQ_DISABLED; | 226 | irq_desc[i].status = IRQ_DISABLED; |
228 | irq_desc[i].action = 0; | 227 | irq_desc[i].action = 0; |
229 | irq_desc[i].depth = 1; | 228 | irq_desc[i].depth = 1; |
230 | irq_desc[i].handler = &tx4927_irq_cp0_type; | 229 | irq_desc[i].chip = &tx4927_irq_cp0_type; |
231 | } | 230 | } |
232 | 231 | ||
233 | return; | 232 | return; |
@@ -435,7 +434,7 @@ static void __init tx4927_irq_pic_init(void) | |||
435 | irq_desc[i].status = IRQ_DISABLED; | 434 | irq_desc[i].status = IRQ_DISABLED; |
436 | irq_desc[i].action = 0; | 435 | irq_desc[i].action = 0; |
437 | irq_desc[i].depth = 2; | 436 | irq_desc[i].depth = 2; |
438 | irq_desc[i].handler = &tx4927_irq_pic_type; | 437 | irq_desc[i].chip = &tx4927_irq_pic_type; |
439 | } | 438 | } |
440 | 439 | ||
441 | setup_irq(TX4927_IRQ_NEST_PIC_ON_CP0, &tx4927_irq_pic_action); | 440 | setup_irq(TX4927_IRQ_NEST_PIC_ON_CP0, &tx4927_irq_pic_action); |
diff --git a/arch/mips/tx4927/common/tx4927_setup.c b/arch/mips/tx4927/common/tx4927_setup.c index 81a5acfe8c42..64a1b394b252 100644 --- a/arch/mips/tx4927/common/tx4927_setup.c +++ b/arch/mips/tx4927/common/tx4927_setup.c | |||
@@ -24,7 +24,6 @@ | |||
24 | * with this program; if not, write to the Free Software Foundation, Inc., | 24 | * with this program; if not, write to the Free Software Foundation, Inc., |
25 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 25 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
26 | */ | 26 | */ |
27 | #include <linux/config.h> | ||
28 | #include <linux/errno.h> | 27 | #include <linux/errno.h> |
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
30 | #include <linux/kernel_stat.h> | 29 | #include <linux/kernel_stat.h> |
diff --git a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c index aee07ff2212a..ec0a0de3083d 100644 --- a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c +++ b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c | |||
@@ -111,7 +111,6 @@ SuperIO/PS2/Mouse, using INTR via ISA IRQ12 (mouse not currently supported) | |||
111 | JP7 is not bus master -- do NOT use -- only 4 pci bus master's allowed -- SouthBridge, JP4, JP5, JP6 | 111 | JP7 is not bus master -- do NOT use -- only 4 pci bus master's allowed -- SouthBridge, JP4, JP5, JP6 |
112 | */ | 112 | */ |
113 | 113 | ||
114 | #include <linux/config.h> | ||
115 | #include <linux/init.h> | 114 | #include <linux/init.h> |
116 | #include <linux/kernel.h> | 115 | #include <linux/kernel.h> |
117 | #include <linux/types.h> | 116 | #include <linux/types.h> |
@@ -338,7 +337,7 @@ int toshiba_rbtx4927_irq_nested(int sw_irq) | |||
338 | } | 337 | } |
339 | 338 | ||
340 | //#define TOSHIBA_RBTX4927_PIC_ACTION(s) { no_action, 0, CPU_MASK_NONE, s, NULL, NULL } | 339 | //#define TOSHIBA_RBTX4927_PIC_ACTION(s) { no_action, 0, CPU_MASK_NONE, s, NULL, NULL } |
341 | #define TOSHIBA_RBTX4927_PIC_ACTION(s) { no_action, SA_SHIRQ, CPU_MASK_NONE, s, NULL, NULL } | 340 | #define TOSHIBA_RBTX4927_PIC_ACTION(s) { no_action, IRQF_SHARED, CPU_MASK_NONE, s, NULL, NULL } |
342 | static struct irqaction toshiba_rbtx4927_irq_ioc_action = | 341 | static struct irqaction toshiba_rbtx4927_irq_ioc_action = |
343 | TOSHIBA_RBTX4927_PIC_ACTION(TOSHIBA_RBTX4927_IOC_NAME); | 342 | TOSHIBA_RBTX4927_PIC_ACTION(TOSHIBA_RBTX4927_IOC_NAME); |
344 | #ifdef CONFIG_TOSHIBA_FPCIB0 | 343 | #ifdef CONFIG_TOSHIBA_FPCIB0 |
@@ -368,7 +367,7 @@ static void __init toshiba_rbtx4927_irq_ioc_init(void) | |||
368 | irq_desc[i].status = IRQ_DISABLED; | 367 | irq_desc[i].status = IRQ_DISABLED; |
369 | irq_desc[i].action = 0; | 368 | irq_desc[i].action = 0; |
370 | irq_desc[i].depth = 3; | 369 | irq_desc[i].depth = 3; |
371 | irq_desc[i].handler = &toshiba_rbtx4927_irq_ioc_type; | 370 | irq_desc[i].chip = &toshiba_rbtx4927_irq_ioc_type; |
372 | } | 371 | } |
373 | 372 | ||
374 | setup_irq(TOSHIBA_RBTX4927_IRQ_NEST_IOC_ON_PIC, | 373 | setup_irq(TOSHIBA_RBTX4927_IRQ_NEST_IOC_ON_PIC, |
@@ -526,7 +525,7 @@ static void __init toshiba_rbtx4927_irq_isa_init(void) | |||
526 | irq_desc[i].action = 0; | 525 | irq_desc[i].action = 0; |
527 | irq_desc[i].depth = | 526 | irq_desc[i].depth = |
528 | ((i < TOSHIBA_RBTX4927_IRQ_ISA_MID) ? (4) : (5)); | 527 | ((i < TOSHIBA_RBTX4927_IRQ_ISA_MID) ? (4) : (5)); |
529 | irq_desc[i].handler = &toshiba_rbtx4927_irq_isa_type; | 528 | irq_desc[i].chip = &toshiba_rbtx4927_irq_isa_type; |
530 | } | 529 | } |
531 | 530 | ||
532 | setup_irq(TOSHIBA_RBTX4927_IRQ_NEST_ISA_ON_IOC, | 531 | setup_irq(TOSHIBA_RBTX4927_IRQ_NEST_ISA_ON_IOC, |
@@ -692,13 +691,13 @@ void toshiba_rbtx4927_irq_dump(char *key) | |||
692 | { | 691 | { |
693 | u32 i, j = 0; | 692 | u32 i, j = 0; |
694 | for (i = 0; i < NR_IRQS; i++) { | 693 | for (i = 0; i < NR_IRQS; i++) { |
695 | if (strcmp(irq_desc[i].handler->typename, "none") | 694 | if (strcmp(irq_desc[i].chip->typename, "none") |
696 | == 0) | 695 | == 0) |
697 | continue; | 696 | continue; |
698 | 697 | ||
699 | if ((i >= 1) | 698 | if ((i >= 1) |
700 | && (irq_desc[i - 1].handler->typename == | 699 | && (irq_desc[i - 1].chip->typename == |
701 | irq_desc[i].handler->typename)) { | 700 | irq_desc[i].chip->typename)) { |
702 | j++; | 701 | j++; |
703 | } else { | 702 | } else { |
704 | j = 0; | 703 | j = 0; |
@@ -707,12 +706,12 @@ void toshiba_rbtx4927_irq_dump(char *key) | |||
707 | (TOSHIBA_RBTX4927_IRQ_INFO, | 706 | (TOSHIBA_RBTX4927_IRQ_INFO, |
708 | "%s irq=0x%02x/%3d s=0x%08x h=0x%08x a=0x%08x ah=0x%08x d=%1d n=%s/%02d\n", | 707 | "%s irq=0x%02x/%3d s=0x%08x h=0x%08x a=0x%08x ah=0x%08x d=%1d n=%s/%02d\n", |
709 | key, i, i, irq_desc[i].status, | 708 | key, i, i, irq_desc[i].status, |
710 | (u32) irq_desc[i].handler, | 709 | (u32) irq_desc[i].chip, |
711 | (u32) irq_desc[i].action, | 710 | (u32) irq_desc[i].action, |
712 | (u32) (irq_desc[i].action ? irq_desc[i]. | 711 | (u32) (irq_desc[i].action ? irq_desc[i]. |
713 | action->handler : 0), | 712 | action->handler : 0), |
714 | irq_desc[i].depth, | 713 | irq_desc[i].depth, |
715 | irq_desc[i].handler->typename, j); | 714 | irq_desc[i].chip->typename, j); |
716 | } | 715 | } |
717 | } | 716 | } |
718 | #endif | 717 | #endif |
diff --git a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c index 6dcf077f61a0..f0d70c476005 100644 --- a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c +++ b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c | |||
@@ -42,7 +42,6 @@ | |||
42 | * with this program; if not, write to the Free Software Foundation, Inc., | 42 | * with this program; if not, write to the Free Software Foundation, Inc., |
43 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 43 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
44 | */ | 44 | */ |
45 | #include <linux/config.h> | ||
46 | #include <linux/init.h> | 45 | #include <linux/init.h> |
47 | #include <linux/kernel.h> | 46 | #include <linux/kernel.h> |
48 | #include <linux/types.h> | 47 | #include <linux/types.h> |
diff --git a/arch/mips/tx4938/common/irq.c b/arch/mips/tx4938/common/irq.c index 873805178d8e..0b2f8c849218 100644 --- a/arch/mips/tx4938/common/irq.c +++ b/arch/mips/tx4938/common/irq.c | |||
@@ -102,7 +102,7 @@ tx4938_irq_cp0_init(void) | |||
102 | irq_desc[i].status = IRQ_DISABLED; | 102 | irq_desc[i].status = IRQ_DISABLED; |
103 | irq_desc[i].action = 0; | 103 | irq_desc[i].action = 0; |
104 | irq_desc[i].depth = 1; | 104 | irq_desc[i].depth = 1; |
105 | irq_desc[i].handler = &tx4938_irq_cp0_type; | 105 | irq_desc[i].chip = &tx4938_irq_cp0_type; |
106 | } | 106 | } |
107 | 107 | ||
108 | return; | 108 | return; |
@@ -306,7 +306,7 @@ tx4938_irq_pic_init(void) | |||
306 | irq_desc[i].status = IRQ_DISABLED; | 306 | irq_desc[i].status = IRQ_DISABLED; |
307 | irq_desc[i].action = 0; | 307 | irq_desc[i].action = 0; |
308 | irq_desc[i].depth = 2; | 308 | irq_desc[i].depth = 2; |
309 | irq_desc[i].handler = &tx4938_irq_pic_type; | 309 | irq_desc[i].chip = &tx4938_irq_pic_type; |
310 | } | 310 | } |
311 | 311 | ||
312 | setup_irq(TX4938_IRQ_NEST_PIC_ON_CP0, &tx4938_irq_pic_action); | 312 | setup_irq(TX4938_IRQ_NEST_PIC_ON_CP0, &tx4938_irq_pic_action); |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/irq.c b/arch/mips/tx4938/toshiba_rbtx4938/irq.c index 9cd9c0fe2265..3b8245dc5bd3 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/irq.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/irq.c | |||
@@ -146,7 +146,7 @@ toshiba_rbtx4938_irq_ioc_init(void) | |||
146 | irq_desc[i].status = IRQ_DISABLED; | 146 | irq_desc[i].status = IRQ_DISABLED; |
147 | irq_desc[i].action = 0; | 147 | irq_desc[i].action = 0; |
148 | irq_desc[i].depth = 3; | 148 | irq_desc[i].depth = 3; |
149 | irq_desc[i].handler = &toshiba_rbtx4938_irq_ioc_type; | 149 | irq_desc[i].chip = &toshiba_rbtx4938_irq_ioc_type; |
150 | } | 150 | } |
151 | 151 | ||
152 | setup_irq(RBTX4938_IRQ_IOCINT, | 152 | setup_irq(RBTX4938_IRQ_IOCINT, |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/prom.c b/arch/mips/tx4938/toshiba_rbtx4938/prom.c index 7df8b32ba265..e44daf30a7c1 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/prom.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/prom.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) | 12 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/setup.c b/arch/mips/tx4938/toshiba_rbtx4938/setup.c index 96e833cd4c14..66163ba452c8 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/setup.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/setup.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * | 11 | * |
12 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) | 12 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/ioport.h> | 16 | #include <linux/ioport.h> |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c b/arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c index 951a208ee9b3..89596e62f909 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) | 10 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
15 | #include <linux/proc_fs.h> | 14 | #include <linux/proc_fs.h> |
diff --git a/arch/mips/vr41xx/common/icu.c b/arch/mips/vr41xx/common/icu.c index 07ae19cf0c29..b9323302cc4e 100644 --- a/arch/mips/vr41xx/common/icu.c +++ b/arch/mips/vr41xx/common/icu.c | |||
@@ -722,10 +722,10 @@ static int __init vr41xx_icu_init(void) | |||
722 | icu2_write(MGIUINTHREG, 0xffff); | 722 | icu2_write(MGIUINTHREG, 0xffff); |
723 | 723 | ||
724 | for (i = SYSINT1_IRQ_BASE; i <= SYSINT1_IRQ_LAST; i++) | 724 | for (i = SYSINT1_IRQ_BASE; i <= SYSINT1_IRQ_LAST; i++) |
725 | irq_desc[i].handler = &sysint1_irq_type; | 725 | irq_desc[i].chip = &sysint1_irq_type; |
726 | 726 | ||
727 | for (i = SYSINT2_IRQ_BASE; i <= SYSINT2_IRQ_LAST; i++) | 727 | for (i = SYSINT2_IRQ_BASE; i <= SYSINT2_IRQ_LAST; i++) |
728 | irq_desc[i].handler = &sysint2_irq_type; | 728 | irq_desc[i].chip = &sysint2_irq_type; |
729 | 729 | ||
730 | cascade_irq(INT0_IRQ, icu_get_irq); | 730 | cascade_irq(INT0_IRQ, icu_get_irq); |
731 | cascade_irq(INT1_IRQ, icu_get_irq); | 731 | cascade_irq(INT1_IRQ, icu_get_irq); |
diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c index 86796bb63c3c..66aa50802deb 100644 --- a/arch/mips/vr41xx/common/irq.c +++ b/arch/mips/vr41xx/common/irq.c | |||
@@ -73,13 +73,13 @@ static void irq_dispatch(unsigned int irq, struct pt_regs *regs) | |||
73 | if (cascade->get_irq != NULL) { | 73 | if (cascade->get_irq != NULL) { |
74 | unsigned int source_irq = irq; | 74 | unsigned int source_irq = irq; |
75 | desc = irq_desc + source_irq; | 75 | desc = irq_desc + source_irq; |
76 | desc->handler->ack(source_irq); | 76 | desc->chip->ack(source_irq); |
77 | irq = cascade->get_irq(irq, regs); | 77 | irq = cascade->get_irq(irq, regs); |
78 | if (irq < 0) | 78 | if (irq < 0) |
79 | atomic_inc(&irq_err_count); | 79 | atomic_inc(&irq_err_count); |
80 | else | 80 | else |
81 | irq_dispatch(irq, regs); | 81 | irq_dispatch(irq, regs); |
82 | desc->handler->end(source_irq); | 82 | desc->chip->end(source_irq); |
83 | } else | 83 | } else |
84 | do_IRQ(irq, regs); | 84 | do_IRQ(irq, regs); |
85 | } | 85 | } |
diff --git a/arch/mips/vr41xx/common/vrc4173.c b/arch/mips/vr41xx/common/vrc4173.c index 3e31f8193d21..2d287b8893d9 100644 --- a/arch/mips/vr41xx/common/vrc4173.c +++ b/arch/mips/vr41xx/common/vrc4173.c | |||
@@ -483,7 +483,7 @@ static inline int vrc4173_icu_init(int cascade_irq) | |||
483 | vr41xx_set_irq_level(GIU_IRQ_TO_PIN(cascade_irq), LEVEL_LOW); | 483 | vr41xx_set_irq_level(GIU_IRQ_TO_PIN(cascade_irq), LEVEL_LOW); |
484 | 484 | ||
485 | for (i = VRC4173_IRQ_BASE; i <= VRC4173_IRQ_LAST; i++) | 485 | for (i = VRC4173_IRQ_BASE; i <= VRC4173_IRQ_LAST; i++) |
486 | irq_desc[i].handler = &vrc4173_irq_type; | 486 | irq_desc[i].chip = &vrc4173_irq_type; |
487 | 487 | ||
488 | return 0; | 488 | return 0; |
489 | } | 489 | } |
diff --git a/arch/mips/vr41xx/nec-cmbvr4133/init.c b/arch/mips/vr41xx/nec-cmbvr4133/init.c index be590edb0b83..ae1af6b21c45 100644 --- a/arch/mips/vr41xx/nec-cmbvr4133/init.c +++ b/arch/mips/vr41xx/nec-cmbvr4133/init.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * Support for NEC-CMBVR4133 in 2.6 | 15 | * Support for NEC-CMBVR4133 in 2.6 |
16 | * Manish Lachwani (mlachwani@mvista.com) | 16 | * Manish Lachwani (mlachwani@mvista.com) |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | 18 | ||
20 | #ifdef CONFIG_ROCKHOPPER | 19 | #ifdef CONFIG_ROCKHOPPER |
21 | #include <asm/io.h> | 20 | #include <asm/io.h> |
diff --git a/arch/mips/vr41xx/nec-cmbvr4133/irq.c b/arch/mips/vr41xx/nec-cmbvr4133/irq.c index 31db6b61a39e..7b2511ca0a61 100644 --- a/arch/mips/vr41xx/nec-cmbvr4133/irq.c +++ b/arch/mips/vr41xx/nec-cmbvr4133/irq.c | |||
@@ -104,7 +104,7 @@ void __init rockhopper_init_irq(void) | |||
104 | } | 104 | } |
105 | 105 | ||
106 | for (i = I8259_IRQ_BASE; i <= I8259_IRQ_LAST; i++) | 106 | for (i = I8259_IRQ_BASE; i <= I8259_IRQ_LAST; i++) |
107 | irq_desc[i].handler = &i8259_irq_type; | 107 | irq_desc[i].chip = &i8259_irq_type; |
108 | 108 | ||
109 | setup_irq(I8259_SLAVE_IRQ, &i8259_slave_cascade); | 109 | setup_irq(I8259_SLAVE_IRQ, &i8259_slave_cascade); |
110 | 110 | ||
diff --git a/arch/mips/vr41xx/nec-cmbvr4133/m1535plus.c b/arch/mips/vr41xx/nec-cmbvr4133/m1535plus.c index 1f6b24ef8695..f45caccedc07 100644 --- a/arch/mips/vr41xx/nec-cmbvr4133/m1535plus.c +++ b/arch/mips/vr41xx/nec-cmbvr4133/m1535plus.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Support for NEC-CMBVR4133 in 2.6 | 14 | * Support for NEC-CMBVR4133 in 2.6 |
15 | * Author: Manish Lachwani (mlachwani@mvista.com) | 15 | * Author: Manish Lachwani (mlachwani@mvista.com) |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <linux/types.h> | 18 | #include <linux/types.h> |
20 | #include <linux/serial.h> | 19 | #include <linux/serial.h> |
diff --git a/arch/mips/vr41xx/nec-cmbvr4133/setup.c b/arch/mips/vr41xx/nec-cmbvr4133/setup.c index 53272a5c3cbe..b20b93b2b95e 100644 --- a/arch/mips/vr41xx/nec-cmbvr4133/setup.c +++ b/arch/mips/vr41xx/nec-cmbvr4133/setup.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Support for CMBVR4133 board in 2.6 | 14 | * Support for CMBVR4133 board in 2.6 |
15 | * Author: Manish Lachwani (mlachwani@mvista.com) | 15 | * Author: Manish Lachwani (mlachwani@mvista.com) |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <linux/ide.h> | 18 | #include <linux/ide.h> |
20 | #include <linux/ioport.h> | 19 | #include <linux/ioport.h> |
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 910fb3afc0b5..6dd0ea8f88e0 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
@@ -51,6 +51,10 @@ config GENERIC_HARDIRQS | |||
51 | config GENERIC_IRQ_PROBE | 51 | config GENERIC_IRQ_PROBE |
52 | def_bool y | 52 | def_bool y |
53 | 53 | ||
54 | config IRQ_PER_CPU | ||
55 | bool | ||
56 | default y | ||
57 | |||
54 | # unless you want to implement ACPI on PA-RISC ... ;-) | 58 | # unless you want to implement ACPI on PA-RISC ... ;-) |
55 | config PM | 59 | config PM |
56 | bool | 60 | bool |
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index c057ad7605ba..bc7c4a4e26a1 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c | |||
@@ -97,15 +97,17 @@ update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t pte) | |||
97 | void | 97 | void |
98 | show_cache_info(struct seq_file *m) | 98 | show_cache_info(struct seq_file *m) |
99 | { | 99 | { |
100 | char buf[32]; | ||
101 | |||
100 | seq_printf(m, "I-cache\t\t: %ld KB\n", | 102 | seq_printf(m, "I-cache\t\t: %ld KB\n", |
101 | cache_info.ic_size/1024 ); | 103 | cache_info.ic_size/1024 ); |
102 | seq_printf(m, "D-cache\t\t: %ld KB (%s%s, %d-way associative)\n", | 104 | if (cache_info.dc_loop == 1) |
105 | snprintf(buf, 32, "%lu-way associative", cache_info.dc_loop); | ||
106 | seq_printf(m, "D-cache\t\t: %ld KB (%s%s, %s)\n", | ||
103 | cache_info.dc_size/1024, | 107 | cache_info.dc_size/1024, |
104 | (cache_info.dc_conf.cc_wt ? "WT":"WB"), | 108 | (cache_info.dc_conf.cc_wt ? "WT":"WB"), |
105 | (cache_info.dc_conf.cc_sh ? ", shared I/D":""), | 109 | (cache_info.dc_conf.cc_sh ? ", shared I/D":""), |
106 | (cache_info.dc_conf.cc_assoc) | 110 | ((cache_info.dc_loop == 1) ? "direct mapped" : buf)); |
107 | ); | ||
108 | |||
109 | seq_printf(m, "ITLB entries\t: %ld\n" "DTLB entries\t: %ld%s\n", | 111 | seq_printf(m, "ITLB entries\t: %ld\n" "DTLB entries\t: %ld%s\n", |
110 | cache_info.it_size, | 112 | cache_info.it_size, |
111 | cache_info.dt_size, | 113 | cache_info.dt_size, |
@@ -158,11 +160,11 @@ parisc_cache_init(void) | |||
158 | cache_info.dc_conf.cc_block, | 160 | cache_info.dc_conf.cc_block, |
159 | cache_info.dc_conf.cc_line, | 161 | cache_info.dc_conf.cc_line, |
160 | cache_info.dc_conf.cc_shift); | 162 | cache_info.dc_conf.cc_shift); |
161 | printk(" wt %d sh %d cst %d assoc %d\n", | 163 | printk(" wt %d sh %d cst %d hv %d\n", |
162 | cache_info.dc_conf.cc_wt, | 164 | cache_info.dc_conf.cc_wt, |
163 | cache_info.dc_conf.cc_sh, | 165 | cache_info.dc_conf.cc_sh, |
164 | cache_info.dc_conf.cc_cst, | 166 | cache_info.dc_conf.cc_cst, |
165 | cache_info.dc_conf.cc_assoc); | 167 | cache_info.dc_conf.cc_hv); |
166 | 168 | ||
167 | printk("IC base 0x%lx stride 0x%lx count 0x%lx loop 0x%lx\n", | 169 | printk("IC base 0x%lx stride 0x%lx count 0x%lx loop 0x%lx\n", |
168 | cache_info.ic_base, | 170 | cache_info.ic_base, |
@@ -176,11 +178,11 @@ parisc_cache_init(void) | |||
176 | cache_info.ic_conf.cc_block, | 178 | cache_info.ic_conf.cc_block, |
177 | cache_info.ic_conf.cc_line, | 179 | cache_info.ic_conf.cc_line, |
178 | cache_info.ic_conf.cc_shift); | 180 | cache_info.ic_conf.cc_shift); |
179 | printk(" wt %d sh %d cst %d assoc %d\n", | 181 | printk(" wt %d sh %d cst %d hv %d\n", |
180 | cache_info.ic_conf.cc_wt, | 182 | cache_info.ic_conf.cc_wt, |
181 | cache_info.ic_conf.cc_sh, | 183 | cache_info.ic_conf.cc_sh, |
182 | cache_info.ic_conf.cc_cst, | 184 | cache_info.ic_conf.cc_cst, |
183 | cache_info.ic_conf.cc_assoc); | 185 | cache_info.ic_conf.cc_hv); |
184 | 186 | ||
185 | printk("D-TLB conf: sh %d page %d cst %d aid %d pad1 %d \n", | 187 | printk("D-TLB conf: sh %d page %d cst %d aid %d pad1 %d \n", |
186 | cache_info.dt_conf.tc_sh, | 188 | cache_info.dt_conf.tc_sh, |
@@ -234,7 +236,8 @@ parisc_cache_init(void) | |||
234 | 236 | ||
235 | void disable_sr_hashing(void) | 237 | void disable_sr_hashing(void) |
236 | { | 238 | { |
237 | int srhash_type; | 239 | int srhash_type, retval; |
240 | unsigned long space_bits; | ||
238 | 241 | ||
239 | switch (boot_cpu_data.cpu_type) { | 242 | switch (boot_cpu_data.cpu_type) { |
240 | case pcx: /* We shouldn't get this far. setup.c should prevent it. */ | 243 | case pcx: /* We shouldn't get this far. setup.c should prevent it. */ |
@@ -260,6 +263,13 @@ void disable_sr_hashing(void) | |||
260 | } | 263 | } |
261 | 264 | ||
262 | disable_sr_hashing_asm(srhash_type); | 265 | disable_sr_hashing_asm(srhash_type); |
266 | |||
267 | retval = pdc_spaceid_bits(&space_bits); | ||
268 | /* If this procedure isn't implemented, don't panic. */ | ||
269 | if (retval < 0 && retval != PDC_BAD_OPTION) | ||
270 | panic("pdc_spaceid_bits call failed.\n"); | ||
271 | if (space_bits != 0) | ||
272 | panic("SpaceID hashing is still on!\n"); | ||
263 | } | 273 | } |
264 | 274 | ||
265 | void flush_dcache_page(struct page *page) | 275 | void flush_dcache_page(struct page *page) |
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index d9e53cf0372b..95c1b8ec4289 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S | |||
@@ -22,7 +22,6 @@ | |||
22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <asm/asm-offsets.h> | 25 | #include <asm/asm-offsets.h> |
27 | 26 | ||
28 | /* we have the following possibilities to act on an interruption: | 27 | /* we have the following possibilities to act on an interruption: |
@@ -1638,7 +1637,7 @@ dbit_trap_20w: | |||
1638 | load32 PA(pa_dbit_lock),t0 | 1637 | load32 PA(pa_dbit_lock),t0 |
1639 | 1638 | ||
1640 | dbit_spin_20w: | 1639 | dbit_spin_20w: |
1641 | ldcw 0(t0),t1 | 1640 | LDCW 0(t0),t1 |
1642 | cmpib,= 0,t1,dbit_spin_20w | 1641 | cmpib,= 0,t1,dbit_spin_20w |
1643 | nop | 1642 | nop |
1644 | 1643 | ||
@@ -1674,7 +1673,7 @@ dbit_trap_11: | |||
1674 | load32 PA(pa_dbit_lock),t0 | 1673 | load32 PA(pa_dbit_lock),t0 |
1675 | 1674 | ||
1676 | dbit_spin_11: | 1675 | dbit_spin_11: |
1677 | ldcw 0(t0),t1 | 1676 | LDCW 0(t0),t1 |
1678 | cmpib,= 0,t1,dbit_spin_11 | 1677 | cmpib,= 0,t1,dbit_spin_11 |
1679 | nop | 1678 | nop |
1680 | 1679 | ||
@@ -1714,7 +1713,7 @@ dbit_trap_20: | |||
1714 | load32 PA(pa_dbit_lock),t0 | 1713 | load32 PA(pa_dbit_lock),t0 |
1715 | 1714 | ||
1716 | dbit_spin_20: | 1715 | dbit_spin_20: |
1717 | ldcw 0(t0),t1 | 1716 | LDCW 0(t0),t1 |
1718 | cmpib,= 0,t1,dbit_spin_20 | 1717 | cmpib,= 0,t1,dbit_spin_20 |
1719 | nop | 1718 | nop |
1720 | 1719 | ||
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c index 2dc06b8e1817..4398d2a95789 100644 --- a/arch/parisc/kernel/firmware.c +++ b/arch/parisc/kernel/firmware.c | |||
@@ -11,7 +11,7 @@ | |||
11 | * Copyright 1999 The Puffin Group, (Alex deVries, David Kennedy) | 11 | * Copyright 1999 The Puffin Group, (Alex deVries, David Kennedy) |
12 | * Copyright 2003 Grant Grundler <grundler parisc-linux org> | 12 | * Copyright 2003 Grant Grundler <grundler parisc-linux org> |
13 | * Copyright 2003,2004 Ryan Bradetich <rbrad@parisc-linux.org> | 13 | * Copyright 2003,2004 Ryan Bradetich <rbrad@parisc-linux.org> |
14 | * Copyright 2004 Thibaut VARENE <varenet@parisc-linux.org> | 14 | * Copyright 2004,2006 Thibaut VARENE <varenet@parisc-linux.org> |
15 | * | 15 | * |
16 | * This program is free software; you can redistribute it and/or modify | 16 | * This program is free software; you can redistribute it and/or modify |
17 | * it under the terms of the GNU General Public License as published by | 17 | * it under the terms of the GNU General Public License as published by |
@@ -252,10 +252,8 @@ int pdc_pat_chassis_send_log(unsigned long state, unsigned long data) | |||
252 | #endif | 252 | #endif |
253 | 253 | ||
254 | /** | 254 | /** |
255 | * pdc_chassis_disp - Updates display | 255 | * pdc_chassis_disp - Updates chassis code |
256 | * @retval: -1 on error, 0 on success | 256 | * @retval: -1 on error, 0 on success |
257 | * | ||
258 | * Works on old PDC only (E class, others?) | ||
259 | */ | 257 | */ |
260 | int pdc_chassis_disp(unsigned long disp) | 258 | int pdc_chassis_disp(unsigned long disp) |
261 | { | 259 | { |
@@ -269,6 +267,22 @@ int pdc_chassis_disp(unsigned long disp) | |||
269 | } | 267 | } |
270 | 268 | ||
271 | /** | 269 | /** |
270 | * pdc_chassis_warn - Fetches chassis warnings | ||
271 | * @retval: -1 on error, 0 on success | ||
272 | */ | ||
273 | int pdc_chassis_warn(unsigned long *warn) | ||
274 | { | ||
275 | int retval = 0; | ||
276 | |||
277 | spin_lock_irq(&pdc_lock); | ||
278 | retval = mem_pdc_call(PDC_CHASSIS, PDC_CHASSIS_WARN, __pa(pdc_result)); | ||
279 | *warn = pdc_result[0]; | ||
280 | spin_unlock_irq(&pdc_lock); | ||
281 | |||
282 | return retval; | ||
283 | } | ||
284 | |||
285 | /** | ||
272 | * pdc_coproc_cfg - To identify coprocessors attached to the processor. | 286 | * pdc_coproc_cfg - To identify coprocessors attached to the processor. |
273 | * @pdc_coproc_info: Return buffer address. | 287 | * @pdc_coproc_info: Return buffer address. |
274 | * | 288 | * |
@@ -393,7 +407,9 @@ int pdc_model_info(struct pdc_model *model) | |||
393 | * pdc_model_sysmodel - Get the system model name. | 407 | * pdc_model_sysmodel - Get the system model name. |
394 | * @name: A char array of at least 81 characters. | 408 | * @name: A char array of at least 81 characters. |
395 | * | 409 | * |
396 | * Get system model name from PDC ROM (e.g. 9000/715 or 9000/778/B160L) | 410 | * Get system model name from PDC ROM (e.g. 9000/715 or 9000/778/B160L). |
411 | * Using OS_ID_HPUX will return the equivalent of the 'modelname' command | ||
412 | * on HP/UX. | ||
397 | */ | 413 | */ |
398 | int pdc_model_sysmodel(char *name) | 414 | int pdc_model_sysmodel(char *name) |
399 | { | 415 | { |
@@ -498,6 +514,26 @@ int pdc_cache_info(struct pdc_cache_info *cache_info) | |||
498 | return retval; | 514 | return retval; |
499 | } | 515 | } |
500 | 516 | ||
517 | /** | ||
518 | * pdc_spaceid_bits - Return whether Space ID hashing is turned on. | ||
519 | * @space_bits: Should be 0, if not, bad mojo! | ||
520 | * | ||
521 | * Returns information about Space ID hashing. | ||
522 | */ | ||
523 | int pdc_spaceid_bits(unsigned long *space_bits) | ||
524 | { | ||
525 | int retval; | ||
526 | |||
527 | spin_lock_irq(&pdc_lock); | ||
528 | pdc_result[0] = 0; | ||
529 | retval = mem_pdc_call(PDC_CACHE, PDC_CACHE_RET_SPID, __pa(pdc_result), 0); | ||
530 | convert_to_wide(pdc_result); | ||
531 | *space_bits = pdc_result[0]; | ||
532 | spin_unlock_irq(&pdc_lock); | ||
533 | |||
534 | return retval; | ||
535 | } | ||
536 | |||
501 | #ifndef CONFIG_PA20 | 537 | #ifndef CONFIG_PA20 |
502 | /** | 538 | /** |
503 | * pdc_btlb_info - Return block TLB information. | 539 | * pdc_btlb_info - Return block TLB information. |
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index 197936d9359a..5b8803cc3d69 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 22 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
23 | */ | 23 | */ |
24 | #include <linux/bitops.h> | 24 | #include <linux/bitops.h> |
25 | #include <linux/config.h> | ||
26 | #include <linux/errno.h> | 25 | #include <linux/errno.h> |
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/interrupt.h> | 27 | #include <linux/interrupt.h> |
@@ -94,7 +93,7 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest) | |||
94 | if (irq == TIMER_IRQ || irq == IPI_IRQ) { | 93 | if (irq == TIMER_IRQ || irq == IPI_IRQ) { |
95 | /* Bad linux design decision. The mask has already | 94 | /* Bad linux design decision. The mask has already |
96 | * been set; we must reset it */ | 95 | * been set; we must reset it */ |
97 | irq_affinity[irq] = CPU_MASK_ALL; | 96 | irq_desc[irq].affinity = CPU_MASK_ALL; |
98 | return -EINVAL; | 97 | return -EINVAL; |
99 | } | 98 | } |
100 | 99 | ||
@@ -110,7 +109,7 @@ static void cpu_set_affinity_irq(unsigned int irq, cpumask_t dest) | |||
110 | if (cpu_check_affinity(irq, &dest)) | 109 | if (cpu_check_affinity(irq, &dest)) |
111 | return; | 110 | return; |
112 | 111 | ||
113 | irq_affinity[irq] = dest; | 112 | irq_desc[irq].affinity = dest; |
114 | } | 113 | } |
115 | #endif | 114 | #endif |
116 | 115 | ||
@@ -125,6 +124,10 @@ static struct hw_interrupt_type cpu_interrupt_type = { | |||
125 | #ifdef CONFIG_SMP | 124 | #ifdef CONFIG_SMP |
126 | .set_affinity = cpu_set_affinity_irq, | 125 | .set_affinity = cpu_set_affinity_irq, |
127 | #endif | 126 | #endif |
127 | /* XXX: Needs to be written. We managed without it so far, but | ||
128 | * we really ought to write it. | ||
129 | */ | ||
130 | .retrigger = NULL, | ||
128 | }; | 131 | }; |
129 | 132 | ||
130 | int show_interrupts(struct seq_file *p, void *v) | 133 | int show_interrupts(struct seq_file *p, void *v) |
@@ -158,7 +161,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
158 | seq_printf(p, "%10u ", kstat_irqs(i)); | 161 | seq_printf(p, "%10u ", kstat_irqs(i)); |
159 | #endif | 162 | #endif |
160 | 163 | ||
161 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 164 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
162 | #ifndef PARISC_IRQ_CR16_COUNTS | 165 | #ifndef PARISC_IRQ_CR16_COUNTS |
163 | seq_printf(p, " %s", action->name); | 166 | seq_printf(p, " %s", action->name); |
164 | 167 | ||
@@ -210,12 +213,12 @@ int cpu_claim_irq(unsigned int irq, struct hw_interrupt_type *type, void *data) | |||
210 | { | 213 | { |
211 | if (irq_desc[irq].action) | 214 | if (irq_desc[irq].action) |
212 | return -EBUSY; | 215 | return -EBUSY; |
213 | if (irq_desc[irq].handler != &cpu_interrupt_type) | 216 | if (irq_desc[irq].chip != &cpu_interrupt_type) |
214 | return -EBUSY; | 217 | return -EBUSY; |
215 | 218 | ||
216 | if (type) { | 219 | if (type) { |
217 | irq_desc[irq].handler = type; | 220 | irq_desc[irq].chip = type; |
218 | irq_desc[irq].handler_data = data; | 221 | irq_desc[irq].chip_data = data; |
219 | cpu_interrupt_type.enable(irq); | 222 | cpu_interrupt_type.enable(irq); |
220 | } | 223 | } |
221 | return 0; | 224 | return 0; |
@@ -265,7 +268,7 @@ int txn_alloc_irq(unsigned int bits_wide) | |||
265 | unsigned long txn_affinity_addr(unsigned int irq, int cpu) | 268 | unsigned long txn_affinity_addr(unsigned int irq, int cpu) |
266 | { | 269 | { |
267 | #ifdef CONFIG_SMP | 270 | #ifdef CONFIG_SMP |
268 | irq_affinity[irq] = cpumask_of_cpu(cpu); | 271 | irq_desc[irq].affinity = cpumask_of_cpu(cpu); |
269 | #endif | 272 | #endif |
270 | 273 | ||
271 | return cpu_data[cpu].txn_addr; | 274 | return cpu_data[cpu].txn_addr; |
@@ -326,7 +329,7 @@ void do_cpu_irq_mask(struct pt_regs *regs) | |||
326 | /* Work our way from MSb to LSb...same order we alloc EIRs */ | 329 | /* Work our way from MSb to LSb...same order we alloc EIRs */ |
327 | for (irq = TIMER_IRQ; eirr_val && bit; bit>>=1, irq++) { | 330 | for (irq = TIMER_IRQ; eirr_val && bit; bit>>=1, irq++) { |
328 | #ifdef CONFIG_SMP | 331 | #ifdef CONFIG_SMP |
329 | cpumask_t dest = irq_affinity[irq]; | 332 | cpumask_t dest = irq_desc[irq].affinity; |
330 | #endif | 333 | #endif |
331 | if (!(bit & eirr_val)) | 334 | if (!(bit & eirr_val)) |
332 | continue; | 335 | continue; |
@@ -363,14 +366,14 @@ void do_cpu_irq_mask(struct pt_regs *regs) | |||
363 | static struct irqaction timer_action = { | 366 | static struct irqaction timer_action = { |
364 | .handler = timer_interrupt, | 367 | .handler = timer_interrupt, |
365 | .name = "timer", | 368 | .name = "timer", |
366 | .flags = SA_INTERRUPT, | 369 | .flags = IRQF_DISABLED, |
367 | }; | 370 | }; |
368 | 371 | ||
369 | #ifdef CONFIG_SMP | 372 | #ifdef CONFIG_SMP |
370 | static struct irqaction ipi_action = { | 373 | static struct irqaction ipi_action = { |
371 | .handler = ipi_interrupt, | 374 | .handler = ipi_interrupt, |
372 | .name = "IPI", | 375 | .name = "IPI", |
373 | .flags = SA_INTERRUPT, | 376 | .flags = IRQF_DISABLED, |
374 | }; | 377 | }; |
375 | #endif | 378 | #endif |
376 | 379 | ||
@@ -378,7 +381,7 @@ static void claim_cpu_irqs(void) | |||
378 | { | 381 | { |
379 | int i; | 382 | int i; |
380 | for (i = CPU_IRQ_BASE; i <= CPU_IRQ_MAX; i++) { | 383 | for (i = CPU_IRQ_BASE; i <= CPU_IRQ_MAX; i++) { |
381 | irq_desc[i].handler = &cpu_interrupt_type; | 384 | irq_desc[i].chip = &cpu_interrupt_type; |
382 | } | 385 | } |
383 | 386 | ||
384 | irq_desc[TIMER_IRQ].action = &timer_action; | 387 | irq_desc[TIMER_IRQ].action = &timer_action; |
@@ -404,13 +407,6 @@ void __init init_IRQ(void) | |||
404 | 407 | ||
405 | } | 408 | } |
406 | 409 | ||
407 | void hw_resend_irq(struct hw_interrupt_type *type, unsigned int irq) | ||
408 | { | ||
409 | /* XXX: Needs to be written. We managed without it so far, but | ||
410 | * we really ought to write it. | ||
411 | */ | ||
412 | } | ||
413 | |||
414 | void ack_bad_irq(unsigned int irq) | 410 | void ack_bad_irq(unsigned int irq) |
415 | { | 411 | { |
416 | printk("unexpected IRQ %d\n", irq); | 412 | printk("unexpected IRQ %d\n", irq); |
diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c index f27cfe4771b8..aee311884f3f 100644 --- a/arch/parisc/kernel/module.c +++ b/arch/parisc/kernel/module.c | |||
@@ -89,6 +89,12 @@ static inline int is_local(struct module *me, void *loc) | |||
89 | return is_init(me, loc) || is_core(me, loc); | 89 | return is_init(me, loc) || is_core(me, loc); |
90 | } | 90 | } |
91 | 91 | ||
92 | static inline int is_local_section(struct module *me, void *loc, void *dot) | ||
93 | { | ||
94 | return (is_init(me, loc) && is_init(me, dot)) || | ||
95 | (is_core(me, loc) && is_core(me, dot)); | ||
96 | } | ||
97 | |||
92 | 98 | ||
93 | #ifndef __LP64__ | 99 | #ifndef __LP64__ |
94 | struct got_entry { | 100 | struct got_entry { |
@@ -364,8 +370,14 @@ static Elf_Addr get_fdesc(struct module *me, unsigned long value) | |||
364 | } | 370 | } |
365 | #endif /* __LP64__ */ | 371 | #endif /* __LP64__ */ |
366 | 372 | ||
373 | enum elf_stub_type { | ||
374 | ELF_STUB_GOT, | ||
375 | ELF_STUB_MILLI, | ||
376 | ELF_STUB_DIRECT, | ||
377 | }; | ||
378 | |||
367 | static Elf_Addr get_stub(struct module *me, unsigned long value, long addend, | 379 | static Elf_Addr get_stub(struct module *me, unsigned long value, long addend, |
368 | int millicode, int init_section) | 380 | enum elf_stub_type stub_type, int init_section) |
369 | { | 381 | { |
370 | unsigned long i; | 382 | unsigned long i; |
371 | struct stub_entry *stub; | 383 | struct stub_entry *stub; |
@@ -396,7 +408,7 @@ static Elf_Addr get_stub(struct module *me, unsigned long value, long addend, | |||
396 | stub->insns[1] |= reassemble_17(rrsel(value, addend) / 4); | 408 | stub->insns[1] |= reassemble_17(rrsel(value, addend) / 4); |
397 | 409 | ||
398 | #else | 410 | #else |
399 | /* for 64-bit we have two kinds of stubs: | 411 | /* for 64-bit we have three kinds of stubs: |
400 | * for normal function calls: | 412 | * for normal function calls: |
401 | * ldd 0(%dp),%dp | 413 | * ldd 0(%dp),%dp |
402 | * ldd 10(%dp), %r1 | 414 | * ldd 10(%dp), %r1 |
@@ -408,18 +420,23 @@ static Elf_Addr get_stub(struct module *me, unsigned long value, long addend, | |||
408 | * ldo 0(%r1), %r1 | 420 | * ldo 0(%r1), %r1 |
409 | * ldd 10(%r1), %r1 | 421 | * ldd 10(%r1), %r1 |
410 | * bve,n (%r1) | 422 | * bve,n (%r1) |
423 | * | ||
424 | * for direct branches (jumps between different section of the | ||
425 | * same module): | ||
426 | * ldil 0, %r1 | ||
427 | * ldo 0(%r1), %r1 | ||
428 | * bve,n (%r1) | ||
411 | */ | 429 | */ |
412 | if (!millicode) | 430 | switch (stub_type) { |
413 | { | 431 | case ELF_STUB_GOT: |
414 | stub->insns[0] = 0x537b0000; /* ldd 0(%dp),%dp */ | 432 | stub->insns[0] = 0x537b0000; /* ldd 0(%dp),%dp */ |
415 | stub->insns[1] = 0x53610020; /* ldd 10(%dp),%r1 */ | 433 | stub->insns[1] = 0x53610020; /* ldd 10(%dp),%r1 */ |
416 | stub->insns[2] = 0xe820d000; /* bve (%r1) */ | 434 | stub->insns[2] = 0xe820d000; /* bve (%r1) */ |
417 | stub->insns[3] = 0x537b0030; /* ldd 18(%dp),%dp */ | 435 | stub->insns[3] = 0x537b0030; /* ldd 18(%dp),%dp */ |
418 | 436 | ||
419 | stub->insns[0] |= reassemble_14(get_got(me, value, addend) & 0x3fff); | 437 | stub->insns[0] |= reassemble_14(get_got(me, value, addend) & 0x3fff); |
420 | } | 438 | break; |
421 | else | 439 | case ELF_STUB_MILLI: |
422 | { | ||
423 | stub->insns[0] = 0x20200000; /* ldil 0,%r1 */ | 440 | stub->insns[0] = 0x20200000; /* ldil 0,%r1 */ |
424 | stub->insns[1] = 0x34210000; /* ldo 0(%r1), %r1 */ | 441 | stub->insns[1] = 0x34210000; /* ldo 0(%r1), %r1 */ |
425 | stub->insns[2] = 0x50210020; /* ldd 10(%r1),%r1 */ | 442 | stub->insns[2] = 0x50210020; /* ldd 10(%r1),%r1 */ |
@@ -427,7 +444,17 @@ static Elf_Addr get_stub(struct module *me, unsigned long value, long addend, | |||
427 | 444 | ||
428 | stub->insns[0] |= reassemble_21(lrsel(value, addend)); | 445 | stub->insns[0] |= reassemble_21(lrsel(value, addend)); |
429 | stub->insns[1] |= reassemble_14(rrsel(value, addend)); | 446 | stub->insns[1] |= reassemble_14(rrsel(value, addend)); |
447 | break; | ||
448 | case ELF_STUB_DIRECT: | ||
449 | stub->insns[0] = 0x20200000; /* ldil 0,%r1 */ | ||
450 | stub->insns[1] = 0x34210000; /* ldo 0(%r1), %r1 */ | ||
451 | stub->insns[2] = 0xe820d002; /* bve,n (%r1) */ | ||
452 | |||
453 | stub->insns[0] |= reassemble_21(lrsel(value, addend)); | ||
454 | stub->insns[1] |= reassemble_14(rrsel(value, addend)); | ||
455 | break; | ||
430 | } | 456 | } |
457 | |||
431 | #endif | 458 | #endif |
432 | 459 | ||
433 | return (Elf_Addr)stub; | 460 | return (Elf_Addr)stub; |
@@ -539,14 +566,14 @@ int apply_relocate_add(Elf_Shdr *sechdrs, | |||
539 | break; | 566 | break; |
540 | case R_PARISC_PCREL17F: | 567 | case R_PARISC_PCREL17F: |
541 | /* 17-bit PC relative address */ | 568 | /* 17-bit PC relative address */ |
542 | val = get_stub(me, val, addend, 0, is_init(me, loc)); | 569 | val = get_stub(me, val, addend, ELF_STUB_GOT, is_init(me, loc)); |
543 | val = (val - dot - 8)/4; | 570 | val = (val - dot - 8)/4; |
544 | CHECK_RELOC(val, 17) | 571 | CHECK_RELOC(val, 17) |
545 | *loc = (*loc & ~0x1f1ffd) | reassemble_17(val); | 572 | *loc = (*loc & ~0x1f1ffd) | reassemble_17(val); |
546 | break; | 573 | break; |
547 | case R_PARISC_PCREL22F: | 574 | case R_PARISC_PCREL22F: |
548 | /* 22-bit PC relative address; only defined for pa20 */ | 575 | /* 22-bit PC relative address; only defined for pa20 */ |
549 | val = get_stub(me, val, addend, 0, is_init(me, loc)); | 576 | val = get_stub(me, val, addend, ELF_STUB_GOT, is_init(me, loc)); |
550 | DEBUGP("STUB FOR %s loc %lx+%lx at %lx\n", | 577 | DEBUGP("STUB FOR %s loc %lx+%lx at %lx\n", |
551 | strtab + sym->st_name, (unsigned long)loc, addend, | 578 | strtab + sym->st_name, (unsigned long)loc, addend, |
552 | val) | 579 | val) |
@@ -643,13 +670,23 @@ int apply_relocate_add(Elf_Shdr *sechdrs, | |||
643 | strtab + sym->st_name, | 670 | strtab + sym->st_name, |
644 | loc, val); | 671 | loc, val); |
645 | /* can we reach it locally? */ | 672 | /* can we reach it locally? */ |
646 | if(!is_local(me, (void *)val)) { | 673 | if(!is_local_section(me, (void *)val, (void *)dot)) { |
647 | if (strncmp(strtab + sym->st_name, "$$", 2) | 674 | |
675 | if (is_local(me, (void *)val)) | ||
676 | /* this is the case where the | ||
677 | * symbol is local to the | ||
678 | * module, but in a different | ||
679 | * section, so stub the jump | ||
680 | * in case it's more than 22 | ||
681 | * bits away */ | ||
682 | val = get_stub(me, val, addend, ELF_STUB_DIRECT, | ||
683 | is_init(me, loc)); | ||
684 | else if (strncmp(strtab + sym->st_name, "$$", 2) | ||
648 | == 0) | 685 | == 0) |
649 | val = get_stub(me, val, addend, 1, | 686 | val = get_stub(me, val, addend, ELF_STUB_MILLI, |
650 | is_init(me, loc)); | 687 | is_init(me, loc)); |
651 | else | 688 | else |
652 | val = get_stub(me, val, addend, 0, | 689 | val = get_stub(me, val, addend, ELF_STUB_GOT, |
653 | is_init(me, loc)); | 690 | is_init(me, loc)); |
654 | } | 691 | } |
655 | DEBUGP("STUB FOR %s loc %lx, val %lx+%lx at %lx\n", | 692 | DEBUGP("STUB FOR %s loc %lx, val %lx+%lx at %lx\n", |
diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S index f600556414d1..e81c9937d10a 100644 --- a/arch/parisc/kernel/pacache.S +++ b/arch/parisc/kernel/pacache.S | |||
@@ -40,7 +40,6 @@ | |||
40 | .level 2.0 | 40 | .level 2.0 |
41 | #endif | 41 | #endif |
42 | 42 | ||
43 | #include <linux/config.h> | ||
44 | 43 | ||
45 | #include <asm/psw.h> | 44 | #include <asm/psw.h> |
46 | #include <asm/assembly.h> | 45 | #include <asm/assembly.h> |
diff --git a/arch/parisc/kernel/parisc_ksyms.c b/arch/parisc/kernel/parisc_ksyms.c index fc107add627c..6d57553d8ef8 100644 --- a/arch/parisc/kernel/parisc_ksyms.c +++ b/arch/parisc/kernel/parisc_ksyms.c | |||
@@ -24,7 +24,6 @@ | |||
24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/module.h> | 27 | #include <linux/module.h> |
29 | #include <linux/kernel.h> | 28 | #include <linux/kernel.h> |
30 | #include <linux/syscalls.h> | 29 | #include <linux/syscalls.h> |
diff --git a/arch/parisc/kernel/pci.c b/arch/parisc/kernel/pci.c index 79c7db2705fd..d3b8fc52dfc1 100644 --- a/arch/parisc/kernel/pci.c +++ b/arch/parisc/kernel/pci.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 1999-2001 Hewlett-Packard Company | 9 | * Copyright (C) 1999-2001 Hewlett-Packard Company |
10 | * Copyright (C) 1999-2001 Grant Grundler | 10 | * Copyright (C) 1999-2001 Grant Grundler |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/eisa.h> | 12 | #include <linux/eisa.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
@@ -289,7 +288,7 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); | |||
289 | * than res->start. | 288 | * than res->start. |
290 | */ | 289 | */ |
291 | void pcibios_align_resource(void *data, struct resource *res, | 290 | void pcibios_align_resource(void *data, struct resource *res, |
292 | unsigned long size, unsigned long alignment) | 291 | resource_size_t size, resource_size_t alignment) |
293 | { | 292 | { |
294 | unsigned long mask, align; | 293 | unsigned long mask, align; |
295 | 294 | ||
diff --git a/arch/parisc/kernel/pdc_chassis.c b/arch/parisc/kernel/pdc_chassis.c index a45e2e2ffd9f..d47ba1aa8253 100644 --- a/arch/parisc/kernel/pdc_chassis.c +++ b/arch/parisc/kernel/pdc_chassis.c | |||
@@ -1,8 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * interfaces to log Chassis Codes via PDC (firmware) | 2 | * interfaces to Chassis Codes via PDC (firmware) |
3 | * | 3 | * |
4 | * Copyright (C) 2002 Laurent Canet <canetl@esiee.fr> | 4 | * Copyright (C) 2002 Laurent Canet <canetl@esiee.fr> |
5 | * Copyright (C) 2002-2004 Thibaut VARENE <varenet@parisc-linux.org> | 5 | * Copyright (C) 2002-2006 Thibaut VARENE <varenet@parisc-linux.org> |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
8 | * it under the terms of the GNU General Public License, version 2, as | 8 | * it under the terms of the GNU General Public License, version 2, as |
@@ -16,6 +16,10 @@ | |||
16 | * You should have received a copy of the GNU General Public License | 16 | * You should have received a copy of the GNU General Public License |
17 | * along with this program; if not, write to the Free Software | 17 | * along with this program; if not, write to the Free Software |
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 | * | ||
20 | * TODO: poll chassis warns, trigger (configurable) machine shutdown when | ||
21 | * needed. | ||
22 | * Find out how to get Chassis warnings out of PAT boxes? | ||
19 | */ | 23 | */ |
20 | 24 | ||
21 | #undef PDC_CHASSIS_DEBUG | 25 | #undef PDC_CHASSIS_DEBUG |
@@ -30,15 +34,16 @@ | |||
30 | #include <linux/reboot.h> | 34 | #include <linux/reboot.h> |
31 | #include <linux/notifier.h> | 35 | #include <linux/notifier.h> |
32 | #include <linux/cache.h> | 36 | #include <linux/cache.h> |
37 | #include <linux/proc_fs.h> | ||
33 | 38 | ||
34 | #include <asm/pdc_chassis.h> | 39 | #include <asm/pdc_chassis.h> |
35 | #include <asm/processor.h> | 40 | #include <asm/processor.h> |
36 | #include <asm/pdc.h> | 41 | #include <asm/pdc.h> |
37 | #include <asm/pdcpat.h> | 42 | #include <asm/pdcpat.h> |
38 | 43 | ||
44 | #define PDC_CHASSIS_VER "0.05" | ||
39 | 45 | ||
40 | #ifdef CONFIG_PDC_CHASSIS | 46 | #ifdef CONFIG_PDC_CHASSIS |
41 | static int pdc_chassis_old __read_mostly = 0; | ||
42 | static unsigned int pdc_chassis_enabled __read_mostly = 1; | 47 | static unsigned int pdc_chassis_enabled __read_mostly = 1; |
43 | 48 | ||
44 | 49 | ||
@@ -64,7 +69,7 @@ __setup("pdcchassis=", pdc_chassis_setup); | |||
64 | * Currently, only E class and A180 are known to work with this. | 69 | * Currently, only E class and A180 are known to work with this. |
65 | * Inspired by Christoph Plattner | 70 | * Inspired by Christoph Plattner |
66 | */ | 71 | */ |
67 | 72 | #if 0 | |
68 | static void __init pdc_chassis_checkold(void) | 73 | static void __init pdc_chassis_checkold(void) |
69 | { | 74 | { |
70 | switch(CPU_HVERSION) { | 75 | switch(CPU_HVERSION) { |
@@ -73,7 +78,6 @@ static void __init pdc_chassis_checkold(void) | |||
73 | case 0x482: /* E45 */ | 78 | case 0x482: /* E45 */ |
74 | case 0x483: /* E55 */ | 79 | case 0x483: /* E55 */ |
75 | case 0x516: /* A180 */ | 80 | case 0x516: /* A180 */ |
76 | pdc_chassis_old = 1; | ||
77 | break; | 81 | break; |
78 | 82 | ||
79 | default: | 83 | default: |
@@ -81,7 +85,7 @@ static void __init pdc_chassis_checkold(void) | |||
81 | } | 85 | } |
82 | DPRINTK(KERN_DEBUG "%s: pdc_chassis_checkold(); pdc_chassis_old = %d\n", __FILE__, pdc_chassis_old); | 86 | DPRINTK(KERN_DEBUG "%s: pdc_chassis_checkold(); pdc_chassis_old = %d\n", __FILE__, pdc_chassis_old); |
83 | } | 87 | } |
84 | 88 | #endif | |
85 | 89 | ||
86 | /** | 90 | /** |
87 | * pdc_chassis_panic_event() - Called by the panic handler. | 91 | * pdc_chassis_panic_event() - Called by the panic handler. |
@@ -131,30 +135,20 @@ static struct notifier_block pdc_chassis_reboot_block = { | |||
131 | void __init parisc_pdc_chassis_init(void) | 135 | void __init parisc_pdc_chassis_init(void) |
132 | { | 136 | { |
133 | #ifdef CONFIG_PDC_CHASSIS | 137 | #ifdef CONFIG_PDC_CHASSIS |
134 | int handle = 0; | ||
135 | if (likely(pdc_chassis_enabled)) { | 138 | if (likely(pdc_chassis_enabled)) { |
136 | DPRINTK(KERN_DEBUG "%s: parisc_pdc_chassis_init()\n", __FILE__); | 139 | DPRINTK(KERN_DEBUG "%s: parisc_pdc_chassis_init()\n", __FILE__); |
137 | 140 | ||
138 | /* Let see if we have something to handle... */ | 141 | /* Let see if we have something to handle... */ |
139 | /* Check for PDC_PAT or old LED Panel */ | 142 | printk(KERN_INFO "Enabling %s chassis codes support v%s\n", |
140 | pdc_chassis_checkold(); | 143 | is_pdc_pat() ? "PDC_PAT" : "regular", |
141 | if (is_pdc_pat()) { | 144 | PDC_CHASSIS_VER); |
142 | printk(KERN_INFO "Enabling PDC_PAT chassis codes support.\n"); | 145 | |
143 | handle = 1; | 146 | /* initialize panic notifier chain */ |
144 | } | 147 | atomic_notifier_chain_register(&panic_notifier_list, |
145 | else if (unlikely(pdc_chassis_old)) { | 148 | &pdc_chassis_panic_block); |
146 | printk(KERN_INFO "Enabling old style chassis LED panel support.\n"); | 149 | |
147 | handle = 1; | 150 | /* initialize reboot notifier chain */ |
148 | } | 151 | register_reboot_notifier(&pdc_chassis_reboot_block); |
149 | |||
150 | if (handle) { | ||
151 | /* initialize panic notifier chain */ | ||
152 | atomic_notifier_chain_register(&panic_notifier_list, | ||
153 | &pdc_chassis_panic_block); | ||
154 | |||
155 | /* initialize reboot notifier chain */ | ||
156 | register_reboot_notifier(&pdc_chassis_reboot_block); | ||
157 | } | ||
158 | } | 152 | } |
159 | #endif /* CONFIG_PDC_CHASSIS */ | 153 | #endif /* CONFIG_PDC_CHASSIS */ |
160 | } | 154 | } |
@@ -215,9 +209,12 @@ int pdc_chassis_send_status(int message) | |||
215 | } | 209 | } |
216 | } else retval = -1; | 210 | } else retval = -1; |
217 | #else | 211 | #else |
218 | if (unlikely(pdc_chassis_old)) { | 212 | if (1) { |
219 | switch (message) { | 213 | switch (message) { |
220 | case PDC_CHASSIS_DIRECT_BSTART: | 214 | case PDC_CHASSIS_DIRECT_BSTART: |
215 | retval = pdc_chassis_disp(PDC_CHASSIS_DISP_DATA(OSTAT_INIT)); | ||
216 | break; | ||
217 | |||
221 | case PDC_CHASSIS_DIRECT_BCOMPLETE: | 218 | case PDC_CHASSIS_DIRECT_BCOMPLETE: |
222 | retval = pdc_chassis_disp(PDC_CHASSIS_DISP_DATA(OSTAT_RUN)); | 219 | retval = pdc_chassis_disp(PDC_CHASSIS_DISP_DATA(OSTAT_RUN)); |
223 | break; | 220 | break; |
@@ -244,3 +241,61 @@ int pdc_chassis_send_status(int message) | |||
244 | #endif /* CONFIG_PDC_CHASSIS */ | 241 | #endif /* CONFIG_PDC_CHASSIS */ |
245 | return retval; | 242 | return retval; |
246 | } | 243 | } |
244 | |||
245 | #ifdef CONFIG_PDC_CHASSIS_WARN | ||
246 | #ifdef CONFIG_PROC_FS | ||
247 | static int pdc_chassis_warn_pread(char *page, char **start, off_t off, | ||
248 | int count, int *eof, void *data) | ||
249 | { | ||
250 | char *out = page; | ||
251 | int len, ret; | ||
252 | unsigned long warn; | ||
253 | u32 warnreg; | ||
254 | |||
255 | ret = pdc_chassis_warn(&warn); | ||
256 | if (ret != PDC_OK) | ||
257 | return -EIO; | ||
258 | |||
259 | warnreg = (warn & 0xFFFFFFFF); | ||
260 | |||
261 | if ((warnreg >> 24) & 0xFF) | ||
262 | out += sprintf(out, "Chassis component failure! (eg fan or PSU): 0x%.2x\n", ((warnreg >> 24) & 0xFF)); | ||
263 | |||
264 | out += sprintf(out, "Battery: %s\n", (warnreg & 0x04) ? "Low!" : "OK"); | ||
265 | out += sprintf(out, "Temp low: %s\n", (warnreg & 0x02) ? "Exceeded!" : "OK"); | ||
266 | out += sprintf(out, "Temp mid: %s\n", (warnreg & 0x01) ? "Exceeded!" : "OK"); | ||
267 | |||
268 | len = out - page - off; | ||
269 | if (len < count) { | ||
270 | *eof = 1; | ||
271 | if (len <= 0) return 0; | ||
272 | } else { | ||
273 | len = count; | ||
274 | } | ||
275 | *start = page + off; | ||
276 | return len; | ||
277 | } | ||
278 | |||
279 | static int __init pdc_chassis_create_procfs(void) | ||
280 | { | ||
281 | unsigned long test; | ||
282 | int ret; | ||
283 | |||
284 | ret = pdc_chassis_warn(&test); | ||
285 | if ((ret == PDC_BAD_PROC) || (ret == PDC_BAD_OPTION)) { | ||
286 | /* seems that some boxes (eg L1000) do not implement this */ | ||
287 | printk(KERN_INFO "Chassis warnings not supported.\n"); | ||
288 | return 0; | ||
289 | } | ||
290 | |||
291 | printk(KERN_INFO "Enabling PDC chassis warnings support v%s\n", | ||
292 | PDC_CHASSIS_VER); | ||
293 | create_proc_read_entry("chassis", 0400, NULL, pdc_chassis_warn_pread, | ||
294 | NULL); | ||
295 | return 0; | ||
296 | } | ||
297 | |||
298 | __initcall(pdc_chassis_create_procfs); | ||
299 | |||
300 | #endif /* CONFIG_PROC_FS */ | ||
301 | #endif /* CONFIG_PDC_CHASSIS_WARN */ | ||
diff --git a/arch/parisc/kernel/pdc_cons.c b/arch/parisc/kernel/pdc_cons.c index 215d78c87bc5..ce78f412ff2e 100644 --- a/arch/parisc/kernel/pdc_cons.c +++ b/arch/parisc/kernel/pdc_cons.c | |||
@@ -44,7 +44,6 @@ | |||
44 | #define EARLY_BOOTUP_DEBUG | 44 | #define EARLY_BOOTUP_DEBUG |
45 | 45 | ||
46 | 46 | ||
47 | #include <linux/config.h> | ||
48 | #include <linux/kernel.h> | 47 | #include <linux/kernel.h> |
49 | #include <linux/console.h> | 48 | #include <linux/console.h> |
50 | #include <linux/string.h> | 49 | #include <linux/string.h> |
diff --git a/arch/parisc/kernel/perf_asm.S b/arch/parisc/kernel/perf_asm.S index adb3c6444910..5e7bb90e7e08 100644 --- a/arch/parisc/kernel/perf_asm.S +++ b/arch/parisc/kernel/perf_asm.S | |||
@@ -19,7 +19,6 @@ | |||
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <asm/assembly.h> | 22 | #include <asm/assembly.h> |
24 | 23 | ||
25 | #ifdef CONFIG_64BIT | 24 | #ifdef CONFIG_64BIT |
diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c index 6df9f62cecb5..99d7fca93104 100644 --- a/arch/parisc/kernel/processor.c +++ b/arch/parisc/kernel/processor.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 26 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
27 | * | 27 | * |
28 | */ | 28 | */ |
29 | #include <linux/config.h> | ||
30 | #include <linux/delay.h> | 29 | #include <linux/delay.h> |
31 | #include <linux/init.h> | 30 | #include <linux/init.h> |
32 | #include <linux/mm.h> | 31 | #include <linux/mm.h> |
diff --git a/arch/parisc/kernel/ptrace.c b/arch/parisc/kernel/ptrace.c index 413292f1a4a3..3f28de974556 100644 --- a/arch/parisc/kernel/ptrace.c +++ b/arch/parisc/kernel/ptrace.c | |||
@@ -91,7 +91,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
91 | int copied; | 91 | int copied; |
92 | 92 | ||
93 | #ifdef __LP64__ | 93 | #ifdef __LP64__ |
94 | if (personality(child->personality) == PER_LINUX32) { | 94 | if (__is_compat_task(child)) { |
95 | unsigned int tmp; | 95 | unsigned int tmp; |
96 | 96 | ||
97 | addr &= 0xffffffffL; | 97 | addr &= 0xffffffffL; |
@@ -123,7 +123,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
123 | case PTRACE_POKEDATA: | 123 | case PTRACE_POKEDATA: |
124 | ret = 0; | 124 | ret = 0; |
125 | #ifdef __LP64__ | 125 | #ifdef __LP64__ |
126 | if (personality(child->personality) == PER_LINUX32) { | 126 | if (__is_compat_task(child)) { |
127 | unsigned int tmp = (unsigned int)data; | 127 | unsigned int tmp = (unsigned int)data; |
128 | DBG("sys_ptrace(POKE%s, %d, %lx, %lx)\n", | 128 | DBG("sys_ptrace(POKE%s, %d, %lx, %lx)\n", |
129 | request == PTRACE_POKETEXT ? "TEXT" : "DATA", | 129 | request == PTRACE_POKETEXT ? "TEXT" : "DATA", |
@@ -146,7 +146,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
146 | case PTRACE_PEEKUSR: { | 146 | case PTRACE_PEEKUSR: { |
147 | ret = -EIO; | 147 | ret = -EIO; |
148 | #ifdef __LP64__ | 148 | #ifdef __LP64__ |
149 | if (personality(child->personality) == PER_LINUX32) { | 149 | if (__is_compat_task(child)) { |
150 | unsigned int tmp; | 150 | unsigned int tmp; |
151 | 151 | ||
152 | if (addr & (sizeof(int)-1)) | 152 | if (addr & (sizeof(int)-1)) |
@@ -205,7 +205,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
205 | goto out_tsk; | 205 | goto out_tsk; |
206 | } | 206 | } |
207 | #ifdef __LP64__ | 207 | #ifdef __LP64__ |
208 | if (personality(child->personality) == PER_LINUX32) { | 208 | if (__is_compat_task(child)) { |
209 | if (addr & (sizeof(int)-1)) | 209 | if (addr & (sizeof(int)-1)) |
210 | goto out_tsk; | 210 | goto out_tsk; |
211 | if ((addr = translate_usr_offset(addr)) < 0) | 211 | if ((addr = translate_usr_offset(addr)) < 0) |
diff --git a/arch/parisc/kernel/real2.S b/arch/parisc/kernel/real2.S index 8c2859cca77e..789061f6ceb4 100644 --- a/arch/parisc/kernel/real2.S +++ b/arch/parisc/kernel/real2.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 2000 Hewlett Packard (Paul Bame bame@puffin.external.hp.com) | 7 | * Copyright (C) 2000 Hewlett Packard (Paul Bame bame@puffin.external.hp.com) |
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/psw.h> | 11 | #include <asm/psw.h> |
13 | #include <asm/assembly.h> | 12 | #include <asm/assembly.h> |
@@ -276,15 +275,6 @@ r64_ret: | |||
276 | 275 | ||
277 | #endif | 276 | #endif |
278 | 277 | ||
279 | .export pc_in_user_space | ||
280 | .text | ||
281 | /* Doesn't belong here but I couldn't find a nicer spot. */ | ||
282 | /* Should never get called, only used by profile stuff in time.c */ | ||
283 | pc_in_user_space: | ||
284 | bv,n 0(%rp) | ||
285 | nop | ||
286 | |||
287 | |||
288 | .export __canonicalize_funcptr_for_compare | 278 | .export __canonicalize_funcptr_for_compare |
289 | .text | 279 | .text |
290 | /* http://lists.parisc-linux.org/hypermail/parisc-linux/10916.html | 280 | /* http://lists.parisc-linux.org/hypermail/parisc-linux/10916.html |
diff --git a/arch/parisc/kernel/setup.c b/arch/parisc/kernel/setup.c index 4a36ec3f6ac1..3c7a3faf78ed 100644 --- a/arch/parisc/kernel/setup.c +++ b/arch/parisc/kernel/setup.c | |||
@@ -27,7 +27,6 @@ | |||
27 | * | 27 | * |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include <linux/config.h> | ||
31 | #include <linux/kernel.h> | 30 | #include <linux/kernel.h> |
32 | #include <linux/initrd.h> | 31 | #include <linux/initrd.h> |
33 | #include <linux/init.h> | 32 | #include <linux/init.h> |
@@ -303,6 +302,8 @@ extern void eisa_init(void); | |||
303 | 302 | ||
304 | static int __init parisc_init(void) | 303 | static int __init parisc_init(void) |
305 | { | 304 | { |
305 | u32 osid = (OS_ID_LINUX << 16); | ||
306 | |||
306 | parisc_proc_mkdir(); | 307 | parisc_proc_mkdir(); |
307 | parisc_init_resources(); | 308 | parisc_init_resources(); |
308 | do_device_inventory(); /* probe for hardware */ | 309 | do_device_inventory(); /* probe for hardware */ |
@@ -311,6 +312,9 @@ static int __init parisc_init(void) | |||
311 | 312 | ||
312 | /* set up a new led state on systems shipped LED State panel */ | 313 | /* set up a new led state on systems shipped LED State panel */ |
313 | pdc_chassis_send_status(PDC_CHASSIS_DIRECT_BSTART); | 314 | pdc_chassis_send_status(PDC_CHASSIS_DIRECT_BSTART); |
315 | |||
316 | /* tell PDC we're Linux. Nevermind failure. */ | ||
317 | pdc_stable_write(0x40, &osid, sizeof(osid)); | ||
314 | 318 | ||
315 | processor_init(); | 319 | processor_init(); |
316 | printk(KERN_INFO "CPU(s): %d x %s at %d.%06d MHz\n", | 320 | printk(KERN_INFO "CPU(s): %d x %s at %d.%06d MHz\n", |
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c index cc38edfd90c5..bb83880c5ee3 100644 --- a/arch/parisc/kernel/signal.c +++ b/arch/parisc/kernel/signal.c | |||
@@ -76,7 +76,7 @@ sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize, struct pt_regs *r | |||
76 | #ifdef __LP64__ | 76 | #ifdef __LP64__ |
77 | compat_sigset_t newset32; | 77 | compat_sigset_t newset32; |
78 | 78 | ||
79 | if(personality(current->personality) == PER_LINUX32){ | 79 | if (is_compat_task()) { |
80 | /* XXX: Don't preclude handling different sized sigset_t's. */ | 80 | /* XXX: Don't preclude handling different sized sigset_t's. */ |
81 | if (sigsetsize != sizeof(compat_sigset_t)) | 81 | if (sigsetsize != sizeof(compat_sigset_t)) |
82 | return -EINVAL; | 82 | return -EINVAL; |
@@ -153,7 +153,7 @@ sys_rt_sigreturn(struct pt_regs *regs, int in_syscall) | |||
153 | compat_sigset_t compat_set; | 153 | compat_sigset_t compat_set; |
154 | struct compat_rt_sigframe __user * compat_frame; | 154 | struct compat_rt_sigframe __user * compat_frame; |
155 | 155 | ||
156 | if(personality(current->personality) == PER_LINUX32) | 156 | if (is_compat_task()) |
157 | sigframe_size = PARISC_RT_SIGFRAME_SIZE32; | 157 | sigframe_size = PARISC_RT_SIGFRAME_SIZE32; |
158 | #endif | 158 | #endif |
159 | 159 | ||
@@ -166,7 +166,7 @@ sys_rt_sigreturn(struct pt_regs *regs, int in_syscall) | |||
166 | #ifdef __LP64__ | 166 | #ifdef __LP64__ |
167 | compat_frame = (struct compat_rt_sigframe __user *)frame; | 167 | compat_frame = (struct compat_rt_sigframe __user *)frame; |
168 | 168 | ||
169 | if(personality(current->personality) == PER_LINUX32){ | 169 | if (is_compat_task()) { |
170 | DBG(2,"sys_rt_sigreturn: ELF32 process.\n"); | 170 | DBG(2,"sys_rt_sigreturn: ELF32 process.\n"); |
171 | if (__copy_from_user(&compat_set, &compat_frame->uc.uc_sigmask, sizeof(compat_set))) | 171 | if (__copy_from_user(&compat_set, &compat_frame->uc.uc_sigmask, sizeof(compat_set))) |
172 | goto give_sigsegv; | 172 | goto give_sigsegv; |
@@ -186,7 +186,7 @@ sys_rt_sigreturn(struct pt_regs *regs, int in_syscall) | |||
186 | 186 | ||
187 | /* Good thing we saved the old gr[30], eh? */ | 187 | /* Good thing we saved the old gr[30], eh? */ |
188 | #ifdef __LP64__ | 188 | #ifdef __LP64__ |
189 | if(personality(current->personality) == PER_LINUX32){ | 189 | if (is_compat_task()) { |
190 | DBG(1,"sys_rt_sigreturn: compat_frame->uc.uc_mcontext 0x%p\n", | 190 | DBG(1,"sys_rt_sigreturn: compat_frame->uc.uc_mcontext 0x%p\n", |
191 | &compat_frame->uc.uc_mcontext); | 191 | &compat_frame->uc.uc_mcontext); |
192 | // FIXME: Load upper half from register file | 192 | // FIXME: Load upper half from register file |
@@ -315,7 +315,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
315 | 315 | ||
316 | compat_frame = (struct compat_rt_sigframe __user *)frame; | 316 | compat_frame = (struct compat_rt_sigframe __user *)frame; |
317 | 317 | ||
318 | if(personality(current->personality) == PER_LINUX32) { | 318 | if (is_compat_task()) { |
319 | DBG(1,"setup_rt_frame: frame->info = 0x%p\n", &compat_frame->info); | 319 | DBG(1,"setup_rt_frame: frame->info = 0x%p\n", &compat_frame->info); |
320 | err |= copy_siginfo_to_user32(&compat_frame->info, info); | 320 | err |= copy_siginfo_to_user32(&compat_frame->info, info); |
321 | DBG(1,"SETUP_RT_FRAME: 1\n"); | 321 | DBG(1,"SETUP_RT_FRAME: 1\n"); |
@@ -392,7 +392,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
392 | haddr = A(ka->sa.sa_handler); | 392 | haddr = A(ka->sa.sa_handler); |
393 | /* The sa_handler may be a pointer to a function descriptor */ | 393 | /* The sa_handler may be a pointer to a function descriptor */ |
394 | #ifdef __LP64__ | 394 | #ifdef __LP64__ |
395 | if(personality(current->personality) == PER_LINUX32) { | 395 | if (is_compat_task()) { |
396 | #endif | 396 | #endif |
397 | if (haddr & PA_PLABEL_FDESC) { | 397 | if (haddr & PA_PLABEL_FDESC) { |
398 | Elf32_Fdesc fdesc; | 398 | Elf32_Fdesc fdesc; |
@@ -427,19 +427,19 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
427 | */ | 427 | */ |
428 | sigframe_size = PARISC_RT_SIGFRAME_SIZE; | 428 | sigframe_size = PARISC_RT_SIGFRAME_SIZE; |
429 | #ifdef __LP64__ | 429 | #ifdef __LP64__ |
430 | if(personality(current->personality) == PER_LINUX32) | 430 | if (is_compat_task()) |
431 | sigframe_size = PARISC_RT_SIGFRAME_SIZE32; | 431 | sigframe_size = PARISC_RT_SIGFRAME_SIZE32; |
432 | #endif | 432 | #endif |
433 | if (in_syscall) { | 433 | if (in_syscall) { |
434 | regs->gr[31] = haddr; | 434 | regs->gr[31] = haddr; |
435 | #ifdef __LP64__ | 435 | #ifdef __LP64__ |
436 | if(personality(current->personality) == PER_LINUX) | 436 | if (personality(current->personality) == PER_LINUX) |
437 | sigframe_size |= 1; | 437 | sigframe_size |= 1; |
438 | #endif | 438 | #endif |
439 | } else { | 439 | } else { |
440 | unsigned long psw = USER_PSW; | 440 | unsigned long psw = USER_PSW; |
441 | #ifdef __LP64__ | 441 | #ifdef __LP64__ |
442 | if(personality(current->personality) == PER_LINUX) | 442 | if (personality(current->personality) == PER_LINUX) |
443 | psw |= PSW_W; | 443 | psw |= PSW_W; |
444 | #endif | 444 | #endif |
445 | 445 | ||
@@ -464,7 +464,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | |||
464 | regs->gr[26] = sig; /* signal number */ | 464 | regs->gr[26] = sig; /* signal number */ |
465 | 465 | ||
466 | #ifdef __LP64__ | 466 | #ifdef __LP64__ |
467 | if(personality(current->personality) == PER_LINUX32){ | 467 | if (is_compat_task()) { |
468 | regs->gr[25] = A(&compat_frame->info); /* siginfo pointer */ | 468 | regs->gr[25] = A(&compat_frame->info); /* siginfo pointer */ |
469 | regs->gr[24] = A(&compat_frame->uc); /* ucontext pointer */ | 469 | regs->gr[24] = A(&compat_frame->uc); /* ucontext pointer */ |
470 | } else | 470 | } else |
diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c index d6ac1c60a471..98e40959a564 100644 --- a/arch/parisc/kernel/smp.c +++ b/arch/parisc/kernel/smp.c | |||
@@ -18,7 +18,6 @@ | |||
18 | */ | 18 | */ |
19 | #undef ENTRY_SYS_CPUS /* syscall support for iCOD-like functionality */ | 19 | #undef ENTRY_SYS_CPUS /* syscall support for iCOD-like functionality */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | 21 | ||
23 | #include <linux/types.h> | 22 | #include <linux/types.h> |
24 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
diff --git a/arch/parisc/kernel/sys_parisc32.c b/arch/parisc/kernel/sys_parisc32.c index d286f68a3d3a..b74869803081 100644 --- a/arch/parisc/kernel/sys_parisc32.c +++ b/arch/parisc/kernel/sys_parisc32.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * environment. Based heavily on sys_ia32.c and sys_sparc32.c. | 9 | * environment. Based heavily on sys_ia32.c and sys_sparc32.c. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/compat.h> | 12 | #include <linux/compat.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S index 479d9a017cd1..9670a89c77fe 100644 --- a/arch/parisc/kernel/syscall.S +++ b/arch/parisc/kernel/syscall.S | |||
@@ -29,18 +29,6 @@ | |||
29 | .level 1.1 | 29 | .level 1.1 |
30 | #endif | 30 | #endif |
31 | 31 | ||
32 | #ifndef CONFIG_64BIT | ||
33 | .macro fixup_branch,lbl | ||
34 | b \lbl | ||
35 | .endm | ||
36 | #else | ||
37 | .macro fixup_branch,lbl | ||
38 | ldil L%\lbl, %r1 | ||
39 | ldo R%\lbl(%r1), %r1 | ||
40 | bv,n %r0(%r1) | ||
41 | .endm | ||
42 | #endif | ||
43 | |||
44 | .text | 32 | .text |
45 | 33 | ||
46 | .import syscall_exit,code | 34 | .import syscall_exit,code |
@@ -541,7 +529,7 @@ cas_nocontend: | |||
541 | # endif | 529 | # endif |
542 | /* ENABLE_LWS_DEBUG */ | 530 | /* ENABLE_LWS_DEBUG */ |
543 | 531 | ||
544 | ldcw 0(%sr2,%r20), %r28 /* Try to acquire the lock */ | 532 | LDCW 0(%sr2,%r20), %r28 /* Try to acquire the lock */ |
545 | cmpb,<>,n %r0, %r28, cas_action /* Did we get it? */ | 533 | cmpb,<>,n %r0, %r28, cas_action /* Did we get it? */ |
546 | cas_wouldblock: | 534 | cas_wouldblock: |
547 | ldo 2(%r0), %r28 /* 2nd case */ | 535 | ldo 2(%r0), %r28 /* 2nd case */ |
diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c index 594930bc4bcf..5facc9bff4ef 100644 --- a/arch/parisc/kernel/time.c +++ b/arch/parisc/kernel/time.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 1998-12-20 Updated NTP code according to technical memorandum Jan '96 | 10 | * 1998-12-20 Updated NTP code according to technical memorandum Jan '96 |
11 | * "A Kernel Model for Precision Timekeeping" by Dave Mills | 11 | * "A Kernel Model for Precision Timekeeping" by Dave Mills |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
@@ -157,8 +156,22 @@ do_gettimeofday (struct timeval *tv) | |||
157 | usec += (xtime.tv_nsec / 1000); | 156 | usec += (xtime.tv_nsec / 1000); |
158 | } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); | 157 | } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); |
159 | 158 | ||
160 | while (usec >= 1000000) { | 159 | if (unlikely(usec > LONG_MAX)) { |
161 | usec -= 1000000; | 160 | /* This can happen if the gettimeoffset adjustment is |
161 | * negative and xtime.tv_nsec is smaller than the | ||
162 | * adjustment */ | ||
163 | printk(KERN_ERR "do_gettimeofday() spurious xtime.tv_nsec of %ld\n", usec); | ||
164 | usec += USEC_PER_SEC; | ||
165 | --sec; | ||
166 | /* This should never happen, it means the negative | ||
167 | * time adjustment was more than a second, so there's | ||
168 | * something seriously wrong */ | ||
169 | BUG_ON(usec > LONG_MAX); | ||
170 | } | ||
171 | |||
172 | |||
173 | while (usec >= USEC_PER_SEC) { | ||
174 | usec -= USEC_PER_SEC; | ||
162 | ++sec; | 175 | ++sec; |
163 | } | 176 | } |
164 | 177 | ||
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index ff200608c851..77b28cb8aca6 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * state in 'asm.s'. | 10 | * state in 'asm.s'. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/string.h> | 15 | #include <linux/string.h> |
@@ -66,57 +65,42 @@ int printbinary(char *buf, unsigned long x, int nbits) | |||
66 | #else | 65 | #else |
67 | #define RFMT "%08lx" | 66 | #define RFMT "%08lx" |
68 | #endif | 67 | #endif |
68 | #define FFMT "%016llx" /* fpregs are 64-bit always */ | ||
69 | 69 | ||
70 | void show_regs(struct pt_regs *regs) | 70 | #define PRINTREGS(lvl,r,f,fmt,x) \ |
71 | printk("%s%s%02d-%02d " fmt " " fmt " " fmt " " fmt "\n", \ | ||
72 | lvl, f, (x), (x+3), (r)[(x)+0], (r)[(x)+1], \ | ||
73 | (r)[(x)+2], (r)[(x)+3]) | ||
74 | |||
75 | static void print_gr(char *level, struct pt_regs *regs) | ||
71 | { | 76 | { |
72 | int i; | 77 | int i; |
73 | char buf[128], *p; | 78 | char buf[64]; |
74 | char *level; | ||
75 | unsigned long cr30; | ||
76 | unsigned long cr31; | ||
77 | /* carlos says that gcc understands better memory in a struct, | ||
78 | * and it makes our life easier with fpregs -- T-Bone */ | ||
79 | struct { u32 sw[2]; } s; | ||
80 | |||
81 | level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT; | ||
82 | |||
83 | printk("%s\n", level); /* don't want to have that pretty register dump messed up */ | ||
84 | 79 | ||
80 | printk("%s\n", level); | ||
85 | printk("%s YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI\n", level); | 81 | printk("%s YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI\n", level); |
86 | printbinary(buf, regs->gr[0], 32); | 82 | printbinary(buf, regs->gr[0], 32); |
87 | printk("%sPSW: %s %s\n", level, buf, print_tainted()); | 83 | printk("%sPSW: %s %s\n", level, buf, print_tainted()); |
88 | 84 | ||
89 | for (i = 0; i < 32; i += 4) { | 85 | for (i = 0; i < 32; i += 4) |
90 | int j; | 86 | PRINTREGS(level, regs->gr, "r", RFMT, i); |
91 | p = buf; | 87 | } |
92 | p += sprintf(p, "%sr%02d-%02d ", level, i, i + 3); | ||
93 | for (j = 0; j < 4; j++) { | ||
94 | p += sprintf(p, " " RFMT, (i+j) == 0 ? 0 : regs->gr[i + j]); | ||
95 | } | ||
96 | printk("%s\n", buf); | ||
97 | } | ||
98 | 88 | ||
99 | for (i = 0; i < 8; i += 4) { | 89 | static void print_fr(char *level, struct pt_regs *regs) |
100 | int j; | 90 | { |
101 | p = buf; | 91 | int i; |
102 | p += sprintf(p, "%ssr%d-%d ", level, i, i + 3); | 92 | char buf[64]; |
103 | for (j = 0; j < 4; j++) { | 93 | struct { u32 sw[2]; } s; |
104 | p += sprintf(p, " " RFMT, regs->sr[i + j]); | ||
105 | } | ||
106 | printk("%s\n", buf); | ||
107 | } | ||
108 | 94 | ||
109 | /* FR are 64bit everywhere. Need to use asm to get the content | 95 | /* FR are 64bit everywhere. Need to use asm to get the content |
110 | * of fpsr/fper1, and we assume that we won't have a FP Identify | 96 | * of fpsr/fper1, and we assume that we won't have a FP Identify |
111 | * in our way, otherwise we're screwed. | 97 | * in our way, otherwise we're screwed. |
112 | * The fldd is used to restore the T-bit if there was one, as the | 98 | * The fldd is used to restore the T-bit if there was one, as the |
113 | * store clears it anyway. | 99 | * store clears it anyway. |
114 | * BTW, PA2.0 book says "thou shall not use fstw on FPSR/FPERs". */ | 100 | * PA2.0 book says "thou shall not use fstw on FPSR/FPERs" - T-Bone */ |
115 | __asm__ ( | 101 | asm volatile ("fstd %%fr0,0(%1) \n\t" |
116 | "fstd %%fr0,0(%1) \n\t" | 102 | "fldd 0(%1),%%fr0 \n\t" |
117 | "fldd 0(%1),%%fr0 \n\t" | 103 | : "=m" (s) : "r" (&s) : "r0"); |
118 | : "=m" (s) : "r" (&s) : "%r0" | ||
119 | ); | ||
120 | 104 | ||
121 | printk("%s\n", level); | 105 | printk("%s\n", level); |
122 | printk("%s VZOUICununcqcqcqcqcqcrmunTDVZOUI\n", level); | 106 | printk("%s VZOUICununcqcqcqcqcqcrmunTDVZOUI\n", level); |
@@ -125,14 +109,25 @@ void show_regs(struct pt_regs *regs) | |||
125 | printk("%sFPER1: %08x\n", level, s.sw[1]); | 109 | printk("%sFPER1: %08x\n", level, s.sw[1]); |
126 | 110 | ||
127 | /* here we'll print fr0 again, tho it'll be meaningless */ | 111 | /* here we'll print fr0 again, tho it'll be meaningless */ |
128 | for (i = 0; i < 32; i += 4) { | 112 | for (i = 0; i < 32; i += 4) |
129 | int j; | 113 | PRINTREGS(level, regs->fr, "fr", FFMT, i); |
130 | p = buf; | 114 | } |
131 | p += sprintf(p, "%sfr%02d-%02d ", level, i, i + 3); | 115 | |
132 | for (j = 0; j < 4; j++) | 116 | void show_regs(struct pt_regs *regs) |
133 | p += sprintf(p, " %016llx", (i+j) == 0 ? 0 : regs->fr[i+j]); | 117 | { |
134 | printk("%s\n", buf); | 118 | int i; |
135 | } | 119 | char *level; |
120 | unsigned long cr30, cr31; | ||
121 | |||
122 | level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT; | ||
123 | |||
124 | print_gr(level, regs); | ||
125 | |||
126 | for (i = 0; i < 8; i += 4) | ||
127 | PRINTREGS(level, regs->sr, "sr", RFMT, i); | ||
128 | |||
129 | if (user_mode(regs)) | ||
130 | print_fr(level, regs); | ||
136 | 131 | ||
137 | cr30 = mfctl(30); | 132 | cr30 = mfctl(30); |
138 | cr31 = mfctl(31); | 133 | cr31 = mfctl(31); |
diff --git a/arch/parisc/kernel/unaligned.c b/arch/parisc/kernel/unaligned.c index de0a1b21cb40..bd2230d6a2a6 100644 --- a/arch/parisc/kernel/unaligned.c +++ b/arch/parisc/kernel/unaligned.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * | 20 | * |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <asm/uaccess.h> | 25 | #include <asm/uaccess.h> |
@@ -43,6 +42,8 @@ | |||
43 | "\tldil L%%" #lbl ", %%r1\n" \ | 42 | "\tldil L%%" #lbl ", %%r1\n" \ |
44 | "\tldo R%%" #lbl "(%%r1), %%r1\n" \ | 43 | "\tldo R%%" #lbl "(%%r1), %%r1\n" \ |
45 | "\tbv,n %%r0(%%r1)\n" | 44 | "\tbv,n %%r0(%%r1)\n" |
45 | /* If you use FIXUP_BRANCH, then you must list this clobber */ | ||
46 | #define FIXUP_BRANCH_CLOBBER "r1" | ||
46 | 47 | ||
47 | /* 1111 1100 0000 0000 0001 0011 1100 0000 */ | 48 | /* 1111 1100 0000 0000 0001 0011 1100 0000 */ |
48 | #define OPCODE1(a,b,c) ((a)<<26|(b)<<12|(c)<<6) | 49 | #define OPCODE1(a,b,c) ((a)<<26|(b)<<12|(c)<<6) |
@@ -157,7 +158,7 @@ static int emulate_ldh(struct pt_regs *regs, int toreg) | |||
157 | " .previous\n" | 158 | " .previous\n" |
158 | : "=r" (val), "=r" (ret) | 159 | : "=r" (val), "=r" (ret) |
159 | : "0" (val), "r" (saddr), "r" (regs->isr) | 160 | : "0" (val), "r" (saddr), "r" (regs->isr) |
160 | : "r20" ); | 161 | : "r20", FIXUP_BRANCH_CLOBBER ); |
161 | 162 | ||
162 | DPRINTF("val = 0x" RFMT "\n", val); | 163 | DPRINTF("val = 0x" RFMT "\n", val); |
163 | 164 | ||
@@ -202,7 +203,7 @@ static int emulate_ldw(struct pt_regs *regs, int toreg, int flop) | |||
202 | " .previous\n" | 203 | " .previous\n" |
203 | : "=r" (val), "=r" (ret) | 204 | : "=r" (val), "=r" (ret) |
204 | : "0" (val), "r" (saddr), "r" (regs->isr) | 205 | : "0" (val), "r" (saddr), "r" (regs->isr) |
205 | : "r19", "r20" ); | 206 | : "r19", "r20", FIXUP_BRANCH_CLOBBER ); |
206 | 207 | ||
207 | DPRINTF("val = 0x" RFMT "\n", val); | 208 | DPRINTF("val = 0x" RFMT "\n", val); |
208 | 209 | ||
@@ -253,7 +254,7 @@ static int emulate_ldd(struct pt_regs *regs, int toreg, int flop) | |||
253 | " .previous\n" | 254 | " .previous\n" |
254 | : "=r" (val), "=r" (ret) | 255 | : "=r" (val), "=r" (ret) |
255 | : "0" (val), "r" (saddr), "r" (regs->isr) | 256 | : "0" (val), "r" (saddr), "r" (regs->isr) |
256 | : "r19", "r20" ); | 257 | : "r19", "r20", FIXUP_BRANCH_CLOBBER ); |
257 | #else | 258 | #else |
258 | { | 259 | { |
259 | unsigned long valh=0,vall=0; | 260 | unsigned long valh=0,vall=0; |
@@ -287,7 +288,7 @@ static int emulate_ldd(struct pt_regs *regs, int toreg, int flop) | |||
287 | " .previous\n" | 288 | " .previous\n" |
288 | : "=r" (valh), "=r" (vall), "=r" (ret) | 289 | : "=r" (valh), "=r" (vall), "=r" (ret) |
289 | : "0" (valh), "1" (vall), "r" (saddr), "r" (regs->isr) | 290 | : "0" (valh), "1" (vall), "r" (saddr), "r" (regs->isr) |
290 | : "r19", "r20" ); | 291 | : "r19", "r20", FIXUP_BRANCH_CLOBBER ); |
291 | val=((__u64)valh<<32)|(__u64)vall; | 292 | val=((__u64)valh<<32)|(__u64)vall; |
292 | } | 293 | } |
293 | #endif | 294 | #endif |
@@ -335,7 +336,7 @@ static int emulate_sth(struct pt_regs *regs, int frreg) | |||
335 | " .previous\n" | 336 | " .previous\n" |
336 | : "=r" (ret) | 337 | : "=r" (ret) |
337 | : "r" (val), "r" (regs->ior), "r" (regs->isr) | 338 | : "r" (val), "r" (regs->ior), "r" (regs->isr) |
338 | : "r19" ); | 339 | : "r19", FIXUP_BRANCH_CLOBBER ); |
339 | 340 | ||
340 | return ret; | 341 | return ret; |
341 | } | 342 | } |
@@ -389,7 +390,7 @@ static int emulate_stw(struct pt_regs *regs, int frreg, int flop) | |||
389 | " .previous\n" | 390 | " .previous\n" |
390 | : "=r" (ret) | 391 | : "=r" (ret) |
391 | : "r" (val), "r" (regs->ior), "r" (regs->isr) | 392 | : "r" (val), "r" (regs->ior), "r" (regs->isr) |
392 | : "r19", "r20", "r21", "r22", "r1" ); | 393 | : "r19", "r20", "r21", "r22", "r1", FIXUP_BRANCH_CLOBBER ); |
393 | 394 | ||
394 | return 0; | 395 | return 0; |
395 | } | 396 | } |
@@ -450,7 +451,7 @@ static int emulate_std(struct pt_regs *regs, int frreg, int flop) | |||
450 | " .previous\n" | 451 | " .previous\n" |
451 | : "=r" (ret) | 452 | : "=r" (ret) |
452 | : "r" (val), "r" (regs->ior), "r" (regs->isr) | 453 | : "r" (val), "r" (regs->ior), "r" (regs->isr) |
453 | : "r19", "r20", "r21", "r22", "r1" ); | 454 | : "r19", "r20", "r21", "r22", "r1", FIXUP_BRANCH_CLOBBER ); |
454 | #else | 455 | #else |
455 | { | 456 | { |
456 | unsigned long valh=(val>>32),vall=(val&0xffffffffl); | 457 | unsigned long valh=(val>>32),vall=(val&0xffffffffl); |
@@ -495,7 +496,7 @@ static int emulate_std(struct pt_regs *regs, int frreg, int flop) | |||
495 | " .previous\n" | 496 | " .previous\n" |
496 | : "=r" (ret) | 497 | : "=r" (ret) |
497 | : "r" (valh), "r" (vall), "r" (regs->ior), "r" (regs->isr) | 498 | : "r" (valh), "r" (vall), "r" (regs->ior), "r" (regs->isr) |
498 | : "r19", "r20", "r21", "r1" ); | 499 | : "r19", "r20", "r21", "r1", FIXUP_BRANCH_CLOBBER ); |
499 | } | 500 | } |
500 | #endif | 501 | #endif |
501 | 502 | ||
diff --git a/arch/parisc/kernel/unwind.c b/arch/parisc/kernel/unwind.c index cc1c1afc3187..920bdbf8404f 100644 --- a/arch/parisc/kernel/unwind.c +++ b/arch/parisc/kernel/unwind.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * understand what is happening here | 8 | * understand what is happening here |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index 94dcc03a28ed..9989495a51dd 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S | |||
@@ -23,7 +23,6 @@ | |||
23 | * along with this program; if not, write to the Free Software | 23 | * along with this program; if not, write to the Free Software |
24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <asm-generic/vmlinux.lds.h> | 26 | #include <asm-generic/vmlinux.lds.h> |
28 | /* needed for the processor specific cache alignment size */ | 27 | /* needed for the processor specific cache alignment size */ |
29 | #include <asm/cache.h> | 28 | #include <asm/cache.h> |
diff --git a/arch/parisc/lib/bitops.c b/arch/parisc/lib/bitops.c index 90f400b10282..f352666b5b2f 100644 --- a/arch/parisc/lib/bitops.c +++ b/arch/parisc/lib/bitops.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright 2000 Grant Grundler (grundler@cup.hp.com) | 6 | * Copyright 2000 Grant Grundler (grundler@cup.hp.com) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/spinlock.h> | 10 | #include <linux/spinlock.h> |
12 | #include <asm/system.h> | 11 | #include <asm/system.h> |
diff --git a/arch/parisc/lib/fixup.S b/arch/parisc/lib/fixup.S index e0661c2978ed..ecce3d35401f 100644 --- a/arch/parisc/lib/fixup.S +++ b/arch/parisc/lib/fixup.S | |||
@@ -19,7 +19,6 @@ | |||
19 | * | 19 | * |
20 | * Fixup routines for kernel exception handling. | 20 | * Fixup routines for kernel exception handling. |
21 | */ | 21 | */ |
22 | #include <linux/config.h> | ||
23 | #include <asm/asm-offsets.h> | 22 | #include <asm/asm-offsets.h> |
24 | #include <asm/assembly.h> | 23 | #include <asm/assembly.h> |
25 | #include <asm/errno.h> | 24 | #include <asm/errno.h> |
diff --git a/arch/parisc/lib/memcpy.c b/arch/parisc/lib/memcpy.c index b7098035321f..5575e41f9d60 100644 --- a/arch/parisc/lib/memcpy.c +++ b/arch/parisc/lib/memcpy.c | |||
@@ -53,7 +53,6 @@ | |||
53 | */ | 53 | */ |
54 | 54 | ||
55 | #ifdef __KERNEL__ | 55 | #ifdef __KERNEL__ |
56 | #include <linux/config.h> | ||
57 | #include <linux/module.h> | 56 | #include <linux/module.h> |
58 | #include <linux/compiler.h> | 57 | #include <linux/compiler.h> |
59 | #include <asm/uaccess.h> | 58 | #include <asm/uaccess.h> |
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c index 631712562656..f2b96f1e0da7 100644 --- a/arch/parisc/mm/init.c +++ b/arch/parisc/mm/init.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | 13 | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
@@ -28,6 +27,7 @@ | |||
28 | #include <asm/tlb.h> | 27 | #include <asm/tlb.h> |
29 | #include <asm/pdc_chassis.h> | 28 | #include <asm/pdc_chassis.h> |
30 | #include <asm/mmzone.h> | 29 | #include <asm/mmzone.h> |
30 | #include <asm/sections.h> | ||
31 | 31 | ||
32 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | 32 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); |
33 | 33 | ||
@@ -418,11 +418,10 @@ void free_initmem(void) | |||
418 | #ifdef CONFIG_DEBUG_RODATA | 418 | #ifdef CONFIG_DEBUG_RODATA |
419 | void mark_rodata_ro(void) | 419 | void mark_rodata_ro(void) |
420 | { | 420 | { |
421 | extern char __start_rodata, __end_rodata; | ||
422 | /* rodata memory was already mapped with KERNEL_RO access rights by | 421 | /* rodata memory was already mapped with KERNEL_RO access rights by |
423 | pagetable_init() and map_pages(). No need to do additional stuff here */ | 422 | pagetable_init() and map_pages(). No need to do additional stuff here */ |
424 | printk (KERN_INFO "Write protecting the kernel read-only data: %luk\n", | 423 | printk (KERN_INFO "Write protecting the kernel read-only data: %luk\n", |
425 | (unsigned long)(&__end_rodata - &__start_rodata) >> 10); | 424 | (unsigned long)(__end_rodata - __start_rodata) >> 10); |
426 | } | 425 | } |
427 | #endif | 426 | #endif |
428 | 427 | ||
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index e922a88b2bad..2643dbc3f289 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -30,6 +30,10 @@ config GENERIC_HARDIRQS | |||
30 | bool | 30 | bool |
31 | default y | 31 | default y |
32 | 32 | ||
33 | config IRQ_PER_CPU | ||
34 | bool | ||
35 | default y | ||
36 | |||
33 | config RWSEM_GENERIC_SPINLOCK | 37 | config RWSEM_GENERIC_SPINLOCK |
34 | bool | 38 | bool |
35 | 39 | ||
@@ -336,7 +340,7 @@ config PPC_ISERIES | |||
336 | 340 | ||
337 | config EMBEDDED6xx | 341 | config EMBEDDED6xx |
338 | bool "Embedded 6xx/7xx/7xxx-based board" | 342 | bool "Embedded 6xx/7xx/7xxx-based board" |
339 | depends on PPC32 && BROKEN | 343 | depends on PPC32 && (BROKEN||BROKEN_ON_SMP) |
340 | 344 | ||
341 | config APUS | 345 | config APUS |
342 | bool "Amiga-APUS" | 346 | bool "Amiga-APUS" |
@@ -413,12 +417,17 @@ config PPC_CELL_NATIVE | |||
413 | default n | 417 | default n |
414 | 418 | ||
415 | config PPC_IBM_CELL_BLADE | 419 | config PPC_IBM_CELL_BLADE |
416 | bool " IBM Cell Blade" | 420 | bool "IBM Cell Blade" |
417 | depends on PPC_MULTIPLATFORM && PPC64 | 421 | depends on PPC_MULTIPLATFORM && PPC64 |
418 | select PPC_CELL_NATIVE | 422 | select PPC_CELL_NATIVE |
419 | select PPC_RTAS | 423 | select PPC_RTAS |
420 | select MMIO_NVRAM | 424 | select MMIO_NVRAM |
421 | select PPC_UDBG_16550 | 425 | select PPC_UDBG_16550 |
426 | select UDBG_RTAS_CONSOLE | ||
427 | |||
428 | config UDBG_RTAS_CONSOLE | ||
429 | bool | ||
430 | default n | ||
422 | 431 | ||
423 | config XICS | 432 | config XICS |
424 | depends on PPC_PSERIES | 433 | depends on PPC_PSERIES |
@@ -431,7 +440,8 @@ config U3_DART | |||
431 | default n | 440 | default n |
432 | 441 | ||
433 | config MPIC | 442 | config MPIC |
434 | depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE || PPC_CHRP | 443 | depends on PPC_PSERIES || PPC_PMAC || PPC_MAPLE || PPC_CHRP \ |
444 | || MPC7448HPC2 | ||
435 | bool | 445 | bool |
436 | default y | 446 | default y |
437 | 447 | ||
@@ -557,6 +567,13 @@ config TAU_AVERAGE | |||
557 | /proc/cpuinfo. | 567 | /proc/cpuinfo. |
558 | 568 | ||
559 | If in doubt, say N here. | 569 | If in doubt, say N here. |
570 | |||
571 | config PPC_TODC | ||
572 | depends on EMBEDDED6xx | ||
573 | bool "Generic Time-of-day Clock (TODC) support" | ||
574 | ---help--- | ||
575 | This adds support for many TODC/RTC chips. | ||
576 | |||
560 | endmenu | 577 | endmenu |
561 | 578 | ||
562 | source arch/powerpc/platforms/embedded6xx/Kconfig | 579 | source arch/powerpc/platforms/embedded6xx/Kconfig |
@@ -618,16 +635,19 @@ config HOTPLUG_CPU | |||
618 | 635 | ||
619 | Say N if you are unsure. | 636 | Say N if you are unsure. |
620 | 637 | ||
638 | config ARCH_ENABLE_MEMORY_HOTPLUG | ||
639 | def_bool y | ||
640 | |||
621 | config KEXEC | 641 | config KEXEC |
622 | bool "kexec system call (EXPERIMENTAL)" | 642 | bool "kexec system call (EXPERIMENTAL)" |
623 | depends on PPC_MULTIPLATFORM && EXPERIMENTAL | 643 | depends on PPC_MULTIPLATFORM && EXPERIMENTAL |
624 | help | 644 | help |
625 | kexec is a system call that implements the ability to shutdown your | 645 | kexec is a system call that implements the ability to shutdown your |
626 | current kernel, and to start another kernel. It is like a reboot | 646 | current kernel, and to start another kernel. It is like a reboot |
627 | but it is indepedent of the system firmware. And like a reboot | 647 | but it is independent of the system firmware. And like a reboot |
628 | you can start any kernel with it, not just Linux. | 648 | you can start any kernel with it, not just Linux. |
629 | 649 | ||
630 | The name comes from the similiarity to the exec system call. | 650 | The name comes from the similarity to the exec system call. |
631 | 651 | ||
632 | It is an ongoing process to be certain the hardware in a machine | 652 | It is an ongoing process to be certain the hardware in a machine |
633 | is properly shutdown, so do not be surprised if this code does not | 653 | is properly shutdown, so do not be surprised if this code does not |
@@ -794,7 +814,6 @@ config GENERIC_ISA_DMA | |||
794 | 814 | ||
795 | config PPC_I8259 | 815 | config PPC_I8259 |
796 | bool | 816 | bool |
797 | default y if MPC8641_HPCN | ||
798 | default n | 817 | default n |
799 | 818 | ||
800 | config PPC_INDIRECT_PCI | 819 | config PPC_INDIRECT_PCI |
@@ -817,7 +836,8 @@ config MCA | |||
817 | bool | 836 | bool |
818 | 837 | ||
819 | config PCI | 838 | config PCI |
820 | bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) | 839 | bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) \ |
840 | || MPC7448HPC2 | ||
821 | default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !PPC_85xx && !PPC_86xx | 841 | default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !PPC_85xx && !PPC_86xx |
822 | default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS | 842 | default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS |
823 | default PCI_QSPAN if !4xx && !CPM2 && 8xx | 843 | default PCI_QSPAN if !4xx && !CPM2 && 8xx |
diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug index c69006ae8246..e29ef77d3b00 100644 --- a/arch/powerpc/Kconfig.debug +++ b/arch/powerpc/Kconfig.debug | |||
@@ -134,12 +134,19 @@ config PPC_EARLY_DEBUG_G5 | |||
134 | help | 134 | help |
135 | Select this to enable early debugging for Apple G5 machines. | 135 | Select this to enable early debugging for Apple G5 machines. |
136 | 136 | ||
137 | config PPC_EARLY_DEBUG_RTAS | 137 | config PPC_EARLY_DEBUG_RTAS_PANEL |
138 | bool "RTAS Panel" | 138 | bool "RTAS Panel" |
139 | depends on PPC_RTAS | 139 | depends on PPC_RTAS |
140 | help | 140 | help |
141 | Select this to enable early debugging via the RTAS panel. | 141 | Select this to enable early debugging via the RTAS panel. |
142 | 142 | ||
143 | config PPC_EARLY_DEBUG_RTAS_CONSOLE | ||
144 | bool "RTAS Console" | ||
145 | depends on PPC_RTAS | ||
146 | select UDBG_RTAS_CONSOLE | ||
147 | help | ||
148 | Select this to enable early debugging via the RTAS console. | ||
149 | |||
143 | config PPC_EARLY_DEBUG_MAPLE | 150 | config PPC_EARLY_DEBUG_MAPLE |
144 | bool "Maple real mode" | 151 | bool "Maple real mode" |
145 | depends on PPC_MAPLE | 152 | depends on PPC_MAPLE |
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig index b8b8d4675dc0..e028a2ecb8a3 100644 --- a/arch/powerpc/configs/cell_defconfig +++ b/arch/powerpc/configs/cell_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.17 | 3 | # Linux kernel version: 2.6.17-rc6 |
4 | # Mon Jun 19 17:23:03 2006 | 4 | # Thu Jun 22 15:28:36 2006 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | CONFIG_64BIT=y | 7 | CONFIG_64BIT=y |
@@ -1063,7 +1063,8 @@ CONFIG_DEBUG_FS=y | |||
1063 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1063 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1064 | # CONFIG_DEBUG_STACK_USAGE is not set | 1064 | # CONFIG_DEBUG_STACK_USAGE is not set |
1065 | CONFIG_DEBUGGER=y | 1065 | CONFIG_DEBUGGER=y |
1066 | # CONFIG_XMON is not set | 1066 | CONFIG_XMON=y |
1067 | CONFIG_XMON_DEFAULT=y | ||
1067 | CONFIG_IRQSTACKS=y | 1068 | CONFIG_IRQSTACKS=y |
1068 | # CONFIG_BOOTX_TEXT is not set | 1069 | # CONFIG_BOOTX_TEXT is not set |
1069 | # CONFIG_PPC_EARLY_DEBUG is not set | 1070 | # CONFIG_PPC_EARLY_DEBUG is not set |
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig new file mode 100644 index 000000000000..15a50f4ceb1f --- /dev/null +++ b/arch/powerpc/configs/mpc7448_hpc2_defconfig | |||
@@ -0,0 +1,923 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.17-rc4 | ||
4 | # Sat May 27 18:45:55 2006 | ||
5 | # | ||
6 | # CONFIG_PPC64 is not set | ||
7 | CONFIG_PPC32=y | ||
8 | CONFIG_PPC_MERGE=y | ||
9 | CONFIG_MMU=y | ||
10 | CONFIG_GENERIC_HARDIRQS=y | ||
11 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
12 | CONFIG_GENERIC_HWEIGHT=y | ||
13 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
14 | CONFIG_PPC=y | ||
15 | CONFIG_EARLY_PRINTK=y | ||
16 | CONFIG_GENERIC_NVRAM=y | ||
17 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
18 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
19 | CONFIG_PPC_OF=y | ||
20 | CONFIG_PPC_UDBG_16550=y | ||
21 | # CONFIG_GENERIC_TBSYNC is not set | ||
22 | CONFIG_DEFAULT_UIMAGE=y | ||
23 | |||
24 | # | ||
25 | # Processor support | ||
26 | # | ||
27 | CONFIG_CLASSIC32=y | ||
28 | # CONFIG_PPC_52xx is not set | ||
29 | # CONFIG_PPC_82xx is not set | ||
30 | # CONFIG_PPC_83xx is not set | ||
31 | # CONFIG_PPC_85xx is not set | ||
32 | # CONFIG_40x is not set | ||
33 | # CONFIG_44x is not set | ||
34 | # CONFIG_8xx is not set | ||
35 | # CONFIG_E200 is not set | ||
36 | CONFIG_6xx=y | ||
37 | CONFIG_PPC_FPU=y | ||
38 | # CONFIG_ALTIVEC is not set | ||
39 | CONFIG_PPC_STD_MMU=y | ||
40 | CONFIG_PPC_STD_MMU_32=y | ||
41 | # CONFIG_SMP is not set | ||
42 | |||
43 | # | ||
44 | # Code maturity level options | ||
45 | # | ||
46 | CONFIG_EXPERIMENTAL=y | ||
47 | CONFIG_BROKEN_ON_SMP=y | ||
48 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
49 | |||
50 | # | ||
51 | # General setup | ||
52 | # | ||
53 | CONFIG_LOCALVERSION="" | ||
54 | CONFIG_LOCALVERSION_AUTO=y | ||
55 | CONFIG_SWAP=y | ||
56 | CONFIG_SYSVIPC=y | ||
57 | # CONFIG_POSIX_MQUEUE is not set | ||
58 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
59 | CONFIG_SYSCTL=y | ||
60 | # CONFIG_AUDIT is not set | ||
61 | # CONFIG_IKCONFIG is not set | ||
62 | # CONFIG_RELAY is not set | ||
63 | CONFIG_INITRAMFS_SOURCE="" | ||
64 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
65 | CONFIG_EMBEDDED=y | ||
66 | CONFIG_KALLSYMS=y | ||
67 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
68 | CONFIG_HOTPLUG=y | ||
69 | CONFIG_PRINTK=y | ||
70 | CONFIG_BUG=y | ||
71 | CONFIG_ELF_CORE=y | ||
72 | CONFIG_BASE_FULL=y | ||
73 | CONFIG_FUTEX=y | ||
74 | CONFIG_EPOLL=y | ||
75 | CONFIG_SHMEM=y | ||
76 | CONFIG_SLAB=y | ||
77 | # CONFIG_TINY_SHMEM is not set | ||
78 | CONFIG_BASE_SMALL=0 | ||
79 | # CONFIG_SLOB is not set | ||
80 | |||
81 | # | ||
82 | # Loadable module support | ||
83 | # | ||
84 | # CONFIG_MODULES is not set | ||
85 | |||
86 | # | ||
87 | # Block layer | ||
88 | # | ||
89 | CONFIG_LBD=y | ||
90 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
91 | # CONFIG_LSF is not set | ||
92 | |||
93 | # | ||
94 | # IO Schedulers | ||
95 | # | ||
96 | CONFIG_IOSCHED_NOOP=y | ||
97 | CONFIG_IOSCHED_AS=y | ||
98 | CONFIG_IOSCHED_DEADLINE=y | ||
99 | CONFIG_IOSCHED_CFQ=y | ||
100 | CONFIG_DEFAULT_AS=y | ||
101 | # CONFIG_DEFAULT_DEADLINE is not set | ||
102 | # CONFIG_DEFAULT_CFQ is not set | ||
103 | # CONFIG_DEFAULT_NOOP is not set | ||
104 | CONFIG_DEFAULT_IOSCHED="anticipatory" | ||
105 | |||
106 | # | ||
107 | # Platform support | ||
108 | # | ||
109 | # CONFIG_PPC_MULTIPLATFORM is not set | ||
110 | # CONFIG_PPC_ISERIES is not set | ||
111 | CONFIG_EMBEDDED6xx=y | ||
112 | # CONFIG_APUS is not set | ||
113 | CONFIG_MPIC=y | ||
114 | # CONFIG_PPC_RTAS is not set | ||
115 | # CONFIG_MMIO_NVRAM is not set | ||
116 | # CONFIG_PPC_MPC106 is not set | ||
117 | # CONFIG_PPC_970_NAP is not set | ||
118 | # CONFIG_CPU_FREQ is not set | ||
119 | # CONFIG_TAU is not set | ||
120 | # CONFIG_KATANA is not set | ||
121 | # CONFIG_WILLOW is not set | ||
122 | # CONFIG_CPCI690 is not set | ||
123 | # CONFIG_POWERPMC250 is not set | ||
124 | # CONFIG_CHESTNUT is not set | ||
125 | # CONFIG_SPRUCE is not set | ||
126 | # CONFIG_HDPU is not set | ||
127 | # CONFIG_EV64260 is not set | ||
128 | # CONFIG_LOPEC is not set | ||
129 | # CONFIG_MVME5100 is not set | ||
130 | # CONFIG_PPLUS is not set | ||
131 | # CONFIG_PRPMC750 is not set | ||
132 | # CONFIG_PRPMC800 is not set | ||
133 | # CONFIG_SANDPOINT is not set | ||
134 | CONFIG_MPC7448HPC2=y | ||
135 | # CONFIG_RADSTONE_PPC7D is not set | ||
136 | # CONFIG_PAL4 is not set | ||
137 | # CONFIG_GEMINI is not set | ||
138 | # CONFIG_EST8260 is not set | ||
139 | # CONFIG_SBC82xx is not set | ||
140 | # CONFIG_SBS8260 is not set | ||
141 | # CONFIG_RPX8260 is not set | ||
142 | # CONFIG_TQM8260 is not set | ||
143 | # CONFIG_ADS8272 is not set | ||
144 | # CONFIG_PQ2FADS is not set | ||
145 | # CONFIG_LITE5200 is not set | ||
146 | # CONFIG_EV64360 is not set | ||
147 | CONFIG_TSI108_BRIDGE=y | ||
148 | # CONFIG_WANT_EARLY_SERIAL is not set | ||
149 | |||
150 | # | ||
151 | # Kernel options | ||
152 | # | ||
153 | # CONFIG_HIGHMEM is not set | ||
154 | # CONFIG_HZ_100 is not set | ||
155 | CONFIG_HZ_250=y | ||
156 | # CONFIG_HZ_1000 is not set | ||
157 | CONFIG_HZ=250 | ||
158 | CONFIG_PREEMPT_NONE=y | ||
159 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
160 | # CONFIG_PREEMPT is not set | ||
161 | CONFIG_BINFMT_ELF=y | ||
162 | CONFIG_BINFMT_MISC=y | ||
163 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
164 | CONFIG_SELECT_MEMORY_MODEL=y | ||
165 | CONFIG_FLATMEM_MANUAL=y | ||
166 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
167 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
168 | CONFIG_FLATMEM=y | ||
169 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
170 | # CONFIG_SPARSEMEM_STATIC is not set | ||
171 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
172 | CONFIG_PROC_DEVICETREE=y | ||
173 | # CONFIG_CMDLINE_BOOL is not set | ||
174 | # CONFIG_PM is not set | ||
175 | # CONFIG_SOFTWARE_SUSPEND is not set | ||
176 | # CONFIG_SECCOMP is not set | ||
177 | CONFIG_ISA_DMA_API=y | ||
178 | |||
179 | # | ||
180 | # Bus options | ||
181 | # | ||
182 | CONFIG_GENERIC_ISA_DMA=y | ||
183 | # CONFIG_PPC_I8259 is not set | ||
184 | # CONFIG_PPC_INDIRECT_PCI is not set | ||
185 | CONFIG_PCI=y | ||
186 | CONFIG_PCI_DOMAINS=y | ||
187 | |||
188 | # | ||
189 | # PCCARD (PCMCIA/CardBus) support | ||
190 | # | ||
191 | # CONFIG_PCCARD is not set | ||
192 | |||
193 | # | ||
194 | # PCI Hotplug Support | ||
195 | # | ||
196 | # CONFIG_HOTPLUG_PCI is not set | ||
197 | |||
198 | # | ||
199 | # Advanced setup | ||
200 | # | ||
201 | # CONFIG_ADVANCED_OPTIONS is not set | ||
202 | |||
203 | # | ||
204 | # Default settings for advanced configuration options are used | ||
205 | # | ||
206 | CONFIG_HIGHMEM_START=0xfe000000 | ||
207 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
208 | CONFIG_KERNEL_START=0xc0000000 | ||
209 | CONFIG_TASK_SIZE=0x80000000 | ||
210 | CONFIG_BOOT_LOAD=0x00800000 | ||
211 | |||
212 | # | ||
213 | # Networking | ||
214 | # | ||
215 | CONFIG_NET=y | ||
216 | |||
217 | # | ||
218 | # Networking options | ||
219 | # | ||
220 | # CONFIG_NETDEBUG is not set | ||
221 | CONFIG_PACKET=y | ||
222 | # CONFIG_PACKET_MMAP is not set | ||
223 | CONFIG_UNIX=y | ||
224 | # CONFIG_NET_KEY is not set | ||
225 | CONFIG_INET=y | ||
226 | CONFIG_IP_MULTICAST=y | ||
227 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
228 | CONFIG_IP_FIB_HASH=y | ||
229 | CONFIG_IP_PNP=y | ||
230 | CONFIG_IP_PNP_DHCP=y | ||
231 | CONFIG_IP_PNP_BOOTP=y | ||
232 | # CONFIG_IP_PNP_RARP is not set | ||
233 | # CONFIG_NET_IPIP is not set | ||
234 | # CONFIG_NET_IPGRE is not set | ||
235 | # CONFIG_IP_MROUTE is not set | ||
236 | # CONFIG_ARPD is not set | ||
237 | CONFIG_SYN_COOKIES=y | ||
238 | # CONFIG_INET_AH is not set | ||
239 | # CONFIG_INET_ESP is not set | ||
240 | # CONFIG_INET_IPCOMP is not set | ||
241 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
242 | # CONFIG_INET_TUNNEL is not set | ||
243 | CONFIG_INET_DIAG=y | ||
244 | CONFIG_INET_TCP_DIAG=y | ||
245 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
246 | CONFIG_TCP_CONG_BIC=y | ||
247 | # CONFIG_IPV6 is not set | ||
248 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
249 | # CONFIG_INET6_TUNNEL is not set | ||
250 | # CONFIG_NETFILTER is not set | ||
251 | |||
252 | # | ||
253 | # DCCP Configuration (EXPERIMENTAL) | ||
254 | # | ||
255 | # CONFIG_IP_DCCP is not set | ||
256 | |||
257 | # | ||
258 | # SCTP Configuration (EXPERIMENTAL) | ||
259 | # | ||
260 | # CONFIG_IP_SCTP is not set | ||
261 | |||
262 | # | ||
263 | # TIPC Configuration (EXPERIMENTAL) | ||
264 | # | ||
265 | # CONFIG_TIPC is not set | ||
266 | # CONFIG_ATM is not set | ||
267 | # CONFIG_BRIDGE is not set | ||
268 | # CONFIG_VLAN_8021Q is not set | ||
269 | # CONFIG_DECNET is not set | ||
270 | # CONFIG_LLC2 is not set | ||
271 | # CONFIG_IPX is not set | ||
272 | # CONFIG_ATALK is not set | ||
273 | # CONFIG_X25 is not set | ||
274 | # CONFIG_LAPB is not set | ||
275 | # CONFIG_NET_DIVERT is not set | ||
276 | # CONFIG_ECONET is not set | ||
277 | # CONFIG_WAN_ROUTER is not set | ||
278 | |||
279 | # | ||
280 | # QoS and/or fair queueing | ||
281 | # | ||
282 | # CONFIG_NET_SCHED is not set | ||
283 | |||
284 | # | ||
285 | # Network testing | ||
286 | # | ||
287 | # CONFIG_NET_PKTGEN is not set | ||
288 | # CONFIG_HAMRADIO is not set | ||
289 | # CONFIG_IRDA is not set | ||
290 | # CONFIG_BT is not set | ||
291 | # CONFIG_IEEE80211 is not set | ||
292 | |||
293 | # | ||
294 | # Device Drivers | ||
295 | # | ||
296 | |||
297 | # | ||
298 | # Generic Driver Options | ||
299 | # | ||
300 | CONFIG_STANDALONE=y | ||
301 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
302 | # CONFIG_FW_LOADER is not set | ||
303 | |||
304 | # | ||
305 | # Connector - unified userspace <-> kernelspace linker | ||
306 | # | ||
307 | # CONFIG_CONNECTOR is not set | ||
308 | |||
309 | # | ||
310 | # Memory Technology Devices (MTD) | ||
311 | # | ||
312 | # CONFIG_MTD is not set | ||
313 | |||
314 | # | ||
315 | # Parallel port support | ||
316 | # | ||
317 | # CONFIG_PARPORT is not set | ||
318 | |||
319 | # | ||
320 | # Plug and Play support | ||
321 | # | ||
322 | |||
323 | # | ||
324 | # Block devices | ||
325 | # | ||
326 | # CONFIG_BLK_DEV_FD is not set | ||
327 | # CONFIG_BLK_CPQ_DA is not set | ||
328 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
329 | # CONFIG_BLK_DEV_DAC960 is not set | ||
330 | # CONFIG_BLK_DEV_UMEM is not set | ||
331 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
332 | CONFIG_BLK_DEV_LOOP=y | ||
333 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
334 | # CONFIG_BLK_DEV_NBD is not set | ||
335 | # CONFIG_BLK_DEV_SX8 is not set | ||
336 | CONFIG_BLK_DEV_RAM=y | ||
337 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
338 | CONFIG_BLK_DEV_RAM_SIZE=131072 | ||
339 | CONFIG_BLK_DEV_INITRD=y | ||
340 | # CONFIG_CDROM_PKTCDVD is not set | ||
341 | # CONFIG_ATA_OVER_ETH is not set | ||
342 | |||
343 | # | ||
344 | # ATA/ATAPI/MFM/RLL support | ||
345 | # | ||
346 | # CONFIG_IDE is not set | ||
347 | |||
348 | # | ||
349 | # SCSI device support | ||
350 | # | ||
351 | # CONFIG_RAID_ATTRS is not set | ||
352 | CONFIG_SCSI=y | ||
353 | CONFIG_SCSI_PROC_FS=y | ||
354 | |||
355 | # | ||
356 | # SCSI support type (disk, tape, CD-ROM) | ||
357 | # | ||
358 | CONFIG_BLK_DEV_SD=y | ||
359 | # CONFIG_CHR_DEV_ST is not set | ||
360 | # CONFIG_CHR_DEV_OSST is not set | ||
361 | # CONFIG_BLK_DEV_SR is not set | ||
362 | # CONFIG_CHR_DEV_SG is not set | ||
363 | # CONFIG_CHR_DEV_SCH is not set | ||
364 | |||
365 | # | ||
366 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
367 | # | ||
368 | # CONFIG_SCSI_MULTI_LUN is not set | ||
369 | # CONFIG_SCSI_CONSTANTS is not set | ||
370 | # CONFIG_SCSI_LOGGING is not set | ||
371 | |||
372 | # | ||
373 | # SCSI Transport Attributes | ||
374 | # | ||
375 | # CONFIG_SCSI_SPI_ATTRS is not set | ||
376 | # CONFIG_SCSI_FC_ATTRS is not set | ||
377 | # CONFIG_SCSI_ISCSI_ATTRS is not set | ||
378 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
379 | |||
380 | # | ||
381 | # SCSI low-level drivers | ||
382 | # | ||
383 | # CONFIG_ISCSI_TCP is not set | ||
384 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
385 | # CONFIG_SCSI_3W_9XXX is not set | ||
386 | # CONFIG_SCSI_ACARD is not set | ||
387 | # CONFIG_SCSI_AACRAID is not set | ||
388 | # CONFIG_SCSI_AIC7XXX is not set | ||
389 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
390 | # CONFIG_SCSI_AIC79XX is not set | ||
391 | # CONFIG_SCSI_DPT_I2O is not set | ||
392 | # CONFIG_MEGARAID_NEWGEN is not set | ||
393 | # CONFIG_MEGARAID_LEGACY is not set | ||
394 | # CONFIG_MEGARAID_SAS is not set | ||
395 | CONFIG_SCSI_SATA=y | ||
396 | # CONFIG_SCSI_SATA_AHCI is not set | ||
397 | # CONFIG_SCSI_SATA_SVW is not set | ||
398 | # CONFIG_SCSI_ATA_PIIX is not set | ||
399 | CONFIG_SCSI_SATA_MV=y | ||
400 | # CONFIG_SCSI_SATA_NV is not set | ||
401 | # CONFIG_SCSI_PDC_ADMA is not set | ||
402 | # CONFIG_SCSI_SATA_QSTOR is not set | ||
403 | # CONFIG_SCSI_SATA_PROMISE is not set | ||
404 | # CONFIG_SCSI_SATA_SX4 is not set | ||
405 | # CONFIG_SCSI_SATA_SIL is not set | ||
406 | # CONFIG_SCSI_SATA_SIL24 is not set | ||
407 | # CONFIG_SCSI_SATA_SIS is not set | ||
408 | # CONFIG_SCSI_SATA_ULI is not set | ||
409 | # CONFIG_SCSI_SATA_VIA is not set | ||
410 | # CONFIG_SCSI_SATA_VITESSE is not set | ||
411 | # CONFIG_SCSI_BUSLOGIC is not set | ||
412 | # CONFIG_SCSI_DMX3191D is not set | ||
413 | # CONFIG_SCSI_EATA is not set | ||
414 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
415 | # CONFIG_SCSI_GDTH is not set | ||
416 | # CONFIG_SCSI_IPS is not set | ||
417 | # CONFIG_SCSI_INITIO is not set | ||
418 | # CONFIG_SCSI_INIA100 is not set | ||
419 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
420 | # CONFIG_SCSI_IPR is not set | ||
421 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
422 | # CONFIG_SCSI_QLA_FC is not set | ||
423 | # CONFIG_SCSI_LPFC is not set | ||
424 | # CONFIG_SCSI_DC395x is not set | ||
425 | # CONFIG_SCSI_DC390T is not set | ||
426 | # CONFIG_SCSI_NSP32 is not set | ||
427 | # CONFIG_SCSI_DEBUG is not set | ||
428 | |||
429 | # | ||
430 | # Multi-device support (RAID and LVM) | ||
431 | # | ||
432 | # CONFIG_MD is not set | ||
433 | |||
434 | # | ||
435 | # Fusion MPT device support | ||
436 | # | ||
437 | # CONFIG_FUSION is not set | ||
438 | # CONFIG_FUSION_SPI is not set | ||
439 | # CONFIG_FUSION_FC is not set | ||
440 | # CONFIG_FUSION_SAS is not set | ||
441 | |||
442 | # | ||
443 | # IEEE 1394 (FireWire) support | ||
444 | # | ||
445 | # CONFIG_IEEE1394 is not set | ||
446 | |||
447 | # | ||
448 | # I2O device support | ||
449 | # | ||
450 | # CONFIG_I2O is not set | ||
451 | |||
452 | # | ||
453 | # Macintosh device drivers | ||
454 | # | ||
455 | # CONFIG_WINDFARM is not set | ||
456 | |||
457 | # | ||
458 | # Network device support | ||
459 | # | ||
460 | CONFIG_NETDEVICES=y | ||
461 | # CONFIG_DUMMY is not set | ||
462 | # CONFIG_BONDING is not set | ||
463 | # CONFIG_EQUALIZER is not set | ||
464 | # CONFIG_TUN is not set | ||
465 | |||
466 | # | ||
467 | # ARCnet devices | ||
468 | # | ||
469 | # CONFIG_ARCNET is not set | ||
470 | |||
471 | # | ||
472 | # PHY device support | ||
473 | # | ||
474 | CONFIG_PHYLIB=y | ||
475 | |||
476 | # | ||
477 | # MII PHY device drivers | ||
478 | # | ||
479 | # CONFIG_MARVELL_PHY is not set | ||
480 | # CONFIG_DAVICOM_PHY is not set | ||
481 | # CONFIG_QSEMI_PHY is not set | ||
482 | # CONFIG_LXT_PHY is not set | ||
483 | # CONFIG_CICADA_PHY is not set | ||
484 | |||
485 | # | ||
486 | # Ethernet (10 or 100Mbit) | ||
487 | # | ||
488 | CONFIG_NET_ETHERNET=y | ||
489 | CONFIG_MII=y | ||
490 | # CONFIG_HAPPYMEAL is not set | ||
491 | # CONFIG_SUNGEM is not set | ||
492 | # CONFIG_CASSINI is not set | ||
493 | # CONFIG_NET_VENDOR_3COM is not set | ||
494 | |||
495 | # | ||
496 | # Tulip family network device support | ||
497 | # | ||
498 | # CONFIG_NET_TULIP is not set | ||
499 | # CONFIG_HP100 is not set | ||
500 | CONFIG_NET_PCI=y | ||
501 | # CONFIG_PCNET32 is not set | ||
502 | # CONFIG_AMD8111_ETH is not set | ||
503 | # CONFIG_ADAPTEC_STARFIRE is not set | ||
504 | # CONFIG_B44 is not set | ||
505 | # CONFIG_FORCEDETH is not set | ||
506 | # CONFIG_DGRS is not set | ||
507 | # CONFIG_EEPRO100 is not set | ||
508 | CONFIG_E100=y | ||
509 | # CONFIG_FEALNX is not set | ||
510 | # CONFIG_NATSEMI is not set | ||
511 | # CONFIG_NE2K_PCI is not set | ||
512 | # CONFIG_8139CP is not set | ||
513 | CONFIG_8139TOO=y | ||
514 | # CONFIG_8139TOO_PIO is not set | ||
515 | # CONFIG_8139TOO_TUNE_TWISTER is not set | ||
516 | # CONFIG_8139TOO_8129 is not set | ||
517 | # CONFIG_8139_OLD_RX_RESET is not set | ||
518 | # CONFIG_SIS900 is not set | ||
519 | # CONFIG_EPIC100 is not set | ||
520 | # CONFIG_SUNDANCE is not set | ||
521 | # CONFIG_TLAN is not set | ||
522 | # CONFIG_VIA_RHINE is not set | ||
523 | |||
524 | # | ||
525 | # Ethernet (1000 Mbit) | ||
526 | # | ||
527 | # CONFIG_ACENIC is not set | ||
528 | # CONFIG_DL2K is not set | ||
529 | # CONFIG_E1000 is not set | ||
530 | # CONFIG_NS83820 is not set | ||
531 | # CONFIG_HAMACHI is not set | ||
532 | # CONFIG_YELLOWFIN is not set | ||
533 | # CONFIG_R8169 is not set | ||
534 | # CONFIG_SIS190 is not set | ||
535 | # CONFIG_SKGE is not set | ||
536 | # CONFIG_SKY2 is not set | ||
537 | # CONFIG_SK98LIN is not set | ||
538 | # CONFIG_VIA_VELOCITY is not set | ||
539 | # CONFIG_TIGON3 is not set | ||
540 | # CONFIG_BNX2 is not set | ||
541 | CONFIG_TSI108_ETH=y | ||
542 | |||
543 | # | ||
544 | # Ethernet (10000 Mbit) | ||
545 | # | ||
546 | # CONFIG_CHELSIO_T1 is not set | ||
547 | # CONFIG_IXGB is not set | ||
548 | # CONFIG_S2IO is not set | ||
549 | |||
550 | # | ||
551 | # Token Ring devices | ||
552 | # | ||
553 | # CONFIG_TR is not set | ||
554 | |||
555 | # | ||
556 | # Wireless LAN (non-hamradio) | ||
557 | # | ||
558 | # CONFIG_NET_RADIO is not set | ||
559 | |||
560 | # | ||
561 | # Wan interfaces | ||
562 | # | ||
563 | # CONFIG_WAN is not set | ||
564 | # CONFIG_FDDI is not set | ||
565 | # CONFIG_HIPPI is not set | ||
566 | # CONFIG_PPP is not set | ||
567 | # CONFIG_SLIP is not set | ||
568 | # CONFIG_NET_FC is not set | ||
569 | # CONFIG_SHAPER is not set | ||
570 | # CONFIG_NETCONSOLE is not set | ||
571 | # CONFIG_NETPOLL is not set | ||
572 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
573 | |||
574 | # | ||
575 | # ISDN subsystem | ||
576 | # | ||
577 | # CONFIG_ISDN is not set | ||
578 | |||
579 | # | ||
580 | # Telephony Support | ||
581 | # | ||
582 | # CONFIG_PHONE is not set | ||
583 | |||
584 | # | ||
585 | # Input device support | ||
586 | # | ||
587 | CONFIG_INPUT=y | ||
588 | |||
589 | # | ||
590 | # Userland interfaces | ||
591 | # | ||
592 | # CONFIG_INPUT_MOUSEDEV is not set | ||
593 | # CONFIG_INPUT_JOYDEV is not set | ||
594 | # CONFIG_INPUT_TSDEV is not set | ||
595 | # CONFIG_INPUT_EVDEV is not set | ||
596 | # CONFIG_INPUT_EVBUG is not set | ||
597 | |||
598 | # | ||
599 | # Input Device Drivers | ||
600 | # | ||
601 | # CONFIG_INPUT_KEYBOARD is not set | ||
602 | # CONFIG_INPUT_MOUSE is not set | ||
603 | # CONFIG_INPUT_JOYSTICK is not set | ||
604 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
605 | # CONFIG_INPUT_MISC is not set | ||
606 | |||
607 | # | ||
608 | # Hardware I/O ports | ||
609 | # | ||
610 | # CONFIG_SERIO is not set | ||
611 | # CONFIG_GAMEPORT is not set | ||
612 | |||
613 | # | ||
614 | # Character devices | ||
615 | # | ||
616 | # CONFIG_VT is not set | ||
617 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
618 | |||
619 | # | ||
620 | # Serial drivers | ||
621 | # | ||
622 | CONFIG_SERIAL_8250=y | ||
623 | CONFIG_SERIAL_8250_CONSOLE=y | ||
624 | CONFIG_SERIAL_8250_PCI=y | ||
625 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
626 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
627 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
628 | |||
629 | # | ||
630 | # Non-8250 serial port support | ||
631 | # | ||
632 | CONFIG_SERIAL_CORE=y | ||
633 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
634 | # CONFIG_SERIAL_JSM is not set | ||
635 | CONFIG_UNIX98_PTYS=y | ||
636 | CONFIG_LEGACY_PTYS=y | ||
637 | CONFIG_LEGACY_PTY_COUNT=256 | ||
638 | |||
639 | # | ||
640 | # IPMI | ||
641 | # | ||
642 | # CONFIG_IPMI_HANDLER is not set | ||
643 | |||
644 | # | ||
645 | # Watchdog Cards | ||
646 | # | ||
647 | # CONFIG_WATCHDOG is not set | ||
648 | # CONFIG_NVRAM is not set | ||
649 | CONFIG_GEN_RTC=y | ||
650 | # CONFIG_GEN_RTC_X is not set | ||
651 | # CONFIG_DTLK is not set | ||
652 | # CONFIG_R3964 is not set | ||
653 | # CONFIG_APPLICOM is not set | ||
654 | |||
655 | # | ||
656 | # Ftape, the floppy tape device driver | ||
657 | # | ||
658 | # CONFIG_AGP is not set | ||
659 | # CONFIG_DRM is not set | ||
660 | # CONFIG_RAW_DRIVER is not set | ||
661 | |||
662 | # | ||
663 | # TPM devices | ||
664 | # | ||
665 | # CONFIG_TCG_TPM is not set | ||
666 | # CONFIG_TELCLOCK is not set | ||
667 | |||
668 | # | ||
669 | # I2C support | ||
670 | # | ||
671 | # CONFIG_I2C is not set | ||
672 | |||
673 | # | ||
674 | # SPI support | ||
675 | # | ||
676 | # CONFIG_SPI is not set | ||
677 | # CONFIG_SPI_MASTER is not set | ||
678 | |||
679 | # | ||
680 | # Dallas's 1-wire bus | ||
681 | # | ||
682 | # CONFIG_W1 is not set | ||
683 | |||
684 | # | ||
685 | # Hardware Monitoring support | ||
686 | # | ||
687 | CONFIG_HWMON=y | ||
688 | # CONFIG_HWMON_VID is not set | ||
689 | # CONFIG_SENSORS_F71805F is not set | ||
690 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
691 | |||
692 | # | ||
693 | # Misc devices | ||
694 | # | ||
695 | |||
696 | # | ||
697 | # Multimedia devices | ||
698 | # | ||
699 | # CONFIG_VIDEO_DEV is not set | ||
700 | |||
701 | # | ||
702 | # Digital Video Broadcasting Devices | ||
703 | # | ||
704 | # CONFIG_DVB is not set | ||
705 | |||
706 | # | ||
707 | # Graphics support | ||
708 | # | ||
709 | # CONFIG_FB is not set | ||
710 | |||
711 | # | ||
712 | # Sound | ||
713 | # | ||
714 | # CONFIG_SOUND is not set | ||
715 | |||
716 | # | ||
717 | # USB support | ||
718 | # | ||
719 | CONFIG_USB_ARCH_HAS_HCD=y | ||
720 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
721 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
722 | # CONFIG_USB is not set | ||
723 | |||
724 | # | ||
725 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
726 | # | ||
727 | |||
728 | # | ||
729 | # USB Gadget Support | ||
730 | # | ||
731 | # CONFIG_USB_GADGET is not set | ||
732 | |||
733 | # | ||
734 | # MMC/SD Card support | ||
735 | # | ||
736 | # CONFIG_MMC is not set | ||
737 | |||
738 | # | ||
739 | # LED devices | ||
740 | # | ||
741 | # CONFIG_NEW_LEDS is not set | ||
742 | |||
743 | # | ||
744 | # LED drivers | ||
745 | # | ||
746 | |||
747 | # | ||
748 | # LED Triggers | ||
749 | # | ||
750 | |||
751 | # | ||
752 | # InfiniBand support | ||
753 | # | ||
754 | # CONFIG_INFINIBAND is not set | ||
755 | |||
756 | # | ||
757 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
758 | # | ||
759 | |||
760 | # | ||
761 | # Real Time Clock | ||
762 | # | ||
763 | # CONFIG_RTC_CLASS is not set | ||
764 | |||
765 | # | ||
766 | # File systems | ||
767 | # | ||
768 | CONFIG_EXT2_FS=y | ||
769 | # CONFIG_EXT2_FS_XATTR is not set | ||
770 | # CONFIG_EXT2_FS_XIP is not set | ||
771 | CONFIG_EXT3_FS=y | ||
772 | CONFIG_EXT3_FS_XATTR=y | ||
773 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
774 | # CONFIG_EXT3_FS_SECURITY is not set | ||
775 | CONFIG_JBD=y | ||
776 | # CONFIG_JBD_DEBUG is not set | ||
777 | CONFIG_FS_MBCACHE=y | ||
778 | # CONFIG_REISERFS_FS is not set | ||
779 | # CONFIG_JFS_FS is not set | ||
780 | # CONFIG_FS_POSIX_ACL is not set | ||
781 | # CONFIG_XFS_FS is not set | ||
782 | # CONFIG_OCFS2_FS is not set | ||
783 | # CONFIG_MINIX_FS is not set | ||
784 | # CONFIG_ROMFS_FS is not set | ||
785 | CONFIG_INOTIFY=y | ||
786 | # CONFIG_QUOTA is not set | ||
787 | CONFIG_DNOTIFY=y | ||
788 | # CONFIG_AUTOFS_FS is not set | ||
789 | # CONFIG_AUTOFS4_FS is not set | ||
790 | # CONFIG_FUSE_FS is not set | ||
791 | |||
792 | # | ||
793 | # CD-ROM/DVD Filesystems | ||
794 | # | ||
795 | # CONFIG_ISO9660_FS is not set | ||
796 | # CONFIG_UDF_FS is not set | ||
797 | |||
798 | # | ||
799 | # DOS/FAT/NT Filesystems | ||
800 | # | ||
801 | # CONFIG_MSDOS_FS is not set | ||
802 | # CONFIG_VFAT_FS is not set | ||
803 | # CONFIG_NTFS_FS is not set | ||
804 | |||
805 | # | ||
806 | # Pseudo filesystems | ||
807 | # | ||
808 | CONFIG_PROC_FS=y | ||
809 | CONFIG_PROC_KCORE=y | ||
810 | CONFIG_SYSFS=y | ||
811 | CONFIG_TMPFS=y | ||
812 | # CONFIG_HUGETLB_PAGE is not set | ||
813 | CONFIG_RAMFS=y | ||
814 | # CONFIG_CONFIGFS_FS is not set | ||
815 | |||
816 | # | ||
817 | # Miscellaneous filesystems | ||
818 | # | ||
819 | # CONFIG_ADFS_FS is not set | ||
820 | # CONFIG_AFFS_FS is not set | ||
821 | # CONFIG_HFS_FS is not set | ||
822 | # CONFIG_HFSPLUS_FS is not set | ||
823 | # CONFIG_BEFS_FS is not set | ||
824 | # CONFIG_BFS_FS is not set | ||
825 | # CONFIG_EFS_FS is not set | ||
826 | # CONFIG_CRAMFS is not set | ||
827 | # CONFIG_VXFS_FS is not set | ||
828 | # CONFIG_HPFS_FS is not set | ||
829 | # CONFIG_QNX4FS_FS is not set | ||
830 | # CONFIG_SYSV_FS is not set | ||
831 | # CONFIG_UFS_FS is not set | ||
832 | |||
833 | # | ||
834 | # Network File Systems | ||
835 | # | ||
836 | CONFIG_NFS_FS=y | ||
837 | # CONFIG_NFS_V3 is not set | ||
838 | # CONFIG_NFS_V4 is not set | ||
839 | # CONFIG_NFS_DIRECTIO is not set | ||
840 | # CONFIG_NFSD is not set | ||
841 | CONFIG_ROOT_NFS=y | ||
842 | CONFIG_LOCKD=y | ||
843 | CONFIG_NFS_COMMON=y | ||
844 | CONFIG_SUNRPC=y | ||
845 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
846 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
847 | # CONFIG_SMB_FS is not set | ||
848 | # CONFIG_CIFS is not set | ||
849 | # CONFIG_NCP_FS is not set | ||
850 | # CONFIG_CODA_FS is not set | ||
851 | # CONFIG_AFS_FS is not set | ||
852 | # CONFIG_9P_FS is not set | ||
853 | |||
854 | # | ||
855 | # Partition Types | ||
856 | # | ||
857 | CONFIG_PARTITION_ADVANCED=y | ||
858 | # CONFIG_ACORN_PARTITION is not set | ||
859 | # CONFIG_OSF_PARTITION is not set | ||
860 | # CONFIG_AMIGA_PARTITION is not set | ||
861 | # CONFIG_ATARI_PARTITION is not set | ||
862 | # CONFIG_MAC_PARTITION is not set | ||
863 | CONFIG_MSDOS_PARTITION=y | ||
864 | # CONFIG_BSD_DISKLABEL is not set | ||
865 | # CONFIG_MINIX_SUBPARTITION is not set | ||
866 | # CONFIG_SOLARIS_X86_PARTITION is not set | ||
867 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
868 | # CONFIG_LDM_PARTITION is not set | ||
869 | # CONFIG_SGI_PARTITION is not set | ||
870 | # CONFIG_ULTRIX_PARTITION is not set | ||
871 | # CONFIG_SUN_PARTITION is not set | ||
872 | # CONFIG_KARMA_PARTITION is not set | ||
873 | # CONFIG_EFI_PARTITION is not set | ||
874 | |||
875 | # | ||
876 | # Native Language Support | ||
877 | # | ||
878 | # CONFIG_NLS is not set | ||
879 | |||
880 | # | ||
881 | # Library routines | ||
882 | # | ||
883 | # CONFIG_CRC_CCITT is not set | ||
884 | # CONFIG_CRC16 is not set | ||
885 | CONFIG_CRC32=y | ||
886 | # CONFIG_LIBCRC32C is not set | ||
887 | |||
888 | # | ||
889 | # Instrumentation Support | ||
890 | # | ||
891 | # CONFIG_PROFILING is not set | ||
892 | |||
893 | # | ||
894 | # Kernel hacking | ||
895 | # | ||
896 | # CONFIG_PRINTK_TIME is not set | ||
897 | # CONFIG_MAGIC_SYSRQ is not set | ||
898 | # CONFIG_DEBUG_KERNEL is not set | ||
899 | CONFIG_LOG_BUF_SHIFT=14 | ||
900 | # CONFIG_DEBUG_FS is not set | ||
901 | # CONFIG_UNWIND_INFO is not set | ||
902 | # CONFIG_BOOTX_TEXT is not set | ||
903 | # CONFIG_SERIAL_TEXT_DEBUG is not set | ||
904 | # CONFIG_PPC_EARLY_DEBUG_LPAR is not set | ||
905 | # CONFIG_PPC_EARLY_DEBUG_G5 is not set | ||
906 | # CONFIG_PPC_EARLY_DEBUG_RTAS is not set | ||
907 | # CONFIG_PPC_EARLY_DEBUG_MAPLE is not set | ||
908 | # CONFIG_PPC_EARLY_DEBUG_ISERIES is not set | ||
909 | |||
910 | # | ||
911 | # Security options | ||
912 | # | ||
913 | # CONFIG_KEYS is not set | ||
914 | # CONFIG_SECURITY is not set | ||
915 | |||
916 | # | ||
917 | # Cryptographic options | ||
918 | # | ||
919 | # CONFIG_CRYPTO is not set | ||
920 | |||
921 | # | ||
922 | # Hardware crypto devices | ||
923 | # | ||
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index 803858e86160..814f242aeb8c 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile | |||
@@ -50,7 +50,8 @@ extra-$(CONFIG_FSL_BOOKE) := head_fsl_booke.o | |||
50 | extra-$(CONFIG_8xx) := head_8xx.o | 50 | extra-$(CONFIG_8xx) := head_8xx.o |
51 | extra-y += vmlinux.lds | 51 | extra-y += vmlinux.lds |
52 | 52 | ||
53 | obj-y += time.o prom.o traps.o setup-common.o udbg.o | 53 | obj-y += time.o prom.o traps.o setup-common.o \ |
54 | udbg.o misc.o | ||
54 | obj-$(CONFIG_PPC32) += entry_32.o setup_32.o misc_32.o | 55 | obj-$(CONFIG_PPC32) += entry_32.o setup_32.o misc_32.o |
55 | obj-$(CONFIG_PPC64) += misc_64.o dma_64.o iommu.o | 56 | obj-$(CONFIG_PPC64) += misc_64.o dma_64.o iommu.o |
56 | obj-$(CONFIG_PPC_MULTIPLATFORM) += prom_init.o | 57 | obj-$(CONFIG_PPC_MULTIPLATFORM) += prom_init.o |
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c index ff2940548929..7ee84968087b 100644 --- a/arch/powerpc/kernel/asm-offsets.c +++ b/arch/powerpc/kernel/asm-offsets.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * 2 of the License, or (at your option) any later version. | 13 | * 2 of the License, or (at your option) any later version. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/signal.h> | 16 | #include <linux/signal.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/kernel/binfmt_elf32.c b/arch/powerpc/kernel/binfmt_elf32.c index 8ad6b0f33651..5cb58757e1b1 100644 --- a/arch/powerpc/kernel/binfmt_elf32.c +++ b/arch/powerpc/kernel/binfmt_elf32.c | |||
@@ -19,7 +19,6 @@ | |||
19 | 19 | ||
20 | #include <asm/processor.h> | 20 | #include <asm/processor.h> |
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | #include <linux/config.h> | ||
23 | #include <linux/elfcore.h> | 22 | #include <linux/elfcore.h> |
24 | #include <linux/compat.h> | 23 | #include <linux/compat.h> |
25 | 24 | ||
diff --git a/arch/powerpc/kernel/btext.c b/arch/powerpc/kernel/btext.c index 6223d39177cb..a6920919d68e 100644 --- a/arch/powerpc/kernel/btext.c +++ b/arch/powerpc/kernel/btext.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Benjamin Herrenschmidt <benh@kernel.crashing.org> | 4 | * Benjamin Herrenschmidt <benh@kernel.crashing.org> |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
8 | #include <linux/string.h> | 7 | #include <linux/string.h> |
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
diff --git a/arch/powerpc/kernel/cpu_setup_6xx.S b/arch/powerpc/kernel/cpu_setup_6xx.S index 365381fcb27c..8b4a4ee85eca 100644 --- a/arch/powerpc/kernel/cpu_setup_6xx.S +++ b/arch/powerpc/kernel/cpu_setup_6xx.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/processor.h> | 12 | #include <asm/processor.h> |
14 | #include <asm/page.h> | 13 | #include <asm/page.h> |
15 | #include <asm/cputable.h> | 14 | #include <asm/cputable.h> |
diff --git a/arch/powerpc/kernel/cpu_setup_power4.S b/arch/powerpc/kernel/cpu_setup_power4.S index 271418308d53..f69af2c5d7b3 100644 --- a/arch/powerpc/kernel/cpu_setup_power4.S +++ b/arch/powerpc/kernel/cpu_setup_power4.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/processor.h> | 12 | #include <asm/processor.h> |
14 | #include <asm/page.h> | 13 | #include <asm/page.h> |
15 | #include <asm/cputable.h> | 14 | #include <asm/cputable.h> |
@@ -125,7 +124,12 @@ _GLOBAL(__save_cpu_setup) | |||
125 | cmpwi r0,0x44 | 124 | cmpwi r0,0x44 |
126 | bne 2f | 125 | bne 2f |
127 | 126 | ||
128 | 1: /* Save HID0,1,4 and 5 */ | 127 | 1: /* skip if not running in HV mode */ |
128 | mfmsr r0 | ||
129 | rldicl. r0,r0,4,63 | ||
130 | beq 2f | ||
131 | |||
132 | /* Save HID0,1,4 and 5 */ | ||
129 | mfspr r3,SPRN_HID0 | 133 | mfspr r3,SPRN_HID0 |
130 | std r3,CS_HID0(r5) | 134 | std r3,CS_HID0(r5) |
131 | mfspr r3,SPRN_HID1 | 135 | mfspr r3,SPRN_HID1 |
@@ -159,7 +163,12 @@ _GLOBAL(__restore_cpu_setup) | |||
159 | cmpwi r0,0x44 | 163 | cmpwi r0,0x44 |
160 | bnelr | 164 | bnelr |
161 | 165 | ||
162 | 1: /* Before accessing memory, we make sure rm_ci is clear */ | 166 | 1: /* skip if not running in HV mode */ |
167 | mfmsr r0 | ||
168 | rldicl. r0,r0,4,63 | ||
169 | beqlr | ||
170 | |||
171 | /* Before accessing memory, we make sure rm_ci is clear */ | ||
163 | li r0,0 | 172 | li r0,0 |
164 | mfspr r3,SPRN_HID4 | 173 | mfspr r3,SPRN_HID4 |
165 | rldimi r3,r0,40,23 /* clear bit 23 (rm_ci) */ | 174 | rldimi r3,r0,40,23 /* clear bit 23 (rm_ci) */ |
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index 1c114880dc05..272e43622fd6 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/string.h> | 13 | #include <linux/string.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/threads.h> | 15 | #include <linux/threads.h> |
@@ -722,18 +721,6 @@ struct cpu_spec cpu_specs[] = { | |||
722 | .oprofile_type = PPC_OPROFILE_G4, | 721 | .oprofile_type = PPC_OPROFILE_G4, |
723 | .platform = "ppc7450", | 722 | .platform = "ppc7450", |
724 | }, | 723 | }, |
725 | { /* 8641 */ | ||
726 | .pvr_mask = 0xffffffff, | ||
727 | .pvr_value = 0x80040010, | ||
728 | .cpu_name = "8641", | ||
729 | .cpu_features = CPU_FTRS_7447A, | ||
730 | .cpu_user_features = COMMON_USER | PPC_FEATURE_HAS_ALTIVEC_COMP, | ||
731 | .icache_bsize = 32, | ||
732 | .dcache_bsize = 32, | ||
733 | .num_pmcs = 6, | ||
734 | .cpu_setup = __setup_cpu_745x | ||
735 | }, | ||
736 | |||
737 | { /* 82xx (8240, 8245, 8260 are all 603e cores) */ | 724 | { /* 82xx (8240, 8245, 8260 are all 603e cores) */ |
738 | .pvr_mask = 0x7fff0000, | 725 | .pvr_mask = 0x7fff0000, |
739 | .pvr_value = 0x00810000, | 726 | .pvr_value = 0x00810000, |
diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c index e253a45dcf10..358cecdc6aef 100644 --- a/arch/powerpc/kernel/crash.c +++ b/arch/powerpc/kernel/crash.c | |||
@@ -24,9 +24,11 @@ | |||
24 | #include <linux/init.h> | 24 | #include <linux/init.h> |
25 | #include <linux/irq.h> | 25 | #include <linux/irq.h> |
26 | #include <linux/types.h> | 26 | #include <linux/types.h> |
27 | #include <linux/irq.h> | ||
27 | 28 | ||
28 | #include <asm/processor.h> | 29 | #include <asm/processor.h> |
29 | #include <asm/machdep.h> | 30 | #include <asm/machdep.h> |
31 | #include <asm/kexec.h> | ||
30 | #include <asm/kdump.h> | 32 | #include <asm/kdump.h> |
31 | #include <asm/lmb.h> | 33 | #include <asm/lmb.h> |
32 | #include <asm/firmware.h> | 34 | #include <asm/firmware.h> |
@@ -41,6 +43,7 @@ | |||
41 | 43 | ||
42 | /* This keeps a track of which one is crashing cpu. */ | 44 | /* This keeps a track of which one is crashing cpu. */ |
43 | int crashing_cpu = -1; | 45 | int crashing_cpu = -1; |
46 | static cpumask_t cpus_in_crash = CPU_MASK_NONE; | ||
44 | 47 | ||
45 | static u32 *append_elf_note(u32 *buf, char *name, unsigned type, void *data, | 48 | static u32 *append_elf_note(u32 *buf, char *name, unsigned type, void *data, |
46 | size_t data_len) | 49 | size_t data_len) |
@@ -98,34 +101,66 @@ static void crash_save_this_cpu(struct pt_regs *regs, int cpu) | |||
98 | } | 101 | } |
99 | 102 | ||
100 | #ifdef CONFIG_SMP | 103 | #ifdef CONFIG_SMP |
101 | static atomic_t waiting_for_crash_ipi; | 104 | static atomic_t enter_on_soft_reset = ATOMIC_INIT(0); |
102 | 105 | ||
103 | void crash_ipi_callback(struct pt_regs *regs) | 106 | void crash_ipi_callback(struct pt_regs *regs) |
104 | { | 107 | { |
105 | int cpu = smp_processor_id(); | 108 | int cpu = smp_processor_id(); |
106 | 109 | ||
107 | if (cpu == crashing_cpu) | ||
108 | return; | ||
109 | |||
110 | if (!cpu_online(cpu)) | 110 | if (!cpu_online(cpu)) |
111 | return; | 111 | return; |
112 | 112 | ||
113 | if (ppc_md.kexec_cpu_down) | ||
114 | ppc_md.kexec_cpu_down(1, 1); | ||
115 | |||
116 | local_irq_disable(); | 113 | local_irq_disable(); |
114 | if (!cpu_isset(cpu, cpus_in_crash)) | ||
115 | crash_save_this_cpu(regs, cpu); | ||
116 | cpu_set(cpu, cpus_in_crash); | ||
117 | 117 | ||
118 | crash_save_this_cpu(regs, cpu); | 118 | /* |
119 | atomic_dec(&waiting_for_crash_ipi); | 119 | * Entered via soft-reset - could be the kdump |
120 | * process is invoked using soft-reset or user activated | ||
121 | * it if some CPU did not respond to an IPI. | ||
122 | * For soft-reset, the secondary CPU can enter this func | ||
123 | * twice. 1 - using IPI, and 2. soft-reset. | ||
124 | * Tell the kexec CPU that entered via soft-reset and ready | ||
125 | * to go down. | ||
126 | */ | ||
127 | if (cpu_isset(cpu, cpus_in_sr)) { | ||
128 | cpu_clear(cpu, cpus_in_sr); | ||
129 | atomic_inc(&enter_on_soft_reset); | ||
130 | } | ||
131 | |||
132 | /* | ||
133 | * Starting the kdump boot. | ||
134 | * This barrier is needed to make sure that all CPUs are stopped. | ||
135 | * If not, soft-reset will be invoked to bring other CPUs. | ||
136 | */ | ||
137 | while (!cpu_isset(crashing_cpu, cpus_in_crash)) | ||
138 | cpu_relax(); | ||
139 | |||
140 | if (ppc_md.kexec_cpu_down) | ||
141 | ppc_md.kexec_cpu_down(1, 1); | ||
120 | kexec_smp_wait(); | 142 | kexec_smp_wait(); |
121 | /* NOTREACHED */ | 143 | /* NOTREACHED */ |
122 | } | 144 | } |
123 | 145 | ||
124 | static void crash_kexec_prepare_cpus(void) | 146 | /* |
147 | * Wait until all CPUs are entered via soft-reset. | ||
148 | */ | ||
149 | static void crash_soft_reset_check(int cpu) | ||
150 | { | ||
151 | unsigned int ncpus = num_online_cpus() - 1;/* Excluding the panic cpu */ | ||
152 | |||
153 | cpu_clear(cpu, cpus_in_sr); | ||
154 | while (atomic_read(&enter_on_soft_reset) != ncpus) | ||
155 | cpu_relax(); | ||
156 | } | ||
157 | |||
158 | |||
159 | static void crash_kexec_prepare_cpus(int cpu) | ||
125 | { | 160 | { |
126 | unsigned int msecs; | 161 | unsigned int msecs; |
127 | 162 | ||
128 | atomic_set(&waiting_for_crash_ipi, num_online_cpus() - 1); | 163 | unsigned int ncpus = num_online_cpus() - 1;/* Excluding the panic cpu */ |
129 | 164 | ||
130 | crash_send_ipi(crash_ipi_callback); | 165 | crash_send_ipi(crash_ipi_callback); |
131 | smp_wmb(); | 166 | smp_wmb(); |
@@ -133,14 +168,13 @@ static void crash_kexec_prepare_cpus(void) | |||
133 | /* | 168 | /* |
134 | * FIXME: Until we will have the way to stop other CPUSs reliabally, | 169 | * FIXME: Until we will have the way to stop other CPUSs reliabally, |
135 | * the crash CPU will send an IPI and wait for other CPUs to | 170 | * the crash CPU will send an IPI and wait for other CPUs to |
136 | * respond. If not, proceed the kexec boot even though we failed to | 171 | * respond. |
137 | * capture other CPU states. | ||
138 | * Delay of at least 10 seconds. | 172 | * Delay of at least 10 seconds. |
139 | */ | 173 | */ |
140 | printk(KERN_ALERT "Sending IPI to other cpus...\n"); | 174 | printk(KERN_EMERG "Sending IPI to other cpus...\n"); |
141 | msecs = 10000; | 175 | msecs = 10000; |
142 | while ((atomic_read(&waiting_for_crash_ipi) > 0) && (--msecs > 0)) { | 176 | while ((cpus_weight(cpus_in_crash) < ncpus) && (--msecs > 0)) { |
143 | barrier(); | 177 | cpu_relax(); |
144 | mdelay(1); | 178 | mdelay(1); |
145 | } | 179 | } |
146 | 180 | ||
@@ -149,18 +183,71 @@ static void crash_kexec_prepare_cpus(void) | |||
149 | /* | 183 | /* |
150 | * FIXME: In case if we do not get all CPUs, one possibility: ask the | 184 | * FIXME: In case if we do not get all CPUs, one possibility: ask the |
151 | * user to do soft reset such that we get all. | 185 | * user to do soft reset such that we get all. |
152 | * IPI handler is already set by the panic cpu initially. Therefore, | 186 | * Soft-reset will be used until better mechanism is implemented. |
153 | * all cpus could invoke this handler from die() and the panic CPU | 187 | */ |
154 | * will call machine_kexec() directly from this handler to do | 188 | if (cpus_weight(cpus_in_crash) < ncpus) { |
155 | * kexec boot. | 189 | printk(KERN_EMERG "done waiting: %d cpu(s) not responding\n", |
190 | ncpus - cpus_weight(cpus_in_crash)); | ||
191 | printk(KERN_EMERG "Activate soft-reset to stop other cpu(s)\n"); | ||
192 | cpus_in_sr = CPU_MASK_NONE; | ||
193 | atomic_set(&enter_on_soft_reset, 0); | ||
194 | while (cpus_weight(cpus_in_crash) < ncpus) | ||
195 | cpu_relax(); | ||
196 | } | ||
197 | /* | ||
198 | * Make sure all CPUs are entered via soft-reset if the kdump is | ||
199 | * invoked using soft-reset. | ||
156 | */ | 200 | */ |
157 | if (atomic_read(&waiting_for_crash_ipi)) | 201 | if (cpu_isset(cpu, cpus_in_sr)) |
158 | printk(KERN_ALERT "done waiting: %d cpus not responding\n", | 202 | crash_soft_reset_check(cpu); |
159 | atomic_read(&waiting_for_crash_ipi)); | ||
160 | /* Leave the IPI callback set */ | 203 | /* Leave the IPI callback set */ |
161 | } | 204 | } |
205 | |||
206 | /* | ||
207 | * This function will be called by secondary cpus or by kexec cpu | ||
208 | * if soft-reset is activated to stop some CPUs. | ||
209 | */ | ||
210 | void crash_kexec_secondary(struct pt_regs *regs) | ||
211 | { | ||
212 | int cpu = smp_processor_id(); | ||
213 | unsigned long flags; | ||
214 | int msecs = 5; | ||
215 | |||
216 | local_irq_save(flags); | ||
217 | /* Wait 5ms if the kexec CPU is not entered yet. */ | ||
218 | while (crashing_cpu < 0) { | ||
219 | if (--msecs < 0) { | ||
220 | /* | ||
221 | * Either kdump image is not loaded or | ||
222 | * kdump process is not started - Probably xmon | ||
223 | * exited using 'x'(exit and recover) or | ||
224 | * kexec_should_crash() failed for all running tasks. | ||
225 | */ | ||
226 | cpu_clear(cpu, cpus_in_sr); | ||
227 | local_irq_restore(flags); | ||
228 | return; | ||
229 | } | ||
230 | mdelay(1); | ||
231 | cpu_relax(); | ||
232 | } | ||
233 | if (cpu == crashing_cpu) { | ||
234 | /* | ||
235 | * Panic CPU will enter this func only via soft-reset. | ||
236 | * Wait until all secondary CPUs entered and | ||
237 | * then start kexec boot. | ||
238 | */ | ||
239 | crash_soft_reset_check(cpu); | ||
240 | cpu_set(crashing_cpu, cpus_in_crash); | ||
241 | if (ppc_md.kexec_cpu_down) | ||
242 | ppc_md.kexec_cpu_down(1, 0); | ||
243 | machine_kexec(kexec_crash_image); | ||
244 | /* NOTREACHED */ | ||
245 | } | ||
246 | crash_ipi_callback(regs); | ||
247 | } | ||
248 | |||
162 | #else | 249 | #else |
163 | static void crash_kexec_prepare_cpus(void) | 250 | static void crash_kexec_prepare_cpus(int cpu) |
164 | { | 251 | { |
165 | /* | 252 | /* |
166 | * move the secondarys to us so that we can copy | 253 | * move the secondarys to us so that we can copy |
@@ -171,6 +258,10 @@ static void crash_kexec_prepare_cpus(void) | |||
171 | smp_release_cpus(); | 258 | smp_release_cpus(); |
172 | } | 259 | } |
173 | 260 | ||
261 | void crash_kexec_secondary(struct pt_regs *regs) | ||
262 | { | ||
263 | cpus_in_sr = CPU_MASK_NONE; | ||
264 | } | ||
174 | #endif | 265 | #endif |
175 | 266 | ||
176 | void default_machine_crash_shutdown(struct pt_regs *regs) | 267 | void default_machine_crash_shutdown(struct pt_regs *regs) |
@@ -190,23 +281,23 @@ void default_machine_crash_shutdown(struct pt_regs *regs) | |||
190 | local_irq_disable(); | 281 | local_irq_disable(); |
191 | 282 | ||
192 | for_each_irq(irq) { | 283 | for_each_irq(irq) { |
193 | struct irq_desc *desc = irq_descp(irq); | 284 | struct irq_desc *desc = irq_desc + irq; |
194 | 285 | ||
195 | if (desc->status & IRQ_INPROGRESS) | 286 | if (desc->status & IRQ_INPROGRESS) |
196 | desc->handler->end(irq); | 287 | desc->chip->end(irq); |
197 | 288 | ||
198 | if (!(desc->status & IRQ_DISABLED)) | 289 | if (!(desc->status & IRQ_DISABLED)) |
199 | desc->handler->disable(irq); | 290 | desc->chip->disable(irq); |
200 | } | 291 | } |
201 | 292 | ||
202 | if (ppc_md.kexec_cpu_down) | ||
203 | ppc_md.kexec_cpu_down(1, 0); | ||
204 | |||
205 | /* | 293 | /* |
206 | * Make a note of crashing cpu. Will be used in machine_kexec | 294 | * Make a note of crashing cpu. Will be used in machine_kexec |
207 | * such that another IPI will not be sent. | 295 | * such that another IPI will not be sent. |
208 | */ | 296 | */ |
209 | crashing_cpu = smp_processor_id(); | 297 | crashing_cpu = smp_processor_id(); |
210 | crash_kexec_prepare_cpus(); | ||
211 | crash_save_this_cpu(regs, crashing_cpu); | 298 | crash_save_this_cpu(regs, crashing_cpu); |
299 | crash_kexec_prepare_cpus(crashing_cpu); | ||
300 | cpu_set(crashing_cpu, cpus_in_crash); | ||
301 | if (ppc_md.kexec_cpu_down) | ||
302 | ppc_md.kexec_cpu_down(1, 0); | ||
212 | } | 303 | } |
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index 8866fd26c6b9..c03e829fee3c 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S | |||
@@ -19,7 +19,6 @@ | |||
19 | * | 19 | * |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/errno.h> | 22 | #include <linux/errno.h> |
24 | #include <linux/sys.h> | 23 | #include <linux/sys.h> |
25 | #include <linux/threads.h> | 24 | #include <linux/threads.h> |
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index 221062c960c9..54d9f5cdaab4 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S | |||
@@ -18,7 +18,6 @@ | |||
18 | * 2 of the License, or (at your option) any later version. | 18 | * 2 of the License, or (at your option) any later version. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/errno.h> | 21 | #include <linux/errno.h> |
23 | #include <asm/unistd.h> | 22 | #include <asm/unistd.h> |
24 | #include <asm/processor.h> | 23 | #include <asm/processor.h> |
diff --git a/arch/powerpc/kernel/firmware.c b/arch/powerpc/kernel/firmware.c index 0bfe9061720a..1679a70bbcad 100644 --- a/arch/powerpc/kernel/firmware.c +++ b/arch/powerpc/kernel/firmware.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * 2 of the License, or (at your option) any later version. | 13 | * 2 of the License, or (at your option) any later version. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | 17 | ||
19 | #include <asm/firmware.h> | 18 | #include <asm/firmware.h> |
diff --git a/arch/powerpc/kernel/fpu.S b/arch/powerpc/kernel/fpu.S index 01f71200c603..7e2c9fe44ac1 100644 --- a/arch/powerpc/kernel/fpu.S +++ b/arch/powerpc/kernel/fpu.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/reg.h> | 12 | #include <asm/reg.h> |
14 | #include <asm/page.h> | 13 | #include <asm/page.h> |
15 | #include <asm/mmu.h> | 14 | #include <asm/mmu.h> |
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S index b25b25902d15..d88e182e40b3 100644 --- a/arch/powerpc/kernel/head_32.S +++ b/arch/powerpc/kernel/head_32.S | |||
@@ -22,7 +22,6 @@ | |||
22 | * | 22 | * |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <asm/reg.h> | 25 | #include <asm/reg.h> |
27 | #include <asm/page.h> | 26 | #include <asm/page.h> |
28 | #include <asm/mmu.h> | 27 | #include <asm/mmu.h> |
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S index 47c7fa148c9a..accb39d49911 100644 --- a/arch/powerpc/kernel/head_44x.S +++ b/arch/powerpc/kernel/head_44x.S | |||
@@ -28,7 +28,6 @@ | |||
28 | * option) any later version. | 28 | * option) any later version. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/config.h> | ||
32 | #include <asm/processor.h> | 31 | #include <asm/processor.h> |
33 | #include <asm/page.h> | 32 | #include <asm/page.h> |
34 | #include <asm/mmu.h> | 33 | #include <asm/mmu.h> |
diff --git a/arch/powerpc/kernel/head_4xx.S b/arch/powerpc/kernel/head_4xx.S index 2590e97f5539..adc7f8097cd4 100644 --- a/arch/powerpc/kernel/head_4xx.S +++ b/arch/powerpc/kernel/head_4xx.S | |||
@@ -31,7 +31,6 @@ | |||
31 | * | 31 | * |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <linux/config.h> | ||
35 | #include <asm/processor.h> | 34 | #include <asm/processor.h> |
36 | #include <asm/page.h> | 35 | #include <asm/page.h> |
37 | #include <asm/mmu.h> | 36 | #include <asm/mmu.h> |
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 831acbdf2592..e16eb2a33173 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -21,7 +21,6 @@ | |||
21 | * 2 of the License, or (at your option) any later version. | 21 | * 2 of the License, or (at your option) any later version. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/threads.h> | 24 | #include <linux/threads.h> |
26 | #include <asm/reg.h> | 25 | #include <asm/reg.h> |
27 | #include <asm/page.h> | 26 | #include <asm/page.h> |
@@ -85,34 +84,6 @@ END_FTR_SECTION(0, 1) | |||
85 | /* Catch branch to 0 in real mode */ | 84 | /* Catch branch to 0 in real mode */ |
86 | trap | 85 | trap |
87 | 86 | ||
88 | #ifdef CONFIG_PPC_ISERIES | ||
89 | /* | ||
90 | * At offset 0x20, there is a pointer to iSeries LPAR data. | ||
91 | * This is required by the hypervisor | ||
92 | */ | ||
93 | . = 0x20 | ||
94 | .llong hvReleaseData-KERNELBASE | ||
95 | |||
96 | /* | ||
97 | * At offset 0x28 and 0x30 are offsets to the mschunks_map | ||
98 | * array (used by the iSeries LPAR debugger to do translation | ||
99 | * between physical addresses and absolute addresses) and | ||
100 | * to the pidhash table (also used by the debugger) | ||
101 | */ | ||
102 | .llong mschunks_map-KERNELBASE | ||
103 | .llong 0 /* pidhash-KERNELBASE SFRXXX */ | ||
104 | |||
105 | /* Offset 0x38 - Pointer to start of embedded System.map */ | ||
106 | .globl embedded_sysmap_start | ||
107 | embedded_sysmap_start: | ||
108 | .llong 0 | ||
109 | /* Offset 0x40 - Pointer to end of embedded System.map */ | ||
110 | .globl embedded_sysmap_end | ||
111 | embedded_sysmap_end: | ||
112 | .llong 0 | ||
113 | |||
114 | #endif /* CONFIG_PPC_ISERIES */ | ||
115 | |||
116 | /* Secondary processors spin on this value until it goes to 1. */ | 87 | /* Secondary processors spin on this value until it goes to 1. */ |
117 | .globl __secondary_hold_spinloop | 88 | .globl __secondary_hold_spinloop |
118 | __secondary_hold_spinloop: | 89 | __secondary_hold_spinloop: |
@@ -124,6 +95,15 @@ __secondary_hold_spinloop: | |||
124 | __secondary_hold_acknowledge: | 95 | __secondary_hold_acknowledge: |
125 | .llong 0x0 | 96 | .llong 0x0 |
126 | 97 | ||
98 | #ifdef CONFIG_PPC_ISERIES | ||
99 | /* | ||
100 | * At offset 0x20, there is a pointer to iSeries LPAR data. | ||
101 | * This is required by the hypervisor | ||
102 | */ | ||
103 | . = 0x20 | ||
104 | .llong hvReleaseData-KERNELBASE | ||
105 | #endif /* CONFIG_PPC_ISERIES */ | ||
106 | |||
127 | . = 0x60 | 107 | . = 0x60 |
128 | /* | 108 | /* |
129 | * The following code is used on pSeries to hold secondary processors | 109 | * The following code is used on pSeries to hold secondary processors |
@@ -1602,9 +1582,6 @@ _GLOBAL(__start_initialization_multiplatform) | |||
1602 | /* Setup some critical 970 SPRs before switching MMU off */ | 1582 | /* Setup some critical 970 SPRs before switching MMU off */ |
1603 | bl .__970_cpu_preinit | 1583 | bl .__970_cpu_preinit |
1604 | 1584 | ||
1605 | /* cpu # */ | ||
1606 | li r24,0 | ||
1607 | |||
1608 | /* Switch off MMU if not already */ | 1585 | /* Switch off MMU if not already */ |
1609 | LOAD_REG_IMMEDIATE(r4, .__after_prom_start - KERNELBASE) | 1586 | LOAD_REG_IMMEDIATE(r4, .__after_prom_start - KERNELBASE) |
1610 | add r4,r4,r30 | 1587 | add r4,r4,r30 |
@@ -1683,6 +1660,9 @@ _STATIC(__after_prom_start) | |||
1683 | /* i.e. where we are running */ | 1660 | /* i.e. where we are running */ |
1684 | /* the source addr */ | 1661 | /* the source addr */ |
1685 | 1662 | ||
1663 | cmpdi r4,0 /* In some cases the loader may */ | ||
1664 | beq .start_here_multiplatform /* have already put us at zero */ | ||
1665 | /* so we can skip the copy. */ | ||
1686 | LOAD_REG_IMMEDIATE(r5,copy_to_here) /* # bytes of memory to copy */ | 1666 | LOAD_REG_IMMEDIATE(r5,copy_to_here) /* # bytes of memory to copy */ |
1687 | sub r5,r5,r27 | 1667 | sub r5,r5,r27 |
1688 | 1668 | ||
@@ -1962,14 +1942,6 @@ _STATIC(start_here_common) | |||
1962 | li r3,0 | 1942 | li r3,0 |
1963 | bl .do_cpu_ftr_fixups | 1943 | bl .do_cpu_ftr_fixups |
1964 | 1944 | ||
1965 | LOAD_REG_IMMEDIATE(r26, boot_cpuid) | ||
1966 | lwz r26,0(r26) | ||
1967 | |||
1968 | LOAD_REG_IMMEDIATE(r24, paca) /* Get base vaddr of paca array */ | ||
1969 | mulli r13,r26,PACA_SIZE /* Calculate vaddr of right paca */ | ||
1970 | add r13,r13,r24 /* for this processor. */ | ||
1971 | mtspr SPRN_SPRG3,r13 | ||
1972 | |||
1973 | /* ptr to current */ | 1945 | /* ptr to current */ |
1974 | LOAD_REG_IMMEDIATE(r4, init_task) | 1946 | LOAD_REG_IMMEDIATE(r4, init_task) |
1975 | std r4,PACACURRENT(r13) | 1947 | std r4,PACACURRENT(r13) |
@@ -1995,17 +1967,6 @@ _STATIC(start_here_common) | |||
1995 | /* Not reached */ | 1967 | /* Not reached */ |
1996 | BUG_OPCODE | 1968 | BUG_OPCODE |
1997 | 1969 | ||
1998 | /* Put the paca pointer into r13 and SPRG3 */ | ||
1999 | _GLOBAL(setup_boot_paca) | ||
2000 | LOAD_REG_IMMEDIATE(r3, boot_cpuid) | ||
2001 | lwz r3,0(r3) | ||
2002 | LOAD_REG_IMMEDIATE(r4, paca) /* Get base vaddr of paca array */ | ||
2003 | mulli r3,r3,PACA_SIZE /* Calculate vaddr of right paca */ | ||
2004 | add r13,r3,r4 /* for this processor. */ | ||
2005 | mtspr SPRN_SPRG3,r13 | ||
2006 | |||
2007 | blr | ||
2008 | |||
2009 | /* | 1970 | /* |
2010 | * We put a few things here that have to be page-aligned. | 1971 | * We put a few things here that have to be page-aligned. |
2011 | * This stuff goes at the beginning of the bss, which is page-aligned. | 1972 | * This stuff goes at the beginning of the bss, which is page-aligned. |
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index 28941f5ce673..901be47a02a9 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S | |||
@@ -19,7 +19,6 @@ | |||
19 | * | 19 | * |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <asm/processor.h> | 22 | #include <asm/processor.h> |
24 | #include <asm/page.h> | 23 | #include <asm/page.h> |
25 | #include <asm/mmu.h> | 24 | #include <asm/mmu.h> |
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S index dd86bbed7627..66877bdfe0b7 100644 --- a/arch/powerpc/kernel/head_fsl_booke.S +++ b/arch/powerpc/kernel/head_fsl_booke.S | |||
@@ -30,7 +30,6 @@ | |||
30 | * option) any later version. | 30 | * option) any later version. |
31 | */ | 31 | */ |
32 | 32 | ||
33 | #include <linux/config.h> | ||
34 | #include <linux/threads.h> | 33 | #include <linux/threads.h> |
35 | #include <asm/processor.h> | 34 | #include <asm/processor.h> |
36 | #include <asm/page.h> | 35 | #include <asm/page.h> |
diff --git a/arch/powerpc/kernel/idle.c b/arch/powerpc/kernel/idle.c index d491052c8e0c..4180c3998b39 100644 --- a/arch/powerpc/kernel/idle.c +++ b/arch/powerpc/kernel/idle.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * 2 of the License, or (at your option) any later version. | 19 | * 2 of the License, or (at your option) any later version. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
25 | #include <linux/smp.h> | 24 | #include <linux/smp.h> |
diff --git a/arch/powerpc/kernel/idle_6xx.S b/arch/powerpc/kernel/idle_6xx.S index b45fa0e37212..01bcd52bbf8e 100644 --- a/arch/powerpc/kernel/idle_6xx.S +++ b/arch/powerpc/kernel/idle_6xx.S | |||
@@ -13,7 +13,6 @@ | |||
13 | * 2 of the License, or (at your option) any later version. | 13 | * 2 of the License, or (at your option) any later version. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/threads.h> | 16 | #include <linux/threads.h> |
18 | #include <asm/reg.h> | 17 | #include <asm/reg.h> |
19 | #include <asm/page.h> | 18 | #include <asm/page.h> |
diff --git a/arch/powerpc/kernel/idle_power4.S b/arch/powerpc/kernel/idle_power4.S index d85c7c938eed..30de81da7b40 100644 --- a/arch/powerpc/kernel/idle_power4.S +++ b/arch/powerpc/kernel/idle_power4.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * 2 of the License, or (at your option) any later version. | 7 | * 2 of the License, or (at your option) any later version. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/threads.h> | 10 | #include <linux/threads.h> |
12 | #include <asm/processor.h> | 11 | #include <asm/processor.h> |
13 | #include <asm/page.h> | 12 | #include <asm/page.h> |
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c index 7cb77c20fc5d..ba0694071728 100644 --- a/arch/powerpc/kernel/iommu.c +++ b/arch/powerpc/kernel/iommu.c | |||
@@ -23,7 +23,6 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/types.h> | 27 | #include <linux/types.h> |
29 | #include <linux/slab.h> | 28 | #include <linux/slab.h> |
@@ -38,6 +37,7 @@ | |||
38 | #include <asm/iommu.h> | 37 | #include <asm/iommu.h> |
39 | #include <asm/pci-bridge.h> | 38 | #include <asm/pci-bridge.h> |
40 | #include <asm/machdep.h> | 39 | #include <asm/machdep.h> |
40 | #include <asm/kdump.h> | ||
41 | 41 | ||
42 | #define DBG(...) | 42 | #define DBG(...) |
43 | 43 | ||
@@ -440,8 +440,37 @@ struct iommu_table *iommu_init_table(struct iommu_table *tbl, int nid) | |||
440 | tbl->it_largehint = tbl->it_halfpoint; | 440 | tbl->it_largehint = tbl->it_halfpoint; |
441 | spin_lock_init(&tbl->it_lock); | 441 | spin_lock_init(&tbl->it_lock); |
442 | 442 | ||
443 | #ifdef CONFIG_CRASH_DUMP | ||
444 | if (ppc_md.tce_get) { | ||
445 | unsigned long index, tceval; | ||
446 | unsigned long tcecount = 0; | ||
447 | |||
448 | /* | ||
449 | * Reserve the existing mappings left by the first kernel. | ||
450 | */ | ||
451 | for (index = 0; index < tbl->it_size; index++) { | ||
452 | tceval = ppc_md.tce_get(tbl, index + tbl->it_offset); | ||
453 | /* | ||
454 | * Freed TCE entry contains 0x7fffffffffffffff on JS20 | ||
455 | */ | ||
456 | if (tceval && (tceval != 0x7fffffffffffffffUL)) { | ||
457 | __set_bit(index, tbl->it_map); | ||
458 | tcecount++; | ||
459 | } | ||
460 | } | ||
461 | if ((tbl->it_size - tcecount) < KDUMP_MIN_TCE_ENTRIES) { | ||
462 | printk(KERN_WARNING "TCE table is full; "); | ||
463 | printk(KERN_WARNING "freeing %d entries for the kdump boot\n", | ||
464 | KDUMP_MIN_TCE_ENTRIES); | ||
465 | for (index = tbl->it_size - KDUMP_MIN_TCE_ENTRIES; | ||
466 | index < tbl->it_size; index++) | ||
467 | __clear_bit(index, tbl->it_map); | ||
468 | } | ||
469 | } | ||
470 | #else | ||
443 | /* Clear the hardware table in case firmware left allocations in it */ | 471 | /* Clear the hardware table in case firmware left allocations in it */ |
444 | ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size); | 472 | ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size); |
473 | #endif | ||
445 | 474 | ||
446 | if (!welcomed) { | 475 | if (!welcomed) { |
447 | printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n", | 476 | printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n", |
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 40d4c14fde8f..525baab45d2d 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
@@ -38,7 +38,6 @@ | |||
38 | #include <linux/ioport.h> | 38 | #include <linux/ioport.h> |
39 | #include <linux/interrupt.h> | 39 | #include <linux/interrupt.h> |
40 | #include <linux/timex.h> | 40 | #include <linux/timex.h> |
41 | #include <linux/config.h> | ||
42 | #include <linux/init.h> | 41 | #include <linux/init.h> |
43 | #include <linux/slab.h> | 42 | #include <linux/slab.h> |
44 | #include <linux/delay.h> | 43 | #include <linux/delay.h> |
@@ -120,8 +119,8 @@ int show_interrupts(struct seq_file *p, void *v) | |||
120 | #else | 119 | #else |
121 | seq_printf(p, "%10u ", kstat_irqs(i)); | 120 | seq_printf(p, "%10u ", kstat_irqs(i)); |
122 | #endif /* CONFIG_SMP */ | 121 | #endif /* CONFIG_SMP */ |
123 | if (desc->handler) | 122 | if (desc->chip) |
124 | seq_printf(p, " %s ", desc->handler->typename); | 123 | seq_printf(p, " %s ", desc->chip->typename); |
125 | else | 124 | else |
126 | seq_puts(p, " None "); | 125 | seq_puts(p, " None "); |
127 | seq_printf(p, "%s", (desc->status & IRQ_LEVEL) ? "Level " : "Edge "); | 126 | seq_printf(p, "%s", (desc->status & IRQ_LEVEL) ? "Level " : "Edge "); |
@@ -164,13 +163,13 @@ void fixup_irqs(cpumask_t map) | |||
164 | if (irq_desc[irq].status & IRQ_PER_CPU) | 163 | if (irq_desc[irq].status & IRQ_PER_CPU) |
165 | continue; | 164 | continue; |
166 | 165 | ||
167 | cpus_and(mask, irq_affinity[irq], map); | 166 | cpus_and(mask, irq_desc[irq].affinity, map); |
168 | if (any_online_cpu(mask) == NR_CPUS) { | 167 | if (any_online_cpu(mask) == NR_CPUS) { |
169 | printk("Breaking affinity for irq %i\n", irq); | 168 | printk("Breaking affinity for irq %i\n", irq); |
170 | mask = map; | 169 | mask = map; |
171 | } | 170 | } |
172 | if (irq_desc[irq].handler->set_affinity) | 171 | if (irq_desc[irq].chip->set_affinity) |
173 | irq_desc[irq].handler->set_affinity(irq, mask); | 172 | irq_desc[irq].chip->set_affinity(irq, mask); |
174 | else if (irq_desc[irq].action && !(warned++)) | 173 | else if (irq_desc[irq].action && !(warned++)) |
175 | printk("Cannot set affinity for irq %i\n", irq); | 174 | printk("Cannot set affinity for irq %i\n", irq); |
176 | } | 175 | } |
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index f78866367b70..9f0898c89759 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * for PPC64 | 26 | * for PPC64 |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <linux/config.h> | ||
30 | #include <linux/kprobes.h> | 29 | #include <linux/kprobes.h> |
31 | #include <linux/ptrace.h> | 30 | #include <linux/ptrace.h> |
32 | #include <linux/preempt.h> | 31 | #include <linux/preempt.h> |
diff --git a/arch/powerpc/kernel/l2cr_6xx.S b/arch/powerpc/kernel/l2cr_6xx.S index d7f4e982b539..858f28ac8a06 100644 --- a/arch/powerpc/kernel/l2cr_6xx.S +++ b/arch/powerpc/kernel/l2cr_6xx.S | |||
@@ -40,7 +40,6 @@ | |||
40 | Author: Terry Greeniaus (tgree@phys.ualberta.ca) | 40 | Author: Terry Greeniaus (tgree@phys.ualberta.ca) |
41 | Please e-mail updates to this file to me, thanks! | 41 | Please e-mail updates to this file to me, thanks! |
42 | */ | 42 | */ |
43 | #include <linux/config.h> | ||
44 | #include <asm/processor.h> | 43 | #include <asm/processor.h> |
45 | #include <asm/cputable.h> | 44 | #include <asm/cputable.h> |
46 | #include <asm/ppc_asm.h> | 45 | #include <asm/ppc_asm.h> |
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c index 6e67b5b49ba1..4cf0b971976b 100644 --- a/arch/powerpc/kernel/legacy_serial.c +++ b/arch/powerpc/kernel/legacy_serial.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/kernel.h> | 1 | #include <linux/kernel.h> |
3 | #include <linux/serial.h> | 2 | #include <linux/serial.h> |
4 | #include <linux/serial_8250.h> | 3 | #include <linux/serial_8250.h> |
@@ -302,6 +301,17 @@ void __init find_legacy_serial_ports(void) | |||
302 | of_node_put(isa); | 301 | of_node_put(isa); |
303 | } | 302 | } |
304 | 303 | ||
304 | /* First fill our array with tsi-bridge ports */ | ||
305 | for (np = NULL; (np = of_find_compatible_node(np, "serial", "ns16550")) != NULL;) { | ||
306 | struct device_node *tsi = of_get_parent(np); | ||
307 | if (tsi && !strcmp(tsi->type, "tsi-bridge")) { | ||
308 | index = add_legacy_soc_port(np, np); | ||
309 | if (index >= 0 && np == stdout) | ||
310 | legacy_serial_console = index; | ||
311 | } | ||
312 | of_node_put(tsi); | ||
313 | } | ||
314 | |||
305 | #ifdef CONFIG_PCI | 315 | #ifdef CONFIG_PCI |
306 | /* Next, try to locate PCI ports */ | 316 | /* Next, try to locate PCI ports */ |
307 | for (np = NULL; (np = of_find_all_nodes(np));) { | 317 | for (np = NULL; (np = of_find_all_nodes(np));) { |
diff --git a/arch/powerpc/kernel/lparcfg.c b/arch/powerpc/kernel/lparcfg.c index c02deaab26c7..23f34daa044a 100644 --- a/arch/powerpc/kernel/lparcfg.c +++ b/arch/powerpc/kernel/lparcfg.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * keyword - value pairs that specify the configuration of the partition. | 18 | * keyword - value pairs that specify the configuration of the partition. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/types.h> | 22 | #include <linux/types.h> |
24 | #include <linux/errno.h> | 23 | #include <linux/errno.h> |
@@ -45,11 +44,9 @@ | |||
45 | static struct proc_dir_entry *proc_ppc64_lparcfg; | 44 | static struct proc_dir_entry *proc_ppc64_lparcfg; |
46 | #define LPARCFG_BUFF_SIZE 4096 | 45 | #define LPARCFG_BUFF_SIZE 4096 |
47 | 46 | ||
48 | #ifdef CONFIG_PPC_ISERIES | ||
49 | |||
50 | /* | 47 | /* |
51 | * For iSeries legacy systems, the PPA purr function is available from the | 48 | * Track sum of all purrs across all processors. This is used to further |
52 | * emulated_time_base field in the paca. | 49 | * calculate usage values by different applications |
53 | */ | 50 | */ |
54 | static unsigned long get_purr(void) | 51 | static unsigned long get_purr(void) |
55 | { | 52 | { |
@@ -57,48 +54,31 @@ static unsigned long get_purr(void) | |||
57 | int cpu; | 54 | int cpu; |
58 | 55 | ||
59 | for_each_possible_cpu(cpu) { | 56 | for_each_possible_cpu(cpu) { |
60 | sum_purr += lppaca[cpu].emulated_time_base; | 57 | if (firmware_has_feature(FW_FEATURE_ISERIES)) |
58 | sum_purr += lppaca[cpu].emulated_time_base; | ||
59 | else { | ||
60 | struct cpu_usage *cu; | ||
61 | 61 | ||
62 | #ifdef PURR_DEBUG | 62 | cu = &per_cpu(cpu_usage_array, cpu); |
63 | printk(KERN_INFO "get_purr for cpu (%d) has value (%ld) \n", | 63 | sum_purr += cu->current_tb; |
64 | cpu, lppaca[cpu].emulated_time_base); | 64 | } |
65 | #endif | ||
66 | } | 65 | } |
67 | return sum_purr; | 66 | return sum_purr; |
68 | } | 67 | } |
69 | 68 | ||
70 | #define lparcfg_write NULL | 69 | #ifdef CONFIG_PPC_ISERIES |
71 | 70 | ||
72 | /* | 71 | /* |
73 | * Methods used to fetch LPAR data when running on an iSeries platform. | 72 | * Methods used to fetch LPAR data when running on an iSeries platform. |
74 | */ | 73 | */ |
75 | static int lparcfg_data(struct seq_file *m, void *v) | 74 | static int iseries_lparcfg_data(struct seq_file *m, void *v) |
76 | { | 75 | { |
77 | unsigned long pool_id, lp_index; | 76 | unsigned long pool_id; |
78 | int shared, entitled_capacity, max_entitled_capacity; | 77 | int shared, entitled_capacity, max_entitled_capacity; |
79 | int processors, max_processors; | 78 | int processors, max_processors; |
80 | unsigned long purr = get_purr(); | 79 | unsigned long purr = get_purr(); |
81 | 80 | ||
82 | seq_printf(m, "%s %s \n", MODULE_NAME, MODULE_VERS); | ||
83 | |||
84 | shared = (int)(get_lppaca()->shared_proc); | 81 | shared = (int)(get_lppaca()->shared_proc); |
85 | seq_printf(m, "serial_number=%c%c%c%c%c%c%c\n", | ||
86 | e2a(xItExtVpdPanel.mfgID[2]), | ||
87 | e2a(xItExtVpdPanel.mfgID[3]), | ||
88 | e2a(xItExtVpdPanel.systemSerial[1]), | ||
89 | e2a(xItExtVpdPanel.systemSerial[2]), | ||
90 | e2a(xItExtVpdPanel.systemSerial[3]), | ||
91 | e2a(xItExtVpdPanel.systemSerial[4]), | ||
92 | e2a(xItExtVpdPanel.systemSerial[5])); | ||
93 | |||
94 | seq_printf(m, "system_type=%c%c%c%c\n", | ||
95 | e2a(xItExtVpdPanel.machineType[0]), | ||
96 | e2a(xItExtVpdPanel.machineType[1]), | ||
97 | e2a(xItExtVpdPanel.machineType[2]), | ||
98 | e2a(xItExtVpdPanel.machineType[3])); | ||
99 | |||
100 | lp_index = HvLpConfig_getLpIndex(); | ||
101 | seq_printf(m, "partition_id=%d\n", (int)lp_index); | ||
102 | 82 | ||
103 | seq_printf(m, "system_active_processors=%d\n", | 83 | seq_printf(m, "system_active_processors=%d\n", |
104 | (int)HvLpConfig_getSystemPhysicalProcessors()); | 84 | (int)HvLpConfig_getSystemPhysicalProcessors()); |
@@ -137,6 +117,14 @@ static int lparcfg_data(struct seq_file *m, void *v) | |||
137 | 117 | ||
138 | return 0; | 118 | return 0; |
139 | } | 119 | } |
120 | |||
121 | #else /* CONFIG_PPC_ISERIES */ | ||
122 | |||
123 | static int iseries_lparcfg_data(struct seq_file *m, void *v) | ||
124 | { | ||
125 | return 0; | ||
126 | } | ||
127 | |||
140 | #endif /* CONFIG_PPC_ISERIES */ | 128 | #endif /* CONFIG_PPC_ISERIES */ |
141 | 129 | ||
142 | #ifdef CONFIG_PPC_PSERIES | 130 | #ifdef CONFIG_PPC_PSERIES |
@@ -213,22 +201,6 @@ static void h_pic(unsigned long *pool_idle_time, unsigned long *num_procs) | |||
213 | log_plpar_hcall_return(rc, "H_PIC"); | 201 | log_plpar_hcall_return(rc, "H_PIC"); |
214 | } | 202 | } |
215 | 203 | ||
216 | /* Track sum of all purrs across all processors. This is used to further */ | ||
217 | /* calculate usage values by different applications */ | ||
218 | |||
219 | static unsigned long get_purr(void) | ||
220 | { | ||
221 | unsigned long sum_purr = 0; | ||
222 | int cpu; | ||
223 | struct cpu_usage *cu; | ||
224 | |||
225 | for_each_possible_cpu(cpu) { | ||
226 | cu = &per_cpu(cpu_usage_array, cpu); | ||
227 | sum_purr += cu->current_tb; | ||
228 | } | ||
229 | return sum_purr; | ||
230 | } | ||
231 | |||
232 | #define SPLPAR_CHARACTERISTICS_TOKEN 20 | 204 | #define SPLPAR_CHARACTERISTICS_TOKEN 20 |
233 | #define SPLPAR_MAXLENGTH 1026*(sizeof(char)) | 205 | #define SPLPAR_MAXLENGTH 1026*(sizeof(char)) |
234 | 206 | ||
@@ -333,35 +305,13 @@ static int lparcfg_count_active_processors(void) | |||
333 | return count; | 305 | return count; |
334 | } | 306 | } |
335 | 307 | ||
336 | static int lparcfg_data(struct seq_file *m, void *v) | 308 | static int pseries_lparcfg_data(struct seq_file *m, void *v) |
337 | { | 309 | { |
338 | int partition_potential_processors; | 310 | int partition_potential_processors; |
339 | int partition_active_processors; | 311 | int partition_active_processors; |
340 | struct device_node *rootdn; | ||
341 | const char *model = ""; | ||
342 | const char *system_id = ""; | ||
343 | unsigned int *lp_index_ptr, lp_index = 0; | ||
344 | struct device_node *rtas_node; | 312 | struct device_node *rtas_node; |
345 | int *lrdrp = NULL; | 313 | int *lrdrp = NULL; |
346 | 314 | ||
347 | rootdn = find_path_device("/"); | ||
348 | if (rootdn) { | ||
349 | model = get_property(rootdn, "model", NULL); | ||
350 | system_id = get_property(rootdn, "system-id", NULL); | ||
351 | lp_index_ptr = (unsigned int *) | ||
352 | get_property(rootdn, "ibm,partition-no", NULL); | ||
353 | if (lp_index_ptr) | ||
354 | lp_index = *lp_index_ptr; | ||
355 | } | ||
356 | |||
357 | seq_printf(m, "%s %s \n", MODULE_NAME, MODULE_VERS); | ||
358 | |||
359 | seq_printf(m, "serial_number=%s\n", system_id); | ||
360 | |||
361 | seq_printf(m, "system_type=%s\n", model); | ||
362 | |||
363 | seq_printf(m, "partition_id=%d\n", (int)lp_index); | ||
364 | |||
365 | rtas_node = find_path_device("/rtas"); | 315 | rtas_node = find_path_device("/rtas"); |
366 | if (rtas_node) | 316 | if (rtas_node) |
367 | lrdrp = (int *)get_property(rtas_node, "ibm,lrdr-capacity", | 317 | lrdrp = (int *)get_property(rtas_node, "ibm,lrdr-capacity", |
@@ -549,8 +499,61 @@ out: | |||
549 | return retval; | 499 | return retval; |
550 | } | 500 | } |
551 | 501 | ||
502 | #else /* CONFIG_PPC_PSERIES */ | ||
503 | |||
504 | static int pseries_lparcfg_data(struct seq_file *m, void *v) | ||
505 | { | ||
506 | return 0; | ||
507 | } | ||
508 | |||
509 | static ssize_t lparcfg_write(struct file *file, const char __user * buf, | ||
510 | size_t count, loff_t * off) | ||
511 | { | ||
512 | return count; | ||
513 | } | ||
514 | |||
552 | #endif /* CONFIG_PPC_PSERIES */ | 515 | #endif /* CONFIG_PPC_PSERIES */ |
553 | 516 | ||
517 | static int lparcfg_data(struct seq_file *m, void *v) | ||
518 | { | ||
519 | struct device_node *rootdn; | ||
520 | const char *model = ""; | ||
521 | const char *system_id = ""; | ||
522 | const char *tmp; | ||
523 | unsigned int *lp_index_ptr, lp_index = 0; | ||
524 | |||
525 | seq_printf(m, "%s %s \n", MODULE_NAME, MODULE_VERS); | ||
526 | |||
527 | rootdn = find_path_device("/"); | ||
528 | if (rootdn) { | ||
529 | tmp = get_property(rootdn, "model", NULL); | ||
530 | if (tmp) { | ||
531 | model = tmp; | ||
532 | /* Skip "IBM," - see platforms/iseries/dt.c */ | ||
533 | if (firmware_has_feature(FW_FEATURE_ISERIES)) | ||
534 | model += 4; | ||
535 | } | ||
536 | tmp = get_property(rootdn, "system-id", NULL); | ||
537 | if (tmp) { | ||
538 | system_id = tmp; | ||
539 | /* Skip "IBM," - see platforms/iseries/dt.c */ | ||
540 | if (firmware_has_feature(FW_FEATURE_ISERIES)) | ||
541 | system_id += 4; | ||
542 | } | ||
543 | lp_index_ptr = (unsigned int *) | ||
544 | get_property(rootdn, "ibm,partition-no", NULL); | ||
545 | if (lp_index_ptr) | ||
546 | lp_index = *lp_index_ptr; | ||
547 | } | ||
548 | seq_printf(m, "serial_number=%s\n", system_id); | ||
549 | seq_printf(m, "system_type=%s\n", model); | ||
550 | seq_printf(m, "partition_id=%d\n", (int)lp_index); | ||
551 | |||
552 | if (firmware_has_feature(FW_FEATURE_ISERIES)) | ||
553 | return iseries_lparcfg_data(m, v); | ||
554 | return pseries_lparcfg_data(m, v); | ||
555 | } | ||
556 | |||
554 | static int lparcfg_open(struct inode *inode, struct file *file) | 557 | static int lparcfg_open(struct inode *inode, struct file *file) |
555 | { | 558 | { |
556 | return single_open(file, lparcfg_data, NULL); | 559 | return single_open(file, lparcfg_data, NULL); |
@@ -569,7 +572,8 @@ int __init lparcfg_init(void) | |||
569 | mode_t mode = S_IRUSR | S_IRGRP | S_IROTH; | 572 | mode_t mode = S_IRUSR | S_IRGRP | S_IROTH; |
570 | 573 | ||
571 | /* Allow writing if we have FW_FEATURE_SPLPAR */ | 574 | /* Allow writing if we have FW_FEATURE_SPLPAR */ |
572 | if (firmware_has_feature(FW_FEATURE_SPLPAR)) { | 575 | if (firmware_has_feature(FW_FEATURE_SPLPAR) && |
576 | !firmware_has_feature(FW_FEATURE_ISERIES)) { | ||
573 | lparcfg_fops.write = lparcfg_write; | 577 | lparcfg_fops.write = lparcfg_write; |
574 | mode |= S_IWUSR; | 578 | mode |= S_IWUSR; |
575 | } | 579 | } |
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index a8fa04ef27cd..b438d45a068c 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c | |||
@@ -378,11 +378,13 @@ static void __init export_crashk_values(void) | |||
378 | of_node_put(node); | 378 | of_node_put(node); |
379 | } | 379 | } |
380 | 380 | ||
381 | void __init kexec_setup(void) | 381 | static int __init kexec_setup(void) |
382 | { | 382 | { |
383 | export_htab_values(); | 383 | export_htab_values(); |
384 | export_crashk_values(); | 384 | export_crashk_values(); |
385 | return 0; | ||
385 | } | 386 | } |
387 | __initcall(kexec_setup); | ||
386 | 388 | ||
387 | static int __init early_parse_crashk(char *p) | 389 | static int __init early_parse_crashk(char *p) |
388 | { | 390 | { |
diff --git a/arch/powerpc/kernel/misc.S b/arch/powerpc/kernel/misc.S new file mode 100644 index 000000000000..fc23040d5a26 --- /dev/null +++ b/arch/powerpc/kernel/misc.S | |||
@@ -0,0 +1,203 @@ | |||
1 | /* | ||
2 | * This file contains miscellaneous low-level functions. | ||
3 | * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) | ||
4 | * | ||
5 | * Largely rewritten by Cort Dougan (cort@cs.nmt.edu) | ||
6 | * and Paul Mackerras. | ||
7 | * | ||
8 | * Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com) | ||
9 | * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com) | ||
10 | * | ||
11 | * This program is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License | ||
13 | * as published by the Free Software Foundation; either version | ||
14 | * 2 of the License, or (at your option) any later version. | ||
15 | */ | ||
16 | #include <asm/ppc_asm.h> | ||
17 | |||
18 | .text | ||
19 | |||
20 | #ifdef CONFIG_PPC64 | ||
21 | #define IN_SYNC twi 0,r5,0; isync | ||
22 | #define EIEIO_32 | ||
23 | #define SYNC_64 sync | ||
24 | #else /* CONFIG_PPC32 */ | ||
25 | #define IN_SYNC | ||
26 | #define EIEIO_32 eieio | ||
27 | #define SYNC_64 | ||
28 | #endif | ||
29 | /* | ||
30 | * Returns (address we are running at) - (address we were linked at) | ||
31 | * for use before the text and data are mapped to KERNELBASE. | ||
32 | */ | ||
33 | |||
34 | _GLOBAL(reloc_offset) | ||
35 | mflr r0 | ||
36 | bl 1f | ||
37 | 1: mflr r3 | ||
38 | LOAD_REG_IMMEDIATE(r4,1b) | ||
39 | subf r3,r4,r3 | ||
40 | mtlr r0 | ||
41 | blr | ||
42 | |||
43 | /* | ||
44 | * add_reloc_offset(x) returns x + reloc_offset(). | ||
45 | */ | ||
46 | _GLOBAL(add_reloc_offset) | ||
47 | mflr r0 | ||
48 | bl 1f | ||
49 | 1: mflr r5 | ||
50 | LOAD_REG_IMMEDIATE(r4,1b) | ||
51 | subf r5,r4,r5 | ||
52 | add r3,r3,r5 | ||
53 | mtlr r0 | ||
54 | blr | ||
55 | |||
56 | /* | ||
57 | * I/O string operations | ||
58 | * | ||
59 | * insb(port, buf, len) | ||
60 | * outsb(port, buf, len) | ||
61 | * insw(port, buf, len) | ||
62 | * outsw(port, buf, len) | ||
63 | * insl(port, buf, len) | ||
64 | * outsl(port, buf, len) | ||
65 | * insw_ns(port, buf, len) | ||
66 | * outsw_ns(port, buf, len) | ||
67 | * insl_ns(port, buf, len) | ||
68 | * outsl_ns(port, buf, len) | ||
69 | * | ||
70 | * The *_ns versions don't do byte-swapping. | ||
71 | */ | ||
72 | _GLOBAL(_insb) | ||
73 | cmpwi 0,r5,0 | ||
74 | mtctr r5 | ||
75 | subi r4,r4,1 | ||
76 | blelr- | ||
77 | 00: lbz r5,0(r3) | ||
78 | eieio | ||
79 | stbu r5,1(r4) | ||
80 | bdnz 00b | ||
81 | IN_SYNC | ||
82 | blr | ||
83 | |||
84 | _GLOBAL(_outsb) | ||
85 | cmpwi 0,r5,0 | ||
86 | mtctr r5 | ||
87 | subi r4,r4,1 | ||
88 | blelr- | ||
89 | 00: lbzu r5,1(r4) | ||
90 | stb r5,0(r3) | ||
91 | EIEIO_32 | ||
92 | bdnz 00b | ||
93 | SYNC_64 | ||
94 | blr | ||
95 | |||
96 | _GLOBAL(_insw) | ||
97 | cmpwi 0,r5,0 | ||
98 | mtctr r5 | ||
99 | subi r4,r4,2 | ||
100 | blelr- | ||
101 | 00: lhbrx r5,0,r3 | ||
102 | eieio | ||
103 | sthu r5,2(r4) | ||
104 | bdnz 00b | ||
105 | IN_SYNC | ||
106 | blr | ||
107 | |||
108 | _GLOBAL(_outsw) | ||
109 | cmpwi 0,r5,0 | ||
110 | mtctr r5 | ||
111 | subi r4,r4,2 | ||
112 | blelr- | ||
113 | 00: lhzu r5,2(r4) | ||
114 | EIEIO_32 | ||
115 | sthbrx r5,0,r3 | ||
116 | bdnz 00b | ||
117 | SYNC_64 | ||
118 | blr | ||
119 | |||
120 | _GLOBAL(_insl) | ||
121 | cmpwi 0,r5,0 | ||
122 | mtctr r5 | ||
123 | subi r4,r4,4 | ||
124 | blelr- | ||
125 | 00: lwbrx r5,0,r3 | ||
126 | eieio | ||
127 | stwu r5,4(r4) | ||
128 | bdnz 00b | ||
129 | IN_SYNC | ||
130 | blr | ||
131 | |||
132 | _GLOBAL(_outsl) | ||
133 | cmpwi 0,r5,0 | ||
134 | mtctr r5 | ||
135 | subi r4,r4,4 | ||
136 | blelr- | ||
137 | 00: lwzu r5,4(r4) | ||
138 | stwbrx r5,0,r3 | ||
139 | EIEIO_32 | ||
140 | bdnz 00b | ||
141 | SYNC_64 | ||
142 | blr | ||
143 | |||
144 | #ifdef CONFIG_PPC32 | ||
145 | _GLOBAL(__ide_mm_insw) | ||
146 | #endif | ||
147 | _GLOBAL(_insw_ns) | ||
148 | cmpwi 0,r5,0 | ||
149 | mtctr r5 | ||
150 | subi r4,r4,2 | ||
151 | blelr- | ||
152 | 00: lhz r5,0(r3) | ||
153 | eieio | ||
154 | sthu r5,2(r4) | ||
155 | bdnz 00b | ||
156 | IN_SYNC | ||
157 | blr | ||
158 | |||
159 | #ifdef CONFIG_PPC32 | ||
160 | _GLOBAL(__ide_mm_outsw) | ||
161 | #endif | ||
162 | _GLOBAL(_outsw_ns) | ||
163 | cmpwi 0,r5,0 | ||
164 | mtctr r5 | ||
165 | subi r4,r4,2 | ||
166 | blelr- | ||
167 | 00: lhzu r5,2(r4) | ||
168 | sth r5,0(r3) | ||
169 | EIEIO_32 | ||
170 | bdnz 00b | ||
171 | SYNC_64 | ||
172 | blr | ||
173 | |||
174 | #ifdef CONFIG_PPC32 | ||
175 | _GLOBAL(__ide_mm_insl) | ||
176 | #endif | ||
177 | _GLOBAL(_insl_ns) | ||
178 | cmpwi 0,r5,0 | ||
179 | mtctr r5 | ||
180 | subi r4,r4,4 | ||
181 | blelr- | ||
182 | 00: lwz r5,0(r3) | ||
183 | eieio | ||
184 | stwu r5,4(r4) | ||
185 | bdnz 00b | ||
186 | IN_SYNC | ||
187 | blr | ||
188 | |||
189 | #ifdef CONFIG_PPC32 | ||
190 | _GLOBAL(__ide_mm_outsl) | ||
191 | #endif | ||
192 | _GLOBAL(_outsl_ns) | ||
193 | cmpwi 0,r5,0 | ||
194 | mtctr r5 | ||
195 | subi r4,r4,4 | ||
196 | blelr- | ||
197 | 00: lwzu r5,4(r4) | ||
198 | stw r5,0(r3) | ||
199 | EIEIO_32 | ||
200 | bdnz 00b | ||
201 | SYNC_64 | ||
202 | blr | ||
203 | |||
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index 01d3916c4cb1..58758d883361 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
@@ -16,7 +16,6 @@ | |||
16 | * | 16 | * |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/sys.h> | 19 | #include <linux/sys.h> |
21 | #include <asm/unistd.h> | 20 | #include <asm/unistd.h> |
22 | #include <asm/errno.h> | 21 | #include <asm/errno.h> |
@@ -61,32 +60,6 @@ _GLOBAL(mulhdu) | |||
61 | blr | 60 | blr |
62 | 61 | ||
63 | /* | 62 | /* |
64 | * Returns (address we're running at) - (address we were linked at) | ||
65 | * for use before the text and data are mapped to KERNELBASE. | ||
66 | */ | ||
67 | _GLOBAL(reloc_offset) | ||
68 | mflr r0 | ||
69 | bl 1f | ||
70 | 1: mflr r3 | ||
71 | LOAD_REG_IMMEDIATE(r4,1b) | ||
72 | subf r3,r4,r3 | ||
73 | mtlr r0 | ||
74 | blr | ||
75 | |||
76 | /* | ||
77 | * add_reloc_offset(x) returns x + reloc_offset(). | ||
78 | */ | ||
79 | _GLOBAL(add_reloc_offset) | ||
80 | mflr r0 | ||
81 | bl 1f | ||
82 | 1: mflr r5 | ||
83 | LOAD_REG_IMMEDIATE(r4,1b) | ||
84 | subf r5,r4,r5 | ||
85 | add r3,r3,r5 | ||
86 | mtlr r0 | ||
87 | blr | ||
88 | |||
89 | /* | ||
90 | * sub_reloc_offset(x) returns x - reloc_offset(). | 63 | * sub_reloc_offset(x) returns x - reloc_offset(). |
91 | */ | 64 | */ |
92 | _GLOBAL(sub_reloc_offset) | 65 | _GLOBAL(sub_reloc_offset) |
@@ -781,136 +754,6 @@ _GLOBAL(atomic_set_mask) | |||
781 | blr | 754 | blr |
782 | 755 | ||
783 | /* | 756 | /* |
784 | * I/O string operations | ||
785 | * | ||
786 | * insb(port, buf, len) | ||
787 | * outsb(port, buf, len) | ||
788 | * insw(port, buf, len) | ||
789 | * outsw(port, buf, len) | ||
790 | * insl(port, buf, len) | ||
791 | * outsl(port, buf, len) | ||
792 | * insw_ns(port, buf, len) | ||
793 | * outsw_ns(port, buf, len) | ||
794 | * insl_ns(port, buf, len) | ||
795 | * outsl_ns(port, buf, len) | ||
796 | * | ||
797 | * The *_ns versions don't do byte-swapping. | ||
798 | */ | ||
799 | _GLOBAL(_insb) | ||
800 | cmpwi 0,r5,0 | ||
801 | mtctr r5 | ||
802 | subi r4,r4,1 | ||
803 | blelr- | ||
804 | 00: lbz r5,0(r3) | ||
805 | eieio | ||
806 | stbu r5,1(r4) | ||
807 | bdnz 00b | ||
808 | blr | ||
809 | |||
810 | _GLOBAL(_outsb) | ||
811 | cmpwi 0,r5,0 | ||
812 | mtctr r5 | ||
813 | subi r4,r4,1 | ||
814 | blelr- | ||
815 | 00: lbzu r5,1(r4) | ||
816 | stb r5,0(r3) | ||
817 | eieio | ||
818 | bdnz 00b | ||
819 | blr | ||
820 | |||
821 | _GLOBAL(_insw) | ||
822 | cmpwi 0,r5,0 | ||
823 | mtctr r5 | ||
824 | subi r4,r4,2 | ||
825 | blelr- | ||
826 | 00: lhbrx r5,0,r3 | ||
827 | eieio | ||
828 | sthu r5,2(r4) | ||
829 | bdnz 00b | ||
830 | blr | ||
831 | |||
832 | _GLOBAL(_outsw) | ||
833 | cmpwi 0,r5,0 | ||
834 | mtctr r5 | ||
835 | subi r4,r4,2 | ||
836 | blelr- | ||
837 | 00: lhzu r5,2(r4) | ||
838 | eieio | ||
839 | sthbrx r5,0,r3 | ||
840 | bdnz 00b | ||
841 | blr | ||
842 | |||
843 | _GLOBAL(_insl) | ||
844 | cmpwi 0,r5,0 | ||
845 | mtctr r5 | ||
846 | subi r4,r4,4 | ||
847 | blelr- | ||
848 | 00: lwbrx r5,0,r3 | ||
849 | eieio | ||
850 | stwu r5,4(r4) | ||
851 | bdnz 00b | ||
852 | blr | ||
853 | |||
854 | _GLOBAL(_outsl) | ||
855 | cmpwi 0,r5,0 | ||
856 | mtctr r5 | ||
857 | subi r4,r4,4 | ||
858 | blelr- | ||
859 | 00: lwzu r5,4(r4) | ||
860 | stwbrx r5,0,r3 | ||
861 | eieio | ||
862 | bdnz 00b | ||
863 | blr | ||
864 | |||
865 | _GLOBAL(__ide_mm_insw) | ||
866 | _GLOBAL(_insw_ns) | ||
867 | cmpwi 0,r5,0 | ||
868 | mtctr r5 | ||
869 | subi r4,r4,2 | ||
870 | blelr- | ||
871 | 00: lhz r5,0(r3) | ||
872 | eieio | ||
873 | sthu r5,2(r4) | ||
874 | bdnz 00b | ||
875 | blr | ||
876 | |||
877 | _GLOBAL(__ide_mm_outsw) | ||
878 | _GLOBAL(_outsw_ns) | ||
879 | cmpwi 0,r5,0 | ||
880 | mtctr r5 | ||
881 | subi r4,r4,2 | ||
882 | blelr- | ||
883 | 00: lhzu r5,2(r4) | ||
884 | sth r5,0(r3) | ||
885 | eieio | ||
886 | bdnz 00b | ||
887 | blr | ||
888 | |||
889 | _GLOBAL(__ide_mm_insl) | ||
890 | _GLOBAL(_insl_ns) | ||
891 | cmpwi 0,r5,0 | ||
892 | mtctr r5 | ||
893 | subi r4,r4,4 | ||
894 | blelr- | ||
895 | 00: lwz r5,0(r3) | ||
896 | eieio | ||
897 | stwu r5,4(r4) | ||
898 | bdnz 00b | ||
899 | blr | ||
900 | |||
901 | _GLOBAL(__ide_mm_outsl) | ||
902 | _GLOBAL(_outsl_ns) | ||
903 | cmpwi 0,r5,0 | ||
904 | mtctr r5 | ||
905 | subi r4,r4,4 | ||
906 | blelr- | ||
907 | 00: lwzu r5,4(r4) | ||
908 | stw r5,0(r3) | ||
909 | eieio | ||
910 | bdnz 00b | ||
911 | blr | ||
912 | |||
913 | /* | ||
914 | * Extended precision shifts. | 757 | * Extended precision shifts. |
915 | * | 758 | * |
916 | * Updated to be valid for shift counts from 0 to 63 inclusive. | 759 | * Updated to be valid for shift counts from 0 to 63 inclusive. |
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S index e8883d42c43c..0c3c70d115c6 100644 --- a/arch/powerpc/kernel/misc_64.S +++ b/arch/powerpc/kernel/misc_64.S | |||
@@ -1,14 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * arch/powerpc/kernel/misc64.S | ||
3 | * | ||
4 | * This file contains miscellaneous low-level functions. | 2 | * This file contains miscellaneous low-level functions. |
5 | * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) | 3 | * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) |
6 | * | 4 | * |
7 | * Largely rewritten by Cort Dougan (cort@cs.nmt.edu) | 5 | * Largely rewritten by Cort Dougan (cort@cs.nmt.edu) |
8 | * and Paul Mackerras. | 6 | * and Paul Mackerras. |
9 | * Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com) | 7 | * Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com) |
10 | * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com) | 8 | * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com) |
11 | * | 9 | * |
12 | * This program is free software; you can redistribute it and/or | 10 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU General Public License | 11 | * modify it under the terms of the GNU General Public License |
14 | * as published by the Free Software Foundation; either version | 12 | * as published by the Free Software Foundation; either version |
@@ -16,7 +14,6 @@ | |||
16 | * | 14 | * |
17 | */ | 15 | */ |
18 | 16 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/sys.h> | 17 | #include <linux/sys.h> |
21 | #include <asm/unistd.h> | 18 | #include <asm/unistd.h> |
22 | #include <asm/errno.h> | 19 | #include <asm/errno.h> |
@@ -30,41 +27,10 @@ | |||
30 | 27 | ||
31 | .text | 28 | .text |
32 | 29 | ||
33 | /* | ||
34 | * Returns (address we are running at) - (address we were linked at) | ||
35 | * for use before the text and data are mapped to KERNELBASE. | ||
36 | */ | ||
37 | |||
38 | _GLOBAL(reloc_offset) | ||
39 | mflr r0 | ||
40 | bl 1f | ||
41 | 1: mflr r3 | ||
42 | LOAD_REG_IMMEDIATE(r4,1b) | ||
43 | subf r3,r4,r3 | ||
44 | mtlr r0 | ||
45 | blr | ||
46 | |||
47 | /* | ||
48 | * add_reloc_offset(x) returns x + reloc_offset(). | ||
49 | */ | ||
50 | _GLOBAL(add_reloc_offset) | ||
51 | mflr r0 | ||
52 | bl 1f | ||
53 | 1: mflr r5 | ||
54 | LOAD_REG_IMMEDIATE(r4,1b) | ||
55 | subf r5,r4,r5 | ||
56 | add r3,r3,r5 | ||
57 | mtlr r0 | ||
58 | blr | ||
59 | |||
60 | _GLOBAL(get_msr) | 30 | _GLOBAL(get_msr) |
61 | mfmsr r3 | 31 | mfmsr r3 |
62 | blr | 32 | blr |
63 | 33 | ||
64 | _GLOBAL(get_dar) | ||
65 | mfdar r3 | ||
66 | blr | ||
67 | |||
68 | _GLOBAL(get_srr0) | 34 | _GLOBAL(get_srr0) |
69 | mfsrr0 r3 | 35 | mfsrr0 r3 |
70 | blr | 36 | blr |
@@ -72,10 +38,6 @@ _GLOBAL(get_srr0) | |||
72 | _GLOBAL(get_srr1) | 38 | _GLOBAL(get_srr1) |
73 | mfsrr1 r3 | 39 | mfsrr1 r3 |
74 | blr | 40 | blr |
75 | |||
76 | _GLOBAL(get_sp) | ||
77 | mr r3,r1 | ||
78 | blr | ||
79 | 41 | ||
80 | #ifdef CONFIG_IRQSTACKS | 42 | #ifdef CONFIG_IRQSTACKS |
81 | _GLOBAL(call_do_softirq) | 43 | _GLOBAL(call_do_softirq) |
@@ -101,48 +63,6 @@ _GLOBAL(call___do_IRQ) | |||
101 | blr | 63 | blr |
102 | #endif /* CONFIG_IRQSTACKS */ | 64 | #endif /* CONFIG_IRQSTACKS */ |
103 | 65 | ||
104 | /* | ||
105 | * To be called by C code which needs to do some operations with MMU | ||
106 | * disabled. Note that interrupts have to be disabled by the caller | ||
107 | * prior to calling us. The code called _MUST_ be in the RMO of course | ||
108 | * and part of the linear mapping as we don't attempt to translate the | ||
109 | * stack pointer at all. The function is called with the stack switched | ||
110 | * to this CPU emergency stack | ||
111 | * | ||
112 | * prototype is void *call_with_mmu_off(void *func, void *data); | ||
113 | * | ||
114 | * the called function is expected to be of the form | ||
115 | * | ||
116 | * void *called(void *data); | ||
117 | */ | ||
118 | _GLOBAL(call_with_mmu_off) | ||
119 | mflr r0 /* get link, save it on stackframe */ | ||
120 | std r0,16(r1) | ||
121 | mr r1,r5 /* save old stack ptr */ | ||
122 | ld r1,PACAEMERGSP(r13) /* get emerg. stack */ | ||
123 | subi r1,r1,STACK_FRAME_OVERHEAD | ||
124 | std r0,16(r1) /* save link on emerg. stack */ | ||
125 | std r5,0(r1) /* save old stack ptr in backchain */ | ||
126 | ld r3,0(r3) /* get to real function ptr (assume same TOC) */ | ||
127 | bl 2f /* we need LR to return, continue at label 2 */ | ||
128 | |||
129 | ld r0,16(r1) /* we return here from the call, get LR and */ | ||
130 | ld r1,0(r1) /* .. old stack ptr */ | ||
131 | mtspr SPRN_SRR0,r0 /* and get back to virtual mode with these */ | ||
132 | mfmsr r4 | ||
133 | ori r4,r4,MSR_IR|MSR_DR | ||
134 | mtspr SPRN_SRR1,r4 | ||
135 | rfid | ||
136 | |||
137 | 2: mtspr SPRN_SRR0,r3 /* coming from above, enter real mode */ | ||
138 | mr r3,r4 /* get parameter */ | ||
139 | mfmsr r0 | ||
140 | ori r0,r0,MSR_IR|MSR_DR | ||
141 | xori r0,r0,MSR_IR|MSR_DR | ||
142 | mtspr SPRN_SRR1,r0 | ||
143 | rfid | ||
144 | |||
145 | |||
146 | .section ".toc","aw" | 66 | .section ".toc","aw" |
147 | PPC64_CACHES: | 67 | PPC64_CACHES: |
148 | .tc ppc64_caches[TC],ppc64_caches | 68 | .tc ppc64_caches[TC],ppc64_caches |
@@ -323,144 +243,6 @@ _GLOBAL(__flush_dcache_icache) | |||
323 | bdnz 1b | 243 | bdnz 1b |
324 | isync | 244 | isync |
325 | blr | 245 | blr |
326 | |||
327 | /* | ||
328 | * I/O string operations | ||
329 | * | ||
330 | * insb(port, buf, len) | ||
331 | * outsb(port, buf, len) | ||
332 | * insw(port, buf, len) | ||
333 | * outsw(port, buf, len) | ||
334 | * insl(port, buf, len) | ||
335 | * outsl(port, buf, len) | ||
336 | * insw_ns(port, buf, len) | ||
337 | * outsw_ns(port, buf, len) | ||
338 | * insl_ns(port, buf, len) | ||
339 | * outsl_ns(port, buf, len) | ||
340 | * | ||
341 | * The *_ns versions don't do byte-swapping. | ||
342 | */ | ||
343 | _GLOBAL(_insb) | ||
344 | cmpwi 0,r5,0 | ||
345 | mtctr r5 | ||
346 | subi r4,r4,1 | ||
347 | blelr- | ||
348 | 00: lbz r5,0(r3) | ||
349 | eieio | ||
350 | stbu r5,1(r4) | ||
351 | bdnz 00b | ||
352 | twi 0,r5,0 | ||
353 | isync | ||
354 | blr | ||
355 | |||
356 | _GLOBAL(_outsb) | ||
357 | cmpwi 0,r5,0 | ||
358 | mtctr r5 | ||
359 | subi r4,r4,1 | ||
360 | blelr- | ||
361 | 00: lbzu r5,1(r4) | ||
362 | stb r5,0(r3) | ||
363 | bdnz 00b | ||
364 | sync | ||
365 | blr | ||
366 | |||
367 | _GLOBAL(_insw) | ||
368 | cmpwi 0,r5,0 | ||
369 | mtctr r5 | ||
370 | subi r4,r4,2 | ||
371 | blelr- | ||
372 | 00: lhbrx r5,0,r3 | ||
373 | eieio | ||
374 | sthu r5,2(r4) | ||
375 | bdnz 00b | ||
376 | twi 0,r5,0 | ||
377 | isync | ||
378 | blr | ||
379 | |||
380 | _GLOBAL(_outsw) | ||
381 | cmpwi 0,r5,0 | ||
382 | mtctr r5 | ||
383 | subi r4,r4,2 | ||
384 | blelr- | ||
385 | 00: lhzu r5,2(r4) | ||
386 | sthbrx r5,0,r3 | ||
387 | bdnz 00b | ||
388 | sync | ||
389 | blr | ||
390 | |||
391 | _GLOBAL(_insl) | ||
392 | cmpwi 0,r5,0 | ||
393 | mtctr r5 | ||
394 | subi r4,r4,4 | ||
395 | blelr- | ||
396 | 00: lwbrx r5,0,r3 | ||
397 | eieio | ||
398 | stwu r5,4(r4) | ||
399 | bdnz 00b | ||
400 | twi 0,r5,0 | ||
401 | isync | ||
402 | blr | ||
403 | |||
404 | _GLOBAL(_outsl) | ||
405 | cmpwi 0,r5,0 | ||
406 | mtctr r5 | ||
407 | subi r4,r4,4 | ||
408 | blelr- | ||
409 | 00: lwzu r5,4(r4) | ||
410 | stwbrx r5,0,r3 | ||
411 | bdnz 00b | ||
412 | sync | ||
413 | blr | ||
414 | |||
415 | /* _GLOBAL(ide_insw) now in drivers/ide/ide-iops.c */ | ||
416 | _GLOBAL(_insw_ns) | ||
417 | cmpwi 0,r5,0 | ||
418 | mtctr r5 | ||
419 | subi r4,r4,2 | ||
420 | blelr- | ||
421 | 00: lhz r5,0(r3) | ||
422 | eieio | ||
423 | sthu r5,2(r4) | ||
424 | bdnz 00b | ||
425 | twi 0,r5,0 | ||
426 | isync | ||
427 | blr | ||
428 | |||
429 | /* _GLOBAL(ide_outsw) now in drivers/ide/ide-iops.c */ | ||
430 | _GLOBAL(_outsw_ns) | ||
431 | cmpwi 0,r5,0 | ||
432 | mtctr r5 | ||
433 | subi r4,r4,2 | ||
434 | blelr- | ||
435 | 00: lhzu r5,2(r4) | ||
436 | sth r5,0(r3) | ||
437 | bdnz 00b | ||
438 | sync | ||
439 | blr | ||
440 | |||
441 | _GLOBAL(_insl_ns) | ||
442 | cmpwi 0,r5,0 | ||
443 | mtctr r5 | ||
444 | subi r4,r4,4 | ||
445 | blelr- | ||
446 | 00: lwz r5,0(r3) | ||
447 | eieio | ||
448 | stwu r5,4(r4) | ||
449 | bdnz 00b | ||
450 | twi 0,r5,0 | ||
451 | isync | ||
452 | blr | ||
453 | |||
454 | _GLOBAL(_outsl_ns) | ||
455 | cmpwi 0,r5,0 | ||
456 | mtctr r5 | ||
457 | subi r4,r4,4 | ||
458 | blelr- | ||
459 | 00: lwzu r5,4(r4) | ||
460 | stw r5,0(r3) | ||
461 | bdnz 00b | ||
462 | sync | ||
463 | blr | ||
464 | 246 | ||
465 | /* | 247 | /* |
466 | * identify_cpu and calls setup_cpu | 248 | * identify_cpu and calls setup_cpu |
@@ -605,6 +387,7 @@ _GLOBAL(real_writeb) | |||
605 | blr | 387 | blr |
606 | #endif /* defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE) */ | 388 | #endif /* defined(CONFIG_PPC_PMAC) || defined(CONFIG_PPC_MAPLE) */ |
607 | 389 | ||
390 | #ifdef CONFIG_CPU_FREQ_PMAC64 | ||
608 | /* | 391 | /* |
609 | * SCOM access functions for 970 (FX only for now) | 392 | * SCOM access functions for 970 (FX only for now) |
610 | * | 393 | * |
@@ -673,6 +456,7 @@ _GLOBAL(scom970_write) | |||
673 | /* restore interrupts */ | 456 | /* restore interrupts */ |
674 | mtmsrd r5,1 | 457 | mtmsrd r5,1 |
675 | blr | 458 | blr |
459 | #endif /* CONFIG_CPU_FREQ_PMAC64 */ | ||
676 | 460 | ||
677 | 461 | ||
678 | /* | 462 | /* |
diff --git a/arch/powerpc/kernel/of_device.c b/arch/powerpc/kernel/of_device.c index 9feeeef5a875..3262b73a3a68 100644 --- a/arch/powerpc/kernel/of_device.c +++ b/arch/powerpc/kernel/of_device.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/string.h> | 1 | #include <linux/string.h> |
3 | #include <linux/kernel.h> | 2 | #include <linux/kernel.h> |
4 | #include <linux/init.h> | 3 | #include <linux/init.h> |
diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c index f505a8827e3e..c68741fed14b 100644 --- a/arch/powerpc/kernel/paca.c +++ b/arch/powerpc/kernel/paca.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * 2 of the License, or (at your option) any later version. | 7 | * 2 of the License, or (at your option) any later version. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/types.h> | 10 | #include <linux/types.h> |
12 | #include <linux/threads.h> | 11 | #include <linux/threads.h> |
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
@@ -16,7 +15,6 @@ | |||
16 | #include <asm/ptrace.h> | 15 | #include <asm/ptrace.h> |
17 | #include <asm/page.h> | 16 | #include <asm/page.h> |
18 | #include <asm/lppaca.h> | 17 | #include <asm/lppaca.h> |
19 | #include <asm/iseries/it_lp_queue.h> | ||
20 | #include <asm/iseries/it_lp_reg_save.h> | 18 | #include <asm/iseries/it_lp_reg_save.h> |
21 | #include <asm/paca.h> | 19 | #include <asm/paca.h> |
22 | 20 | ||
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c index b5431ccf1147..1333335c474e 100644 --- a/arch/powerpc/kernel/pci_32.c +++ b/arch/powerpc/kernel/pci_32.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Common pmac/prep/chrp pci routines. -- Cort | 2 | * Common pmac/prep/chrp pci routines. -- Cort |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
7 | #include <linux/pci.h> | 6 | #include <linux/pci.h> |
8 | #include <linux/delay.h> | 7 | #include <linux/delay.h> |
@@ -99,7 +98,7 @@ pcibios_fixup_resources(struct pci_dev *dev) | |||
99 | if (!res->flags) | 98 | if (!res->flags) |
100 | continue; | 99 | continue; |
101 | if (res->end == 0xffffffff) { | 100 | if (res->end == 0xffffffff) { |
102 | DBG("PCI:%s Resource %d [%08lx-%08lx] is unassigned\n", | 101 | DBG("PCI:%s Resource %d [%016llx-%016llx] is unassigned\n", |
103 | pci_name(dev), i, res->start, res->end); | 102 | pci_name(dev), i, res->start, res->end); |
104 | res->end -= res->start; | 103 | res->end -= res->start; |
105 | res->start = 0; | 104 | res->start = 0; |
@@ -117,7 +116,7 @@ pcibios_fixup_resources(struct pci_dev *dev) | |||
117 | res->start += offset; | 116 | res->start += offset; |
118 | res->end += offset; | 117 | res->end += offset; |
119 | #ifdef DEBUG | 118 | #ifdef DEBUG |
120 | printk("Fixup res %d (%lx) of dev %s: %lx -> %lx\n", | 119 | printk("Fixup res %d (%lx) of dev %s: %llx -> %llx\n", |
121 | i, res->flags, pci_name(dev), | 120 | i, res->flags, pci_name(dev), |
122 | res->start - offset, res->start); | 121 | res->start - offset, res->start); |
123 | #endif | 122 | #endif |
@@ -173,18 +172,18 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); | |||
173 | * but we want to try to avoid allocating at 0x2900-0x2bff | 172 | * but we want to try to avoid allocating at 0x2900-0x2bff |
174 | * which might have be mirrored at 0x0100-0x03ff.. | 173 | * which might have be mirrored at 0x0100-0x03ff.. |
175 | */ | 174 | */ |
176 | void pcibios_align_resource(void *data, struct resource *res, unsigned long size, | 175 | void pcibios_align_resource(void *data, struct resource *res, |
177 | unsigned long align) | 176 | resource_size_t size, resource_size_t align) |
178 | { | 177 | { |
179 | struct pci_dev *dev = data; | 178 | struct pci_dev *dev = data; |
180 | 179 | ||
181 | if (res->flags & IORESOURCE_IO) { | 180 | if (res->flags & IORESOURCE_IO) { |
182 | unsigned long start = res->start; | 181 | resource_size_t start = res->start; |
183 | 182 | ||
184 | if (size > 0x100) { | 183 | if (size > 0x100) { |
185 | printk(KERN_ERR "PCI: I/O Region %s/%d too large" | 184 | printk(KERN_ERR "PCI: I/O Region %s/%d too large" |
186 | " (%ld bytes)\n", pci_name(dev), | 185 | " (%lld bytes)\n", pci_name(dev), |
187 | dev->resource - res, size); | 186 | dev->resource - res, (unsigned long long)size); |
188 | } | 187 | } |
189 | 188 | ||
190 | if (start & 0x300) { | 189 | if (start & 0x300) { |
@@ -255,8 +254,8 @@ pcibios_allocate_bus_resources(struct list_head *bus_list) | |||
255 | } | 254 | } |
256 | } | 255 | } |
257 | 256 | ||
258 | DBG("PCI: bridge rsrc %lx..%lx (%lx), parent %p\n", | 257 | DBG("PCI: bridge rsrc %llx..%llx (%lx), parent %p\n", |
259 | res->start, res->end, res->flags, pr); | 258 | res->start, res->end, res->flags, pr); |
260 | if (pr) { | 259 | if (pr) { |
261 | if (request_resource(pr, res) == 0) | 260 | if (request_resource(pr, res) == 0) |
262 | continue; | 261 | continue; |
@@ -306,7 +305,7 @@ reparent_resources(struct resource *parent, struct resource *res) | |||
306 | *pp = NULL; | 305 | *pp = NULL; |
307 | for (p = res->child; p != NULL; p = p->sibling) { | 306 | for (p = res->child; p != NULL; p = p->sibling) { |
308 | p->parent = res; | 307 | p->parent = res; |
309 | DBG(KERN_INFO "PCI: reparented %s [%lx..%lx] under %s\n", | 308 | DBG(KERN_INFO "PCI: reparented %s [%llx..%llx] under %s\n", |
310 | p->name, p->start, p->end, res->name); | 309 | p->name, p->start, p->end, res->name); |
311 | } | 310 | } |
312 | return 0; | 311 | return 0; |
@@ -362,13 +361,14 @@ pci_relocate_bridge_resource(struct pci_bus *bus, int i) | |||
362 | try = conflict->start - 1; | 361 | try = conflict->start - 1; |
363 | } | 362 | } |
364 | if (request_resource(pr, res)) { | 363 | if (request_resource(pr, res)) { |
365 | DBG(KERN_ERR "PCI: huh? couldn't move to %lx..%lx\n", | 364 | DBG(KERN_ERR "PCI: huh? couldn't move to %llx..%llx\n", |
366 | res->start, res->end); | 365 | res->start, res->end); |
367 | return -1; /* "can't happen" */ | 366 | return -1; /* "can't happen" */ |
368 | } | 367 | } |
369 | update_bridge_base(bus, i); | 368 | update_bridge_base(bus, i); |
370 | printk(KERN_INFO "PCI: bridge %d resource %d moved to %lx..%lx\n", | 369 | printk(KERN_INFO "PCI: bridge %d resource %d moved to %llx..%llx\n", |
371 | bus->number, i, res->start, res->end); | 370 | bus->number, i, (unsigned long long)res->start, |
371 | (unsigned long long)res->end); | ||
372 | return 0; | 372 | return 0; |
373 | } | 373 | } |
374 | 374 | ||
@@ -479,14 +479,14 @@ static inline void alloc_resource(struct pci_dev *dev, int idx) | |||
479 | { | 479 | { |
480 | struct resource *pr, *r = &dev->resource[idx]; | 480 | struct resource *pr, *r = &dev->resource[idx]; |
481 | 481 | ||
482 | DBG("PCI:%s: Resource %d: %08lx-%08lx (f=%lx)\n", | 482 | DBG("PCI:%s: Resource %d: %016llx-%016llx (f=%lx)\n", |
483 | pci_name(dev), idx, r->start, r->end, r->flags); | 483 | pci_name(dev), idx, r->start, r->end, r->flags); |
484 | pr = pci_find_parent_resource(dev, r); | 484 | pr = pci_find_parent_resource(dev, r); |
485 | if (!pr || request_resource(pr, r) < 0) { | 485 | if (!pr || request_resource(pr, r) < 0) { |
486 | printk(KERN_ERR "PCI: Cannot allocate resource region %d" | 486 | printk(KERN_ERR "PCI: Cannot allocate resource region %d" |
487 | " of device %s\n", idx, pci_name(dev)); | 487 | " of device %s\n", idx, pci_name(dev)); |
488 | if (pr) | 488 | if (pr) |
489 | DBG("PCI: parent is %p: %08lx-%08lx (f=%lx)\n", | 489 | DBG("PCI: parent is %p: %016llx-%016llx (f=%lx)\n", |
490 | pr, pr->start, pr->end, pr->flags); | 490 | pr, pr->start, pr->end, pr->flags); |
491 | /* We'll assign a new address later */ | 491 | /* We'll assign a new address later */ |
492 | r->flags |= IORESOURCE_UNSET; | 492 | r->flags |= IORESOURCE_UNSET; |
@@ -956,7 +956,7 @@ pci_process_bridge_OF_ranges(struct pci_controller *hose, | |||
956 | res = &hose->io_resource; | 956 | res = &hose->io_resource; |
957 | res->flags = IORESOURCE_IO; | 957 | res->flags = IORESOURCE_IO; |
958 | res->start = ranges[2]; | 958 | res->start = ranges[2]; |
959 | DBG("PCI: IO 0x%lx -> 0x%lx\n", | 959 | DBG("PCI: IO 0x%llx -> 0x%llx\n", |
960 | res->start, res->start + size - 1); | 960 | res->start, res->start + size - 1); |
961 | break; | 961 | break; |
962 | case 2: /* memory space */ | 962 | case 2: /* memory space */ |
@@ -978,7 +978,7 @@ pci_process_bridge_OF_ranges(struct pci_controller *hose, | |||
978 | if(ranges[0] & 0x40000000) | 978 | if(ranges[0] & 0x40000000) |
979 | res->flags |= IORESOURCE_PREFETCH; | 979 | res->flags |= IORESOURCE_PREFETCH; |
980 | res->start = ranges[na+2]; | 980 | res->start = ranges[na+2]; |
981 | DBG("PCI: MEM[%d] 0x%lx -> 0x%lx\n", memno, | 981 | DBG("PCI: MEM[%d] 0x%llx -> 0x%llx\n", memno, |
982 | res->start, res->start + size - 1); | 982 | res->start, res->start + size - 1); |
983 | } | 983 | } |
984 | break; | 984 | break; |
@@ -1074,7 +1074,7 @@ do_update_p2p_io_resource(struct pci_bus *bus, int enable_vga) | |||
1074 | DBG("Remapping Bus %d, bridge: %s\n", bus->number, pci_name(bridge)); | 1074 | DBG("Remapping Bus %d, bridge: %s\n", bus->number, pci_name(bridge)); |
1075 | res.start -= ((unsigned long) hose->io_base_virt - isa_io_base); | 1075 | res.start -= ((unsigned long) hose->io_base_virt - isa_io_base); |
1076 | res.end -= ((unsigned long) hose->io_base_virt - isa_io_base); | 1076 | res.end -= ((unsigned long) hose->io_base_virt - isa_io_base); |
1077 | DBG(" IO window: %08lx-%08lx\n", res.start, res.end); | 1077 | DBG(" IO window: %016llx-%016llx\n", res.start, res.end); |
1078 | 1078 | ||
1079 | /* Set up the top and bottom of the PCI I/O segment for this bus. */ | 1079 | /* Set up the top and bottom of the PCI I/O segment for this bus. */ |
1080 | pci_read_config_dword(bridge, PCI_IO_BASE, &l); | 1080 | pci_read_config_dword(bridge, PCI_IO_BASE, &l); |
@@ -1223,8 +1223,8 @@ do_fixup_p2p_level(struct pci_bus *bus) | |||
1223 | continue; | 1223 | continue; |
1224 | if ((r->flags & IORESOURCE_IO) == 0) | 1224 | if ((r->flags & IORESOURCE_IO) == 0) |
1225 | continue; | 1225 | continue; |
1226 | DBG("Trying to allocate from %08lx, size %08lx from parent" | 1226 | DBG("Trying to allocate from %016llx, size %016llx from parent" |
1227 | " res %d: %08lx -> %08lx\n", | 1227 | " res %d: %016llx -> %016llx\n", |
1228 | res->start, res->end, i, r->start, r->end); | 1228 | res->start, res->end, i, r->start, r->end); |
1229 | 1229 | ||
1230 | if (allocate_resource(r, res, res->end + 1, res->start, max, | 1230 | if (allocate_resource(r, res, res->end + 1, res->start, max, |
@@ -1574,8 +1574,8 @@ static pgprot_t __pci_mmap_set_pgprot(struct pci_dev *dev, struct resource *rp, | |||
1574 | else | 1574 | else |
1575 | prot |= _PAGE_GUARDED; | 1575 | prot |= _PAGE_GUARDED; |
1576 | 1576 | ||
1577 | printk("PCI map for %s:%lx, prot: %lx\n", pci_name(dev), rp->start, | 1577 | printk("PCI map for %s:%llx, prot: %lx\n", pci_name(dev), |
1578 | prot); | 1578 | (unsigned long long)rp->start, prot); |
1579 | 1579 | ||
1580 | return __pgprot(prot); | 1580 | return __pgprot(prot); |
1581 | } | 1581 | } |
@@ -1755,7 +1755,7 @@ long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn) | |||
1755 | 1755 | ||
1756 | void pci_resource_to_user(const struct pci_dev *dev, int bar, | 1756 | void pci_resource_to_user(const struct pci_dev *dev, int bar, |
1757 | const struct resource *rsrc, | 1757 | const struct resource *rsrc, |
1758 | u64 *start, u64 *end) | 1758 | resource_size_t *start, resource_size_t *end) |
1759 | { | 1759 | { |
1760 | struct pci_controller *hose = pci_bus_to_hose(dev->bus->number); | 1760 | struct pci_controller *hose = pci_bus_to_hose(dev->bus->number); |
1761 | unsigned long offset = 0; | 1761 | unsigned long offset = 0; |
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c index 247937dd8b73..bea8451fb57b 100644 --- a/arch/powerpc/kernel/pci_64.c +++ b/arch/powerpc/kernel/pci_64.c | |||
@@ -13,7 +13,6 @@ | |||
13 | 13 | ||
14 | #undef DEBUG | 14 | #undef DEBUG |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/pci.h> | 17 | #include <linux/pci.h> |
19 | #include <linux/string.h> | 18 | #include <linux/string.h> |
@@ -138,11 +137,11 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); | |||
138 | * which might have be mirrored at 0x0100-0x03ff.. | 137 | * which might have be mirrored at 0x0100-0x03ff.. |
139 | */ | 138 | */ |
140 | void pcibios_align_resource(void *data, struct resource *res, | 139 | void pcibios_align_resource(void *data, struct resource *res, |
141 | unsigned long size, unsigned long align) | 140 | resource_size_t size, resource_size_t align) |
142 | { | 141 | { |
143 | struct pci_dev *dev = data; | 142 | struct pci_dev *dev = data; |
144 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | 143 | struct pci_controller *hose = pci_bus_to_host(dev->bus); |
145 | unsigned long start = res->start; | 144 | resource_size_t start = res->start; |
146 | unsigned long alignto; | 145 | unsigned long alignto; |
147 | 146 | ||
148 | if (res->flags & IORESOURCE_IO) { | 147 | if (res->flags & IORESOURCE_IO) { |
diff --git a/arch/powerpc/kernel/perfmon_fsl_booke.c b/arch/powerpc/kernel/perfmon_fsl_booke.c index 32455dfcc36b..bdc3977a7b06 100644 --- a/arch/powerpc/kernel/perfmon_fsl_booke.c +++ b/arch/powerpc/kernel/perfmon_fsl_booke.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <linux/user.h> | 21 | #include <linux/user.h> |
22 | #include <linux/a.out.h> | 22 | #include <linux/a.out.h> |
23 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
24 | #include <linux/config.h> | ||
25 | #include <linux/init.h> | 24 | #include <linux/init.h> |
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/prctl.h> | 26 | #include <linux/prctl.h> |
diff --git a/arch/powerpc/kernel/pmc.c b/arch/powerpc/kernel/pmc.c index e6fb194fe537..a0a2efadeabf 100644 --- a/arch/powerpc/kernel/pmc.c +++ b/arch/powerpc/kernel/pmc.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * 2 of the License, or (at your option) any later version. | 12 | * 2 of the License, or (at your option) any later version. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
17 | #include <linux/spinlock.h> | 16 | #include <linux/spinlock.h> |
18 | #include <linux/module.h> | 17 | #include <linux/module.h> |
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c index 4b052ae5dc34..e3b80f71748e 100644 --- a/arch/powerpc/kernel/ppc_ksyms.c +++ b/arch/powerpc/kernel/ppc_ksyms.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/threads.h> | 2 | #include <linux/threads.h> |
4 | #include <linux/smp.h> | 3 | #include <linux/smp.h> |
diff --git a/arch/powerpc/kernel/proc_ppc64.c b/arch/powerpc/kernel/proc_ppc64.c index 2ab8f2be911e..f598cb519539 100644 --- a/arch/powerpc/kernel/proc_ppc64.c +++ b/arch/powerpc/kernel/proc_ppc64.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
22 | #include <linux/proc_fs.h> | 21 | #include <linux/proc_fs.h> |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index e4732459c485..a127a1e3c097 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * 2 of the License, or (at your option) any later version. | 14 | * 2 of the License, or (at your option) any later version. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index 483455c5bb02..4c524cb52184 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #undef DEBUG | 16 | #undef DEBUG |
17 | 17 | ||
18 | #include <stdarg.h> | 18 | #include <stdarg.h> |
19 | #include <linux/config.h> | ||
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/string.h> | 20 | #include <linux/string.h> |
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
@@ -30,6 +29,7 @@ | |||
30 | #include <linux/bitops.h> | 29 | #include <linux/bitops.h> |
31 | #include <linux/module.h> | 30 | #include <linux/module.h> |
32 | #include <linux/kexec.h> | 31 | #include <linux/kexec.h> |
32 | #include <linux/debugfs.h> | ||
33 | 33 | ||
34 | #include <asm/prom.h> | 34 | #include <asm/prom.h> |
35 | #include <asm/rtas.h> | 35 | #include <asm/rtas.h> |
@@ -952,6 +952,7 @@ static struct ibm_pa_feature { | |||
952 | /* put this back once we know how to test if firmware does 64k IO */ | 952 | /* put this back once we know how to test if firmware does 64k IO */ |
953 | {CPU_FTR_CI_LARGE_PAGE, 0, 1, 2, 0}, | 953 | {CPU_FTR_CI_LARGE_PAGE, 0, 1, 2, 0}, |
954 | #endif | 954 | #endif |
955 | {CPU_FTR_REAL_LE, PPC_FEATURE_TRUE_LE, 5, 0, 0}, | ||
955 | }; | 956 | }; |
956 | 957 | ||
957 | static void __init check_cpu_pa_features(unsigned long node) | 958 | static void __init check_cpu_pa_features(unsigned long node) |
@@ -1124,24 +1125,6 @@ static int __init early_init_dt_scan_chosen(unsigned long node, | |||
1124 | tce_alloc_end = *lprop; | 1125 | tce_alloc_end = *lprop; |
1125 | #endif | 1126 | #endif |
1126 | 1127 | ||
1127 | #ifdef CONFIG_PPC_RTAS | ||
1128 | /* To help early debugging via the front panel, we retrieve a minimal | ||
1129 | * set of RTAS infos now if available | ||
1130 | */ | ||
1131 | { | ||
1132 | u64 *basep, *entryp, *sizep; | ||
1133 | |||
1134 | basep = of_get_flat_dt_prop(node, "linux,rtas-base", NULL); | ||
1135 | entryp = of_get_flat_dt_prop(node, "linux,rtas-entry", NULL); | ||
1136 | sizep = of_get_flat_dt_prop(node, "linux,rtas-size", NULL); | ||
1137 | if (basep && entryp && sizep) { | ||
1138 | rtas.base = *basep; | ||
1139 | rtas.entry = *entryp; | ||
1140 | rtas.size = *sizep; | ||
1141 | } | ||
1142 | } | ||
1143 | #endif /* CONFIG_PPC_RTAS */ | ||
1144 | |||
1145 | #ifdef CONFIG_KEXEC | 1128 | #ifdef CONFIG_KEXEC |
1146 | lprop = (u64*)of_get_flat_dt_prop(node, "linux,crashkernel-base", NULL); | 1129 | lprop = (u64*)of_get_flat_dt_prop(node, "linux,crashkernel-base", NULL); |
1147 | if (lprop) | 1130 | if (lprop) |
@@ -1326,6 +1309,11 @@ void __init early_init_devtree(void *params) | |||
1326 | /* Setup flat device-tree pointer */ | 1309 | /* Setup flat device-tree pointer */ |
1327 | initial_boot_params = params; | 1310 | initial_boot_params = params; |
1328 | 1311 | ||
1312 | #ifdef CONFIG_PPC_RTAS | ||
1313 | /* Some machines might need RTAS info for debugging, grab it now. */ | ||
1314 | of_scan_flat_dt(early_init_dt_scan_rtas, NULL); | ||
1315 | #endif | ||
1316 | |||
1329 | /* Retrieve various informations from the /chosen node of the | 1317 | /* Retrieve various informations from the /chosen node of the |
1330 | * device-tree, including the platform type, initrd location and | 1318 | * device-tree, including the platform type, initrd location and |
1331 | * size, TCE reserve, and more ... | 1319 | * size, TCE reserve, and more ... |
@@ -2148,3 +2136,27 @@ struct device_node *of_get_cpu_node(int cpu, unsigned int *thread) | |||
2148 | } | 2136 | } |
2149 | return NULL; | 2137 | return NULL; |
2150 | } | 2138 | } |
2139 | |||
2140 | #ifdef DEBUG | ||
2141 | static struct debugfs_blob_wrapper flat_dt_blob; | ||
2142 | |||
2143 | static int __init export_flat_device_tree(void) | ||
2144 | { | ||
2145 | struct dentry *d; | ||
2146 | |||
2147 | d = debugfs_create_dir("powerpc", NULL); | ||
2148 | if (!d) | ||
2149 | return 1; | ||
2150 | |||
2151 | flat_dt_blob.data = initial_boot_params; | ||
2152 | flat_dt_blob.size = initial_boot_params->totalsize; | ||
2153 | |||
2154 | d = debugfs_create_blob("flat-device-tree", S_IFREG | S_IRUSR, | ||
2155 | d, &flat_dt_blob); | ||
2156 | if (!d) | ||
2157 | return 1; | ||
2158 | |||
2159 | return 0; | ||
2160 | } | ||
2161 | __initcall(export_flat_device_tree); | ||
2162 | #endif | ||
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index 8c28eb0cbdac..1e95a9f8cda1 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #undef DEBUG_PROM | 16 | #undef DEBUG_PROM |
17 | 17 | ||
18 | #include <stdarg.h> | 18 | #include <stdarg.h> |
19 | #include <linux/config.h> | ||
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/string.h> | 20 | #include <linux/string.h> |
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
@@ -988,7 +987,7 @@ static void reserve_mem(u64 base, u64 size) | |||
988 | } | 987 | } |
989 | 988 | ||
990 | /* | 989 | /* |
991 | * Initialize memory allocation mecanism, parse "memory" nodes and | 990 | * Initialize memory allocation mechanism, parse "memory" nodes and |
992 | * obtain that way the top of memory and RMO to setup out local allocator | 991 | * obtain that way the top of memory and RMO to setup out local allocator |
993 | */ | 992 | */ |
994 | static void __init prom_init_mem(void) | 993 | static void __init prom_init_mem(void) |
diff --git a/arch/powerpc/kernel/ptrace-common.h b/arch/powerpc/kernel/ptrace-common.h index c42a860c8d25..8797ae737a7b 100644 --- a/arch/powerpc/kernel/ptrace-common.h +++ b/arch/powerpc/kernel/ptrace-common.h | |||
@@ -10,7 +10,6 @@ | |||
10 | #ifndef _PPC64_PTRACE_COMMON_H | 10 | #ifndef _PPC64_PTRACE_COMMON_H |
11 | #define _PPC64_PTRACE_COMMON_H | 11 | #define _PPC64_PTRACE_COMMON_H |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/system.h> | 13 | #include <asm/system.h> |
15 | 14 | ||
16 | /* | 15 | /* |
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index 5563e2e7d89c..dea75d73f983 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * this archive for more details. | 15 | * this archive for more details. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
21 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
diff --git a/arch/powerpc/kernel/ptrace32.c b/arch/powerpc/kernel/ptrace32.c index 826ee3d056de..9b9a230349bc 100644 --- a/arch/powerpc/kernel/ptrace32.c +++ b/arch/powerpc/kernel/ptrace32.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * this archive for more details. | 17 | * this archive for more details. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/sched.h> | 21 | #include <linux/sched.h> |
23 | #include <linux/mm.h> | 22 | #include <linux/mm.h> |
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c index 17dc79198515..4a4cb5598402 100644 --- a/arch/powerpc/kernel/rtas.c +++ b/arch/powerpc/kernel/rtas.c | |||
@@ -38,16 +38,19 @@ | |||
38 | struct rtas_t rtas = { | 38 | struct rtas_t rtas = { |
39 | .lock = SPIN_LOCK_UNLOCKED | 39 | .lock = SPIN_LOCK_UNLOCKED |
40 | }; | 40 | }; |
41 | EXPORT_SYMBOL(rtas); | ||
41 | 42 | ||
42 | struct rtas_suspend_me_data { | 43 | struct rtas_suspend_me_data { |
43 | long waiting; | 44 | long waiting; |
44 | struct rtas_args *args; | 45 | struct rtas_args *args; |
45 | }; | 46 | }; |
46 | 47 | ||
47 | EXPORT_SYMBOL(rtas); | ||
48 | |||
49 | DEFINE_SPINLOCK(rtas_data_buf_lock); | 48 | DEFINE_SPINLOCK(rtas_data_buf_lock); |
49 | EXPORT_SYMBOL(rtas_data_buf_lock); | ||
50 | |||
50 | char rtas_data_buf[RTAS_DATA_BUF_SIZE] __cacheline_aligned; | 51 | char rtas_data_buf[RTAS_DATA_BUF_SIZE] __cacheline_aligned; |
52 | EXPORT_SYMBOL(rtas_data_buf); | ||
53 | |||
51 | unsigned long rtas_rmo_buf; | 54 | unsigned long rtas_rmo_buf; |
52 | 55 | ||
53 | /* | 56 | /* |
@@ -106,11 +109,71 @@ static void call_rtas_display_status_delay(char c) | |||
106 | } | 109 | } |
107 | } | 110 | } |
108 | 111 | ||
109 | void __init udbg_init_rtas(void) | 112 | void __init udbg_init_rtas_panel(void) |
110 | { | 113 | { |
111 | udbg_putc = call_rtas_display_status_delay; | 114 | udbg_putc = call_rtas_display_status_delay; |
112 | } | 115 | } |
113 | 116 | ||
117 | #ifdef CONFIG_UDBG_RTAS_CONSOLE | ||
118 | |||
119 | /* If you think you're dying before early_init_dt_scan_rtas() does its | ||
120 | * work, you can hard code the token values for your firmware here and | ||
121 | * hardcode rtas.base/entry etc. | ||
122 | */ | ||
123 | static unsigned int rtas_putchar_token = RTAS_UNKNOWN_SERVICE; | ||
124 | static unsigned int rtas_getchar_token = RTAS_UNKNOWN_SERVICE; | ||
125 | |||
126 | static void udbg_rtascon_putc(char c) | ||
127 | { | ||
128 | int tries; | ||
129 | |||
130 | if (!rtas.base) | ||
131 | return; | ||
132 | |||
133 | /* Add CRs before LFs */ | ||
134 | if (c == '\n') | ||
135 | udbg_rtascon_putc('\r'); | ||
136 | |||
137 | /* if there is more than one character to be displayed, wait a bit */ | ||
138 | for (tries = 0; tries < 16; tries++) { | ||
139 | if (rtas_call(rtas_putchar_token, 1, 1, NULL, c) == 0) | ||
140 | break; | ||
141 | udelay(1000); | ||
142 | } | ||
143 | } | ||
144 | |||
145 | static int udbg_rtascon_getc_poll(void) | ||
146 | { | ||
147 | int c; | ||
148 | |||
149 | if (!rtas.base) | ||
150 | return -1; | ||
151 | |||
152 | if (rtas_call(rtas_getchar_token, 0, 2, &c)) | ||
153 | return -1; | ||
154 | |||
155 | return c; | ||
156 | } | ||
157 | |||
158 | static int udbg_rtascon_getc(void) | ||
159 | { | ||
160 | int c; | ||
161 | |||
162 | while ((c = udbg_rtascon_getc_poll()) == -1) | ||
163 | ; | ||
164 | |||
165 | return c; | ||
166 | } | ||
167 | |||
168 | |||
169 | void __init udbg_init_rtas_console(void) | ||
170 | { | ||
171 | udbg_putc = udbg_rtascon_putc; | ||
172 | udbg_getc = udbg_rtascon_getc; | ||
173 | udbg_getc_poll = udbg_rtascon_getc_poll; | ||
174 | } | ||
175 | #endif /* CONFIG_UDBG_RTAS_CONSOLE */ | ||
176 | |||
114 | void rtas_progress(char *s, unsigned short hex) | 177 | void rtas_progress(char *s, unsigned short hex) |
115 | { | 178 | { |
116 | struct device_node *root; | 179 | struct device_node *root; |
@@ -236,6 +299,7 @@ int rtas_token(const char *service) | |||
236 | tokp = (int *) get_property(rtas.dev, service, NULL); | 299 | tokp = (int *) get_property(rtas.dev, service, NULL); |
237 | return tokp ? *tokp : RTAS_UNKNOWN_SERVICE; | 300 | return tokp ? *tokp : RTAS_UNKNOWN_SERVICE; |
238 | } | 301 | } |
302 | EXPORT_SYMBOL(rtas_token); | ||
239 | 303 | ||
240 | #ifdef CONFIG_RTAS_ERROR_LOGGING | 304 | #ifdef CONFIG_RTAS_ERROR_LOGGING |
241 | /* | 305 | /* |
@@ -328,7 +392,7 @@ int rtas_call(int token, int nargs, int nret, int *outputs, ...) | |||
328 | char *buff_copy = NULL; | 392 | char *buff_copy = NULL; |
329 | int ret; | 393 | int ret; |
330 | 394 | ||
331 | if (token == RTAS_UNKNOWN_SERVICE) | 395 | if (!rtas.entry || token == RTAS_UNKNOWN_SERVICE) |
332 | return -1; | 396 | return -1; |
333 | 397 | ||
334 | /* Gotta do something different here, use global lock for now... */ | 398 | /* Gotta do something different here, use global lock for now... */ |
@@ -369,6 +433,7 @@ int rtas_call(int token, int nargs, int nret, int *outputs, ...) | |||
369 | } | 433 | } |
370 | return ret; | 434 | return ret; |
371 | } | 435 | } |
436 | EXPORT_SYMBOL(rtas_call); | ||
372 | 437 | ||
373 | /* For RTAS_BUSY (-2), delay for 1 millisecond. For an extended busy status | 438 | /* For RTAS_BUSY (-2), delay for 1 millisecond. For an extended busy status |
374 | * code of 990n, perform the hinted delay of 10^n (last digit) milliseconds. | 439 | * code of 990n, perform the hinted delay of 10^n (last digit) milliseconds. |
@@ -388,6 +453,7 @@ unsigned int rtas_busy_delay_time(int status) | |||
388 | 453 | ||
389 | return ms; | 454 | return ms; |
390 | } | 455 | } |
456 | EXPORT_SYMBOL(rtas_busy_delay_time); | ||
391 | 457 | ||
392 | /* For an RTAS busy status code, perform the hinted delay. */ | 458 | /* For an RTAS busy status code, perform the hinted delay. */ |
393 | unsigned int rtas_busy_delay(int status) | 459 | unsigned int rtas_busy_delay(int status) |
@@ -401,6 +467,7 @@ unsigned int rtas_busy_delay(int status) | |||
401 | 467 | ||
402 | return ms; | 468 | return ms; |
403 | } | 469 | } |
470 | EXPORT_SYMBOL(rtas_busy_delay); | ||
404 | 471 | ||
405 | int rtas_error_rc(int rtas_rc) | 472 | int rtas_error_rc(int rtas_rc) |
406 | { | 473 | { |
@@ -446,6 +513,7 @@ int rtas_get_power_level(int powerdomain, int *level) | |||
446 | return rtas_error_rc(rc); | 513 | return rtas_error_rc(rc); |
447 | return rc; | 514 | return rc; |
448 | } | 515 | } |
516 | EXPORT_SYMBOL(rtas_get_power_level); | ||
449 | 517 | ||
450 | int rtas_set_power_level(int powerdomain, int level, int *setlevel) | 518 | int rtas_set_power_level(int powerdomain, int level, int *setlevel) |
451 | { | 519 | { |
@@ -463,6 +531,7 @@ int rtas_set_power_level(int powerdomain, int level, int *setlevel) | |||
463 | return rtas_error_rc(rc); | 531 | return rtas_error_rc(rc); |
464 | return rc; | 532 | return rc; |
465 | } | 533 | } |
534 | EXPORT_SYMBOL(rtas_set_power_level); | ||
466 | 535 | ||
467 | int rtas_get_sensor(int sensor, int index, int *state) | 536 | int rtas_get_sensor(int sensor, int index, int *state) |
468 | { | 537 | { |
@@ -480,6 +549,7 @@ int rtas_get_sensor(int sensor, int index, int *state) | |||
480 | return rtas_error_rc(rc); | 549 | return rtas_error_rc(rc); |
481 | return rc; | 550 | return rc; |
482 | } | 551 | } |
552 | EXPORT_SYMBOL(rtas_get_sensor); | ||
483 | 553 | ||
484 | int rtas_set_indicator(int indicator, int index, int new_value) | 554 | int rtas_set_indicator(int indicator, int index, int new_value) |
485 | { | 555 | { |
@@ -497,6 +567,7 @@ int rtas_set_indicator(int indicator, int index, int new_value) | |||
497 | return rtas_error_rc(rc); | 567 | return rtas_error_rc(rc); |
498 | return rc; | 568 | return rc; |
499 | } | 569 | } |
570 | EXPORT_SYMBOL(rtas_set_indicator); | ||
500 | 571 | ||
501 | void rtas_restart(char *cmd) | 572 | void rtas_restart(char *cmd) |
502 | { | 573 | { |
@@ -791,14 +862,34 @@ void __init rtas_initialize(void) | |||
791 | #endif | 862 | #endif |
792 | } | 863 | } |
793 | 864 | ||
865 | int __init early_init_dt_scan_rtas(unsigned long node, | ||
866 | const char *uname, int depth, void *data) | ||
867 | { | ||
868 | u32 *basep, *entryp, *sizep; | ||
794 | 869 | ||
795 | EXPORT_SYMBOL(rtas_token); | 870 | if (depth != 1 || strcmp(uname, "rtas") != 0) |
796 | EXPORT_SYMBOL(rtas_call); | 871 | return 0; |
797 | EXPORT_SYMBOL(rtas_data_buf); | 872 | |
798 | EXPORT_SYMBOL(rtas_data_buf_lock); | 873 | basep = of_get_flat_dt_prop(node, "linux,rtas-base", NULL); |
799 | EXPORT_SYMBOL(rtas_busy_delay_time); | 874 | entryp = of_get_flat_dt_prop(node, "linux,rtas-entry", NULL); |
800 | EXPORT_SYMBOL(rtas_busy_delay); | 875 | sizep = of_get_flat_dt_prop(node, "rtas-size", NULL); |
801 | EXPORT_SYMBOL(rtas_get_sensor); | 876 | |
802 | EXPORT_SYMBOL(rtas_get_power_level); | 877 | if (basep && entryp && sizep) { |
803 | EXPORT_SYMBOL(rtas_set_power_level); | 878 | rtas.base = *basep; |
804 | EXPORT_SYMBOL(rtas_set_indicator); | 879 | rtas.entry = *entryp; |
880 | rtas.size = *sizep; | ||
881 | } | ||
882 | |||
883 | #ifdef CONFIG_UDBG_RTAS_CONSOLE | ||
884 | basep = of_get_flat_dt_prop(node, "put-term-char", NULL); | ||
885 | if (basep) | ||
886 | rtas_putchar_token = *basep; | ||
887 | |||
888 | basep = of_get_flat_dt_prop(node, "get-term-char", NULL); | ||
889 | if (basep) | ||
890 | rtas_getchar_token = *basep; | ||
891 | #endif | ||
892 | |||
893 | /* break now */ | ||
894 | return 1; | ||
895 | } | ||
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c index bd328123af75..c6d7b98af7d5 100644 --- a/arch/powerpc/kernel/setup-common.c +++ b/arch/powerpc/kernel/setup-common.c | |||
@@ -12,7 +12,6 @@ | |||
12 | 12 | ||
13 | #undef DEBUG | 13 | #undef DEBUG |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/string.h> | 16 | #include <linux/string.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c index 0932a62a1c96..ba7cd50d820d 100644 --- a/arch/powerpc/kernel/setup_32.c +++ b/arch/powerpc/kernel/setup_32.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Common prep/pmac/chrp boot and setup code. | 2 | * Common prep/pmac/chrp boot and setup code. |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | 5 | #include <linux/module.h> |
7 | #include <linux/string.h> | 6 | #include <linux/string.h> |
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index 78f3a5fd43f6..ac7276c40685 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c | |||
@@ -12,7 +12,6 @@ | |||
12 | 12 | ||
13 | #undef DEBUG | 13 | #undef DEBUG |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/string.h> | 16 | #include <linux/string.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
@@ -149,6 +148,13 @@ early_param("smt-enabled", early_smt_enabled); | |||
149 | #define check_smt_enabled() | 148 | #define check_smt_enabled() |
150 | #endif /* CONFIG_SMP */ | 149 | #endif /* CONFIG_SMP */ |
151 | 150 | ||
151 | /* Put the paca pointer into r13 and SPRG3 */ | ||
152 | void __init setup_paca(int cpu) | ||
153 | { | ||
154 | local_paca = &paca[cpu]; | ||
155 | mtspr(SPRN_SPRG3, local_paca); | ||
156 | } | ||
157 | |||
152 | /* | 158 | /* |
153 | * Early initialization entry point. This is called by head.S | 159 | * Early initialization entry point. This is called by head.S |
154 | * with MMU translation disabled. We rely on the "feature" of | 160 | * with MMU translation disabled. We rely on the "feature" of |
@@ -170,6 +176,9 @@ early_param("smt-enabled", early_smt_enabled); | |||
170 | 176 | ||
171 | void __init early_setup(unsigned long dt_ptr) | 177 | void __init early_setup(unsigned long dt_ptr) |
172 | { | 178 | { |
179 | /* Assume we're on cpu 0 for now. Don't write to the paca yet! */ | ||
180 | setup_paca(0); | ||
181 | |||
173 | /* Enable early debugging if any specified (see udbg.h) */ | 182 | /* Enable early debugging if any specified (see udbg.h) */ |
174 | udbg_early_init(); | 183 | udbg_early_init(); |
175 | 184 | ||
@@ -183,7 +192,7 @@ void __init early_setup(unsigned long dt_ptr) | |||
183 | early_init_devtree(__va(dt_ptr)); | 192 | early_init_devtree(__va(dt_ptr)); |
184 | 193 | ||
185 | /* Now we know the logical id of our boot cpu, setup the paca. */ | 194 | /* Now we know the logical id of our boot cpu, setup the paca. */ |
186 | setup_boot_paca(); | 195 | setup_paca(boot_cpuid); |
187 | 196 | ||
188 | /* Fix up paca fields required for the boot cpu */ | 197 | /* Fix up paca fields required for the boot cpu */ |
189 | get_paca()->cpu_start = 1; | 198 | get_paca()->cpu_start = 1; |
@@ -350,19 +359,11 @@ void __init setup_system(void) | |||
350 | */ | 359 | */ |
351 | unflatten_device_tree(); | 360 | unflatten_device_tree(); |
352 | 361 | ||
353 | #ifdef CONFIG_KEXEC | ||
354 | kexec_setup(); /* requires unflattened device tree. */ | ||
355 | #endif | ||
356 | |||
357 | /* | 362 | /* |
358 | * Fill the ppc64_caches & systemcfg structures with informations | 363 | * Fill the ppc64_caches & systemcfg structures with informations |
359 | * retrieved from the device-tree. Need to be called before | 364 | * retrieved from the device-tree. Need to be called before |
360 | * finish_device_tree() since the later requires some of the | 365 | * finish_device_tree() since the later requires some of the |
361 | * informations filled up here to properly parse the interrupt | 366 | * informations filled up here to properly parse the interrupt tree. |
362 | * tree. | ||
363 | * It also sets up the cache line sizes which allows to call | ||
364 | * routines like flush_icache_range (used by the hash init | ||
365 | * later on). | ||
366 | */ | 367 | */ |
367 | initialize_cache_info(); | 368 | initialize_cache_info(); |
368 | 369 | ||
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c index d73b25e22fca..320353f0926f 100644 --- a/arch/powerpc/kernel/signal_32.c +++ b/arch/powerpc/kernel/signal_32.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * 2 of the License, or (at your option) any later version. | 17 | * 2 of the License, or (at your option) any later version. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
22 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
23 | #include <linux/smp.h> | 22 | #include <linux/smp.h> |
diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c index 6e75d7ab6d4d..f72e8e823d78 100644 --- a/arch/powerpc/kernel/signal_64.c +++ b/arch/powerpc/kernel/signal_64.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * 2 of the License, or (at your option) any later version. | 12 | * 2 of the License, or (at your option) any later version. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
17 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
18 | #include <linux/smp.h> | 17 | #include <linux/smp.h> |
diff --git a/arch/powerpc/kernel/smp-tbsync.c b/arch/powerpc/kernel/smp-tbsync.c index 9adef3bddad4..f19e2e0e61e7 100644 --- a/arch/powerpc/kernel/smp-tbsync.c +++ b/arch/powerpc/kernel/smp-tbsync.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
11 | #include <linux/smp.h> | 10 | #include <linux/smp.h> |
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index c5d179d4f818..46c56cfd1b2f 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c | |||
@@ -17,7 +17,6 @@ | |||
17 | 17 | ||
18 | #undef DEBUG | 18 | #undef DEBUG |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
diff --git a/arch/powerpc/kernel/swsusp_32.S b/arch/powerpc/kernel/swsusp_32.S index 69773cc1a85f..7369f9a6ad25 100644 --- a/arch/powerpc/kernel/swsusp_32.S +++ b/arch/powerpc/kernel/swsusp_32.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/threads.h> | 1 | #include <linux/threads.h> |
3 | #include <asm/processor.h> | 2 | #include <asm/processor.h> |
4 | #include <asm/page.h> | 3 | #include <asm/page.h> |
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c index ec274e688816..2e292863e982 100644 --- a/arch/powerpc/kernel/sys_ppc32.c +++ b/arch/powerpc/kernel/sys_ppc32.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * 2 of the License, or (at your option) any later version. | 14 | * 2 of the License, or (at your option) any later version. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
20 | #include <linux/fs.h> | 19 | #include <linux/fs.h> |
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c index 4662b580efa1..010435095550 100644 --- a/arch/powerpc/kernel/sysfs.c +++ b/arch/powerpc/kernel/sysfs.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/sysdev.h> | 1 | #include <linux/sysdev.h> |
3 | #include <linux/cpu.h> | 2 | #include <linux/cpu.h> |
4 | #include <linux/smp.h> | 3 | #include <linux/smp.h> |
diff --git a/arch/powerpc/kernel/systbl.S b/arch/powerpc/kernel/systbl.S index ee75ccf1a802..579de70e0b4d 100644 --- a/arch/powerpc/kernel/systbl.S +++ b/arch/powerpc/kernel/systbl.S | |||
@@ -14,7 +14,6 @@ | |||
14 | * 2 of the License, or (at your option) any later version. | 14 | * 2 of the License, or (at your option) any later version. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <asm/ppc_asm.h> | 17 | #include <asm/ppc_asm.h> |
19 | 18 | ||
20 | #ifdef CONFIG_PPC64 | 19 | #ifdef CONFIG_PPC64 |
diff --git a/arch/powerpc/kernel/tau_6xx.c b/arch/powerpc/kernel/tau_6xx.c index 26bd8ea35a4e..368a4934f7ee 100644 --- a/arch/powerpc/kernel/tau_6xx.c +++ b/arch/powerpc/kernel/tau_6xx.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * life in portables, and add a 'performance/watt' metric somewhere in /proc | 11 | * life in portables, and add a 'performance/watt' metric somewhere in /proc |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
16 | #include <linux/jiffies.h> | 15 | #include <linux/jiffies.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 7dd5dab789a1..774c0a3c5019 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -32,7 +32,6 @@ | |||
32 | * 2 of the License, or (at your option) any later version. | 32 | * 2 of the License, or (at your option) any later version. |
33 | */ | 33 | */ |
34 | 34 | ||
35 | #include <linux/config.h> | ||
36 | #include <linux/errno.h> | 35 | #include <linux/errno.h> |
37 | #include <linux/module.h> | 36 | #include <linux/module.h> |
38 | #include <linux/sched.h> | 37 | #include <linux/sched.h> |
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 52f5659534f4..3c668078e524 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * This file handles the architecture-dependent parts of hardware exceptions | 14 | * This file handles the architecture-dependent parts of hardware exceptions |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
@@ -52,9 +51,13 @@ | |||
52 | #include <asm/firmware.h> | 51 | #include <asm/firmware.h> |
53 | #include <asm/processor.h> | 52 | #include <asm/processor.h> |
54 | #endif | 53 | #endif |
54 | #include <asm/kexec.h> | ||
55 | 55 | ||
56 | #ifdef CONFIG_PPC64 /* XXX */ | 56 | #ifdef CONFIG_PPC64 /* XXX */ |
57 | #define _IO_BASE pci_io_base | 57 | #define _IO_BASE pci_io_base |
58 | #ifdef CONFIG_KEXEC | ||
59 | cpumask_t cpus_in_sr = CPU_MASK_NONE; | ||
60 | #endif | ||
58 | #endif | 61 | #endif |
59 | 62 | ||
60 | #ifdef CONFIG_DEBUGGER | 63 | #ifdef CONFIG_DEBUGGER |
@@ -97,7 +100,7 @@ static DEFINE_SPINLOCK(die_lock); | |||
97 | 100 | ||
98 | int die(const char *str, struct pt_regs *regs, long err) | 101 | int die(const char *str, struct pt_regs *regs, long err) |
99 | { | 102 | { |
100 | static int die_counter, crash_dump_start = 0; | 103 | static int die_counter; |
101 | 104 | ||
102 | if (debugger(regs)) | 105 | if (debugger(regs)) |
103 | return 1; | 106 | return 1; |
@@ -137,21 +140,12 @@ int die(const char *str, struct pt_regs *regs, long err) | |||
137 | print_modules(); | 140 | print_modules(); |
138 | show_regs(regs); | 141 | show_regs(regs); |
139 | bust_spinlocks(0); | 142 | bust_spinlocks(0); |
143 | spin_unlock_irq(&die_lock); | ||
140 | 144 | ||
141 | if (!crash_dump_start && kexec_should_crash(current)) { | 145 | if (kexec_should_crash(current) || |
142 | crash_dump_start = 1; | 146 | kexec_sr_activated(smp_processor_id())) |
143 | spin_unlock_irq(&die_lock); | ||
144 | crash_kexec(regs); | 147 | crash_kexec(regs); |
145 | /* NOTREACHED */ | 148 | crash_kexec_secondary(regs); |
146 | } | ||
147 | spin_unlock_irq(&die_lock); | ||
148 | if (crash_dump_start) | ||
149 | /* | ||
150 | * Only for soft-reset: Other CPUs will be responded to an IPI | ||
151 | * sent by first kexec CPU. | ||
152 | */ | ||
153 | for(;;) | ||
154 | ; | ||
155 | 149 | ||
156 | if (in_interrupt()) | 150 | if (in_interrupt()) |
157 | panic("Fatal exception in interrupt"); | 151 | panic("Fatal exception in interrupt"); |
@@ -215,6 +209,10 @@ void system_reset_exception(struct pt_regs *regs) | |||
215 | return; | 209 | return; |
216 | } | 210 | } |
217 | 211 | ||
212 | #ifdef CONFIG_KEXEC | ||
213 | cpu_set(smp_processor_id(), cpus_in_sr); | ||
214 | #endif | ||
215 | |||
218 | die("System Reset", regs, SIGABRT); | 216 | die("System Reset", regs, SIGABRT); |
219 | 217 | ||
220 | /* Must die if the interrupt is not recoverable */ | 218 | /* Must die if the interrupt is not recoverable */ |
diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c index 67d9fd9ae2b5..5730906b23d5 100644 --- a/arch/powerpc/kernel/udbg.c +++ b/arch/powerpc/kernel/udbg.c | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <stdarg.h> | 12 | #include <stdarg.h> |
13 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/console.h> | 15 | #include <linux/console.h> |
@@ -34,9 +33,12 @@ void __init udbg_early_init(void) | |||
34 | #elif defined(CONFIG_PPC_EARLY_DEBUG_G5) | 33 | #elif defined(CONFIG_PPC_EARLY_DEBUG_G5) |
35 | /* For use on Apple G5 machines */ | 34 | /* For use on Apple G5 machines */ |
36 | udbg_init_pmac_realmode(); | 35 | udbg_init_pmac_realmode(); |
37 | #elif defined(CONFIG_PPC_EARLY_DEBUG_RTAS) | 36 | #elif defined(CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL) |
38 | /* RTAS panel debug */ | 37 | /* RTAS panel debug */ |
39 | udbg_init_rtas(); | 38 | udbg_init_rtas_panel(); |
39 | #elif defined(CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE) | ||
40 | /* RTAS console debug */ | ||
41 | udbg_init_rtas_console(); | ||
40 | #elif defined(CONFIG_PPC_EARLY_DEBUG_MAPLE) | 42 | #elif defined(CONFIG_PPC_EARLY_DEBUG_MAPLE) |
41 | /* Maple real mode debug */ | 43 | /* Maple real mode debug */ |
42 | udbg_init_maple_realmode(); | 44 | udbg_init_maple_realmode(); |
diff --git a/arch/powerpc/kernel/udbg_16550.c b/arch/powerpc/kernel/udbg_16550.c index 5d29dcca523c..0835b4841dea 100644 --- a/arch/powerpc/kernel/udbg_16550.c +++ b/arch/powerpc/kernel/udbg_16550.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <asm/udbg.h> | 12 | #include <asm/udbg.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c index bc3e15be3087..1a7e19cdab39 100644 --- a/arch/powerpc/kernel/vdso.c +++ b/arch/powerpc/kernel/vdso.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * 2 of the License, or (at your option) any later version. | 8 | * 2 of the License, or (at your option) any later version. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
diff --git a/arch/powerpc/kernel/vdso32/cacheflush.S b/arch/powerpc/kernel/vdso32/cacheflush.S index 09629aea3e47..9cb319992c38 100644 --- a/arch/powerpc/kernel/vdso32/cacheflush.S +++ b/arch/powerpc/kernel/vdso32/cacheflush.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * as published by the Free Software Foundation; either version | 9 | * as published by the Free Software Foundation; either version |
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <asm/processor.h> | 12 | #include <asm/processor.h> |
14 | #include <asm/ppc_asm.h> | 13 | #include <asm/ppc_asm.h> |
15 | #include <asm/vdso.h> | 14 | #include <asm/vdso.h> |
diff --git a/arch/powerpc/kernel/vdso32/datapage.S b/arch/powerpc/kernel/vdso32/datapage.S index 4709f1d9542c..dc21e891d2e7 100644 --- a/arch/powerpc/kernel/vdso32/datapage.S +++ b/arch/powerpc/kernel/vdso32/datapage.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/processor.h> | 12 | #include <asm/processor.h> |
14 | #include <asm/ppc_asm.h> | 13 | #include <asm/ppc_asm.h> |
15 | #include <asm/asm-offsets.h> | 14 | #include <asm/asm-offsets.h> |
diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S b/arch/powerpc/kernel/vdso32/gettimeofday.S index 7eebff03a041..05909f754307 100644 --- a/arch/powerpc/kernel/vdso32/gettimeofday.S +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * as published by the Free Software Foundation; either version | 10 | * as published by the Free Software Foundation; either version |
11 | * 2 of the License, or (at your option) any later version. | 11 | * 2 of the License, or (at your option) any later version. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <asm/processor.h> | 13 | #include <asm/processor.h> |
15 | #include <asm/ppc_asm.h> | 14 | #include <asm/ppc_asm.h> |
16 | #include <asm/vdso.h> | 15 | #include <asm/vdso.h> |
diff --git a/arch/powerpc/kernel/vdso32/sigtramp.S b/arch/powerpc/kernel/vdso32/sigtramp.S index 0c6a37b29dde..68d49dd71dcc 100644 --- a/arch/powerpc/kernel/vdso32/sigtramp.S +++ b/arch/powerpc/kernel/vdso32/sigtramp.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * as published by the Free Software Foundation; either version | 10 | * as published by the Free Software Foundation; either version |
11 | * 2 of the License, or (at your option) any later version. | 11 | * 2 of the License, or (at your option) any later version. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <asm/processor.h> | 13 | #include <asm/processor.h> |
15 | #include <asm/ppc_asm.h> | 14 | #include <asm/ppc_asm.h> |
16 | #include <asm/unistd.h> | 15 | #include <asm/unistd.h> |
diff --git a/arch/powerpc/kernel/vdso64/cacheflush.S b/arch/powerpc/kernel/vdso64/cacheflush.S index cb4ae0a5edd0..66a36d3cc6ad 100644 --- a/arch/powerpc/kernel/vdso64/cacheflush.S +++ b/arch/powerpc/kernel/vdso64/cacheflush.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * as published by the Free Software Foundation; either version | 9 | * as published by the Free Software Foundation; either version |
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <asm/processor.h> | 12 | #include <asm/processor.h> |
14 | #include <asm/ppc_asm.h> | 13 | #include <asm/ppc_asm.h> |
15 | #include <asm/vdso.h> | 14 | #include <asm/vdso.h> |
diff --git a/arch/powerpc/kernel/vdso64/datapage.S b/arch/powerpc/kernel/vdso64/datapage.S index 3b2dd7d0c1eb..79796de11737 100644 --- a/arch/powerpc/kernel/vdso64/datapage.S +++ b/arch/powerpc/kernel/vdso64/datapage.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/processor.h> | 12 | #include <asm/processor.h> |
14 | #include <asm/ppc_asm.h> | 13 | #include <asm/ppc_asm.h> |
15 | #include <asm/asm-offsets.h> | 14 | #include <asm/asm-offsets.h> |
diff --git a/arch/powerpc/kernel/vdso64/gettimeofday.S b/arch/powerpc/kernel/vdso64/gettimeofday.S index 4ee871f1cadb..56e76ff5498f 100644 --- a/arch/powerpc/kernel/vdso64/gettimeofday.S +++ b/arch/powerpc/kernel/vdso64/gettimeofday.S | |||
@@ -11,7 +11,6 @@ | |||
11 | * as published by the Free Software Foundation; either version | 11 | * as published by the Free Software Foundation; either version |
12 | * 2 of the License, or (at your option) any later version. | 12 | * 2 of the License, or (at your option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <asm/processor.h> | 14 | #include <asm/processor.h> |
16 | #include <asm/ppc_asm.h> | 15 | #include <asm/ppc_asm.h> |
17 | #include <asm/vdso.h> | 16 | #include <asm/vdso.h> |
diff --git a/arch/powerpc/kernel/vdso64/sigtramp.S b/arch/powerpc/kernel/vdso64/sigtramp.S index 7479edb101b8..17a83fa6dc52 100644 --- a/arch/powerpc/kernel/vdso64/sigtramp.S +++ b/arch/powerpc/kernel/vdso64/sigtramp.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * as published by the Free Software Foundation; either version | 10 | * as published by the Free Software Foundation; either version |
11 | * 2 of the License, or (at your option) any later version. | 11 | * 2 of the License, or (at your option) any later version. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <asm/processor.h> | 13 | #include <asm/processor.h> |
15 | #include <asm/ppc_asm.h> | 14 | #include <asm/ppc_asm.h> |
16 | #include <asm/unistd.h> | 15 | #include <asm/unistd.h> |
diff --git a/arch/powerpc/kernel/vector.S b/arch/powerpc/kernel/vector.S index 9416b4ab92ec..49ac3d6e1399 100644 --- a/arch/powerpc/kernel/vector.S +++ b/arch/powerpc/kernel/vector.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <asm/ppc_asm.h> | 1 | #include <asm/ppc_asm.h> |
3 | #include <asm/reg.h> | 2 | #include <asm/reg.h> |
4 | 3 | ||
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index 8b25953dc4f0..02665a02130d 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #ifdef CONFIG_PPC64 | 1 | #ifdef CONFIG_PPC64 |
3 | #include <asm/page.h> | 2 | #include <asm/page.h> |
4 | #define PROVIDE32(x) PROVIDE(__unused__##x) | 3 | #define PROVIDE32(x) PROVIDE(__unused__##x) |
diff --git a/arch/powerpc/lib/copy_32.S b/arch/powerpc/lib/copy_32.S index bee51414812e..c657de59abca 100644 --- a/arch/powerpc/lib/copy_32.S +++ b/arch/powerpc/lib/copy_32.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <asm/processor.h> | 11 | #include <asm/processor.h> |
13 | #include <asm/cache.h> | 12 | #include <asm/cache.h> |
14 | #include <asm/errno.h> | 13 | #include <asm/errno.h> |
diff --git a/arch/powerpc/lib/locks.c b/arch/powerpc/lib/locks.c index 8362fa272ca5..077bed7dc52b 100644 --- a/arch/powerpc/lib/locks.c +++ b/arch/powerpc/lib/locks.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * 2 of the License, or (at your option) any later version. | 12 | * 2 of the License, or (at your option) any later version. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/spinlock.h> | 16 | #include <linux/spinlock.h> |
18 | #include <linux/module.h> | 17 | #include <linux/module.h> |
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c index c251d9936612..9590ba780b98 100644 --- a/arch/powerpc/lib/sstep.c +++ b/arch/powerpc/lib/sstep.c | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/ptrace.h> | 12 | #include <linux/ptrace.h> |
13 | #include <linux/config.h> | ||
14 | #include <asm/sstep.h> | 13 | #include <asm/sstep.h> |
15 | #include <asm/processor.h> | 14 | #include <asm/processor.h> |
16 | 15 | ||
diff --git a/arch/powerpc/lib/string.S b/arch/powerpc/lib/string.S index b9ca84ed8927..c4c622d8e6ac 100644 --- a/arch/powerpc/lib/string.S +++ b/arch/powerpc/lib/string.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <asm/processor.h> | 11 | #include <asm/processor.h> |
13 | #include <asm/errno.h> | 12 | #include <asm/errno.h> |
14 | #include <asm/ppc_asm.h> | 13 | #include <asm/ppc_asm.h> |
diff --git a/arch/powerpc/math-emu/math.c b/arch/powerpc/math-emu/math.c index 589153472761..69058b2873de 100644 --- a/arch/powerpc/math-emu/math.c +++ b/arch/powerpc/math-emu/math.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Copyright (C) 1999 Eddie C. Dost (ecd@atecom.com) | 2 | * Copyright (C) 1999 Eddie C. Dost (ecd@atecom.com) |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/types.h> | 5 | #include <linux/types.h> |
7 | #include <linux/sched.h> | 6 | #include <linux/sched.h> |
8 | 7 | ||
diff --git a/arch/powerpc/mm/44x_mmu.c b/arch/powerpc/mm/44x_mmu.c index 3d79ce281b67..376829ed2211 100644 --- a/arch/powerpc/mm/44x_mmu.c +++ b/arch/powerpc/mm/44x_mmu.c | |||
@@ -24,7 +24,6 @@ | |||
24 | * | 24 | * |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/signal.h> | 27 | #include <linux/signal.h> |
29 | #include <linux/sched.h> | 28 | #include <linux/sched.h> |
30 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/mm/4xx_mmu.c b/arch/powerpc/mm/4xx_mmu.c index 4d006aa1a0d1..838e09db71d9 100644 --- a/arch/powerpc/mm/4xx_mmu.c +++ b/arch/powerpc/mm/4xx_mmu.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * | 21 | * |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/signal.h> | 24 | #include <linux/signal.h> |
26 | #include <linux/sched.h> | 25 | #include <linux/sched.h> |
27 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c index a0a9e1e0061e..78a0d59903ee 100644 --- a/arch/powerpc/mm/fault.c +++ b/arch/powerpc/mm/fault.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * 2 of the License, or (at your option) any later version. | 15 | * 2 of the License, or (at your option) any later version. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/signal.h> | 18 | #include <linux/signal.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/mm/fsl_booke_mmu.c b/arch/powerpc/mm/fsl_booke_mmu.c index 5d581bb3aa12..123da03ab118 100644 --- a/arch/powerpc/mm/fsl_booke_mmu.c +++ b/arch/powerpc/mm/fsl_booke_mmu.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <linux/config.h> | ||
30 | #include <linux/signal.h> | 29 | #include <linux/signal.h> |
31 | #include <linux/sched.h> | 30 | #include <linux/sched.h> |
32 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S index 94255beeecd3..bd68df5fa78a 100644 --- a/arch/powerpc/mm/hash_low_32.S +++ b/arch/powerpc/mm/hash_low_32.S | |||
@@ -21,7 +21,6 @@ | |||
21 | * | 21 | * |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <asm/reg.h> | 24 | #include <asm/reg.h> |
26 | #include <asm/page.h> | 25 | #include <asm/page.h> |
27 | #include <asm/pgtable.h> | 26 | #include <asm/pgtable.h> |
diff --git a/arch/powerpc/mm/hash_low_64.S b/arch/powerpc/mm/hash_low_64.S index 52e914238959..9bc0a9c2b9bc 100644 --- a/arch/powerpc/mm/hash_low_64.S +++ b/arch/powerpc/mm/hash_low_64.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * described in the kernel's COPYING file. | 10 | * described in the kernel's COPYING file. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/reg.h> | 13 | #include <asm/reg.h> |
15 | #include <asm/pgtable.h> | 14 | #include <asm/pgtable.h> |
16 | #include <asm/mmu.h> | 15 | #include <asm/mmu.h> |
diff --git a/arch/powerpc/mm/hash_native_64.c b/arch/powerpc/mm/hash_native_64.c index a0f3cbd00d39..c90f124f3c71 100644 --- a/arch/powerpc/mm/hash_native_64.c +++ b/arch/powerpc/mm/hash_native_64.c | |||
@@ -520,7 +520,7 @@ static inline int tlb_batching_enabled(void) | |||
520 | } | 520 | } |
521 | #endif | 521 | #endif |
522 | 522 | ||
523 | void hpte_init_native(void) | 523 | void __init hpte_init_native(void) |
524 | { | 524 | { |
525 | ppc_md.hpte_invalidate = native_hpte_invalidate; | 525 | ppc_md.hpte_invalidate = native_hpte_invalidate; |
526 | ppc_md.hpte_updatepp = native_hpte_updatepp; | 526 | ppc_md.hpte_updatepp = native_hpte_updatepp; |
@@ -530,5 +530,4 @@ void hpte_init_native(void) | |||
530 | ppc_md.hpte_clear_all = native_hpte_clear; | 530 | ppc_md.hpte_clear_all = native_hpte_clear; |
531 | if (tlb_batching_enabled()) | 531 | if (tlb_batching_enabled()) |
532 | ppc_md.flush_hash_range = native_flush_hash_range; | 532 | ppc_md.flush_hash_range = native_flush_hash_range; |
533 | htab_finish_init(); | ||
534 | } | 533 | } |
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index d03fd2b4445e..1915661c2c81 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #undef DEBUG | 21 | #undef DEBUG |
22 | #undef DEBUG_LOW | 22 | #undef DEBUG_LOW |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/spinlock.h> | 24 | #include <linux/spinlock.h> |
26 | #include <linux/errno.h> | 25 | #include <linux/errno.h> |
27 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
@@ -167,34 +166,12 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend, | |||
167 | hash = hpt_hash(va, shift); | 166 | hash = hpt_hash(va, shift); |
168 | hpteg = ((hash & htab_hash_mask) * HPTES_PER_GROUP); | 167 | hpteg = ((hash & htab_hash_mask) * HPTES_PER_GROUP); |
169 | 168 | ||
170 | /* The crap below can be cleaned once ppd_md.probe() can | 169 | DBG("htab_bolt_mapping: calling %p\n", ppc_md.hpte_insert); |
171 | * set up the hash callbacks, thus we can just used the | 170 | |
172 | * normal insert callback here. | 171 | BUG_ON(!ppc_md.hpte_insert); |
173 | */ | 172 | ret = ppc_md.hpte_insert(hpteg, va, paddr, |
174 | #ifdef CONFIG_PPC_ISERIES | 173 | tmp_mode, HPTE_V_BOLTED, psize); |
175 | if (machine_is(iseries)) | 174 | |
176 | ret = iSeries_hpte_insert(hpteg, va, | ||
177 | paddr, | ||
178 | tmp_mode, | ||
179 | HPTE_V_BOLTED, | ||
180 | psize); | ||
181 | else | ||
182 | #endif | ||
183 | #ifdef CONFIG_PPC_PSERIES | ||
184 | if (machine_is(pseries) && firmware_has_feature(FW_FEATURE_LPAR)) | ||
185 | ret = pSeries_lpar_hpte_insert(hpteg, va, | ||
186 | paddr, | ||
187 | tmp_mode, | ||
188 | HPTE_V_BOLTED, | ||
189 | psize); | ||
190 | else | ||
191 | #endif | ||
192 | #ifdef CONFIG_PPC_MULTIPLATFORM | ||
193 | ret = native_hpte_insert(hpteg, va, | ||
194 | paddr, | ||
195 | tmp_mode, HPTE_V_BOLTED, | ||
196 | psize); | ||
197 | #endif | ||
198 | if (ret < 0) | 175 | if (ret < 0) |
199 | break; | 176 | break; |
200 | } | 177 | } |
@@ -413,6 +390,41 @@ void create_section_mapping(unsigned long start, unsigned long end) | |||
413 | } | 390 | } |
414 | #endif /* CONFIG_MEMORY_HOTPLUG */ | 391 | #endif /* CONFIG_MEMORY_HOTPLUG */ |
415 | 392 | ||
393 | static inline void make_bl(unsigned int *insn_addr, void *func) | ||
394 | { | ||
395 | unsigned long funcp = *((unsigned long *)func); | ||
396 | int offset = funcp - (unsigned long)insn_addr; | ||
397 | |||
398 | *insn_addr = (unsigned int)(0x48000001 | (offset & 0x03fffffc)); | ||
399 | flush_icache_range((unsigned long)insn_addr, 4+ | ||
400 | (unsigned long)insn_addr); | ||
401 | } | ||
402 | |||
403 | static void __init htab_finish_init(void) | ||
404 | { | ||
405 | extern unsigned int *htab_call_hpte_insert1; | ||
406 | extern unsigned int *htab_call_hpte_insert2; | ||
407 | extern unsigned int *htab_call_hpte_remove; | ||
408 | extern unsigned int *htab_call_hpte_updatepp; | ||
409 | |||
410 | #ifdef CONFIG_PPC_64K_PAGES | ||
411 | extern unsigned int *ht64_call_hpte_insert1; | ||
412 | extern unsigned int *ht64_call_hpte_insert2; | ||
413 | extern unsigned int *ht64_call_hpte_remove; | ||
414 | extern unsigned int *ht64_call_hpte_updatepp; | ||
415 | |||
416 | make_bl(ht64_call_hpte_insert1, ppc_md.hpte_insert); | ||
417 | make_bl(ht64_call_hpte_insert2, ppc_md.hpte_insert); | ||
418 | make_bl(ht64_call_hpte_remove, ppc_md.hpte_remove); | ||
419 | make_bl(ht64_call_hpte_updatepp, ppc_md.hpte_updatepp); | ||
420 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
421 | |||
422 | make_bl(htab_call_hpte_insert1, ppc_md.hpte_insert); | ||
423 | make_bl(htab_call_hpte_insert2, ppc_md.hpte_insert); | ||
424 | make_bl(htab_call_hpte_remove, ppc_md.hpte_remove); | ||
425 | make_bl(htab_call_hpte_updatepp, ppc_md.hpte_updatepp); | ||
426 | } | ||
427 | |||
416 | void __init htab_initialize(void) | 428 | void __init htab_initialize(void) |
417 | { | 429 | { |
418 | unsigned long table; | 430 | unsigned long table; |
@@ -525,6 +537,8 @@ void __init htab_initialize(void) | |||
525 | mmu_linear_psize)); | 537 | mmu_linear_psize)); |
526 | } | 538 | } |
527 | 539 | ||
540 | htab_finish_init(); | ||
541 | |||
528 | DBG(" <- htab_initialize()\n"); | 542 | DBG(" <- htab_initialize()\n"); |
529 | } | 543 | } |
530 | #undef KB | 544 | #undef KB |
@@ -787,16 +801,6 @@ void flush_hash_range(unsigned long number, int local) | |||
787 | } | 801 | } |
788 | } | 802 | } |
789 | 803 | ||
790 | static inline void make_bl(unsigned int *insn_addr, void *func) | ||
791 | { | ||
792 | unsigned long funcp = *((unsigned long *)func); | ||
793 | int offset = funcp - (unsigned long)insn_addr; | ||
794 | |||
795 | *insn_addr = (unsigned int)(0x48000001 | (offset & 0x03fffffc)); | ||
796 | flush_icache_range((unsigned long)insn_addr, 4+ | ||
797 | (unsigned long)insn_addr); | ||
798 | } | ||
799 | |||
800 | /* | 804 | /* |
801 | * low_hash_fault is called when we the low level hash code failed | 805 | * low_hash_fault is called when we the low level hash code failed |
802 | * to instert a PTE due to an hypervisor error | 806 | * to instert a PTE due to an hypervisor error |
@@ -815,28 +819,3 @@ void low_hash_fault(struct pt_regs *regs, unsigned long address) | |||
815 | } | 819 | } |
816 | bad_page_fault(regs, address, SIGBUS); | 820 | bad_page_fault(regs, address, SIGBUS); |
817 | } | 821 | } |
818 | |||
819 | void __init htab_finish_init(void) | ||
820 | { | ||
821 | extern unsigned int *htab_call_hpte_insert1; | ||
822 | extern unsigned int *htab_call_hpte_insert2; | ||
823 | extern unsigned int *htab_call_hpte_remove; | ||
824 | extern unsigned int *htab_call_hpte_updatepp; | ||
825 | |||
826 | #ifdef CONFIG_PPC_64K_PAGES | ||
827 | extern unsigned int *ht64_call_hpte_insert1; | ||
828 | extern unsigned int *ht64_call_hpte_insert2; | ||
829 | extern unsigned int *ht64_call_hpte_remove; | ||
830 | extern unsigned int *ht64_call_hpte_updatepp; | ||
831 | |||
832 | make_bl(ht64_call_hpte_insert1, ppc_md.hpte_insert); | ||
833 | make_bl(ht64_call_hpte_insert2, ppc_md.hpte_insert); | ||
834 | make_bl(ht64_call_hpte_remove, ppc_md.hpte_remove); | ||
835 | make_bl(ht64_call_hpte_updatepp, ppc_md.hpte_updatepp); | ||
836 | #endif /* CONFIG_PPC_64K_PAGES */ | ||
837 | |||
838 | make_bl(htab_call_hpte_insert1, ppc_md.hpte_insert); | ||
839 | make_bl(htab_call_hpte_insert2, ppc_md.hpte_insert); | ||
840 | make_bl(htab_call_hpte_remove, ppc_md.hpte_remove); | ||
841 | make_bl(htab_call_hpte_updatepp, ppc_md.hpte_updatepp); | ||
842 | } | ||
diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c index b57fb3a2b7bb..0e53ca8f02fb 100644 --- a/arch/powerpc/mm/init_32.c +++ b/arch/powerpc/mm/init_32.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * | 18 | * |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c index d454caada265..3ff374697e34 100644 --- a/arch/powerpc/mm/init_64.c +++ b/arch/powerpc/mm/init_64.c | |||
@@ -22,7 +22,6 @@ | |||
22 | 22 | ||
23 | #undef DEBUG | 23 | #undef DEBUG |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <linux/signal.h> | 25 | #include <linux/signal.h> |
27 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
28 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/mm/lmb.c b/arch/powerpc/mm/lmb.c index 8b6f522655a6..4b17a7359924 100644 --- a/arch/powerpc/mm/lmb.c +++ b/arch/powerpc/mm/lmb.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/bitops.h> | 15 | #include <linux/bitops.h> |
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 089d939a0b3e..eebd8b83a6b0 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * | 18 | * |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/mm/mmu_context_32.c b/arch/powerpc/mm/mmu_context_32.c index e326e4249e1a..792086b01000 100644 --- a/arch/powerpc/mm/mmu_context_32.c +++ b/arch/powerpc/mm/mmu_context_32.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
28 | #include <linux/init.h> | 27 | #include <linux/init.h> |
29 | 28 | ||
diff --git a/arch/powerpc/mm/mmu_context_64.c b/arch/powerpc/mm/mmu_context_64.c index 65d18dca266f..90a06ac02d5e 100644 --- a/arch/powerpc/mm/mmu_context_64.c +++ b/arch/powerpc/mm/mmu_context_64.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
@@ -44,7 +43,9 @@ again: | |||
44 | return err; | 43 | return err; |
45 | 44 | ||
46 | if (index > MAX_CONTEXT) { | 45 | if (index > MAX_CONTEXT) { |
46 | spin_lock(&mmu_context_lock); | ||
47 | idr_remove(&mmu_context_idr, index); | 47 | idr_remove(&mmu_context_idr, index); |
48 | spin_unlock(&mmu_context_lock); | ||
48 | return -ENOMEM; | 49 | return -ENOMEM; |
49 | } | 50 | } |
50 | 51 | ||
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index 90628601fac7..8fcacb0239da 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * | 20 | * |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <linux/types.h> | 25 | #include <linux/types.h> |
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index 7b278d83739e..b1da03165496 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * | 22 | * |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <linux/signal.h> | 25 | #include <linux/signal.h> |
27 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
28 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c index 2ed43a493b31..7cceb2c44cb9 100644 --- a/arch/powerpc/mm/ppc_mmu_32.c +++ b/arch/powerpc/mm/ppc_mmu_32.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
28 | #include <linux/mm.h> | 27 | #include <linux/mm.h> |
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c index 6a8bf6c6000e..de0c8842415c 100644 --- a/arch/powerpc/mm/slb.c +++ b/arch/powerpc/mm/slb.c | |||
@@ -16,7 +16,6 @@ | |||
16 | 16 | ||
17 | #undef DEBUG | 17 | #undef DEBUG |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <asm/pgtable.h> | 19 | #include <asm/pgtable.h> |
21 | #include <asm/mmu.h> | 20 | #include <asm/mmu.h> |
22 | #include <asm/mmu_context.h> | 21 | #include <asm/mmu_context.h> |
diff --git a/arch/powerpc/mm/slb_low.S b/arch/powerpc/mm/slb_low.S index 8548dcf8ef8b..dbc1abbde038 100644 --- a/arch/powerpc/mm/slb_low.S +++ b/arch/powerpc/mm/slb_low.S | |||
@@ -14,7 +14,6 @@ | |||
14 | * 2 of the License, or (at your option) any later version. | 14 | * 2 of the License, or (at your option) any later version. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <asm/processor.h> | 17 | #include <asm/processor.h> |
19 | #include <asm/ppc_asm.h> | 18 | #include <asm/ppc_asm.h> |
20 | #include <asm/asm-offsets.h> | 19 | #include <asm/asm-offsets.h> |
diff --git a/arch/powerpc/mm/stab.c b/arch/powerpc/mm/stab.c index 691320c90b78..eeeacab548e6 100644 --- a/arch/powerpc/mm/stab.c +++ b/arch/powerpc/mm/stab.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * 2 of the License, or (at your option) any later version. | 12 | * 2 of the License, or (at your option) any later version. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <asm/pgtable.h> | 15 | #include <asm/pgtable.h> |
17 | #include <asm/mmu.h> | 16 | #include <asm/mmu.h> |
18 | #include <asm/mmu_context.h> | 17 | #include <asm/mmu_context.h> |
diff --git a/arch/powerpc/mm/tlb_32.c b/arch/powerpc/mm/tlb_32.c index 02eb23e036d5..925ff70be8ba 100644 --- a/arch/powerpc/mm/tlb_32.c +++ b/arch/powerpc/mm/tlb_32.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
28 | #include <linux/mm.h> | 27 | #include <linux/mm.h> |
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
diff --git a/arch/powerpc/mm/tlb_64.c b/arch/powerpc/mm/tlb_64.c index e7449b068c82..f6eef78efd29 100644 --- a/arch/powerpc/mm/tlb_64.c +++ b/arch/powerpc/mm/tlb_64.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * 2 of the License, or (at your option) any later version. | 22 | * 2 of the License, or (at your option) any later version. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
27 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
28 | #include <linux/init.h> | 27 | #include <linux/init.h> |
diff --git a/arch/powerpc/platforms/83xx/misc.c b/arch/powerpc/platforms/83xx/misc.c index 1455bcef4892..f0c6df61faa9 100644 --- a/arch/powerpc/platforms/83xx/misc.c +++ b/arch/powerpc/platforms/83xx/misc.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * option) any later version. | 9 | * option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | 14 | ||
diff --git a/arch/powerpc/platforms/83xx/mpc834x_sys.c b/arch/powerpc/platforms/83xx/mpc834x_sys.c index 7e789d2420ba..3e1c16eb4a63 100644 --- a/arch/powerpc/platforms/83xx/mpc834x_sys.c +++ b/arch/powerpc/platforms/83xx/mpc834x_sys.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/powerpc/platforms/83xx/pci.c b/arch/powerpc/platforms/83xx/pci.c index 16f7d3b30e1d..3b5e563c279f 100644 --- a/arch/powerpc/platforms/83xx/pci.c +++ b/arch/powerpc/platforms/83xx/pci.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * option) any later version. | 9 | * option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
@@ -91,9 +90,10 @@ int __init add_bridge(struct device_node *dev) | |||
91 | mpc83xx_pci2_busno = hose->first_busno; | 90 | mpc83xx_pci2_busno = hose->first_busno; |
92 | } | 91 | } |
93 | 92 | ||
94 | printk(KERN_INFO "Found MPC83xx PCI host bridge at 0x%08lx. " | 93 | printk(KERN_INFO "Found MPC83xx PCI host bridge at 0x%016llx. " |
95 | "Firmware bus number: %d->%d\n", | 94 | "Firmware bus number: %d->%d\n", |
96 | rsrc.start, hose->first_busno, hose->last_busno); | 95 | (unsigned long long)rsrc.start, hose->first_busno, |
96 | hose->last_busno); | ||
97 | 97 | ||
98 | DBG(" ->Hose at 0x%p, cfg_addr=0x%p,cfg_data=0x%p\n", | 98 | DBG(" ->Hose at 0x%p, cfg_addr=0x%p,cfg_data=0x%p\n", |
99 | hose, hose->cfg_addr, hose->cfg_data); | 99 | hose, hose->cfg_addr, hose->cfg_data); |
diff --git a/arch/powerpc/platforms/85xx/mpc8540_ads.h b/arch/powerpc/platforms/85xx/mpc8540_ads.h index f770cadb2080..c0d56d2bb5a5 100644 --- a/arch/powerpc/platforms/85xx/mpc8540_ads.h +++ b/arch/powerpc/platforms/85xx/mpc8540_ads.h | |||
@@ -17,7 +17,6 @@ | |||
17 | #ifndef __MACH_MPC8540ADS_H__ | 17 | #ifndef __MACH_MPC8540ADS_H__ |
18 | #define __MACH_MPC8540ADS_H__ | 18 | #define __MACH_MPC8540ADS_H__ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/initrd.h> | 20 | #include <linux/initrd.h> |
22 | 21 | ||
23 | #define BOARD_CCSRBAR ((uint)0xe0000000) | 22 | #define BOARD_CCSRBAR ((uint)0xe0000000) |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c index 5eeff370f5fc..06a497676c99 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/pci.h> | 16 | #include <linux/pci.h> |
diff --git a/arch/powerpc/platforms/85xx/pci.c b/arch/powerpc/platforms/85xx/pci.c index bad290110ed1..1d51f3242ab1 100644 --- a/arch/powerpc/platforms/85xx/pci.c +++ b/arch/powerpc/platforms/85xx/pci.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * option) any later version. | 9 | * option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
@@ -79,9 +78,10 @@ int __init add_bridge(struct device_node *dev) | |||
79 | mpc85xx_pci2_busno = hose->first_busno; | 78 | mpc85xx_pci2_busno = hose->first_busno; |
80 | } | 79 | } |
81 | 80 | ||
82 | printk(KERN_INFO "Found MPC85xx PCI host bridge at 0x%08lx. " | 81 | printk(KERN_INFO "Found MPC85xx PCI host bridge at 0x%016llx. " |
83 | "Firmware bus number: %d->%d\n", | 82 | "Firmware bus number: %d->%d\n", |
84 | rsrc.start, hose->first_busno, hose->last_busno); | 83 | (unsigned long long)rsrc.start, hose->first_busno, |
84 | hose->last_busno); | ||
85 | 85 | ||
86 | DBG(" ->Hose at 0x%p, cfg_addr=0x%p,cfg_data=0x%p\n", | 86 | DBG(" ->Hose at 0x%p, cfg_addr=0x%p,cfg_data=0x%p\n", |
87 | hose, hose->cfg_addr, hose->cfg_data); | 87 | hose, hose->cfg_addr, hose->cfg_data); |
diff --git a/arch/powerpc/platforms/86xx/Kconfig b/arch/powerpc/platforms/86xx/Kconfig index 3a87863d2876..d1ecc0f9ab58 100644 --- a/arch/powerpc/platforms/86xx/Kconfig +++ b/arch/powerpc/platforms/86xx/Kconfig | |||
@@ -7,6 +7,7 @@ choice | |||
7 | 7 | ||
8 | config MPC8641_HPCN | 8 | config MPC8641_HPCN |
9 | bool "Freescale MPC8641 HPCN" | 9 | bool "Freescale MPC8641 HPCN" |
10 | select PPC_I8259 | ||
10 | help | 11 | help |
11 | This option enables support for the MPC8641 HPCN board. | 12 | This option enables support for the MPC8641 HPCN board. |
12 | 13 | ||
@@ -28,9 +29,4 @@ config PPC_INDIRECT_PCI_BE | |||
28 | depends on PPC_86xx | 29 | depends on PPC_86xx |
29 | default y | 30 | default y |
30 | 31 | ||
31 | config PPC_STD_MMU | ||
32 | bool | ||
33 | depends on PPC_86xx | ||
34 | default y | ||
35 | |||
36 | endmenu | 32 | endmenu |
diff --git a/arch/powerpc/platforms/86xx/Makefile b/arch/powerpc/platforms/86xx/Makefile index 7be796c5d5c9..476a6eeee710 100644 --- a/arch/powerpc/platforms/86xx/Makefile +++ b/arch/powerpc/platforms/86xx/Makefile | |||
@@ -2,9 +2,6 @@ | |||
2 | # Makefile for the PowerPC 86xx linux kernel. | 2 | # Makefile for the PowerPC 86xx linux kernel. |
3 | # | 3 | # |
4 | 4 | ||
5 | |||
6 | ifeq ($(CONFIG_PPC_86xx),y) | ||
7 | obj-$(CONFIG_SMP) += mpc86xx_smp.o | 5 | obj-$(CONFIG_SMP) += mpc86xx_smp.o |
8 | endif | ||
9 | obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o | 6 | obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o |
10 | obj-$(CONFIG_PCI) += pci.o mpc86xx_pcie.o | 7 | obj-$(CONFIG_PCI) += pci.o mpc86xx_pcie.o |
diff --git a/arch/powerpc/platforms/86xx/mpc8641_hpcn.h b/arch/powerpc/platforms/86xx/mpc8641_hpcn.h index 5042253758b7..5d2bcf78cef7 100644 --- a/arch/powerpc/platforms/86xx/mpc8641_hpcn.h +++ b/arch/powerpc/platforms/86xx/mpc8641_hpcn.h | |||
@@ -14,7 +14,6 @@ | |||
14 | #ifndef __MPC8641_HPCN_H__ | 14 | #ifndef __MPC8641_HPCN_H__ |
15 | #define __MPC8641_HPCN_H__ | 15 | #define __MPC8641_HPCN_H__ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | 18 | ||
20 | /* PCI interrupt controller */ | 19 | /* PCI interrupt controller */ |
diff --git a/arch/powerpc/platforms/86xx/mpc86xx.h b/arch/powerpc/platforms/86xx/mpc86xx.h index e3c9e4f417d3..2834462590b8 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx.h +++ b/arch/powerpc/platforms/86xx/mpc86xx.h | |||
@@ -15,11 +15,13 @@ | |||
15 | * mpc86xx_* files. Mostly for use by mpc86xx_setup(). | 15 | * mpc86xx_* files. Mostly for use by mpc86xx_setup(). |
16 | */ | 16 | */ |
17 | 17 | ||
18 | extern int __init add_bridge(struct device_node *dev); | 18 | extern int add_bridge(struct device_node *dev); |
19 | 19 | ||
20 | extern void __init setup_indirect_pcie(struct pci_controller *hose, | 20 | extern int mpc86xx_exclude_device(u_char bus, u_char devfn); |
21 | |||
22 | extern void setup_indirect_pcie(struct pci_controller *hose, | ||
21 | u32 cfg_addr, u32 cfg_data); | 23 | u32 cfg_addr, u32 cfg_data); |
22 | extern void __init setup_indirect_pcie_nomap(struct pci_controller *hose, | 24 | extern void setup_indirect_pcie_nomap(struct pci_controller *hose, |
23 | void __iomem *cfg_addr, | 25 | void __iomem *cfg_addr, |
24 | void __iomem *cfg_data); | 26 | void __iomem *cfg_data); |
25 | 27 | ||
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c index 483c21df181e..ebae73eb0063 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * option) any later version. | 12 | * option) any later version. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/stddef.h> | 15 | #include <linux/stddef.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/pci.h> | 17 | #include <linux/pci.h> |
@@ -36,6 +35,7 @@ | |||
36 | #include <sysdev/fsl_soc.h> | 35 | #include <sysdev/fsl_soc.h> |
37 | 36 | ||
38 | #include "mpc86xx.h" | 37 | #include "mpc86xx.h" |
38 | #include "mpc8641_hpcn.h" | ||
39 | 39 | ||
40 | #ifndef CONFIG_PCI | 40 | #ifndef CONFIG_PCI |
41 | unsigned long isa_io_base = 0; | 41 | unsigned long isa_io_base = 0; |
@@ -186,17 +186,130 @@ mpc86xx_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin) | |||
186 | return PCI_IRQ_TABLE_LOOKUP + I8259_OFFSET; | 186 | return PCI_IRQ_TABLE_LOOKUP + I8259_OFFSET; |
187 | } | 187 | } |
188 | 188 | ||
189 | static void __devinit quirk_ali1575(struct pci_dev *dev) | ||
190 | { | ||
191 | unsigned short temp; | ||
192 | |||
193 | /* | ||
194 | * ALI1575 interrupts route table setup: | ||
195 | * | ||
196 | * IRQ pin IRQ# | ||
197 | * PIRQA ---- 3 | ||
198 | * PIRQB ---- 4 | ||
199 | * PIRQC ---- 5 | ||
200 | * PIRQD ---- 6 | ||
201 | * PIRQE ---- 9 | ||
202 | * PIRQF ---- 10 | ||
203 | * PIRQG ---- 11 | ||
204 | * PIRQH ---- 12 | ||
205 | * | ||
206 | * interrupts for PCI slot0 -- PIRQA / PIRQB / PIRQC / PIRQD | ||
207 | * PCI slot1 -- PIRQB / PIRQC / PIRQD / PIRQA | ||
208 | */ | ||
209 | pci_write_config_dword(dev, 0x48, 0xb9317542); | ||
210 | |||
211 | /* USB 1.1 OHCI controller 1, interrupt: PIRQE */ | ||
212 | pci_write_config_byte(dev, 0x86, 0x0c); | ||
213 | |||
214 | /* USB 1.1 OHCI controller 2, interrupt: PIRQF */ | ||
215 | pci_write_config_byte(dev, 0x87, 0x0d); | ||
216 | |||
217 | /* USB 1.1 OHCI controller 3, interrupt: PIRQH */ | ||
218 | pci_write_config_byte(dev, 0x88, 0x0f); | ||
219 | |||
220 | /* USB 2.0 controller, interrupt: PIRQ7 */ | ||
221 | pci_write_config_byte(dev, 0x74, 0x06); | ||
222 | |||
223 | /* Audio controller, interrupt: PIRQE */ | ||
224 | pci_write_config_byte(dev, 0x8a, 0x0c); | ||
225 | |||
226 | /* Modem controller, interrupt: PIRQF */ | ||
227 | pci_write_config_byte(dev, 0x8b, 0x0d); | ||
228 | |||
229 | /* HD audio controller, interrupt: PIRQG */ | ||
230 | pci_write_config_byte(dev, 0x8c, 0x0e); | ||
231 | |||
232 | /* Serial ATA interrupt: PIRQD */ | ||
233 | pci_write_config_byte(dev, 0x8d, 0x0b); | ||
234 | |||
235 | /* SMB interrupt: PIRQH */ | ||
236 | pci_write_config_byte(dev, 0x8e, 0x0f); | ||
237 | |||
238 | /* PMU ACPI SCI interrupt: PIRQH */ | ||
239 | pci_write_config_byte(dev, 0x8f, 0x0f); | ||
240 | |||
241 | /* Primary PATA IDE IRQ: 14 | ||
242 | * Secondary PATA IDE IRQ: 15 | ||
243 | */ | ||
244 | pci_write_config_byte(dev, 0x44, 0x3d); | ||
245 | pci_write_config_byte(dev, 0x75, 0x0f); | ||
246 | |||
247 | /* Set IRQ14 and IRQ15 to legacy IRQs */ | ||
248 | pci_read_config_word(dev, 0x46, &temp); | ||
249 | temp |= 0xc000; | ||
250 | pci_write_config_word(dev, 0x46, temp); | ||
251 | |||
252 | /* Set i8259 interrupt trigger | ||
253 | * IRQ 3: Level | ||
254 | * IRQ 4: Level | ||
255 | * IRQ 5: Level | ||
256 | * IRQ 6: Level | ||
257 | * IRQ 7: Level | ||
258 | * IRQ 9: Level | ||
259 | * IRQ 10: Level | ||
260 | * IRQ 11: Level | ||
261 | * IRQ 12: Level | ||
262 | * IRQ 14: Edge | ||
263 | * IRQ 15: Edge | ||
264 | */ | ||
265 | outb(0xfa, 0x4d0); | ||
266 | outb(0x1e, 0x4d1); | ||
267 | } | ||
189 | 268 | ||
190 | int | 269 | static void __devinit quirk_uli5288(struct pci_dev *dev) |
191 | mpc86xx_exclude_device(u_char bus, u_char devfn) | ||
192 | { | 270 | { |
193 | #if !defined(CONFIG_PCI) | 271 | unsigned char c; |
194 | if (bus == 0 && PCI_SLOT(devfn) == 0) | 272 | |
195 | return PCIBIOS_DEVICE_NOT_FOUND; | 273 | pci_read_config_byte(dev,0x83,&c); |
196 | #endif | 274 | c |= 0x80; |
275 | pci_write_config_byte(dev, 0x83, c); | ||
276 | |||
277 | pci_write_config_byte(dev, 0x09, 0x01); | ||
278 | pci_write_config_byte(dev, 0x0a, 0x06); | ||
279 | |||
280 | pci_read_config_byte(dev,0x83,&c); | ||
281 | c &= 0x7f; | ||
282 | pci_write_config_byte(dev, 0x83, c); | ||
197 | 283 | ||
198 | return PCIBIOS_SUCCESSFUL; | 284 | pci_read_config_byte(dev,0x84,&c); |
285 | c |= 0x01; | ||
286 | pci_write_config_byte(dev, 0x84, c); | ||
199 | } | 287 | } |
288 | |||
289 | static void __devinit quirk_uli5229(struct pci_dev *dev) | ||
290 | { | ||
291 | unsigned short temp; | ||
292 | pci_write_config_word(dev, 0x04, 0x0405); | ||
293 | pci_read_config_word(dev, 0x4a, &temp); | ||
294 | temp |= 0x1000; | ||
295 | pci_write_config_word(dev, 0x4a, temp); | ||
296 | } | ||
297 | |||
298 | static void __devinit early_uli5249(struct pci_dev *dev) | ||
299 | { | ||
300 | unsigned char temp; | ||
301 | pci_write_config_word(dev, 0x04, 0x0007); | ||
302 | pci_read_config_byte(dev, 0x7c, &temp); | ||
303 | pci_write_config_byte(dev, 0x7c, 0x80); | ||
304 | pci_write_config_byte(dev, 0x09, 0x01); | ||
305 | pci_write_config_byte(dev, 0x7c, temp); | ||
306 | dev->class |= 0x1; | ||
307 | } | ||
308 | |||
309 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_ali1575); | ||
310 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288); | ||
311 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); | ||
312 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 0x5249, early_uli5249); | ||
200 | #endif /* CONFIG_PCI */ | 313 | #endif /* CONFIG_PCI */ |
201 | 314 | ||
202 | 315 | ||
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_smp.c b/arch/powerpc/platforms/86xx/mpc86xx_smp.c index 944ec4b71416..bb7fb41933ad 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx_smp.c +++ b/arch/powerpc/platforms/86xx/mpc86xx_smp.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * option) any later version. | 10 | * option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/stddef.h> | 13 | #include <linux/stddef.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
@@ -34,8 +33,8 @@ extern unsigned long __secondary_hold_acknowledge; | |||
34 | static void __init | 33 | static void __init |
35 | smp_86xx_release_core(int nr) | 34 | smp_86xx_release_core(int nr) |
36 | { | 35 | { |
37 | void *mcm_vaddr; | 36 | __be32 __iomem *mcm_vaddr; |
38 | unsigned long vaddr, pcr; | 37 | unsigned long pcr; |
39 | 38 | ||
40 | if (nr < 0 || nr >= NR_CPUS) | 39 | if (nr < 0 || nr >= NR_CPUS) |
41 | return; | 40 | return; |
@@ -45,10 +44,9 @@ smp_86xx_release_core(int nr) | |||
45 | */ | 44 | */ |
46 | mcm_vaddr = ioremap(get_immrbase() + MPC86xx_MCM_OFFSET, | 45 | mcm_vaddr = ioremap(get_immrbase() + MPC86xx_MCM_OFFSET, |
47 | MPC86xx_MCM_SIZE); | 46 | MPC86xx_MCM_SIZE); |
48 | vaddr = (unsigned long)mcm_vaddr + MCM_PORT_CONFIG_OFFSET; | 47 | pcr = in_be32(mcm_vaddr + (MCM_PORT_CONFIG_OFFSET >> 2)); |
49 | pcr = in_be32((volatile unsigned *)vaddr); | ||
50 | pcr |= 1 << (nr + 24); | 48 | pcr |= 1 << (nr + 24); |
51 | out_be32((volatile unsigned *)vaddr, pcr); | 49 | out_be32(mcm_vaddr + (MCM_PORT_CONFIG_OFFSET >> 2), pcr); |
52 | } | 50 | } |
53 | 51 | ||
54 | 52 | ||
diff --git a/arch/powerpc/platforms/86xx/pci.c b/arch/powerpc/platforms/86xx/pci.c index 5180df7c75bc..bc5139043112 100644 --- a/arch/powerpc/platforms/86xx/pci.c +++ b/arch/powerpc/platforms/86xx/pci.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * option) any later version. | 12 | * option) any later version. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
@@ -122,15 +121,12 @@ static void __init setup_pcie_atmu(struct pci_controller *hose, struct resource | |||
122 | static void __init | 121 | static void __init |
123 | mpc86xx_setup_pcie(struct pci_controller *hose, u32 pcie_offset, u32 pcie_size) | 122 | mpc86xx_setup_pcie(struct pci_controller *hose, u32 pcie_offset, u32 pcie_size) |
124 | { | 123 | { |
125 | volatile struct ccsr_pex *pcie; | ||
126 | u16 cmd; | 124 | u16 cmd; |
127 | unsigned int temps; | 125 | unsigned int temps; |
128 | 126 | ||
129 | DBG("PCIE host controller register offset 0x%08x, size 0x%08x.\n", | 127 | DBG("PCIE host controller register offset 0x%08x, size 0x%08x.\n", |
130 | pcie_offset, pcie_size); | 128 | pcie_offset, pcie_size); |
131 | 129 | ||
132 | pcie = ioremap(pcie_offset, pcie_size); | ||
133 | |||
134 | early_read_config_word(hose, 0, 0, PCI_COMMAND, &cmd); | 130 | early_read_config_word(hose, 0, 0, PCI_COMMAND, &cmd); |
135 | cmd |= PCI_COMMAND_SERR | PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY | 131 | cmd |= PCI_COMMAND_SERR | PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY |
136 | | PCI_COMMAND_IO; | 132 | | PCI_COMMAND_IO; |
@@ -144,6 +140,14 @@ mpc86xx_setup_pcie(struct pci_controller *hose, u32 pcie_offset, u32 pcie_size) | |||
144 | early_write_config_dword(hose, 0, 0, PCI_PRIMARY_BUS, temps); | 140 | early_write_config_dword(hose, 0, 0, PCI_PRIMARY_BUS, temps); |
145 | } | 141 | } |
146 | 142 | ||
143 | int mpc86xx_exclude_device(u_char bus, u_char devfn) | ||
144 | { | ||
145 | if (bus == 0 && PCI_SLOT(devfn) == 0) | ||
146 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
147 | |||
148 | return PCIBIOS_SUCCESSFUL; | ||
149 | } | ||
150 | |||
147 | int __init add_bridge(struct device_node *dev) | 151 | int __init add_bridge(struct device_node *dev) |
148 | { | 152 | { |
149 | int len; | 153 | int len; |
@@ -198,128 +202,3 @@ int __init add_bridge(struct device_node *dev) | |||
198 | 202 | ||
199 | return 0; | 203 | return 0; |
200 | } | 204 | } |
201 | |||
202 | static void __devinit quirk_ali1575(struct pci_dev *dev) | ||
203 | { | ||
204 | unsigned short temp; | ||
205 | |||
206 | /* | ||
207 | * ALI1575 interrupts route table setup: | ||
208 | * | ||
209 | * IRQ pin IRQ# | ||
210 | * PIRQA ---- 3 | ||
211 | * PIRQB ---- 4 | ||
212 | * PIRQC ---- 5 | ||
213 | * PIRQD ---- 6 | ||
214 | * PIRQE ---- 9 | ||
215 | * PIRQF ---- 10 | ||
216 | * PIRQG ---- 11 | ||
217 | * PIRQH ---- 12 | ||
218 | * | ||
219 | * interrupts for PCI slot0 -- PIRQA / PIRQB / PIRQC / PIRQD | ||
220 | * PCI slot1 -- PIRQB / PIRQC / PIRQD / PIRQA | ||
221 | */ | ||
222 | pci_write_config_dword(dev, 0x48, 0xb9317542); | ||
223 | |||
224 | /* USB 1.1 OHCI controller 1, interrupt: PIRQE */ | ||
225 | pci_write_config_byte(dev, 0x86, 0x0c); | ||
226 | |||
227 | /* USB 1.1 OHCI controller 2, interrupt: PIRQF */ | ||
228 | pci_write_config_byte(dev, 0x87, 0x0d); | ||
229 | |||
230 | /* USB 1.1 OHCI controller 3, interrupt: PIRQH */ | ||
231 | pci_write_config_byte(dev, 0x88, 0x0f); | ||
232 | |||
233 | /* USB 2.0 controller, interrupt: PIRQ7 */ | ||
234 | pci_write_config_byte(dev, 0x74, 0x06); | ||
235 | |||
236 | /* Audio controller, interrupt: PIRQE */ | ||
237 | pci_write_config_byte(dev, 0x8a, 0x0c); | ||
238 | |||
239 | /* Modem controller, interrupt: PIRQF */ | ||
240 | pci_write_config_byte(dev, 0x8b, 0x0d); | ||
241 | |||
242 | /* HD audio controller, interrupt: PIRQG */ | ||
243 | pci_write_config_byte(dev, 0x8c, 0x0e); | ||
244 | |||
245 | /* Serial ATA interrupt: PIRQD */ | ||
246 | pci_write_config_byte(dev, 0x8d, 0x0b); | ||
247 | |||
248 | /* SMB interrupt: PIRQH */ | ||
249 | pci_write_config_byte(dev, 0x8e, 0x0f); | ||
250 | |||
251 | /* PMU ACPI SCI interrupt: PIRQH */ | ||
252 | pci_write_config_byte(dev, 0x8f, 0x0f); | ||
253 | |||
254 | /* Primary PATA IDE IRQ: 14 | ||
255 | * Secondary PATA IDE IRQ: 15 | ||
256 | */ | ||
257 | pci_write_config_byte(dev, 0x44, 0x3d); | ||
258 | pci_write_config_byte(dev, 0x75, 0x0f); | ||
259 | |||
260 | /* Set IRQ14 and IRQ15 to legacy IRQs */ | ||
261 | pci_read_config_word(dev, 0x46, &temp); | ||
262 | temp |= 0xc000; | ||
263 | pci_write_config_word(dev, 0x46, temp); | ||
264 | |||
265 | /* Set i8259 interrupt trigger | ||
266 | * IRQ 3: Level | ||
267 | * IRQ 4: Level | ||
268 | * IRQ 5: Level | ||
269 | * IRQ 6: Level | ||
270 | * IRQ 7: Level | ||
271 | * IRQ 9: Level | ||
272 | * IRQ 10: Level | ||
273 | * IRQ 11: Level | ||
274 | * IRQ 12: Level | ||
275 | * IRQ 14: Edge | ||
276 | * IRQ 15: Edge | ||
277 | */ | ||
278 | outb(0xfa, 0x4d0); | ||
279 | outb(0x1e, 0x4d1); | ||
280 | } | ||
281 | |||
282 | static void __devinit quirk_uli5288(struct pci_dev *dev) | ||
283 | { | ||
284 | unsigned char c; | ||
285 | |||
286 | pci_read_config_byte(dev,0x83,&c); | ||
287 | c |= 0x80; | ||
288 | pci_write_config_byte(dev, 0x83, c); | ||
289 | |||
290 | pci_write_config_byte(dev, 0x09, 0x01); | ||
291 | pci_write_config_byte(dev, 0x0a, 0x06); | ||
292 | |||
293 | pci_read_config_byte(dev,0x83,&c); | ||
294 | c &= 0x7f; | ||
295 | pci_write_config_byte(dev, 0x83, c); | ||
296 | |||
297 | pci_read_config_byte(dev,0x84,&c); | ||
298 | c |= 0x01; | ||
299 | pci_write_config_byte(dev, 0x84, c); | ||
300 | } | ||
301 | |||
302 | static void __devinit quirk_uli5229(struct pci_dev *dev) | ||
303 | { | ||
304 | unsigned short temp; | ||
305 | pci_write_config_word(dev, 0x04, 0x0405); | ||
306 | pci_read_config_word(dev, 0x4a, &temp); | ||
307 | temp |= 0x1000; | ||
308 | pci_write_config_word(dev, 0x4a, temp); | ||
309 | } | ||
310 | |||
311 | static void __devinit early_uli5249(struct pci_dev *dev) | ||
312 | { | ||
313 | unsigned char temp; | ||
314 | pci_write_config_word(dev, 0x04, 0x0007); | ||
315 | pci_read_config_byte(dev, 0x7c, &temp); | ||
316 | pci_write_config_byte(dev, 0x7c, 0x80); | ||
317 | pci_write_config_byte(dev, 0x09, 0x01); | ||
318 | pci_write_config_byte(dev, 0x7c, temp); | ||
319 | dev->class |= 0x1; | ||
320 | } | ||
321 | |||
322 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_ali1575); | ||
323 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288); | ||
324 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); | ||
325 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 0x5249, early_uli5249); | ||
diff --git a/arch/powerpc/platforms/Makefile b/arch/powerpc/platforms/Makefile index 292863694562..5cf46dc57895 100644 --- a/arch/powerpc/platforms/Makefile +++ b/arch/powerpc/platforms/Makefile | |||
@@ -14,3 +14,4 @@ obj-$(CONFIG_PPC_PSERIES) += pseries/ | |||
14 | obj-$(CONFIG_PPC_ISERIES) += iseries/ | 14 | obj-$(CONFIG_PPC_ISERIES) += iseries/ |
15 | obj-$(CONFIG_PPC_MAPLE) += maple/ | 15 | obj-$(CONFIG_PPC_MAPLE) += maple/ |
16 | obj-$(CONFIG_PPC_CELL) += cell/ | 16 | obj-$(CONFIG_PPC_CELL) += cell/ |
17 | obj-$(CONFIG_EMBEDDED6xx) += embedded6xx/ | ||
diff --git a/arch/powerpc/platforms/cell/Kconfig b/arch/powerpc/platforms/cell/Kconfig index 352bbbacde9a..0c8c7b6ab897 100644 --- a/arch/powerpc/platforms/cell/Kconfig +++ b/arch/powerpc/platforms/cell/Kconfig | |||
@@ -6,6 +6,7 @@ config SPU_FS | |||
6 | default m | 6 | default m |
7 | depends on PPC_CELL | 7 | depends on PPC_CELL |
8 | select SPU_BASE | 8 | select SPU_BASE |
9 | select MEMORY_HOTPLUG | ||
9 | help | 10 | help |
10 | The SPU file system is used to access Synergistic Processing | 11 | The SPU file system is used to access Synergistic Processing |
11 | Units on machines implementing the Broadband Processor | 12 | Units on machines implementing the Broadband Processor |
@@ -18,7 +19,6 @@ config SPU_BASE | |||
18 | config SPUFS_MMAP | 19 | config SPUFS_MMAP |
19 | bool | 20 | bool |
20 | depends on SPU_FS && SPARSEMEM | 21 | depends on SPU_FS && SPARSEMEM |
21 | select MEMORY_HOTPLUG | ||
22 | default y | 22 | default y |
23 | 23 | ||
24 | config CBE_RAS | 24 | config CBE_RAS |
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c index 1bbf822b4efc..22da1335445a 100644 --- a/arch/powerpc/platforms/cell/interrupt.c +++ b/arch/powerpc/platforms/cell/interrupt.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 20 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
25 | #include <linux/irq.h> | 24 | #include <linux/irq.h> |
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
@@ -305,11 +304,11 @@ static void iic_request_ipi(int ipi, const char *name) | |||
305 | int irq; | 304 | int irq; |
306 | 305 | ||
307 | irq = iic_ipi_to_irq(ipi); | 306 | irq = iic_ipi_to_irq(ipi); |
308 | /* IPIs are marked SA_INTERRUPT as they must run with irqs | 307 | /* IPIs are marked IRQF_DISABLED as they must run with irqs |
309 | * disabled */ | 308 | * disabled */ |
310 | get_irq_desc(irq)->handler = &iic_pic; | 309 | get_irq_desc(irq)->chip = &iic_pic; |
311 | get_irq_desc(irq)->status |= IRQ_PER_CPU; | 310 | get_irq_desc(irq)->status |= IRQ_PER_CPU; |
312 | request_irq(irq, iic_ipi_action, SA_INTERRUPT, name, NULL); | 311 | request_irq(irq, iic_ipi_action, IRQF_DISABLED, name, NULL); |
313 | } | 312 | } |
314 | 313 | ||
315 | void iic_request_IPIs(void) | 314 | void iic_request_IPIs(void) |
@@ -330,7 +329,7 @@ static void iic_setup_spe_handlers(void) | |||
330 | for (be=0; be < num_present_cpus() / 2; be++) { | 329 | for (be=0; be < num_present_cpus() / 2; be++) { |
331 | for (isrc = 0; isrc < IIC_CLASS_STRIDE * 3; isrc++) { | 330 | for (isrc = 0; isrc < IIC_CLASS_STRIDE * 3; isrc++) { |
332 | int irq = IIC_NODE_STRIDE * be + IIC_SPE_OFFSET + isrc; | 331 | int irq = IIC_NODE_STRIDE * be + IIC_SPE_OFFSET + isrc; |
333 | get_irq_desc(irq)->handler = &iic_pic; | 332 | get_irq_desc(irq)->chip = &iic_pic; |
334 | } | 333 | } |
335 | } | 334 | } |
336 | } | 335 | } |
diff --git a/arch/powerpc/platforms/cell/pervasive.c b/arch/powerpc/platforms/cell/pervasive.c index 695ac4e1617e..9f2e4ed20a57 100644 --- a/arch/powerpc/platforms/cell/pervasive.c +++ b/arch/powerpc/platforms/cell/pervasive.c | |||
@@ -23,7 +23,6 @@ | |||
23 | 23 | ||
24 | #undef DEBUG | 24 | #undef DEBUG |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
28 | #include <linux/irq.h> | 27 | #include <linux/irq.h> |
29 | #include <linux/percpu.h> | 28 | #include <linux/percpu.h> |
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c index 3d1831d331e5..d8c2a29b3c15 100644 --- a/arch/powerpc/platforms/cell/setup.c +++ b/arch/powerpc/platforms/cell/setup.c | |||
@@ -14,7 +14,6 @@ | |||
14 | */ | 14 | */ |
15 | #undef DEBUG | 15 | #undef DEBUG |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
@@ -125,8 +124,6 @@ static void __init cell_init_early(void) | |||
125 | { | 124 | { |
126 | DBG(" -> cell_init_early()\n"); | 125 | DBG(" -> cell_init_early()\n"); |
127 | 126 | ||
128 | hpte_init_native(); | ||
129 | |||
130 | cell_init_iommu(); | 127 | cell_init_iommu(); |
131 | 128 | ||
132 | ppc64_interrupt_controller = IC_CELL_PIC; | 129 | ppc64_interrupt_controller = IC_CELL_PIC; |
@@ -139,11 +136,17 @@ static int __init cell_probe(void) | |||
139 | { | 136 | { |
140 | unsigned long root = of_get_flat_dt_root(); | 137 | unsigned long root = of_get_flat_dt_root(); |
141 | 138 | ||
142 | if (of_flat_dt_is_compatible(root, "IBM,CBEA") || | 139 | if (!of_flat_dt_is_compatible(root, "IBM,CBEA") && |
143 | of_flat_dt_is_compatible(root, "IBM,CPBW-1.0")) | 140 | !of_flat_dt_is_compatible(root, "IBM,CPBW-1.0")) |
144 | return 1; | 141 | return 0; |
142 | |||
143 | #ifdef CONFIG_UDBG_RTAS_CONSOLE | ||
144 | udbg_init_rtas_console(); | ||
145 | #endif | ||
146 | |||
147 | hpte_init_native(); | ||
145 | 148 | ||
146 | return 0; | 149 | return 1; |
147 | } | 150 | } |
148 | 151 | ||
149 | /* | 152 | /* |
diff --git a/arch/powerpc/platforms/cell/smp.c b/arch/powerpc/platforms/cell/smp.c index bdf6c5fe58c0..46aef0640742 100644 --- a/arch/powerpc/platforms/cell/smp.c +++ b/arch/powerpc/platforms/cell/smp.c | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | #undef DEBUG | 15 | #undef DEBUG |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/module.h> | 18 | #include <linux/module.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c index 55cbdd77a62d..7c3a0b6d34fd 100644 --- a/arch/powerpc/platforms/cell/spider-pic.c +++ b/arch/powerpc/platforms/cell/spider-pic.c | |||
@@ -162,7 +162,7 @@ void spider_init_IRQ_hardcoded(void) | |||
162 | spider_pics[node] = ioremap(spiderpic, 0x800); | 162 | spider_pics[node] = ioremap(spiderpic, 0x800); |
163 | for (n = 0; n < IIC_NUM_EXT; n++) { | 163 | for (n = 0; n < IIC_NUM_EXT; n++) { |
164 | int irq = n + IIC_EXT_OFFSET + node * IIC_NODE_STRIDE; | 164 | int irq = n + IIC_EXT_OFFSET + node * IIC_NODE_STRIDE; |
165 | get_irq_desc(irq)->handler = &spider_pic; | 165 | get_irq_desc(irq)->chip = &spider_pic; |
166 | } | 166 | } |
167 | 167 | ||
168 | /* do not mask any interrupts because of level */ | 168 | /* do not mask any interrupts because of level */ |
@@ -217,7 +217,7 @@ void spider_init_IRQ(void) | |||
217 | 217 | ||
218 | for (n = 0; n < IIC_NUM_EXT; n++) { | 218 | for (n = 0; n < IIC_NUM_EXT; n++) { |
219 | int irq = n + IIC_EXT_OFFSET + node * IIC_NODE_STRIDE; | 219 | int irq = n + IIC_EXT_OFFSET + node * IIC_NODE_STRIDE; |
220 | get_irq_desc(irq)->handler = &spider_pic; | 220 | get_irq_desc(irq)->chip = &spider_pic; |
221 | } | 221 | } |
222 | 222 | ||
223 | /* do not mask any interrupts because of level */ | 223 | /* do not mask any interrupts because of level */ |
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c index db82f503ba2c..656c1ef5f4ad 100644 --- a/arch/powerpc/platforms/cell/spu_base.c +++ b/arch/powerpc/platforms/cell/spu_base.c | |||
@@ -168,12 +168,12 @@ spu_irq_class_0_bottom(struct spu *spu) | |||
168 | 168 | ||
169 | stat &= mask; | 169 | stat &= mask; |
170 | 170 | ||
171 | if (stat & 1) /* invalid MFC DMA */ | 171 | if (stat & 1) /* invalid DMA alignment */ |
172 | __spu_trap_invalid_dma(spu); | ||
173 | |||
174 | if (stat & 2) /* invalid DMA alignment */ | ||
175 | __spu_trap_dma_align(spu); | 172 | __spu_trap_dma_align(spu); |
176 | 173 | ||
174 | if (stat & 2) /* invalid MFC DMA */ | ||
175 | __spu_trap_invalid_dma(spu); | ||
176 | |||
177 | if (stat & 4) /* error on SPU */ | 177 | if (stat & 4) /* error on SPU */ |
178 | __spu_trap_error(spu); | 178 | __spu_trap_error(spu); |
179 | 179 | ||
@@ -274,19 +274,19 @@ spu_request_irqs(struct spu *spu) | |||
274 | 274 | ||
275 | snprintf(spu->irq_c0, sizeof (spu->irq_c0), "spe%02d.0", spu->number); | 275 | snprintf(spu->irq_c0, sizeof (spu->irq_c0), "spe%02d.0", spu->number); |
276 | ret = request_irq(irq_base + spu->isrc, | 276 | ret = request_irq(irq_base + spu->isrc, |
277 | spu_irq_class_0, SA_INTERRUPT, spu->irq_c0, spu); | 277 | spu_irq_class_0, IRQF_DISABLED, spu->irq_c0, spu); |
278 | if (ret) | 278 | if (ret) |
279 | goto out; | 279 | goto out; |
280 | 280 | ||
281 | snprintf(spu->irq_c1, sizeof (spu->irq_c1), "spe%02d.1", spu->number); | 281 | snprintf(spu->irq_c1, sizeof (spu->irq_c1), "spe%02d.1", spu->number); |
282 | ret = request_irq(irq_base + IIC_CLASS_STRIDE + spu->isrc, | 282 | ret = request_irq(irq_base + IIC_CLASS_STRIDE + spu->isrc, |
283 | spu_irq_class_1, SA_INTERRUPT, spu->irq_c1, spu); | 283 | spu_irq_class_1, IRQF_DISABLED, spu->irq_c1, spu); |
284 | if (ret) | 284 | if (ret) |
285 | goto out1; | 285 | goto out1; |
286 | 286 | ||
287 | snprintf(spu->irq_c2, sizeof (spu->irq_c2), "spe%02d.2", spu->number); | 287 | snprintf(spu->irq_c2, sizeof (spu->irq_c2), "spe%02d.2", spu->number); |
288 | ret = request_irq(irq_base + 2*IIC_CLASS_STRIDE + spu->isrc, | 288 | ret = request_irq(irq_base + 2*IIC_CLASS_STRIDE + spu->isrc, |
289 | spu_irq_class_2, SA_INTERRUPT, spu->irq_c2, spu); | 289 | spu_irq_class_2, IRQF_DISABLED, spu->irq_c2, spu); |
290 | if (ret) | 290 | if (ret) |
291 | goto out2; | 291 | goto out2; |
292 | goto out; | 292 | goto out; |
diff --git a/arch/powerpc/platforms/cell/spufs/backing_ops.c b/arch/powerpc/platforms/cell/spufs/backing_ops.c index f1d35ddc9df3..2d22cd59d6fc 100644 --- a/arch/powerpc/platforms/cell/spufs/backing_ops.c +++ b/arch/powerpc/platforms/cell/spufs/backing_ops.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 21 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <linux/errno.h> | 25 | #include <linux/errno.h> |
27 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index 7854a380dce2..58e794f9da1b 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c | |||
@@ -204,7 +204,7 @@ static int spufs_cntl_mmap(struct file *file, struct vm_area_struct *vma) | |||
204 | 204 | ||
205 | vma->vm_flags |= VM_RESERVED; | 205 | vma->vm_flags |= VM_RESERVED; |
206 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) | 206 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) |
207 | | _PAGE_NO_CACHE); | 207 | | _PAGE_NO_CACHE | _PAGE_GUARDED); |
208 | 208 | ||
209 | vma->vm_ops = &spufs_cntl_mmap_vmops; | 209 | vma->vm_ops = &spufs_cntl_mmap_vmops; |
210 | return 0; | 210 | return 0; |
@@ -675,7 +675,7 @@ static int spufs_signal1_mmap(struct file *file, struct vm_area_struct *vma) | |||
675 | 675 | ||
676 | vma->vm_flags |= VM_RESERVED; | 676 | vma->vm_flags |= VM_RESERVED; |
677 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) | 677 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) |
678 | | _PAGE_NO_CACHE); | 678 | | _PAGE_NO_CACHE | _PAGE_GUARDED); |
679 | 679 | ||
680 | vma->vm_ops = &spufs_signal1_mmap_vmops; | 680 | vma->vm_ops = &spufs_signal1_mmap_vmops; |
681 | return 0; | 681 | return 0; |
@@ -762,7 +762,7 @@ static int spufs_signal2_mmap(struct file *file, struct vm_area_struct *vma) | |||
762 | /* FIXME: */ | 762 | /* FIXME: */ |
763 | vma->vm_flags |= VM_RESERVED; | 763 | vma->vm_flags |= VM_RESERVED; |
764 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) | 764 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) |
765 | | _PAGE_NO_CACHE); | 765 | | _PAGE_NO_CACHE | _PAGE_GUARDED); |
766 | 766 | ||
767 | vma->vm_ops = &spufs_signal2_mmap_vmops; | 767 | vma->vm_ops = &spufs_signal2_mmap_vmops; |
768 | return 0; | 768 | return 0; |
@@ -850,7 +850,7 @@ static int spufs_mss_mmap(struct file *file, struct vm_area_struct *vma) | |||
850 | 850 | ||
851 | vma->vm_flags |= VM_RESERVED; | 851 | vma->vm_flags |= VM_RESERVED; |
852 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) | 852 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) |
853 | | _PAGE_NO_CACHE); | 853 | | _PAGE_NO_CACHE | _PAGE_GUARDED); |
854 | 854 | ||
855 | vma->vm_ops = &spufs_mss_mmap_vmops; | 855 | vma->vm_ops = &spufs_mss_mmap_vmops; |
856 | return 0; | 856 | return 0; |
@@ -899,7 +899,7 @@ static int spufs_mfc_mmap(struct file *file, struct vm_area_struct *vma) | |||
899 | 899 | ||
900 | vma->vm_flags |= VM_RESERVED; | 900 | vma->vm_flags |= VM_RESERVED; |
901 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) | 901 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) |
902 | | _PAGE_NO_CACHE); | 902 | | _PAGE_NO_CACHE | _PAGE_GUARDED); |
903 | 903 | ||
904 | vma->vm_ops = &spufs_mfc_mmap_vmops; | 904 | vma->vm_ops = &spufs_mfc_mmap_vmops; |
905 | return 0; | 905 | return 0; |
diff --git a/arch/powerpc/platforms/cell/spufs/hw_ops.c b/arch/powerpc/platforms/cell/spufs/hw_ops.c index ede2cac46b6d..c8670f519734 100644 --- a/arch/powerpc/platforms/cell/spufs/hw_ops.c +++ b/arch/powerpc/platforms/cell/spufs/hw_ops.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 18 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/errno.h> | 22 | #include <linux/errno.h> |
24 | #include <linux/sched.h> | 23 | #include <linux/sched.h> |
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c index 3dcc5d8d66b9..1350294484b6 100644 --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c | |||
@@ -26,7 +26,6 @@ | |||
26 | 26 | ||
27 | #undef DEBUG | 27 | #undef DEBUG |
28 | 28 | ||
29 | #include <linux/config.h> | ||
30 | #include <linux/module.h> | 29 | #include <linux/module.h> |
31 | #include <linux/errno.h> | 30 | #include <linux/errno.h> |
32 | #include <linux/sched.h> | 31 | #include <linux/sched.h> |
diff --git a/arch/powerpc/platforms/cell/spufs/switch.c b/arch/powerpc/platforms/cell/spufs/switch.c index a656d810a44a..9d9d82dd32ba 100644 --- a/arch/powerpc/platforms/cell/spufs/switch.c +++ b/arch/powerpc/platforms/cell/spufs/switch.c | |||
@@ -32,7 +32,6 @@ | |||
32 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 32 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
33 | */ | 33 | */ |
34 | 34 | ||
35 | #include <linux/config.h> | ||
36 | #include <linux/module.h> | 35 | #include <linux/module.h> |
37 | #include <linux/errno.h> | 36 | #include <linux/errno.h> |
38 | #include <linux/sched.h> | 37 | #include <linux/sched.h> |
@@ -464,7 +463,8 @@ static inline void wait_purge_complete(struct spu_state *csa, struct spu *spu) | |||
464 | * Poll MFC_CNTL[Ps] until value '11' is read | 463 | * Poll MFC_CNTL[Ps] until value '11' is read |
465 | * (purge complete). | 464 | * (purge complete). |
466 | */ | 465 | */ |
467 | POLL_WHILE_FALSE(in_be64(&priv2->mfc_control_RW) & | 466 | POLL_WHILE_FALSE((in_be64(&priv2->mfc_control_RW) & |
467 | MFC_CNTL_PURGE_DMA_STATUS_MASK) == | ||
468 | MFC_CNTL_PURGE_DMA_COMPLETE); | 468 | MFC_CNTL_PURGE_DMA_COMPLETE); |
469 | } | 469 | } |
470 | 470 | ||
@@ -1028,7 +1028,8 @@ static inline void wait_suspend_mfc_complete(struct spu_state *csa, | |||
1028 | * Restore, Step 47. | 1028 | * Restore, Step 47. |
1029 | * Poll MFC_CNTL[Ss] until 11 is returned. | 1029 | * Poll MFC_CNTL[Ss] until 11 is returned. |
1030 | */ | 1030 | */ |
1031 | POLL_WHILE_FALSE(in_be64(&priv2->mfc_control_RW) & | 1031 | POLL_WHILE_FALSE((in_be64(&priv2->mfc_control_RW) & |
1032 | MFC_CNTL_SUSPEND_DMA_STATUS_MASK) == | ||
1032 | MFC_CNTL_SUSPEND_COMPLETE); | 1033 | MFC_CNTL_SUSPEND_COMPLETE); |
1033 | } | 1034 | } |
1034 | 1035 | ||
diff --git a/arch/powerpc/platforms/chrp/pci.c b/arch/powerpc/platforms/chrp/pci.c index ac224876ce59..66c253498803 100644 --- a/arch/powerpc/platforms/chrp/pci.c +++ b/arch/powerpc/platforms/chrp/pci.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * CHRP pci routines. | 2 | * CHRP pci routines. |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
7 | #include <linux/pci.h> | 6 | #include <linux/pci.h> |
8 | #include <linux/delay.h> | 7 | #include <linux/delay.h> |
@@ -143,7 +142,7 @@ hydra_init(void) | |||
143 | if (np == NULL || of_address_to_resource(np, 0, &r)) | 142 | if (np == NULL || of_address_to_resource(np, 0, &r)) |
144 | return 0; | 143 | return 0; |
145 | Hydra = ioremap(r.start, r.end-r.start); | 144 | Hydra = ioremap(r.start, r.end-r.start); |
146 | printk("Hydra Mac I/O at %lx\n", r.start); | 145 | printk("Hydra Mac I/O at %llx\n", (unsigned long long)r.start); |
147 | printk("Hydra Feature_Control was %x", | 146 | printk("Hydra Feature_Control was %x", |
148 | in_le32(&Hydra->Feature_Control)); | 147 | in_le32(&Hydra->Feature_Control)); |
149 | out_le32(&Hydra->Feature_Control, (HYDRA_FC_SCC_CELL_EN | | 148 | out_le32(&Hydra->Feature_Control, (HYDRA_FC_SCC_CELL_EN | |
@@ -267,7 +266,7 @@ chrp_find_bridges(void) | |||
267 | bus_range[0], bus_range[1]); | 266 | bus_range[0], bus_range[1]); |
268 | printk(" controlled by %s", dev->type); | 267 | printk(" controlled by %s", dev->type); |
269 | if (!is_longtrail) | 268 | if (!is_longtrail) |
270 | printk(" at %lx", r.start); | 269 | printk(" at %llx", (unsigned long long)r.start); |
271 | printk("\n"); | 270 | printk("\n"); |
272 | 271 | ||
273 | hose = pcibios_alloc_controller(); | 272 | hose = pcibios_alloc_controller(); |
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c index 18d89f38796b..1f1771b212b4 100644 --- a/arch/powerpc/platforms/chrp/setup.c +++ b/arch/powerpc/platforms/chrp/setup.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * bootup setup stuff.. | 8 | * bootup setup stuff.. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/platforms/chrp/smp.c b/arch/powerpc/platforms/chrp/smp.c index b616053bc331..c298ca1ea680 100644 --- a/arch/powerpc/platforms/chrp/smp.c +++ b/arch/powerpc/platforms/chrp/smp.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/smp.h> | 13 | #include <linux/smp.h> |
diff --git a/arch/powerpc/platforms/embedded6xx/Kconfig b/arch/powerpc/platforms/embedded6xx/Kconfig index 4fdbc9ae876b..ba07a9a7c039 100644 --- a/arch/powerpc/platforms/embedded6xx/Kconfig +++ b/arch/powerpc/platforms/embedded6xx/Kconfig | |||
@@ -74,6 +74,16 @@ config SANDPOINT | |||
74 | Select SANDPOINT if configuring for a Motorola Sandpoint X3 | 74 | Select SANDPOINT if configuring for a Motorola Sandpoint X3 |
75 | (any flavor). | 75 | (any flavor). |
76 | 76 | ||
77 | config MPC7448HPC2 | ||
78 | bool "Freescale MPC7448HPC2(Taiga)" | ||
79 | select TSI108_BRIDGE | ||
80 | select DEFAULT_UIMAGE | ||
81 | select PPC_UDBG_16550 | ||
82 | select MPIC | ||
83 | help | ||
84 | Select MPC7448HPC2 if configuring for Freescale MPC7448HPC2 (Taiga) | ||
85 | platform | ||
86 | |||
77 | config RADSTONE_PPC7D | 87 | config RADSTONE_PPC7D |
78 | bool "Radstone Technology PPC7D board" | 88 | bool "Radstone Technology PPC7D board" |
79 | select PPC_I8259 | 89 | select PPC_I8259 |
@@ -221,6 +231,11 @@ config MV64X60 | |||
221 | select PPC_INDIRECT_PCI | 231 | select PPC_INDIRECT_PCI |
222 | default y | 232 | default y |
223 | 233 | ||
234 | config TSI108_BRIDGE | ||
235 | bool | ||
236 | depends on MPC7448HPC2 | ||
237 | default y | ||
238 | |||
224 | menu "Set bridge options" | 239 | menu "Set bridge options" |
225 | depends on MV64X60 | 240 | depends on MV64X60 |
226 | 241 | ||
diff --git a/arch/powerpc/platforms/embedded6xx/Makefile b/arch/powerpc/platforms/embedded6xx/Makefile new file mode 100644 index 000000000000..fa499fe59291 --- /dev/null +++ b/arch/powerpc/platforms/embedded6xx/Makefile | |||
@@ -0,0 +1,4 @@ | |||
1 | # | ||
2 | # Makefile for the 6xx/7xx/7xxxx linux kernel. | ||
3 | # | ||
4 | obj-$(CONFIG_MPC7448HPC2) += mpc7448_hpc2.o | ||
diff --git a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c new file mode 100644 index 000000000000..d7a4fc7ca238 --- /dev/null +++ b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c | |||
@@ -0,0 +1,335 @@ | |||
1 | /* | ||
2 | * mpc7448_hpc2.c | ||
3 | * | ||
4 | * Board setup routines for the Freescale Taiga platform | ||
5 | * | ||
6 | * Author: Jacob Pan | ||
7 | * jacob.pan@freescale.com | ||
8 | * Author: Xianghua Xiao | ||
9 | * x.xiao@freescale.com | ||
10 | * Maintainer: Roy Zang <tie-fei.zang@freescale.com> | ||
11 | * Add Flat Device Tree support fot mpc7448hpc2 board | ||
12 | * | ||
13 | * Copyright 2004-2006 Freescale Semiconductor, Inc. | ||
14 | * | ||
15 | * This file is licensed under | ||
16 | * the terms of the GNU General Public License version 2. This program | ||
17 | * is licensed "as is" without any warranty of any kind, whether express | ||
18 | * or implied. | ||
19 | */ | ||
20 | |||
21 | #include <linux/config.h> | ||
22 | #include <linux/stddef.h> | ||
23 | #include <linux/kernel.h> | ||
24 | #include <linux/pci.h> | ||
25 | #include <linux/kdev_t.h> | ||
26 | #include <linux/console.h> | ||
27 | #include <linux/delay.h> | ||
28 | #include <linux/irq.h> | ||
29 | #include <linux/ide.h> | ||
30 | #include <linux/seq_file.h> | ||
31 | #include <linux/root_dev.h> | ||
32 | #include <linux/serial.h> | ||
33 | #include <linux/tty.h> | ||
34 | #include <linux/serial_core.h> | ||
35 | |||
36 | #include <asm/system.h> | ||
37 | #include <asm/time.h> | ||
38 | #include <asm/machdep.h> | ||
39 | #include <asm/prom.h> | ||
40 | #include <asm/udbg.h> | ||
41 | #include <asm/tsi108.h> | ||
42 | #include <asm/pci-bridge.h> | ||
43 | #include <asm/reg.h> | ||
44 | #include <mm/mmu_decl.h> | ||
45 | #include "mpc7448_hpc2.h" | ||
46 | #include <asm/tsi108_irq.h> | ||
47 | #include <asm/mpic.h> | ||
48 | |||
49 | #undef DEBUG | ||
50 | #ifdef DEBUG | ||
51 | #define DBG(fmt...) do { printk(fmt); } while(0) | ||
52 | #else | ||
53 | #define DBG(fmt...) do { } while(0) | ||
54 | #endif | ||
55 | |||
56 | #ifndef CONFIG_PCI | ||
57 | isa_io_base = MPC7448_HPC2_ISA_IO_BASE; | ||
58 | isa_mem_base = MPC7448_HPC2_ISA_MEM_BASE; | ||
59 | pci_dram_offset = MPC7448_HPC2_PCI_MEM_OFFSET; | ||
60 | #endif | ||
61 | |||
62 | extern int tsi108_setup_pci(struct device_node *dev); | ||
63 | extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val); | ||
64 | extern void tsi108_pci_int_init(void); | ||
65 | extern int tsi108_irq_cascade(struct pt_regs *regs, void *unused); | ||
66 | |||
67 | /* | ||
68 | * Define all of the IRQ senses and polarities. Taken from the | ||
69 | * mpc7448hpc manual. | ||
70 | * Note: Likely, this table and the following function should be | ||
71 | * obtained and derived from the OF Device Tree. | ||
72 | */ | ||
73 | |||
74 | static u_char mpc7448_hpc2_pic_initsenses[] __initdata = { | ||
75 | /* External on-board sources */ | ||
76 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* INT[0] XINT0 from FPGA */ | ||
77 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* INT[1] XINT1 from FPGA */ | ||
78 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* INT[2] PHY_INT from both GIGE */ | ||
79 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* INT[3] RESERVED */ | ||
80 | /* Internal Tsi108/109 interrupt sources */ | ||
81 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* Reserved IRQ */ | ||
82 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* Reserved IRQ */ | ||
83 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* Reserved IRQ */ | ||
84 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* Reserved IRQ */ | ||
85 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* DMA0 */ | ||
86 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* DMA1 */ | ||
87 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* DMA2 */ | ||
88 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* DMA3 */ | ||
89 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* UART0 */ | ||
90 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* UART1 */ | ||
91 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* I2C */ | ||
92 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* GPIO */ | ||
93 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* GIGE0 */ | ||
94 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* GIGE1 */ | ||
95 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* Reserved IRQ */ | ||
96 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* HLP */ | ||
97 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* SDC */ | ||
98 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* Processor IF */ | ||
99 | (IRQ_SENSE_EDGE | IRQ_POLARITY_POSITIVE), /* Reserved IRQ */ | ||
100 | (IRQ_SENSE_LEVEL | IRQ_POLARITY_POSITIVE), /* PCI/X block */ | ||
101 | }; | ||
102 | |||
103 | int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn) | ||
104 | { | ||
105 | if (bus == 0 && PCI_SLOT(devfn) == 0) | ||
106 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
107 | else | ||
108 | return PCIBIOS_SUCCESSFUL; | ||
109 | } | ||
110 | |||
111 | /* | ||
112 | * find pci slot by devfn in interrupt map of OF tree | ||
113 | */ | ||
114 | u8 find_slot_by_devfn(unsigned int *interrupt_map, unsigned int devfn) | ||
115 | { | ||
116 | int i; | ||
117 | unsigned int tmp; | ||
118 | for (i = 0; i < 4; i++){ | ||
119 | tmp = interrupt_map[i*4*7]; | ||
120 | if ((tmp >> 11) == (devfn >> 3)) | ||
121 | return i; | ||
122 | } | ||
123 | return i; | ||
124 | } | ||
125 | |||
126 | /* | ||
127 | * Scans the interrupt map for pci device | ||
128 | */ | ||
129 | void mpc7448_hpc2_fixup_irq(struct pci_dev *dev) | ||
130 | { | ||
131 | struct pci_controller *hose; | ||
132 | struct device_node *node; | ||
133 | unsigned int *interrupt; | ||
134 | int busnr; | ||
135 | int len; | ||
136 | u8 slot; | ||
137 | u8 pin; | ||
138 | |||
139 | /* Lookup the hose */ | ||
140 | busnr = dev->bus->number; | ||
141 | hose = pci_bus_to_hose(busnr); | ||
142 | if (!hose) | ||
143 | printk(KERN_ERR "No pci hose found\n"); | ||
144 | |||
145 | /* Check it has an OF node associated */ | ||
146 | node = (struct device_node *) hose->arch_data; | ||
147 | if (!node) | ||
148 | printk(KERN_ERR "No pci node found\n"); | ||
149 | |||
150 | interrupt = (unsigned int *) get_property(node, "interrupt-map", &len); | ||
151 | slot = find_slot_by_devfn(interrupt, dev->devfn); | ||
152 | pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); | ||
153 | if (pin == 0 || pin > 4) | ||
154 | pin = 1; | ||
155 | pin--; | ||
156 | dev->irq = interrupt[slot*4*7 + pin*7 + 5]; | ||
157 | DBG("TSI_PCI: dev->irq = 0x%x\n", dev->irq); | ||
158 | } | ||
159 | /* temporary pci irq map fixup*/ | ||
160 | |||
161 | void __init mpc7448_hpc2_pcibios_fixup(void) | ||
162 | { | ||
163 | struct pci_dev *dev = NULL; | ||
164 | for_each_pci_dev(dev) { | ||
165 | mpc7448_hpc2_fixup_irq(dev); | ||
166 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); | ||
167 | } | ||
168 | } | ||
169 | |||
170 | static void __init mpc7448_hpc2_setup_arch(void) | ||
171 | { | ||
172 | struct device_node *cpu; | ||
173 | struct device_node *np; | ||
174 | if (ppc_md.progress) | ||
175 | ppc_md.progress("mpc7448_hpc2_setup_arch():set_bridge", 0); | ||
176 | |||
177 | cpu = of_find_node_by_type(NULL, "cpu"); | ||
178 | if (cpu != 0) { | ||
179 | unsigned int *fp; | ||
180 | |||
181 | fp = (int *)get_property(cpu, "clock-frequency", NULL); | ||
182 | if (fp != 0) | ||
183 | loops_per_jiffy = *fp / HZ; | ||
184 | else | ||
185 | loops_per_jiffy = 50000000 / HZ; | ||
186 | of_node_put(cpu); | ||
187 | } | ||
188 | tsi108_csr_vir_base = get_vir_csrbase(); | ||
189 | |||
190 | #ifdef CONFIG_ROOT_NFS | ||
191 | ROOT_DEV = Root_NFS; | ||
192 | #else | ||
193 | ROOT_DEV = Root_HDA1; | ||
194 | #endif | ||
195 | |||
196 | #ifdef CONFIG_BLK_DEV_INITRD | ||
197 | ROOT_DEV = Root_RAM0; | ||
198 | #endif | ||
199 | |||
200 | /* setup PCI host bridge */ | ||
201 | #ifdef CONFIG_PCI | ||
202 | for (np = NULL; (np = of_find_node_by_type(np, "pci")) != NULL;) | ||
203 | tsi108_setup_pci(np); | ||
204 | |||
205 | ppc_md.pci_exclude_device = mpc7448_hpc2_exclude_device; | ||
206 | if (ppc_md.progress) | ||
207 | ppc_md.progress("tsi108: resources set", 0x100); | ||
208 | #endif | ||
209 | |||
210 | printk(KERN_INFO "MPC7448HPC2 (TAIGA) Platform\n"); | ||
211 | printk(KERN_INFO | ||
212 | "Jointly ported by Freescale and Tundra Semiconductor\n"); | ||
213 | printk(KERN_INFO | ||
214 | "Enabling L2 cache then enabling the HID0 prefetch engine.\n"); | ||
215 | } | ||
216 | |||
217 | /* | ||
218 | * Interrupt setup and service. Interrrupts on the mpc7448_hpc2 come | ||
219 | * from the four external INT pins, PCI interrupts are routed via | ||
220 | * PCI interrupt control registers, it generates internal IRQ23 | ||
221 | * | ||
222 | * Interrupt routing on the Taiga Board: | ||
223 | * TSI108:PB_INT[0] -> CPU0:INT# | ||
224 | * TSI108:PB_INT[1] -> CPU0:MCP# | ||
225 | * TSI108:PB_INT[2] -> N/C | ||
226 | * TSI108:PB_INT[3] -> N/C | ||
227 | */ | ||
228 | static void __init mpc7448_hpc2_init_IRQ(void) | ||
229 | { | ||
230 | struct mpic *mpic; | ||
231 | phys_addr_t mpic_paddr = 0; | ||
232 | struct device_node *tsi_pic; | ||
233 | |||
234 | tsi_pic = of_find_node_by_type(NULL, "open-pic"); | ||
235 | if (tsi_pic) { | ||
236 | unsigned int size; | ||
237 | void *prop = get_property(tsi_pic, "reg", &size); | ||
238 | mpic_paddr = of_translate_address(tsi_pic, prop); | ||
239 | } | ||
240 | |||
241 | if (mpic_paddr == 0) { | ||
242 | printk("%s: No tsi108 PIC found !\n", __FUNCTION__); | ||
243 | return; | ||
244 | } | ||
245 | |||
246 | DBG("%s: tsi108pic phys_addr = 0x%x\n", __FUNCTION__, | ||
247 | (u32) mpic_paddr); | ||
248 | |||
249 | mpic = mpic_alloc(mpic_paddr, | ||
250 | MPIC_PRIMARY | MPIC_BIG_ENDIAN | MPIC_WANTS_RESET | | ||
251 | MPIC_SPV_EOI | MPIC_MOD_ID(MPIC_ID_TSI108), | ||
252 | 0, /* num_sources used */ | ||
253 | TSI108_IRQ_BASE, | ||
254 | 0, /* num_sources used */ | ||
255 | NR_IRQS - 4 /* XXXX */, | ||
256 | mpc7448_hpc2_pic_initsenses, | ||
257 | sizeof(mpc7448_hpc2_pic_initsenses), "Tsi108_PIC"); | ||
258 | |||
259 | BUG_ON(mpic == NULL); /* XXXX */ | ||
260 | |||
261 | mpic_init(mpic); | ||
262 | mpic_setup_cascade(IRQ_TSI108_PCI, tsi108_irq_cascade, mpic); | ||
263 | tsi108_pci_int_init(); | ||
264 | |||
265 | /* Configure MPIC outputs to CPU0 */ | ||
266 | tsi108_write_reg(TSI108_MPIC_OFFSET + 0x30c, 0); | ||
267 | } | ||
268 | |||
269 | void mpc7448_hpc2_show_cpuinfo(struct seq_file *m) | ||
270 | { | ||
271 | seq_printf(m, "vendor\t\t: Freescale Semiconductor\n"); | ||
272 | seq_printf(m, "machine\t\t: MPC7448hpc2\n"); | ||
273 | } | ||
274 | |||
275 | void mpc7448_hpc2_restart(char *cmd) | ||
276 | { | ||
277 | local_irq_disable(); | ||
278 | |||
279 | /* Set exception prefix high - to the firmware */ | ||
280 | _nmask_and_or_msr(0, MSR_IP); | ||
281 | |||
282 | for (;;) ; /* Spin until reset happens */ | ||
283 | } | ||
284 | |||
285 | void mpc7448_hpc2_power_off(void) | ||
286 | { | ||
287 | local_irq_disable(); | ||
288 | for (;;) ; /* No way to shut power off with software */ | ||
289 | } | ||
290 | |||
291 | void mpc7448_hpc2_halt(void) | ||
292 | { | ||
293 | mpc7448_hpc2_power_off(); | ||
294 | } | ||
295 | |||
296 | /* | ||
297 | * Called very early, device-tree isn't unflattened | ||
298 | */ | ||
299 | static int __init mpc7448_hpc2_probe(void) | ||
300 | { | ||
301 | unsigned long root = of_get_flat_dt_root(); | ||
302 | |||
303 | if (!of_flat_dt_is_compatible(root, "mpc74xx")) | ||
304 | return 0; | ||
305 | return 1; | ||
306 | } | ||
307 | |||
308 | static int mpc7448_machine_check_exception(struct pt_regs *regs) | ||
309 | { | ||
310 | extern void tsi108_clear_pci_cfg_error(void); | ||
311 | const struct exception_table_entry *entry; | ||
312 | |||
313 | /* Are we prepared to handle this fault */ | ||
314 | if ((entry = search_exception_tables(regs->nip)) != NULL) { | ||
315 | tsi108_clear_pci_cfg_error(); | ||
316 | regs->msr |= MSR_RI; | ||
317 | regs->nip = entry->fixup; | ||
318 | return 1; | ||
319 | } | ||
320 | return 0; | ||
321 | |||
322 | } | ||
323 | define_machine(mpc7448_hpc2){ | ||
324 | .name = "MPC7448 HPC2", | ||
325 | .probe = mpc7448_hpc2_probe, | ||
326 | .setup_arch = mpc7448_hpc2_setup_arch, | ||
327 | .init_IRQ = mpc7448_hpc2_init_IRQ, | ||
328 | .show_cpuinfo = mpc7448_hpc2_show_cpuinfo, | ||
329 | .get_irq = mpic_get_irq, | ||
330 | .pcibios_fixup = mpc7448_hpc2_pcibios_fixup, | ||
331 | .restart = mpc7448_hpc2_restart, | ||
332 | .calibrate_decr = generic_calibrate_decr, | ||
333 | .machine_check_exception= mpc7448_machine_check_exception, | ||
334 | .progress = udbg_progress, | ||
335 | }; | ||
diff --git a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.h b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.h new file mode 100644 index 000000000000..a543a5242e34 --- /dev/null +++ b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* | ||
2 | * mpc7448_hpc2.h | ||
3 | * | ||
4 | * Definitions for Freescale MPC7448_HPC2 platform | ||
5 | * | ||
6 | * Author: Jacob Pan | ||
7 | * jacob.pan@freescale.com | ||
8 | * Maintainer: Roy Zang <roy.zang@freescale.com> | ||
9 | * | ||
10 | * 2006 (c) Freescale Semiconductor, Inc. This file is licensed under | ||
11 | * the terms of the GNU General Public License version 2. This program | ||
12 | * is licensed "as is" without any warranty of any kind, whether express | ||
13 | * or implied. | ||
14 | */ | ||
15 | |||
16 | #ifndef __PPC_PLATFORMS_MPC7448_HPC2_H | ||
17 | #define __PPC_PLATFORMS_MPC7448_HPC2_H | ||
18 | |||
19 | #include <asm/ppcboot.h> | ||
20 | |||
21 | /* Base Addresses for the PCI bus | ||
22 | */ | ||
23 | #define MPC7448_HPC2_PCI_MEM_OFFSET (0x00000000) | ||
24 | #define MPC7448_HPC2_ISA_IO_BASE (0x00000000) | ||
25 | #define MPC7448_HPC2_ISA_MEM_BASE (0x00000000) | ||
26 | #endif /* __PPC_PLATFORMS_MPC7448_HPC2_H */ | ||
diff --git a/arch/powerpc/platforms/iseries/dt.c b/arch/powerpc/platforms/iseries/dt.c index d3444aabe76e..d194140c1ebf 100644 --- a/arch/powerpc/platforms/iseries/dt.c +++ b/arch/powerpc/platforms/iseries/dt.c | |||
@@ -252,6 +252,7 @@ static void __init dt_model(struct iseries_flat_dt *dt) | |||
252 | { | 252 | { |
253 | char buf[16] = "IBM,"; | 253 | char buf[16] = "IBM,"; |
254 | 254 | ||
255 | /* N.B. lparcfg.c knows about the "IBM," prefixes ... */ | ||
255 | /* "IBM," + mfgId[2:3] + systemSerial[1:5] */ | 256 | /* "IBM," + mfgId[2:3] + systemSerial[1:5] */ |
256 | strne2a(buf + 4, xItExtVpdPanel.mfgID + 2, 2); | 257 | strne2a(buf + 4, xItExtVpdPanel.mfgID + 2, 2); |
257 | strne2a(buf + 6, xItExtVpdPanel.systemSerial + 1, 5); | 258 | strne2a(buf + 6, xItExtVpdPanel.systemSerial + 1, 5); |
@@ -264,6 +265,7 @@ static void __init dt_model(struct iseries_flat_dt *dt) | |||
264 | dt_prop_str(dt, "model", buf); | 265 | dt_prop_str(dt, "model", buf); |
265 | 266 | ||
266 | dt_prop_str(dt, "compatible", "IBM,iSeries"); | 267 | dt_prop_str(dt, "compatible", "IBM,iSeries"); |
268 | dt_prop_u32(dt, "ibm,partition-no", HvLpConfig_getLpIndex()); | ||
267 | } | 269 | } |
268 | 270 | ||
269 | static void __init dt_do_vdevice(struct iseries_flat_dt *dt, | 271 | static void __init dt_do_vdevice(struct iseries_flat_dt *dt, |
diff --git a/arch/powerpc/platforms/iseries/htab.c b/arch/powerpc/platforms/iseries/htab.c index 30bdcf3925d9..ed44dfceaa45 100644 --- a/arch/powerpc/platforms/iseries/htab.c +++ b/arch/powerpc/platforms/iseries/htab.c | |||
@@ -242,13 +242,11 @@ static void iSeries_hpte_invalidate(unsigned long slot, unsigned long va, | |||
242 | local_irq_restore(flags); | 242 | local_irq_restore(flags); |
243 | } | 243 | } |
244 | 244 | ||
245 | void hpte_init_iSeries(void) | 245 | void __init hpte_init_iSeries(void) |
246 | { | 246 | { |
247 | ppc_md.hpte_invalidate = iSeries_hpte_invalidate; | 247 | ppc_md.hpte_invalidate = iSeries_hpte_invalidate; |
248 | ppc_md.hpte_updatepp = iSeries_hpte_updatepp; | 248 | ppc_md.hpte_updatepp = iSeries_hpte_updatepp; |
249 | ppc_md.hpte_updateboltedpp = iSeries_hpte_updateboltedpp; | 249 | ppc_md.hpte_updateboltedpp = iSeries_hpte_updateboltedpp; |
250 | ppc_md.hpte_insert = iSeries_hpte_insert; | 250 | ppc_md.hpte_insert = iSeries_hpte_insert; |
251 | ppc_md.hpte_remove = iSeries_hpte_remove; | 251 | ppc_md.hpte_remove = iSeries_hpte_remove; |
252 | |||
253 | htab_finish_init(); | ||
254 | } | 252 | } |
diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c index 62bbbcf5ded3..f70e820e7304 100644 --- a/arch/powerpc/platforms/iseries/irq.c +++ b/arch/powerpc/platforms/iseries/irq.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * Created, December 13, 2000 by Wayne Holm | 23 | * Created, December 13, 2000 by Wayne Holm |
24 | * End Change Activity | 24 | * End Change Activity |
25 | */ | 25 | */ |
26 | #include <linux/config.h> | ||
27 | #include <linux/pci.h> | 26 | #include <linux/pci.h> |
28 | #include <linux/init.h> | 27 | #include <linux/init.h> |
29 | #include <linux/threads.h> | 28 | #include <linux/threads.h> |
@@ -242,9 +241,9 @@ void __init iSeries_activate_IRQs() | |||
242 | for_each_irq (irq) { | 241 | for_each_irq (irq) { |
243 | irq_desc_t *desc = get_irq_desc(irq); | 242 | irq_desc_t *desc = get_irq_desc(irq); |
244 | 243 | ||
245 | if (desc && desc->handler && desc->handler->startup) { | 244 | if (desc && desc->chip && desc->chip->startup) { |
246 | spin_lock_irqsave(&desc->lock, flags); | 245 | spin_lock_irqsave(&desc->lock, flags); |
247 | desc->handler->startup(irq); | 246 | desc->chip->startup(irq); |
248 | spin_unlock_irqrestore(&desc->lock, flags); | 247 | spin_unlock_irqrestore(&desc->lock, flags); |
249 | } | 248 | } |
250 | } | 249 | } |
@@ -324,7 +323,7 @@ int __init iSeries_allocate_IRQ(HvBusNumber bus, | |||
324 | + function; | 323 | + function; |
325 | virtirq = virt_irq_create_mapping(realirq); | 324 | virtirq = virt_irq_create_mapping(realirq); |
326 | 325 | ||
327 | irq_desc[virtirq].handler = &iSeries_IRQ_handler; | 326 | irq_desc[virtirq].chip = &iSeries_IRQ_handler; |
328 | return virtirq; | 327 | return virtirq; |
329 | } | 328 | } |
330 | 329 | ||
diff --git a/arch/powerpc/platforms/iseries/lpardata.c b/arch/powerpc/platforms/iseries/lpardata.c index 438e2dba63b5..a7769445d6c7 100644 --- a/arch/powerpc/platforms/iseries/lpardata.c +++ b/arch/powerpc/platforms/iseries/lpardata.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * as published by the Free Software Foundation; either version | 6 | * as published by the Free Software Foundation; either version |
7 | * 2 of the License, or (at your option) any later version. | 7 | * 2 of the License, or (at your option) any later version. |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/threads.h> | 10 | #include <linux/threads.h> |
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
diff --git a/arch/powerpc/platforms/iseries/lpevents.c b/arch/powerpc/platforms/iseries/lpevents.c index 8ca7b9396355..2a9f81ea27d6 100644 --- a/arch/powerpc/platforms/iseries/lpevents.c +++ b/arch/powerpc/platforms/iseries/lpevents.c | |||
@@ -51,20 +51,21 @@ static unsigned lpEventHandlerPaths[HvLpEvent_Type_NumTypes]; | |||
51 | static struct HvLpEvent * get_next_hvlpevent(void) | 51 | static struct HvLpEvent * get_next_hvlpevent(void) |
52 | { | 52 | { |
53 | struct HvLpEvent * event; | 53 | struct HvLpEvent * event; |
54 | event = (struct HvLpEvent *)hvlpevent_queue.xSlicCurEventPtr; | 54 | event = (struct HvLpEvent *)hvlpevent_queue.hq_current_event; |
55 | 55 | ||
56 | if (hvlpevent_is_valid(event)) { | 56 | if (hvlpevent_is_valid(event)) { |
57 | /* rmb() needed only for weakly consistent machines (regatta) */ | 57 | /* rmb() needed only for weakly consistent machines (regatta) */ |
58 | rmb(); | 58 | rmb(); |
59 | /* Set pointer to next potential event */ | 59 | /* Set pointer to next potential event */ |
60 | hvlpevent_queue.xSlicCurEventPtr += ((event->xSizeMinus1 + | 60 | hvlpevent_queue.hq_current_event += ((event->xSizeMinus1 + |
61 | LpEventAlign) / LpEventAlign) * LpEventAlign; | 61 | IT_LP_EVENT_ALIGN) / IT_LP_EVENT_ALIGN) * |
62 | IT_LP_EVENT_ALIGN; | ||
62 | 63 | ||
63 | /* Wrap to beginning if no room at end */ | 64 | /* Wrap to beginning if no room at end */ |
64 | if (hvlpevent_queue.xSlicCurEventPtr > | 65 | if (hvlpevent_queue.hq_current_event > |
65 | hvlpevent_queue.xSlicLastValidEventPtr) { | 66 | hvlpevent_queue.hq_last_event) { |
66 | hvlpevent_queue.xSlicCurEventPtr = | 67 | hvlpevent_queue.hq_current_event = |
67 | hvlpevent_queue.xSlicEventStackPtr; | 68 | hvlpevent_queue.hq_event_stack; |
68 | } | 69 | } |
69 | } else { | 70 | } else { |
70 | event = NULL; | 71 | event = NULL; |
@@ -82,10 +83,10 @@ int hvlpevent_is_pending(void) | |||
82 | if (smp_processor_id() >= spread_lpevents) | 83 | if (smp_processor_id() >= spread_lpevents) |
83 | return 0; | 84 | return 0; |
84 | 85 | ||
85 | next_event = (struct HvLpEvent *)hvlpevent_queue.xSlicCurEventPtr; | 86 | next_event = (struct HvLpEvent *)hvlpevent_queue.hq_current_event; |
86 | 87 | ||
87 | return hvlpevent_is_valid(next_event) || | 88 | return hvlpevent_is_valid(next_event) || |
88 | hvlpevent_queue.xPlicOverflowIntPending; | 89 | hvlpevent_queue.hq_overflow_pending; |
89 | } | 90 | } |
90 | 91 | ||
91 | static void hvlpevent_clear_valid(struct HvLpEvent * event) | 92 | static void hvlpevent_clear_valid(struct HvLpEvent * event) |
@@ -95,18 +96,18 @@ static void hvlpevent_clear_valid(struct HvLpEvent * event) | |||
95 | * ie. on 64-byte boundaries. | 96 | * ie. on 64-byte boundaries. |
96 | */ | 97 | */ |
97 | struct HvLpEvent *tmp; | 98 | struct HvLpEvent *tmp; |
98 | unsigned extra = ((event->xSizeMinus1 + LpEventAlign) / | 99 | unsigned extra = ((event->xSizeMinus1 + IT_LP_EVENT_ALIGN) / |
99 | LpEventAlign) - 1; | 100 | IT_LP_EVENT_ALIGN) - 1; |
100 | 101 | ||
101 | switch (extra) { | 102 | switch (extra) { |
102 | case 3: | 103 | case 3: |
103 | tmp = (struct HvLpEvent*)((char*)event + 3 * LpEventAlign); | 104 | tmp = (struct HvLpEvent*)((char*)event + 3 * IT_LP_EVENT_ALIGN); |
104 | hvlpevent_invalidate(tmp); | 105 | hvlpevent_invalidate(tmp); |
105 | case 2: | 106 | case 2: |
106 | tmp = (struct HvLpEvent*)((char*)event + 2 * LpEventAlign); | 107 | tmp = (struct HvLpEvent*)((char*)event + 2 * IT_LP_EVENT_ALIGN); |
107 | hvlpevent_invalidate(tmp); | 108 | hvlpevent_invalidate(tmp); |
108 | case 1: | 109 | case 1: |
109 | tmp = (struct HvLpEvent*)((char*)event + 1 * LpEventAlign); | 110 | tmp = (struct HvLpEvent*)((char*)event + 1 * IT_LP_EVENT_ALIGN); |
110 | hvlpevent_invalidate(tmp); | 111 | hvlpevent_invalidate(tmp); |
111 | } | 112 | } |
112 | 113 | ||
@@ -120,7 +121,7 @@ void process_hvlpevents(struct pt_regs *regs) | |||
120 | struct HvLpEvent * event; | 121 | struct HvLpEvent * event; |
121 | 122 | ||
122 | /* If we have recursed, just return */ | 123 | /* If we have recursed, just return */ |
123 | if (!spin_trylock(&hvlpevent_queue.lock)) | 124 | if (!spin_trylock(&hvlpevent_queue.hq_lock)) |
124 | return; | 125 | return; |
125 | 126 | ||
126 | for (;;) { | 127 | for (;;) { |
@@ -148,17 +149,17 @@ void process_hvlpevents(struct pt_regs *regs) | |||
148 | printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType ); | 149 | printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType ); |
149 | 150 | ||
150 | hvlpevent_clear_valid(event); | 151 | hvlpevent_clear_valid(event); |
151 | } else if (hvlpevent_queue.xPlicOverflowIntPending) | 152 | } else if (hvlpevent_queue.hq_overflow_pending) |
152 | /* | 153 | /* |
153 | * No more valid events. If overflow events are | 154 | * No more valid events. If overflow events are |
154 | * pending process them | 155 | * pending process them |
155 | */ | 156 | */ |
156 | HvCallEvent_getOverflowLpEvents(hvlpevent_queue.xIndex); | 157 | HvCallEvent_getOverflowLpEvents(hvlpevent_queue.hq_index); |
157 | else | 158 | else |
158 | break; | 159 | break; |
159 | } | 160 | } |
160 | 161 | ||
161 | spin_unlock(&hvlpevent_queue.lock); | 162 | spin_unlock(&hvlpevent_queue.hq_lock); |
162 | } | 163 | } |
163 | 164 | ||
164 | static int set_spread_lpevents(char *str) | 165 | static int set_spread_lpevents(char *str) |
@@ -184,20 +185,20 @@ void setup_hvlpevent_queue(void) | |||
184 | { | 185 | { |
185 | void *eventStack; | 186 | void *eventStack; |
186 | 187 | ||
187 | spin_lock_init(&hvlpevent_queue.lock); | 188 | spin_lock_init(&hvlpevent_queue.hq_lock); |
188 | 189 | ||
189 | /* Allocate a page for the Event Stack. */ | 190 | /* Allocate a page for the Event Stack. */ |
190 | eventStack = alloc_bootmem_pages(LpEventStackSize); | 191 | eventStack = alloc_bootmem_pages(IT_LP_EVENT_STACK_SIZE); |
191 | memset(eventStack, 0, LpEventStackSize); | 192 | memset(eventStack, 0, IT_LP_EVENT_STACK_SIZE); |
192 | 193 | ||
193 | /* Invoke the hypervisor to initialize the event stack */ | 194 | /* Invoke the hypervisor to initialize the event stack */ |
194 | HvCallEvent_setLpEventStack(0, eventStack, LpEventStackSize); | 195 | HvCallEvent_setLpEventStack(0, eventStack, IT_LP_EVENT_STACK_SIZE); |
195 | 196 | ||
196 | hvlpevent_queue.xSlicEventStackPtr = (char *)eventStack; | 197 | hvlpevent_queue.hq_event_stack = eventStack; |
197 | hvlpevent_queue.xSlicCurEventPtr = (char *)eventStack; | 198 | hvlpevent_queue.hq_current_event = eventStack; |
198 | hvlpevent_queue.xSlicLastValidEventPtr = (char *)eventStack + | 199 | hvlpevent_queue.hq_last_event = (char *)eventStack + |
199 | (LpEventStackSize - LpEventMaxSize); | 200 | (IT_LP_EVENT_STACK_SIZE - IT_LP_EVENT_MAX_SIZE); |
200 | hvlpevent_queue.xIndex = 0; | 201 | hvlpevent_queue.hq_index = 0; |
201 | } | 202 | } |
202 | 203 | ||
203 | /* Register a handler for an LpEvent type */ | 204 | /* Register a handler for an LpEvent type */ |
diff --git a/arch/powerpc/platforms/iseries/proc.c b/arch/powerpc/platforms/iseries/proc.c index e68b6b5fa89f..c241413629ac 100644 --- a/arch/powerpc/platforms/iseries/proc.c +++ b/arch/powerpc/platforms/iseries/proc.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <asm/processor.h> | 24 | #include <asm/processor.h> |
25 | #include <asm/time.h> | 25 | #include <asm/time.h> |
26 | #include <asm/lppaca.h> | 26 | #include <asm/lppaca.h> |
27 | #include <asm/iseries/it_lp_queue.h> | ||
28 | #include <asm/iseries/hv_call_xm.h> | 27 | #include <asm/iseries/hv_call_xm.h> |
29 | 28 | ||
30 | #include "processor_vpd.h" | 29 | #include "processor_vpd.h" |
diff --git a/arch/powerpc/platforms/iseries/setup.c b/arch/powerpc/platforms/iseries/setup.c index 617c724c4590..c877074745b2 100644 --- a/arch/powerpc/platforms/iseries/setup.c +++ b/arch/powerpc/platforms/iseries/setup.c | |||
@@ -16,7 +16,6 @@ | |||
16 | 16 | ||
17 | #undef DEBUG | 17 | #undef DEBUG |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/threads.h> | 20 | #include <linux/threads.h> |
22 | #include <linux/smp.h> | 21 | #include <linux/smp.h> |
@@ -81,8 +80,6 @@ static void iSeries_pci_final_fixup(void) { } | |||
81 | #endif | 80 | #endif |
82 | 81 | ||
83 | extern int rd_size; /* Defined in drivers/block/rd.c */ | 82 | extern int rd_size; /* Defined in drivers/block/rd.c */ |
84 | extern unsigned long embedded_sysmap_start; | ||
85 | extern unsigned long embedded_sysmap_end; | ||
86 | 83 | ||
87 | extern unsigned long iSeries_recal_tb; | 84 | extern unsigned long iSeries_recal_tb; |
88 | extern unsigned long iSeries_recal_titan; | 85 | extern unsigned long iSeries_recal_titan; |
@@ -321,11 +318,6 @@ static void __init iSeries_init_early(void) | |||
321 | iSeries_recal_titan = HvCallXm_loadTod(); | 318 | iSeries_recal_titan = HvCallXm_loadTod(); |
322 | 319 | ||
323 | /* | 320 | /* |
324 | * Initialize the hash table management pointers | ||
325 | */ | ||
326 | hpte_init_iSeries(); | ||
327 | |||
328 | /* | ||
329 | * Initialize the DMA/TCE management | 321 | * Initialize the DMA/TCE management |
330 | */ | 322 | */ |
331 | iommu_init_early_iSeries(); | 323 | iommu_init_early_iSeries(); |
@@ -563,16 +555,6 @@ static void __init iSeries_fixup_klimit(void) | |||
563 | if (naca.xRamDisk) | 555 | if (naca.xRamDisk) |
564 | klimit = KERNELBASE + (u64)naca.xRamDisk + | 556 | klimit = KERNELBASE + (u64)naca.xRamDisk + |
565 | (naca.xRamDiskSize * HW_PAGE_SIZE); | 557 | (naca.xRamDiskSize * HW_PAGE_SIZE); |
566 | else { | ||
567 | /* | ||
568 | * No ram disk was included - check and see if there | ||
569 | * was an embedded system map. Change klimit to take | ||
570 | * into account any embedded system map | ||
571 | */ | ||
572 | if (embedded_sysmap_end) | ||
573 | klimit = KERNELBASE + ((embedded_sysmap_end + 4095) & | ||
574 | 0xfffffffffffff000); | ||
575 | } | ||
576 | } | 558 | } |
577 | 559 | ||
578 | static int __init iSeries_src_init(void) | 560 | static int __init iSeries_src_init(void) |
@@ -683,6 +665,8 @@ static int __init iseries_probe(void) | |||
683 | */ | 665 | */ |
684 | virt_irq_max = 255; | 666 | virt_irq_max = 255; |
685 | 667 | ||
668 | hpte_init_iSeries(); | ||
669 | |||
686 | return 1; | 670 | return 1; |
687 | } | 671 | } |
688 | 672 | ||
diff --git a/arch/powerpc/platforms/iseries/smp.c b/arch/powerpc/platforms/iseries/smp.c index 6f9d407a709f..2eb095edb472 100644 --- a/arch/powerpc/platforms/iseries/smp.c +++ b/arch/powerpc/platforms/iseries/smp.c | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | #undef DEBUG | 15 | #undef DEBUG |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/module.h> | 18 | #include <linux/module.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c index 9a4efc0c3b29..f7170ff86dab 100644 --- a/arch/powerpc/platforms/maple/pci.c +++ b/arch/powerpc/platforms/maple/pci.c | |||
@@ -376,9 +376,10 @@ static void __init maple_fixup_phb_resources(void) | |||
376 | unsigned long offset = (unsigned long)hose->io_base_virt - pci_io_base; | 376 | unsigned long offset = (unsigned long)hose->io_base_virt - pci_io_base; |
377 | hose->io_resource.start += offset; | 377 | hose->io_resource.start += offset; |
378 | hose->io_resource.end += offset; | 378 | hose->io_resource.end += offset; |
379 | printk(KERN_INFO "PCI Host %d, io start: %lx; io end: %lx\n", | 379 | printk(KERN_INFO "PCI Host %d, io start: %llx; io end: %llx\n", |
380 | hose->global_number, | 380 | hose->global_number, |
381 | hose->io_resource.start, hose->io_resource.end); | 381 | (unsigned long long)hose->io_resource.start, |
382 | (unsigned long long)hose->io_resource.end); | ||
382 | } | 383 | } |
383 | } | 384 | } |
384 | 385 | ||
diff --git a/arch/powerpc/platforms/maple/setup.c b/arch/powerpc/platforms/maple/setup.c index a0505ea48a86..5cf90c28b141 100644 --- a/arch/powerpc/platforms/maple/setup.c +++ b/arch/powerpc/platforms/maple/setup.c | |||
@@ -13,7 +13,6 @@ | |||
13 | 13 | ||
14 | #define DEBUG | 14 | #define DEBUG |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
@@ -199,11 +198,6 @@ static void __init maple_init_early(void) | |||
199 | { | 198 | { |
200 | DBG(" -> maple_init_early\n"); | 199 | DBG(" -> maple_init_early\n"); |
201 | 200 | ||
202 | /* Initialize hash table, from now on, we can take hash faults | ||
203 | * and call ioremap | ||
204 | */ | ||
205 | hpte_init_native(); | ||
206 | |||
207 | /* Setup interrupt mapping options */ | 201 | /* Setup interrupt mapping options */ |
208 | ppc64_interrupt_controller = IC_OPEN_PIC; | 202 | ppc64_interrupt_controller = IC_OPEN_PIC; |
209 | 203 | ||
@@ -272,6 +266,8 @@ static int __init maple_probe(void) | |||
272 | */ | 266 | */ |
273 | alloc_dart_table(); | 267 | alloc_dart_table(); |
274 | 268 | ||
269 | hpte_init_native(); | ||
270 | |||
275 | return 1; | 271 | return 1; |
276 | } | 272 | } |
277 | 273 | ||
diff --git a/arch/powerpc/platforms/maple/time.c b/arch/powerpc/platforms/maple/time.c index b9a2b3d4bf33..9f7579b38c72 100644 --- a/arch/powerpc/platforms/maple/time.c +++ b/arch/powerpc/platforms/maple/time.c | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | #undef DEBUG | 12 | #undef DEBUG |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/platforms/powermac/backlight.c b/arch/powerpc/platforms/powermac/backlight.c index c7a27eddca6d..69f65e215a5c 100644 --- a/arch/powerpc/platforms/powermac/backlight.c +++ b/arch/powerpc/platforms/powermac/backlight.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/fb.h> | 11 | #include <linux/fb.h> |
13 | #include <linux/backlight.h> | 12 | #include <linux/backlight.h> |
diff --git a/arch/powerpc/platforms/powermac/bootx_init.c b/arch/powerpc/platforms/powermac/bootx_init.c index eacbfd9beabc..cb257aeb91f6 100644 --- a/arch/powerpc/platforms/powermac/bootx_init.c +++ b/arch/powerpc/platforms/powermac/bootx_init.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/string.h> | 13 | #include <linux/string.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/powerpc/platforms/powermac/cache.S b/arch/powerpc/platforms/powermac/cache.S index fb977de6b704..6be1a4af3359 100644 --- a/arch/powerpc/platforms/powermac/cache.S +++ b/arch/powerpc/platforms/powermac/cache.S | |||
@@ -14,7 +14,6 @@ | |||
14 | * | 14 | * |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <asm/processor.h> | 17 | #include <asm/processor.h> |
19 | #include <asm/ppc_asm.h> | 18 | #include <asm/ppc_asm.h> |
20 | #include <asm/cputable.h> | 19 | #include <asm/cputable.h> |
diff --git a/arch/powerpc/platforms/powermac/cpufreq_32.c b/arch/powerpc/platforms/powermac/cpufreq_32.c index af2a8f9f1222..62926248bdb8 100644 --- a/arch/powerpc/platforms/powermac/cpufreq_32.c +++ b/arch/powerpc/platforms/powermac/cpufreq_32.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | #include <linux/types.h> | 17 | #include <linux/types.h> |
19 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
@@ -68,7 +67,7 @@ static unsigned int cur_freq; | |||
68 | static unsigned int sleep_freq; | 67 | static unsigned int sleep_freq; |
69 | 68 | ||
70 | /* | 69 | /* |
71 | * Different models uses different mecanisms to switch the frequency | 70 | * Different models uses different mechanisms to switch the frequency |
72 | */ | 71 | */ |
73 | static int (*set_speed_proc)(int low_speed); | 72 | static int (*set_speed_proc)(int low_speed); |
74 | static unsigned int (*get_speed_proc)(void); | 73 | static unsigned int (*get_speed_proc)(void); |
@@ -268,7 +267,7 @@ static int pmu_set_cpu_speed(int low_speed) | |||
268 | 267 | ||
269 | /* Make sure the decrementer won't interrupt us */ | 268 | /* Make sure the decrementer won't interrupt us */ |
270 | asm volatile("mtdec %0" : : "r" (0x7fffffff)); | 269 | asm volatile("mtdec %0" : : "r" (0x7fffffff)); |
271 | /* Make sure any pending DEC interrupt occuring while we did | 270 | /* Make sure any pending DEC interrupt occurring while we did |
272 | * the above didn't re-enable the DEC */ | 271 | * the above didn't re-enable the DEC */ |
273 | mb(); | 272 | mb(); |
274 | asm volatile("mtdec %0" : : "r" (0x7fffffff)); | 273 | asm volatile("mtdec %0" : : "r" (0x7fffffff)); |
diff --git a/arch/powerpc/platforms/powermac/cpufreq_64.c b/arch/powerpc/platforms/powermac/cpufreq_64.c index b57e465a1b71..f08a14516139 100644 --- a/arch/powerpc/platforms/powermac/cpufreq_64.c +++ b/arch/powerpc/platforms/powermac/cpufreq_64.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * that is iMac G5 and latest single CPU desktop. | 10 | * that is iMac G5 and latest single CPU desktop. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
diff --git a/arch/powerpc/platforms/powermac/feature.c b/arch/powerpc/platforms/powermac/feature.c index 85e00cb0006e..f8313bf9a9f7 100644 --- a/arch/powerpc/platforms/powermac/feature.c +++ b/arch/powerpc/platforms/powermac/feature.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * - Split split split... | 16 | * - Split split split... |
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/types.h> | 19 | #include <linux/types.h> |
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |
22 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c index c896ce83d412..ceafaf52a668 100644 --- a/arch/powerpc/platforms/powermac/low_i2c.c +++ b/arch/powerpc/platforms/powermac/low_i2c.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #undef DEBUG | 30 | #undef DEBUG |
31 | #undef DEBUG_LOW | 31 | #undef DEBUG_LOW |
32 | 32 | ||
33 | #include <linux/config.h> | ||
34 | #include <linux/types.h> | 33 | #include <linux/types.h> |
35 | #include <linux/sched.h> | 34 | #include <linux/sched.h> |
36 | #include <linux/init.h> | 35 | #include <linux/init.h> |
diff --git a/arch/powerpc/platforms/powermac/nvram.c b/arch/powerpc/platforms/powermac/nvram.c index 262f967b880a..41fa2409482a 100644 --- a/arch/powerpc/platforms/powermac/nvram.c +++ b/arch/powerpc/platforms/powermac/nvram.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | * Todo: - add support for the OF persistent properties | 9 | * Todo: - add support for the OF persistent properties |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/module.h> | 11 | #include <linux/module.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/stddef.h> | 13 | #include <linux/stddef.h> |
diff --git a/arch/powerpc/platforms/powermac/pci.c b/arch/powerpc/platforms/powermac/pci.c index 80035853467b..d524a915aa86 100644 --- a/arch/powerpc/platforms/powermac/pci.c +++ b/arch/powerpc/platforms/powermac/pci.c | |||
@@ -939,9 +939,10 @@ static int __init add_bridge(struct device_node *dev) | |||
939 | disp_name = "Chaos"; | 939 | disp_name = "Chaos"; |
940 | primary = 0; | 940 | primary = 0; |
941 | } | 941 | } |
942 | printk(KERN_INFO "Found %s PCI host bridge at 0x%08lx. " | 942 | printk(KERN_INFO "Found %s PCI host bridge at 0x%016llx. " |
943 | "Firmware bus number: %d->%d\n", | 943 | "Firmware bus number: %d->%d\n", |
944 | disp_name, rsrc.start, hose->first_busno, hose->last_busno); | 944 | disp_name, (unsigned long long)rsrc.start, hose->first_busno, |
945 | hose->last_busno); | ||
945 | #endif /* CONFIG_PPC32 */ | 946 | #endif /* CONFIG_PPC32 */ |
946 | 947 | ||
947 | DBG(" ->Hose at 0x%p, cfg_addr=0x%p,cfg_data=0x%p\n", | 948 | DBG(" ->Hose at 0x%p, cfg_addr=0x%p,cfg_data=0x%p\n", |
diff --git a/arch/powerpc/platforms/powermac/pfunc_base.c b/arch/powerpc/platforms/powermac/pfunc_base.c index a3bd3e728fa3..d6eab8b3f7de 100644 --- a/arch/powerpc/platforms/powermac/pfunc_base.c +++ b/arch/powerpc/platforms/powermac/pfunc_base.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/types.h> | 1 | #include <linux/types.h> |
3 | #include <linux/init.h> | 2 | #include <linux/init.h> |
4 | #include <linux/delay.h> | 3 | #include <linux/delay.h> |
diff --git a/arch/powerpc/platforms/powermac/pfunc_core.c b/arch/powerpc/platforms/powermac/pfunc_core.c index 93e7505debc5..b117adbf9571 100644 --- a/arch/powerpc/platforms/powermac/pfunc_core.c +++ b/arch/powerpc/platforms/powermac/pfunc_core.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * FIXME: LOCKING !!! | 5 | * FIXME: LOCKING !!! |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | #include <linux/delay.h> | 9 | #include <linux/delay.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 18bf3011d1e3..c9b09a9e6050 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/stddef.h> | 18 | #include <linux/stddef.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
@@ -382,7 +381,7 @@ static struct irqaction xmon_action = { | |||
382 | 381 | ||
383 | static struct irqaction gatwick_cascade_action = { | 382 | static struct irqaction gatwick_cascade_action = { |
384 | .handler = gatwick_action, | 383 | .handler = gatwick_action, |
385 | .flags = SA_INTERRUPT, | 384 | .flags = IRQF_DISABLED, |
386 | .mask = CPU_MASK_NONE, | 385 | .mask = CPU_MASK_NONE, |
387 | .name = "cascade", | 386 | .name = "cascade", |
388 | }; | 387 | }; |
@@ -446,7 +445,7 @@ static void __init pmac_pic_probe_oldstyle(void) | |||
446 | 445 | ||
447 | /* Set the handler for the main PIC */ | 446 | /* Set the handler for the main PIC */ |
448 | for ( i = 0; i < max_real_irqs ; i++ ) | 447 | for ( i = 0; i < max_real_irqs ; i++ ) |
449 | irq_desc[i].handler = &pmac_pic; | 448 | irq_desc[i].chip = &pmac_pic; |
450 | 449 | ||
451 | /* Get addresses of first controller if we have a node for it */ | 450 | /* Get addresses of first controller if we have a node for it */ |
452 | BUG_ON(of_address_to_resource(master, 0, &r)); | 451 | BUG_ON(of_address_to_resource(master, 0, &r)); |
@@ -493,7 +492,7 @@ static void __init pmac_pic_probe_oldstyle(void) | |||
493 | /* Setup handlers for secondary controller and hook cascade irq*/ | 492 | /* Setup handlers for secondary controller and hook cascade irq*/ |
494 | if (slave) { | 493 | if (slave) { |
495 | for ( i = max_real_irqs ; i < max_irqs ; i++ ) | 494 | for ( i = max_real_irqs ; i < max_irqs ; i++ ) |
496 | irq_desc[i].handler = &gatwick_pic; | 495 | irq_desc[i].chip = &gatwick_pic; |
497 | setup_irq(irq_cascade, &gatwick_cascade_action); | 496 | setup_irq(irq_cascade, &gatwick_cascade_action); |
498 | } | 497 | } |
499 | printk(KERN_INFO "irq: System has %d possible interrupts\n", max_irqs); | 498 | printk(KERN_INFO "irq: System has %d possible interrupts\n", max_irqs); |
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c index 9cc7db7a8bdc..8654b5f07836 100644 --- a/arch/powerpc/platforms/powermac/setup.c +++ b/arch/powerpc/platforms/powermac/setup.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * bootup setup stuff.. | 23 | * bootup setup stuff.. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/errno.h> | 27 | #include <linux/errno.h> |
29 | #include <linux/sched.h> | 28 | #include <linux/sched.h> |
@@ -600,13 +599,6 @@ pmac_halt(void) | |||
600 | */ | 599 | */ |
601 | static void __init pmac_init_early(void) | 600 | static void __init pmac_init_early(void) |
602 | { | 601 | { |
603 | #ifdef CONFIG_PPC64 | ||
604 | /* Initialize hash table, from now on, we can take hash faults | ||
605 | * and call ioremap | ||
606 | */ | ||
607 | hpte_init_native(); | ||
608 | #endif | ||
609 | |||
610 | /* Enable early btext debug if requested */ | 602 | /* Enable early btext debug if requested */ |
611 | if (strstr(cmd_line, "btextdbg")) { | 603 | if (strstr(cmd_line, "btextdbg")) { |
612 | udbg_adb_init_early(); | 604 | udbg_adb_init_early(); |
@@ -683,6 +675,8 @@ static int __init pmac_probe(void) | |||
683 | * part of the cacheable linar mapping | 675 | * part of the cacheable linar mapping |
684 | */ | 676 | */ |
685 | alloc_dart_table(); | 677 | alloc_dart_table(); |
678 | |||
679 | hpte_init_native(); | ||
686 | #endif | 680 | #endif |
687 | 681 | ||
688 | #ifdef CONFIG_PPC32 | 682 | #ifdef CONFIG_PPC32 |
diff --git a/arch/powerpc/platforms/powermac/sleep.S b/arch/powerpc/platforms/powermac/sleep.S index 22b113d19b24..1174ca128efa 100644 --- a/arch/powerpc/platforms/powermac/sleep.S +++ b/arch/powerpc/platforms/powermac/sleep.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/processor.h> | 13 | #include <asm/processor.h> |
15 | #include <asm/page.h> | 14 | #include <asm/page.h> |
16 | #include <asm/ppc_asm.h> | 15 | #include <asm/ppc_asm.h> |
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c index 1065d87fc279..827b7121ffb8 100644 --- a/arch/powerpc/platforms/powermac/smp.c +++ b/arch/powerpc/platforms/powermac/smp.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * as published by the Free Software Foundation; either version | 21 | * as published by the Free Software Foundation; either version |
22 | * 2 of the License, or (at your option) any later version. | 22 | * 2 of the License, or (at your option) any later version. |
23 | */ | 23 | */ |
24 | #include <linux/config.h> | ||
25 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
26 | #include <linux/sched.h> | 25 | #include <linux/sched.h> |
27 | #include <linux/smp.h> | 26 | #include <linux/smp.h> |
@@ -378,7 +377,7 @@ static void __init psurge_dual_sync_tb(int cpu_nr) | |||
378 | 377 | ||
379 | static struct irqaction psurge_irqaction = { | 378 | static struct irqaction psurge_irqaction = { |
380 | .handler = psurge_primary_intr, | 379 | .handler = psurge_primary_intr, |
381 | .flags = SA_INTERRUPT, | 380 | .flags = IRQF_DISABLED, |
382 | .mask = CPU_MASK_NONE, | 381 | .mask = CPU_MASK_NONE, |
383 | .name = "primary IPI", | 382 | .name = "primary IPI", |
384 | }; | 383 | }; |
diff --git a/arch/powerpc/platforms/powermac/time.c b/arch/powerpc/platforms/powermac/time.c index 890758aa9667..a4173906e945 100644 --- a/arch/powerpc/platforms/powermac/time.c +++ b/arch/powerpc/platforms/powermac/time.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 2003-2005 Benjamin Herrenschmidt. | 9 | * Copyright (C) 2003-2005 Benjamin Herrenschmidt. |
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
diff --git a/arch/powerpc/platforms/powermac/udbg_adb.c b/arch/powerpc/platforms/powermac/udbg_adb.c index 06c8265c2baf..6124e59e1038 100644 --- a/arch/powerpc/platforms/powermac/udbg_adb.c +++ b/arch/powerpc/platforms/powermac/udbg_adb.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/string.h> | 1 | #include <linux/string.h> |
3 | #include <linux/kernel.h> | 2 | #include <linux/kernel.h> |
4 | #include <linux/errno.h> | 3 | #include <linux/errno.h> |
diff --git a/arch/powerpc/platforms/powermac/udbg_scc.c b/arch/powerpc/platforms/powermac/udbg_scc.c index b4fa9f03b461..37e5b1eff911 100644 --- a/arch/powerpc/platforms/powermac/udbg_scc.c +++ b/arch/powerpc/platforms/powermac/udbg_scc.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <asm/udbg.h> | 12 | #include <asm/udbg.h> |
14 | #include <asm/processor.h> | 13 | #include <asm/processor.h> |
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c index 0ec9a5445b95..aaad2c0afcbf 100644 --- a/arch/powerpc/platforms/pseries/eeh_driver.c +++ b/arch/powerpc/platforms/pseries/eeh_driver.c | |||
@@ -175,7 +175,7 @@ static void eeh_report_failure(struct pci_dev *dev, void *userdata) | |||
175 | * | 175 | * |
176 | * pSeries systems will isolate a PCI slot if the PCI-Host | 176 | * pSeries systems will isolate a PCI slot if the PCI-Host |
177 | * bridge detects address or data parity errors, DMA's | 177 | * bridge detects address or data parity errors, DMA's |
178 | * occuring to wild addresses (which usually happen due to | 178 | * occurring to wild addresses (which usually happen due to |
179 | * bugs in device drivers or in PCI adapter firmware). | 179 | * bugs in device drivers or in PCI adapter firmware). |
180 | * Slot isolations also occur if #SERR, #PERR or other misc | 180 | * Slot isolations also occur if #SERR, #PERR or other misc |
181 | * PCI-related errors are detected. | 181 | * PCI-related errors are detected. |
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c index d03a8b078f9d..d67af2c65754 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c | |||
@@ -24,7 +24,6 @@ | |||
24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/init.h> | 27 | #include <linux/init.h> |
29 | #include <linux/types.h> | 28 | #include <linux/types.h> |
30 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
@@ -92,6 +91,15 @@ static void tce_free_pSeries(struct iommu_table *tbl, long index, long npages) | |||
92 | *(tcep++) = 0; | 91 | *(tcep++) = 0; |
93 | } | 92 | } |
94 | 93 | ||
94 | static unsigned long tce_get_pseries(struct iommu_table *tbl, long index) | ||
95 | { | ||
96 | u64 *tcep; | ||
97 | |||
98 | index <<= TCE_PAGE_FACTOR; | ||
99 | tcep = ((u64 *)tbl->it_base) + index; | ||
100 | |||
101 | return *tcep; | ||
102 | } | ||
95 | 103 | ||
96 | static void tce_build_pSeriesLP(struct iommu_table *tbl, long tcenum, | 104 | static void tce_build_pSeriesLP(struct iommu_table *tbl, long tcenum, |
97 | long npages, unsigned long uaddr, | 105 | long npages, unsigned long uaddr, |
@@ -235,6 +243,25 @@ static void tce_freemulti_pSeriesLP(struct iommu_table *tbl, long tcenum, long n | |||
235 | } | 243 | } |
236 | } | 244 | } |
237 | 245 | ||
246 | static unsigned long tce_get_pSeriesLP(struct iommu_table *tbl, long tcenum) | ||
247 | { | ||
248 | u64 rc; | ||
249 | unsigned long tce_ret; | ||
250 | |||
251 | tcenum <<= TCE_PAGE_FACTOR; | ||
252 | rc = plpar_tce_get((u64)tbl->it_index, (u64)tcenum << 12, &tce_ret); | ||
253 | |||
254 | if (rc && printk_ratelimit()) { | ||
255 | printk("tce_get_pSeriesLP: plpar_tce_get failed. rc=%ld\n", | ||
256 | rc); | ||
257 | printk("\tindex = 0x%lx\n", (u64)tbl->it_index); | ||
258 | printk("\ttcenum = 0x%lx\n", (u64)tcenum); | ||
259 | show_stack(current, (unsigned long *)__get_SP()); | ||
260 | } | ||
261 | |||
262 | return tce_ret; | ||
263 | } | ||
264 | |||
238 | static void iommu_table_setparms(struct pci_controller *phb, | 265 | static void iommu_table_setparms(struct pci_controller *phb, |
239 | struct device_node *dn, | 266 | struct device_node *dn, |
240 | struct iommu_table *tbl) | 267 | struct iommu_table *tbl) |
@@ -254,7 +281,10 @@ static void iommu_table_setparms(struct pci_controller *phb, | |||
254 | } | 281 | } |
255 | 282 | ||
256 | tbl->it_base = (unsigned long)__va(*basep); | 283 | tbl->it_base = (unsigned long)__va(*basep); |
284 | |||
285 | #ifndef CONFIG_CRASH_DUMP | ||
257 | memset((void *)tbl->it_base, 0, *sizep); | 286 | memset((void *)tbl->it_base, 0, *sizep); |
287 | #endif | ||
258 | 288 | ||
259 | tbl->it_busno = phb->bus->number; | 289 | tbl->it_busno = phb->bus->number; |
260 | 290 | ||
@@ -560,11 +590,13 @@ void iommu_init_early_pSeries(void) | |||
560 | ppc_md.tce_build = tce_build_pSeriesLP; | 590 | ppc_md.tce_build = tce_build_pSeriesLP; |
561 | ppc_md.tce_free = tce_free_pSeriesLP; | 591 | ppc_md.tce_free = tce_free_pSeriesLP; |
562 | } | 592 | } |
593 | ppc_md.tce_get = tce_get_pSeriesLP; | ||
563 | ppc_md.iommu_bus_setup = iommu_bus_setup_pSeriesLP; | 594 | ppc_md.iommu_bus_setup = iommu_bus_setup_pSeriesLP; |
564 | ppc_md.iommu_dev_setup = iommu_dev_setup_pSeriesLP; | 595 | ppc_md.iommu_dev_setup = iommu_dev_setup_pSeriesLP; |
565 | } else { | 596 | } else { |
566 | ppc_md.tce_build = tce_build_pSeries; | 597 | ppc_md.tce_build = tce_build_pSeries; |
567 | ppc_md.tce_free = tce_free_pSeries; | 598 | ppc_md.tce_free = tce_free_pSeries; |
599 | ppc_md.tce_get = tce_get_pseries; | ||
568 | ppc_md.iommu_bus_setup = iommu_bus_setup_pSeries; | 600 | ppc_md.iommu_bus_setup = iommu_bus_setup_pSeries; |
569 | ppc_md.iommu_dev_setup = iommu_dev_setup_pSeries; | 601 | ppc_md.iommu_dev_setup = iommu_dev_setup_pSeries; |
570 | } | 602 | } |
diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c index 634b7d06d3cc..3aeb40699042 100644 --- a/arch/powerpc/platforms/pseries/lpar.c +++ b/arch/powerpc/platforms/pseries/lpar.c | |||
@@ -21,7 +21,6 @@ | |||
21 | 21 | ||
22 | #undef DEBUG_LOW | 22 | #undef DEBUG_LOW |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
26 | #include <linux/dma-mapping.h> | 25 | #include <linux/dma-mapping.h> |
27 | #include <linux/console.h> | 26 | #include <linux/console.h> |
@@ -513,7 +512,7 @@ void pSeries_lpar_flush_hash_range(unsigned long number, int local) | |||
513 | spin_unlock_irqrestore(&pSeries_lpar_tlbie_lock, flags); | 512 | spin_unlock_irqrestore(&pSeries_lpar_tlbie_lock, flags); |
514 | } | 513 | } |
515 | 514 | ||
516 | void hpte_init_lpar(void) | 515 | void __init hpte_init_lpar(void) |
517 | { | 516 | { |
518 | ppc_md.hpte_invalidate = pSeries_lpar_hpte_invalidate; | 517 | ppc_md.hpte_invalidate = pSeries_lpar_hpte_invalidate; |
519 | ppc_md.hpte_updatepp = pSeries_lpar_hpte_updatepp; | 518 | ppc_md.hpte_updatepp = pSeries_lpar_hpte_updatepp; |
@@ -522,6 +521,4 @@ void hpte_init_lpar(void) | |||
522 | ppc_md.hpte_remove = pSeries_lpar_hpte_remove; | 521 | ppc_md.hpte_remove = pSeries_lpar_hpte_remove; |
523 | ppc_md.flush_hash_range = pSeries_lpar_flush_hash_range; | 522 | ppc_md.flush_hash_range = pSeries_lpar_flush_hash_range; |
524 | ppc_md.hpte_clear_all = pSeries_lpar_hptab_clear; | 523 | ppc_md.hpte_clear_all = pSeries_lpar_hptab_clear; |
525 | |||
526 | htab_finish_init(); | ||
527 | } | 524 | } |
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 1e28518c6121..999509d28af8 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -18,7 +18,6 @@ | |||
18 | 18 | ||
19 | #undef DEBUG | 19 | #undef DEBUG |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/cpu.h> | 21 | #include <linux/cpu.h> |
23 | #include <linux/errno.h> | 22 | #include <linux/errno.h> |
24 | #include <linux/sched.h> | 23 | #include <linux/sched.h> |
@@ -322,11 +321,6 @@ static void __init pSeries_init_early(void) | |||
322 | DBG(" -> pSeries_init_early()\n"); | 321 | DBG(" -> pSeries_init_early()\n"); |
323 | 322 | ||
324 | fw_feature_init(); | 323 | fw_feature_init(); |
325 | |||
326 | if (firmware_has_feature(FW_FEATURE_LPAR)) | ||
327 | hpte_init_lpar(); | ||
328 | else | ||
329 | hpte_init_native(); | ||
330 | 324 | ||
331 | if (firmware_has_feature(FW_FEATURE_LPAR)) | 325 | if (firmware_has_feature(FW_FEATURE_LPAR)) |
332 | find_udbg_vterm(); | 326 | find_udbg_vterm(); |
@@ -384,6 +378,11 @@ static int __init pSeries_probe_hypertas(unsigned long node, | |||
384 | if (of_get_flat_dt_prop(node, "ibm,hypertas-functions", NULL) != NULL) | 378 | if (of_get_flat_dt_prop(node, "ibm,hypertas-functions", NULL) != NULL) |
385 | powerpc_firmware_features |= FW_FEATURE_LPAR; | 379 | powerpc_firmware_features |= FW_FEATURE_LPAR; |
386 | 380 | ||
381 | if (firmware_has_feature(FW_FEATURE_LPAR)) | ||
382 | hpte_init_lpar(); | ||
383 | else | ||
384 | hpte_init_native(); | ||
385 | |||
387 | return 1; | 386 | return 1; |
388 | } | 387 | } |
389 | 388 | ||
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c index 3cf78a6cd27c..4ad144df49c2 100644 --- a/arch/powerpc/platforms/pseries/smp.c +++ b/arch/powerpc/platforms/pseries/smp.c | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | #undef DEBUG | 15 | #undef DEBUG |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/module.h> | 18 | #include <linux/module.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index b14f9b5c114e..2ffebe31cb2d 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
@@ -60,7 +59,7 @@ static struct radix_tree_root irq_map = RADIX_TREE_INIT(GFP_ATOMIC); | |||
60 | 59 | ||
61 | /* | 60 | /* |
62 | * Mark IPIs as higher priority so we can take them inside interrupts that | 61 | * Mark IPIs as higher priority so we can take them inside interrupts that |
63 | * arent marked SA_INTERRUPT | 62 | * arent marked IRQF_DISABLED |
64 | */ | 63 | */ |
65 | #define IPI_PRIORITY 4 | 64 | #define IPI_PRIORITY 4 |
66 | 65 | ||
@@ -238,7 +237,7 @@ static int get_irq_server(unsigned int irq) | |||
238 | { | 237 | { |
239 | unsigned int server; | 238 | unsigned int server; |
240 | /* For the moment only implement delivery to all cpus or one cpu */ | 239 | /* For the moment only implement delivery to all cpus or one cpu */ |
241 | cpumask_t cpumask = irq_affinity[irq]; | 240 | cpumask_t cpumask = irq_desc[irq].affinity; |
242 | cpumask_t tmp = CPU_MASK_NONE; | 241 | cpumask_t tmp = CPU_MASK_NONE; |
243 | 242 | ||
244 | if (!distribute_irqs) | 243 | if (!distribute_irqs) |
@@ -558,7 +557,7 @@ nextnode: | |||
558 | } | 557 | } |
559 | 558 | ||
560 | for (i = irq_offset_value(); i < NR_IRQS; ++i) | 559 | for (i = irq_offset_value(); i < NR_IRQS; ++i) |
561 | get_irq_desc(i)->handler = &xics_pic; | 560 | get_irq_desc(i)->chip = &xics_pic; |
562 | 561 | ||
563 | xics_setup_cpu(); | 562 | xics_setup_cpu(); |
564 | 563 | ||
@@ -587,9 +586,12 @@ void xics_request_IPIs(void) | |||
587 | { | 586 | { |
588 | virt_irq_to_real_map[XICS_IPI] = XICS_IPI; | 587 | virt_irq_to_real_map[XICS_IPI] = XICS_IPI; |
589 | 588 | ||
590 | /* IPIs are marked SA_INTERRUPT as they must run with irqs disabled */ | 589 | /* |
591 | request_irq(irq_offset_up(XICS_IPI), xics_ipi_action, SA_INTERRUPT, | 590 | * IPIs are marked IRQF_DISABLED as they must run with irqs |
592 | "IPI", NULL); | 591 | * disabled |
592 | */ | ||
593 | request_irq(irq_offset_up(XICS_IPI), xics_ipi_action, | ||
594 | IRQF_DISABLED, "IPI", NULL); | ||
593 | get_irq_desc(irq_offset_up(XICS_IPI))->status |= IRQ_PER_CPU; | 595 | get_irq_desc(irq_offset_up(XICS_IPI))->status |= IRQ_PER_CPU; |
594 | } | 596 | } |
595 | #endif | 597 | #endif |
@@ -701,9 +703,9 @@ void xics_migrate_irqs_away(void) | |||
701 | continue; | 703 | continue; |
702 | 704 | ||
703 | /* We only need to migrate enabled IRQS */ | 705 | /* We only need to migrate enabled IRQS */ |
704 | if (desc == NULL || desc->handler == NULL | 706 | if (desc == NULL || desc->chip == NULL |
705 | || desc->action == NULL | 707 | || desc->action == NULL |
706 | || desc->handler->set_affinity == NULL) | 708 | || desc->chip->set_affinity == NULL) |
707 | continue; | 709 | continue; |
708 | 710 | ||
709 | spin_lock_irqsave(&desc->lock, flags); | 711 | spin_lock_irqsave(&desc->lock, flags); |
@@ -728,8 +730,8 @@ void xics_migrate_irqs_away(void) | |||
728 | virq, cpu); | 730 | virq, cpu); |
729 | 731 | ||
730 | /* Reset affinity to all cpus */ | 732 | /* Reset affinity to all cpus */ |
731 | desc->handler->set_affinity(virq, CPU_MASK_ALL); | 733 | desc->chip->set_affinity(virq, CPU_MASK_ALL); |
732 | irq_affinity[virq] = CPU_MASK_ALL; | 734 | irq_desc[irq].affinity = CPU_MASK_ALL; |
733 | unlock: | 735 | unlock: |
734 | spin_unlock_irqrestore(&desc->lock, flags); | 736 | spin_unlock_irqrestore(&desc->lock, flags); |
735 | } | 737 | } |
diff --git a/arch/powerpc/sysdev/Makefile b/arch/powerpc/sysdev/Makefile index cef95b023730..054bd8b41ef5 100644 --- a/arch/powerpc/sysdev/Makefile +++ b/arch/powerpc/sysdev/Makefile | |||
@@ -12,3 +12,5 @@ obj-$(CONFIG_U3_DART) += dart_iommu.o | |||
12 | obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o | 12 | obj-$(CONFIG_MMIO_NVRAM) += mmio_nvram.o |
13 | obj-$(CONFIG_PPC_83xx) += ipic.o | 13 | obj-$(CONFIG_PPC_83xx) += ipic.o |
14 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o | 14 | obj-$(CONFIG_FSL_SOC) += fsl_soc.o |
15 | obj-$(CONFIG_PPC_TODC) += todc.o | ||
16 | obj-$(CONFIG_TSI108_BRIDGE) += tsi108_pci.o tsi108_dev.o | ||
diff --git a/arch/powerpc/sysdev/dart.h b/arch/powerpc/sysdev/dart.h index c2d05763ccbe..1c8817c4835e 100644 --- a/arch/powerpc/sysdev/dart.h +++ b/arch/powerpc/sysdev/dart.h | |||
@@ -47,8 +47,12 @@ | |||
47 | /* U4 registers */ | 47 | /* U4 registers */ |
48 | #define DART_BASE_U4_BASE_MASK 0xffffff | 48 | #define DART_BASE_U4_BASE_MASK 0xffffff |
49 | #define DART_BASE_U4_BASE_SHIFT 0 | 49 | #define DART_BASE_U4_BASE_SHIFT 0 |
50 | #define DART_CNTL_U4_FLUSHTLB 0x20000000 | ||
51 | #define DART_CNTL_U4_ENABLE 0x80000000 | 50 | #define DART_CNTL_U4_ENABLE 0x80000000 |
51 | #define DART_CNTL_U4_IONE 0x40000000 | ||
52 | #define DART_CNTL_U4_FLUSHTLB 0x20000000 | ||
53 | #define DART_CNTL_U4_IDLE 0x10000000 | ||
54 | #define DART_CNTL_U4_PAR_EN 0x08000000 | ||
55 | #define DART_CNTL_U4_IONE_MASK 0x07ffffff | ||
52 | #define DART_SIZE_U4_SIZE_MASK 0x1fff | 56 | #define DART_SIZE_U4_SIZE_MASK 0x1fff |
53 | #define DART_SIZE_U4_SIZE_SHIFT 0 | 57 | #define DART_SIZE_U4_SIZE_SHIFT 0 |
54 | 58 | ||
diff --git a/arch/powerpc/sysdev/dart_iommu.c b/arch/powerpc/sysdev/dart_iommu.c index 6232091cc72b..e32fadde1f77 100644 --- a/arch/powerpc/sysdev/dart_iommu.c +++ b/arch/powerpc/sysdev/dart_iommu.c | |||
@@ -27,7 +27,6 @@ | |||
27 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 27 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #include <linux/config.h> | ||
31 | #include <linux/init.h> | 30 | #include <linux/init.h> |
32 | #include <linux/types.h> | 31 | #include <linux/types.h> |
33 | #include <linux/slab.h> | 32 | #include <linux/slab.h> |
@@ -101,8 +100,8 @@ retry: | |||
101 | if (l == (1L << limit)) { | 100 | if (l == (1L << limit)) { |
102 | if (limit < 4) { | 101 | if (limit < 4) { |
103 | limit++; | 102 | limit++; |
104 | reg = DART_IN(DART_CNTL); | 103 | reg = DART_IN(DART_CNTL); |
105 | reg &= ~inv_bit; | 104 | reg &= ~inv_bit; |
106 | DART_OUT(DART_CNTL, reg); | 105 | DART_OUT(DART_CNTL, reg); |
107 | goto retry; | 106 | goto retry; |
108 | } else | 107 | } else |
@@ -111,11 +110,39 @@ retry: | |||
111 | } | 110 | } |
112 | } | 111 | } |
113 | 112 | ||
113 | static inline void dart_tlb_invalidate_one(unsigned long bus_rpn) | ||
114 | { | ||
115 | unsigned int reg; | ||
116 | unsigned int l, limit; | ||
117 | |||
118 | reg = DART_CNTL_U4_ENABLE | DART_CNTL_U4_IONE | | ||
119 | (bus_rpn & DART_CNTL_U4_IONE_MASK); | ||
120 | DART_OUT(DART_CNTL, reg); | ||
121 | |||
122 | limit = 0; | ||
123 | wait_more: | ||
124 | l = 0; | ||
125 | while ((DART_IN(DART_CNTL) & DART_CNTL_U4_IONE) && l < (1L << limit)) { | ||
126 | rmb(); | ||
127 | l++; | ||
128 | } | ||
129 | |||
130 | if (l == (1L << limit)) { | ||
131 | if (limit < 4) { | ||
132 | limit++; | ||
133 | goto wait_more; | ||
134 | } else | ||
135 | panic("DART: TLB did not flush after waiting a long " | ||
136 | "time. Buggy U4 ?"); | ||
137 | } | ||
138 | } | ||
139 | |||
114 | static void dart_flush(struct iommu_table *tbl) | 140 | static void dart_flush(struct iommu_table *tbl) |
115 | { | 141 | { |
116 | if (dart_dirty) | 142 | if (dart_dirty) { |
117 | dart_tlb_invalidate_all(); | 143 | dart_tlb_invalidate_all(); |
118 | dart_dirty = 0; | 144 | dart_dirty = 0; |
145 | } | ||
119 | } | 146 | } |
120 | 147 | ||
121 | static void dart_build(struct iommu_table *tbl, long index, | 148 | static void dart_build(struct iommu_table *tbl, long index, |
@@ -124,6 +151,7 @@ static void dart_build(struct iommu_table *tbl, long index, | |||
124 | { | 151 | { |
125 | unsigned int *dp; | 152 | unsigned int *dp; |
126 | unsigned int rpn; | 153 | unsigned int rpn; |
154 | long l; | ||
127 | 155 | ||
128 | DBG("dart: build at: %lx, %lx, addr: %x\n", index, npages, uaddr); | 156 | DBG("dart: build at: %lx, %lx, addr: %x\n", index, npages, uaddr); |
129 | 157 | ||
@@ -135,7 +163,8 @@ static void dart_build(struct iommu_table *tbl, long index, | |||
135 | /* On U3, all memory is contigous, so we can move this | 163 | /* On U3, all memory is contigous, so we can move this |
136 | * out of the loop. | 164 | * out of the loop. |
137 | */ | 165 | */ |
138 | while (npages--) { | 166 | l = npages; |
167 | while (l--) { | ||
139 | rpn = virt_to_abs(uaddr) >> DART_PAGE_SHIFT; | 168 | rpn = virt_to_abs(uaddr) >> DART_PAGE_SHIFT; |
140 | 169 | ||
141 | *(dp++) = DARTMAP_VALID | (rpn & DARTMAP_RPNMASK); | 170 | *(dp++) = DARTMAP_VALID | (rpn & DARTMAP_RPNMASK); |
@@ -143,7 +172,14 @@ static void dart_build(struct iommu_table *tbl, long index, | |||
143 | uaddr += DART_PAGE_SIZE; | 172 | uaddr += DART_PAGE_SIZE; |
144 | } | 173 | } |
145 | 174 | ||
146 | dart_dirty = 1; | 175 | if (dart_is_u4) { |
176 | rpn = index; | ||
177 | mb(); /* make sure all updates have reached memory */ | ||
178 | while (npages--) | ||
179 | dart_tlb_invalidate_one(rpn++); | ||
180 | } else { | ||
181 | dart_dirty = 1; | ||
182 | } | ||
147 | } | 183 | } |
148 | 184 | ||
149 | 185 | ||
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c index 71a3275935ec..e983972132d8 100644 --- a/arch/powerpc/sysdev/fsl_soc.c +++ b/arch/powerpc/sysdev/fsl_soc.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * option) any later version. | 9 | * option) any later version. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c index b7ac32fdd776..1a3ef1ab9d6e 100644 --- a/arch/powerpc/sysdev/i8259.c +++ b/arch/powerpc/sysdev/i8259.c | |||
@@ -167,7 +167,7 @@ static struct resource pic_edgectrl_iores = { | |||
167 | 167 | ||
168 | static struct irqaction i8259_irqaction = { | 168 | static struct irqaction i8259_irqaction = { |
169 | .handler = no_action, | 169 | .handler = no_action, |
170 | .flags = SA_INTERRUPT, | 170 | .flags = IRQF_DISABLED, |
171 | .mask = CPU_MASK_NONE, | 171 | .mask = CPU_MASK_NONE, |
172 | .name = "82c59 secondary cascade", | 172 | .name = "82c59 secondary cascade", |
173 | }; | 173 | }; |
@@ -208,7 +208,7 @@ void __init i8259_init(unsigned long intack_addr, int offset) | |||
208 | spin_unlock_irqrestore(&i8259_lock, flags); | 208 | spin_unlock_irqrestore(&i8259_lock, flags); |
209 | 209 | ||
210 | for (i = 0; i < NUM_ISA_INTERRUPTS; ++i) | 210 | for (i = 0; i < NUM_ISA_INTERRUPTS; ++i) |
211 | irq_desc[offset + i].handler = &i8259_pic; | 211 | irq_desc[offset + i].chip = &i8259_pic; |
212 | 212 | ||
213 | /* reserve our resources */ | 213 | /* reserve our resources */ |
214 | setup_irq(offset + 2, &i8259_irqaction); | 214 | setup_irq(offset + 2, &i8259_irqaction); |
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c index 8f01e0f1d847..46801f5ec03f 100644 --- a/arch/powerpc/sysdev/ipic.c +++ b/arch/powerpc/sysdev/ipic.c | |||
@@ -472,7 +472,7 @@ void __init ipic_init(phys_addr_t phys_addr, | |||
472 | ipic_write(primary_ipic->regs, IPIC_SEMSR, temp); | 472 | ipic_write(primary_ipic->regs, IPIC_SEMSR, temp); |
473 | 473 | ||
474 | for (i = 0 ; i < NR_IPIC_INTS ; i++) { | 474 | for (i = 0 ; i < NR_IPIC_INTS ; i++) { |
475 | irq_desc[i+irq_offset].handler = &ipic; | 475 | irq_desc[i+irq_offset].chip = &ipic; |
476 | irq_desc[i+irq_offset].status = IRQ_LEVEL; | 476 | irq_desc[i+irq_offset].status = IRQ_LEVEL; |
477 | } | 477 | } |
478 | 478 | ||
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index bffe50d02c99..7e469358895f 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #undef DEBUG_IRQ | 17 | #undef DEBUG_IRQ |
18 | #undef DEBUG_LOW | 18 | #undef DEBUG_LOW |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/types.h> | 20 | #include <linux/types.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
@@ -379,14 +378,14 @@ static inline u32 mpic_physmask(u32 cpumask) | |||
379 | /* Get the mpic structure from the IPI number */ | 378 | /* Get the mpic structure from the IPI number */ |
380 | static inline struct mpic * mpic_from_ipi(unsigned int ipi) | 379 | static inline struct mpic * mpic_from_ipi(unsigned int ipi) |
381 | { | 380 | { |
382 | return container_of(irq_desc[ipi].handler, struct mpic, hc_ipi); | 381 | return container_of(irq_desc[ipi].chip, struct mpic, hc_ipi); |
383 | } | 382 | } |
384 | #endif | 383 | #endif |
385 | 384 | ||
386 | /* Get the mpic structure from the irq number */ | 385 | /* Get the mpic structure from the irq number */ |
387 | static inline struct mpic * mpic_from_irq(unsigned int irq) | 386 | static inline struct mpic * mpic_from_irq(unsigned int irq) |
388 | { | 387 | { |
389 | return container_of(irq_desc[irq].handler, struct mpic, hc_irq); | 388 | return container_of(irq_desc[irq].chip, struct mpic, hc_irq); |
390 | } | 389 | } |
391 | 390 | ||
392 | /* Send an EOI */ | 391 | /* Send an EOI */ |
@@ -541,7 +540,7 @@ static void mpic_end_ipi(unsigned int irq) | |||
541 | * IPIs are marked IRQ_PER_CPU. This has the side effect of | 540 | * IPIs are marked IRQ_PER_CPU. This has the side effect of |
542 | * preventing the IRQ_PENDING/IRQ_INPROGRESS logic from | 541 | * preventing the IRQ_PENDING/IRQ_INPROGRESS logic from |
543 | * applying to them. We EOI them late to avoid re-entering. | 542 | * applying to them. We EOI them late to avoid re-entering. |
544 | * We mark IPI's with SA_INTERRUPT as they must run with | 543 | * We mark IPI's with IRQF_DISABLED as they must run with |
545 | * irqs disabled. | 544 | * irqs disabled. |
546 | */ | 545 | */ |
547 | mpic_eoi(mpic); | 546 | mpic_eoi(mpic); |
@@ -752,7 +751,7 @@ void __init mpic_init(struct mpic *mpic) | |||
752 | if (!(mpic->flags & MPIC_PRIMARY)) | 751 | if (!(mpic->flags & MPIC_PRIMARY)) |
753 | continue; | 752 | continue; |
754 | irq_desc[mpic->ipi_offset+i].status |= IRQ_PER_CPU; | 753 | irq_desc[mpic->ipi_offset+i].status |= IRQ_PER_CPU; |
755 | irq_desc[mpic->ipi_offset+i].handler = &mpic->hc_ipi; | 754 | irq_desc[mpic->ipi_offset+i].chip = &mpic->hc_ipi; |
756 | #endif /* CONFIG_SMP */ | 755 | #endif /* CONFIG_SMP */ |
757 | } | 756 | } |
758 | 757 | ||
@@ -813,7 +812,7 @@ void __init mpic_init(struct mpic *mpic) | |||
813 | /* init linux descriptors */ | 812 | /* init linux descriptors */ |
814 | if (i < mpic->irq_count) { | 813 | if (i < mpic->irq_count) { |
815 | irq_desc[mpic->irq_offset+i].status = level ? IRQ_LEVEL : 0; | 814 | irq_desc[mpic->irq_offset+i].status = level ? IRQ_LEVEL : 0; |
816 | irq_desc[mpic->irq_offset+i].handler = &mpic->hc_irq; | 815 | irq_desc[mpic->irq_offset+i].chip = &mpic->hc_irq; |
817 | } | 816 | } |
818 | } | 817 | } |
819 | 818 | ||
@@ -906,7 +905,7 @@ void mpic_setup_this_cpu(void) | |||
906 | /* let the mpic know we want intrs. default affinity is 0xffffffff | 905 | /* let the mpic know we want intrs. default affinity is 0xffffffff |
907 | * until changed via /proc. That's how it's done on x86. If we want | 906 | * until changed via /proc. That's how it's done on x86. If we want |
908 | * it differently, then we should make sure we also change the default | 907 | * it differently, then we should make sure we also change the default |
909 | * values of irq_affinity in irq.c. | 908 | * values of irq_desc[].affinity in irq.c. |
910 | */ | 909 | */ |
911 | if (distribute_irqs) { | 910 | if (distribute_irqs) { |
912 | for (i = 0; i < mpic->num_sources ; i++) | 911 | for (i = 0; i < mpic->num_sources ; i++) |
@@ -1028,14 +1027,17 @@ void mpic_request_ipis(void) | |||
1028 | 1027 | ||
1029 | printk("requesting IPIs ... \n"); | 1028 | printk("requesting IPIs ... \n"); |
1030 | 1029 | ||
1031 | /* IPIs are marked SA_INTERRUPT as they must run with irqs disabled */ | 1030 | /* |
1032 | request_irq(mpic->ipi_offset+0, mpic_ipi_action, SA_INTERRUPT, | 1031 | * IPIs are marked IRQF_DISABLED as they must run with irqs |
1032 | * disabled | ||
1033 | */ | ||
1034 | request_irq(mpic->ipi_offset+0, mpic_ipi_action, IRQF_DISABLED, | ||
1033 | "IPI0 (call function)", mpic); | 1035 | "IPI0 (call function)", mpic); |
1034 | request_irq(mpic->ipi_offset+1, mpic_ipi_action, SA_INTERRUPT, | 1036 | request_irq(mpic->ipi_offset+1, mpic_ipi_action, IRQF_DISABLED, |
1035 | "IPI1 (reschedule)", mpic); | 1037 | "IPI1 (reschedule)", mpic); |
1036 | request_irq(mpic->ipi_offset+2, mpic_ipi_action, SA_INTERRUPT, | 1038 | request_irq(mpic->ipi_offset+2, mpic_ipi_action, IRQF_DISABLED, |
1037 | "IPI2 (unused)", mpic); | 1039 | "IPI2 (unused)", mpic); |
1038 | request_irq(mpic->ipi_offset+3, mpic_ipi_action, SA_INTERRUPT, | 1040 | request_irq(mpic->ipi_offset+3, mpic_ipi_action, IRQF_DISABLED, |
1039 | "IPI3 (debugger break)", mpic); | 1041 | "IPI3 (debugger break)", mpic); |
1040 | 1042 | ||
1041 | printk("IPIs requested... \n"); | 1043 | printk("IPIs requested... \n"); |
diff --git a/arch/powerpc/sysdev/todc.c b/arch/powerpc/sysdev/todc.c new file mode 100644 index 000000000000..0a65980efb50 --- /dev/null +++ b/arch/powerpc/sysdev/todc.c | |||
@@ -0,0 +1,392 @@ | |||
1 | /* | ||
2 | * Time of Day Clock support for the M48T35, M48T37, M48T59, and MC146818 | ||
3 | * Real Time Clocks/Timekeepers. | ||
4 | * | ||
5 | * Author: Mark A. Greer <mgreer@mvista.com> | ||
6 | * | ||
7 | * 2001-2004 (c) MontaVista, Software, Inc. This file is licensed under | ||
8 | * the terms of the GNU General Public License version 2. This program | ||
9 | * is licensed "as is" without any warranty of any kind, whether express | ||
10 | * or implied. | ||
11 | */ | ||
12 | #include <linux/errno.h> | ||
13 | #include <linux/init.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/time.h> | ||
16 | #include <linux/timex.h> | ||
17 | #include <linux/bcd.h> | ||
18 | #include <linux/mc146818rtc.h> | ||
19 | |||
20 | #include <asm/machdep.h> | ||
21 | #include <asm/io.h> | ||
22 | #include <asm/time.h> | ||
23 | #include <asm/todc.h> | ||
24 | |||
25 | /* | ||
26 | * Depending on the hardware on your board and your board design, the | ||
27 | * RTC/NVRAM may be accessed either directly (like normal memory) or via | ||
28 | * address/data registers. If your board uses the direct method, set | ||
29 | * 'nvram_data' to the base address of your nvram and leave 'nvram_as0' and | ||
30 | * 'nvram_as1' NULL. If your board uses address/data regs to access nvram, | ||
31 | * set 'nvram_as0' to the address of the lower byte, set 'nvram_as1' to the | ||
32 | * address of the upper byte (leave NULL if using mc146818), and set | ||
33 | * 'nvram_data' to the address of the 8-bit data register. | ||
34 | * | ||
35 | * Note: Even though the documentation for the various RTC chips say that it | ||
36 | * take up to a second before it starts updating once the 'R' bit is | ||
37 | * cleared, they always seem to update even though we bang on it many | ||
38 | * times a second. This is true, except for the Dallas Semi 1746/1747 | ||
39 | * (possibly others). Those chips seem to have a real problem whenever | ||
40 | * we set the 'R' bit before reading them, they basically stop counting. | ||
41 | * --MAG | ||
42 | */ | ||
43 | |||
44 | /* | ||
45 | * 'todc_info' should be initialized in your *_setup.c file to | ||
46 | * point to a fully initialized 'todc_info_t' structure. | ||
47 | * This structure holds all the register offsets for your particular | ||
48 | * TODC/RTC chip. | ||
49 | * TODC_ALLOC()/TODC_INIT() will allocate and initialize this table for you. | ||
50 | */ | ||
51 | |||
52 | #ifdef RTC_FREQ_SELECT | ||
53 | #undef RTC_FREQ_SELECT | ||
54 | #define RTC_FREQ_SELECT control_b /* Register A */ | ||
55 | #endif | ||
56 | |||
57 | #ifdef RTC_CONTROL | ||
58 | #undef RTC_CONTROL | ||
59 | #define RTC_CONTROL control_a /* Register B */ | ||
60 | #endif | ||
61 | |||
62 | #ifdef RTC_INTR_FLAGS | ||
63 | #undef RTC_INTR_FLAGS | ||
64 | #define RTC_INTR_FLAGS watchdog /* Register C */ | ||
65 | #endif | ||
66 | |||
67 | #ifdef RTC_VALID | ||
68 | #undef RTC_VALID | ||
69 | #define RTC_VALID interrupts /* Register D */ | ||
70 | #endif | ||
71 | |||
72 | /* Access routines when RTC accessed directly (like normal memory) */ | ||
73 | u_char | ||
74 | todc_direct_read_val(int addr) | ||
75 | { | ||
76 | return readb((void __iomem *)(todc_info->nvram_data + addr)); | ||
77 | } | ||
78 | |||
79 | void | ||
80 | todc_direct_write_val(int addr, unsigned char val) | ||
81 | { | ||
82 | writeb(val, (void __iomem *)(todc_info->nvram_data + addr)); | ||
83 | return; | ||
84 | } | ||
85 | |||
86 | /* Access routines for accessing m48txx type chips via addr/data regs */ | ||
87 | u_char | ||
88 | todc_m48txx_read_val(int addr) | ||
89 | { | ||
90 | outb(addr, todc_info->nvram_as0); | ||
91 | outb(addr>>todc_info->as0_bits, todc_info->nvram_as1); | ||
92 | return inb(todc_info->nvram_data); | ||
93 | } | ||
94 | |||
95 | void | ||
96 | todc_m48txx_write_val(int addr, unsigned char val) | ||
97 | { | ||
98 | outb(addr, todc_info->nvram_as0); | ||
99 | outb(addr>>todc_info->as0_bits, todc_info->nvram_as1); | ||
100 | outb(val, todc_info->nvram_data); | ||
101 | return; | ||
102 | } | ||
103 | |||
104 | /* Access routines for accessing mc146818 type chips via addr/data regs */ | ||
105 | u_char | ||
106 | todc_mc146818_read_val(int addr) | ||
107 | { | ||
108 | outb_p(addr, todc_info->nvram_as0); | ||
109 | return inb_p(todc_info->nvram_data); | ||
110 | } | ||
111 | |||
112 | void | ||
113 | todc_mc146818_write_val(int addr, unsigned char val) | ||
114 | { | ||
115 | outb_p(addr, todc_info->nvram_as0); | ||
116 | outb_p(val, todc_info->nvram_data); | ||
117 | } | ||
118 | |||
119 | |||
120 | /* | ||
121 | * Routines to make RTC chips with NVRAM buried behind an addr/data pair | ||
122 | * have the NVRAM and clock regs appear at the same level. | ||
123 | * The NVRAM will appear to start at addr 0 and the clock regs will appear | ||
124 | * to start immediately after the NVRAM (actually, start at offset | ||
125 | * todc_info->nvram_size). | ||
126 | */ | ||
127 | static inline u_char | ||
128 | todc_read_val(int addr) | ||
129 | { | ||
130 | u_char val; | ||
131 | |||
132 | if (todc_info->sw_flags & TODC_FLAG_2_LEVEL_NVRAM) { | ||
133 | if (addr < todc_info->nvram_size) { /* NVRAM */ | ||
134 | ppc_md.rtc_write_val(todc_info->nvram_addr_reg, addr); | ||
135 | val = ppc_md.rtc_read_val(todc_info->nvram_data_reg); | ||
136 | } else { /* Clock Reg */ | ||
137 | addr -= todc_info->nvram_size; | ||
138 | val = ppc_md.rtc_read_val(addr); | ||
139 | } | ||
140 | } else | ||
141 | val = ppc_md.rtc_read_val(addr); | ||
142 | |||
143 | return val; | ||
144 | } | ||
145 | |||
146 | static inline void | ||
147 | todc_write_val(int addr, u_char val) | ||
148 | { | ||
149 | if (todc_info->sw_flags & TODC_FLAG_2_LEVEL_NVRAM) { | ||
150 | if (addr < todc_info->nvram_size) { /* NVRAM */ | ||
151 | ppc_md.rtc_write_val(todc_info->nvram_addr_reg, addr); | ||
152 | ppc_md.rtc_write_val(todc_info->nvram_data_reg, val); | ||
153 | } else { /* Clock Reg */ | ||
154 | addr -= todc_info->nvram_size; | ||
155 | ppc_md.rtc_write_val(addr, val); | ||
156 | } | ||
157 | } else | ||
158 | ppc_md.rtc_write_val(addr, val); | ||
159 | } | ||
160 | |||
161 | /* | ||
162 | * TODC routines | ||
163 | * | ||
164 | * There is some ugly stuff in that there are assumptions for the mc146818. | ||
165 | * | ||
166 | * Assumptions: | ||
167 | * - todc_info->control_a has the offset as mc146818 Register B reg | ||
168 | * - todc_info->control_b has the offset as mc146818 Register A reg | ||
169 | * - m48txx control reg's write enable or 'W' bit is same as | ||
170 | * mc146818 Register B 'SET' bit (i.e., 0x80) | ||
171 | * | ||
172 | * These assumptions were made to make the code simpler. | ||
173 | */ | ||
174 | long __init | ||
175 | todc_time_init(void) | ||
176 | { | ||
177 | u_char cntl_b; | ||
178 | |||
179 | if (!ppc_md.rtc_read_val) | ||
180 | ppc_md.rtc_read_val = ppc_md.nvram_read_val; | ||
181 | if (!ppc_md.rtc_write_val) | ||
182 | ppc_md.rtc_write_val = ppc_md.nvram_write_val; | ||
183 | |||
184 | cntl_b = todc_read_val(todc_info->control_b); | ||
185 | |||
186 | if (todc_info->rtc_type == TODC_TYPE_MC146818) { | ||
187 | if ((cntl_b & 0x70) != 0x20) { | ||
188 | printk(KERN_INFO "TODC real-time-clock was stopped." | ||
189 | " Now starting..."); | ||
190 | cntl_b &= ~0x70; | ||
191 | cntl_b |= 0x20; | ||
192 | } | ||
193 | |||
194 | todc_write_val(todc_info->control_b, cntl_b); | ||
195 | } else if (todc_info->rtc_type == TODC_TYPE_DS17285) { | ||
196 | u_char mode; | ||
197 | |||
198 | mode = todc_read_val(TODC_TYPE_DS17285_CNTL_A); | ||
199 | /* Make sure countdown clear is not set */ | ||
200 | mode &= ~0x40; | ||
201 | /* Enable oscillator, extended register set */ | ||
202 | mode |= 0x30; | ||
203 | todc_write_val(TODC_TYPE_DS17285_CNTL_A, mode); | ||
204 | |||
205 | } else if (todc_info->rtc_type == TODC_TYPE_DS1501) { | ||
206 | u_char month; | ||
207 | |||
208 | todc_info->enable_read = TODC_DS1501_CNTL_B_TE; | ||
209 | todc_info->enable_write = TODC_DS1501_CNTL_B_TE; | ||
210 | |||
211 | month = todc_read_val(todc_info->month); | ||
212 | |||
213 | if ((month & 0x80) == 0x80) { | ||
214 | printk(KERN_INFO "TODC %s %s\n", | ||
215 | "real-time-clock was stopped.", | ||
216 | "Now starting..."); | ||
217 | month &= ~0x80; | ||
218 | todc_write_val(todc_info->month, month); | ||
219 | } | ||
220 | |||
221 | cntl_b &= ~TODC_DS1501_CNTL_B_TE; | ||
222 | todc_write_val(todc_info->control_b, cntl_b); | ||
223 | } else { /* must be a m48txx type */ | ||
224 | u_char cntl_a; | ||
225 | |||
226 | todc_info->enable_read = TODC_MK48TXX_CNTL_A_R; | ||
227 | todc_info->enable_write = TODC_MK48TXX_CNTL_A_W; | ||
228 | |||
229 | cntl_a = todc_read_val(todc_info->control_a); | ||
230 | |||
231 | /* Check & clear STOP bit in control B register */ | ||
232 | if (cntl_b & TODC_MK48TXX_DAY_CB) { | ||
233 | printk(KERN_INFO "TODC %s %s\n", | ||
234 | "real-time-clock was stopped.", | ||
235 | "Now starting..."); | ||
236 | |||
237 | cntl_a |= todc_info->enable_write; | ||
238 | cntl_b &= ~TODC_MK48TXX_DAY_CB;/* Start Oscil */ | ||
239 | |||
240 | todc_write_val(todc_info->control_a, cntl_a); | ||
241 | todc_write_val(todc_info->control_b, cntl_b); | ||
242 | } | ||
243 | |||
244 | /* Make sure READ & WRITE bits are cleared. */ | ||
245 | cntl_a &= ~(todc_info->enable_write | todc_info->enable_read); | ||
246 | todc_write_val(todc_info->control_a, cntl_a); | ||
247 | } | ||
248 | |||
249 | return 0; | ||
250 | } | ||
251 | |||
252 | /* | ||
253 | * There is some ugly stuff in that there are assumptions that for a mc146818, | ||
254 | * the todc_info->control_a has the offset of the mc146818 Register B reg and | ||
255 | * that the register'ss 'SET' bit is the same as the m48txx's write enable | ||
256 | * bit in the control register of the m48txx (i.e., 0x80). | ||
257 | * | ||
258 | * It was done to make the code look simpler. | ||
259 | */ | ||
260 | void | ||
261 | todc_get_rtc_time(struct rtc_time *tm) | ||
262 | { | ||
263 | uint year = 0, mon = 0, mday = 0, hour = 0, min = 0, sec = 0; | ||
264 | uint limit, i; | ||
265 | u_char save_control, uip = 0; | ||
266 | extern void GregorianDay(struct rtc_time *); | ||
267 | |||
268 | spin_lock(&rtc_lock); | ||
269 | save_control = todc_read_val(todc_info->control_a); | ||
270 | |||
271 | if (todc_info->rtc_type != TODC_TYPE_MC146818) { | ||
272 | limit = 1; | ||
273 | |||
274 | switch (todc_info->rtc_type) { | ||
275 | case TODC_TYPE_DS1553: | ||
276 | case TODC_TYPE_DS1557: | ||
277 | case TODC_TYPE_DS1743: | ||
278 | case TODC_TYPE_DS1746: /* XXXX BAD HACK -> FIX */ | ||
279 | case TODC_TYPE_DS1747: | ||
280 | case TODC_TYPE_DS17285: | ||
281 | break; | ||
282 | default: | ||
283 | todc_write_val(todc_info->control_a, | ||
284 | (save_control | todc_info->enable_read)); | ||
285 | } | ||
286 | } else | ||
287 | limit = 100000000; | ||
288 | |||
289 | for (i=0; i<limit; i++) { | ||
290 | if (todc_info->rtc_type == TODC_TYPE_MC146818) | ||
291 | uip = todc_read_val(todc_info->RTC_FREQ_SELECT); | ||
292 | |||
293 | sec = todc_read_val(todc_info->seconds) & 0x7f; | ||
294 | min = todc_read_val(todc_info->minutes) & 0x7f; | ||
295 | hour = todc_read_val(todc_info->hours) & 0x3f; | ||
296 | mday = todc_read_val(todc_info->day_of_month) & 0x3f; | ||
297 | mon = todc_read_val(todc_info->month) & 0x1f; | ||
298 | year = todc_read_val(todc_info->year) & 0xff; | ||
299 | |||
300 | if (todc_info->rtc_type == TODC_TYPE_MC146818) { | ||
301 | uip |= todc_read_val(todc_info->RTC_FREQ_SELECT); | ||
302 | if ((uip & RTC_UIP) == 0) | ||
303 | break; | ||
304 | } | ||
305 | } | ||
306 | |||
307 | if (todc_info->rtc_type != TODC_TYPE_MC146818) { | ||
308 | switch (todc_info->rtc_type) { | ||
309 | case TODC_TYPE_DS1553: | ||
310 | case TODC_TYPE_DS1557: | ||
311 | case TODC_TYPE_DS1743: | ||
312 | case TODC_TYPE_DS1746: /* XXXX BAD HACK -> FIX */ | ||
313 | case TODC_TYPE_DS1747: | ||
314 | case TODC_TYPE_DS17285: | ||
315 | break; | ||
316 | default: | ||
317 | save_control &= ~(todc_info->enable_read); | ||
318 | todc_write_val(todc_info->control_a, save_control); | ||
319 | } | ||
320 | } | ||
321 | spin_unlock(&rtc_lock); | ||
322 | |||
323 | if ((todc_info->rtc_type != TODC_TYPE_MC146818) | ||
324 | || ((save_control & RTC_DM_BINARY) == 0) | ||
325 | || RTC_ALWAYS_BCD) { | ||
326 | BCD_TO_BIN(sec); | ||
327 | BCD_TO_BIN(min); | ||
328 | BCD_TO_BIN(hour); | ||
329 | BCD_TO_BIN(mday); | ||
330 | BCD_TO_BIN(mon); | ||
331 | BCD_TO_BIN(year); | ||
332 | } | ||
333 | |||
334 | if ((year + 1900) < 1970) { | ||
335 | year += 100; | ||
336 | } | ||
337 | |||
338 | tm->tm_sec = sec; | ||
339 | tm->tm_min = min; | ||
340 | tm->tm_hour = hour; | ||
341 | tm->tm_mday = mday; | ||
342 | tm->tm_mon = mon; | ||
343 | tm->tm_year = year; | ||
344 | |||
345 | GregorianDay(tm); | ||
346 | } | ||
347 | |||
348 | int | ||
349 | todc_set_rtc_time(struct rtc_time *tm) | ||
350 | { | ||
351 | u_char save_control, save_freq_select = 0; | ||
352 | |||
353 | spin_lock(&rtc_lock); | ||
354 | save_control = todc_read_val(todc_info->control_a); | ||
355 | |||
356 | /* Assuming MK48T59_RTC_CA_WRITE & RTC_SET are equal */ | ||
357 | todc_write_val(todc_info->control_a, | ||
358 | (save_control | todc_info->enable_write)); | ||
359 | save_control &= ~(todc_info->enable_write); /* in case it was set */ | ||
360 | |||
361 | if (todc_info->rtc_type == TODC_TYPE_MC146818) { | ||
362 | save_freq_select = todc_read_val(todc_info->RTC_FREQ_SELECT); | ||
363 | todc_write_val(todc_info->RTC_FREQ_SELECT, | ||
364 | save_freq_select | RTC_DIV_RESET2); | ||
365 | } | ||
366 | |||
367 | if ((todc_info->rtc_type != TODC_TYPE_MC146818) | ||
368 | || ((save_control & RTC_DM_BINARY) == 0) | ||
369 | || RTC_ALWAYS_BCD) { | ||
370 | BIN_TO_BCD(tm->tm_sec); | ||
371 | BIN_TO_BCD(tm->tm_min); | ||
372 | BIN_TO_BCD(tm->tm_hour); | ||
373 | BIN_TO_BCD(tm->tm_mon); | ||
374 | BIN_TO_BCD(tm->tm_mday); | ||
375 | BIN_TO_BCD(tm->tm_year); | ||
376 | } | ||
377 | |||
378 | todc_write_val(todc_info->seconds, tm->tm_sec); | ||
379 | todc_write_val(todc_info->minutes, tm->tm_min); | ||
380 | todc_write_val(todc_info->hours, tm->tm_hour); | ||
381 | todc_write_val(todc_info->month, tm->tm_mon); | ||
382 | todc_write_val(todc_info->day_of_month, tm->tm_mday); | ||
383 | todc_write_val(todc_info->year, tm->tm_year); | ||
384 | |||
385 | todc_write_val(todc_info->control_a, save_control); | ||
386 | |||
387 | if (todc_info->rtc_type == TODC_TYPE_MC146818) | ||
388 | todc_write_val(todc_info->RTC_FREQ_SELECT, save_freq_select); | ||
389 | |||
390 | spin_unlock(&rtc_lock); | ||
391 | return 0; | ||
392 | } | ||
diff --git a/arch/powerpc/sysdev/tsi108_dev.c b/arch/powerpc/sysdev/tsi108_dev.c new file mode 100644 index 000000000000..26a0cc820cde --- /dev/null +++ b/arch/powerpc/sysdev/tsi108_dev.c | |||
@@ -0,0 +1,145 @@ | |||
1 | /* | ||
2 | * tsi108/109 device setup code | ||
3 | * | ||
4 | * Maintained by Roy Zang < tie-fei.zang@freescale.com > | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | */ | ||
11 | |||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | ||
14 | #include <linux/kernel.h> | ||
15 | #include <linux/init.h> | ||
16 | #include <linux/errno.h> | ||
17 | #include <linux/major.h> | ||
18 | #include <linux/delay.h> | ||
19 | #include <linux/irq.h> | ||
20 | #include <linux/module.h> | ||
21 | #include <linux/device.h> | ||
22 | #include <linux/platform_device.h> | ||
23 | #include <asm/tsi108.h> | ||
24 | |||
25 | #include <asm/system.h> | ||
26 | #include <asm/atomic.h> | ||
27 | #include <asm/io.h> | ||
28 | #include <asm/irq.h> | ||
29 | #include <asm/prom.h> | ||
30 | #include <mm/mmu_decl.h> | ||
31 | |||
32 | #undef DEBUG | ||
33 | |||
34 | #ifdef DEBUG | ||
35 | #define DBG(fmt...) do { printk(fmt); } while(0) | ||
36 | #else | ||
37 | #define DBG(fmt...) do { } while(0) | ||
38 | #endif | ||
39 | |||
40 | static phys_addr_t tsi108_csr_base = -1; | ||
41 | |||
42 | phys_addr_t get_csrbase(void) | ||
43 | { | ||
44 | struct device_node *tsi; | ||
45 | |||
46 | if (tsi108_csr_base != -1) | ||
47 | return tsi108_csr_base; | ||
48 | |||
49 | tsi = of_find_node_by_type(NULL, "tsi-bridge"); | ||
50 | if (tsi) { | ||
51 | unsigned int size; | ||
52 | void *prop = get_property(tsi, "reg", &size); | ||
53 | tsi108_csr_base = of_translate_address(tsi, prop); | ||
54 | of_node_put(tsi); | ||
55 | }; | ||
56 | return tsi108_csr_base; | ||
57 | } | ||
58 | |||
59 | u32 get_vir_csrbase(void) | ||
60 | { | ||
61 | return (u32) (ioremap(get_csrbase(), 0x10000)); | ||
62 | } | ||
63 | |||
64 | EXPORT_SYMBOL(get_csrbase); | ||
65 | EXPORT_SYMBOL(get_vir_csrbase); | ||
66 | |||
67 | static int __init tsi108_eth_of_init(void) | ||
68 | { | ||
69 | struct device_node *np; | ||
70 | unsigned int i; | ||
71 | struct platform_device *tsi_eth_dev; | ||
72 | struct resource res; | ||
73 | int ret; | ||
74 | |||
75 | for (np = NULL, i = 0; | ||
76 | (np = of_find_compatible_node(np, "network", "tsi-ethernet")) != NULL; | ||
77 | i++) { | ||
78 | struct resource r[2]; | ||
79 | struct device_node *phy; | ||
80 | hw_info tsi_eth_data; | ||
81 | unsigned int *id; | ||
82 | unsigned int *phy_id; | ||
83 | void *mac_addr; | ||
84 | phandle *ph; | ||
85 | |||
86 | memset(r, 0, sizeof(r)); | ||
87 | memset(&tsi_eth_data, 0, sizeof(tsi_eth_data)); | ||
88 | |||
89 | ret = of_address_to_resource(np, 0, &r[0]); | ||
90 | DBG("%s: name:start->end = %s:0x%lx-> 0x%lx\n", | ||
91 | __FUNCTION__,r[0].name, r[0].start, r[0].end); | ||
92 | if (ret) | ||
93 | goto err; | ||
94 | |||
95 | r[1].name = "tx"; | ||
96 | r[1].start = np->intrs[0].line; | ||
97 | r[1].end = np->intrs[0].line; | ||
98 | r[1].flags = IORESOURCE_IRQ; | ||
99 | |||
100 | tsi_eth_dev = | ||
101 | platform_device_register_simple("tsi-ethernet", i, &r[0], | ||
102 | np->n_intrs + 1); | ||
103 | |||
104 | if (IS_ERR(tsi_eth_dev)) { | ||
105 | ret = PTR_ERR(tsi_eth_dev); | ||
106 | goto err; | ||
107 | } | ||
108 | |||
109 | mac_addr = get_property(np, "address", NULL); | ||
110 | memcpy(tsi_eth_data.mac_addr, mac_addr, 6); | ||
111 | |||
112 | ph = (phandle *) get_property(np, "phy-handle", NULL); | ||
113 | phy = of_find_node_by_phandle(*ph); | ||
114 | |||
115 | if (phy == NULL) { | ||
116 | ret = -ENODEV; | ||
117 | goto unreg; | ||
118 | } | ||
119 | |||
120 | id = (u32 *) get_property(phy, "reg", NULL); | ||
121 | phy_id = (u32 *) get_property(phy, "phy-id", NULL); | ||
122 | ret = of_address_to_resource(phy, 0, &res); | ||
123 | if (ret) { | ||
124 | of_node_put(phy); | ||
125 | goto unreg; | ||
126 | } | ||
127 | tsi_eth_data.regs = r[0].start; | ||
128 | tsi_eth_data.phyregs = res.start; | ||
129 | tsi_eth_data.phy = *phy_id; | ||
130 | tsi_eth_data.irq_num = np->intrs[0].line; | ||
131 | of_node_put(phy); | ||
132 | ret = | ||
133 | platform_device_add_data(tsi_eth_dev, &tsi_eth_data, | ||
134 | sizeof(hw_info)); | ||
135 | if (ret) | ||
136 | goto unreg; | ||
137 | } | ||
138 | return 0; | ||
139 | unreg: | ||
140 | platform_device_unregister(tsi_eth_dev); | ||
141 | err: | ||
142 | return ret; | ||
143 | } | ||
144 | |||
145 | arch_initcall(tsi108_eth_of_init); | ||
diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c new file mode 100644 index 000000000000..3265d54c82ed --- /dev/null +++ b/arch/powerpc/sysdev/tsi108_pci.c | |||
@@ -0,0 +1,412 @@ | |||
1 | /* | ||
2 | * Common routines for Tundra Semiconductor TSI108 host bridge. | ||
3 | * | ||
4 | * 2004-2005 (c) Tundra Semiconductor Corp. | ||
5 | * Author: Alex Bounine (alexandreb@tundra.com) | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the Free | ||
9 | * Software Foundation; either version 2 of the License, or (at your option) | ||
10 | * any later version. | ||
11 | * | ||
12 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
13 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
14 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
15 | * more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License along with | ||
18 | * this program; if not, write to the Free Software Foundation, Inc., 59 | ||
19 | * Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
20 | */ | ||
21 | |||
22 | #include <linux/kernel.h> | ||
23 | #include <linux/init.h> | ||
24 | #include <linux/pci.h> | ||
25 | #include <linux/slab.h> | ||
26 | #include <linux/irq.h> | ||
27 | #include <linux/interrupt.h> | ||
28 | |||
29 | |||
30 | #include <asm/byteorder.h> | ||
31 | #include <asm/io.h> | ||
32 | #include <asm/irq.h> | ||
33 | #include <asm/uaccess.h> | ||
34 | #include <asm/machdep.h> | ||
35 | #include <asm/pci-bridge.h> | ||
36 | #include <asm/tsi108.h> | ||
37 | #include <asm/tsi108_irq.h> | ||
38 | #include <asm/prom.h> | ||
39 | |||
40 | #undef DEBUG | ||
41 | #ifdef DEBUG | ||
42 | #define DBG(x...) printk(x) | ||
43 | #else | ||
44 | #define DBG(x...) | ||
45 | #endif | ||
46 | |||
47 | #define tsi_mk_config_addr(bus, devfunc, offset) \ | ||
48 | ((((bus)<<16) | ((devfunc)<<8) | (offset & 0xfc)) + tsi108_pci_cfg_base) | ||
49 | |||
50 | u32 tsi108_pci_cfg_base; | ||
51 | u32 tsi108_csr_vir_base; | ||
52 | |||
53 | extern u32 get_vir_csrbase(void); | ||
54 | extern u32 tsi108_read_reg(u32 reg_offset); | ||
55 | extern void tsi108_write_reg(u32 reg_offset, u32 val); | ||
56 | |||
57 | int | ||
58 | tsi108_direct_write_config(struct pci_bus *bus, unsigned int devfunc, | ||
59 | int offset, int len, u32 val) | ||
60 | { | ||
61 | volatile unsigned char *cfg_addr; | ||
62 | |||
63 | if (ppc_md.pci_exclude_device) | ||
64 | if (ppc_md.pci_exclude_device(bus->number, devfunc)) | ||
65 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
66 | |||
67 | cfg_addr = (unsigned char *)(tsi_mk_config_addr(bus->number, | ||
68 | devfunc, offset) | | ||
69 | (offset & 0x03)); | ||
70 | |||
71 | #ifdef DEBUG | ||
72 | printk("PCI CFG write : "); | ||
73 | printk("%d:0x%x:0x%x ", bus->number, devfunc, offset); | ||
74 | printk("%d ADDR=0x%08x ", len, (uint) cfg_addr); | ||
75 | printk("data = 0x%08x\n", val); | ||
76 | #endif | ||
77 | |||
78 | switch (len) { | ||
79 | case 1: | ||
80 | out_8((u8 *) cfg_addr, val); | ||
81 | break; | ||
82 | case 2: | ||
83 | out_le16((u16 *) cfg_addr, val); | ||
84 | break; | ||
85 | default: | ||
86 | out_le32((u32 *) cfg_addr, val); | ||
87 | break; | ||
88 | } | ||
89 | |||
90 | return PCIBIOS_SUCCESSFUL; | ||
91 | } | ||
92 | |||
93 | void tsi108_clear_pci_error(u32 pci_cfg_base) | ||
94 | { | ||
95 | u32 err_stat, err_addr, pci_stat; | ||
96 | |||
97 | /* | ||
98 | * Quietly clear PB and PCI error flags set as result | ||
99 | * of PCI/X configuration read requests. | ||
100 | */ | ||
101 | |||
102 | /* Read PB Error Log Registers */ | ||
103 | |||
104 | err_stat = tsi108_read_reg(TSI108_PB_OFFSET + TSI108_PB_ERRCS); | ||
105 | err_addr = tsi108_read_reg(TSI108_PB_OFFSET + TSI108_PB_AERR); | ||
106 | |||
107 | if (err_stat & TSI108_PB_ERRCS_ES) { | ||
108 | /* Clear error flag */ | ||
109 | tsi108_write_reg(TSI108_PB_OFFSET + TSI108_PB_ERRCS, | ||
110 | TSI108_PB_ERRCS_ES); | ||
111 | |||
112 | /* Clear read error reported in PB_ISR */ | ||
113 | tsi108_write_reg(TSI108_PB_OFFSET + TSI108_PB_ISR, | ||
114 | TSI108_PB_ISR_PBS_RD_ERR); | ||
115 | |||
116 | /* Clear PCI/X bus cfg errors if applicable */ | ||
117 | if ((err_addr & 0xFF000000) == pci_cfg_base) { | ||
118 | pci_stat = | ||
119 | tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_CSR); | ||
120 | tsi108_write_reg(TSI108_PCI_OFFSET + TSI108_PCI_CSR, | ||
121 | pci_stat); | ||
122 | } | ||
123 | } | ||
124 | |||
125 | return; | ||
126 | } | ||
127 | |||
128 | #define __tsi108_read_pci_config(x, addr, op) \ | ||
129 | __asm__ __volatile__( \ | ||
130 | " "op" %0,0,%1\n" \ | ||
131 | "1: eieio\n" \ | ||
132 | "2:\n" \ | ||
133 | ".section .fixup,\"ax\"\n" \ | ||
134 | "3: li %0,-1\n" \ | ||
135 | " b 2b\n" \ | ||
136 | ".section __ex_table,\"a\"\n" \ | ||
137 | " .align 2\n" \ | ||
138 | " .long 1b,3b\n" \ | ||
139 | ".text" \ | ||
140 | : "=r"(x) : "r"(addr)) | ||
141 | |||
142 | int | ||
143 | tsi108_direct_read_config(struct pci_bus *bus, unsigned int devfn, int offset, | ||
144 | int len, u32 * val) | ||
145 | { | ||
146 | volatile unsigned char *cfg_addr; | ||
147 | u32 temp; | ||
148 | |||
149 | if (ppc_md.pci_exclude_device) | ||
150 | if (ppc_md.pci_exclude_device(bus->number, devfn)) | ||
151 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
152 | |||
153 | cfg_addr = (unsigned char *)(tsi_mk_config_addr(bus->number, | ||
154 | devfn, | ||
155 | offset) | (offset & | ||
156 | 0x03)); | ||
157 | |||
158 | switch (len) { | ||
159 | case 1: | ||
160 | __tsi108_read_pci_config(temp, cfg_addr, "lbzx"); | ||
161 | break; | ||
162 | case 2: | ||
163 | __tsi108_read_pci_config(temp, cfg_addr, "lhbrx"); | ||
164 | break; | ||
165 | default: | ||
166 | __tsi108_read_pci_config(temp, cfg_addr, "lwbrx"); | ||
167 | break; | ||
168 | } | ||
169 | |||
170 | *val = temp; | ||
171 | |||
172 | #ifdef DEBUG | ||
173 | if ((0xFFFFFFFF != temp) && (0xFFFF != temp) && (0xFF != temp)) { | ||
174 | printk("PCI CFG read : "); | ||
175 | printk("%d:0x%x:0x%x ", bus->number, devfn, offset); | ||
176 | printk("%d ADDR=0x%08x ", len, (uint) cfg_addr); | ||
177 | printk("data = 0x%x\n", *val); | ||
178 | } | ||
179 | #endif | ||
180 | return PCIBIOS_SUCCESSFUL; | ||
181 | } | ||
182 | |||
183 | void tsi108_clear_pci_cfg_error(void) | ||
184 | { | ||
185 | tsi108_clear_pci_error(TSI108_PCI_CFG_BASE_PHYS); | ||
186 | } | ||
187 | |||
188 | static struct pci_ops tsi108_direct_pci_ops = { | ||
189 | tsi108_direct_read_config, | ||
190 | tsi108_direct_write_config | ||
191 | }; | ||
192 | |||
193 | int __init tsi108_setup_pci(struct device_node *dev) | ||
194 | { | ||
195 | int len; | ||
196 | struct pci_controller *hose; | ||
197 | struct resource rsrc; | ||
198 | int *bus_range; | ||
199 | int primary = 0, has_address = 0; | ||
200 | |||
201 | /* PCI Config mapping */ | ||
202 | tsi108_pci_cfg_base = (u32)ioremap(TSI108_PCI_CFG_BASE_PHYS, | ||
203 | TSI108_PCI_CFG_SIZE); | ||
204 | DBG("TSI_PCI: %s tsi108_pci_cfg_base=0x%x\n", __FUNCTION__, | ||
205 | tsi108_pci_cfg_base); | ||
206 | |||
207 | /* Fetch host bridge registers address */ | ||
208 | has_address = (of_address_to_resource(dev, 0, &rsrc) == 0); | ||
209 | |||
210 | /* Get bus range if any */ | ||
211 | bus_range = (int *)get_property(dev, "bus-range", &len); | ||
212 | if (bus_range == NULL || len < 2 * sizeof(int)) { | ||
213 | printk(KERN_WARNING "Can't get bus-range for %s, assume" | ||
214 | " bus 0\n", dev->full_name); | ||
215 | } | ||
216 | |||
217 | hose = pcibios_alloc_controller(); | ||
218 | |||
219 | if (!hose) { | ||
220 | printk("PCI Host bridge init failed\n"); | ||
221 | return -ENOMEM; | ||
222 | } | ||
223 | hose->arch_data = dev; | ||
224 | hose->set_cfg_type = 1; | ||
225 | |||
226 | hose->first_busno = bus_range ? bus_range[0] : 0; | ||
227 | hose->last_busno = bus_range ? bus_range[1] : 0xff; | ||
228 | |||
229 | (hose)->ops = &tsi108_direct_pci_ops; | ||
230 | |||
231 | printk(KERN_INFO "Found tsi108 PCI host bridge at 0x%08lx. " | ||
232 | "Firmware bus number: %d->%d\n", | ||
233 | rsrc.start, hose->first_busno, hose->last_busno); | ||
234 | |||
235 | /* Interpret the "ranges" property */ | ||
236 | /* This also maps the I/O region and sets isa_io/mem_base */ | ||
237 | pci_process_bridge_OF_ranges(hose, dev, primary); | ||
238 | return 0; | ||
239 | } | ||
240 | |||
241 | /* | ||
242 | * Low level utility functions | ||
243 | */ | ||
244 | |||
245 | static void tsi108_pci_int_mask(u_int irq) | ||
246 | { | ||
247 | u_int irp_cfg; | ||
248 | int int_line = (irq - IRQ_PCI_INTAD_BASE); | ||
249 | |||
250 | irp_cfg = tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_CFG_CTL); | ||
251 | mb(); | ||
252 | irp_cfg |= (1 << int_line); /* INTx_DIR = output */ | ||
253 | irp_cfg &= ~(3 << (8 + (int_line * 2))); /* INTx_TYPE = unused */ | ||
254 | tsi108_write_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_CFG_CTL, irp_cfg); | ||
255 | mb(); | ||
256 | irp_cfg = tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_CFG_CTL); | ||
257 | } | ||
258 | |||
259 | static void tsi108_pci_int_unmask(u_int irq) | ||
260 | { | ||
261 | u_int irp_cfg; | ||
262 | int int_line = (irq - IRQ_PCI_INTAD_BASE); | ||
263 | |||
264 | irp_cfg = tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_CFG_CTL); | ||
265 | mb(); | ||
266 | irp_cfg &= ~(1 << int_line); | ||
267 | irp_cfg |= (3 << (8 + (int_line * 2))); | ||
268 | tsi108_write_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_CFG_CTL, irp_cfg); | ||
269 | mb(); | ||
270 | } | ||
271 | |||
272 | static void init_pci_source(void) | ||
273 | { | ||
274 | tsi108_write_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_CFG_CTL, | ||
275 | 0x0000ff00); | ||
276 | tsi108_write_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_ENABLE, | ||
277 | TSI108_PCI_IRP_ENABLE_P_INT); | ||
278 | mb(); | ||
279 | } | ||
280 | |||
281 | static inline int get_pci_source(void) | ||
282 | { | ||
283 | u_int temp = 0; | ||
284 | int irq = -1; | ||
285 | int i; | ||
286 | u_int pci_irp_stat; | ||
287 | static int mask = 0; | ||
288 | |||
289 | /* Read PCI/X block interrupt status register */ | ||
290 | pci_irp_stat = tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_STAT); | ||
291 | mb(); | ||
292 | |||
293 | if (pci_irp_stat & TSI108_PCI_IRP_STAT_P_INT) { | ||
294 | /* Process Interrupt from PCI bus INTA# - INTD# lines */ | ||
295 | temp = | ||
296 | tsi108_read_reg(TSI108_PCI_OFFSET + | ||
297 | TSI108_PCI_IRP_INTAD) & 0xf; | ||
298 | mb(); | ||
299 | for (i = 0; i < 4; i++, mask++) { | ||
300 | if (temp & (1 << mask % 4)) { | ||
301 | irq = IRQ_PCI_INTA + mask % 4; | ||
302 | mask++; | ||
303 | break; | ||
304 | } | ||
305 | } | ||
306 | |||
307 | /* Disable interrupts from PCI block */ | ||
308 | temp = tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_ENABLE); | ||
309 | tsi108_write_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_ENABLE, | ||
310 | temp & ~TSI108_PCI_IRP_ENABLE_P_INT); | ||
311 | mb(); | ||
312 | (void)tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_ENABLE); | ||
313 | mb(); | ||
314 | } | ||
315 | #ifdef DEBUG | ||
316 | else { | ||
317 | printk("TSI108_PIC: error in TSI108_PCI_IRP_STAT\n"); | ||
318 | pci_irp_stat = | ||
319 | tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_STAT); | ||
320 | temp = | ||
321 | tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_INTAD); | ||
322 | mb(); | ||
323 | printk(">> stat=0x%08x intad=0x%08x ", pci_irp_stat, temp); | ||
324 | temp = | ||
325 | tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_CFG_CTL); | ||
326 | mb(); | ||
327 | printk("cfg_ctl=0x%08x ", temp); | ||
328 | temp = | ||
329 | tsi108_read_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_ENABLE); | ||
330 | mb(); | ||
331 | printk("irp_enable=0x%08x\n", temp); | ||
332 | } | ||
333 | #endif /* end of DEBUG */ | ||
334 | |||
335 | return irq; | ||
336 | } | ||
337 | |||
338 | |||
339 | /* | ||
340 | * Linux descriptor level callbacks | ||
341 | */ | ||
342 | |||
343 | static void tsi108_pci_irq_enable(u_int irq) | ||
344 | { | ||
345 | tsi108_pci_int_unmask(irq); | ||
346 | } | ||
347 | |||
348 | static void tsi108_pci_irq_disable(u_int irq) | ||
349 | { | ||
350 | tsi108_pci_int_mask(irq); | ||
351 | } | ||
352 | |||
353 | static void tsi108_pci_irq_ack(u_int irq) | ||
354 | { | ||
355 | tsi108_pci_int_mask(irq); | ||
356 | } | ||
357 | |||
358 | static void tsi108_pci_irq_end(u_int irq) | ||
359 | { | ||
360 | tsi108_pci_int_unmask(irq); | ||
361 | |||
362 | /* Enable interrupts from PCI block */ | ||
363 | tsi108_write_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_ENABLE, | ||
364 | tsi108_read_reg(TSI108_PCI_OFFSET + | ||
365 | TSI108_PCI_IRP_ENABLE) | | ||
366 | TSI108_PCI_IRP_ENABLE_P_INT); | ||
367 | mb(); | ||
368 | } | ||
369 | |||
370 | /* | ||
371 | * Interrupt controller descriptor for cascaded PCI interrupt controller. | ||
372 | */ | ||
373 | |||
374 | struct hw_interrupt_type tsi108_pci_irq = { | ||
375 | .typename = "tsi108_PCI_int", | ||
376 | .enable = tsi108_pci_irq_enable, | ||
377 | .disable = tsi108_pci_irq_disable, | ||
378 | .ack = tsi108_pci_irq_ack, | ||
379 | .end = tsi108_pci_irq_end, | ||
380 | }; | ||
381 | |||
382 | /* | ||
383 | * Exported functions | ||
384 | */ | ||
385 | |||
386 | /* | ||
387 | * The Tsi108 PCI interrupts initialization routine. | ||
388 | * | ||
389 | * The INTA# - INTD# interrupts on the PCI bus are reported by the PCI block | ||
390 | * to the MPIC using single interrupt source (IRQ_TSI108_PCI). Therefore the | ||
391 | * PCI block has to be treated as a cascaded interrupt controller connected | ||
392 | * to the MPIC. | ||
393 | */ | ||
394 | |||
395 | void __init tsi108_pci_int_init(void) | ||
396 | { | ||
397 | u_int i; | ||
398 | |||
399 | DBG("Tsi108_pci_int_init: initializing PCI interrupts\n"); | ||
400 | |||
401 | for (i = 0; i < NUM_PCI_IRQS; i++) { | ||
402 | irq_desc[i + IRQ_PCI_INTAD_BASE].handler = &tsi108_pci_irq; | ||
403 | irq_desc[i + IRQ_PCI_INTAD_BASE].status |= IRQ_LEVEL; | ||
404 | } | ||
405 | |||
406 | init_pci_source(); | ||
407 | } | ||
408 | |||
409 | int tsi108_irq_cascade(struct pt_regs *regs, void *unused) | ||
410 | { | ||
411 | return get_pci_source(); | ||
412 | } | ||
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c index 0741df8c41b7..179b10ced8c7 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/smp.h> | 13 | #include <linux/smp.h> |
diff --git a/arch/ppc/4xx_io/serial_sicc.c b/arch/ppc/4xx_io/serial_sicc.c index 98b25fa0049a..b81a367dc278 100644 --- a/arch/ppc/4xx_io/serial_sicc.c +++ b/arch/ppc/4xx_io/serial_sicc.c | |||
@@ -28,7 +28,6 @@ | |||
28 | * is compatible with normal ttyS* devices. | 28 | * is compatible with normal ttyS* devices. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/config.h> | ||
32 | #include <linux/module.h> | 31 | #include <linux/module.h> |
33 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
34 | #include <linux/errno.h> | 33 | #include <linux/errno.h> |
@@ -1758,7 +1757,7 @@ int __init siccuart_init(void) | |||
1758 | siccnormal_driver->subtype = SERIAL_TYPE_NORMAL; | 1757 | siccnormal_driver->subtype = SERIAL_TYPE_NORMAL; |
1759 | siccnormal_driver->init_termios = tty_std_termios; | 1758 | siccnormal_driver->init_termios = tty_std_termios; |
1760 | siccnormal_driver->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL; | 1759 | siccnormal_driver->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL; |
1761 | siccnormal_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS; | 1760 | siccnormal_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV; |
1762 | tty_set_operations(siccnormal_driver, &sicc_ops); | 1761 | tty_set_operations(siccnormal_driver, &sicc_ops); |
1763 | 1762 | ||
1764 | if (tty_register_driver(siccnormal_driver)) | 1763 | if (tty_register_driver(siccnormal_driver)) |
diff --git a/arch/ppc/8260_io/fcc_enet.c b/arch/ppc/8260_io/fcc_enet.c index 4edeede9ccfd..e347fe88316d 100644 --- a/arch/ppc/8260_io/fcc_enet.c +++ b/arch/ppc/8260_io/fcc_enet.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * | 21 | * |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
26 | #include <linux/sched.h> | 25 | #include <linux/sched.h> |
27 | #include <linux/string.h> | 26 | #include <linux/string.h> |
@@ -2117,7 +2116,7 @@ init_fcc_startup(fcc_info_t *fip, struct net_device *dev) | |||
2117 | 2116 | ||
2118 | #ifdef PHY_INTERRUPT | 2117 | #ifdef PHY_INTERRUPT |
2119 | #ifdef CONFIG_ADS8272 | 2118 | #ifdef CONFIG_ADS8272 |
2120 | if (request_irq(PHY_INTERRUPT, mii_link_interrupt, SA_SHIRQ, | 2119 | if (request_irq(PHY_INTERRUPT, mii_link_interrupt, IRQF_SHARED, |
2121 | "mii", dev) < 0) | 2120 | "mii", dev) < 0) |
2122 | printk(KERN_CRIT "Can't get MII IRQ %d\n", PHY_INTERRUPT); | 2121 | printk(KERN_CRIT "Can't get MII IRQ %d\n", PHY_INTERRUPT); |
2123 | #else | 2122 | #else |
diff --git a/arch/ppc/8xx_io/commproc.c b/arch/ppc/8xx_io/commproc.c index 12b84ca51327..9b3ace26280c 100644 --- a/arch/ppc/8xx_io/commproc.c +++ b/arch/ppc/8xx_io/commproc.c | |||
@@ -187,7 +187,7 @@ cpm_interrupt_init(void) | |||
187 | * interrupt vectors | 187 | * interrupt vectors |
188 | */ | 188 | */ |
189 | for ( i = CPM_IRQ_OFFSET ; i < CPM_IRQ_OFFSET + NR_CPM_INTS ; i++ ) | 189 | for ( i = CPM_IRQ_OFFSET ; i < CPM_IRQ_OFFSET + NR_CPM_INTS ; i++ ) |
190 | irq_desc[i].handler = &cpm_pic; | 190 | irq_desc[i].chip = &cpm_pic; |
191 | 191 | ||
192 | /* Set our interrupt handler with the core CPU. */ | 192 | /* Set our interrupt handler with the core CPU. */ |
193 | if (setup_irq(CPM_INTERRUPT, &cpm_interrupt_irqaction)) | 193 | if (setup_irq(CPM_INTERRUPT, &cpm_interrupt_irqaction)) |
diff --git a/arch/ppc/8xx_io/cs4218.h b/arch/ppc/8xx_io/cs4218.h index f1c7392255f8..e5f943045afa 100644 --- a/arch/ppc/8xx_io/cs4218.h +++ b/arch/ppc/8xx_io/cs4218.h | |||
@@ -13,7 +13,6 @@ | |||
13 | #define _cs4218_h_ | 13 | #define _cs4218_h_ |
14 | 14 | ||
15 | #include <linux/types.h> | 15 | #include <linux/types.h> |
16 | #include <linux/config.h> | ||
17 | 16 | ||
18 | #define SND_NDEVS 256 /* Number of supported devices */ | 17 | #define SND_NDEVS 256 /* Number of supported devices */ |
19 | #define SND_DEV_CTL 0 /* Control port /dev/mixer */ | 18 | #define SND_DEV_CTL 0 /* Control port /dev/mixer */ |
diff --git a/arch/ppc/8xx_io/cs4218_tdm.c b/arch/ppc/8xx_io/cs4218_tdm.c index a892356d5c3b..f5f300fc213d 100644 --- a/arch/ppc/8xx_io/cs4218_tdm.c +++ b/arch/ppc/8xx_io/cs4218_tdm.c | |||
@@ -14,7 +14,6 @@ | |||
14 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
15 | #include <linux/timer.h> | 15 | #include <linux/timer.h> |
16 | #include <linux/major.h> | 16 | #include <linux/major.h> |
17 | #include <linux/config.h> | ||
18 | #include <linux/fcntl.h> | 17 | #include <linux/fcntl.h> |
19 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/ppc/8xx_io/enet.c b/arch/ppc/8xx_io/enet.c index ece6a9fbe09b..a695375c3e4c 100644 --- a/arch/ppc/8xx_io/enet.c +++ b/arch/ppc/8xx_io/enet.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * small packets. | 22 | * small packets. |
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | #include <linux/config.h> | ||
26 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
27 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
28 | #include <linux/string.h> | 27 | #include <linux/string.h> |
diff --git a/arch/ppc/8xx_io/fec.c b/arch/ppc/8xx_io/fec.c index 62f68d6181c6..8b6295bbb564 100644 --- a/arch/ppc/8xx_io/fec.c +++ b/arch/ppc/8xx_io/fec.c | |||
@@ -28,7 +28,6 @@ | |||
28 | * Thomas Lange, thomas@corelatus.com | 28 | * Thomas Lange, thomas@corelatus.com |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/config.h> | ||
32 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
33 | #include <linux/sched.h> | 32 | #include <linux/sched.h> |
34 | #include <linux/string.h> | 33 | #include <linux/string.h> |
diff --git a/arch/ppc/8xx_io/micropatch.c b/arch/ppc/8xx_io/micropatch.c index 312af0776c31..cfad46ba17e3 100644 --- a/arch/ppc/8xx_io/micropatch.c +++ b/arch/ppc/8xx_io/micropatch.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * also relocates SMC2, but this would require additional changes | 4 | * also relocates SMC2, but this would require additional changes |
5 | * to uart.c, so I am holding off on that for a moment. | 5 | * to uart.c, so I am holding off on that for a moment. |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | #include <linux/errno.h> | 7 | #include <linux/errno.h> |
9 | #include <linux/sched.h> | 8 | #include <linux/sched.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig index b55de4f42aec..a04cdf01596b 100644 --- a/arch/ppc/Kconfig +++ b/arch/ppc/Kconfig | |||
@@ -219,10 +219,10 @@ config KEXEC | |||
219 | help | 219 | help |
220 | kexec is a system call that implements the ability to shutdown your | 220 | kexec is a system call that implements the ability to shutdown your |
221 | current kernel, and to start another kernel. It is like a reboot | 221 | current kernel, and to start another kernel. It is like a reboot |
222 | but it is indepedent of the system firmware. And like a reboot | 222 | but it is independent of the system firmware. And like a reboot |
223 | you can start any kernel with it, not just Linux. | 223 | you can start any kernel with it, not just Linux. |
224 | 224 | ||
225 | The name comes from the similiarity to the exec system call. | 225 | The name comes from the similarity to the exec system call. |
226 | 226 | ||
227 | It is an ongoing process to be certain the hardware in a machine | 227 | It is an ongoing process to be certain the hardware in a machine |
228 | is properly shutdown, so do not be surprised if this code does not | 228 | is properly shutdown, so do not be surprised if this code does not |
diff --git a/arch/ppc/amiga/amiints.c b/arch/ppc/amiga/amiints.c index b2bba052ab93..265fcd3c6ab2 100644 --- a/arch/ppc/amiga/amiints.c +++ b/arch/ppc/amiga/amiints.c | |||
@@ -35,7 +35,6 @@ | |||
35 | * /Jes | 35 | * /Jes |
36 | */ | 36 | */ |
37 | 37 | ||
38 | #include <linux/config.h> | ||
39 | #include <linux/types.h> | 38 | #include <linux/types.h> |
40 | #include <linux/kernel.h> | 39 | #include <linux/kernel.h> |
41 | #include <linux/sched.h> | 40 | #include <linux/sched.h> |
diff --git a/arch/ppc/amiga/config.c b/arch/ppc/amiga/config.c index bbe47c9bd707..bc50ed11957d 100644 --- a/arch/ppc/amiga/config.c +++ b/arch/ppc/amiga/config.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Miscellaneous Amiga stuff | 12 | * Miscellaneous Amiga stuff |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
diff --git a/arch/ppc/boot/common/crt0.S b/arch/ppc/boot/common/crt0.S index 4d31b824bbd1..8f0ef04b8de5 100644 --- a/arch/ppc/boot/common/crt0.S +++ b/arch/ppc/boot/common/crt0.S | |||
@@ -18,7 +18,6 @@ | |||
18 | * 2 of the License, or (at your option) any later version. | 18 | * 2 of the License, or (at your option) any later version. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <asm/ppc_asm.h> | 21 | #include <asm/ppc_asm.h> |
23 | 22 | ||
24 | .text | 23 | .text |
diff --git a/arch/ppc/boot/common/misc-common.c b/arch/ppc/boot/common/misc-common.c index 073830a8559a..8e1fccd96fc0 100644 --- a/arch/ppc/boot/common/misc-common.c +++ b/arch/ppc/boot/common/misc-common.c | |||
@@ -13,7 +13,6 @@ | |||
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <stdarg.h> /* for va_ bits */ | 15 | #include <stdarg.h> /* for va_ bits */ |
16 | #include <linux/config.h> | ||
17 | #include <linux/string.h> | 16 | #include <linux/string.h> |
18 | #include <linux/zlib.h> | 17 | #include <linux/zlib.h> |
19 | #include "nonstdio.h" | 18 | #include "nonstdio.h" |
diff --git a/arch/ppc/boot/common/ns16550.c b/arch/ppc/boot/common/ns16550.c index 4f00c93ac870..fc5b72041948 100644 --- a/arch/ppc/boot/common/ns16550.c +++ b/arch/ppc/boot/common/ns16550.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * COM1 NS16550 support | 2 | * COM1 NS16550 support |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/types.h> | 5 | #include <linux/types.h> |
7 | #include <linux/serial.h> | 6 | #include <linux/serial.h> |
8 | #include <linux/serial_reg.h> | 7 | #include <linux/serial_reg.h> |
diff --git a/arch/ppc/boot/simple/embed_config.c b/arch/ppc/boot/simple/embed_config.c index 3a51b1062940..840bff2a45fb 100644 --- a/arch/ppc/boot/simple/embed_config.c +++ b/arch/ppc/boot/simple/embed_config.c | |||
@@ -8,7 +8,6 @@ | |||
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/types.h> | 10 | #include <linux/types.h> |
11 | #include <linux/config.h> | ||
12 | #include <linux/string.h> | 11 | #include <linux/string.h> |
13 | #include <asm/reg.h> | 12 | #include <asm/reg.h> |
14 | #ifdef CONFIG_8xx | 13 | #ifdef CONFIG_8xx |
diff --git a/arch/ppc/boot/simple/head.S b/arch/ppc/boot/simple/head.S index 160da1006ff8..1b4d7b1d4ec1 100644 --- a/arch/ppc/boot/simple/head.S +++ b/arch/ppc/boot/simple/head.S | |||
@@ -11,7 +11,6 @@ | |||
11 | * or implied. | 11 | * or implied. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <asm/reg.h> | 14 | #include <asm/reg.h> |
16 | #include <asm/cache.h> | 15 | #include <asm/cache.h> |
17 | #include <asm/ppc_asm.h> | 16 | #include <asm/ppc_asm.h> |
diff --git a/arch/ppc/boot/simple/m8xx_tty.c b/arch/ppc/boot/simple/m8xx_tty.c index 1d2778e248c6..cacc40fdbcfa 100644 --- a/arch/ppc/boot/simple/m8xx_tty.c +++ b/arch/ppc/boot/simple/m8xx_tty.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * use COM1 instead of SMC1 as the console port. This kinda sucks | 8 | * use COM1 instead of SMC1 as the console port. This kinda sucks |
9 | * for the rest of the kernel, so here we force the use of SMC1 again. | 9 | * for the rest of the kernel, so here we force the use of SMC1 again. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <asm/uaccess.h> | 12 | #include <asm/uaccess.h> |
14 | #include <asm/mpc8xx.h> | 13 | #include <asm/mpc8xx.h> |
diff --git a/arch/ppc/boot/simple/misc-chestnut.c b/arch/ppc/boot/simple/misc-chestnut.c index b94e142ad892..14a4b56d4f84 100644 --- a/arch/ppc/boot/simple/misc-chestnut.c +++ b/arch/ppc/boot/simple/misc-chestnut.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
15 | #include <asm/mv64x60_defs.h> | 14 | #include <asm/mv64x60_defs.h> |
diff --git a/arch/ppc/boot/simple/misc-embedded.c b/arch/ppc/boot/simple/misc-embedded.c index 3865f3f8dcd1..10219eeca054 100644 --- a/arch/ppc/boot/simple/misc-embedded.c +++ b/arch/ppc/boot/simple/misc-embedded.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Currently maintained by: Tom Rini <trini@kernel.crashing.org> | 6 | * Currently maintained by: Tom Rini <trini@kernel.crashing.org> |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/string.h> | 10 | #include <linux/string.h> |
12 | #include <asm/bootinfo.h> | 11 | #include <asm/bootinfo.h> |
diff --git a/arch/ppc/boot/simple/misc-ev64260.c b/arch/ppc/boot/simple/misc-ev64260.c index 2678c224af22..0b3978632aca 100644 --- a/arch/ppc/boot/simple/misc-ev64260.c +++ b/arch/ppc/boot/simple/misc-ev64260.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * or implied. | 10 | * or implied. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <asm/reg.h> | 14 | #include <asm/reg.h> |
16 | #include <asm/io.h> | 15 | #include <asm/io.h> |
diff --git a/arch/ppc/boot/simple/misc-ev64360.c b/arch/ppc/boot/simple/misc-ev64360.c index a212b5b988cb..96eaebb78df5 100644 --- a/arch/ppc/boot/simple/misc-ev64360.c +++ b/arch/ppc/boot/simple/misc-ev64360.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 19 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/types.h> | 22 | #include <linux/types.h> |
24 | #include <asm/io.h> | 23 | #include <asm/io.h> |
25 | #include <asm/mv64x60_defs.h> | 24 | #include <asm/mv64x60_defs.h> |
diff --git a/arch/ppc/boot/simple/misc-katana.c b/arch/ppc/boot/simple/misc-katana.c index d97f2ee6f04e..79a1bbcbc6c5 100644 --- a/arch/ppc/boot/simple/misc-katana.c +++ b/arch/ppc/boot/simple/misc-katana.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
15 | #include <asm/mv64x60_defs.h> | 14 | #include <asm/mv64x60_defs.h> |
diff --git a/arch/ppc/boot/simple/misc-mv64x60.c b/arch/ppc/boot/simple/misc-mv64x60.c index 71ff20fd494a..28b3108083ed 100644 --- a/arch/ppc/boot/simple/misc-mv64x60.c +++ b/arch/ppc/boot/simple/misc-mv64x60.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
15 | #include <asm/mv64x60_defs.h> | 14 | #include <asm/mv64x60_defs.h> |
diff --git a/arch/ppc/boot/simple/misc-prep.c b/arch/ppc/boot/simple/misc-prep.c index 63def9d13d70..0086e1cfb48c 100644 --- a/arch/ppc/boot/simple/misc-prep.c +++ b/arch/ppc/boot/simple/misc-prep.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * In the past: Gary Thomas, Cort Dougan <cort@cs.nmt.edu> | 4 | * In the past: Gary Thomas, Cort Dougan <cort@cs.nmt.edu> |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/pci_ids.h> | 7 | #include <linux/pci_ids.h> |
9 | #include <linux/types.h> | 8 | #include <linux/types.h> |
10 | #include <asm/residual.h> | 9 | #include <asm/residual.h> |
diff --git a/arch/ppc/boot/simple/misc-spruce.c b/arch/ppc/boot/simple/misc-spruce.c index 0cad2f557a1e..5b3a6c6f113b 100644 --- a/arch/ppc/boot/simple/misc-spruce.c +++ b/arch/ppc/boot/simple/misc-spruce.c | |||
@@ -13,7 +13,6 @@ | |||
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/types.h> | 15 | #include <linux/types.h> |
16 | #include <linux/config.h> | ||
17 | #include <linux/pci.h> | 16 | #include <linux/pci.h> |
18 | 17 | ||
19 | #include <asm/bootinfo.h> | 18 | #include <asm/bootinfo.h> |
diff --git a/arch/ppc/boot/simple/misc.c b/arch/ppc/boot/simple/misc.c index 3d78571ad945..a5df08963695 100644 --- a/arch/ppc/boot/simple/misc.c +++ b/arch/ppc/boot/simple/misc.c | |||
@@ -15,7 +15,6 @@ | |||
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/types.h> | 17 | #include <linux/types.h> |
18 | #include <linux/config.h> | ||
19 | #include <linux/string.h> | 18 | #include <linux/string.h> |
20 | 19 | ||
21 | #include <asm/page.h> | 20 | #include <asm/page.h> |
diff --git a/arch/ppc/boot/simple/mpc52xx_tty.c b/arch/ppc/boot/simple/mpc52xx_tty.c index 1964493cf3bd..7b5924cc3c02 100644 --- a/arch/ppc/boot/simple/mpc52xx_tty.c +++ b/arch/ppc/boot/simple/mpc52xx_tty.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * "as is" without any warranty of any kind, whether express or implied. | 9 | * "as is" without any warranty of any kind, whether express or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <asm/uaccess.h> | 13 | #include <asm/uaccess.h> |
15 | #include <asm/mpc52xx.h> | 14 | #include <asm/mpc52xx.h> |
diff --git a/arch/ppc/boot/simple/mv64x60_tty.c b/arch/ppc/boot/simple/mv64x60_tty.c index 0c52f5c784a2..781e040a97d1 100644 --- a/arch/ppc/boot/simple/mv64x60_tty.c +++ b/arch/ppc/boot/simple/mv64x60_tty.c | |||
@@ -12,7 +12,6 @@ | |||
12 | 12 | ||
13 | /* This code assumes that the data cache has been disabled (L1, L2, L3). */ | 13 | /* This code assumes that the data cache has been disabled (L1, L2, L3). */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/serial_reg.h> | 16 | #include <linux/serial_reg.h> |
18 | #include <asm/serial.h> | 17 | #include <asm/serial.h> |
diff --git a/arch/ppc/boot/simple/openbios.c b/arch/ppc/boot/simple/openbios.c index 3f2ed53f793a..6ff2701598f2 100644 --- a/arch/ppc/boot/simple/openbios.c +++ b/arch/ppc/boot/simple/openbios.c | |||
@@ -12,7 +12,6 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/types.h> | 14 | #include <linux/types.h> |
15 | #include <linux/config.h> | ||
16 | #include <linux/string.h> | 15 | #include <linux/string.h> |
17 | #include <asm/ppcboot.h> | 16 | #include <asm/ppcboot.h> |
18 | #include <asm/ibm4xx.h> | 17 | #include <asm/ibm4xx.h> |
diff --git a/arch/ppc/boot/simple/pibs.c b/arch/ppc/boot/simple/pibs.c index 67222d57c345..f39d01e0619d 100644 --- a/arch/ppc/boot/simple/pibs.c +++ b/arch/ppc/boot/simple/pibs.c | |||
@@ -6,7 +6,6 @@ | |||
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/types.h> | 8 | #include <linux/types.h> |
9 | #include <linux/config.h> | ||
10 | #include <linux/string.h> | 9 | #include <linux/string.h> |
11 | #include <linux/ctype.h> | 10 | #include <linux/ctype.h> |
12 | #include <asm/ppcboot.h> | 11 | #include <asm/ppcboot.h> |
diff --git a/arch/ppc/boot/simple/relocate.S b/arch/ppc/boot/simple/relocate.S index 2533113c1cc5..0c021556d78e 100644 --- a/arch/ppc/boot/simple/relocate.S +++ b/arch/ppc/boot/simple/relocate.S | |||
@@ -13,7 +13,6 @@ | |||
13 | * or implied. | 13 | * or implied. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <asm/cache.h> | 16 | #include <asm/cache.h> |
18 | #include <asm/ppc_asm.h> | 17 | #include <asm/ppc_asm.h> |
19 | 18 | ||
diff --git a/arch/ppc/kernel/asm-offsets.c b/arch/ppc/kernel/asm-offsets.c index 2f5c5e157617..1f91eca2f3d7 100644 --- a/arch/ppc/kernel/asm-offsets.c +++ b/arch/ppc/kernel/asm-offsets.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * #defines from the assembly-language output. | 8 | * #defines from the assembly-language output. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/signal.h> | 11 | #include <linux/signal.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
diff --git a/arch/ppc/kernel/cpu_setup_power4.S b/arch/ppc/kernel/cpu_setup_power4.S index d7bfd60e21fc..6a674e834eeb 100644 --- a/arch/ppc/kernel/cpu_setup_power4.S +++ b/arch/ppc/kernel/cpu_setup_power4.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/processor.h> | 12 | #include <asm/processor.h> |
14 | #include <asm/page.h> | 13 | #include <asm/page.h> |
15 | #include <asm/ppc_asm.h> | 14 | #include <asm/ppc_asm.h> |
diff --git a/arch/ppc/kernel/dma-mapping.c b/arch/ppc/kernel/dma-mapping.c index 61465ec88bc7..10fec7363962 100644 --- a/arch/ppc/kernel/dma-mapping.c +++ b/arch/ppc/kernel/dma-mapping.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * published by the Free Software Foundation. | 22 | * published by the Free Software Foundation. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/signal.h> | 26 | #include <linux/signal.h> |
28 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
diff --git a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S index 1adc9145516f..a9d455369dc6 100644 --- a/arch/ppc/kernel/entry.S +++ b/arch/ppc/kernel/entry.S | |||
@@ -19,7 +19,6 @@ | |||
19 | * | 19 | * |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/errno.h> | 22 | #include <linux/errno.h> |
24 | #include <linux/sys.h> | 23 | #include <linux/sys.h> |
25 | #include <linux/threads.h> | 24 | #include <linux/threads.h> |
diff --git a/arch/ppc/kernel/head.S b/arch/ppc/kernel/head.S index 01303efeddad..100052aaea9a 100644 --- a/arch/ppc/kernel/head.S +++ b/arch/ppc/kernel/head.S | |||
@@ -22,7 +22,6 @@ | |||
22 | * | 22 | * |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <asm/processor.h> | 25 | #include <asm/processor.h> |
27 | #include <asm/page.h> | 26 | #include <asm/page.h> |
28 | #include <asm/mmu.h> | 27 | #include <asm/mmu.h> |
diff --git a/arch/ppc/kernel/head_44x.S b/arch/ppc/kernel/head_44x.S index 0d8b88219d38..7e44de5a26db 100644 --- a/arch/ppc/kernel/head_44x.S +++ b/arch/ppc/kernel/head_44x.S | |||
@@ -28,7 +28,6 @@ | |||
28 | * option) any later version. | 28 | * option) any later version. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #include <linux/config.h> | ||
32 | #include <asm/processor.h> | 31 | #include <asm/processor.h> |
33 | #include <asm/page.h> | 32 | #include <asm/page.h> |
34 | #include <asm/mmu.h> | 33 | #include <asm/mmu.h> |
diff --git a/arch/ppc/kernel/head_4xx.S b/arch/ppc/kernel/head_4xx.S index 10c261c67021..51da157a629e 100644 --- a/arch/ppc/kernel/head_4xx.S +++ b/arch/ppc/kernel/head_4xx.S | |||
@@ -31,7 +31,6 @@ | |||
31 | * | 31 | * |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <linux/config.h> | ||
35 | #include <asm/processor.h> | 34 | #include <asm/processor.h> |
36 | #include <asm/page.h> | 35 | #include <asm/page.h> |
37 | #include <asm/mmu.h> | 36 | #include <asm/mmu.h> |
diff --git a/arch/ppc/kernel/head_8xx.S b/arch/ppc/kernel/head_8xx.S index 7a2f20583be4..944c35c24278 100644 --- a/arch/ppc/kernel/head_8xx.S +++ b/arch/ppc/kernel/head_8xx.S | |||
@@ -19,7 +19,6 @@ | |||
19 | * | 19 | * |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <asm/processor.h> | 22 | #include <asm/processor.h> |
24 | #include <asm/page.h> | 23 | #include <asm/page.h> |
25 | #include <asm/mmu.h> | 24 | #include <asm/mmu.h> |
diff --git a/arch/ppc/kernel/head_fsl_booke.S b/arch/ppc/kernel/head_fsl_booke.S index dd86bbed7627..66877bdfe0b7 100644 --- a/arch/ppc/kernel/head_fsl_booke.S +++ b/arch/ppc/kernel/head_fsl_booke.S | |||
@@ -30,7 +30,6 @@ | |||
30 | * option) any later version. | 30 | * option) any later version. |
31 | */ | 31 | */ |
32 | 32 | ||
33 | #include <linux/config.h> | ||
34 | #include <linux/threads.h> | 33 | #include <linux/threads.h> |
35 | #include <asm/processor.h> | 34 | #include <asm/processor.h> |
36 | #include <asm/page.h> | 35 | #include <asm/page.h> |
diff --git a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S index 5a936566fd61..2fa0075f2b5f 100644 --- a/arch/ppc/kernel/misc.S +++ b/arch/ppc/kernel/misc.S | |||
@@ -12,7 +12,6 @@ | |||
12 | * | 12 | * |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/sys.h> | 15 | #include <linux/sys.h> |
17 | #include <asm/unistd.h> | 16 | #include <asm/unistd.h> |
18 | #include <asm/errno.h> | 17 | #include <asm/errno.h> |
diff --git a/arch/ppc/kernel/pci.c b/arch/ppc/kernel/pci.c index d20accf9650d..63808e01cb0b 100644 --- a/arch/ppc/kernel/pci.c +++ b/arch/ppc/kernel/pci.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Common prep/chrp pci routines. -- Cort | 2 | * Common prep/chrp pci routines. -- Cort |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
7 | #include <linux/pci.h> | 6 | #include <linux/pci.h> |
8 | #include <linux/delay.h> | 7 | #include <linux/delay.h> |
@@ -95,8 +94,10 @@ pcibios_fixup_resources(struct pci_dev *dev) | |||
95 | if (!res->flags) | 94 | if (!res->flags) |
96 | continue; | 95 | continue; |
97 | if (res->end == 0xffffffff) { | 96 | if (res->end == 0xffffffff) { |
98 | DBG("PCI:%s Resource %d [%08lx-%08lx] is unassigned\n", | 97 | DBG("PCI:%s Resource %d [%016llx-%016llx] is unassigned\n", |
99 | pci_name(dev), i, res->start, res->end); | 98 | pci_name(dev), i, |
99 | (unsigned long long)res->start, | ||
100 | (unsigned long long)res->end); | ||
100 | res->end -= res->start; | 101 | res->end -= res->start; |
101 | res->start = 0; | 102 | res->start = 0; |
102 | res->flags |= IORESOURCE_UNSET; | 103 | res->flags |= IORESOURCE_UNSET; |
@@ -169,18 +170,18 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); | |||
169 | * but we want to try to avoid allocating at 0x2900-0x2bff | 170 | * but we want to try to avoid allocating at 0x2900-0x2bff |
170 | * which might have be mirrored at 0x0100-0x03ff.. | 171 | * which might have be mirrored at 0x0100-0x03ff.. |
171 | */ | 172 | */ |
172 | void pcibios_align_resource(void *data, struct resource *res, unsigned long size, | 173 | void pcibios_align_resource(void *data, struct resource *res, |
173 | unsigned long align) | 174 | resource_size_t size, resource_size_t align) |
174 | { | 175 | { |
175 | struct pci_dev *dev = data; | 176 | struct pci_dev *dev = data; |
176 | 177 | ||
177 | if (res->flags & IORESOURCE_IO) { | 178 | if (res->flags & IORESOURCE_IO) { |
178 | unsigned long start = res->start; | 179 | resource_size_t start = res->start; |
179 | 180 | ||
180 | if (size > 0x100) { | 181 | if (size > 0x100) { |
181 | printk(KERN_ERR "PCI: I/O Region %s/%d too large" | 182 | printk(KERN_ERR "PCI: I/O Region %s/%d too large" |
182 | " (%ld bytes)\n", pci_name(dev), | 183 | " (%lld bytes)\n", pci_name(dev), |
183 | dev->resource - res, size); | 184 | dev->resource - res, (unsigned long long)size); |
184 | } | 185 | } |
185 | 186 | ||
186 | if (start & 0x300) { | 187 | if (start & 0x300) { |
@@ -251,8 +252,9 @@ pcibios_allocate_bus_resources(struct list_head *bus_list) | |||
251 | } | 252 | } |
252 | } | 253 | } |
253 | 254 | ||
254 | DBG("PCI: bridge rsrc %lx..%lx (%lx), parent %p\n", | 255 | DBG("PCI: bridge rsrc %llx..%llx (%lx), parent %p\n", |
255 | res->start, res->end, res->flags, pr); | 256 | (unsigned long long)res->start, |
257 | (unsigned long long)res->end, res->flags, pr); | ||
256 | if (pr) { | 258 | if (pr) { |
257 | if (request_resource(pr, res) == 0) | 259 | if (request_resource(pr, res) == 0) |
258 | continue; | 260 | continue; |
@@ -302,8 +304,9 @@ reparent_resources(struct resource *parent, struct resource *res) | |||
302 | *pp = NULL; | 304 | *pp = NULL; |
303 | for (p = res->child; p != NULL; p = p->sibling) { | 305 | for (p = res->child; p != NULL; p = p->sibling) { |
304 | p->parent = res; | 306 | p->parent = res; |
305 | DBG(KERN_INFO "PCI: reparented %s [%lx..%lx] under %s\n", | 307 | DBG(KERN_INFO "PCI: reparented %s [%llx..%llx] under %s\n", |
306 | p->name, p->start, p->end, res->name); | 308 | p->name, (unsigned long long)p->start, |
309 | (unsigned long long)p->end, res->name); | ||
307 | } | 310 | } |
308 | return 0; | 311 | return 0; |
309 | } | 312 | } |
@@ -358,13 +361,15 @@ pci_relocate_bridge_resource(struct pci_bus *bus, int i) | |||
358 | try = conflict->start - 1; | 361 | try = conflict->start - 1; |
359 | } | 362 | } |
360 | if (request_resource(pr, res)) { | 363 | if (request_resource(pr, res)) { |
361 | DBG(KERN_ERR "PCI: huh? couldn't move to %lx..%lx\n", | 364 | DBG(KERN_ERR "PCI: huh? couldn't move to %llx..%llx\n", |
362 | res->start, res->end); | 365 | (unsigned long long)res->start, |
366 | (unsigned long long)res->end); | ||
363 | return -1; /* "can't happen" */ | 367 | return -1; /* "can't happen" */ |
364 | } | 368 | } |
365 | update_bridge_base(bus, i); | 369 | update_bridge_base(bus, i); |
366 | printk(KERN_INFO "PCI: bridge %d resource %d moved to %lx..%lx\n", | 370 | printk(KERN_INFO "PCI: bridge %d resource %d moved to %llx..%llx\n", |
367 | bus->number, i, res->start, res->end); | 371 | bus->number, i, (unsigned long long)res->start, |
372 | (unsigned long long)res->end); | ||
368 | return 0; | 373 | return 0; |
369 | } | 374 | } |
370 | 375 | ||
@@ -475,15 +480,17 @@ static inline void alloc_resource(struct pci_dev *dev, int idx) | |||
475 | { | 480 | { |
476 | struct resource *pr, *r = &dev->resource[idx]; | 481 | struct resource *pr, *r = &dev->resource[idx]; |
477 | 482 | ||
478 | DBG("PCI:%s: Resource %d: %08lx-%08lx (f=%lx)\n", | 483 | DBG("PCI:%s: Resource %d: %016llx-%016llx (f=%lx)\n", |
479 | pci_name(dev), idx, r->start, r->end, r->flags); | 484 | pci_name(dev), idx, (unsigned long long)r->start, |
485 | (unsigned long long)r->end, r->flags); | ||
480 | pr = pci_find_parent_resource(dev, r); | 486 | pr = pci_find_parent_resource(dev, r); |
481 | if (!pr || request_resource(pr, r) < 0) { | 487 | if (!pr || request_resource(pr, r) < 0) { |
482 | printk(KERN_ERR "PCI: Cannot allocate resource region %d" | 488 | printk(KERN_ERR "PCI: Cannot allocate resource region %d" |
483 | " of device %s\n", idx, pci_name(dev)); | 489 | " of device %s\n", idx, pci_name(dev)); |
484 | if (pr) | 490 | if (pr) |
485 | DBG("PCI: parent is %p: %08lx-%08lx (f=%lx)\n", | 491 | DBG("PCI: parent is %p: %016llx-%016llx (f=%lx)\n", |
486 | pr, pr->start, pr->end, pr->flags); | 492 | pr, (unsigned long long)pr->start, |
493 | (unsigned long long)pr->end, pr->flags); | ||
487 | /* We'll assign a new address later */ | 494 | /* We'll assign a new address later */ |
488 | r->flags |= IORESOURCE_UNSET; | 495 | r->flags |= IORESOURCE_UNSET; |
489 | r->end -= r->start; | 496 | r->end -= r->start; |
@@ -952,8 +959,8 @@ static pgprot_t __pci_mmap_set_pgprot(struct pci_dev *dev, struct resource *rp, | |||
952 | else | 959 | else |
953 | prot |= _PAGE_GUARDED; | 960 | prot |= _PAGE_GUARDED; |
954 | 961 | ||
955 | printk("PCI map for %s:%lx, prot: %lx\n", pci_name(dev), rp->start, | 962 | printk("PCI map for %s:%llx, prot: %lx\n", pci_name(dev), |
956 | prot); | 963 | (unsigned long long)rp->start, prot); |
957 | 964 | ||
958 | return __pgprot(prot); | 965 | return __pgprot(prot); |
959 | } | 966 | } |
@@ -1122,7 +1129,7 @@ long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn) | |||
1122 | 1129 | ||
1123 | void pci_resource_to_user(const struct pci_dev *dev, int bar, | 1130 | void pci_resource_to_user(const struct pci_dev *dev, int bar, |
1124 | const struct resource *rsrc, | 1131 | const struct resource *rsrc, |
1125 | u64 *start, u64 *end) | 1132 | resource_size_t *start, resource_size_t *end) |
1126 | { | 1133 | { |
1127 | struct pci_controller *hose = pci_bus_to_hose(dev->bus->number); | 1134 | struct pci_controller *hose = pci_bus_to_hose(dev->bus->number); |
1128 | unsigned long offset = 0; | 1135 | unsigned long offset = 0; |
diff --git a/arch/ppc/kernel/ppc-stub.c b/arch/ppc/kernel/ppc-stub.c index d61889c24046..5f9ee7bb67ec 100644 --- a/arch/ppc/kernel/ppc-stub.c +++ b/arch/ppc/kernel/ppc-stub.c | |||
@@ -99,7 +99,6 @@ | |||
99 | * | 99 | * |
100 | ****************************************************************************/ | 100 | ****************************************************************************/ |
101 | 101 | ||
102 | #include <linux/config.h> | ||
103 | #include <linux/kernel.h> | 102 | #include <linux/kernel.h> |
104 | #include <linux/string.h> | 103 | #include <linux/string.h> |
105 | #include <linux/mm.h> | 104 | #include <linux/mm.h> |
diff --git a/arch/ppc/kernel/ppc_htab.c b/arch/ppc/kernel/ppc_htab.c index 75c645043746..bd129d3c2cc1 100644 --- a/arch/ppc/kernel/ppc_htab.c +++ b/arch/ppc/kernel/ppc_htab.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/proc_fs.h> | 15 | #include <linux/proc_fs.h> |
diff --git a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c index b250b1b539b6..50c1b4739ca7 100644 --- a/arch/ppc/kernel/ppc_ksyms.c +++ b/arch/ppc/kernel/ppc_ksyms.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/threads.h> | 2 | #include <linux/threads.h> |
4 | #include <linux/smp.h> | 3 | #include <linux/smp.h> |
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c index 4b4607d89bfa..faf2940300b0 100644 --- a/arch/ppc/kernel/setup.c +++ b/arch/ppc/kernel/setup.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * Common prep boot and setup code. | 2 | * Common prep boot and setup code. |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | 5 | #include <linux/module.h> |
7 | #include <linux/string.h> | 6 | #include <linux/string.h> |
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
diff --git a/arch/ppc/kernel/smp-tbsync.c b/arch/ppc/kernel/smp-tbsync.c index 6a5694fcc711..1576758debaf 100644 --- a/arch/ppc/kernel/smp-tbsync.c +++ b/arch/ppc/kernel/smp-tbsync.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
11 | #include <linux/smp.h> | 10 | #include <linux/smp.h> |
diff --git a/arch/ppc/kernel/smp.c b/arch/ppc/kernel/smp.c index f77795a64dae..ca57e896a36c 100644 --- a/arch/ppc/kernel/smp.c +++ b/arch/ppc/kernel/smp.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
diff --git a/arch/ppc/kernel/time.c b/arch/ppc/kernel/time.c index 53ea723af60a..6ab8cc7226ab 100644 --- a/arch/ppc/kernel/time.c +++ b/arch/ppc/kernel/time.c | |||
@@ -42,7 +42,6 @@ | |||
42 | * "A Kernel Model for Precision Timekeeping" by Dave Mills | 42 | * "A Kernel Model for Precision Timekeeping" by Dave Mills |
43 | */ | 43 | */ |
44 | 44 | ||
45 | #include <linux/config.h> | ||
46 | #include <linux/errno.h> | 45 | #include <linux/errno.h> |
47 | #include <linux/sched.h> | 46 | #include <linux/sched.h> |
48 | #include <linux/kernel.h> | 47 | #include <linux/kernel.h> |
diff --git a/arch/ppc/kernel/traps.c b/arch/ppc/kernel/traps.c index 1c0d68026abd..d7a433049b48 100644 --- a/arch/ppc/kernel/traps.c +++ b/arch/ppc/kernel/traps.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/user.h> | 25 | #include <linux/user.h> |
26 | #include <linux/a.out.h> | 26 | #include <linux/a.out.h> |
27 | #include <linux/interrupt.h> | 27 | #include <linux/interrupt.h> |
28 | #include <linux/config.h> | ||
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
30 | #include <linux/module.h> | 29 | #include <linux/module.h> |
31 | #include <linux/prctl.h> | 30 | #include <linux/prctl.h> |
diff --git a/arch/ppc/lib/locks.c b/arch/ppc/lib/locks.c index c450dc4b766e..ea4aee6b20e6 100644 --- a/arch/ppc/lib/locks.c +++ b/arch/ppc/lib/locks.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Written by Cort Dougan (cort@cs.nmt.edu) | 4 | * Written by Cort Dougan (cort@cs.nmt.edu) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
9 | #include <linux/spinlock.h> | 8 | #include <linux/spinlock.h> |
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
diff --git a/arch/ppc/lib/string.S b/arch/ppc/lib/string.S index 2e258c49e8be..84ed33ab4c2d 100644 --- a/arch/ppc/lib/string.S +++ b/arch/ppc/lib/string.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * as published by the Free Software Foundation; either version | 8 | * as published by the Free Software Foundation; either version |
9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <asm/processor.h> | 11 | #include <asm/processor.h> |
13 | #include <asm/cache.h> | 12 | #include <asm/cache.h> |
14 | #include <asm/errno.h> | 13 | #include <asm/errno.h> |
diff --git a/arch/ppc/mm/44x_mmu.c b/arch/ppc/mm/44x_mmu.c index e0152a9b26e6..0a0a0487b334 100644 --- a/arch/ppc/mm/44x_mmu.c +++ b/arch/ppc/mm/44x_mmu.c | |||
@@ -24,7 +24,6 @@ | |||
24 | * | 24 | * |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/signal.h> | 27 | #include <linux/signal.h> |
29 | #include <linux/sched.h> | 28 | #include <linux/sched.h> |
30 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
diff --git a/arch/ppc/mm/4xx_mmu.c b/arch/ppc/mm/4xx_mmu.c index 4d006aa1a0d1..838e09db71d9 100644 --- a/arch/ppc/mm/4xx_mmu.c +++ b/arch/ppc/mm/4xx_mmu.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * | 21 | * |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/signal.h> | 24 | #include <linux/signal.h> |
26 | #include <linux/sched.h> | 25 | #include <linux/sched.h> |
27 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
diff --git a/arch/ppc/mm/fault.c b/arch/ppc/mm/fault.c index 8e08ca32531a..5cdfb71fcb07 100644 --- a/arch/ppc/mm/fault.c +++ b/arch/ppc/mm/fault.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * 2 of the License, or (at your option) any later version. | 13 | * 2 of the License, or (at your option) any later version. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/signal.h> | 16 | #include <linux/signal.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
diff --git a/arch/ppc/mm/fsl_booke_mmu.c b/arch/ppc/mm/fsl_booke_mmu.c index 5d581bb3aa12..123da03ab118 100644 --- a/arch/ppc/mm/fsl_booke_mmu.c +++ b/arch/ppc/mm/fsl_booke_mmu.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <linux/config.h> | ||
30 | #include <linux/signal.h> | 29 | #include <linux/signal.h> |
31 | #include <linux/sched.h> | 30 | #include <linux/sched.h> |
32 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
diff --git a/arch/ppc/mm/hashtable.S b/arch/ppc/mm/hashtable.S index 31d0a924317c..e756942e65c4 100644 --- a/arch/ppc/mm/hashtable.S +++ b/arch/ppc/mm/hashtable.S | |||
@@ -21,7 +21,6 @@ | |||
21 | * | 21 | * |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <asm/processor.h> | 24 | #include <asm/processor.h> |
26 | #include <asm/page.h> | 25 | #include <asm/page.h> |
27 | #include <asm/pgtable.h> | 26 | #include <asm/pgtable.h> |
diff --git a/arch/ppc/mm/init.c b/arch/ppc/mm/init.c index c9bd184a295a..523392d460fa 100644 --- a/arch/ppc/mm/init.c +++ b/arch/ppc/mm/init.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * | 18 | * |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/module.h> | 21 | #include <linux/module.h> |
23 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
diff --git a/arch/ppc/mm/mem_pieces.c b/arch/ppc/mm/mem_pieces.c index 3d639052017e..6030a0ddfbb4 100644 --- a/arch/ppc/mm/mem_pieces.c +++ b/arch/ppc/mm/mem_pieces.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * | 14 | * |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/stddef.h> | 18 | #include <linux/stddef.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
diff --git a/arch/ppc/mm/mmu_context.c b/arch/ppc/mm/mmu_context.c index 8784f3715032..85afa7f8aa78 100644 --- a/arch/ppc/mm/mmu_context.c +++ b/arch/ppc/mm/mmu_context.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
28 | #include <linux/init.h> | 27 | #include <linux/init.h> |
29 | 28 | ||
diff --git a/arch/ppc/mm/pgtable.c b/arch/ppc/mm/pgtable.c index 706bca8eb144..354a9408f024 100644 --- a/arch/ppc/mm/pgtable.c +++ b/arch/ppc/mm/pgtable.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * | 20 | * |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <linux/types.h> | 25 | #include <linux/types.h> |
diff --git a/arch/ppc/mm/ppc_mmu.c b/arch/ppc/mm/ppc_mmu.c index 25bb6f3347c1..973f1e6afa53 100644 --- a/arch/ppc/mm/ppc_mmu.c +++ b/arch/ppc/mm/ppc_mmu.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
28 | #include <linux/mm.h> | 27 | #include <linux/mm.h> |
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
diff --git a/arch/ppc/mm/tlb.c b/arch/ppc/mm/tlb.c index 606b023196a2..fa29740a28f5 100644 --- a/arch/ppc/mm/tlb.c +++ b/arch/ppc/mm/tlb.c | |||
@@ -23,7 +23,6 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
28 | #include <linux/mm.h> | 27 | #include <linux/mm.h> |
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/4xx/bamboo.c b/arch/ppc/platforms/4xx/bamboo.c index b940cfd646c2..349660b84a02 100644 --- a/arch/ppc/platforms/4xx/bamboo.c +++ b/arch/ppc/platforms/4xx/bamboo.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * option) any later version. | 10 | * option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/stddef.h> | 13 | #include <linux/stddef.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/4xx/bamboo.h b/arch/ppc/platforms/4xx/bamboo.h index 31c0dd6a26cb..dcd3d09a0a71 100644 --- a/arch/ppc/platforms/4xx/bamboo.h +++ b/arch/ppc/platforms/4xx/bamboo.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __ASM_BAMBOO_H__ | 15 | #ifndef __ASM_BAMBOO_H__ |
16 | #define __ASM_BAMBOO_H__ | 16 | #define __ASM_BAMBOO_H__ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <platforms/4xx/ibm440ep.h> | 18 | #include <platforms/4xx/ibm440ep.h> |
20 | 19 | ||
21 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ | 20 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ |
diff --git a/arch/ppc/platforms/4xx/bubinga.c b/arch/ppc/platforms/4xx/bubinga.c index ce48a4f08cbb..4009f4983ca6 100644 --- a/arch/ppc/platforms/4xx/bubinga.c +++ b/arch/ppc/platforms/4xx/bubinga.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * or implied. | 10 | * or implied. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/smp.h> | 14 | #include <linux/smp.h> |
16 | #include <linux/threads.h> | 15 | #include <linux/threads.h> |
diff --git a/arch/ppc/platforms/4xx/bubinga.h b/arch/ppc/platforms/4xx/bubinga.h index 606aa9fa5caa..5c408060eb35 100644 --- a/arch/ppc/platforms/4xx/bubinga.h +++ b/arch/ppc/platforms/4xx/bubinga.h | |||
@@ -19,7 +19,6 @@ | |||
19 | #ifndef __BUBINGA_H__ | 19 | #ifndef __BUBINGA_H__ |
20 | #define __BUBINGA_H__ | 20 | #define __BUBINGA_H__ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <platforms/4xx/ibm405ep.h> | 22 | #include <platforms/4xx/ibm405ep.h> |
24 | #include <asm/ppcboot.h> | 23 | #include <asm/ppcboot.h> |
25 | 24 | ||
diff --git a/arch/ppc/platforms/4xx/cpci405.c b/arch/ppc/platforms/4xx/cpci405.c index 970b69831e6f..367430998fc5 100644 --- a/arch/ppc/platforms/4xx/cpci405.c +++ b/arch/ppc/platforms/4xx/cpci405.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/pci.h> | 19 | #include <linux/pci.h> |
21 | #include <asm/system.h> | 20 | #include <asm/system.h> |
diff --git a/arch/ppc/platforms/4xx/ebony.c b/arch/ppc/platforms/4xx/ebony.c index b4ecb9c79854..f0f9cc8480ca 100644 --- a/arch/ppc/platforms/4xx/ebony.c +++ b/arch/ppc/platforms/4xx/ebony.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * option) any later version. | 13 | * option) any later version. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/stddef.h> | 16 | #include <linux/stddef.h> |
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/4xx/ebony.h b/arch/ppc/platforms/4xx/ebony.h index 27b2e77c7c83..f40e33d39d76 100644 --- a/arch/ppc/platforms/4xx/ebony.h +++ b/arch/ppc/platforms/4xx/ebony.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __ASM_EBONY_H__ | 15 | #ifndef __ASM_EBONY_H__ |
16 | #define __ASM_EBONY_H__ | 16 | #define __ASM_EBONY_H__ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <platforms/4xx/ibm440gp.h> | 18 | #include <platforms/4xx/ibm440gp.h> |
20 | 19 | ||
21 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ | 20 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ |
diff --git a/arch/ppc/platforms/4xx/ep405.c b/arch/ppc/platforms/4xx/ep405.c index 6efa91ff9c07..ae5c82081c95 100644 --- a/arch/ppc/platforms/4xx/ep405.c +++ b/arch/ppc/platforms/4xx/ep405.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * is licensed "as is" without any warranty of any kind, whether express | 9 | * is licensed "as is" without any warranty of any kind, whether express |
10 | * or implied. | 10 | * or implied. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/pci.h> | 13 | #include <linux/pci.h> |
15 | #include <asm/system.h> | 14 | #include <asm/system.h> |
diff --git a/arch/ppc/platforms/4xx/ibm405ep.c b/arch/ppc/platforms/4xx/ibm405ep.c index 55af769a6e70..fb3630a1608d 100644 --- a/arch/ppc/platforms/4xx/ibm405ep.c +++ b/arch/ppc/platforms/4xx/ibm405ep.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * or implied. | 10 | * or implied. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/smp.h> | 14 | #include <linux/smp.h> |
16 | #include <linux/threads.h> | 15 | #include <linux/threads.h> |
diff --git a/arch/ppc/platforms/4xx/ibm405ep.h b/arch/ppc/platforms/4xx/ibm405ep.h index fe46640de152..3ef20a547080 100644 --- a/arch/ppc/platforms/4xx/ibm405ep.h +++ b/arch/ppc/platforms/4xx/ibm405ep.h | |||
@@ -14,7 +14,6 @@ | |||
14 | #ifndef __ASM_IBM405EP_H__ | 14 | #ifndef __ASM_IBM405EP_H__ |
15 | #define __ASM_IBM405EP_H__ | 15 | #define __ASM_IBM405EP_H__ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | 17 | ||
19 | /* ibm405.h at bottom of this file */ | 18 | /* ibm405.h at bottom of this file */ |
20 | 19 | ||
diff --git a/arch/ppc/platforms/4xx/ibm405gp.c b/arch/ppc/platforms/4xx/ibm405gp.c index e5700469a682..2ac67a2f0ba6 100644 --- a/arch/ppc/platforms/4xx/ibm405gp.c +++ b/arch/ppc/platforms/4xx/ibm405gp.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/smp.h> | 17 | #include <linux/smp.h> |
19 | #include <linux/threads.h> | 18 | #include <linux/threads.h> |
diff --git a/arch/ppc/platforms/4xx/ibm405gp.h b/arch/ppc/platforms/4xx/ibm405gp.h index eaf0ef57028d..9f15e5518719 100644 --- a/arch/ppc/platforms/4xx/ibm405gp.h +++ b/arch/ppc/platforms/4xx/ibm405gp.h | |||
@@ -11,7 +11,6 @@ | |||
11 | #ifndef __ASM_IBM405GP_H__ | 11 | #ifndef __ASM_IBM405GP_H__ |
12 | #define __ASM_IBM405GP_H__ | 12 | #define __ASM_IBM405GP_H__ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | 14 | ||
16 | /* ibm405.h at bottom of this file */ | 15 | /* ibm405.h at bottom of this file */ |
17 | 16 | ||
diff --git a/arch/ppc/platforms/4xx/ibm405gpr.c b/arch/ppc/platforms/4xx/ibm405gpr.c index 49da61f6854a..9f4dacffdbb3 100644 --- a/arch/ppc/platforms/4xx/ibm405gpr.c +++ b/arch/ppc/platforms/4xx/ibm405gpr.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * or implied. | 7 | * or implied. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/smp.h> | 11 | #include <linux/smp.h> |
13 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
diff --git a/arch/ppc/platforms/4xx/ibm405gpr.h b/arch/ppc/platforms/4xx/ibm405gpr.h index e90c5dde01d3..9e01f1515de3 100644 --- a/arch/ppc/platforms/4xx/ibm405gpr.h +++ b/arch/ppc/platforms/4xx/ibm405gpr.h | |||
@@ -11,7 +11,6 @@ | |||
11 | #ifndef __ASM_IBM405GPR_H__ | 11 | #ifndef __ASM_IBM405GPR_H__ |
12 | #define __ASM_IBM405GPR_H__ | 12 | #define __ASM_IBM405GPR_H__ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | 14 | ||
16 | /* ibm405.h at bottom of this file */ | 15 | /* ibm405.h at bottom of this file */ |
17 | 16 | ||
diff --git a/arch/ppc/platforms/4xx/ibm440ep.h b/arch/ppc/platforms/4xx/ibm440ep.h index 61717e8a799e..d92572727d20 100644 --- a/arch/ppc/platforms/4xx/ibm440ep.h +++ b/arch/ppc/platforms/4xx/ibm440ep.h | |||
@@ -17,7 +17,6 @@ | |||
17 | #ifndef __PPC_PLATFORMS_IBM440EP_H | 17 | #ifndef __PPC_PLATFORMS_IBM440EP_H |
18 | #define __PPC_PLATFORMS_IBM440EP_H | 18 | #define __PPC_PLATFORMS_IBM440EP_H |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <asm/ibm44x.h> | 20 | #include <asm/ibm44x.h> |
22 | 21 | ||
23 | /* UART */ | 22 | /* UART */ |
diff --git a/arch/ppc/platforms/4xx/ibm440gp.h b/arch/ppc/platforms/4xx/ibm440gp.h index 7b2763b6024f..391c90e1f5ea 100644 --- a/arch/ppc/platforms/4xx/ibm440gp.h +++ b/arch/ppc/platforms/4xx/ibm440gp.h | |||
@@ -18,7 +18,6 @@ | |||
18 | #ifndef __PPC_PLATFORMS_IBM440GP_H | 18 | #ifndef __PPC_PLATFORMS_IBM440GP_H |
19 | #define __PPC_PLATFORMS_IBM440GP_H | 19 | #define __PPC_PLATFORMS_IBM440GP_H |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | 21 | ||
23 | /* UART */ | 22 | /* UART */ |
24 | #define PPC440GP_UART0_ADDR 0x0000000140000200ULL | 23 | #define PPC440GP_UART0_ADDR 0x0000000140000200ULL |
diff --git a/arch/ppc/platforms/4xx/ibm440gx.h b/arch/ppc/platforms/4xx/ibm440gx.h index 070a34efe1c7..599c4289b9c2 100644 --- a/arch/ppc/platforms/4xx/ibm440gx.h +++ b/arch/ppc/platforms/4xx/ibm440gx.h | |||
@@ -17,7 +17,6 @@ | |||
17 | #ifndef __PPC_PLATFORMS_IBM440GX_H | 17 | #ifndef __PPC_PLATFORMS_IBM440GX_H |
18 | #define __PPC_PLATFORMS_IBM440GX_H | 18 | #define __PPC_PLATFORMS_IBM440GX_H |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | 20 | ||
22 | #include <asm/ibm44x.h> | 21 | #include <asm/ibm44x.h> |
23 | 22 | ||
diff --git a/arch/ppc/platforms/4xx/ibm440sp.h b/arch/ppc/platforms/4xx/ibm440sp.h index 77e8bb22c527..2978682f1720 100644 --- a/arch/ppc/platforms/4xx/ibm440sp.h +++ b/arch/ppc/platforms/4xx/ibm440sp.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __PPC_PLATFORMS_IBM440SP_H | 15 | #ifndef __PPC_PLATFORMS_IBM440SP_H |
16 | #define __PPC_PLATFORMS_IBM440SP_H | 16 | #define __PPC_PLATFORMS_IBM440SP_H |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | 18 | ||
20 | #include <asm/ibm44x.h> | 19 | #include <asm/ibm44x.h> |
21 | 20 | ||
diff --git a/arch/ppc/platforms/4xx/ibmnp405h.c b/arch/ppc/platforms/4xx/ibmnp405h.c index f1dcb0ac15b7..1afc3642e5b1 100644 --- a/arch/ppc/platforms/4xx/ibmnp405h.c +++ b/arch/ppc/platforms/4xx/ibmnp405h.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * or implied. | 7 | * or implied. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <asm/ocp.h> | 11 | #include <asm/ocp.h> |
13 | #include <platforms/4xx/ibmnp405h.h> | 12 | #include <platforms/4xx/ibmnp405h.h> |
diff --git a/arch/ppc/platforms/4xx/ibmnp405h.h b/arch/ppc/platforms/4xx/ibmnp405h.h index 2c683f6aaa66..4aa8821b478b 100644 --- a/arch/ppc/platforms/4xx/ibmnp405h.h +++ b/arch/ppc/platforms/4xx/ibmnp405h.h | |||
@@ -11,7 +11,6 @@ | |||
11 | #ifndef __ASM_IBMNP405H_H__ | 11 | #ifndef __ASM_IBMNP405H_H__ |
12 | #define __ASM_IBMNP405H_H__ | 12 | #define __ASM_IBMNP405H_H__ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | 14 | ||
16 | /* ibm405.h at bottom of this file */ | 15 | /* ibm405.h at bottom of this file */ |
17 | 16 | ||
diff --git a/arch/ppc/platforms/4xx/ibmstb4.h b/arch/ppc/platforms/4xx/ibmstb4.h index 9de426597351..31a08abaa4a2 100644 --- a/arch/ppc/platforms/4xx/ibmstb4.h +++ b/arch/ppc/platforms/4xx/ibmstb4.h | |||
@@ -11,7 +11,6 @@ | |||
11 | #ifndef __ASM_IBMSTB4_H__ | 11 | #ifndef __ASM_IBMSTB4_H__ |
12 | #define __ASM_IBMSTB4_H__ | 12 | #define __ASM_IBMSTB4_H__ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | 14 | ||
16 | /* serial port defines */ | 15 | /* serial port defines */ |
17 | #define STB04xxx_IO_BASE ((uint)0xe0000000) | 16 | #define STB04xxx_IO_BASE ((uint)0xe0000000) |
diff --git a/arch/ppc/platforms/4xx/ibmstbx25.h b/arch/ppc/platforms/4xx/ibmstbx25.h index 6884a49d3482..31b63343e641 100644 --- a/arch/ppc/platforms/4xx/ibmstbx25.h +++ b/arch/ppc/platforms/4xx/ibmstbx25.h | |||
@@ -11,7 +11,6 @@ | |||
11 | #ifndef __ASM_IBMSTBX25_H__ | 11 | #ifndef __ASM_IBMSTBX25_H__ |
12 | #define __ASM_IBMSTBX25_H__ | 12 | #define __ASM_IBMSTBX25_H__ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | 14 | ||
16 | /* serial port defines */ | 15 | /* serial port defines */ |
17 | #define STBx25xx_IO_BASE ((uint)0xe0000000) | 16 | #define STBx25xx_IO_BASE ((uint)0xe0000000) |
diff --git a/arch/ppc/platforms/4xx/luan.c b/arch/ppc/platforms/4xx/luan.c index 5c37de28e135..61706ef37112 100644 --- a/arch/ppc/platforms/4xx/luan.c +++ b/arch/ppc/platforms/4xx/luan.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/4xx/luan.h b/arch/ppc/platforms/4xx/luan.h index e0db6a810feb..68dd46b0a5c4 100644 --- a/arch/ppc/platforms/4xx/luan.h +++ b/arch/ppc/platforms/4xx/luan.h | |||
@@ -16,7 +16,6 @@ | |||
16 | #ifndef __ASM_LUAN_H__ | 16 | #ifndef __ASM_LUAN_H__ |
17 | #define __ASM_LUAN_H__ | 17 | #define __ASM_LUAN_H__ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <platforms/4xx/ibm440sp.h> | 19 | #include <platforms/4xx/ibm440sp.h> |
21 | 20 | ||
22 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ | 21 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ |
diff --git a/arch/ppc/platforms/4xx/ocotea.c b/arch/ppc/platforms/4xx/ocotea.c index 554776d4b8ac..84e999d9a7bb 100644 --- a/arch/ppc/platforms/4xx/ocotea.c +++ b/arch/ppc/platforms/4xx/ocotea.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/4xx/ocotea.h b/arch/ppc/platforms/4xx/ocotea.h index 7c799a9ff82b..89730ce2322c 100644 --- a/arch/ppc/platforms/4xx/ocotea.h +++ b/arch/ppc/platforms/4xx/ocotea.h | |||
@@ -16,7 +16,6 @@ | |||
16 | #ifndef __ASM_OCOTEA_H__ | 16 | #ifndef __ASM_OCOTEA_H__ |
17 | #define __ASM_OCOTEA_H__ | 17 | #define __ASM_OCOTEA_H__ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <platforms/4xx/ibm440gx.h> | 19 | #include <platforms/4xx/ibm440gx.h> |
21 | 20 | ||
22 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ | 21 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ |
diff --git a/arch/ppc/platforms/4xx/ppc440spe.h b/arch/ppc/platforms/4xx/ppc440spe.h index d3a620ddcdee..f1e867c4c9fc 100644 --- a/arch/ppc/platforms/4xx/ppc440spe.h +++ b/arch/ppc/platforms/4xx/ppc440spe.h | |||
@@ -17,7 +17,6 @@ | |||
17 | #ifndef __PPC_PLATFORMS_PPC440SPE_H | 17 | #ifndef __PPC_PLATFORMS_PPC440SPE_H |
18 | #define __PPC_PLATFORMS_PPC440SPE_H | 18 | #define __PPC_PLATFORMS_PPC440SPE_H |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | 20 | ||
22 | #include <asm/ibm44x.h> | 21 | #include <asm/ibm44x.h> |
23 | 22 | ||
diff --git a/arch/ppc/platforms/4xx/redwood5.c b/arch/ppc/platforms/4xx/redwood5.c index 53da2b4f7c24..edf4d37d1a52 100644 --- a/arch/ppc/platforms/4xx/redwood5.c +++ b/arch/ppc/platforms/4xx/redwood5.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/pagemap.h> | 13 | #include <linux/pagemap.h> |
15 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
diff --git a/arch/ppc/platforms/4xx/redwood6.c b/arch/ppc/platforms/4xx/redwood6.c index 41b27d106fa3..006e29f83a1a 100644 --- a/arch/ppc/platforms/4xx/redwood6.c +++ b/arch/ppc/platforms/4xx/redwood6.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * or implied. | 7 | * or implied. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/pagemap.h> | 11 | #include <linux/pagemap.h> |
13 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
diff --git a/arch/ppc/platforms/4xx/sycamore.c b/arch/ppc/platforms/4xx/sycamore.c index bab31eb30687..c47493e344c2 100644 --- a/arch/ppc/platforms/4xx/sycamore.c +++ b/arch/ppc/platforms/4xx/sycamore.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * is licensed "as is" without any warranty of any kind, whether express | 9 | * is licensed "as is" without any warranty of any kind, whether express |
10 | * or implied. | 10 | * or implied. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/smp.h> | 13 | #include <linux/smp.h> |
15 | #include <linux/threads.h> | 14 | #include <linux/threads.h> |
diff --git a/arch/ppc/platforms/4xx/sycamore.h b/arch/ppc/platforms/4xx/sycamore.h index dae01620227d..69b169eac053 100644 --- a/arch/ppc/platforms/4xx/sycamore.h +++ b/arch/ppc/platforms/4xx/sycamore.h | |||
@@ -19,7 +19,6 @@ | |||
19 | #ifndef __ASM_SYCAMORE_H__ | 19 | #ifndef __ASM_SYCAMORE_H__ |
20 | #define __ASM_SYCAMORE_H__ | 20 | #define __ASM_SYCAMORE_H__ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <platforms/4xx/ibm405gpr.h> | 22 | #include <platforms/4xx/ibm405gpr.h> |
24 | #include <asm/ppcboot.h> | 23 | #include <asm/ppcboot.h> |
25 | 24 | ||
diff --git a/arch/ppc/platforms/4xx/walnut.c b/arch/ppc/platforms/4xx/walnut.c index 6bd77902b9a4..f414d2d4c58e 100644 --- a/arch/ppc/platforms/4xx/walnut.c +++ b/arch/ppc/platforms/4xx/walnut.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * is licensed "as is" without any warranty of any kind, whether express | 11 | * is licensed "as is" without any warranty of any kind, whether express |
12 | * or implied. | 12 | * or implied. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/smp.h> | 15 | #include <linux/smp.h> |
17 | #include <linux/threads.h> | 16 | #include <linux/threads.h> |
diff --git a/arch/ppc/platforms/4xx/walnut.h b/arch/ppc/platforms/4xx/walnut.h index f13a577f0a41..d9c4eb788940 100644 --- a/arch/ppc/platforms/4xx/walnut.h +++ b/arch/ppc/platforms/4xx/walnut.h | |||
@@ -21,7 +21,6 @@ | |||
21 | #ifndef __ASM_WALNUT_H__ | 21 | #ifndef __ASM_WALNUT_H__ |
22 | #define __ASM_WALNUT_H__ | 22 | #define __ASM_WALNUT_H__ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <platforms/4xx/ibm405gp.h> | 24 | #include <platforms/4xx/ibm405gp.h> |
26 | #include <asm/ppcboot.h> | 25 | #include <asm/ppcboot.h> |
27 | 26 | ||
diff --git a/arch/ppc/platforms/4xx/xilinx_ml300.c b/arch/ppc/platforms/4xx/xilinx_ml300.c index d97a7f269f97..fb5f0b5e13d1 100644 --- a/arch/ppc/platforms/4xx/xilinx_ml300.c +++ b/arch/ppc/platforms/4xx/xilinx_ml300.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * "as is" without any warranty of any kind, whether express or implied. | 9 | * "as is" without any warranty of any kind, whether express or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
15 | #include <linux/tty.h> | 14 | #include <linux/tty.h> |
diff --git a/arch/ppc/platforms/4xx/xilinx_ml403.c b/arch/ppc/platforms/4xx/xilinx_ml403.c index 4c0c7e4c1114..cb3bf7a2bcbe 100644 --- a/arch/ppc/platforms/4xx/xilinx_ml403.c +++ b/arch/ppc/platforms/4xx/xilinx_ml403.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * kind, whether express or implied. | 13 | * kind, whether express or implied. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/irq.h> | 17 | #include <linux/irq.h> |
19 | #include <linux/tty.h> | 18 | #include <linux/tty.h> |
diff --git a/arch/ppc/platforms/4xx/xparameters/xparameters.h b/arch/ppc/platforms/4xx/xparameters/xparameters.h index 4cf21f256356..cd7d0e7d9863 100644 --- a/arch/ppc/platforms/4xx/xparameters/xparameters.h +++ b/arch/ppc/platforms/4xx/xparameters/xparameters.h | |||
@@ -12,7 +12,6 @@ | |||
12 | * "as is" without any warranty of any kind, whether express or implied. | 12 | * "as is" without any warranty of any kind, whether express or implied. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | 15 | ||
17 | #if defined(CONFIG_XILINX_ML300) | 16 | #if defined(CONFIG_XILINX_ML300) |
18 | #include "xparameters_ml300.h" | 17 | #include "xparameters_ml300.h" |
diff --git a/arch/ppc/platforms/4xx/yucca.c b/arch/ppc/platforms/4xx/yucca.c index f287dcdbffce..346787df0ddb 100644 --- a/arch/ppc/platforms/4xx/yucca.c +++ b/arch/ppc/platforms/4xx/yucca.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * option) any later version. | 12 | * option) any later version. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/stddef.h> | 15 | #include <linux/stddef.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/4xx/yucca.h b/arch/ppc/platforms/4xx/yucca.h index 7ae23012237a..bc9684e66a84 100644 --- a/arch/ppc/platforms/4xx/yucca.h +++ b/arch/ppc/platforms/4xx/yucca.h | |||
@@ -17,7 +17,6 @@ | |||
17 | #ifndef __ASM_YUCCA_H__ | 17 | #ifndef __ASM_YUCCA_H__ |
18 | #define __ASM_YUCCA_H__ | 18 | #define __ASM_YUCCA_H__ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <platforms/4xx/ppc440spe.h> | 20 | #include <platforms/4xx/ppc440spe.h> |
22 | 21 | ||
23 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ | 22 | /* F/W TLB mapping used in bootloader glue to reset EMAC */ |
diff --git a/arch/ppc/platforms/83xx/mpc834x_sys.c b/arch/ppc/platforms/83xx/mpc834x_sys.c index 11626dd9090f..3397f0de1592 100644 --- a/arch/ppc/platforms/83xx/mpc834x_sys.c +++ b/arch/ppc/platforms/83xx/mpc834x_sys.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/83xx/mpc834x_sys.h b/arch/ppc/platforms/83xx/mpc834x_sys.h index 6727bbdc36ec..d2e06c95b083 100644 --- a/arch/ppc/platforms/83xx/mpc834x_sys.h +++ b/arch/ppc/platforms/83xx/mpc834x_sys.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __MACH_MPC83XX_SYS_H__ | 15 | #ifndef __MACH_MPC83XX_SYS_H__ |
16 | #define __MACH_MPC83XX_SYS_H__ | 16 | #define __MACH_MPC83XX_SYS_H__ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <syslib/ppc83xx_setup.h> | 19 | #include <syslib/ppc83xx_setup.h> |
21 | #include <asm/ppcboot.h> | 20 | #include <asm/ppcboot.h> |
diff --git a/arch/ppc/platforms/85xx/mpc8540_ads.c b/arch/ppc/platforms/85xx/mpc8540_ads.c index 9b014df516b9..4f839da6782f 100644 --- a/arch/ppc/platforms/85xx/mpc8540_ads.c +++ b/arch/ppc/platforms/85xx/mpc8540_ads.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/85xx/mpc8540_ads.h b/arch/ppc/platforms/85xx/mpc8540_ads.h index 0b5e7ff856f5..7559f9e6fc28 100644 --- a/arch/ppc/platforms/85xx/mpc8540_ads.h +++ b/arch/ppc/platforms/85xx/mpc8540_ads.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __MACH_MPC8540ADS_H__ | 15 | #ifndef __MACH_MPC8540ADS_H__ |
16 | #define __MACH_MPC8540ADS_H__ | 16 | #define __MACH_MPC8540ADS_H__ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/initrd.h> | 18 | #include <linux/initrd.h> |
20 | #include <syslib/ppc85xx_setup.h> | 19 | #include <syslib/ppc85xx_setup.h> |
21 | #include <platforms/85xx/mpc85xx_ads_common.h> | 20 | #include <platforms/85xx/mpc85xx_ads_common.h> |
diff --git a/arch/ppc/platforms/85xx/mpc8555_cds.h b/arch/ppc/platforms/85xx/mpc8555_cds.h index 9754dbd5d18c..4f79c372c4e7 100644 --- a/arch/ppc/platforms/85xx/mpc8555_cds.h +++ b/arch/ppc/platforms/85xx/mpc8555_cds.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __MACH_MPC8555CDS_H__ | 15 | #ifndef __MACH_MPC8555CDS_H__ |
16 | #define __MACH_MPC8555CDS_H__ | 16 | #define __MACH_MPC8555CDS_H__ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <syslib/ppc85xx_setup.h> | 18 | #include <syslib/ppc85xx_setup.h> |
20 | #include <platforms/85xx/mpc85xx_cds_common.h> | 19 | #include <platforms/85xx/mpc85xx_cds_common.h> |
21 | 20 | ||
diff --git a/arch/ppc/platforms/85xx/mpc8560_ads.c b/arch/ppc/platforms/85xx/mpc8560_ads.c index 0cb2e86470e2..d90cd24d018e 100644 --- a/arch/ppc/platforms/85xx/mpc8560_ads.c +++ b/arch/ppc/platforms/85xx/mpc8560_ads.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
@@ -132,7 +131,7 @@ static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) | |||
132 | 131 | ||
133 | static struct irqaction cpm2_irqaction = { | 132 | static struct irqaction cpm2_irqaction = { |
134 | .handler = cpm2_cascade, | 133 | .handler = cpm2_cascade, |
135 | .flags = SA_INTERRUPT, | 134 | .flags = IRQF_DISABLED, |
136 | .mask = CPU_MASK_NONE, | 135 | .mask = CPU_MASK_NONE, |
137 | .name = "cpm2_cascade", | 136 | .name = "cpm2_cascade", |
138 | }; | 137 | }; |
diff --git a/arch/ppc/platforms/85xx/mpc8560_ads.h b/arch/ppc/platforms/85xx/mpc8560_ads.h index c2247c21fc53..9f185ab2e019 100644 --- a/arch/ppc/platforms/85xx/mpc8560_ads.h +++ b/arch/ppc/platforms/85xx/mpc8560_ads.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __MACH_MPC8560ADS_H | 15 | #ifndef __MACH_MPC8560ADS_H |
16 | #define __MACH_MPC8560ADS_H | 16 | #define __MACH_MPC8560ADS_H |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <syslib/ppc85xx_setup.h> | 18 | #include <syslib/ppc85xx_setup.h> |
20 | #include <platforms/85xx/mpc85xx_ads_common.h> | 19 | #include <platforms/85xx/mpc85xx_ads_common.h> |
21 | 20 | ||
diff --git a/arch/ppc/platforms/85xx/mpc85xx_ads_common.c b/arch/ppc/platforms/85xx/mpc85xx_ads_common.c index 8fd9d763f58d..674806e001f6 100644 --- a/arch/ppc/platforms/85xx/mpc85xx_ads_common.c +++ b/arch/ppc/platforms/85xx/mpc85xx_ads_common.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/85xx/mpc85xx_ads_common.h b/arch/ppc/platforms/85xx/mpc85xx_ads_common.h index de8d41aafe11..abf32281655d 100644 --- a/arch/ppc/platforms/85xx/mpc85xx_ads_common.h +++ b/arch/ppc/platforms/85xx/mpc85xx_ads_common.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __MACH_MPC85XX_ADS_H__ | 15 | #ifndef __MACH_MPC85XX_ADS_H__ |
16 | #define __MACH_MPC85XX_ADS_H__ | 16 | #define __MACH_MPC85XX_ADS_H__ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <asm/ppcboot.h> | 19 | #include <asm/ppcboot.h> |
21 | 20 | ||
diff --git a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c index 4368dc3f3c30..75204588a3e7 100644 --- a/arch/ppc/platforms/85xx/mpc85xx_cds_common.c +++ b/arch/ppc/platforms/85xx/mpc85xx_cds_common.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
@@ -137,7 +136,7 @@ static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) | |||
137 | 136 | ||
138 | static struct irqaction cpm2_irqaction = { | 137 | static struct irqaction cpm2_irqaction = { |
139 | .handler = cpm2_cascade, | 138 | .handler = cpm2_cascade, |
140 | .flags = SA_INTERRUPT, | 139 | .flags = IRQF_DISABLED, |
141 | .mask = CPU_MASK_NONE, | 140 | .mask = CPU_MASK_NONE, |
142 | .name = "cpm2_cascade", | 141 | .name = "cpm2_cascade", |
143 | }; | 142 | }; |
diff --git a/arch/ppc/platforms/85xx/mpc85xx_cds_common.h b/arch/ppc/platforms/85xx/mpc85xx_cds_common.h index 62df54f61ae3..32c5455c8b82 100644 --- a/arch/ppc/platforms/85xx/mpc85xx_cds_common.h +++ b/arch/ppc/platforms/85xx/mpc85xx_cds_common.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __MACH_MPC85XX_CDS_H__ | 15 | #ifndef __MACH_MPC85XX_CDS_H__ |
16 | #define __MACH_MPC85XX_CDS_H__ | 16 | #define __MACH_MPC85XX_CDS_H__ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/serial.h> | 18 | #include <linux/serial.h> |
20 | #include <asm/ppcboot.h> | 19 | #include <asm/ppcboot.h> |
21 | #include <linux/initrd.h> | 20 | #include <linux/initrd.h> |
diff --git a/arch/ppc/platforms/85xx/sbc8560.c b/arch/ppc/platforms/85xx/sbc8560.c index b73778ecf827..764d580ff535 100644 --- a/arch/ppc/platforms/85xx/sbc8560.c +++ b/arch/ppc/platforms/85xx/sbc8560.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/85xx/sbc8560.h b/arch/ppc/platforms/85xx/sbc8560.h index 44ffaa2d2c87..c7d61cf3a449 100644 --- a/arch/ppc/platforms/85xx/sbc8560.h +++ b/arch/ppc/platforms/85xx/sbc8560.h | |||
@@ -13,7 +13,6 @@ | |||
13 | #ifndef __MACH_SBC8560_H__ | 13 | #ifndef __MACH_SBC8560_H__ |
14 | #define __MACH_SBC8560_H__ | 14 | #define __MACH_SBC8560_H__ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <platforms/85xx/sbc85xx.h> | 16 | #include <platforms/85xx/sbc85xx.h> |
18 | 17 | ||
19 | #define CPM_MAP_ADDR (CCSRBAR + MPC85xx_CPM_OFFSET) | 18 | #define CPM_MAP_ADDR (CCSRBAR + MPC85xx_CPM_OFFSET) |
diff --git a/arch/ppc/platforms/85xx/sbc85xx.c b/arch/ppc/platforms/85xx/sbc85xx.c index d3ff280510ff..2c587ca97bce 100644 --- a/arch/ppc/platforms/85xx/sbc85xx.c +++ b/arch/ppc/platforms/85xx/sbc85xx.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * option) any later version. | 10 | * option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/stddef.h> | 13 | #include <linux/stddef.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/85xx/sbc85xx.h b/arch/ppc/platforms/85xx/sbc85xx.h index 5dd8b6a98c9b..21ea7a55639b 100644 --- a/arch/ppc/platforms/85xx/sbc85xx.h +++ b/arch/ppc/platforms/85xx/sbc85xx.h | |||
@@ -14,7 +14,6 @@ | |||
14 | #ifndef __PLATFORMS_85XX_SBC85XX_H__ | 14 | #ifndef __PLATFORMS_85XX_SBC85XX_H__ |
15 | #define __PLATFORMS_85XX_SBC85XX_H__ | 15 | #define __PLATFORMS_85XX_SBC85XX_H__ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <linux/seq_file.h> | 18 | #include <linux/seq_file.h> |
20 | #include <asm/ppcboot.h> | 19 | #include <asm/ppcboot.h> |
diff --git a/arch/ppc/platforms/85xx/stx_gp3.c b/arch/ppc/platforms/85xx/stx_gp3.c index 8d7baa9a397a..495aa79bb3a1 100644 --- a/arch/ppc/platforms/85xx/stx_gp3.c +++ b/arch/ppc/platforms/85xx/stx_gp3.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * option) any later version. | 16 | * option) any later version. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/stddef.h> | 19 | #include <linux/stddef.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
@@ -167,7 +166,7 @@ static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) | |||
167 | 166 | ||
168 | static struct irqaction cpm2_irqaction = { | 167 | static struct irqaction cpm2_irqaction = { |
169 | .handler = cpm2_cascade, | 168 | .handler = cpm2_cascade, |
170 | .flags = SA_INTERRUPT, | 169 | .flags = IRQF_DISABLED, |
171 | .mask = CPU_MASK_NONE, | 170 | .mask = CPU_MASK_NONE, |
172 | .name = "cpm2_cascade", | 171 | .name = "cpm2_cascade", |
173 | }; | 172 | }; |
diff --git a/arch/ppc/platforms/85xx/stx_gp3.h b/arch/ppc/platforms/85xx/stx_gp3.h index 3f71f8f59370..c6e34c09e979 100644 --- a/arch/ppc/platforms/85xx/stx_gp3.h +++ b/arch/ppc/platforms/85xx/stx_gp3.h | |||
@@ -17,7 +17,6 @@ | |||
17 | #ifndef __MACH_STX_GP3_H | 17 | #ifndef __MACH_STX_GP3_H |
18 | #define __MACH_STX_GP3_H | 18 | #define __MACH_STX_GP3_H |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |
22 | #include <asm/ppcboot.h> | 21 | #include <asm/ppcboot.h> |
23 | 22 | ||
diff --git a/arch/ppc/platforms/85xx/tqm85xx.c b/arch/ppc/platforms/85xx/tqm85xx.c index 00af132262b3..189ed4175f9f 100644 --- a/arch/ppc/platforms/85xx/tqm85xx.c +++ b/arch/ppc/platforms/85xx/tqm85xx.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * option) any later version. | 14 | * option) any later version. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/stddef.h> | 17 | #include <linux/stddef.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
@@ -191,7 +190,7 @@ static irqreturn_t cpm2_cascade(int irq, void *dev_id, struct pt_regs *regs) | |||
191 | 190 | ||
192 | static struct irqaction cpm2_irqaction = { | 191 | static struct irqaction cpm2_irqaction = { |
193 | .handler = cpm2_cascade, | 192 | .handler = cpm2_cascade, |
194 | .flags = SA_INTERRUPT, | 193 | .flags = IRQF_DISABLED, |
195 | .mask = CPU_MASK_NONE, | 194 | .mask = CPU_MASK_NONE, |
196 | .name = "cpm2_cascade", | 195 | .name = "cpm2_cascade", |
197 | }; | 196 | }; |
diff --git a/arch/ppc/platforms/85xx/tqm85xx.h b/arch/ppc/platforms/85xx/tqm85xx.h index 612d80504f9b..57284e68f676 100644 --- a/arch/ppc/platforms/85xx/tqm85xx.h +++ b/arch/ppc/platforms/85xx/tqm85xx.h | |||
@@ -14,7 +14,6 @@ | |||
14 | #ifndef __MACH_TQM85XX_H | 14 | #ifndef __MACH_TQM85XX_H |
15 | #define __MACH_TQM85XX_H | 15 | #define __MACH_TQM85XX_H |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <asm/ppcboot.h> | 18 | #include <asm/ppcboot.h> |
20 | 19 | ||
diff --git a/arch/ppc/platforms/apus_pci.c b/arch/ppc/platforms/apus_pci.c index 33dad6db8243..dc165f0c8908 100644 --- a/arch/ppc/platforms/apus_pci.c +++ b/arch/ppc/platforms/apus_pci.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #ifdef CONFIG_AMIGA | 13 | #ifdef CONFIG_AMIGA |
15 | 14 | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
diff --git a/arch/ppc/platforms/apus_setup.c b/arch/ppc/platforms/apus_setup.c index fe0cdc04d436..1d034ead2c9a 100644 --- a/arch/ppc/platforms/apus_setup.c +++ b/arch/ppc/platforms/apus_setup.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Amiga specific stuff into mach/amiga. | 11 | * Amiga specific stuff into mach/amiga. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
@@ -734,9 +733,9 @@ void apus_init_IRQ(void) | |||
734 | for ( i = 0 ; i < AMI_IRQS; i++ ) { | 733 | for ( i = 0 ; i < AMI_IRQS; i++ ) { |
735 | irq_desc[i].status = IRQ_LEVEL; | 734 | irq_desc[i].status = IRQ_LEVEL; |
736 | if (i < IRQ_AMIGA_AUTO) { | 735 | if (i < IRQ_AMIGA_AUTO) { |
737 | irq_desc[i].handler = &amiga_irqctrl; | 736 | irq_desc[i].chip = &amiga_irqctrl; |
738 | } else { | 737 | } else { |
739 | irq_desc[i].handler = &amiga_sys_irqctrl; | 738 | irq_desc[i].chip = &amiga_sys_irqctrl; |
740 | action = &amiga_sys_irqaction[i-IRQ_AMIGA_AUTO]; | 739 | action = &amiga_sys_irqaction[i-IRQ_AMIGA_AUTO]; |
741 | if (action->name) | 740 | if (action->name) |
742 | setup_irq(i, action); | 741 | setup_irq(i, action); |
diff --git a/arch/ppc/platforms/ccm.h b/arch/ppc/platforms/ccm.h index edb87b573831..69000b1c7a4c 100644 --- a/arch/ppc/platforms/ccm.h +++ b/arch/ppc/platforms/ccm.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #ifndef __MACH_CCM_H | 7 | #ifndef __MACH_CCM_H |
8 | #define __MACH_CCM_H | 8 | #define __MACH_CCM_H |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/ppcboot.h> | 11 | #include <asm/ppcboot.h> |
13 | 12 | ||
diff --git a/arch/ppc/platforms/chestnut.c b/arch/ppc/platforms/chestnut.c index f324f757cae1..a764ae71cbcb 100644 --- a/arch/ppc/platforms/chestnut.c +++ b/arch/ppc/platforms/chestnut.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/cpci690.c b/arch/ppc/platforms/cpci690.c index 790475c22fd7..e78bccf96c9d 100644 --- a/arch/ppc/platforms/cpci690.c +++ b/arch/ppc/platforms/cpci690.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * is licensed "as is" without any warranty of any kind, whether express | 8 | * is licensed "as is" without any warranty of any kind, whether express |
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/delay.h> | 11 | #include <linux/delay.h> |
13 | #include <linux/pci.h> | 12 | #include <linux/pci.h> |
14 | #include <linux/ide.h> | 13 | #include <linux/ide.h> |
diff --git a/arch/ppc/platforms/ev64260.c b/arch/ppc/platforms/ev64260.c index 31e8e21e1d5c..4957a7bcde22 100644 --- a/arch/ppc/platforms/ev64260.c +++ b/arch/ppc/platforms/ev64260.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * Note: The 750CXe and 7450 are not stable with a 125MHz or 133MHz TCLK/SYSCLK. | 20 | * Note: The 750CXe and 7450 are not stable with a 125MHz or 133MHz TCLK/SYSCLK. |
21 | * At 100MHz, they are solid. | 21 | * At 100MHz, they are solid. |
22 | */ | 22 | */ |
23 | #include <linux/config.h> | ||
24 | 23 | ||
25 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
26 | #include <linux/pci.h> | 25 | #include <linux/pci.h> |
diff --git a/arch/ppc/platforms/ev64360.c b/arch/ppc/platforms/ev64360.c index 104ac9b16e8b..90ed375c9b90 100644 --- a/arch/ppc/platforms/ev64360.c +++ b/arch/ppc/platforms/ev64360.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Free Software Foundation; either version 2 of the License, or (at your | 11 | * Free Software Foundation; either version 2 of the License, or (at your |
12 | * option) any later version. | 12 | * option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/pci.h> | 15 | #include <linux/pci.h> |
17 | #include <linux/kdev_t.h> | 16 | #include <linux/kdev_t.h> |
diff --git a/arch/ppc/platforms/fads.h b/arch/ppc/platforms/fads.h index e1c0b1b6dcb3..2f9f0f60e3f7 100644 --- a/arch/ppc/platforms/fads.h +++ b/arch/ppc/platforms/fads.h | |||
@@ -19,7 +19,6 @@ | |||
19 | #ifndef __ASM_FADS_H__ | 19 | #ifndef __ASM_FADS_H__ |
20 | #define __ASM_FADS_H__ | 20 | #define __ASM_FADS_H__ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | 22 | ||
24 | #include <asm/ppcboot.h> | 23 | #include <asm/ppcboot.h> |
25 | 24 | ||
diff --git a/arch/ppc/platforms/gemini_prom.S b/arch/ppc/platforms/gemini_prom.S index b181f2108001..e8c84d24f01f 100644 --- a/arch/ppc/platforms/gemini_prom.S +++ b/arch/ppc/platforms/gemini_prom.S | |||
@@ -6,7 +6,6 @@ | |||
6 | * ---Dan | 6 | * ---Dan |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <asm/reg.h> | 9 | #include <asm/reg.h> |
11 | #include <asm/page.h> | 10 | #include <asm/page.h> |
12 | #include <platforms/gemini.h> | 11 | #include <platforms/gemini.h> |
diff --git a/arch/ppc/platforms/gemini_serial.h b/arch/ppc/platforms/gemini_serial.h index 69855aeec888..b915eff79fdb 100644 --- a/arch/ppc/platforms/gemini_serial.h +++ b/arch/ppc/platforms/gemini_serial.h | |||
@@ -2,7 +2,6 @@ | |||
2 | #ifndef __ASMPPC_GEMINI_SERIAL_H | 2 | #ifndef __ASMPPC_GEMINI_SERIAL_H |
3 | #define __ASMPPC_GEMINI_SERIAL_H | 3 | #define __ASMPPC_GEMINI_SERIAL_H |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <platforms/gemini.h> | 5 | #include <platforms/gemini.h> |
7 | 6 | ||
8 | #ifdef CONFIG_SERIAL_MANY_PORTS | 7 | #ifdef CONFIG_SERIAL_MANY_PORTS |
diff --git a/arch/ppc/platforms/gemini_setup.c b/arch/ppc/platforms/gemini_setup.c index 0090ff154608..f48048f362a8 100644 --- a/arch/ppc/platforms/gemini_setup.c +++ b/arch/ppc/platforms/gemini_setup.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/stddef.h> | 9 | #include <linux/stddef.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/hdpu.c b/arch/ppc/platforms/hdpu.c index 75dc2ee87d2f..e0f112a1fd0b 100644 --- a/arch/ppc/platforms/hdpu.c +++ b/arch/ppc/platforms/hdpu.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * option) any later version. | 12 | * option) any later version. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | 15 | ||
17 | #include <linux/pci.h> | 16 | #include <linux/pci.h> |
18 | #include <linux/delay.h> | 17 | #include <linux/delay.h> |
@@ -838,7 +837,7 @@ static void smp_hdpu_setup_cpu(int cpu_nr) | |||
838 | mv64x60_write(&bh, MV64360_CPU0_DOORBELL_CLR, 0xff); | 837 | mv64x60_write(&bh, MV64360_CPU0_DOORBELL_CLR, 0xff); |
839 | mv64x60_write(&bh, MV64360_CPU0_DOORBELL_MASK, 0xff); | 838 | mv64x60_write(&bh, MV64360_CPU0_DOORBELL_MASK, 0xff); |
840 | request_irq(60, hdpu_smp_cpu0_int_handler, | 839 | request_irq(60, hdpu_smp_cpu0_int_handler, |
841 | SA_INTERRUPT, hdpu_smp0, 0); | 840 | IRQF_DISABLED, hdpu_smp0, 0); |
842 | } | 841 | } |
843 | 842 | ||
844 | if (cpu_nr == 1) { | 843 | if (cpu_nr == 1) { |
@@ -858,7 +857,7 @@ static void smp_hdpu_setup_cpu(int cpu_nr) | |||
858 | mv64x60_write(&bh, MV64360_CPU1_DOORBELL_CLR, 0x0); | 857 | mv64x60_write(&bh, MV64360_CPU1_DOORBELL_CLR, 0x0); |
859 | mv64x60_write(&bh, MV64360_CPU1_DOORBELL_MASK, 0xff); | 858 | mv64x60_write(&bh, MV64360_CPU1_DOORBELL_MASK, 0xff); |
860 | request_irq(28, hdpu_smp_cpu1_int_handler, | 859 | request_irq(28, hdpu_smp_cpu1_int_handler, |
861 | SA_INTERRUPT, hdpu_smp1, 0); | 860 | IRQF_DISABLED, hdpu_smp1, 0); |
862 | } | 861 | } |
863 | 862 | ||
864 | } | 863 | } |
diff --git a/arch/ppc/platforms/hermes.h b/arch/ppc/platforms/hermes.h index 198fc590b9f5..de91afff8ca1 100644 --- a/arch/ppc/platforms/hermes.h +++ b/arch/ppc/platforms/hermes.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #ifndef __MACH_HERMES_H | 7 | #ifndef __MACH_HERMES_H |
8 | #define __MACH_HERMES_H | 8 | #define __MACH_HERMES_H |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/ppcboot.h> | 11 | #include <asm/ppcboot.h> |
13 | 12 | ||
diff --git a/arch/ppc/platforms/ip860.h b/arch/ppc/platforms/ip860.h index 8c3836c5f054..2f1f86ce1447 100644 --- a/arch/ppc/platforms/ip860.h +++ b/arch/ppc/platforms/ip860.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #ifndef __MACH_IP860_H | 7 | #ifndef __MACH_IP860_H |
8 | #define __MACH_IP860_H | 8 | #define __MACH_IP860_H |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/ppcboot.h> | 11 | #include <asm/ppcboot.h> |
13 | 12 | ||
diff --git a/arch/ppc/platforms/ivms8.h b/arch/ppc/platforms/ivms8.h index d4be310f8084..9109e684ad9b 100644 --- a/arch/ppc/platforms/ivms8.h +++ b/arch/ppc/platforms/ivms8.h | |||
@@ -13,7 +13,6 @@ | |||
13 | #ifndef __ASM_IVMS8_H__ | 13 | #ifndef __ASM_IVMS8_H__ |
14 | #define __ASM_IVMS8_H__ | 14 | #define __ASM_IVMS8_H__ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | 16 | ||
18 | #include <asm/ppcboot.h> | 17 | #include <asm/ppcboot.h> |
19 | 18 | ||
diff --git a/arch/ppc/platforms/katana.c b/arch/ppc/platforms/katana.c index ad21280e8920..720f8b3e2fbc 100644 --- a/arch/ppc/platforms/katana.c +++ b/arch/ppc/platforms/katana.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * Supports the Artesyn 750i, 752i, and 3750. The 752i is virtually identical | 16 | * Supports the Artesyn 750i, 752i, and 3750. The 752i is virtually identical |
17 | * to the 750i except that it has an mv64460 bridge. | 17 | * to the 750i except that it has an mv64460 bridge. |
18 | */ | 18 | */ |
19 | #include <linux/config.h> | ||
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/pci.h> | 20 | #include <linux/pci.h> |
22 | #include <linux/kdev_t.h> | 21 | #include <linux/kdev_t.h> |
diff --git a/arch/ppc/platforms/lantec.h b/arch/ppc/platforms/lantec.h index 8c87642c510f..5e5eb6d0f6aa 100644 --- a/arch/ppc/platforms/lantec.h +++ b/arch/ppc/platforms/lantec.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #ifndef __MACH_LANTEC_H | 7 | #ifndef __MACH_LANTEC_H |
8 | #define __MACH_LANTEC_H | 8 | #define __MACH_LANTEC_H |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/ppcboot.h> | 11 | #include <asm/ppcboot.h> |
13 | 12 | ||
diff --git a/arch/ppc/platforms/lite5200.c b/arch/ppc/platforms/lite5200.c index fecbe9adc9e0..b9e9db63f65b 100644 --- a/arch/ppc/platforms/lite5200.c +++ b/arch/ppc/platforms/lite5200.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * kind, whether express or implied. | 21 | * kind, whether express or implied. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/initrd.h> | 24 | #include <linux/initrd.h> |
26 | #include <linux/seq_file.h> | 25 | #include <linux/seq_file.h> |
27 | #include <linux/kdev_t.h> | 26 | #include <linux/kdev_t.h> |
diff --git a/arch/ppc/platforms/lopec.c b/arch/ppc/platforms/lopec.c index c6445a727ca3..18dc6e8dd4f4 100644 --- a/arch/ppc/platforms/lopec.c +++ b/arch/ppc/platforms/lopec.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * or implied. | 10 | * or implied. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/delay.h> | 14 | #include <linux/delay.h> |
16 | #include <linux/pci_ids.h> | 15 | #include <linux/pci_ids.h> |
diff --git a/arch/ppc/platforms/lwmon.h b/arch/ppc/platforms/lwmon.h index 995bf5112df0..e63f3b07a5db 100644 --- a/arch/ppc/platforms/lwmon.h +++ b/arch/ppc/platforms/lwmon.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #ifndef __MACH_LWMON_H | 7 | #ifndef __MACH_LWMON_H |
8 | #define __MACH_LWMON_H | 8 | #define __MACH_LWMON_H |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/ppcboot.h> | 11 | #include <asm/ppcboot.h> |
13 | 12 | ||
diff --git a/arch/ppc/platforms/mpc866ads_setup.c b/arch/ppc/platforms/mpc866ads_setup.c index d919dab61347..f19b6167c770 100644 --- a/arch/ppc/platforms/mpc866ads_setup.c +++ b/arch/ppc/platforms/mpc866ads_setup.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * kind, whether express or implied. | 11 | * kind, whether express or implied. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/param.h> | 16 | #include <linux/param.h> |
diff --git a/arch/ppc/platforms/mpc885ads.h b/arch/ppc/platforms/mpc885ads.h index a80b7d116b49..d3bbbb3c9a1f 100644 --- a/arch/ppc/platforms/mpc885ads.h +++ b/arch/ppc/platforms/mpc885ads.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __ASM_MPC885ADS_H__ | 15 | #ifndef __ASM_MPC885ADS_H__ |
16 | #define __ASM_MPC885ADS_H__ | 16 | #define __ASM_MPC885ADS_H__ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | 18 | ||
20 | #include <asm/ppcboot.h> | 19 | #include <asm/ppcboot.h> |
21 | 20 | ||
diff --git a/arch/ppc/platforms/mpc885ads_setup.c b/arch/ppc/platforms/mpc885ads_setup.c index 4b88679cd31c..c1fc4a16fea9 100644 --- a/arch/ppc/platforms/mpc885ads_setup.c +++ b/arch/ppc/platforms/mpc885ads_setup.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * kind, whether express or implied. | 11 | * kind, whether express or implied. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/param.h> | 16 | #include <linux/param.h> |
diff --git a/arch/ppc/platforms/mvme5100.c b/arch/ppc/platforms/mvme5100.c index c717cd92c028..bb8d4a45437a 100644 --- a/arch/ppc/platforms/mvme5100.c +++ b/arch/ppc/platforms/mvme5100.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/pal4_setup.c b/arch/ppc/platforms/pal4_setup.c index 3c3d881df00d..3da47d9ec7a2 100644 --- a/arch/ppc/platforms/pal4_setup.c +++ b/arch/ppc/platforms/pal4_setup.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
diff --git a/arch/ppc/platforms/pcu_e.h b/arch/ppc/platforms/pcu_e.h index 91a820a6fbc4..a2c03a22875e 100644 --- a/arch/ppc/platforms/pcu_e.h +++ b/arch/ppc/platforms/pcu_e.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #ifndef __MACH_PCU_E_H | 7 | #ifndef __MACH_PCU_E_H |
8 | #define __MACH_PCU_E_H | 8 | #define __MACH_PCU_E_H |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/ppcboot.h> | 11 | #include <asm/ppcboot.h> |
13 | 12 | ||
diff --git a/arch/ppc/platforms/powerpmc250.c b/arch/ppc/platforms/powerpmc250.c index c3a86be11fb7..4d46650e07fd 100644 --- a/arch/ppc/platforms/powerpmc250.c +++ b/arch/ppc/platforms/powerpmc250.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * or implied. | 11 | * or implied. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/stddef.h> | 14 | #include <linux/stddef.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/pplus.c b/arch/ppc/platforms/pplus.c index de2761ebe0d9..9778105d4dfe 100644 --- a/arch/ppc/platforms/pplus.c +++ b/arch/ppc/platforms/pplus.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * or implied. | 13 | * or implied. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/interrupt.h> | 17 | #include <linux/interrupt.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/pq2ads.h b/arch/ppc/platforms/pq2ads.h index 6b26dd36c640..2b287f4e0ca3 100644 --- a/arch/ppc/platforms/pq2ads.h +++ b/arch/ppc/platforms/pq2ads.h | |||
@@ -9,7 +9,6 @@ | |||
9 | #ifndef __MACH_ADS8260_DEFS | 9 | #ifndef __MACH_ADS8260_DEFS |
10 | #define __MACH_ADS8260_DEFS | 10 | #define __MACH_ADS8260_DEFS |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | 12 | ||
14 | #include <asm/ppcboot.h> | 13 | #include <asm/ppcboot.h> |
15 | 14 | ||
diff --git a/arch/ppc/platforms/prep_pci.c b/arch/ppc/platforms/prep_pci.c index e50b9996848c..c627ba41335f 100644 --- a/arch/ppc/platforms/prep_pci.c +++ b/arch/ppc/platforms/prep_pci.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * The motherboard routes/maps will disappear shortly. -- Cort | 6 | * The motherboard routes/maps will disappear shortly. -- Cort |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/pci.h> | 10 | #include <linux/pci.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
diff --git a/arch/ppc/platforms/prep_setup.c b/arch/ppc/platforms/prep_setup.c index e86f6156d589..6436beffdc96 100644 --- a/arch/ppc/platforms/prep_setup.c +++ b/arch/ppc/platforms/prep_setup.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * bootup setup stuff.. | 11 | * bootup setup stuff.. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/delay.h> | 14 | #include <linux/delay.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/errno.h> | 16 | #include <linux/errno.h> |
diff --git a/arch/ppc/platforms/prpmc750.c b/arch/ppc/platforms/prpmc750.c index cdd9cfb13ee9..fcab513e206d 100644 --- a/arch/ppc/platforms/prpmc750.c +++ b/arch/ppc/platforms/prpmc750.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/prpmc800.c b/arch/ppc/platforms/prpmc800.c index e459a199fb1d..f4ade5cd7a88 100644 --- a/arch/ppc/platforms/prpmc800.c +++ b/arch/ppc/platforms/prpmc800.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * or implied. | 7 | * or implied. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/stddef.h> | 10 | #include <linux/stddef.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/radstone_ppc7d.c b/arch/ppc/platforms/radstone_ppc7d.c index bc26b6d71c1d..3bb530af0297 100644 --- a/arch/ppc/platforms/radstone_ppc7d.c +++ b/arch/ppc/platforms/radstone_ppc7d.c | |||
@@ -18,7 +18,6 @@ | |||
18 | * SCSI / VGA. | 18 | * SCSI / VGA. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/stddef.h> | 21 | #include <linux/stddef.h> |
23 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
24 | #include <linux/init.h> | 23 | #include <linux/init.h> |
@@ -1311,7 +1310,7 @@ static void ppc7d_init2(void) | |||
1311 | 1310 | ||
1312 | /* Hook up i8259 interrupt which is connected to GPP28 */ | 1311 | /* Hook up i8259 interrupt which is connected to GPP28 */ |
1313 | request_irq(mv64360_irq_base + MV64x60_IRQ_GPP28, ppc7d_i8259_intr, | 1312 | request_irq(mv64360_irq_base + MV64x60_IRQ_GPP28, ppc7d_i8259_intr, |
1314 | SA_INTERRUPT, "I8259 (GPP28) interrupt", (void *)0); | 1313 | IRQF_DISABLED, "I8259 (GPP28) interrupt", (void *)0); |
1315 | 1314 | ||
1316 | /* Configure MPP16 as watchdog NMI, MPP17 as watchdog WDE */ | 1315 | /* Configure MPP16 as watchdog NMI, MPP17 as watchdog WDE */ |
1317 | spin_lock_irqsave(&mv64x60_lock, flags); | 1316 | spin_lock_irqsave(&mv64x60_lock, flags); |
diff --git a/arch/ppc/platforms/rpxclassic.h b/arch/ppc/platforms/rpxclassic.h index 6daa109491c4..57a2a55dab8c 100644 --- a/arch/ppc/platforms/rpxclassic.h +++ b/arch/ppc/platforms/rpxclassic.h | |||
@@ -8,7 +8,6 @@ | |||
8 | #ifndef __MACH_RPX_DEFS | 8 | #ifndef __MACH_RPX_DEFS |
9 | #define __MACH_RPX_DEFS | 9 | #define __MACH_RPX_DEFS |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | 11 | ||
13 | #ifndef __ASSEMBLY__ | 12 | #ifndef __ASSEMBLY__ |
14 | /* A Board Information structure that is given to a program when | 13 | /* A Board Information structure that is given to a program when |
diff --git a/arch/ppc/platforms/rpxlite.h b/arch/ppc/platforms/rpxlite.h index deee5bd36aa8..719780646270 100644 --- a/arch/ppc/platforms/rpxlite.h +++ b/arch/ppc/platforms/rpxlite.h | |||
@@ -8,7 +8,6 @@ | |||
8 | #ifndef __MACH_RPX_DEFS | 8 | #ifndef __MACH_RPX_DEFS |
9 | #define __MACH_RPX_DEFS | 9 | #define __MACH_RPX_DEFS |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | 11 | ||
13 | #ifndef __ASSEMBLY__ | 12 | #ifndef __ASSEMBLY__ |
14 | /* A Board Information structure that is given to a program when | 13 | /* A Board Information structure that is given to a program when |
diff --git a/arch/ppc/platforms/sandpoint.c b/arch/ppc/platforms/sandpoint.c index 6dc459decb2d..a76002af686f 100644 --- a/arch/ppc/platforms/sandpoint.c +++ b/arch/ppc/platforms/sandpoint.c | |||
@@ -60,7 +60,6 @@ | |||
60 | * found, we can hopefully stop hardcoding 32MB of RAM. | 60 | * found, we can hopefully stop hardcoding 32MB of RAM. |
61 | */ | 61 | */ |
62 | 62 | ||
63 | #include <linux/config.h> | ||
64 | #include <linux/stddef.h> | 63 | #include <linux/stddef.h> |
65 | #include <linux/kernel.h> | 64 | #include <linux/kernel.h> |
66 | #include <linux/init.h> | 65 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/sbc82xx.c b/arch/ppc/platforms/sbc82xx.c index 866807b4ad0b..60b769c7f3fc 100644 --- a/arch/ppc/platforms/sbc82xx.c +++ b/arch/ppc/platforms/sbc82xx.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * option) any later version. | 13 | * option) any later version. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/stddef.h> | 16 | #include <linux/stddef.h> |
18 | #include <linux/interrupt.h> | 17 | #include <linux/interrupt.h> |
19 | #include <linux/irq.h> | 18 | #include <linux/irq.h> |
@@ -146,7 +145,7 @@ static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id, struct pt_regs *re | |||
146 | 145 | ||
147 | static struct irqaction sbc82xx_i8259_irqaction = { | 146 | static struct irqaction sbc82xx_i8259_irqaction = { |
148 | .handler = sbc82xx_i8259_demux, | 147 | .handler = sbc82xx_i8259_demux, |
149 | .flags = SA_INTERRUPT, | 148 | .flags = IRQF_DISABLED, |
150 | .mask = CPU_MASK_NONE, | 149 | .mask = CPU_MASK_NONE, |
151 | .name = "i8259 demux", | 150 | .name = "i8259 demux", |
152 | }; | 151 | }; |
@@ -172,7 +171,7 @@ void __init sbc82xx_init_IRQ(void) | |||
172 | 171 | ||
173 | /* Set up the interrupt handlers for the i8259 IRQs */ | 172 | /* Set up the interrupt handlers for the i8259 IRQs */ |
174 | for (i = NR_SIU_INTS; i < NR_SIU_INTS + 8; i++) { | 173 | for (i = NR_SIU_INTS; i < NR_SIU_INTS + 8; i++) { |
175 | irq_desc[i].handler = &sbc82xx_i8259_ic; | 174 | irq_desc[i].chip = &sbc82xx_i8259_ic; |
176 | irq_desc[i].status |= IRQ_LEVEL; | 175 | irq_desc[i].status |= IRQ_LEVEL; |
177 | } | 176 | } |
178 | 177 | ||
diff --git a/arch/ppc/platforms/spruce.c b/arch/ppc/platforms/spruce.c index 3783deccd9b2..3c7842784876 100644 --- a/arch/ppc/platforms/spruce.c +++ b/arch/ppc/platforms/spruce.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * or implied. | 9 | * or implied. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/ppc/platforms/tqm8260.h b/arch/ppc/platforms/tqm8260.h index c7a78a646c66..7f8c9a6928f8 100644 --- a/arch/ppc/platforms/tqm8260.h +++ b/arch/ppc/platforms/tqm8260.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #ifndef __TQM8260_PLATFORM | 7 | #ifndef __TQM8260_PLATFORM |
8 | #define __TQM8260_PLATFORM | 8 | #define __TQM8260_PLATFORM |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/ppcboot.h> | 11 | #include <asm/ppcboot.h> |
13 | 12 | ||
diff --git a/arch/ppc/platforms/tqm8xx.h b/arch/ppc/platforms/tqm8xx.h index 43ac064ebe5a..662131d0eb39 100644 --- a/arch/ppc/platforms/tqm8xx.h +++ b/arch/ppc/platforms/tqm8xx.h | |||
@@ -8,7 +8,6 @@ | |||
8 | #ifndef __MACH_TQM8xx_H | 8 | #ifndef __MACH_TQM8xx_H |
9 | #define __MACH_TQM8xx_H | 9 | #define __MACH_TQM8xx_H |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | 11 | ||
13 | #include <asm/ppcboot.h> | 12 | #include <asm/ppcboot.h> |
14 | 13 | ||
diff --git a/arch/ppc/syslib/btext.c b/arch/ppc/syslib/btext.c index 12fa83e6774a..51ab6e90fe25 100644 --- a/arch/ppc/syslib/btext.c +++ b/arch/ppc/syslib/btext.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Benjamin Herrenschmidt <benh@kernel.crashing.org> | 4 | * Benjamin Herrenschmidt <benh@kernel.crashing.org> |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
8 | #include <linux/string.h> | 7 | #include <linux/string.h> |
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
diff --git a/arch/ppc/syslib/cpc700_pic.c b/arch/ppc/syslib/cpc700_pic.c index 5add0a919ef6..172aa215fdb0 100644 --- a/arch/ppc/syslib/cpc700_pic.c +++ b/arch/ppc/syslib/cpc700_pic.c | |||
@@ -140,12 +140,12 @@ cpc700_init_IRQ(void) | |||
140 | /* IRQ 0 is highest */ | 140 | /* IRQ 0 is highest */ |
141 | 141 | ||
142 | for (i = 0; i < 17; i++) { | 142 | for (i = 0; i < 17; i++) { |
143 | irq_desc[i].handler = &cpc700_pic; | 143 | irq_desc[i].chip = &cpc700_pic; |
144 | cpc700_pic_init_irq(i); | 144 | cpc700_pic_init_irq(i); |
145 | } | 145 | } |
146 | 146 | ||
147 | for (i = 20; i < 32; i++) { | 147 | for (i = 20; i < 32; i++) { |
148 | irq_desc[i].handler = &cpc700_pic; | 148 | irq_desc[i].chip = &cpc700_pic; |
149 | cpc700_pic_init_irq(i); | 149 | cpc700_pic_init_irq(i); |
150 | } | 150 | } |
151 | 151 | ||
diff --git a/arch/ppc/syslib/cpm2_pic.c b/arch/ppc/syslib/cpm2_pic.c index 29d95d415ceb..c0fee0beb815 100644 --- a/arch/ppc/syslib/cpm2_pic.c +++ b/arch/ppc/syslib/cpm2_pic.c | |||
@@ -171,7 +171,7 @@ void cpm2_init_IRQ(void) | |||
171 | /* Enable chaining to OpenPIC, and make everything level | 171 | /* Enable chaining to OpenPIC, and make everything level |
172 | */ | 172 | */ |
173 | for (i = 0; i < NR_CPM_INTS; i++) { | 173 | for (i = 0; i < NR_CPM_INTS; i++) { |
174 | irq_desc[i+CPM_IRQ_OFFSET].handler = &cpm2_pic; | 174 | irq_desc[i+CPM_IRQ_OFFSET].chip = &cpm2_pic; |
175 | irq_desc[i+CPM_IRQ_OFFSET].status |= IRQ_LEVEL; | 175 | irq_desc[i+CPM_IRQ_OFFSET].status |= IRQ_LEVEL; |
176 | } | 176 | } |
177 | } | 177 | } |
diff --git a/arch/ppc/syslib/gen550_dbg.c b/arch/ppc/syslib/gen550_dbg.c index 9fcff74bfdd0..9293f5c59099 100644 --- a/arch/ppc/syslib/gen550_dbg.c +++ b/arch/ppc/syslib/gen550_dbg.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * or implied. | 14 | * or implied. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/types.h> | 17 | #include <linux/types.h> |
19 | #include <linux/serial.h> | 18 | #include <linux/serial.h> |
20 | #include <linux/tty.h> /* For linux/serial_core.h */ | 19 | #include <linux/tty.h> /* For linux/serial_core.h */ |
diff --git a/arch/ppc/syslib/gen550_kgdb.c b/arch/ppc/syslib/gen550_kgdb.c index 874078a7664d..987cc0414e6e 100644 --- a/arch/ppc/syslib/gen550_kgdb.c +++ b/arch/ppc/syslib/gen550_kgdb.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * or implied. | 15 | * or implied. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/types.h> | 18 | #include <linux/types.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | 20 | ||
diff --git a/arch/ppc/syslib/gt64260_pic.c b/arch/ppc/syslib/gt64260_pic.c index dc3bd9ecbbf6..7fd550a7d586 100644 --- a/arch/ppc/syslib/gt64260_pic.c +++ b/arch/ppc/syslib/gt64260_pic.c | |||
@@ -98,7 +98,7 @@ gt64260_init_irq(void) | |||
98 | 98 | ||
99 | /* use the gt64260 for all (possible) interrupt sources */ | 99 | /* use the gt64260 for all (possible) interrupt sources */ |
100 | for (i = gt64260_irq_base; i < (gt64260_irq_base + 96); i++) | 100 | for (i = gt64260_irq_base; i < (gt64260_irq_base + 96); i++) |
101 | irq_desc[i].handler = >64260_pic; | 101 | irq_desc[i].chip = >64260_pic; |
102 | 102 | ||
103 | if (ppc_md.progress) | 103 | if (ppc_md.progress) |
104 | ppc_md.progress("gt64260_init_irq: exit", 0x0); | 104 | ppc_md.progress("gt64260_init_irq: exit", 0x0); |
@@ -297,7 +297,7 @@ gt64260_register_hdlrs(void) | |||
297 | 297 | ||
298 | /* Register CPU interface error interrupt handler */ | 298 | /* Register CPU interface error interrupt handler */ |
299 | if ((rc = request_irq(MV64x60_IRQ_CPU_ERR, | 299 | if ((rc = request_irq(MV64x60_IRQ_CPU_ERR, |
300 | gt64260_cpu_error_int_handler, SA_INTERRUPT, CPU_INTR_STR, 0))) | 300 | gt64260_cpu_error_int_handler, IRQF_DISABLED, CPU_INTR_STR, 0))) |
301 | printk(KERN_WARNING "Can't register cpu error handler: %d", rc); | 301 | printk(KERN_WARNING "Can't register cpu error handler: %d", rc); |
302 | 302 | ||
303 | mv64x60_write(&bh, MV64x60_CPU_ERR_MASK, 0); | 303 | mv64x60_write(&bh, MV64x60_CPU_ERR_MASK, 0); |
@@ -305,7 +305,7 @@ gt64260_register_hdlrs(void) | |||
305 | 305 | ||
306 | /* Register PCI 0 error interrupt handler */ | 306 | /* Register PCI 0 error interrupt handler */ |
307 | if ((rc = request_irq(MV64360_IRQ_PCI0, gt64260_pci_error_int_handler, | 307 | if ((rc = request_irq(MV64360_IRQ_PCI0, gt64260_pci_error_int_handler, |
308 | SA_INTERRUPT, PCI0_INTR_STR, (void *)0))) | 308 | IRQF_DISABLED, PCI0_INTR_STR, (void *)0))) |
309 | printk(KERN_WARNING "Can't register pci 0 error handler: %d", | 309 | printk(KERN_WARNING "Can't register pci 0 error handler: %d", |
310 | rc); | 310 | rc); |
311 | 311 | ||
@@ -314,7 +314,7 @@ gt64260_register_hdlrs(void) | |||
314 | 314 | ||
315 | /* Register PCI 1 error interrupt handler */ | 315 | /* Register PCI 1 error interrupt handler */ |
316 | if ((rc = request_irq(MV64360_IRQ_PCI1, gt64260_pci_error_int_handler, | 316 | if ((rc = request_irq(MV64360_IRQ_PCI1, gt64260_pci_error_int_handler, |
317 | SA_INTERRUPT, PCI1_INTR_STR, (void *)1))) | 317 | IRQF_DISABLED, PCI1_INTR_STR, (void *)1))) |
318 | printk(KERN_WARNING "Can't register pci 1 error handler: %d", | 318 | printk(KERN_WARNING "Can't register pci 1 error handler: %d", |
319 | rc); | 319 | rc); |
320 | 320 | ||
diff --git a/arch/ppc/syslib/ibm440gp_common.c b/arch/ppc/syslib/ibm440gp_common.c index fbaae5f6d834..a3927ec9b5d7 100644 --- a/arch/ppc/syslib/ibm440gp_common.c +++ b/arch/ppc/syslib/ibm440gp_common.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * option) any later version. | 13 | * option) any later version. |
14 | * | 14 | * |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | #include <linux/types.h> | 16 | #include <linux/types.h> |
18 | #include <asm/reg.h> | 17 | #include <asm/reg.h> |
19 | #include <asm/ibm44x.h> | 18 | #include <asm/ibm44x.h> |
diff --git a/arch/ppc/syslib/ibm440gp_common.h b/arch/ppc/syslib/ibm440gp_common.h index f48529f3c23d..94d7835038ad 100644 --- a/arch/ppc/syslib/ibm440gp_common.h +++ b/arch/ppc/syslib/ibm440gp_common.h | |||
@@ -16,7 +16,6 @@ | |||
16 | 16 | ||
17 | #ifndef __ASSEMBLY__ | 17 | #ifndef __ASSEMBLY__ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <syslib/ibm44x_common.h> | 20 | #include <syslib/ibm44x_common.h> |
22 | 21 | ||
diff --git a/arch/ppc/syslib/ibm440gx_common.c b/arch/ppc/syslib/ibm440gx_common.c index f6cc16888527..4b77e6c8c87f 100644 --- a/arch/ppc/syslib/ibm440gx_common.c +++ b/arch/ppc/syslib/ibm440gx_common.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * option) any later version. | 10 | * option) any later version. |
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
16 | #include <asm/ibm44x.h> | 15 | #include <asm/ibm44x.h> |
@@ -150,7 +149,7 @@ void __init ibm440gx_l2c_enable(void){ | |||
150 | unsigned long flags; | 149 | unsigned long flags; |
151 | 150 | ||
152 | /* Install error handler */ | 151 | /* Install error handler */ |
153 | if (request_irq(87, l2c_error_handler, SA_INTERRUPT, "L2C", 0) < 0){ | 152 | if (request_irq(87, l2c_error_handler, IRQF_DISABLED, "L2C", 0) < 0){ |
154 | printk(KERN_ERR "Cannot install L2C error handler, cache is not enabled\n"); | 153 | printk(KERN_ERR "Cannot install L2C error handler, cache is not enabled\n"); |
155 | return; | 154 | return; |
156 | } | 155 | } |
diff --git a/arch/ppc/syslib/ibm440gx_common.h b/arch/ppc/syslib/ibm440gx_common.h index a03ec6022e8f..8d6f203e7a1d 100644 --- a/arch/ppc/syslib/ibm440gx_common.h +++ b/arch/ppc/syslib/ibm440gx_common.h | |||
@@ -16,7 +16,6 @@ | |||
16 | 16 | ||
17 | #ifndef __ASSEMBLY__ | 17 | #ifndef __ASSEMBLY__ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/seq_file.h> | 20 | #include <linux/seq_file.h> |
22 | #include <syslib/ibm44x_common.h> | 21 | #include <syslib/ibm44x_common.h> |
diff --git a/arch/ppc/syslib/ibm440sp_common.c b/arch/ppc/syslib/ibm440sp_common.c index 293e4138d172..571f8bcf78e6 100644 --- a/arch/ppc/syslib/ibm440sp_common.c +++ b/arch/ppc/syslib/ibm440sp_common.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * option) any later version. | 13 | * option) any later version. |
14 | * | 14 | * |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | #include <linux/types.h> | 16 | #include <linux/types.h> |
18 | #include <linux/serial.h> | 17 | #include <linux/serial.h> |
19 | 18 | ||
diff --git a/arch/ppc/syslib/ibm44x_common.c b/arch/ppc/syslib/ibm44x_common.c index 14a981a5cea7..01f99b4a6649 100644 --- a/arch/ppc/syslib/ibm44x_common.c +++ b/arch/ppc/syslib/ibm44x_common.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * option) any later version. | 13 | * option) any later version. |
14 | * | 14 | * |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | #include <linux/time.h> | 16 | #include <linux/time.h> |
18 | #include <linux/types.h> | 17 | #include <linux/types.h> |
19 | #include <linux/serial.h> | 18 | #include <linux/serial.h> |
diff --git a/arch/ppc/syslib/m8260_pci_erratum9.c b/arch/ppc/syslib/m8260_pci_erratum9.c index 99e4bc0e42af..974581ea4849 100644 --- a/arch/ppc/syslib/m8260_pci_erratum9.c +++ b/arch/ppc/syslib/m8260_pci_erratum9.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * or implied. | 15 | * or implied. |
16 | */ | 16 | */ |
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/config.h> | ||
19 | #include <linux/module.h> | 18 | #include <linux/module.h> |
20 | #include <linux/pci.h> | 19 | #include <linux/pci.h> |
21 | #include <linux/types.h> | 20 | #include <linux/types.h> |
diff --git a/arch/ppc/syslib/m8260_setup.c b/arch/ppc/syslib/m8260_setup.c index b7a6cb2d8d52..15f0d7323535 100644 --- a/arch/ppc/syslib/m8260_setup.c +++ b/arch/ppc/syslib/m8260_setup.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Further modified for generic 8xx and 8260 by Dan. | 6 | * Further modified for generic 8xx and 8260 by Dan. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
diff --git a/arch/ppc/syslib/m82xx_pci.c b/arch/ppc/syslib/m82xx_pci.c index 1941a8c7ca9a..d3fa264e179e 100644 --- a/arch/ppc/syslib/m82xx_pci.c +++ b/arch/ppc/syslib/m82xx_pci.c | |||
@@ -139,7 +139,7 @@ pq2pci_irq_demux(int irq, void *dev_id, struct pt_regs *regs) | |||
139 | 139 | ||
140 | static struct irqaction pq2pci_irqaction = { | 140 | static struct irqaction pq2pci_irqaction = { |
141 | .handler = pq2pci_irq_demux, | 141 | .handler = pq2pci_irq_demux, |
142 | .flags = SA_INTERRUPT, | 142 | .flags = IRQF_DISABLED, |
143 | .mask = CPU_MASK_NONE, | 143 | .mask = CPU_MASK_NONE, |
144 | .name = "PQ2 PCI cascade", | 144 | .name = "PQ2 PCI cascade", |
145 | }; | 145 | }; |
@@ -159,7 +159,7 @@ pq2pci_init_irq(void) | |||
159 | immap->im_memctl.memc_or8 = 0xffff8010; | 159 | immap->im_memctl.memc_or8 = 0xffff8010; |
160 | #endif | 160 | #endif |
161 | for (irq = NR_CPM_INTS; irq < NR_CPM_INTS + 4; irq++) | 161 | for (irq = NR_CPM_INTS; irq < NR_CPM_INTS + 4; irq++) |
162 | irq_desc[irq].handler = &pq2pci_ic; | 162 | irq_desc[irq].chip = &pq2pci_ic; |
163 | 163 | ||
164 | /* make PCI IRQ level sensitive */ | 164 | /* make PCI IRQ level sensitive */ |
165 | immap->im_intctl.ic_siexr &= | 165 | immap->im_intctl.ic_siexr &= |
diff --git a/arch/ppc/syslib/m8xx_setup.c b/arch/ppc/syslib/m8xx_setup.c index dae9af78bde1..54303a7b4e69 100644 --- a/arch/ppc/syslib/m8xx_setup.c +++ b/arch/ppc/syslib/m8xx_setup.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * bootup setup stuff.. | 10 | * bootup setup stuff.. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
@@ -347,13 +346,13 @@ m8xx_init_IRQ(void) | |||
347 | int i; | 346 | int i; |
348 | 347 | ||
349 | for (i = SIU_IRQ_OFFSET ; i < SIU_IRQ_OFFSET + NR_SIU_INTS ; i++) | 348 | for (i = SIU_IRQ_OFFSET ; i < SIU_IRQ_OFFSET + NR_SIU_INTS ; i++) |
350 | irq_desc[i].handler = &ppc8xx_pic; | 349 | irq_desc[i].chip = &ppc8xx_pic; |
351 | 350 | ||
352 | cpm_interrupt_init(); | 351 | cpm_interrupt_init(); |
353 | 352 | ||
354 | #if defined(CONFIG_PCI) | 353 | #if defined(CONFIG_PCI) |
355 | for (i = I8259_IRQ_OFFSET ; i < I8259_IRQ_OFFSET + NR_8259_INTS ; i++) | 354 | for (i = I8259_IRQ_OFFSET ; i < I8259_IRQ_OFFSET + NR_8259_INTS ; i++) |
356 | irq_desc[i].handler = &i8259_pic; | 355 | irq_desc[i].chip = &i8259_pic; |
357 | 356 | ||
358 | i8259_pic_irq_offset = I8259_IRQ_OFFSET; | 357 | i8259_pic_irq_offset = I8259_IRQ_OFFSET; |
359 | i8259_init(0); | 358 | i8259_init(0); |
diff --git a/arch/ppc/syslib/mpc52xx_pci.c b/arch/ppc/syslib/mpc52xx_pci.c index 5a5a7a9cd248..20a0eac0dc3a 100644 --- a/arch/ppc/syslib/mpc52xx_pci.c +++ b/arch/ppc/syslib/mpc52xx_pci.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * kind, whether express or implied. | 11 | * kind, whether express or implied. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | 14 | ||
16 | #include <asm/pci.h> | 15 | #include <asm/pci.h> |
17 | 16 | ||
diff --git a/arch/ppc/syslib/mpc52xx_pic.c b/arch/ppc/syslib/mpc52xx_pic.c index c4406f9dc6a3..6425b5cee7db 100644 --- a/arch/ppc/syslib/mpc52xx_pic.c +++ b/arch/ppc/syslib/mpc52xx_pic.c | |||
@@ -204,9 +204,9 @@ mpc52xx_init_irq(void) | |||
204 | out_be32(&intr->main_pri1, 0); | 204 | out_be32(&intr->main_pri1, 0); |
205 | out_be32(&intr->main_pri2, 0); | 205 | out_be32(&intr->main_pri2, 0); |
206 | 206 | ||
207 | /* Initialize irq_desc[i].handler's with mpc52xx_ic. */ | 207 | /* Initialize irq_desc[i].chip's with mpc52xx_ic. */ |
208 | for (i = 0; i < NR_IRQS; i++) { | 208 | for (i = 0; i < NR_IRQS; i++) { |
209 | irq_desc[i].handler = &mpc52xx_ic; | 209 | irq_desc[i].chip = &mpc52xx_ic; |
210 | irq_desc[i].status = IRQ_LEVEL; | 210 | irq_desc[i].status = IRQ_LEVEL; |
211 | } | 211 | } |
212 | 212 | ||
diff --git a/arch/ppc/syslib/mpc52xx_setup.c b/arch/ppc/syslib/mpc52xx_setup.c index ee6379bb415e..80c609019bda 100644 --- a/arch/ppc/syslib/mpc52xx_setup.c +++ b/arch/ppc/syslib/mpc52xx_setup.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * kind, whether express or implied. | 15 | * kind, whether express or implied. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | 18 | ||
20 | #include <asm/io.h> | 19 | #include <asm/io.h> |
21 | #include <asm/time.h> | 20 | #include <asm/time.h> |
diff --git a/arch/ppc/syslib/mv64360_pic.c b/arch/ppc/syslib/mv64360_pic.c index 5a19697060f0..3f6d162f87cf 100644 --- a/arch/ppc/syslib/mv64360_pic.c +++ b/arch/ppc/syslib/mv64360_pic.c | |||
@@ -119,7 +119,7 @@ mv64360_init_irq(void) | |||
119 | /* All interrupts are level interrupts */ | 119 | /* All interrupts are level interrupts */ |
120 | for (i = mv64360_irq_base; i < (mv64360_irq_base + 96); i++) { | 120 | for (i = mv64360_irq_base; i < (mv64360_irq_base + 96); i++) { |
121 | irq_desc[i].status |= IRQ_LEVEL; | 121 | irq_desc[i].status |= IRQ_LEVEL; |
122 | irq_desc[i].handler = &mv64360_pic; | 122 | irq_desc[i].chip = &mv64360_pic; |
123 | } | 123 | } |
124 | 124 | ||
125 | if (ppc_md.progress) | 125 | if (ppc_md.progress) |
@@ -380,7 +380,7 @@ mv64360_register_hdlrs(void) | |||
380 | /* Clear old errors and register CPU interface error intr handler */ | 380 | /* Clear old errors and register CPU interface error intr handler */ |
381 | mv64x60_write(&bh, MV64x60_CPU_ERR_CAUSE, 0); | 381 | mv64x60_write(&bh, MV64x60_CPU_ERR_CAUSE, 0); |
382 | if ((rc = request_irq(MV64x60_IRQ_CPU_ERR + mv64360_irq_base, | 382 | if ((rc = request_irq(MV64x60_IRQ_CPU_ERR + mv64360_irq_base, |
383 | mv64360_cpu_error_int_handler, SA_INTERRUPT, CPU_INTR_STR, 0))) | 383 | mv64360_cpu_error_int_handler, IRQF_DISABLED, CPU_INTR_STR, 0))) |
384 | printk(KERN_WARNING "Can't register cpu error handler: %d", rc); | 384 | printk(KERN_WARNING "Can't register cpu error handler: %d", rc); |
385 | 385 | ||
386 | mv64x60_write(&bh, MV64x60_CPU_ERR_MASK, 0); | 386 | mv64x60_write(&bh, MV64x60_CPU_ERR_MASK, 0); |
@@ -389,14 +389,14 @@ mv64360_register_hdlrs(void) | |||
389 | /* Clear old errors and register internal SRAM error intr handler */ | 389 | /* Clear old errors and register internal SRAM error intr handler */ |
390 | mv64x60_write(&bh, MV64360_SRAM_ERR_CAUSE, 0); | 390 | mv64x60_write(&bh, MV64360_SRAM_ERR_CAUSE, 0); |
391 | if ((rc = request_irq(MV64360_IRQ_SRAM_PAR_ERR + mv64360_irq_base, | 391 | if ((rc = request_irq(MV64360_IRQ_SRAM_PAR_ERR + mv64360_irq_base, |
392 | mv64360_sram_error_int_handler,SA_INTERRUPT,SRAM_INTR_STR, 0))) | 392 | mv64360_sram_error_int_handler,IRQF_DISABLED,SRAM_INTR_STR, 0))) |
393 | printk(KERN_WARNING "Can't register SRAM error handler: %d",rc); | 393 | printk(KERN_WARNING "Can't register SRAM error handler: %d",rc); |
394 | 394 | ||
395 | /* Clear old errors and register PCI 0 error intr handler */ | 395 | /* Clear old errors and register PCI 0 error intr handler */ |
396 | mv64x60_write(&bh, MV64x60_PCI0_ERR_CAUSE, 0); | 396 | mv64x60_write(&bh, MV64x60_PCI0_ERR_CAUSE, 0); |
397 | if ((rc = request_irq(MV64360_IRQ_PCI0 + mv64360_irq_base, | 397 | if ((rc = request_irq(MV64360_IRQ_PCI0 + mv64360_irq_base, |
398 | mv64360_pci_error_int_handler, | 398 | mv64360_pci_error_int_handler, |
399 | SA_INTERRUPT, PCI0_INTR_STR, (void *)0))) | 399 | IRQF_DISABLED, PCI0_INTR_STR, (void *)0))) |
400 | printk(KERN_WARNING "Can't register pci 0 error handler: %d", | 400 | printk(KERN_WARNING "Can't register pci 0 error handler: %d", |
401 | rc); | 401 | rc); |
402 | 402 | ||
@@ -411,7 +411,7 @@ mv64360_register_hdlrs(void) | |||
411 | mv64x60_write(&bh, MV64x60_PCI1_ERR_CAUSE, 0); | 411 | mv64x60_write(&bh, MV64x60_PCI1_ERR_CAUSE, 0); |
412 | if ((rc = request_irq(MV64360_IRQ_PCI1 + mv64360_irq_base, | 412 | if ((rc = request_irq(MV64360_IRQ_PCI1 + mv64360_irq_base, |
413 | mv64360_pci_error_int_handler, | 413 | mv64360_pci_error_int_handler, |
414 | SA_INTERRUPT, PCI1_INTR_STR, (void *)1))) | 414 | IRQF_DISABLED, PCI1_INTR_STR, (void *)1))) |
415 | printk(KERN_WARNING "Can't register pci 1 error handler: %d", | 415 | printk(KERN_WARNING "Can't register pci 1 error handler: %d", |
416 | rc); | 416 | rc); |
417 | 417 | ||
diff --git a/arch/ppc/syslib/mv64x60_dbg.c b/arch/ppc/syslib/mv64x60_dbg.c index 9cf18764a1a1..e1876261e5dc 100644 --- a/arch/ppc/syslib/mv64x60_dbg.c +++ b/arch/ppc/syslib/mv64x60_dbg.c | |||
@@ -18,7 +18,6 @@ | |||
18 | */ | 18 | */ |
19 | 19 | ||
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/irq.h> | 21 | #include <linux/irq.h> |
23 | #include <asm/delay.h> | 22 | #include <asm/delay.h> |
24 | #include <asm/mv64x60.h> | 23 | #include <asm/mv64x60.h> |
diff --git a/arch/ppc/syslib/ocp.c b/arch/ppc/syslib/ocp.c index a4ecc2ee579f..50c55622ece9 100644 --- a/arch/ppc/syslib/ocp.c +++ b/arch/ppc/syslib/ocp.c | |||
@@ -36,7 +36,6 @@ | |||
36 | */ | 36 | */ |
37 | 37 | ||
38 | #include <linux/module.h> | 38 | #include <linux/module.h> |
39 | #include <linux/config.h> | ||
40 | #include <linux/list.h> | 39 | #include <linux/list.h> |
41 | #include <linux/miscdevice.h> | 40 | #include <linux/miscdevice.h> |
42 | #include <linux/slab.h> | 41 | #include <linux/slab.h> |
diff --git a/arch/ppc/syslib/open_pic.c b/arch/ppc/syslib/open_pic.c index 70456c8f998c..aa0b95788705 100644 --- a/arch/ppc/syslib/open_pic.c +++ b/arch/ppc/syslib/open_pic.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * for more details. | 6 | * for more details. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
@@ -373,7 +372,7 @@ void __init openpic_init(int offset) | |||
373 | OPENPIC_VEC_IPI+i+offset); | 372 | OPENPIC_VEC_IPI+i+offset); |
374 | /* IPIs are per-CPU */ | 373 | /* IPIs are per-CPU */ |
375 | irq_desc[OPENPIC_VEC_IPI+i+offset].status |= IRQ_PER_CPU; | 374 | irq_desc[OPENPIC_VEC_IPI+i+offset].status |= IRQ_PER_CPU; |
376 | irq_desc[OPENPIC_VEC_IPI+i+offset].handler = &open_pic_ipi; | 375 | irq_desc[OPENPIC_VEC_IPI+i+offset].chip = &open_pic_ipi; |
377 | } | 376 | } |
378 | #endif | 377 | #endif |
379 | 378 | ||
@@ -408,7 +407,7 @@ void __init openpic_init(int offset) | |||
408 | 407 | ||
409 | /* Init descriptors */ | 408 | /* Init descriptors */ |
410 | for (i = offset; i < NumSources + offset; i++) | 409 | for (i = offset; i < NumSources + offset; i++) |
411 | irq_desc[i].handler = &open_pic; | 410 | irq_desc[i].chip = &open_pic; |
412 | 411 | ||
413 | /* Initialize the spurious interrupt */ | 412 | /* Initialize the spurious interrupt */ |
414 | if (ppc_md.progress) ppc_md.progress("openpic: spurious",0x3bd); | 413 | if (ppc_md.progress) ppc_md.progress("openpic: spurious",0x3bd); |
@@ -576,18 +575,21 @@ void openpic_request_IPIs(void) | |||
576 | if (OpenPIC == NULL) | 575 | if (OpenPIC == NULL) |
577 | return; | 576 | return; |
578 | 577 | ||
579 | /* IPIs are marked SA_INTERRUPT as they must run with irqs disabled */ | 578 | /* |
579 | * IPIs are marked IRQF_DISABLED as they must run with irqs | ||
580 | * disabled | ||
581 | */ | ||
580 | request_irq(OPENPIC_VEC_IPI+open_pic_irq_offset, | 582 | request_irq(OPENPIC_VEC_IPI+open_pic_irq_offset, |
581 | openpic_ipi_action, SA_INTERRUPT, | 583 | openpic_ipi_action, IRQF_DISABLED, |
582 | "IPI0 (call function)", NULL); | 584 | "IPI0 (call function)", NULL); |
583 | request_irq(OPENPIC_VEC_IPI+open_pic_irq_offset+1, | 585 | request_irq(OPENPIC_VEC_IPI+open_pic_irq_offset+1, |
584 | openpic_ipi_action, SA_INTERRUPT, | 586 | openpic_ipi_action, IRQF_DISABLED, |
585 | "IPI1 (reschedule)", NULL); | 587 | "IPI1 (reschedule)", NULL); |
586 | request_irq(OPENPIC_VEC_IPI+open_pic_irq_offset+2, | 588 | request_irq(OPENPIC_VEC_IPI+open_pic_irq_offset+2, |
587 | openpic_ipi_action, SA_INTERRUPT, | 589 | openpic_ipi_action, IRQF_DISABLED, |
588 | "IPI2 (invalidate tlb)", NULL); | 590 | "IPI2 (invalidate tlb)", NULL); |
589 | request_irq(OPENPIC_VEC_IPI+open_pic_irq_offset+3, | 591 | request_irq(OPENPIC_VEC_IPI+open_pic_irq_offset+3, |
590 | openpic_ipi_action, SA_INTERRUPT, | 592 | openpic_ipi_action, IRQF_DISABLED, |
591 | "IPI3 (xmon break)", NULL); | 593 | "IPI3 (xmon break)", NULL); |
592 | 594 | ||
593 | for ( i = 0; i < OPENPIC_NUM_IPI ; i++ ) | 595 | for ( i = 0; i < OPENPIC_NUM_IPI ; i++ ) |
@@ -615,8 +617,8 @@ void __devinit do_openpic_setup_cpu(void) | |||
615 | /* let the openpic know we want intrs. default affinity | 617 | /* let the openpic know we want intrs. default affinity |
616 | * is 0xffffffff until changed via /proc | 618 | * is 0xffffffff until changed via /proc |
617 | * That's how it's done on x86. If we want it differently, then | 619 | * That's how it's done on x86. If we want it differently, then |
618 | * we should make sure we also change the default values of irq_affinity | 620 | * we should make sure we also change the default values of |
619 | * in irq.c. | 621 | * irq_desc[].affinity in irq.c. |
620 | */ | 622 | */ |
621 | for (i = 0; i < NumSources; i++) | 623 | for (i = 0; i < NumSources; i++) |
622 | openpic_mapirq(i, msk, CPU_MASK_ALL); | 624 | openpic_mapirq(i, msk, CPU_MASK_ALL); |
@@ -692,7 +694,7 @@ openpic_init_nmi_irq(u_int irq) | |||
692 | 694 | ||
693 | static struct irqaction openpic_cascade_irqaction = { | 695 | static struct irqaction openpic_cascade_irqaction = { |
694 | .handler = no_action, | 696 | .handler = no_action, |
695 | .flags = SA_INTERRUPT, | 697 | .flags = IRQF_DISABLED, |
696 | .mask = CPU_MASK_NONE, | 698 | .mask = CPU_MASK_NONE, |
697 | }; | 699 | }; |
698 | 700 | ||
diff --git a/arch/ppc/syslib/open_pic2.c b/arch/ppc/syslib/open_pic2.c index bcbe40de26fe..e1ff971539ea 100644 --- a/arch/ppc/syslib/open_pic2.c +++ b/arch/ppc/syslib/open_pic2.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * register accesses | 10 | * register accesses |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
@@ -290,7 +289,7 @@ void __init openpic2_init(int offset) | |||
290 | 289 | ||
291 | /* Init descriptors */ | 290 | /* Init descriptors */ |
292 | for (i = offset; i < NumSources + offset; i++) | 291 | for (i = offset; i < NumSources + offset; i++) |
293 | irq_desc[i].handler = &open_pic2; | 292 | irq_desc[i].chip = &open_pic2; |
294 | 293 | ||
295 | /* Initialize the spurious interrupt */ | 294 | /* Initialize the spurious interrupt */ |
296 | if (ppc_md.progress) ppc_md.progress("openpic2: spurious",0x3bd); | 295 | if (ppc_md.progress) ppc_md.progress("openpic2: spurious",0x3bd); |
diff --git a/arch/ppc/syslib/ppc403_pic.c b/arch/ppc/syslib/ppc403_pic.c index c46043c47225..1584c8b1229f 100644 --- a/arch/ppc/syslib/ppc403_pic.c +++ b/arch/ppc/syslib/ppc403_pic.c | |||
@@ -121,5 +121,5 @@ ppc4xx_pic_init(void) | |||
121 | ppc_md.get_irq = ppc403_pic_get_irq; | 121 | ppc_md.get_irq = ppc403_pic_get_irq; |
122 | 122 | ||
123 | for (i = 0; i < NR_IRQS; i++) | 123 | for (i = 0; i < NR_IRQS; i++) |
124 | irq_desc[i].handler = &ppc403_aic; | 124 | irq_desc[i].chip = &ppc403_aic; |
125 | } | 125 | } |
diff --git a/arch/ppc/syslib/ppc440spe_pcie.c b/arch/ppc/syslib/ppc440spe_pcie.c index 1509fc1ddfb6..dd5d4b958c31 100644 --- a/arch/ppc/syslib/ppc440spe_pcie.c +++ b/arch/ppc/syslib/ppc440spe_pcie.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * option) any later version. | 8 | * option) any later version. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/delay.h> | 12 | #include <linux/delay.h> |
14 | #include <linux/pci.h> | 13 | #include <linux/pci.h> |
diff --git a/arch/ppc/syslib/ppc4xx_dma.c b/arch/ppc/syslib/ppc4xx_dma.c index b40b96a8c609..1eef4ffed4fb 100644 --- a/arch/ppc/syslib/ppc4xx_dma.c +++ b/arch/ppc/syslib/ppc4xx_dma.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 19 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
24 | #include <linux/mm.h> | 23 | #include <linux/mm.h> |
25 | #include <linux/miscdevice.h> | 24 | #include <linux/miscdevice.h> |
diff --git a/arch/ppc/syslib/ppc4xx_pic.c b/arch/ppc/syslib/ppc4xx_pic.c index fd9af0fc0e9f..745685df5984 100644 --- a/arch/ppc/syslib/ppc4xx_pic.c +++ b/arch/ppc/syslib/ppc4xx_pic.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * Free Software Foundation; either version 2 of the License, or (at your | 13 | * Free Software Foundation; either version 2 of the License, or (at your |
14 | * option) any later version. | 14 | * option) any later version. |
15 | */ | 15 | */ |
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
19 | #include <linux/signal.h> | 18 | #include <linux/signal.h> |
@@ -276,7 +275,7 @@ void __init ppc4xx_pic_init(void) | |||
276 | 275 | ||
277 | /* Attach low-level handlers */ | 276 | /* Attach low-level handlers */ |
278 | for (i = 0; i < (NR_UICS << 5); ++i) { | 277 | for (i = 0; i < (NR_UICS << 5); ++i) { |
279 | irq_desc[i].handler = &__uic[i >> 5].decl; | 278 | irq_desc[i].chip = &__uic[i >> 5].decl; |
280 | if (is_level_sensitive(i)) | 279 | if (is_level_sensitive(i)) |
281 | irq_desc[i].status |= IRQ_LEVEL; | 280 | irq_desc[i].status |= IRQ_LEVEL; |
282 | } | 281 | } |
diff --git a/arch/ppc/syslib/ppc4xx_setup.c b/arch/ppc/syslib/ppc4xx_setup.c index e83a83fd95e1..debe14c083a1 100644 --- a/arch/ppc/syslib/ppc4xx_setup.c +++ b/arch/ppc/syslib/ppc4xx_setup.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * | 13 | * |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/smp.h> | 17 | #include <linux/smp.h> |
19 | #include <linux/threads.h> | 18 | #include <linux/threads.h> |
diff --git a/arch/ppc/syslib/ppc4xx_sgdma.c b/arch/ppc/syslib/ppc4xx_sgdma.c index 280ea010a9c8..2f83e162971f 100644 --- a/arch/ppc/syslib/ppc4xx_sgdma.c +++ b/arch/ppc/syslib/ppc4xx_sgdma.c | |||
@@ -19,7 +19,6 @@ | |||
19 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 19 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/config.h> | ||
23 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
24 | #include <linux/mm.h> | 23 | #include <linux/mm.h> |
25 | #include <linux/init.h> | 24 | #include <linux/init.h> |
diff --git a/arch/ppc/syslib/ppc83xx_setup.c b/arch/ppc/syslib/ppc83xx_setup.c index 26afd637dc81..ec466db52114 100644 --- a/arch/ppc/syslib/ppc83xx_setup.c +++ b/arch/ppc/syslib/ppc83xx_setup.c | |||
@@ -22,7 +22,6 @@ | |||
22 | * Added PCI support -- Tony Li <tony.li@freescale.com> | 22 | * Added PCI support -- Tony Li <tony.li@freescale.com> |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <linux/types.h> | 25 | #include <linux/types.h> |
27 | #include <linux/module.h> | 26 | #include <linux/module.h> |
28 | #include <linux/init.h> | 27 | #include <linux/init.h> |
diff --git a/arch/ppc/syslib/ppc83xx_setup.h b/arch/ppc/syslib/ppc83xx_setup.h index 478b011cd963..b918a2d245ea 100644 --- a/arch/ppc/syslib/ppc83xx_setup.h +++ b/arch/ppc/syslib/ppc83xx_setup.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #ifndef __PPC_SYSLIB_PPC83XX_SETUP_H | 23 | #ifndef __PPC_SYSLIB_PPC83XX_SETUP_H |
24 | #define __PPC_SYSLIB_PPC83XX_SETUP_H | 24 | #define __PPC_SYSLIB_PPC83XX_SETUP_H |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | 27 | ||
29 | extern unsigned long mpc83xx_find_end_of_memory(void) __init; | 28 | extern unsigned long mpc83xx_find_end_of_memory(void) __init; |
diff --git a/arch/ppc/syslib/ppc85xx_common.c b/arch/ppc/syslib/ppc85xx_common.c index 0145c968f9ad..e5ac699e7316 100644 --- a/arch/ppc/syslib/ppc85xx_common.c +++ b/arch/ppc/syslib/ppc85xx_common.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/ppc/syslib/ppc85xx_common.h b/arch/ppc/syslib/ppc85xx_common.h index 182744a1321c..4fc405425113 100644 --- a/arch/ppc/syslib/ppc85xx_common.h +++ b/arch/ppc/syslib/ppc85xx_common.h | |||
@@ -14,7 +14,6 @@ | |||
14 | #ifndef __PPC_SYSLIB_PPC85XX_COMMON_H | 14 | #ifndef __PPC_SYSLIB_PPC85XX_COMMON_H |
15 | #define __PPC_SYSLIB_PPC85XX_COMMON_H | 15 | #define __PPC_SYSLIB_PPC85XX_COMMON_H |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | 18 | ||
20 | /* Provide access to ccsrbar for any modules, etc */ | 19 | /* Provide access to ccsrbar for any modules, etc */ |
diff --git a/arch/ppc/syslib/ppc85xx_rio.c b/arch/ppc/syslib/ppc85xx_rio.c index 297f3b549177..d9b471b4d695 100644 --- a/arch/ppc/syslib/ppc85xx_rio.c +++ b/arch/ppc/syslib/ppc85xx_rio.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * option) any later version. | 10 | * option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
diff --git a/arch/ppc/syslib/ppc85xx_rio.h b/arch/ppc/syslib/ppc85xx_rio.h index c0827a2c3eec..6d3ff30b1579 100644 --- a/arch/ppc/syslib/ppc85xx_rio.h +++ b/arch/ppc/syslib/ppc85xx_rio.h | |||
@@ -13,7 +13,6 @@ | |||
13 | #ifndef __PPC_SYSLIB_PPC85XX_RIO_H | 13 | #ifndef __PPC_SYSLIB_PPC85XX_RIO_H |
14 | #define __PPC_SYSLIB_PPC85XX_RIO_H | 14 | #define __PPC_SYSLIB_PPC85XX_RIO_H |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | 17 | ||
19 | extern void mpc85xx_rio_setup(int law_start, int law_size); | 18 | extern void mpc85xx_rio_setup(int law_start, int law_size); |
diff --git a/arch/ppc/syslib/ppc85xx_setup.c b/arch/ppc/syslib/ppc85xx_setup.c index 79b7089d7500..2475ec6600fe 100644 --- a/arch/ppc/syslib/ppc85xx_setup.c +++ b/arch/ppc/syslib/ppc85xx_setup.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/ppc/syslib/ppc85xx_setup.h b/arch/ppc/syslib/ppc85xx_setup.h index f55b8032d3d9..6ff79995210b 100644 --- a/arch/ppc/syslib/ppc85xx_setup.h +++ b/arch/ppc/syslib/ppc85xx_setup.h | |||
@@ -15,7 +15,6 @@ | |||
15 | #ifndef __PPC_SYSLIB_PPC85XX_SETUP_H | 15 | #ifndef __PPC_SYSLIB_PPC85XX_SETUP_H |
16 | #define __PPC_SYSLIB_PPC85XX_SETUP_H | 16 | #define __PPC_SYSLIB_PPC85XX_SETUP_H |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <asm/ppcboot.h> | 19 | #include <asm/ppcboot.h> |
21 | 20 | ||
diff --git a/arch/ppc/syslib/ppc8xx_pic.c b/arch/ppc/syslib/ppc8xx_pic.c index 3e6f51a61d46..d6c25fe25011 100644 --- a/arch/ppc/syslib/ppc8xx_pic.c +++ b/arch/ppc/syslib/ppc8xx_pic.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/stddef.h> | 2 | #include <linux/stddef.h> |
4 | #include <linux/init.h> | 3 | #include <linux/init.h> |
diff --git a/arch/ppc/syslib/ppc8xx_pic.h b/arch/ppc/syslib/ppc8xx_pic.h index 784935eac365..d7d9f651a91b 100644 --- a/arch/ppc/syslib/ppc8xx_pic.h +++ b/arch/ppc/syslib/ppc8xx_pic.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _PPC_KERNEL_PPC8xx_H | 1 | #ifndef _PPC_KERNEL_PPC8xx_H |
2 | #define _PPC_KERNEL_PPC8xx_H | 2 | #define _PPC_KERNEL_PPC8xx_H |
3 | 3 | ||
4 | #include <linux/config.h> | ||
5 | #include <linux/irq.h> | 4 | #include <linux/irq.h> |
6 | #include <linux/interrupt.h> | 5 | #include <linux/interrupt.h> |
7 | 6 | ||
diff --git a/arch/ppc/syslib/qspan_pci.c b/arch/ppc/syslib/qspan_pci.c index 0970b5d30391..85053b2816a9 100644 --- a/arch/ppc/syslib/qspan_pci.c +++ b/arch/ppc/syslib/qspan_pci.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * we have switched the chip select. | 15 | * we have switched the chip select. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/pci.h> | 19 | #include <linux/pci.h> |
21 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
diff --git a/arch/ppc/syslib/xilinx_pic.c b/arch/ppc/syslib/xilinx_pic.c index e672b600f315..39a93dc6375b 100644 --- a/arch/ppc/syslib/xilinx_pic.c +++ b/arch/ppc/syslib/xilinx_pic.c | |||
@@ -143,7 +143,7 @@ ppc4xx_pic_init(void) | |||
143 | ppc_md.get_irq = xilinx_pic_get_irq; | 143 | ppc_md.get_irq = xilinx_pic_get_irq; |
144 | 144 | ||
145 | for (i = 0; i < NR_IRQS; ++i) { | 145 | for (i = 0; i < NR_IRQS; ++i) { |
146 | irq_desc[i].handler = &xilinx_intc; | 146 | irq_desc[i].chip = &xilinx_intc; |
147 | 147 | ||
148 | if (XPAR_INTC_0_KIND_OF_INTR & (0x00000001 << i)) | 148 | if (XPAR_INTC_0_KIND_OF_INTR & (0x00000001 << i)) |
149 | irq_desc[i].status &= ~IRQ_LEVEL; | 149 | irq_desc[i].status &= ~IRQ_LEVEL; |
diff --git a/arch/ppc/xmon/privinst.h b/arch/ppc/xmon/privinst.h index 93978c027ca0..c492a35687bd 100644 --- a/arch/ppc/xmon/privinst.h +++ b/arch/ppc/xmon/privinst.h | |||
@@ -1,7 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 1996 Paul Mackerras. | 2 | * Copyright (C) 1996 Paul Mackerras. |
3 | */ | 3 | */ |
4 | #include <linux/config.h> | ||
5 | 4 | ||
6 | #define GETREG(reg) \ | 5 | #define GETREG(reg) \ |
7 | static inline int get_ ## reg (void) \ | 6 | static inline int get_ ## reg (void) \ |
diff --git a/arch/ppc/xmon/start.c b/arch/ppc/xmon/start.c index cfc2d6ad464d..f7e92986952a 100644 --- a/arch/ppc/xmon/start.c +++ b/arch/ppc/xmon/start.c | |||
@@ -1,7 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 1996 Paul Mackerras. | 2 | * Copyright (C) 1996 Paul Mackerras. |
3 | */ | 3 | */ |
4 | #include <linux/config.h> | ||
5 | #include <linux/string.h> | 4 | #include <linux/string.h> |
6 | #include <asm/machdep.h> | 5 | #include <asm/machdep.h> |
7 | #include <asm/io.h> | 6 | #include <asm/io.h> |
diff --git a/arch/ppc/xmon/xmon.c b/arch/ppc/xmon/xmon.c index 06fa44b5c647..37d234f93394 100644 --- a/arch/ppc/xmon/xmon.c +++ b/arch/ppc/xmon/xmon.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * | 3 | * |
4 | * Copyright (C) 1996 Paul Mackerras. | 4 | * Copyright (C) 1996 Paul Mackerras. |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/errno.h> | 6 | #include <linux/errno.h> |
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
9 | #include <linux/smp.h> | 8 | #include <linux/smp.h> |
diff --git a/arch/s390/appldata/appldata.h b/arch/s390/appldata/appldata.h index e806a8922bbb..71d65eb30650 100644 --- a/arch/s390/appldata/appldata.h +++ b/arch/s390/appldata/appldata.h | |||
@@ -3,9 +3,9 @@ | |||
3 | * | 3 | * |
4 | * Definitions and interface for Linux - z/VM Monitor Stream. | 4 | * Definitions and interface for Linux - z/VM Monitor Stream. |
5 | * | 5 | * |
6 | * Copyright (C) 2003 IBM Corporation, IBM Deutschland Entwicklung GmbH. | 6 | * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH. |
7 | * | 7 | * |
8 | * Author: Gerald Schaefer <geraldsc@de.ibm.com> | 8 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> |
9 | */ | 9 | */ |
10 | 10 | ||
11 | //#define APPLDATA_DEBUG /* Debug messages on/off */ | 11 | //#define APPLDATA_DEBUG /* Debug messages on/off */ |
@@ -29,6 +29,22 @@ | |||
29 | #define CTL_APPLDATA_NET_SUM 2125 | 29 | #define CTL_APPLDATA_NET_SUM 2125 |
30 | #define CTL_APPLDATA_PROC 2126 | 30 | #define CTL_APPLDATA_PROC 2126 |
31 | 31 | ||
32 | #ifndef CONFIG_64BIT | ||
33 | |||
34 | #define APPLDATA_START_INTERVAL_REC 0x00 /* Function codes for */ | ||
35 | #define APPLDATA_STOP_REC 0x01 /* DIAG 0xDC */ | ||
36 | #define APPLDATA_GEN_EVENT_RECORD 0x02 | ||
37 | #define APPLDATA_START_CONFIG_REC 0x03 | ||
38 | |||
39 | #else | ||
40 | |||
41 | #define APPLDATA_START_INTERVAL_REC 0x80 | ||
42 | #define APPLDATA_STOP_REC 0x81 | ||
43 | #define APPLDATA_GEN_EVENT_RECORD 0x82 | ||
44 | #define APPLDATA_START_CONFIG_REC 0x83 | ||
45 | |||
46 | #endif /* CONFIG_64BIT */ | ||
47 | |||
32 | #define P_INFO(x...) printk(KERN_INFO MY_PRINT_NAME " info: " x) | 48 | #define P_INFO(x...) printk(KERN_INFO MY_PRINT_NAME " info: " x) |
33 | #define P_ERROR(x...) printk(KERN_ERR MY_PRINT_NAME " error: " x) | 49 | #define P_ERROR(x...) printk(KERN_ERR MY_PRINT_NAME " error: " x) |
34 | #define P_WARNING(x...) printk(KERN_WARNING MY_PRINT_NAME " status: " x) | 50 | #define P_WARNING(x...) printk(KERN_WARNING MY_PRINT_NAME " status: " x) |
@@ -53,7 +69,11 @@ struct appldata_ops { | |||
53 | void *data; /* record data */ | 69 | void *data; /* record data */ |
54 | unsigned int size; /* size of record */ | 70 | unsigned int size; /* size of record */ |
55 | struct module *owner; /* THIS_MODULE */ | 71 | struct module *owner; /* THIS_MODULE */ |
72 | char mod_lvl[2]; /* modification level, EBCDIC */ | ||
56 | }; | 73 | }; |
57 | 74 | ||
58 | extern int appldata_register_ops(struct appldata_ops *ops); | 75 | extern int appldata_register_ops(struct appldata_ops *ops); |
59 | extern void appldata_unregister_ops(struct appldata_ops *ops); | 76 | extern void appldata_unregister_ops(struct appldata_ops *ops); |
77 | extern int appldata_diag(char record_nr, u16 function, unsigned long buffer, | ||
78 | u16 length, char *mod_lvl); | ||
79 | |||
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c index 54d35c130907..d0f82c995af6 100644 --- a/arch/s390/appldata/appldata_base.c +++ b/arch/s390/appldata/appldata_base.c | |||
@@ -5,12 +5,11 @@ | |||
5 | * Exports appldata_register_ops() and appldata_unregister_ops() for the | 5 | * Exports appldata_register_ops() and appldata_unregister_ops() for the |
6 | * data gathering modules. | 6 | * data gathering modules. |
7 | * | 7 | * |
8 | * Copyright (C) 2003 IBM Corporation, IBM Deutschland Entwicklung GmbH. | 8 | * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH. |
9 | * | 9 | * |
10 | * Author: Gerald Schaefer <geraldsc@de.ibm.com> | 10 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
@@ -40,22 +39,6 @@ | |||
40 | 39 | ||
41 | #define TOD_MICRO 0x01000 /* nr. of TOD clock units | 40 | #define TOD_MICRO 0x01000 /* nr. of TOD clock units |
42 | for 1 microsecond */ | 41 | for 1 microsecond */ |
43 | #ifndef CONFIG_64BIT | ||
44 | |||
45 | #define APPLDATA_START_INTERVAL_REC 0x00 /* Function codes for */ | ||
46 | #define APPLDATA_STOP_REC 0x01 /* DIAG 0xDC */ | ||
47 | #define APPLDATA_GEN_EVENT_RECORD 0x02 | ||
48 | #define APPLDATA_START_CONFIG_REC 0x03 | ||
49 | |||
50 | #else | ||
51 | |||
52 | #define APPLDATA_START_INTERVAL_REC 0x80 | ||
53 | #define APPLDATA_STOP_REC 0x81 | ||
54 | #define APPLDATA_GEN_EVENT_RECORD 0x82 | ||
55 | #define APPLDATA_START_CONFIG_REC 0x83 | ||
56 | |||
57 | #endif /* CONFIG_64BIT */ | ||
58 | |||
59 | 42 | ||
60 | /* | 43 | /* |
61 | * Parameter list for DIAGNOSE X'DC' | 44 | * Parameter list for DIAGNOSE X'DC' |
@@ -195,8 +178,8 @@ static void appldata_work_fn(void *data) | |||
195 | * | 178 | * |
196 | * prepare parameter list, issue DIAG 0xDC | 179 | * prepare parameter list, issue DIAG 0xDC |
197 | */ | 180 | */ |
198 | static int appldata_diag(char record_nr, u16 function, unsigned long buffer, | 181 | int appldata_diag(char record_nr, u16 function, unsigned long buffer, |
199 | u16 length) | 182 | u16 length, char *mod_lvl) |
200 | { | 183 | { |
201 | unsigned long ry; | 184 | unsigned long ry; |
202 | struct appldata_product_id { | 185 | struct appldata_product_id { |
@@ -214,7 +197,7 @@ static int appldata_diag(char record_nr, u16 function, unsigned long buffer, | |||
214 | .record_nr = record_nr, | 197 | .record_nr = record_nr, |
215 | .version_nr = {0xF2, 0xF6}, /* "26" */ | 198 | .version_nr = {0xF2, 0xF6}, /* "26" */ |
216 | .release_nr = {0xF0, 0xF1}, /* "01" */ | 199 | .release_nr = {0xF0, 0xF1}, /* "01" */ |
217 | .mod_lvl = {0xF0, 0xF0}, /* "00" */ | 200 | .mod_lvl = {mod_lvl[0], mod_lvl[1]}, |
218 | }; | 201 | }; |
219 | struct appldata_parameter_list appldata_parameter_list = { | 202 | struct appldata_parameter_list appldata_parameter_list = { |
220 | .diag = 0xDC, | 203 | .diag = 0xDC, |
@@ -467,24 +450,25 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp, | |||
467 | module_put(ops->owner); | 450 | module_put(ops->owner); |
468 | return -ENODEV; | 451 | return -ENODEV; |
469 | } | 452 | } |
470 | ops->active = 1; | ||
471 | ops->callback(ops->data); // init record | 453 | ops->callback(ops->data); // init record |
472 | rc = appldata_diag(ops->record_nr, | 454 | rc = appldata_diag(ops->record_nr, |
473 | APPLDATA_START_INTERVAL_REC, | 455 | APPLDATA_START_INTERVAL_REC, |
474 | (unsigned long) ops->data, ops->size); | 456 | (unsigned long) ops->data, ops->size, |
457 | ops->mod_lvl); | ||
475 | if (rc != 0) { | 458 | if (rc != 0) { |
476 | P_ERROR("START DIAG 0xDC for %s failed, " | 459 | P_ERROR("START DIAG 0xDC for %s failed, " |
477 | "return code: %d\n", ops->name, rc); | 460 | "return code: %d\n", ops->name, rc); |
478 | module_put(ops->owner); | 461 | module_put(ops->owner); |
479 | ops->active = 0; | ||
480 | } else { | 462 | } else { |
481 | P_INFO("Monitoring %s data enabled, " | 463 | P_INFO("Monitoring %s data enabled, " |
482 | "DIAG 0xDC started.\n", ops->name); | 464 | "DIAG 0xDC started.\n", ops->name); |
465 | ops->active = 1; | ||
483 | } | 466 | } |
484 | } else if ((buf[0] == '0') && (ops->active == 1)) { | 467 | } else if ((buf[0] == '0') && (ops->active == 1)) { |
485 | ops->active = 0; | 468 | ops->active = 0; |
486 | rc = appldata_diag(ops->record_nr, APPLDATA_STOP_REC, | 469 | rc = appldata_diag(ops->record_nr, APPLDATA_STOP_REC, |
487 | (unsigned long) ops->data, ops->size); | 470 | (unsigned long) ops->data, ops->size, |
471 | ops->mod_lvl); | ||
488 | if (rc != 0) { | 472 | if (rc != 0) { |
489 | P_ERROR("STOP DIAG 0xDC for %s failed, " | 473 | P_ERROR("STOP DIAG 0xDC for %s failed, " |
490 | "return code: %d\n", ops->name, rc); | 474 | "return code: %d\n", ops->name, rc); |
@@ -633,7 +617,7 @@ appldata_offline_cpu(int cpu) | |||
633 | spin_unlock(&appldata_timer_lock); | 617 | spin_unlock(&appldata_timer_lock); |
634 | } | 618 | } |
635 | 619 | ||
636 | static int | 620 | static int __cpuinit |
637 | appldata_cpu_notify(struct notifier_block *self, | 621 | appldata_cpu_notify(struct notifier_block *self, |
638 | unsigned long action, void *hcpu) | 622 | unsigned long action, void *hcpu) |
639 | { | 623 | { |
@@ -710,7 +694,8 @@ static void __exit appldata_exit(void) | |||
710 | list_for_each(lh, &appldata_ops_list) { | 694 | list_for_each(lh, &appldata_ops_list) { |
711 | ops = list_entry(lh, struct appldata_ops, list); | 695 | ops = list_entry(lh, struct appldata_ops, list); |
712 | rc = appldata_diag(ops->record_nr, APPLDATA_STOP_REC, | 696 | rc = appldata_diag(ops->record_nr, APPLDATA_STOP_REC, |
713 | (unsigned long) ops->data, ops->size); | 697 | (unsigned long) ops->data, ops->size, |
698 | ops->mod_lvl); | ||
714 | if (rc != 0) { | 699 | if (rc != 0) { |
715 | P_ERROR("STOP DIAG 0xDC for %s failed, " | 700 | P_ERROR("STOP DIAG 0xDC for %s failed, " |
716 | "return code: %d\n", ops->name, rc); | 701 | "return code: %d\n", ops->name, rc); |
@@ -739,6 +724,7 @@ MODULE_DESCRIPTION("Linux-VM Monitor Stream, base infrastructure"); | |||
739 | 724 | ||
740 | EXPORT_SYMBOL_GPL(appldata_register_ops); | 725 | EXPORT_SYMBOL_GPL(appldata_register_ops); |
741 | EXPORT_SYMBOL_GPL(appldata_unregister_ops); | 726 | EXPORT_SYMBOL_GPL(appldata_unregister_ops); |
727 | EXPORT_SYMBOL_GPL(appldata_diag); | ||
742 | 728 | ||
743 | #ifdef MODULE | 729 | #ifdef MODULE |
744 | /* | 730 | /* |
@@ -779,8 +765,6 @@ unsigned long nr_iowait(void) | |||
779 | #endif /* MODULE */ | 765 | #endif /* MODULE */ |
780 | EXPORT_SYMBOL_GPL(si_swapinfo); | 766 | EXPORT_SYMBOL_GPL(si_swapinfo); |
781 | EXPORT_SYMBOL_GPL(nr_threads); | 767 | EXPORT_SYMBOL_GPL(nr_threads); |
782 | EXPORT_SYMBOL_GPL(avenrun); | ||
783 | EXPORT_SYMBOL_GPL(get_full_page_state); | ||
784 | EXPORT_SYMBOL_GPL(nr_running); | 768 | EXPORT_SYMBOL_GPL(nr_running); |
785 | EXPORT_SYMBOL_GPL(nr_iowait); | 769 | EXPORT_SYMBOL_GPL(nr_iowait); |
786 | //EXPORT_SYMBOL_GPL(nr_context_switches); | 770 | //EXPORT_SYMBOL_GPL(nr_context_switches); |
diff --git a/arch/s390/appldata/appldata_mem.c b/arch/s390/appldata/appldata_mem.c index f0e2fbed3d4c..ab3b0765a64e 100644 --- a/arch/s390/appldata/appldata_mem.c +++ b/arch/s390/appldata/appldata_mem.c | |||
@@ -4,12 +4,11 @@ | |||
4 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. | 4 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. |
5 | * Collects data related to memory management. | 5 | * Collects data related to memory management. |
6 | * | 6 | * |
7 | * Copyright (C) 2003 IBM Corporation, IBM Deutschland Entwicklung GmbH. | 7 | * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH. |
8 | * | 8 | * |
9 | * Author: Gerald Schaefer <geraldsc@de.ibm.com> | 9 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/slab.h> | 14 | #include <linux/slab.h> |
@@ -107,21 +106,21 @@ static void appldata_get_mem_data(void *data) | |||
107 | * serialized through the appldata_ops_lock and can use static | 106 | * serialized through the appldata_ops_lock and can use static |
108 | */ | 107 | */ |
109 | static struct sysinfo val; | 108 | static struct sysinfo val; |
110 | static struct page_state ps; | 109 | unsigned long ev[NR_VM_EVENT_ITEMS]; |
111 | struct appldata_mem_data *mem_data; | 110 | struct appldata_mem_data *mem_data; |
112 | 111 | ||
113 | mem_data = data; | 112 | mem_data = data; |
114 | mem_data->sync_count_1++; | 113 | mem_data->sync_count_1++; |
115 | 114 | ||
116 | get_full_page_state(&ps); | 115 | all_vm_events(ev); |
117 | mem_data->pgpgin = ps.pgpgin >> 1; | 116 | mem_data->pgpgin = ev[PGPGIN] >> 1; |
118 | mem_data->pgpgout = ps.pgpgout >> 1; | 117 | mem_data->pgpgout = ev[PGPGOUT] >> 1; |
119 | mem_data->pswpin = ps.pswpin; | 118 | mem_data->pswpin = ev[PSWPIN]; |
120 | mem_data->pswpout = ps.pswpout; | 119 | mem_data->pswpout = ev[PSWPOUT]; |
121 | mem_data->pgalloc = ps.pgalloc_high + ps.pgalloc_normal + | 120 | mem_data->pgalloc = ev[PGALLOC_HIGH] + ev[PGALLOC_NORMAL] + |
122 | ps.pgalloc_dma; | 121 | ev[PGALLOC_DMA]; |
123 | mem_data->pgfault = ps.pgfault; | 122 | mem_data->pgfault = ev[PGFAULT]; |
124 | mem_data->pgmajfault = ps.pgmajfault; | 123 | mem_data->pgmajfault = ev[PGMAJFAULT]; |
125 | 124 | ||
126 | si_meminfo(&val); | 125 | si_meminfo(&val); |
127 | mem_data->sharedram = val.sharedram; | 126 | mem_data->sharedram = val.sharedram; |
@@ -130,7 +129,8 @@ static void appldata_get_mem_data(void *data) | |||
130 | mem_data->totalhigh = P2K(val.totalhigh); | 129 | mem_data->totalhigh = P2K(val.totalhigh); |
131 | mem_data->freehigh = P2K(val.freehigh); | 130 | mem_data->freehigh = P2K(val.freehigh); |
132 | mem_data->bufferram = P2K(val.bufferram); | 131 | mem_data->bufferram = P2K(val.bufferram); |
133 | mem_data->cached = P2K(atomic_read(&nr_pagecache) - val.bufferram); | 132 | mem_data->cached = P2K(global_page_state(NR_FILE_PAGES) |
133 | - val.bufferram); | ||
134 | 134 | ||
135 | si_swapinfo(&val); | 135 | si_swapinfo(&val); |
136 | mem_data->totalswap = P2K(val.totalswap); | 136 | mem_data->totalswap = P2K(val.totalswap); |
@@ -152,6 +152,7 @@ static struct appldata_ops ops = { | |||
152 | .callback = &appldata_get_mem_data, | 152 | .callback = &appldata_get_mem_data, |
153 | .data = &appldata_mem_data, | 153 | .data = &appldata_mem_data, |
154 | .owner = THIS_MODULE, | 154 | .owner = THIS_MODULE, |
155 | .mod_lvl = {0xF0, 0xF0}, /* EBCDIC "00" */ | ||
155 | }; | 156 | }; |
156 | 157 | ||
157 | 158 | ||
diff --git a/arch/s390/appldata/appldata_net_sum.c b/arch/s390/appldata/appldata_net_sum.c index 2a4c7432db4a..075e619bf37d 100644 --- a/arch/s390/appldata/appldata_net_sum.c +++ b/arch/s390/appldata/appldata_net_sum.c | |||
@@ -5,12 +5,11 @@ | |||
5 | * Collects accumulated network statistics (Packets received/transmitted, | 5 | * Collects accumulated network statistics (Packets received/transmitted, |
6 | * dropped, errors, ...). | 6 | * dropped, errors, ...). |
7 | * | 7 | * |
8 | * Copyright (C) 2003 IBM Corporation, IBM Deutschland Entwicklung GmbH. | 8 | * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH. |
9 | * | 9 | * |
10 | * Author: Gerald Schaefer <geraldsc@de.ibm.com> | 10 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
@@ -152,6 +151,7 @@ static struct appldata_ops ops = { | |||
152 | .callback = &appldata_get_net_sum_data, | 151 | .callback = &appldata_get_net_sum_data, |
153 | .data = &appldata_net_sum_data, | 152 | .data = &appldata_net_sum_data, |
154 | .owner = THIS_MODULE, | 153 | .owner = THIS_MODULE, |
154 | .mod_lvl = {0xF0, 0xF0}, /* EBCDIC "00" */ | ||
155 | }; | 155 | }; |
156 | 156 | ||
157 | 157 | ||
diff --git a/arch/s390/appldata/appldata_os.c b/arch/s390/appldata/appldata_os.c index 99ddd3bf2fba..161acc5c8a1b 100644 --- a/arch/s390/appldata/appldata_os.c +++ b/arch/s390/appldata/appldata_os.c | |||
@@ -4,12 +4,11 @@ | |||
4 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. | 4 | * Data gathering module for Linux-VM Monitor Stream, Stage 1. |
5 | * Collects misc. OS related data (CPU utilization, running processes). | 5 | * Collects misc. OS related data (CPU utilization, running processes). |
6 | * | 6 | * |
7 | * Copyright (C) 2003 IBM Corporation, IBM Deutschland Entwicklung GmbH. | 7 | * Copyright (C) 2003,2006 IBM Corporation, IBM Deutschland Entwicklung GmbH. |
8 | * | 8 | * |
9 | * Author: Gerald Schaefer <geraldsc@de.ibm.com> | 9 | * Author: Gerald Schaefer <gerald.schaefer@de.ibm.com> |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/slab.h> | 14 | #include <linux/slab.h> |
@@ -44,11 +43,14 @@ struct appldata_os_per_cpu { | |||
44 | u32 per_cpu_system; /* ... spent in kernel mode */ | 43 | u32 per_cpu_system; /* ... spent in kernel mode */ |
45 | u32 per_cpu_idle; /* ... spent in idle mode */ | 44 | u32 per_cpu_idle; /* ... spent in idle mode */ |
46 | 45 | ||
47 | // New in 2.6 --> | 46 | /* New in 2.6 */ |
48 | u32 per_cpu_irq; /* ... spent in interrupts */ | 47 | u32 per_cpu_irq; /* ... spent in interrupts */ |
49 | u32 per_cpu_softirq; /* ... spent in softirqs */ | 48 | u32 per_cpu_softirq; /* ... spent in softirqs */ |
50 | u32 per_cpu_iowait; /* ... spent while waiting for I/O */ | 49 | u32 per_cpu_iowait; /* ... spent while waiting for I/O */ |
51 | // <-- New in 2.6 | 50 | |
51 | /* New in modification level 01 */ | ||
52 | u32 per_cpu_steal; /* ... stolen by hypervisor */ | ||
53 | u32 cpu_id; /* number of this CPU */ | ||
52 | } __attribute__((packed)); | 54 | } __attribute__((packed)); |
53 | 55 | ||
54 | struct appldata_os_data { | 56 | struct appldata_os_data { |
@@ -68,10 +70,9 @@ struct appldata_os_data { | |||
68 | u32 avenrun[3]; /* average nr. of running processes during */ | 70 | u32 avenrun[3]; /* average nr. of running processes during */ |
69 | /* the last 1, 5 and 15 minutes */ | 71 | /* the last 1, 5 and 15 minutes */ |
70 | 72 | ||
71 | // New in 2.6 --> | 73 | /* New in 2.6 */ |
72 | u32 nr_iowait; /* number of blocked threads | 74 | u32 nr_iowait; /* number of blocked threads |
73 | (waiting for I/O) */ | 75 | (waiting for I/O) */ |
74 | // <-- New in 2.6 | ||
75 | 76 | ||
76 | /* per cpu data */ | 77 | /* per cpu data */ |
77 | struct appldata_os_per_cpu os_cpu[0]; | 78 | struct appldata_os_per_cpu os_cpu[0]; |
@@ -79,6 +80,14 @@ struct appldata_os_data { | |||
79 | 80 | ||
80 | static struct appldata_os_data *appldata_os_data; | 81 | static struct appldata_os_data *appldata_os_data; |
81 | 82 | ||
83 | static struct appldata_ops ops = { | ||
84 | .ctl_nr = CTL_APPLDATA_OS, | ||
85 | .name = "os", | ||
86 | .record_nr = APPLDATA_RECORD_OS_ID, | ||
87 | .owner = THIS_MODULE, | ||
88 | .mod_lvl = {0xF0, 0xF1}, /* EBCDIC "01" */ | ||
89 | }; | ||
90 | |||
82 | 91 | ||
83 | static inline void appldata_print_debug(struct appldata_os_data *os_data) | 92 | static inline void appldata_print_debug(struct appldata_os_data *os_data) |
84 | { | 93 | { |
@@ -100,15 +109,17 @@ static inline void appldata_print_debug(struct appldata_os_data *os_data) | |||
100 | P_DEBUG("nr_cpus = %u\n", os_data->nr_cpus); | 109 | P_DEBUG("nr_cpus = %u\n", os_data->nr_cpus); |
101 | for (i = 0; i < os_data->nr_cpus; i++) { | 110 | for (i = 0; i < os_data->nr_cpus; i++) { |
102 | P_DEBUG("cpu%u : user = %u, nice = %u, system = %u, " | 111 | P_DEBUG("cpu%u : user = %u, nice = %u, system = %u, " |
103 | "idle = %u, irq = %u, softirq = %u, iowait = %u\n", | 112 | "idle = %u, irq = %u, softirq = %u, iowait = %u, " |
104 | i, | 113 | "steal = %u\n", |
114 | os_data->os_cpu[i].cpu_id, | ||
105 | os_data->os_cpu[i].per_cpu_user, | 115 | os_data->os_cpu[i].per_cpu_user, |
106 | os_data->os_cpu[i].per_cpu_nice, | 116 | os_data->os_cpu[i].per_cpu_nice, |
107 | os_data->os_cpu[i].per_cpu_system, | 117 | os_data->os_cpu[i].per_cpu_system, |
108 | os_data->os_cpu[i].per_cpu_idle, | 118 | os_data->os_cpu[i].per_cpu_idle, |
109 | os_data->os_cpu[i].per_cpu_irq, | 119 | os_data->os_cpu[i].per_cpu_irq, |
110 | os_data->os_cpu[i].per_cpu_softirq, | 120 | os_data->os_cpu[i].per_cpu_softirq, |
111 | os_data->os_cpu[i].per_cpu_iowait); | 121 | os_data->os_cpu[i].per_cpu_iowait, |
122 | os_data->os_cpu[i].per_cpu_steal); | ||
112 | } | 123 | } |
113 | 124 | ||
114 | P_DEBUG("sync_count_1 = %u\n", os_data->sync_count_1); | 125 | P_DEBUG("sync_count_1 = %u\n", os_data->sync_count_1); |
@@ -123,14 +134,13 @@ static inline void appldata_print_debug(struct appldata_os_data *os_data) | |||
123 | */ | 134 | */ |
124 | static void appldata_get_os_data(void *data) | 135 | static void appldata_get_os_data(void *data) |
125 | { | 136 | { |
126 | int i, j; | 137 | int i, j, rc; |
127 | struct appldata_os_data *os_data; | 138 | struct appldata_os_data *os_data; |
139 | unsigned int new_size; | ||
128 | 140 | ||
129 | os_data = data; | 141 | os_data = data; |
130 | os_data->sync_count_1++; | 142 | os_data->sync_count_1++; |
131 | 143 | ||
132 | os_data->nr_cpus = num_online_cpus(); | ||
133 | |||
134 | os_data->nr_threads = nr_threads; | 144 | os_data->nr_threads = nr_threads; |
135 | os_data->nr_running = nr_running(); | 145 | os_data->nr_running = nr_running(); |
136 | os_data->nr_iowait = nr_iowait(); | 146 | os_data->nr_iowait = nr_iowait(); |
@@ -154,9 +164,44 @@ static void appldata_get_os_data(void *data) | |||
154 | cputime_to_jiffies(kstat_cpu(i).cpustat.softirq); | 164 | cputime_to_jiffies(kstat_cpu(i).cpustat.softirq); |
155 | os_data->os_cpu[j].per_cpu_iowait = | 165 | os_data->os_cpu[j].per_cpu_iowait = |
156 | cputime_to_jiffies(kstat_cpu(i).cpustat.iowait); | 166 | cputime_to_jiffies(kstat_cpu(i).cpustat.iowait); |
167 | os_data->os_cpu[j].per_cpu_steal = | ||
168 | cputime_to_jiffies(kstat_cpu(i).cpustat.steal); | ||
169 | os_data->os_cpu[j].cpu_id = i; | ||
157 | j++; | 170 | j++; |
158 | } | 171 | } |
159 | 172 | ||
173 | os_data->nr_cpus = j; | ||
174 | |||
175 | new_size = sizeof(struct appldata_os_data) + | ||
176 | (os_data->nr_cpus * sizeof(struct appldata_os_per_cpu)); | ||
177 | if (ops.size != new_size) { | ||
178 | if (ops.active) { | ||
179 | rc = appldata_diag(APPLDATA_RECORD_OS_ID, | ||
180 | APPLDATA_START_INTERVAL_REC, | ||
181 | (unsigned long) ops.data, new_size, | ||
182 | ops.mod_lvl); | ||
183 | if (rc != 0) { | ||
184 | P_ERROR("os: START NEW DIAG 0xDC failed, " | ||
185 | "return code: %d, new size = %i\n", rc, | ||
186 | new_size); | ||
187 | P_INFO("os: stopping old record now\n"); | ||
188 | } else | ||
189 | P_INFO("os: new record size = %i\n", new_size); | ||
190 | |||
191 | rc = appldata_diag(APPLDATA_RECORD_OS_ID, | ||
192 | APPLDATA_STOP_REC, | ||
193 | (unsigned long) ops.data, ops.size, | ||
194 | ops.mod_lvl); | ||
195 | if (rc != 0) | ||
196 | P_ERROR("os: STOP OLD DIAG 0xDC failed, " | ||
197 | "return code: %d, old size = %i\n", rc, | ||
198 | ops.size); | ||
199 | else | ||
200 | P_INFO("os: old record size = %i stopped\n", | ||
201 | ops.size); | ||
202 | } | ||
203 | ops.size = new_size; | ||
204 | } | ||
160 | os_data->timestamp = get_clock(); | 205 | os_data->timestamp = get_clock(); |
161 | os_data->sync_count_2++; | 206 | os_data->sync_count_2++; |
162 | #ifdef APPLDATA_DEBUG | 207 | #ifdef APPLDATA_DEBUG |
@@ -165,15 +210,6 @@ static void appldata_get_os_data(void *data) | |||
165 | } | 210 | } |
166 | 211 | ||
167 | 212 | ||
168 | static struct appldata_ops ops = { | ||
169 | .ctl_nr = CTL_APPLDATA_OS, | ||
170 | .name = "os", | ||
171 | .record_nr = APPLDATA_RECORD_OS_ID, | ||
172 | .callback = &appldata_get_os_data, | ||
173 | .owner = THIS_MODULE, | ||
174 | }; | ||
175 | |||
176 | |||
177 | /* | 213 | /* |
178 | * appldata_os_init() | 214 | * appldata_os_init() |
179 | * | 215 | * |
@@ -181,26 +217,25 @@ static struct appldata_ops ops = { | |||
181 | */ | 217 | */ |
182 | static int __init appldata_os_init(void) | 218 | static int __init appldata_os_init(void) |
183 | { | 219 | { |
184 | int rc, size; | 220 | int rc, max_size; |
185 | 221 | ||
186 | size = sizeof(struct appldata_os_data) + | 222 | max_size = sizeof(struct appldata_os_data) + |
187 | (NR_CPUS * sizeof(struct appldata_os_per_cpu)); | 223 | (NR_CPUS * sizeof(struct appldata_os_per_cpu)); |
188 | if (size > APPLDATA_MAX_REC_SIZE) { | 224 | if (max_size > APPLDATA_MAX_REC_SIZE) { |
189 | P_ERROR("Size of record = %i, bigger than maximum (%i)!\n", | 225 | P_ERROR("Max. size of OS record = %i, bigger than maximum " |
190 | size, APPLDATA_MAX_REC_SIZE); | 226 | "record size (%i)\n", max_size, APPLDATA_MAX_REC_SIZE); |
191 | rc = -ENOMEM; | 227 | rc = -ENOMEM; |
192 | goto out; | 228 | goto out; |
193 | } | 229 | } |
194 | P_DEBUG("sizeof(os) = %i, sizeof(os_cpu) = %lu\n", size, | 230 | P_DEBUG("max. sizeof(os) = %i, sizeof(os_cpu) = %lu\n", max_size, |
195 | sizeof(struct appldata_os_per_cpu)); | 231 | sizeof(struct appldata_os_per_cpu)); |
196 | 232 | ||
197 | appldata_os_data = kmalloc(size, GFP_DMA); | 233 | appldata_os_data = kzalloc(max_size, GFP_DMA); |
198 | if (appldata_os_data == NULL) { | 234 | if (appldata_os_data == NULL) { |
199 | P_ERROR("No memory for %s!\n", ops.name); | 235 | P_ERROR("No memory for %s!\n", ops.name); |
200 | rc = -ENOMEM; | 236 | rc = -ENOMEM; |
201 | goto out; | 237 | goto out; |
202 | } | 238 | } |
203 | memset(appldata_os_data, 0, size); | ||
204 | 239 | ||
205 | appldata_os_data->per_cpu_size = sizeof(struct appldata_os_per_cpu); | 240 | appldata_os_data->per_cpu_size = sizeof(struct appldata_os_per_cpu); |
206 | appldata_os_data->cpu_offset = offsetof(struct appldata_os_data, | 241 | appldata_os_data->cpu_offset = offsetof(struct appldata_os_data, |
@@ -208,7 +243,7 @@ static int __init appldata_os_init(void) | |||
208 | P_DEBUG("cpu offset = %u\n", appldata_os_data->cpu_offset); | 243 | P_DEBUG("cpu offset = %u\n", appldata_os_data->cpu_offset); |
209 | 244 | ||
210 | ops.data = appldata_os_data; | 245 | ops.data = appldata_os_data; |
211 | ops.size = size; | 246 | ops.callback = &appldata_get_os_data; |
212 | rc = appldata_register_ops(&ops); | 247 | rc = appldata_register_ops(&ops); |
213 | if (rc != 0) { | 248 | if (rc != 0) { |
214 | P_ERROR("Error registering ops, rc = %i\n", rc); | 249 | P_ERROR("Error registering ops, rc = %i\n", rc); |
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c index 3f7018e9dbe4..ec514fe5ccd0 100644 --- a/arch/s390/kernel/asm-offsets.c +++ b/arch/s390/kernel/asm-offsets.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * and format the required data. | 4 | * and format the required data. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
9 | 8 | ||
10 | /* Use marker if you need to separate the values later */ | 9 | /* Use marker if you need to separate the values later */ |
diff --git a/arch/s390/kernel/binfmt_elf32.c b/arch/s390/kernel/binfmt_elf32.c index 1f451c2cb071..9565a2dcfadc 100644 --- a/arch/s390/kernel/binfmt_elf32.c +++ b/arch/s390/kernel/binfmt_elf32.c | |||
@@ -135,7 +135,6 @@ static inline int dump_task_fpu(struct task_struct *tsk, elf_fpregset_t *fpregs) | |||
135 | 135 | ||
136 | #include <asm/processor.h> | 136 | #include <asm/processor.h> |
137 | #include <linux/module.h> | 137 | #include <linux/module.h> |
138 | #include <linux/config.h> | ||
139 | #include <linux/elfcore.h> | 138 | #include <linux/elfcore.h> |
140 | #include <linux/binfmts.h> | 139 | #include <linux/binfmts.h> |
141 | #include <linux/compat.h> | 140 | #include <linux/compat.h> |
@@ -177,11 +176,6 @@ struct elf_prpsinfo32 | |||
177 | 176 | ||
178 | #include <linux/highuid.h> | 177 | #include <linux/highuid.h> |
179 | 178 | ||
180 | #undef NEW_TO_OLD_UID | ||
181 | #undef NEW_TO_OLD_GID | ||
182 | #define NEW_TO_OLD_UID(uid) ((uid) > 65535) ? (u16)overflowuid : (u16)(uid) | ||
183 | #define NEW_TO_OLD_GID(gid) ((gid) > 65535) ? (u16)overflowgid : (u16)(gid) | ||
184 | |||
185 | #define elf_addr_t u32 | 179 | #define elf_addr_t u32 |
186 | /* | 180 | /* |
187 | #define init_elf_binfmt init_elf32_binfmt | 181 | #define init_elf_binfmt init_elf32_binfmt |
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index 5e14de37c17b..cabb4ff54cd7 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -16,7 +16,6 @@ | |||
16 | */ | 16 | */ |
17 | 17 | ||
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
22 | #include <linux/fs.h> | 21 | #include <linux/fs.h> |
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h index 3898f66d0b2f..1a18e29668ef 100644 --- a/arch/s390/kernel/compat_linux.h +++ b/arch/s390/kernel/compat_linux.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_S390X_S390_H | 1 | #ifndef _ASM_S390X_S390_H |
2 | #define _ASM_S390X_S390_H | 2 | #define _ASM_S390X_S390_H |
3 | 3 | ||
4 | #include <linux/config.h> | ||
5 | #include <linux/compat.h> | 4 | #include <linux/compat.h> |
6 | #include <linux/socket.h> | 5 | #include <linux/socket.h> |
7 | #include <linux/syscalls.h> | 6 | #include <linux/syscalls.h> |
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index b4c815d8ef75..d49b876a83bf 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * 1997-11-28 Modified for POSIX.1b signals by Richard Henderson | 10 | * 1997-11-28 Modified for POSIX.1b signals by Richard Henderson |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/compat.h> | 13 | #include <linux/compat.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c index 06a3fbc12536..7ba20922a535 100644 --- a/arch/s390/kernel/debug.c +++ b/arch/s390/kernel/debug.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Bugreports to: <Linux390@de.ibm.com> | 10 | * Bugreports to: <Linux390@de.ibm.com> |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/stddef.h> | 13 | #include <linux/stddef.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index b2448487854c..d8948c342caf 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | #include <linux/sys.h> | 12 | #include <linux/sys.h> |
13 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
14 | #include <linux/config.h> | ||
15 | #include <asm/cache.h> | 14 | #include <asm/cache.h> |
16 | #include <asm/lowcore.h> | 15 | #include <asm/lowcore.h> |
17 | #include <asm/errno.h> | 16 | #include <asm/errno.h> |
@@ -93,13 +92,22 @@ STACK_SIZE = 1 << STACK_SHIFT | |||
93 | l %r13,__LC_SVC_NEW_PSW+4 # load &system_call to %r13 | 92 | l %r13,__LC_SVC_NEW_PSW+4 # load &system_call to %r13 |
94 | .endm | 93 | .endm |
95 | 94 | ||
96 | .macro SAVE_ALL psworg,savearea,sync | 95 | .macro SAVE_ALL_SYNC psworg,savearea |
97 | la %r12,\psworg | 96 | la %r12,\psworg |
98 | .if \sync | ||
99 | tm \psworg+1,0x01 # test problem state bit | 97 | tm \psworg+1,0x01 # test problem state bit |
100 | bz BASED(2f) # skip stack setup save | 98 | bz BASED(2f) # skip stack setup save |
101 | l %r15,__LC_KERNEL_STACK # problem state -> load ksp | 99 | l %r15,__LC_KERNEL_STACK # problem state -> load ksp |
102 | .else | 100 | #ifdef CONFIG_CHECK_STACK |
101 | b BASED(3f) | ||
102 | 2: tml %r15,STACK_SIZE - CONFIG_STACK_GUARD | ||
103 | bz BASED(stack_overflow) | ||
104 | 3: | ||
105 | #endif | ||
106 | 2: | ||
107 | .endm | ||
108 | |||
109 | .macro SAVE_ALL_ASYNC psworg,savearea | ||
110 | la %r12,\psworg | ||
103 | tm \psworg+1,0x01 # test problem state bit | 111 | tm \psworg+1,0x01 # test problem state bit |
104 | bnz BASED(1f) # from user -> load async stack | 112 | bnz BASED(1f) # from user -> load async stack |
105 | clc \psworg+4(4),BASED(.Lcritical_end) | 113 | clc \psworg+4(4),BASED(.Lcritical_end) |
@@ -115,7 +123,6 @@ STACK_SIZE = 1 << STACK_SHIFT | |||
115 | sra %r14,STACK_SHIFT | 123 | sra %r14,STACK_SHIFT |
116 | be BASED(2f) | 124 | be BASED(2f) |
117 | 1: l %r15,__LC_ASYNC_STACK | 125 | 1: l %r15,__LC_ASYNC_STACK |
118 | .endif | ||
119 | #ifdef CONFIG_CHECK_STACK | 126 | #ifdef CONFIG_CHECK_STACK |
120 | b BASED(3f) | 127 | b BASED(3f) |
121 | 2: tml %r15,STACK_SIZE - CONFIG_STACK_GUARD | 128 | 2: tml %r15,STACK_SIZE - CONFIG_STACK_GUARD |
@@ -196,7 +203,7 @@ system_call: | |||
196 | STORE_TIMER __LC_SYNC_ENTER_TIMER | 203 | STORE_TIMER __LC_SYNC_ENTER_TIMER |
197 | sysc_saveall: | 204 | sysc_saveall: |
198 | SAVE_ALL_BASE __LC_SAVE_AREA | 205 | SAVE_ALL_BASE __LC_SAVE_AREA |
199 | SAVE_ALL __LC_SVC_OLD_PSW,__LC_SAVE_AREA,1 | 206 | SAVE_ALL_SYNC __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
200 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA | 207 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
201 | lh %r7,0x8a # get svc number from lowcore | 208 | lh %r7,0x8a # get svc number from lowcore |
202 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 209 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
@@ -221,8 +228,9 @@ sysc_do_svc: | |||
221 | sysc_nr_ok: | 228 | sysc_nr_ok: |
222 | mvc SP_ARGS(4,%r15),SP_R7(%r15) | 229 | mvc SP_ARGS(4,%r15),SP_R7(%r15) |
223 | sysc_do_restart: | 230 | sysc_do_restart: |
231 | l %r8,BASED(.Lsysc_table) | ||
224 | tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT) | 232 | tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT) |
225 | l %r8,sys_call_table-system_call(%r7,%r13) # get system call addr. | 233 | l %r8,0(%r7,%r8) # get system call addr. |
226 | bnz BASED(sysc_tracesys) | 234 | bnz BASED(sysc_tracesys) |
227 | basr %r14,%r8 # call sys_xxxx | 235 | basr %r14,%r8 # call sys_xxxx |
228 | st %r2,SP_R2(%r15) # store return value (change R2 on stack) | 236 | st %r2,SP_R2(%r15) # store return value (change R2 on stack) |
@@ -323,9 +331,10 @@ sysc_tracesys: | |||
323 | basr %r14,%r1 | 331 | basr %r14,%r1 |
324 | clc SP_R2(4,%r15),BASED(.Lnr_syscalls) | 332 | clc SP_R2(4,%r15),BASED(.Lnr_syscalls) |
325 | bnl BASED(sysc_tracenogo) | 333 | bnl BASED(sysc_tracenogo) |
334 | l %r8,BASED(.Lsysc_table) | ||
326 | l %r7,SP_R2(%r15) # strace might have changed the | 335 | l %r7,SP_R2(%r15) # strace might have changed the |
327 | sll %r7,2 # system call | 336 | sll %r7,2 # system call |
328 | l %r8,sys_call_table-system_call(%r7,%r13) | 337 | l %r8,0(%r7,%r8) |
329 | sysc_tracego: | 338 | sysc_tracego: |
330 | lm %r3,%r6,SP_R3(%r15) | 339 | lm %r3,%r6,SP_R3(%r15) |
331 | l %r2,SP_ORIG_R2(%r15) | 340 | l %r2,SP_ORIG_R2(%r15) |
@@ -425,7 +434,7 @@ pgm_check_handler: | |||
425 | SAVE_ALL_BASE __LC_SAVE_AREA | 434 | SAVE_ALL_BASE __LC_SAVE_AREA |
426 | tm __LC_PGM_INT_CODE+1,0x80 # check whether we got a per exception | 435 | tm __LC_PGM_INT_CODE+1,0x80 # check whether we got a per exception |
427 | bnz BASED(pgm_per) # got per exception -> special case | 436 | bnz BASED(pgm_per) # got per exception -> special case |
428 | SAVE_ALL __LC_PGM_OLD_PSW,__LC_SAVE_AREA,1 | 437 | SAVE_ALL_SYNC __LC_PGM_OLD_PSW,__LC_SAVE_AREA |
429 | CREATE_STACK_FRAME __LC_PGM_OLD_PSW,__LC_SAVE_AREA | 438 | CREATE_STACK_FRAME __LC_PGM_OLD_PSW,__LC_SAVE_AREA |
430 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 439 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
431 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 440 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -464,7 +473,7 @@ pgm_per: | |||
464 | # Normal per exception | 473 | # Normal per exception |
465 | # | 474 | # |
466 | pgm_per_std: | 475 | pgm_per_std: |
467 | SAVE_ALL __LC_PGM_OLD_PSW,__LC_SAVE_AREA,1 | 476 | SAVE_ALL_SYNC __LC_PGM_OLD_PSW,__LC_SAVE_AREA |
468 | CREATE_STACK_FRAME __LC_PGM_OLD_PSW,__LC_SAVE_AREA | 477 | CREATE_STACK_FRAME __LC_PGM_OLD_PSW,__LC_SAVE_AREA |
469 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 478 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
470 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 479 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -490,7 +499,7 @@ pgm_no_vtime2: | |||
490 | # it was a single stepped SVC that is causing all the trouble | 499 | # it was a single stepped SVC that is causing all the trouble |
491 | # | 500 | # |
492 | pgm_svcper: | 501 | pgm_svcper: |
493 | SAVE_ALL __LC_SVC_OLD_PSW,__LC_SAVE_AREA,1 | 502 | SAVE_ALL_SYNC __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
494 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA | 503 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
495 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 504 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
496 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 505 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -519,7 +528,7 @@ io_int_handler: | |||
519 | STORE_TIMER __LC_ASYNC_ENTER_TIMER | 528 | STORE_TIMER __LC_ASYNC_ENTER_TIMER |
520 | stck __LC_INT_CLOCK | 529 | stck __LC_INT_CLOCK |
521 | SAVE_ALL_BASE __LC_SAVE_AREA+16 | 530 | SAVE_ALL_BASE __LC_SAVE_AREA+16 |
522 | SAVE_ALL __LC_IO_OLD_PSW,__LC_SAVE_AREA+16,0 | 531 | SAVE_ALL_ASYNC __LC_IO_OLD_PSW,__LC_SAVE_AREA+16 |
523 | CREATE_STACK_FRAME __LC_IO_OLD_PSW,__LC_SAVE_AREA+16 | 532 | CREATE_STACK_FRAME __LC_IO_OLD_PSW,__LC_SAVE_AREA+16 |
524 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 533 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
525 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 534 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -631,7 +640,7 @@ ext_int_handler: | |||
631 | STORE_TIMER __LC_ASYNC_ENTER_TIMER | 640 | STORE_TIMER __LC_ASYNC_ENTER_TIMER |
632 | stck __LC_INT_CLOCK | 641 | stck __LC_INT_CLOCK |
633 | SAVE_ALL_BASE __LC_SAVE_AREA+16 | 642 | SAVE_ALL_BASE __LC_SAVE_AREA+16 |
634 | SAVE_ALL __LC_EXT_OLD_PSW,__LC_SAVE_AREA+16,0 | 643 | SAVE_ALL_ASYNC __LC_EXT_OLD_PSW,__LC_SAVE_AREA+16 |
635 | CREATE_STACK_FRAME __LC_EXT_OLD_PSW,__LC_SAVE_AREA+16 | 644 | CREATE_STACK_FRAME __LC_EXT_OLD_PSW,__LC_SAVE_AREA+16 |
636 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 645 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
637 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 646 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -657,21 +666,31 @@ __critical_end: | |||
657 | .globl mcck_int_handler | 666 | .globl mcck_int_handler |
658 | mcck_int_handler: | 667 | mcck_int_handler: |
659 | spt __LC_CPU_TIMER_SAVE_AREA # revalidate cpu timer | 668 | spt __LC_CPU_TIMER_SAVE_AREA # revalidate cpu timer |
660 | mvc __LC_ASYNC_ENTER_TIMER(8),__LC_CPU_TIMER_SAVE_AREA | ||
661 | lm %r0,%r15,__LC_GPREGS_SAVE_AREA # revalidate gprs | 669 | lm %r0,%r15,__LC_GPREGS_SAVE_AREA # revalidate gprs |
662 | SAVE_ALL_BASE __LC_SAVE_AREA+32 | 670 | SAVE_ALL_BASE __LC_SAVE_AREA+32 |
663 | la %r12,__LC_MCK_OLD_PSW | 671 | la %r12,__LC_MCK_OLD_PSW |
664 | tm __LC_MCCK_CODE,0x80 # system damage? | 672 | tm __LC_MCCK_CODE,0x80 # system damage? |
665 | bo BASED(mcck_int_main) # yes -> rest of mcck code invalid | 673 | bo BASED(mcck_int_main) # yes -> rest of mcck code invalid |
666 | tm __LC_MCCK_CODE+5,0x02 # stored cpu timer value valid? | ||
667 | bo BASED(0f) | ||
668 | spt __LC_LAST_UPDATE_TIMER # revalidate cpu timer | ||
669 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 674 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
670 | mvc __LC_ASYNC_ENTER_TIMER(8),__LC_LAST_UPDATE_TIMER | 675 | mvc __LC_SAVE_AREA+52(8),__LC_ASYNC_ENTER_TIMER |
671 | mvc __LC_SYNC_ENTER_TIMER(8),__LC_LAST_UPDATE_TIMER | 676 | mvc __LC_ASYNC_ENTER_TIMER(8),__LC_CPU_TIMER_SAVE_AREA |
672 | mvc __LC_EXIT_TIMER(8),__LC_LAST_UPDATE_TIMER | 677 | tm __LC_MCCK_CODE+5,0x02 # stored cpu timer value valid? |
678 | bo BASED(1f) | ||
679 | la %r14,__LC_SYNC_ENTER_TIMER | ||
680 | clc 0(8,%r14),__LC_ASYNC_ENTER_TIMER | ||
681 | bl BASED(0f) | ||
682 | la %r14,__LC_ASYNC_ENTER_TIMER | ||
683 | 0: clc 0(8,%r14),__LC_EXIT_TIMER | ||
684 | bl BASED(0f) | ||
685 | la %r14,__LC_EXIT_TIMER | ||
686 | 0: clc 0(8,%r14),__LC_LAST_UPDATE_TIMER | ||
687 | bl BASED(0f) | ||
688 | la %r14,__LC_LAST_UPDATE_TIMER | ||
689 | 0: spt 0(%r14) | ||
690 | mvc __LC_ASYNC_ENTER_TIMER(8),0(%r14) | ||
691 | 1: | ||
673 | #endif | 692 | #endif |
674 | 0: tm __LC_MCCK_CODE+2,0x09 # mwp + ia of old psw valid? | 693 | tm __LC_MCCK_CODE+2,0x09 # mwp + ia of old psw valid? |
675 | bno BASED(mcck_int_main) # no -> skip cleanup critical | 694 | bno BASED(mcck_int_main) # no -> skip cleanup critical |
676 | tm __LC_MCK_OLD_PSW+1,0x01 # test problem state bit | 695 | tm __LC_MCK_OLD_PSW+1,0x01 # test problem state bit |
677 | bnz BASED(mcck_int_main) # from user -> load async stack | 696 | bnz BASED(mcck_int_main) # from user -> load async stack |
@@ -691,7 +710,7 @@ mcck_int_main: | |||
691 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 710 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
692 | tm __LC_MCCK_CODE+2,0x08 # mwp of old psw valid? | 711 | tm __LC_MCCK_CODE+2,0x08 # mwp of old psw valid? |
693 | bno BASED(mcck_no_vtime) # no -> skip cleanup critical | 712 | bno BASED(mcck_no_vtime) # no -> skip cleanup critical |
694 | tm __LC_MCK_OLD_PSW+1,0x01 # interrupting from user ? | 713 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
695 | bz BASED(mcck_no_vtime) | 714 | bz BASED(mcck_no_vtime) |
696 | UPDATE_VTIME __LC_EXIT_TIMER,__LC_ASYNC_ENTER_TIMER,__LC_USER_TIMER | 715 | UPDATE_VTIME __LC_EXIT_TIMER,__LC_ASYNC_ENTER_TIMER,__LC_USER_TIMER |
697 | UPDATE_VTIME __LC_LAST_UPDATE_TIMER,__LC_EXIT_TIMER,__LC_SYSTEM_TIMER | 716 | UPDATE_VTIME __LC_LAST_UPDATE_TIMER,__LC_EXIT_TIMER,__LC_SYSTEM_TIMER |
@@ -715,6 +734,20 @@ mcck_no_vtime: | |||
715 | l %r1,BASED(.Ls390_handle_mcck) | 734 | l %r1,BASED(.Ls390_handle_mcck) |
716 | basr %r14,%r1 # call machine check handler | 735 | basr %r14,%r1 # call machine check handler |
717 | mcck_return: | 736 | mcck_return: |
737 | mvc __LC_RETURN_MCCK_PSW(8),SP_PSW(%r15) # move return PSW | ||
738 | ni __LC_RETURN_MCCK_PSW+1,0xfd # clear wait state bit | ||
739 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | ||
740 | mvc __LC_ASYNC_ENTER_TIMER(8),__LC_SAVE_AREA+52 | ||
741 | tm __LC_RETURN_MCCK_PSW+1,0x01 # returning to user ? | ||
742 | bno BASED(0f) | ||
743 | lm %r0,%r15,SP_R0(%r15) # load gprs 0-15 | ||
744 | stpt __LC_EXIT_TIMER | ||
745 | lpsw __LC_RETURN_MCCK_PSW # back to caller | ||
746 | 0: | ||
747 | #endif | ||
748 | lm %r0,%r15,SP_R0(%r15) # load gprs 0-15 | ||
749 | lpsw __LC_RETURN_MCCK_PSW # back to caller | ||
750 | |||
718 | RESTORE_ALL __LC_RETURN_MCCK_PSW,0 | 751 | RESTORE_ALL __LC_RETURN_MCCK_PSW,0 |
719 | 752 | ||
720 | #ifdef CONFIG_SMP | 753 | #ifdef CONFIG_SMP |
@@ -781,6 +814,8 @@ cleanup_table_sysc_leave: | |||
781 | .long sysc_leave + 0x80000000, sysc_work_loop + 0x80000000 | 814 | .long sysc_leave + 0x80000000, sysc_work_loop + 0x80000000 |
782 | cleanup_table_sysc_work_loop: | 815 | cleanup_table_sysc_work_loop: |
783 | .long sysc_work_loop + 0x80000000, sysc_reschedule + 0x80000000 | 816 | .long sysc_work_loop + 0x80000000, sysc_reschedule + 0x80000000 |
817 | cleanup_table_io_return: | ||
818 | .long io_return + 0x80000000, io_leave + 0x80000000 | ||
784 | cleanup_table_io_leave: | 819 | cleanup_table_io_leave: |
785 | .long io_leave + 0x80000000, io_done + 0x80000000 | 820 | .long io_leave + 0x80000000, io_done + 0x80000000 |
786 | cleanup_table_io_work_loop: | 821 | cleanup_table_io_work_loop: |
@@ -807,6 +842,11 @@ cleanup_critical: | |||
807 | clc 4(4,%r12),BASED(cleanup_table_sysc_work_loop+4) | 842 | clc 4(4,%r12),BASED(cleanup_table_sysc_work_loop+4) |
808 | bl BASED(cleanup_sysc_return) | 843 | bl BASED(cleanup_sysc_return) |
809 | 0: | 844 | 0: |
845 | clc 4(4,%r12),BASED(cleanup_table_io_return) | ||
846 | bl BASED(0f) | ||
847 | clc 4(4,%r12),BASED(cleanup_table_io_return+4) | ||
848 | bl BASED(cleanup_io_return) | ||
849 | 0: | ||
810 | clc 4(4,%r12),BASED(cleanup_table_io_leave) | 850 | clc 4(4,%r12),BASED(cleanup_table_io_leave) |
811 | bl BASED(0f) | 851 | bl BASED(0f) |
812 | clc 4(4,%r12),BASED(cleanup_table_io_leave+4) | 852 | clc 4(4,%r12),BASED(cleanup_table_io_leave+4) |
@@ -839,7 +879,7 @@ cleanup_system_call: | |||
839 | mvc __LC_SAVE_AREA(16),0(%r12) | 879 | mvc __LC_SAVE_AREA(16),0(%r12) |
840 | 0: st %r13,4(%r12) | 880 | 0: st %r13,4(%r12) |
841 | st %r12,__LC_SAVE_AREA+48 # argh | 881 | st %r12,__LC_SAVE_AREA+48 # argh |
842 | SAVE_ALL __LC_SVC_OLD_PSW,__LC_SAVE_AREA,1 | 882 | SAVE_ALL_SYNC __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
843 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA | 883 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
844 | l %r12,__LC_SAVE_AREA+48 # argh | 884 | l %r12,__LC_SAVE_AREA+48 # argh |
845 | st %r15,12(%r12) | 885 | st %r15,12(%r12) |
@@ -971,6 +1011,7 @@ cleanup_io_leave_insn: | |||
971 | .Ltrace: .long syscall_trace | 1011 | .Ltrace: .long syscall_trace |
972 | .Lvfork: .long sys_vfork | 1012 | .Lvfork: .long sys_vfork |
973 | .Lschedtail: .long schedule_tail | 1013 | .Lschedtail: .long schedule_tail |
1014 | .Lsysc_table: .long sys_call_table | ||
974 | 1015 | ||
975 | .Lcritical_start: | 1016 | .Lcritical_start: |
976 | .long __critical_start + 0x80000000 | 1017 | .long __critical_start + 0x80000000 |
@@ -979,9 +1020,8 @@ cleanup_io_leave_insn: | |||
979 | .Lcleanup_critical: | 1020 | .Lcleanup_critical: |
980 | .long cleanup_critical | 1021 | .long cleanup_critical |
981 | 1022 | ||
1023 | .section .rodata, "a" | ||
982 | #define SYSCALL(esa,esame,emu) .long esa | 1024 | #define SYSCALL(esa,esame,emu) .long esa |
983 | .globl sys_call_table | ||
984 | sys_call_table: | 1025 | sys_call_table: |
985 | #include "syscalls.S" | 1026 | #include "syscalls.S" |
986 | #undef SYSCALL | 1027 | #undef SYSCALL |
987 | |||
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 2ac095bc0e25..1ca499fa54b4 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | #include <linux/sys.h> | 12 | #include <linux/sys.h> |
13 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
14 | #include <linux/config.h> | ||
15 | #include <asm/cache.h> | 14 | #include <asm/cache.h> |
16 | #include <asm/lowcore.h> | 15 | #include <asm/lowcore.h> |
17 | #include <asm/errno.h> | 16 | #include <asm/errno.h> |
@@ -87,13 +86,22 @@ _TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK | _TIF_NEED_RESCHED | \ | |||
87 | larl %r13,system_call | 86 | larl %r13,system_call |
88 | .endm | 87 | .endm |
89 | 88 | ||
90 | .macro SAVE_ALL psworg,savearea,sync | 89 | .macro SAVE_ALL_SYNC psworg,savearea |
91 | la %r12,\psworg | 90 | la %r12,\psworg |
92 | .if \sync | ||
93 | tm \psworg+1,0x01 # test problem state bit | 91 | tm \psworg+1,0x01 # test problem state bit |
94 | jz 2f # skip stack setup save | 92 | jz 2f # skip stack setup save |
95 | lg %r15,__LC_KERNEL_STACK # problem state -> load ksp | 93 | lg %r15,__LC_KERNEL_STACK # problem state -> load ksp |
96 | .else | 94 | #ifdef CONFIG_CHECK_STACK |
95 | j 3f | ||
96 | 2: tml %r15,STACK_SIZE - CONFIG_STACK_GUARD | ||
97 | jz stack_overflow | ||
98 | 3: | ||
99 | #endif | ||
100 | 2: | ||
101 | .endm | ||
102 | |||
103 | .macro SAVE_ALL_ASYNC psworg,savearea | ||
104 | la %r12,\psworg | ||
97 | tm \psworg+1,0x01 # test problem state bit | 105 | tm \psworg+1,0x01 # test problem state bit |
98 | jnz 1f # from user -> load kernel stack | 106 | jnz 1f # from user -> load kernel stack |
99 | clc \psworg+8(8),BASED(.Lcritical_end) | 107 | clc \psworg+8(8),BASED(.Lcritical_end) |
@@ -108,7 +116,6 @@ _TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK | _TIF_NEED_RESCHED | \ | |||
108 | srag %r14,%r14,STACK_SHIFT | 116 | srag %r14,%r14,STACK_SHIFT |
109 | jz 2f | 117 | jz 2f |
110 | 1: lg %r15,__LC_ASYNC_STACK # load async stack | 118 | 1: lg %r15,__LC_ASYNC_STACK # load async stack |
111 | .endif | ||
112 | #ifdef CONFIG_CHECK_STACK | 119 | #ifdef CONFIG_CHECK_STACK |
113 | j 3f | 120 | j 3f |
114 | 2: tml %r15,STACK_SIZE - CONFIG_STACK_GUARD | 121 | 2: tml %r15,STACK_SIZE - CONFIG_STACK_GUARD |
@@ -187,7 +194,7 @@ system_call: | |||
187 | STORE_TIMER __LC_SYNC_ENTER_TIMER | 194 | STORE_TIMER __LC_SYNC_ENTER_TIMER |
188 | sysc_saveall: | 195 | sysc_saveall: |
189 | SAVE_ALL_BASE __LC_SAVE_AREA | 196 | SAVE_ALL_BASE __LC_SAVE_AREA |
190 | SAVE_ALL __LC_SVC_OLD_PSW,__LC_SAVE_AREA,1 | 197 | SAVE_ALL_SYNC __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
191 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA | 198 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
192 | llgh %r7,__LC_SVC_INT_CODE # get svc number from lowcore | 199 | llgh %r7,__LC_SVC_INT_CODE # get svc number from lowcore |
193 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 200 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
@@ -446,7 +453,7 @@ pgm_check_handler: | |||
446 | SAVE_ALL_BASE __LC_SAVE_AREA | 453 | SAVE_ALL_BASE __LC_SAVE_AREA |
447 | tm __LC_PGM_INT_CODE+1,0x80 # check whether we got a per exception | 454 | tm __LC_PGM_INT_CODE+1,0x80 # check whether we got a per exception |
448 | jnz pgm_per # got per exception -> special case | 455 | jnz pgm_per # got per exception -> special case |
449 | SAVE_ALL __LC_PGM_OLD_PSW,__LC_SAVE_AREA,1 | 456 | SAVE_ALL_SYNC __LC_PGM_OLD_PSW,__LC_SAVE_AREA |
450 | CREATE_STACK_FRAME __LC_PGM_OLD_PSW,__LC_SAVE_AREA | 457 | CREATE_STACK_FRAME __LC_PGM_OLD_PSW,__LC_SAVE_AREA |
451 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 458 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
452 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 459 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -485,7 +492,7 @@ pgm_per: | |||
485 | # Normal per exception | 492 | # Normal per exception |
486 | # | 493 | # |
487 | pgm_per_std: | 494 | pgm_per_std: |
488 | SAVE_ALL __LC_PGM_OLD_PSW,__LC_SAVE_AREA,1 | 495 | SAVE_ALL_SYNC __LC_PGM_OLD_PSW,__LC_SAVE_AREA |
489 | CREATE_STACK_FRAME __LC_PGM_OLD_PSW,__LC_SAVE_AREA | 496 | CREATE_STACK_FRAME __LC_PGM_OLD_PSW,__LC_SAVE_AREA |
490 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 497 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
491 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 498 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -511,7 +518,7 @@ pgm_no_vtime2: | |||
511 | # it was a single stepped SVC that is causing all the trouble | 518 | # it was a single stepped SVC that is causing all the trouble |
512 | # | 519 | # |
513 | pgm_svcper: | 520 | pgm_svcper: |
514 | SAVE_ALL __LC_SVC_OLD_PSW,__LC_SAVE_AREA,1 | 521 | SAVE_ALL_SYNC __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
515 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA | 522 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
516 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 523 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
517 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 524 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -539,7 +546,7 @@ io_int_handler: | |||
539 | STORE_TIMER __LC_ASYNC_ENTER_TIMER | 546 | STORE_TIMER __LC_ASYNC_ENTER_TIMER |
540 | stck __LC_INT_CLOCK | 547 | stck __LC_INT_CLOCK |
541 | SAVE_ALL_BASE __LC_SAVE_AREA+32 | 548 | SAVE_ALL_BASE __LC_SAVE_AREA+32 |
542 | SAVE_ALL __LC_IO_OLD_PSW,__LC_SAVE_AREA+32,0 | 549 | SAVE_ALL_ASYNC __LC_IO_OLD_PSW,__LC_SAVE_AREA+32 |
543 | CREATE_STACK_FRAME __LC_IO_OLD_PSW,__LC_SAVE_AREA+32 | 550 | CREATE_STACK_FRAME __LC_IO_OLD_PSW,__LC_SAVE_AREA+32 |
544 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 551 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
545 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 552 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -647,7 +654,7 @@ ext_int_handler: | |||
647 | STORE_TIMER __LC_ASYNC_ENTER_TIMER | 654 | STORE_TIMER __LC_ASYNC_ENTER_TIMER |
648 | stck __LC_INT_CLOCK | 655 | stck __LC_INT_CLOCK |
649 | SAVE_ALL_BASE __LC_SAVE_AREA+32 | 656 | SAVE_ALL_BASE __LC_SAVE_AREA+32 |
650 | SAVE_ALL __LC_EXT_OLD_PSW,__LC_SAVE_AREA+32,0 | 657 | SAVE_ALL_ASYNC __LC_EXT_OLD_PSW,__LC_SAVE_AREA+32 |
651 | CREATE_STACK_FRAME __LC_EXT_OLD_PSW,__LC_SAVE_AREA+32 | 658 | CREATE_STACK_FRAME __LC_EXT_OLD_PSW,__LC_SAVE_AREA+32 |
652 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 659 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
653 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? | 660 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
@@ -672,21 +679,32 @@ __critical_end: | |||
672 | mcck_int_handler: | 679 | mcck_int_handler: |
673 | la %r1,4095 # revalidate r1 | 680 | la %r1,4095 # revalidate r1 |
674 | spt __LC_CPU_TIMER_SAVE_AREA-4095(%r1) # revalidate cpu timer | 681 | spt __LC_CPU_TIMER_SAVE_AREA-4095(%r1) # revalidate cpu timer |
675 | mvc __LC_ASYNC_ENTER_TIMER(8),__LC_CPU_TIMER_SAVE_AREA-4095(%r1) | ||
676 | lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)# revalidate gprs | 682 | lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)# revalidate gprs |
677 | SAVE_ALL_BASE __LC_SAVE_AREA+64 | 683 | SAVE_ALL_BASE __LC_SAVE_AREA+64 |
678 | la %r12,__LC_MCK_OLD_PSW | 684 | la %r12,__LC_MCK_OLD_PSW |
679 | tm __LC_MCCK_CODE,0x80 # system damage? | 685 | tm __LC_MCCK_CODE,0x80 # system damage? |
680 | jo mcck_int_main # yes -> rest of mcck code invalid | 686 | jo mcck_int_main # yes -> rest of mcck code invalid |
681 | tm __LC_MCCK_CODE+5,0x02 # stored cpu timer value valid? | ||
682 | jo 0f | ||
683 | spt __LC_LAST_UPDATE_TIMER | ||
684 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 687 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
685 | mvc __LC_ASYNC_ENTER_TIMER(8),__LC_LAST_UPDATE_TIMER | 688 | la %r14,4095 |
686 | mvc __LC_SYNC_ENTER_TIMER(8),__LC_LAST_UPDATE_TIMER | 689 | mvc __LC_SAVE_AREA+104(8),__LC_ASYNC_ENTER_TIMER |
687 | mvc __LC_EXIT_TIMER(8),__LC_LAST_UPDATE_TIMER | 690 | mvc __LC_ASYNC_ENTER_TIMER(8),__LC_CPU_TIMER_SAVE_AREA-4095(%r14) |
691 | tm __LC_MCCK_CODE+5,0x02 # stored cpu timer value valid? | ||
692 | jo 1f | ||
693 | la %r14,__LC_SYNC_ENTER_TIMER | ||
694 | clc 0(8,%r14),__LC_ASYNC_ENTER_TIMER | ||
695 | jl 0f | ||
696 | la %r14,__LC_ASYNC_ENTER_TIMER | ||
697 | 0: clc 0(8,%r14),__LC_EXIT_TIMER | ||
698 | jl 0f | ||
699 | la %r14,__LC_EXIT_TIMER | ||
700 | 0: clc 0(8,%r14),__LC_LAST_UPDATE_TIMER | ||
701 | jl 0f | ||
702 | la %r14,__LC_LAST_UPDATE_TIMER | ||
703 | 0: spt 0(%r14) | ||
704 | mvc __LC_ASYNC_ENTER_TIMER(8),0(%r14) | ||
705 | 1: | ||
688 | #endif | 706 | #endif |
689 | 0: tm __LC_MCCK_CODE+2,0x09 # mwp + ia of old psw valid? | 707 | tm __LC_MCCK_CODE+2,0x09 # mwp + ia of old psw valid? |
690 | jno mcck_int_main # no -> skip cleanup critical | 708 | jno mcck_int_main # no -> skip cleanup critical |
691 | tm __LC_MCK_OLD_PSW+1,0x01 # test problem state bit | 709 | tm __LC_MCK_OLD_PSW+1,0x01 # test problem state bit |
692 | jnz mcck_int_main # from user -> load kernel stack | 710 | jnz mcck_int_main # from user -> load kernel stack |
@@ -705,7 +723,7 @@ mcck_int_main: | |||
705 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | 723 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING |
706 | tm __LC_MCCK_CODE+2,0x08 # mwp of old psw valid? | 724 | tm __LC_MCCK_CODE+2,0x08 # mwp of old psw valid? |
707 | jno mcck_no_vtime # no -> no timer update | 725 | jno mcck_no_vtime # no -> no timer update |
708 | tm __LC_MCK_OLD_PSW+1,0x01 # interrupting from user ? | 726 | tm SP_PSW+1(%r15),0x01 # interrupting from user ? |
709 | jz mcck_no_vtime | 727 | jz mcck_no_vtime |
710 | UPDATE_VTIME __LC_EXIT_TIMER,__LC_ASYNC_ENTER_TIMER,__LC_USER_TIMER | 728 | UPDATE_VTIME __LC_EXIT_TIMER,__LC_ASYNC_ENTER_TIMER,__LC_USER_TIMER |
711 | UPDATE_VTIME __LC_LAST_UPDATE_TIMER,__LC_EXIT_TIMER,__LC_SYSTEM_TIMER | 729 | UPDATE_VTIME __LC_LAST_UPDATE_TIMER,__LC_EXIT_TIMER,__LC_SYSTEM_TIMER |
@@ -727,7 +745,17 @@ mcck_no_vtime: | |||
727 | jno mcck_return | 745 | jno mcck_return |
728 | brasl %r14,s390_handle_mcck | 746 | brasl %r14,s390_handle_mcck |
729 | mcck_return: | 747 | mcck_return: |
730 | RESTORE_ALL __LC_RETURN_MCCK_PSW,0 | 748 | mvc __LC_RETURN_MCCK_PSW(16),SP_PSW(%r15) # move return PSW |
749 | ni __LC_RETURN_MCCK_PSW+1,0xfd # clear wait state bit | ||
750 | lmg %r0,%r15,SP_R0(%r15) # load gprs 0-15 | ||
751 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | ||
752 | mvc __LC_ASYNC_ENTER_TIMER(8),__LC_SAVE_AREA+104 | ||
753 | tm __LC_RETURN_MCCK_PSW+1,0x01 # returning to user ? | ||
754 | jno 0f | ||
755 | stpt __LC_EXIT_TIMER | ||
756 | 0: | ||
757 | #endif | ||
758 | lpswe __LC_RETURN_MCCK_PSW # back to caller | ||
731 | 759 | ||
732 | #ifdef CONFIG_SMP | 760 | #ifdef CONFIG_SMP |
733 | /* | 761 | /* |
@@ -789,6 +817,8 @@ cleanup_table_sysc_leave: | |||
789 | .quad sysc_leave, sysc_work_loop | 817 | .quad sysc_leave, sysc_work_loop |
790 | cleanup_table_sysc_work_loop: | 818 | cleanup_table_sysc_work_loop: |
791 | .quad sysc_work_loop, sysc_reschedule | 819 | .quad sysc_work_loop, sysc_reschedule |
820 | cleanup_table_io_return: | ||
821 | .quad io_return, io_leave | ||
792 | cleanup_table_io_leave: | 822 | cleanup_table_io_leave: |
793 | .quad io_leave, io_done | 823 | .quad io_leave, io_done |
794 | cleanup_table_io_work_loop: | 824 | cleanup_table_io_work_loop: |
@@ -815,6 +845,11 @@ cleanup_critical: | |||
815 | clc 8(8,%r12),BASED(cleanup_table_sysc_work_loop+8) | 845 | clc 8(8,%r12),BASED(cleanup_table_sysc_work_loop+8) |
816 | jl cleanup_sysc_return | 846 | jl cleanup_sysc_return |
817 | 0: | 847 | 0: |
848 | clc 8(8,%r12),BASED(cleanup_table_io_return) | ||
849 | jl 0f | ||
850 | clc 8(8,%r12),BASED(cleanup_table_io_return+8) | ||
851 | jl cleanup_io_return | ||
852 | 0: | ||
818 | clc 8(8,%r12),BASED(cleanup_table_io_leave) | 853 | clc 8(8,%r12),BASED(cleanup_table_io_leave) |
819 | jl 0f | 854 | jl 0f |
820 | clc 8(8,%r12),BASED(cleanup_table_io_leave+8) | 855 | clc 8(8,%r12),BASED(cleanup_table_io_leave+8) |
@@ -847,7 +882,7 @@ cleanup_system_call: | |||
847 | mvc __LC_SAVE_AREA(32),0(%r12) | 882 | mvc __LC_SAVE_AREA(32),0(%r12) |
848 | 0: stg %r13,8(%r12) | 883 | 0: stg %r13,8(%r12) |
849 | stg %r12,__LC_SAVE_AREA+96 # argh | 884 | stg %r12,__LC_SAVE_AREA+96 # argh |
850 | SAVE_ALL __LC_SVC_OLD_PSW,__LC_SAVE_AREA,1 | 885 | SAVE_ALL_SYNC __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
851 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA | 886 | CREATE_STACK_FRAME __LC_SVC_OLD_PSW,__LC_SAVE_AREA |
852 | lg %r12,__LC_SAVE_AREA+96 # argh | 887 | lg %r12,__LC_SAVE_AREA+96 # argh |
853 | stg %r15,24(%r12) | 888 | stg %r15,24(%r12) |
@@ -956,8 +991,8 @@ cleanup_io_leave_insn: | |||
956 | .Lcritical_end: | 991 | .Lcritical_end: |
957 | .quad __critical_end | 992 | .quad __critical_end |
958 | 993 | ||
994 | .section .rodata, "a" | ||
959 | #define SYSCALL(esa,esame,emu) .long esame | 995 | #define SYSCALL(esa,esame,emu) .long esame |
960 | .globl sys_call_table | ||
961 | sys_call_table: | 996 | sys_call_table: |
962 | #include "syscalls.S" | 997 | #include "syscalls.S" |
963 | #undef SYSCALL | 998 | #undef SYSCALL |
@@ -965,7 +1000,6 @@ sys_call_table: | |||
965 | #ifdef CONFIG_COMPAT | 1000 | #ifdef CONFIG_COMPAT |
966 | 1001 | ||
967 | #define SYSCALL(esa,esame,emu) .long emu | 1002 | #define SYSCALL(esa,esame,emu) .long emu |
968 | .globl sys_call_table_emu | ||
969 | sys_call_table_emu: | 1003 | sys_call_table_emu: |
970 | #include "syscalls.S" | 1004 | #include "syscalls.S" |
971 | #undef SYSCALL | 1005 | #undef SYSCALL |
diff --git a/arch/s390/kernel/head.S b/arch/s390/kernel/head.S index ea88d066bf04..adad8863ee2f 100644 --- a/arch/s390/kernel/head.S +++ b/arch/s390/kernel/head.S | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/head.S | 2 | * arch/s390/kernel/head.S |
3 | * | 3 | * |
4 | * (C) Copyright IBM Corp. 1999, 2005 | 4 | * Copyright (C) IBM Corp. 1999,2006 |
5 | * | 5 | * |
6 | * Author(s): Hartmut Penner <hp@de.ibm.com> | 6 | * Author(s): Hartmut Penner <hp@de.ibm.com> |
7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
@@ -23,7 +23,6 @@ | |||
23 | * | 23 | * |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/config.h> | ||
27 | #include <asm/setup.h> | 26 | #include <asm/setup.h> |
28 | #include <asm/lowcore.h> | 27 | #include <asm/lowcore.h> |
29 | #include <asm/asm-offsets.h> | 28 | #include <asm/asm-offsets.h> |
@@ -482,24 +481,23 @@ start: | |||
482 | 481 | ||
483 | .macro GET_IPL_DEVICE | 482 | .macro GET_IPL_DEVICE |
484 | .Lget_ipl_device: | 483 | .Lget_ipl_device: |
485 | basr %r12,0 | 484 | l %r1,0xb8 # get sid |
486 | .LGID: l %r1,0xb8 # get sid | ||
487 | sll %r1,15 # test if subchannel is enabled | 485 | sll %r1,15 # test if subchannel is enabled |
488 | srl %r1,31 | 486 | srl %r1,31 |
489 | ltr %r1,%r1 | 487 | ltr %r1,%r1 |
490 | bz 0(%r14) # subchannel disabled | 488 | bz 2f-.LPG1(%r13) # subchannel disabled |
491 | l %r1,0xb8 | 489 | l %r1,0xb8 |
492 | la %r5,.Lipl_schib-.LGID(%r12) | 490 | la %r5,.Lipl_schib-.LPG1(%r13) |
493 | stsch 0(%r5) # get schib of subchannel | 491 | stsch 0(%r5) # get schib of subchannel |
494 | bnz 0(%r14) # schib not available | 492 | bnz 2f-.LPG1(%r13) # schib not available |
495 | tm 5(%r5),0x01 # devno valid? | 493 | tm 5(%r5),0x01 # devno valid? |
496 | bno 0(%r14) | 494 | bno 2f-.LPG1(%r13) |
497 | la %r6,ipl_parameter_flags-.LGID(%r12) | 495 | la %r6,ipl_parameter_flags-.LPG1(%r13) |
498 | oi 3(%r6),0x01 # set flag | 496 | oi 3(%r6),0x01 # set flag |
499 | la %r2,ipl_devno-.LGID(%r12) | 497 | la %r2,ipl_devno-.LPG1(%r13) |
500 | mvc 0(2,%r2),6(%r5) # store devno | 498 | mvc 0(2,%r2),6(%r5) # store devno |
501 | tm 4(%r5),0x80 # qdio capable device? | 499 | tm 4(%r5),0x80 # qdio capable device? |
502 | bno 0(%r14) | 500 | bno 2f-.LPG1(%r13) |
503 | oi 3(%r6),0x02 # set flag | 501 | oi 3(%r6),0x02 # set flag |
504 | 502 | ||
505 | # copy ipl parameters | 503 | # copy ipl parameters |
@@ -523,7 +521,7 @@ start: | |||
523 | ar %r2,%r1 | 521 | ar %r2,%r1 |
524 | sr %r0,%r4 | 522 | sr %r0,%r4 |
525 | jne 1b | 523 | jne 1b |
526 | b 0(%r14) | 524 | b 2f-.LPG1(%r13) |
527 | 525 | ||
528 | .align 4 | 526 | .align 4 |
529 | .Lipl_schib: | 527 | .Lipl_schib: |
@@ -537,6 +535,7 @@ ipl_parameter_flags: | |||
537 | .globl ipl_devno | 535 | .globl ipl_devno |
538 | ipl_devno: | 536 | ipl_devno: |
539 | .word 0 | 537 | .word 0 |
538 | 2: | ||
540 | .endm | 539 | .endm |
541 | 540 | ||
542 | #ifdef CONFIG_64BIT | 541 | #ifdef CONFIG_64BIT |
diff --git a/arch/s390/kernel/head31.S b/arch/s390/kernel/head31.S index 2d3b089bfb83..d00de17b3778 100644 --- a/arch/s390/kernel/head31.S +++ b/arch/s390/kernel/head31.S | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/head31.S | 2 | * arch/s390/kernel/head31.S |
3 | * | 3 | * |
4 | * (C) Copyright IBM Corp. 2005 | 4 | * Copyright (C) IBM Corp. 2005,2006 |
5 | * | 5 | * |
6 | * Author(s): Hartmut Penner <hp@de.ibm.com> | 6 | * Author(s): Hartmut Penner <hp@de.ibm.com> |
7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
@@ -16,12 +16,31 @@ | |||
16 | # or linload or SALIPL | 16 | # or linload or SALIPL |
17 | # | 17 | # |
18 | .org 0x10000 | 18 | .org 0x10000 |
19 | startup:basr %r13,0 # get base | 19 | startup:basr %r13,0 # get base |
20 | .LPG1: l %r1, .Lget_ipl_device_addr-.LPG1(%r13) | 20 | .LPG0: l %r13,0f-.LPG0(%r13) |
21 | basr %r14, %r1 | 21 | b 0(%r13) |
22 | 0: .long startup_continue | ||
23 | |||
24 | # | ||
25 | # params at 10400 (setup.h) | ||
26 | # | ||
27 | .org PARMAREA | ||
28 | .long 0,0 # IPL_DEVICE | ||
29 | .long 0,RAMDISK_ORIGIN # INITRD_START | ||
30 | .long 0,RAMDISK_SIZE # INITRD_SIZE | ||
31 | |||
32 | .org COMMAND_LINE | ||
33 | .byte "root=/dev/ram0 ro" | ||
34 | .byte 0 | ||
35 | |||
36 | .org 0x11000 | ||
37 | |||
38 | startup_continue: | ||
39 | basr %r13,0 # get base | ||
40 | .LPG1: GET_IPL_DEVICE | ||
22 | lctl %c0,%c15,.Lctl-.LPG1(%r13) # load control registers | 41 | lctl %c0,%c15,.Lctl-.LPG1(%r13) # load control registers |
23 | la %r12,_pstart-.LPG1(%r13) # pointer to parameter area | 42 | l %r12,.Lparmaddr-.LPG1(%r13) # pointer to parameter area |
24 | # move IPL device to lowcore | 43 | # move IPL device to lowcore |
25 | mvc __LC_IPLDEV(4),IPL_DEVICE-PARMAREA(%r12) | 44 | mvc __LC_IPLDEV(4),IPL_DEVICE-PARMAREA(%r12) |
26 | 45 | ||
27 | # | 46 | # |
@@ -51,8 +70,8 @@ startup:basr %r13,0 # get base | |||
51 | a %r1,__LC_EXT_NEW_PSW+4 # set handler | 70 | a %r1,__LC_EXT_NEW_PSW+4 # set handler |
52 | st %r1,__LC_EXT_NEW_PSW+4 | 71 | st %r1,__LC_EXT_NEW_PSW+4 |
53 | 72 | ||
54 | la %r4,_pstart-.LPG1(%r13) # %r4 is our index for sccb stuff | 73 | l %r4,.Lsccbaddr-.LPG1(%r13) # %r4 is our index for sccb stuff |
55 | la %r1, .Lsccb-PARMAREA(%r4) # our sccb | 74 | lr %r1,%r4 # our sccb |
56 | .insn rre,0xb2200000,%r2,%r1 # service call | 75 | .insn rre,0xb2200000,%r2,%r1 # service call |
57 | ipm %r1 | 76 | ipm %r1 |
58 | srl %r1,28 # get cc code | 77 | srl %r1,28 # get cc code |
@@ -63,7 +82,7 @@ startup:basr %r13,0 # get base | |||
63 | be .Lservicecall-.LPG1(%r13) | 82 | be .Lservicecall-.LPG1(%r13) |
64 | lpsw .Lwaitsclp-.LPG1(%r13) | 83 | lpsw .Lwaitsclp-.LPG1(%r13) |
65 | .Lsclph: | 84 | .Lsclph: |
66 | lh %r1,.Lsccbr-PARMAREA(%r4) | 85 | lh %r1,.Lsccbr-.Lsccb(%r4) |
67 | chi %r1,0x10 # 0x0010 is the sucess code | 86 | chi %r1,0x10 # 0x0010 is the sucess code |
68 | je .Lprocsccb # let's process the sccb | 87 | je .Lprocsccb # let's process the sccb |
69 | chi %r1,0x1f0 | 88 | chi %r1,0x1f0 |
@@ -74,7 +93,7 @@ startup:basr %r13,0 # get base | |||
74 | b .Lservicecall-.LPG1(%r13) | 93 | b .Lservicecall-.LPG1(%r13) |
75 | .Lprocsccb: | 94 | .Lprocsccb: |
76 | lhi %r1,0 | 95 | lhi %r1,0 |
77 | icm %r1,3,.Lscpincr1-PARMAREA(%r4) # use this one if != 0 | 96 | icm %r1,3,.Lscpincr1-.Lsccb(%r4) # use this one if != 0 |
78 | jnz .Lscnd | 97 | jnz .Lscnd |
79 | lhi %r1,0x800 # otherwise report 2GB | 98 | lhi %r1,0x800 # otherwise report 2GB |
80 | .Lscnd: | 99 | .Lscnd: |
@@ -84,10 +103,10 @@ startup:basr %r13,0 # get base | |||
84 | lr %r1,%r3 | 103 | lr %r1,%r3 |
85 | .Lno2gb: | 104 | .Lno2gb: |
86 | xr %r3,%r3 # same logic | 105 | xr %r3,%r3 # same logic |
87 | ic %r3,.Lscpa1-PARMAREA(%r4) | 106 | ic %r3,.Lscpa1-.Lsccb(%r4) |
88 | chi %r3,0x00 | 107 | chi %r3,0x00 |
89 | jne .Lcompmem | 108 | jne .Lcompmem |
90 | l %r3,.Lscpa2-PARMAREA(%r13) | 109 | l %r3,.Lscpa2-.Lsccb(%r4) |
91 | .Lcompmem: | 110 | .Lcompmem: |
92 | mr %r2,%r1 # mem in MB on 128-bit | 111 | mr %r2,%r1 # mem in MB on 128-bit |
93 | l %r1,.Lonemb-.LPG1(%r13) | 112 | l %r1,.Lonemb-.LPG1(%r13) |
@@ -95,8 +114,6 @@ startup:basr %r13,0 # get base | |||
95 | b .Lfchunk-.LPG1(%r13) | 114 | b .Lfchunk-.LPG1(%r13) |
96 | 115 | ||
97 | .align 4 | 116 | .align 4 |
98 | .Lget_ipl_device_addr: | ||
99 | .long .Lget_ipl_device | ||
100 | .Lpmask: | 117 | .Lpmask: |
101 | .byte 0 | 118 | .byte 0 |
102 | .align 8 | 119 | .align 8 |
@@ -242,6 +259,8 @@ startup:basr %r13,0 # get base | |||
242 | .long 0 # cr13: home space segment table | 259 | .long 0 # cr13: home space segment table |
243 | .long 0xc0000000 # cr14: machine check handling off | 260 | .long 0xc0000000 # cr14: machine check handling off |
244 | .long 0 # cr15: linkage stack operations | 261 | .long 0 # cr15: linkage stack operations |
262 | .Lduct: .long 0,0,0,0,0,0,0,0 | ||
263 | .long 0,0,0,0,0,0,0,0 | ||
245 | .Lpcmem:.long 0x00080000,0x80000000 + .Lchkmem | 264 | .Lpcmem:.long 0x00080000,0x80000000 + .Lchkmem |
246 | .Lpcfpu:.long 0x00080000,0x80000000 + .Lchkfpu | 265 | .Lpcfpu:.long 0x00080000,0x80000000 + .Lchkfpu |
247 | .Lpccsp:.long 0x00080000,0x80000000 + .Lchkcsp | 266 | .Lpccsp:.long 0x00080000,0x80000000 + .Lchkcsp |
@@ -252,25 +271,9 @@ startup:basr %r13,0 # get base | |||
252 | .Lmflags:.long machine_flags | 271 | .Lmflags:.long machine_flags |
253 | .Lbss_bgn: .long __bss_start | 272 | .Lbss_bgn: .long __bss_start |
254 | .Lbss_end: .long _end | 273 | .Lbss_end: .long _end |
255 | 274 | .Lparmaddr: .long PARMAREA | |
256 | .org PARMAREA-64 | 275 | .Lsccbaddr: .long .Lsccb |
257 | .Lduct: .long 0,0,0,0,0,0,0,0 | 276 | .align 4096 |
258 | .long 0,0,0,0,0,0,0,0 | ||
259 | |||
260 | # | ||
261 | # params at 10400 (setup.h) | ||
262 | # | ||
263 | .org PARMAREA | ||
264 | .global _pstart | ||
265 | _pstart: | ||
266 | .long 0,0 # IPL_DEVICE | ||
267 | .long 0,RAMDISK_ORIGIN # INITRD_START | ||
268 | .long 0,RAMDISK_SIZE # INITRD_SIZE | ||
269 | |||
270 | .org COMMAND_LINE | ||
271 | .byte "root=/dev/ram0 ro" | ||
272 | .byte 0 | ||
273 | .org 0x11000 | ||
274 | .Lsccb: | 277 | .Lsccb: |
275 | .hword 0x1000 # length, one page | 278 | .hword 0x1000 # length, one page |
276 | .byte 0x00,0x00,0x00 | 279 | .byte 0x00,0x00,0x00 |
@@ -287,18 +290,14 @@ _pstart: | |||
287 | .Lscpincr2: | 290 | .Lscpincr2: |
288 | .quad 0x00 | 291 | .quad 0x00 |
289 | .fill 3984,1,0 | 292 | .fill 3984,1,0 |
290 | .org 0x12000 | 293 | .align 4096 |
291 | .global _pend | ||
292 | _pend: | ||
293 | |||
294 | GET_IPL_DEVICE | ||
295 | 294 | ||
296 | #ifdef CONFIG_SHARED_KERNEL | 295 | #ifdef CONFIG_SHARED_KERNEL |
297 | .org 0x100000 | 296 | .org 0x100000 |
298 | #endif | 297 | #endif |
299 | 298 | ||
300 | # | 299 | # |
301 | # startup-code, running in virtual mode | 300 | # startup-code, running in absolute addressing mode |
302 | # | 301 | # |
303 | .globl _stext | 302 | .globl _stext |
304 | _stext: basr %r13,0 # get base | 303 | _stext: basr %r13,0 # get base |
diff --git a/arch/s390/kernel/head64.S b/arch/s390/kernel/head64.S index f08c06f45d5c..47744fcca930 100644 --- a/arch/s390/kernel/head64.S +++ b/arch/s390/kernel/head64.S | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/s390/kernel/head64.S | 2 | * arch/s390/kernel/head64.S |
3 | * | 3 | * |
4 | * (C) Copyright IBM Corp. 1999,2005 | 4 | * Copyright (C) IBM Corp. 1999,2006 |
5 | * | 5 | * |
6 | * Author(s): Hartmut Penner <hp@de.ibm.com> | 6 | * Author(s): Hartmut Penner <hp@de.ibm.com> |
7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> | 7 | * Martin Schwidefsky <schwidefsky@de.ibm.com> |
@@ -15,18 +15,37 @@ | |||
15 | # this is called either by the ipl loader or directly by PSW restart | 15 | # this is called either by the ipl loader or directly by PSW restart |
16 | # or linload or SALIPL | 16 | # or linload or SALIPL |
17 | # | 17 | # |
18 | .org 0x10000 | 18 | .org 0x10000 |
19 | startup:basr %r13,0 # get base | 19 | startup:basr %r13,0 # get base |
20 | .LPG0: l %r13,0f-.LPG0(%r13) | ||
21 | b 0(%r13) | ||
22 | 0: .long startup_continue | ||
23 | |||
24 | # | ||
25 | # params at 10400 (setup.h) | ||
26 | # | ||
27 | .org PARMAREA | ||
28 | .quad 0 # IPL_DEVICE | ||
29 | .quad RAMDISK_ORIGIN # INITRD_START | ||
30 | .quad RAMDISK_SIZE # INITRD_SIZE | ||
31 | |||
32 | .org COMMAND_LINE | ||
33 | .byte "root=/dev/ram0 ro" | ||
34 | .byte 0 | ||
35 | |||
36 | .org 0x11000 | ||
37 | |||
38 | startup_continue: | ||
39 | basr %r13,0 # get base | ||
20 | .LPG1: sll %r13,1 # remove high order bit | 40 | .LPG1: sll %r13,1 # remove high order bit |
21 | srl %r13,1 | 41 | srl %r13,1 |
22 | l %r1,.Lget_ipl_device_addr-.LPG1(%r13) | 42 | GET_IPL_DEVICE |
23 | basr %r14,%r1 | ||
24 | lhi %r1,1 # mode 1 = esame | 43 | lhi %r1,1 # mode 1 = esame |
25 | slr %r0,%r0 # set cpuid to zero | 44 | slr %r0,%r0 # set cpuid to zero |
26 | sigp %r1,%r0,0x12 # switch to esame mode | 45 | sigp %r1,%r0,0x12 # switch to esame mode |
27 | sam64 # switch to 64 bit mode | 46 | sam64 # switch to 64 bit mode |
28 | lctlg %c0,%c15,.Lctl-.LPG1(%r13) # load control registers | 47 | lctlg %c0,%c15,.Lctl-.LPG1(%r13) # load control registers |
29 | larl %r12,_pstart # pointer to parameter area | 48 | lg %r12,.Lparmaddr-.LPG1(%r13)# pointer to parameter area |
30 | # move IPL device to lowcore | 49 | # move IPL device to lowcore |
31 | mvc __LC_IPLDEV(4),IPL_DEVICE+4-PARMAREA(%r12) | 50 | mvc __LC_IPLDEV(4),IPL_DEVICE+4-PARMAREA(%r12) |
32 | 51 | ||
@@ -55,8 +74,8 @@ startup:basr %r13,0 # get base | |||
55 | larl %r1,.Lsclph | 74 | larl %r1,.Lsclph |
56 | stg %r1,__LC_EXT_NEW_PSW+8 # set handler | 75 | stg %r1,__LC_EXT_NEW_PSW+8 # set handler |
57 | 76 | ||
58 | larl %r4,_pstart # %r4 is our index for sccb stuff | 77 | larl %r4,.Lsccb # %r4 is our index for sccb stuff |
59 | la %r1,.Lsccb-PARMAREA(%r4) # our sccb | 78 | lgr %r1,%r4 # our sccb |
60 | .insn rre,0xb2200000,%r2,%r1 # service call | 79 | .insn rre,0xb2200000,%r2,%r1 # service call |
61 | ipm %r1 | 80 | ipm %r1 |
62 | srl %r1,28 # get cc code | 81 | srl %r1,28 # get cc code |
@@ -67,7 +86,7 @@ startup:basr %r13,0 # get base | |||
67 | be .Lservicecall-.LPG1(%r13) | 86 | be .Lservicecall-.LPG1(%r13) |
68 | lpswe .Lwaitsclp-.LPG1(%r13) | 87 | lpswe .Lwaitsclp-.LPG1(%r13) |
69 | .Lsclph: | 88 | .Lsclph: |
70 | lh %r1,.Lsccbr-PARMAREA(%r4) | 89 | lh %r1,.Lsccbr-.Lsccb(%r4) |
71 | chi %r1,0x10 # 0x0010 is the sucess code | 90 | chi %r1,0x10 # 0x0010 is the sucess code |
72 | je .Lprocsccb # let's process the sccb | 91 | je .Lprocsccb # let's process the sccb |
73 | chi %r1,0x1f0 | 92 | chi %r1,0x1f0 |
@@ -78,15 +97,15 @@ startup:basr %r13,0 # get base | |||
78 | b .Lservicecall-.LPG1(%r13) | 97 | b .Lservicecall-.LPG1(%r13) |
79 | .Lprocsccb: | 98 | .Lprocsccb: |
80 | lghi %r1,0 | 99 | lghi %r1,0 |
81 | icm %r1,3,.Lscpincr1-PARMAREA(%r4) # use this one if != 0 | 100 | icm %r1,3,.Lscpincr1-.Lsccb(%r4) # use this one if != 0 |
82 | jnz .Lscnd | 101 | jnz .Lscnd |
83 | lg %r1,.Lscpincr2-PARMAREA(%r4) # otherwise use this one | 102 | lg %r1,.Lscpincr2-.Lsccb(%r4) # otherwise use this one |
84 | .Lscnd: | 103 | .Lscnd: |
85 | xr %r3,%r3 # same logic | 104 | xr %r3,%r3 # same logic |
86 | ic %r3,.Lscpa1-PARMAREA(%r4) | 105 | ic %r3,.Lscpa1-.Lsccb(%r4) |
87 | chi %r3,0x00 | 106 | chi %r3,0x00 |
88 | jne .Lcompmem | 107 | jne .Lcompmem |
89 | l %r3,.Lscpa2-PARMAREA(%r13) | 108 | l %r3,.Lscpa2-.Lsccb(%r4) |
90 | .Lcompmem: | 109 | .Lcompmem: |
91 | mlgr %r2,%r1 # mem in MB on 128-bit | 110 | mlgr %r2,%r1 # mem in MB on 128-bit |
92 | l %r1,.Lonemb-.LPG1(%r13) | 111 | l %r1,.Lonemb-.LPG1(%r13) |
@@ -94,8 +113,6 @@ startup:basr %r13,0 # get base | |||
94 | b .Lfchunk-.LPG1(%r13) | 113 | b .Lfchunk-.LPG1(%r13) |
95 | 114 | ||
96 | .align 4 | 115 | .align 4 |
97 | .Lget_ipl_device_addr: | ||
98 | .long .Lget_ipl_device | ||
99 | .Lpmask: | 116 | .Lpmask: |
100 | .byte 0 | 117 | .byte 0 |
101 | .align 8 | 118 | .align 8 |
@@ -242,29 +259,16 @@ startup:basr %r13,0 # get base | |||
242 | .quad 0 # cr13: home space segment table | 259 | .quad 0 # cr13: home space segment table |
243 | .quad 0xc0000000 # cr14: machine check handling off | 260 | .quad 0xc0000000 # cr14: machine check handling off |
244 | .quad 0 # cr15: linkage stack operations | 261 | .quad 0 # cr15: linkage stack operations |
262 | .Lduct: .long 0,0,0,0,0,0,0,0 | ||
263 | .long 0,0,0,0,0,0,0,0 | ||
245 | .Lpcmsk:.quad 0x0000000180000000 | 264 | .Lpcmsk:.quad 0x0000000180000000 |
246 | .L4malign:.quad 0xffffffffffc00000 | 265 | .L4malign:.quad 0xffffffffffc00000 |
247 | .Lscan2g:.quad 0x80000000 + 0x20000 - 8 # 2GB + 128K - 8 | 266 | .Lscan2g:.quad 0x80000000 + 0x20000 - 8 # 2GB + 128K - 8 |
248 | .Lnop: .long 0x07000700 | 267 | .Lnop: .long 0x07000700 |
268 | .Lparmaddr: | ||
269 | .quad PARMAREA | ||
249 | 270 | ||
250 | .org PARMAREA-64 | 271 | .align 4096 |
251 | .Lduct: .long 0,0,0,0,0,0,0,0 | ||
252 | .long 0,0,0,0,0,0,0,0 | ||
253 | |||
254 | # | ||
255 | # params at 10400 (setup.h) | ||
256 | # | ||
257 | .org PARMAREA | ||
258 | .global _pstart | ||
259 | _pstart: | ||
260 | .quad 0 # IPL_DEVICE | ||
261 | .quad RAMDISK_ORIGIN # INITRD_START | ||
262 | .quad RAMDISK_SIZE # INITRD_SIZE | ||
263 | |||
264 | .org COMMAND_LINE | ||
265 | .byte "root=/dev/ram0 ro" | ||
266 | .byte 0 | ||
267 | .org 0x11000 | ||
268 | .Lsccb: | 272 | .Lsccb: |
269 | .hword 0x1000 # length, one page | 273 | .hword 0x1000 # length, one page |
270 | .byte 0x00,0x00,0x00 | 274 | .byte 0x00,0x00,0x00 |
@@ -281,18 +285,14 @@ _pstart: | |||
281 | .Lscpincr2: | 285 | .Lscpincr2: |
282 | .quad 0x00 | 286 | .quad 0x00 |
283 | .fill 3984,1,0 | 287 | .fill 3984,1,0 |
284 | .org 0x12000 | 288 | .align 4096 |
285 | .global _pend | ||
286 | _pend: | ||
287 | |||
288 | GET_IPL_DEVICE | ||
289 | 289 | ||
290 | #ifdef CONFIG_SHARED_KERNEL | 290 | #ifdef CONFIG_SHARED_KERNEL |
291 | .org 0x100000 | 291 | .org 0x100000 |
292 | #endif | 292 | #endif |
293 | 293 | ||
294 | # | 294 | # |
295 | # startup-code, running in virtual mode | 295 | # startup-code, running in absolute addressing mode |
296 | # | 296 | # |
297 | .globl _stext | 297 | .globl _stext |
298 | _stext: basr %r13,0 # get base | 298 | _stext: basr %r13,0 # get base |
@@ -326,4 +326,3 @@ _stext: basr %r13,0 # get base | |||
326 | .align 8 | 326 | .align 8 |
327 | .Ldw: .quad 0x0002000180000000,0x0000000000000000 | 327 | .Ldw: .quad 0x0002000180000000,0x0000000000000000 |
328 | .Laregs: .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 | 328 | .Laregs: .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
329 | |||
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 4a0f5a1551ea..1f9399191794 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * This file handles the architecture-dependent parts of process handling.. | 15 | * This file handles the architecture-dependent parts of process handling.. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/compiler.h> | 18 | #include <linux/compiler.h> |
20 | #include <linux/cpu.h> | 19 | #include <linux/cpu.h> |
21 | #include <linux/errno.h> | 20 | #include <linux/errno.h> |
diff --git a/arch/s390/kernel/s390_ksyms.c b/arch/s390/kernel/s390_ksyms.c index 4176c77670c4..c73a45467fa4 100644 --- a/arch/s390/kernel/s390_ksyms.c +++ b/arch/s390/kernel/s390_ksyms.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * | 3 | * |
4 | * S390 version | 4 | * S390 version |
5 | */ | 5 | */ |
6 | #include <linux/config.h> | ||
7 | #include <linux/highuid.h> | 6 | #include <linux/highuid.h> |
8 | #include <linux/module.h> | 7 | #include <linux/module.h> |
9 | #include <linux/mm.h> | 8 | #include <linux/mm.h> |
@@ -46,8 +45,6 @@ EXPORT_SYMBOL(__down_interruptible); | |||
46 | */ | 45 | */ |
47 | extern int dump_fpu (struct pt_regs * regs, s390_fp_regs *fpregs); | 46 | extern int dump_fpu (struct pt_regs * regs, s390_fp_regs *fpregs); |
48 | EXPORT_SYMBOL(dump_fpu); | 47 | EXPORT_SYMBOL(dump_fpu); |
49 | EXPORT_SYMBOL(overflowuid); | ||
50 | EXPORT_SYMBOL(overflowgid); | ||
51 | EXPORT_SYMBOL(empty_zero_page); | 48 | EXPORT_SYMBOL(empty_zero_page); |
52 | 49 | ||
53 | /* | 50 | /* |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index b282034452a4..1ca34f54ea8a 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/tty.h> | 28 | #include <linux/tty.h> |
29 | #include <linux/ioport.h> | 29 | #include <linux/ioport.h> |
30 | #include <linux/delay.h> | 30 | #include <linux/delay.h> |
31 | #include <linux/config.h> | ||
32 | #include <linux/init.h> | 31 | #include <linux/init.h> |
33 | #include <linux/initrd.h> | 32 | #include <linux/initrd.h> |
34 | #include <linux/bootmem.h> | 33 | #include <linux/bootmem.h> |
@@ -37,6 +36,7 @@ | |||
37 | #include <linux/seq_file.h> | 36 | #include <linux/seq_file.h> |
38 | #include <linux/kernel_stat.h> | 37 | #include <linux/kernel_stat.h> |
39 | #include <linux/device.h> | 38 | #include <linux/device.h> |
39 | #include <linux/notifier.h> | ||
40 | 40 | ||
41 | #include <asm/uaccess.h> | 41 | #include <asm/uaccess.h> |
42 | #include <asm/system.h> | 42 | #include <asm/system.h> |
@@ -115,6 +115,7 @@ void __devinit cpu_init (void) | |||
115 | */ | 115 | */ |
116 | char vmhalt_cmd[128] = ""; | 116 | char vmhalt_cmd[128] = ""; |
117 | char vmpoff_cmd[128] = ""; | 117 | char vmpoff_cmd[128] = ""; |
118 | char vmpanic_cmd[128] = ""; | ||
118 | 119 | ||
119 | static inline void strncpy_skip_quote(char *dst, char *src, int n) | 120 | static inline void strncpy_skip_quote(char *dst, char *src, int n) |
120 | { | 121 | { |
@@ -146,6 +147,38 @@ static int __init vmpoff_setup(char *str) | |||
146 | 147 | ||
147 | __setup("vmpoff=", vmpoff_setup); | 148 | __setup("vmpoff=", vmpoff_setup); |
148 | 149 | ||
150 | static int vmpanic_notify(struct notifier_block *self, unsigned long event, | ||
151 | void *data) | ||
152 | { | ||
153 | if (MACHINE_IS_VM && strlen(vmpanic_cmd) > 0) | ||
154 | cpcmd(vmpanic_cmd, NULL, 0, NULL); | ||
155 | |||
156 | return NOTIFY_OK; | ||
157 | } | ||
158 | |||
159 | #define PANIC_PRI_VMPANIC 0 | ||
160 | |||
161 | static struct notifier_block vmpanic_nb = { | ||
162 | .notifier_call = vmpanic_notify, | ||
163 | .priority = PANIC_PRI_VMPANIC | ||
164 | }; | ||
165 | |||
166 | static int __init vmpanic_setup(char *str) | ||
167 | { | ||
168 | static int register_done __initdata = 0; | ||
169 | |||
170 | strncpy_skip_quote(vmpanic_cmd, str, 127); | ||
171 | vmpanic_cmd[127] = 0; | ||
172 | if (!register_done) { | ||
173 | register_done = 1; | ||
174 | atomic_notifier_chain_register(&panic_notifier_list, | ||
175 | &vmpanic_nb); | ||
176 | } | ||
177 | return 1; | ||
178 | } | ||
179 | |||
180 | __setup("vmpanic=", vmpanic_setup); | ||
181 | |||
149 | /* | 182 | /* |
150 | * condev= and conmode= setup parameter. | 183 | * condev= and conmode= setup parameter. |
151 | */ | 184 | */ |
@@ -289,19 +322,34 @@ void (*_machine_power_off)(void) = do_machine_power_off_nonsmp; | |||
289 | 322 | ||
290 | void machine_restart(char *command) | 323 | void machine_restart(char *command) |
291 | { | 324 | { |
292 | console_unblank(); | 325 | if (!in_interrupt() || oops_in_progress) |
326 | /* | ||
327 | * Only unblank the console if we are called in enabled | ||
328 | * context or a bust_spinlocks cleared the way for us. | ||
329 | */ | ||
330 | console_unblank(); | ||
293 | _machine_restart(command); | 331 | _machine_restart(command); |
294 | } | 332 | } |
295 | 333 | ||
296 | void machine_halt(void) | 334 | void machine_halt(void) |
297 | { | 335 | { |
298 | console_unblank(); | 336 | if (!in_interrupt() || oops_in_progress) |
337 | /* | ||
338 | * Only unblank the console if we are called in enabled | ||
339 | * context or a bust_spinlocks cleared the way for us. | ||
340 | */ | ||
341 | console_unblank(); | ||
299 | _machine_halt(); | 342 | _machine_halt(); |
300 | } | 343 | } |
301 | 344 | ||
302 | void machine_power_off(void) | 345 | void machine_power_off(void) |
303 | { | 346 | { |
304 | console_unblank(); | 347 | if (!in_interrupt() || oops_in_progress) |
348 | /* | ||
349 | * Only unblank the console if we are called in enabled | ||
350 | * context or a bust_spinlocks cleared the way for us. | ||
351 | */ | ||
352 | console_unblank(); | ||
305 | _machine_power_off(); | 353 | _machine_power_off(); |
306 | } | 354 | } |
307 | 355 | ||
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index d48cfc726b68..a887b686f279 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * 1997-11-28 Modified for POSIX.1b signals by Richard Henderson | 11 | * 1997-11-28 Modified for POSIX.1b signals by Richard Henderson |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
17 | #include <linux/smp.h> | 16 | #include <linux/smp.h> |
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 2a6c6efb6865..f7fe9bc43397 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Copyright (C) 1991, 1992, 1995 Linus Torvalds | 12 | * Copyright (C) 1991, 1992, 1995 Linus Torvalds |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c index a46793beeddd..12240c03a6dd 100644 --- a/arch/s390/kernel/traps.c +++ b/arch/s390/kernel/traps.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * 'Traps.c' handles hardware traps and faults after we have saved some | 14 | * 'Traps.c' handles hardware traps and faults after we have saved some |
15 | * state in 'asm.s'. | 15 | * state in 'asm.s'. |
16 | */ | 16 | */ |
17 | #include <linux/config.h> | ||
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | #include <linux/string.h> | 19 | #include <linux/string.h> |
@@ -150,13 +149,11 @@ void show_stack(struct task_struct *task, unsigned long *sp) | |||
150 | unsigned long *stack; | 149 | unsigned long *stack; |
151 | int i; | 150 | int i; |
152 | 151 | ||
153 | // debugging aid: "show_stack(NULL);" prints the | ||
154 | // back trace for this cpu. | ||
155 | |||
156 | if (!sp) | 152 | if (!sp) |
157 | sp = task ? (unsigned long *) task->thread.ksp : __r15; | 153 | stack = task ? (unsigned long *) task->thread.ksp : __r15; |
154 | else | ||
155 | stack = sp; | ||
158 | 156 | ||
159 | stack = sp; | ||
160 | for (i = 0; i < kstack_depth_to_print; i++) { | 157 | for (i = 0; i < kstack_depth_to_print; i++) { |
161 | if (((addr_t) stack & (THREAD_SIZE-1)) == 0) | 158 | if (((addr_t) stack & (THREAD_SIZE-1)) == 0) |
162 | break; | 159 | break; |
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 9f34bb54c051..ff5f7bb34f75 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
@@ -3,7 +3,6 @@ | |||
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <asm-generic/vmlinux.lds.h> | 5 | #include <asm-generic/vmlinux.lds.h> |
6 | #include <linux/config.h> | ||
7 | 6 | ||
8 | #ifndef CONFIG_64BIT | 7 | #ifndef CONFIG_64BIT |
9 | OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390") | 8 | OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390") |
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c index 1f0439dc245a..2306cd83fca1 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Author(s): Jan Glauber <jan.glauber@de.ibm.com> | 7 | * Author(s): Jan Glauber <jan.glauber@de.ibm.com> |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/time.h> | 12 | #include <linux/time.h> |
diff --git a/arch/s390/lib/delay.c b/arch/s390/lib/delay.c index 71f0a2fb3078..468f4ea33f99 100644 --- a/arch/s390/lib/delay.c +++ b/arch/s390/lib/delay.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Copyright (C) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz> | 11 | * Copyright (C) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
17 | 16 | ||
diff --git a/arch/s390/math-emu/math.c b/arch/s390/math-emu/math.c index 648df7140335..b4957c84e4d6 100644 --- a/arch/s390/math-emu/math.c +++ b/arch/s390/math-emu/math.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * that does not have the IEEE fpu (all processors before G5). | 9 | * that does not have the IEEE fpu (all processors before G5). |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c index 51596f429235..81be2fec7dc5 100644 --- a/arch/s390/mm/cmm.c +++ b/arch/s390/mm/cmm.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Collaborative memory management interface. | 8 | * Collaborative memory management interface. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
13 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index 81ade401b073..833d5941746a 100644 --- a/arch/s390/mm/fault.c +++ b/arch/s390/mm/fault.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Copyright (C) 1995 Linus Torvalds | 10 | * Copyright (C) 1995 Linus Torvalds |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/signal.h> | 13 | #include <linux/signal.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index a055894f3bd8..eb6ebfef134a 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 1995 Linus Torvalds | 9 | * Copyright (C) 1995 Linus Torvalds |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/signal.h> | 12 | #include <linux/signal.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
@@ -24,6 +23,7 @@ | |||
24 | #include <linux/init.h> | 23 | #include <linux/init.h> |
25 | #include <linux/pagemap.h> | 24 | #include <linux/pagemap.h> |
26 | #include <linux/bootmem.h> | 25 | #include <linux/bootmem.h> |
26 | #include <linux/pfn.h> | ||
27 | 27 | ||
28 | #include <asm/processor.h> | 28 | #include <asm/processor.h> |
29 | #include <asm/system.h> | 29 | #include <asm/system.h> |
@@ -34,6 +34,7 @@ | |||
34 | #include <asm/lowcore.h> | 34 | #include <asm/lowcore.h> |
35 | #include <asm/tlb.h> | 35 | #include <asm/tlb.h> |
36 | #include <asm/tlbflush.h> | 36 | #include <asm/tlbflush.h> |
37 | #include <asm/sections.h> | ||
37 | 38 | ||
38 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | 39 | DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); |
39 | 40 | ||
@@ -90,17 +91,6 @@ void show_mem(void) | |||
90 | printk("%d pages swap cached\n",cached); | 91 | printk("%d pages swap cached\n",cached); |
91 | } | 92 | } |
92 | 93 | ||
93 | /* References to section boundaries */ | ||
94 | |||
95 | extern unsigned long _text; | ||
96 | extern unsigned long _etext; | ||
97 | extern unsigned long _edata; | ||
98 | extern unsigned long __bss_start; | ||
99 | extern unsigned long _end; | ||
100 | |||
101 | extern unsigned long __init_begin; | ||
102 | extern unsigned long __init_end; | ||
103 | |||
104 | extern unsigned long __initdata zholes_size[]; | 94 | extern unsigned long __initdata zholes_size[]; |
105 | /* | 95 | /* |
106 | * paging_init() sets up the page tables | 96 | * paging_init() sets up the page tables |
@@ -117,6 +107,10 @@ void __init paging_init(void) | |||
117 | unsigned long pfn = 0; | 107 | unsigned long pfn = 0; |
118 | unsigned long pgdir_k = (__pa(swapper_pg_dir) & PAGE_MASK) | _KERNSEG_TABLE; | 108 | unsigned long pgdir_k = (__pa(swapper_pg_dir) & PAGE_MASK) | _KERNSEG_TABLE; |
119 | static const int ssm_mask = 0x04000000L; | 109 | static const int ssm_mask = 0x04000000L; |
110 | unsigned long ro_start_pfn, ro_end_pfn; | ||
111 | |||
112 | ro_start_pfn = PFN_DOWN((unsigned long)&__start_rodata); | ||
113 | ro_end_pfn = PFN_UP((unsigned long)&__end_rodata); | ||
120 | 114 | ||
121 | /* unmap whole virtual address space */ | 115 | /* unmap whole virtual address space */ |
122 | 116 | ||
@@ -144,7 +138,10 @@ void __init paging_init(void) | |||
144 | pg_dir++; | 138 | pg_dir++; |
145 | 139 | ||
146 | for (tmp = 0 ; tmp < PTRS_PER_PTE ; tmp++,pg_table++) { | 140 | for (tmp = 0 ; tmp < PTRS_PER_PTE ; tmp++,pg_table++) { |
147 | pte = pfn_pte(pfn, PAGE_KERNEL); | 141 | if (pfn >= ro_start_pfn && pfn < ro_end_pfn) |
142 | pte = pfn_pte(pfn, __pgprot(_PAGE_RO)); | ||
143 | else | ||
144 | pte = pfn_pte(pfn, PAGE_KERNEL); | ||
148 | if (pfn >= max_low_pfn) | 145 | if (pfn >= max_low_pfn) |
149 | pte_clear(&init_mm, 0, &pte); | 146 | pte_clear(&init_mm, 0, &pte); |
150 | set_pte(pg_table, pte); | 147 | set_pte(pg_table, pte); |
@@ -176,6 +173,7 @@ void __init paging_init(void) | |||
176 | } | 173 | } |
177 | 174 | ||
178 | #else /* CONFIG_64BIT */ | 175 | #else /* CONFIG_64BIT */ |
176 | |||
179 | void __init paging_init(void) | 177 | void __init paging_init(void) |
180 | { | 178 | { |
181 | pgd_t * pg_dir; | 179 | pgd_t * pg_dir; |
@@ -187,13 +185,15 @@ void __init paging_init(void) | |||
187 | unsigned long pgdir_k = (__pa(swapper_pg_dir) & PAGE_MASK) | | 185 | unsigned long pgdir_k = (__pa(swapper_pg_dir) & PAGE_MASK) | |
188 | _KERN_REGION_TABLE; | 186 | _KERN_REGION_TABLE; |
189 | static const int ssm_mask = 0x04000000L; | 187 | static const int ssm_mask = 0x04000000L; |
190 | |||
191 | unsigned long zones_size[MAX_NR_ZONES]; | 188 | unsigned long zones_size[MAX_NR_ZONES]; |
192 | unsigned long dma_pfn, high_pfn; | 189 | unsigned long dma_pfn, high_pfn; |
190 | unsigned long ro_start_pfn, ro_end_pfn; | ||
193 | 191 | ||
194 | memset(zones_size, 0, sizeof(zones_size)); | 192 | memset(zones_size, 0, sizeof(zones_size)); |
195 | dma_pfn = MAX_DMA_ADDRESS >> PAGE_SHIFT; | 193 | dma_pfn = MAX_DMA_ADDRESS >> PAGE_SHIFT; |
196 | high_pfn = max_low_pfn; | 194 | high_pfn = max_low_pfn; |
195 | ro_start_pfn = PFN_DOWN((unsigned long)&__start_rodata); | ||
196 | ro_end_pfn = PFN_UP((unsigned long)&__end_rodata); | ||
197 | 197 | ||
198 | if (dma_pfn > high_pfn) | 198 | if (dma_pfn > high_pfn) |
199 | zones_size[ZONE_DMA] = high_pfn; | 199 | zones_size[ZONE_DMA] = high_pfn; |
@@ -232,7 +232,10 @@ void __init paging_init(void) | |||
232 | pmd_populate_kernel(&init_mm, pm_dir, pt_dir); | 232 | pmd_populate_kernel(&init_mm, pm_dir, pt_dir); |
233 | 233 | ||
234 | for (k = 0 ; k < PTRS_PER_PTE ; k++,pt_dir++) { | 234 | for (k = 0 ; k < PTRS_PER_PTE ; k++,pt_dir++) { |
235 | pte = pfn_pte(pfn, PAGE_KERNEL); | 235 | if (pfn >= ro_start_pfn && pfn < ro_end_pfn) |
236 | pte = pfn_pte(pfn, __pgprot(_PAGE_RO)); | ||
237 | else | ||
238 | pte = pfn_pte(pfn, PAGE_KERNEL); | ||
236 | if (pfn >= max_low_pfn) { | 239 | if (pfn >= max_low_pfn) { |
237 | pte_clear(&init_mm, 0, &pte); | 240 | pte_clear(&init_mm, 0, &pte); |
238 | continue; | 241 | continue; |
@@ -283,6 +286,9 @@ void __init mem_init(void) | |||
283 | reservedpages << (PAGE_SHIFT-10), | 286 | reservedpages << (PAGE_SHIFT-10), |
284 | datasize >>10, | 287 | datasize >>10, |
285 | initsize >> 10); | 288 | initsize >> 10); |
289 | printk("Write protected kernel read-only data: %#lx - %#lx\n", | ||
290 | (unsigned long)&__start_rodata, | ||
291 | PFN_ALIGN((unsigned long)&__end_rodata) - 1); | ||
286 | } | 292 | } |
287 | 293 | ||
288 | void free_initmem(void) | 294 | void free_initmem(void) |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 2bcecf422573..1a0db1d4c952 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -465,10 +465,10 @@ config KEXEC | |||
465 | help | 465 | help |
466 | kexec is a system call that implements the ability to shutdown your | 466 | kexec is a system call that implements the ability to shutdown your |
467 | current kernel, and to start another kernel. It is like a reboot | 467 | current kernel, and to start another kernel. It is like a reboot |
468 | but it is indepedent of the system firmware. And like a reboot | 468 | but it is independent of the system firmware. And like a reboot |
469 | you can start any kernel with it, not just Linux. | 469 | you can start any kernel with it, not just Linux. |
470 | 470 | ||
471 | The name comes from the similiarity to the exec system call. | 471 | The name comes from the similarity to the exec system call. |
472 | 472 | ||
473 | It is an ongoing process to be certain the hardware in a machine | 473 | It is an ongoing process to be certain the hardware in a machine |
474 | is properly shutdown, so do not be surprised if this code does not | 474 | is properly shutdown, so do not be surprised if this code does not |
diff --git a/arch/sh/boards/adx/irq_maskreg.c b/arch/sh/boards/adx/irq_maskreg.c index c0973f8d57ba..4b2abe5eb165 100644 --- a/arch/sh/boards/adx/irq_maskreg.c +++ b/arch/sh/boards/adx/irq_maskreg.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * Each bit of the register is for masking each interrupt. | 13 | * Each bit of the register is for masking each interrupt. |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <linux/irq.h> | 18 | #include <linux/irq.h> |
@@ -102,6 +101,6 @@ static void end_maskreg_irq(unsigned int irq) | |||
102 | void make_maskreg_irq(unsigned int irq) | 101 | void make_maskreg_irq(unsigned int irq) |
103 | { | 102 | { |
104 | disable_irq_nosync(irq); | 103 | disable_irq_nosync(irq); |
105 | irq_desc[irq].handler = &maskreg_irq_type; | 104 | irq_desc[irq].chip = &maskreg_irq_type; |
106 | disable_maskreg_irq(irq); | 105 | disable_maskreg_irq(irq); |
107 | } | 106 | } |
diff --git a/arch/sh/boards/bigsur/io.c b/arch/sh/boards/bigsur/io.c index a9fde781b21a..6835381da5fd 100644 --- a/arch/sh/boards/bigsur/io.c +++ b/arch/sh/boards/bigsur/io.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * IO functions for a Hitachi Big Sur Evaluation Board. | 14 | * IO functions for a Hitachi Big Sur Evaluation Board. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/module.h> | 18 | #include <linux/module.h> |
20 | #include <asm/machvec.h> | 19 | #include <asm/machvec.h> |
diff --git a/arch/sh/boards/bigsur/irq.c b/arch/sh/boards/bigsur/irq.c index 6ddbcc77244d..ac946a2201c7 100644 --- a/arch/sh/boards/bigsur/irq.c +++ b/arch/sh/boards/bigsur/irq.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * | 20 | * |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/sched.h> | 23 | #include <linux/sched.h> |
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
@@ -253,7 +252,7 @@ static void make_bigsur_l1isr(unsigned int irq) { | |||
253 | /* sanity check first */ | 252 | /* sanity check first */ |
254 | if(irq >= BIGSUR_IRQ_LOW && irq < BIGSUR_IRQ_HIGH) { | 253 | if(irq >= BIGSUR_IRQ_LOW && irq < BIGSUR_IRQ_HIGH) { |
255 | /* save the handler in the main description table */ | 254 | /* save the handler in the main description table */ |
256 | irq_desc[irq].handler = &bigsur_l1irq_type; | 255 | irq_desc[irq].chip = &bigsur_l1irq_type; |
257 | irq_desc[irq].status = IRQ_DISABLED; | 256 | irq_desc[irq].status = IRQ_DISABLED; |
258 | irq_desc[irq].action = 0; | 257 | irq_desc[irq].action = 0; |
259 | irq_desc[irq].depth = 1; | 258 | irq_desc[irq].depth = 1; |
@@ -270,7 +269,7 @@ static void make_bigsur_l2isr(unsigned int irq) { | |||
270 | /* sanity check first */ | 269 | /* sanity check first */ |
271 | if(irq >= BIGSUR_2NDLVL_IRQ_LOW && irq < BIGSUR_2NDLVL_IRQ_HIGH) { | 270 | if(irq >= BIGSUR_2NDLVL_IRQ_LOW && irq < BIGSUR_2NDLVL_IRQ_HIGH) { |
272 | /* save the handler in the main description table */ | 271 | /* save the handler in the main description table */ |
273 | irq_desc[irq].handler = &bigsur_l2irq_type; | 272 | irq_desc[irq].chip = &bigsur_l2irq_type; |
274 | irq_desc[irq].status = IRQ_DISABLED; | 273 | irq_desc[irq].status = IRQ_DISABLED; |
275 | irq_desc[irq].action = 0; | 274 | irq_desc[irq].action = 0; |
276 | irq_desc[irq].depth = 1; | 275 | irq_desc[irq].depth = 1; |
diff --git a/arch/sh/boards/bigsur/led.c b/arch/sh/boards/bigsur/led.c index 0a2339c69440..6b08c0e1c453 100644 --- a/arch/sh/boards/bigsur/led.c +++ b/arch/sh/boards/bigsur/led.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * This file contains Big Sur specific LED code. | 11 | * This file contains Big Sur specific LED code. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <asm/io.h> | 14 | #include <asm/io.h> |
16 | #include <asm/bigsur/bigsur.h> | 15 | #include <asm/bigsur/bigsur.h> |
17 | 16 | ||
diff --git a/arch/sh/boards/bigsur/setup.c b/arch/sh/boards/bigsur/setup.c index e69be05195f5..dfeede9da50f 100644 --- a/arch/sh/boards/bigsur/setup.c +++ b/arch/sh/boards/bigsur/setup.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * | 20 | * |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/sched.h> | 23 | #include <linux/sched.h> |
25 | #include <linux/module.h> | 24 | #include <linux/module.h> |
26 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
diff --git a/arch/sh/boards/cat68701/setup.c b/arch/sh/boards/cat68701/setup.c index ae8a350ade53..90e5175df227 100644 --- a/arch/sh/boards/cat68701/setup.c +++ b/arch/sh/boards/cat68701/setup.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <asm/io.h> | 15 | #include <asm/io.h> |
16 | #include <asm/machvec.h> | 16 | #include <asm/machvec.h> |
17 | #include <asm/mach/io.h> | 17 | #include <asm/mach/io.h> |
18 | #include <linux/config.h> | ||
19 | #include <linux/module.h> | 18 | #include <linux/module.h> |
20 | #include <linux/init.h> | 19 | #include <linux/init.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
diff --git a/arch/sh/boards/cqreek/irq.c b/arch/sh/boards/cqreek/irq.c index d1da0d844567..2955adc52310 100644 --- a/arch/sh/boards/cqreek/irq.c +++ b/arch/sh/boards/cqreek/irq.c | |||
@@ -103,7 +103,7 @@ void __init init_cqreek_IRQ(void) | |||
103 | cqreek_irq_data[14].stat_port = BRIDGE_IDE_INTR_STAT; | 103 | cqreek_irq_data[14].stat_port = BRIDGE_IDE_INTR_STAT; |
104 | cqreek_irq_data[14].bit = 1; | 104 | cqreek_irq_data[14].bit = 1; |
105 | 105 | ||
106 | irq_desc[14].handler = &cqreek_irq_type; | 106 | irq_desc[14].chip = &cqreek_irq_type; |
107 | irq_desc[14].status = IRQ_DISABLED; | 107 | irq_desc[14].status = IRQ_DISABLED; |
108 | irq_desc[14].action = 0; | 108 | irq_desc[14].action = 0; |
109 | irq_desc[14].depth = 1; | 109 | irq_desc[14].depth = 1; |
@@ -117,7 +117,7 @@ void __init init_cqreek_IRQ(void) | |||
117 | cqreek_irq_data[10].bit = (1 << 10); | 117 | cqreek_irq_data[10].bit = (1 << 10); |
118 | 118 | ||
119 | /* XXX: Err... we may need demultiplexer for ISA irq... */ | 119 | /* XXX: Err... we may need demultiplexer for ISA irq... */ |
120 | irq_desc[10].handler = &cqreek_irq_type; | 120 | irq_desc[10].chip = &cqreek_irq_type; |
121 | irq_desc[10].status = IRQ_DISABLED; | 121 | irq_desc[10].status = IRQ_DISABLED; |
122 | irq_desc[10].action = 0; | 122 | irq_desc[10].action = 0; |
123 | irq_desc[10].depth = 1; | 123 | irq_desc[10].depth = 1; |
diff --git a/arch/sh/boards/cqreek/setup.c b/arch/sh/boards/cqreek/setup.c index 29b537cd6546..eff4ed93599f 100644 --- a/arch/sh/boards/cqreek/setup.c +++ b/arch/sh/boards/cqreek/setup.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
diff --git a/arch/sh/boards/dreamcast/setup.c b/arch/sh/boards/dreamcast/setup.c index 55dece35cde5..0027b80a2343 100644 --- a/arch/sh/boards/dreamcast/setup.c +++ b/arch/sh/boards/dreamcast/setup.c | |||
@@ -70,7 +70,7 @@ int __init platform_setup(void) | |||
70 | 70 | ||
71 | /* Assign all virtual IRQs to the System ASIC int. handler */ | 71 | /* Assign all virtual IRQs to the System ASIC int. handler */ |
72 | for (i = HW_EVENT_IRQ_BASE; i < HW_EVENT_IRQ_MAX; i++) | 72 | for (i = HW_EVENT_IRQ_BASE; i < HW_EVENT_IRQ_MAX; i++) |
73 | irq_desc[i].handler = &systemasic_int; | 73 | irq_desc[i].chip = &systemasic_int; |
74 | 74 | ||
75 | board_time_init = aica_time_init; | 75 | board_time_init = aica_time_init; |
76 | 76 | ||
diff --git a/arch/sh/boards/ec3104/setup.c b/arch/sh/boards/ec3104/setup.c index 5130ba2b6ff1..4b3ef16a0e96 100644 --- a/arch/sh/boards/ec3104/setup.c +++ b/arch/sh/boards/ec3104/setup.c | |||
@@ -63,7 +63,7 @@ int __init platform_setup(void) | |||
63 | str[i] = ctrl_readb(EC3104_BASE + i); | 63 | str[i] = ctrl_readb(EC3104_BASE + i); |
64 | 64 | ||
65 | for (i = EC3104_IRQBASE; i < EC3104_IRQBASE + 32; i++) | 65 | for (i = EC3104_IRQBASE; i < EC3104_IRQBASE + 32; i++) |
66 | irq_desc[i].handler = &ec3104_int; | 66 | irq_desc[i].chip = &ec3104_int; |
67 | 67 | ||
68 | printk("initializing EC3104 \"%.8s\" at %08x, IRQ %d, IRQ base %d\n", | 68 | printk("initializing EC3104 \"%.8s\" at %08x, IRQ %d, IRQ base %d\n", |
69 | str, EC3104_BASE, EC3104_IRQ, EC3104_IRQBASE); | 69 | str, EC3104_BASE, EC3104_IRQ, EC3104_IRQBASE); |
diff --git a/arch/sh/boards/harp/irq.c b/arch/sh/boards/harp/irq.c index 52d0ba39031b..96bb41c9fc55 100644 --- a/arch/sh/boards/harp/irq.c +++ b/arch/sh/boards/harp/irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Bases on the IPR irq system | 9 | * Bases on the IPR irq system |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
15 | 14 | ||
@@ -114,7 +113,7 @@ static void enable_harp_irq(unsigned int irq) | |||
114 | static void __init make_harp_irq(unsigned int irq) | 113 | static void __init make_harp_irq(unsigned int irq) |
115 | { | 114 | { |
116 | disable_irq_nosync(irq); | 115 | disable_irq_nosync(irq); |
117 | irq_desc[irq].handler = &harp_irq_type; | 116 | irq_desc[irq].chip = &harp_irq_type; |
118 | disable_harp_irq(irq); | 117 | disable_harp_irq(irq); |
119 | } | 118 | } |
120 | 119 | ||
diff --git a/arch/sh/boards/harp/led.c b/arch/sh/boards/harp/led.c index 76ca4ccac703..aeb7b392b190 100644 --- a/arch/sh/boards/harp/led.c +++ b/arch/sh/boards/harp/led.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * This file contains ST40STB1 HARP and compatible code. | 9 | * This file contains ST40STB1 HARP and compatible code. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/io.h> | 12 | #include <asm/io.h> |
14 | #include <asm/harp/harp.h> | 13 | #include <asm/harp/harp.h> |
15 | 14 | ||
diff --git a/arch/sh/boards/harp/setup.c b/arch/sh/boards/harp/setup.c index 05b01b8f40aa..886e450ab63e 100644 --- a/arch/sh/boards/harp/setup.c +++ b/arch/sh/boards/harp/setup.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * STMicroelectronics ST40STB1 HARP and compatible support. | 9 | * STMicroelectronics ST40STB1 HARP and compatible support. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <asm/io.h> | 14 | #include <asm/io.h> |
diff --git a/arch/sh/boards/hp6xx/setup.c b/arch/sh/boards/hp6xx/setup.c index 6d94a8e2e67a..71f315663cc9 100644 --- a/arch/sh/boards/hp6xx/setup.c +++ b/arch/sh/boards/hp6xx/setup.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Setup code for an HP680 (internal peripherials only) | 9 | * Setup code for an HP680 (internal peripherials only) |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
15 | #include <asm/hd64461.h> | 14 | #include <asm/hd64461.h> |
diff --git a/arch/sh/boards/mpc1211/led.c b/arch/sh/boards/mpc1211/led.c index 0a31beec3465..1fe36927f691 100644 --- a/arch/sh/boards/mpc1211/led.c +++ b/arch/sh/boards/mpc1211/led.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * This file contains Interface MPC-1211 specific LED code. | 6 | * This file contains Interface MPC-1211 specific LED code. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | 9 | ||
11 | static void mach_led(int position, int value) | 10 | static void mach_led(int position, int value) |
12 | { | 11 | { |
diff --git a/arch/sh/boards/mpc1211/pci.c b/arch/sh/boards/mpc1211/pci.c index ba3a65439752..4ed1a95c6d56 100644 --- a/arch/sh/boards/mpc1211/pci.c +++ b/arch/sh/boards/mpc1211/pci.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * License. See linux/COPYING for more information. | 11 | * License. See linux/COPYING for more information. |
12 | * | 12 | * |
13 | */ | 13 | */ |
14 | #include <linux/config.h> | ||
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
@@ -273,9 +272,9 @@ void __init pcibios_fixup_irqs(void) | |||
273 | } | 272 | } |
274 | 273 | ||
275 | void pcibios_align_resource(void *data, struct resource *res, | 274 | void pcibios_align_resource(void *data, struct resource *res, |
276 | unsigned long size, unsigned long align) | 275 | resource_size_t size, resource_size_t align) |
277 | { | 276 | { |
278 | unsigned long start = res->start; | 277 | resource_size_t start = res->start; |
279 | 278 | ||
280 | if (res->flags & IORESOURCE_IO) { | 279 | if (res->flags & IORESOURCE_IO) { |
281 | if (start >= 0x10000UL) { | 280 | if (start >= 0x10000UL) { |
diff --git a/arch/sh/boards/mpc1211/setup.c b/arch/sh/boards/mpc1211/setup.c index 2bb581b91683..2bfb221cc35c 100644 --- a/arch/sh/boards/mpc1211/setup.c +++ b/arch/sh/boards/mpc1211/setup.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | #include <linux/irq.h> | 9 | #include <linux/irq.h> |
11 | #include <linux/hdreg.h> | 10 | #include <linux/hdreg.h> |
@@ -194,7 +193,7 @@ static struct hw_interrupt_type mpc1211_irq_type = { | |||
194 | 193 | ||
195 | static void make_mpc1211_irq(unsigned int irq) | 194 | static void make_mpc1211_irq(unsigned int irq) |
196 | { | 195 | { |
197 | irq_desc[irq].handler = &mpc1211_irq_type; | 196 | irq_desc[irq].chip = &mpc1211_irq_type; |
198 | irq_desc[irq].status = IRQ_DISABLED; | 197 | irq_desc[irq].status = IRQ_DISABLED; |
199 | irq_desc[irq].action = 0; | 198 | irq_desc[irq].action = 0; |
200 | irq_desc[irq].depth = 1; | 199 | irq_desc[irq].depth = 1; |
diff --git a/arch/sh/boards/overdrive/fpga.c b/arch/sh/boards/overdrive/fpga.c index 3a1ec9403441..956c23901228 100644 --- a/arch/sh/boards/overdrive/fpga.c +++ b/arch/sh/boards/overdrive/fpga.c | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/smp.h> | 14 | #include <linux/smp.h> |
16 | #include <linux/smp_lock.h> | 15 | #include <linux/smp_lock.h> |
diff --git a/arch/sh/boards/overdrive/galileo.c b/arch/sh/boards/overdrive/galileo.c index 276fa11ee4ce..29e48971bba0 100644 --- a/arch/sh/boards/overdrive/galileo.c +++ b/arch/sh/boards/overdrive/galileo.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/smp.h> | 13 | #include <linux/smp.h> |
15 | #include <linux/smp_lock.h> | 14 | #include <linux/smp_lock.h> |
@@ -536,7 +535,7 @@ void __init pcibios_fixup_bus(struct pci_bus *bus) | |||
536 | } | 535 | } |
537 | 536 | ||
538 | void pcibios_align_resource(void *data, struct resource *res, | 537 | void pcibios_align_resource(void *data, struct resource *res, |
539 | unsigned long size) | 538 | resource_size_t size) |
540 | { | 539 | { |
541 | } | 540 | } |
542 | 541 | ||
diff --git a/arch/sh/boards/overdrive/io.c b/arch/sh/boards/overdrive/io.c index 65f3fd0563d3..4671b6b047bb 100644 --- a/arch/sh/boards/overdrive/io.c +++ b/arch/sh/boards/overdrive/io.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <linux/delay.h> | 12 | #include <linux/delay.h> |
14 | #include <asm/processor.h> | 13 | #include <asm/processor.h> |
diff --git a/arch/sh/boards/overdrive/irq.c b/arch/sh/boards/overdrive/irq.c index 715e8feb3a68..5d730c70389e 100644 --- a/arch/sh/boards/overdrive/irq.c +++ b/arch/sh/boards/overdrive/irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Bases on the IPR irq system | 9 | * Bases on the IPR irq system |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
15 | 14 | ||
@@ -150,7 +149,7 @@ static void enable_od_irq(unsigned int irq) | |||
150 | static void __init make_od_irq(unsigned int irq) | 149 | static void __init make_od_irq(unsigned int irq) |
151 | { | 150 | { |
152 | disable_irq_nosync(irq); | 151 | disable_irq_nosync(irq); |
153 | irq_desc[irq].handler = &od_irq_type; | 152 | irq_desc[irq].chip = &od_irq_type; |
154 | disable_od_irq(irq); | 153 | disable_od_irq(irq); |
155 | } | 154 | } |
156 | 155 | ||
diff --git a/arch/sh/boards/overdrive/led.c b/arch/sh/boards/overdrive/led.c index 734742e92279..860d7f204a4e 100644 --- a/arch/sh/boards/overdrive/led.c +++ b/arch/sh/boards/overdrive/led.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * This file contains an Overdrive specific LED feature. | 9 | * This file contains an Overdrive specific LED feature. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/system.h> | 12 | #include <asm/system.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
15 | #include <asm/overdrive/overdrive.h> | 14 | #include <asm/overdrive/overdrive.h> |
diff --git a/arch/sh/boards/overdrive/setup.c b/arch/sh/boards/overdrive/setup.c index 94f6165d33b8..a3a7744c2047 100644 --- a/arch/sh/boards/overdrive/setup.c +++ b/arch/sh/boards/overdrive/setup.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * STMicroelectronics Overdrive Support. | 9 | * STMicroelectronics Overdrive Support. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <asm/io.h> | 14 | #include <asm/io.h> |
diff --git a/arch/sh/boards/renesas/edosk7705/setup.c b/arch/sh/boards/renesas/edosk7705/setup.c index 8b6f0c2af092..ba143fa4afaa 100644 --- a/arch/sh/boards/renesas/edosk7705/setup.c +++ b/arch/sh/boards/renesas/edosk7705/setup.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * board by S. Dunn, 2003. | 9 | * board by S. Dunn, 2003. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <asm/machvec.h> | 13 | #include <asm/machvec.h> |
15 | #include <asm/machvec_init.h> | 14 | #include <asm/machvec_init.h> |
diff --git a/arch/sh/boards/renesas/hs7751rvoip/io.c b/arch/sh/boards/renesas/hs7751rvoip/io.c index 456753d2649c..3a1abfa2fefb 100644 --- a/arch/sh/boards/renesas/hs7751rvoip/io.c +++ b/arch/sh/boards/renesas/hs7751rvoip/io.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * expectation of later SuperIO and PCMCIA access. | 11 | * expectation of later SuperIO and PCMCIA access. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <asm/io.h> | 16 | #include <asm/io.h> |
diff --git a/arch/sh/boards/renesas/hs7751rvoip/irq.c b/arch/sh/boards/renesas/hs7751rvoip/irq.c index ed4c5b50ea45..705b7ddcb0d2 100644 --- a/arch/sh/boards/renesas/hs7751rvoip/irq.c +++ b/arch/sh/boards/renesas/hs7751rvoip/irq.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Lineo uSolutions, Inc. 2003. | 10 | * Lineo uSolutions, Inc. 2003. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
16 | #include <asm/io.h> | 15 | #include <asm/io.h> |
@@ -86,7 +85,7 @@ static struct hw_interrupt_type hs7751rvoip_irq_type = { | |||
86 | static void make_hs7751rvoip_irq(unsigned int irq) | 85 | static void make_hs7751rvoip_irq(unsigned int irq) |
87 | { | 86 | { |
88 | disable_irq_nosync(irq); | 87 | disable_irq_nosync(irq); |
89 | irq_desc[irq].handler = &hs7751rvoip_irq_type; | 88 | irq_desc[irq].chip = &hs7751rvoip_irq_type; |
90 | disable_hs7751rvoip_irq(irq); | 89 | disable_hs7751rvoip_irq(irq); |
91 | } | 90 | } |
92 | 91 | ||
diff --git a/arch/sh/boards/renesas/hs7751rvoip/led.c b/arch/sh/boards/renesas/hs7751rvoip/led.c index 18a13c8da8a4..b6608fff9f38 100644 --- a/arch/sh/boards/renesas/hs7751rvoip/led.c +++ b/arch/sh/boards/renesas/hs7751rvoip/led.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Lineo uSolutions, Inc. 2003. | 10 | * Lineo uSolutions, Inc. 2003. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
15 | #include <asm/hs7751rvoip/hs7751rvoip.h> | 14 | #include <asm/hs7751rvoip/hs7751rvoip.h> |
16 | 15 | ||
diff --git a/arch/sh/boards/renesas/hs7751rvoip/mach.c b/arch/sh/boards/renesas/hs7751rvoip/mach.c index 8bbed60220ca..caf967f77c61 100644 --- a/arch/sh/boards/renesas/hs7751rvoip/mach.c +++ b/arch/sh/boards/renesas/hs7751rvoip/mach.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Machine vector for the Renesas Technology sales HS7751RVoIP | 9 | * Machine vector for the Renesas Technology sales HS7751RVoIP |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | 13 | ||
15 | #include <asm/machvec.h> | 14 | #include <asm/machvec.h> |
diff --git a/arch/sh/boards/renesas/hs7751rvoip/pci.c b/arch/sh/boards/renesas/hs7751rvoip/pci.c index 7a442d1eca46..7e5786b58110 100644 --- a/arch/sh/boards/renesas/hs7751rvoip/pci.c +++ b/arch/sh/boards/renesas/hs7751rvoip/pci.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * PCI initialization for the Renesas SH7751R HS7751RVoIP board | 11 | * PCI initialization for the Renesas SH7751R HS7751RVoIP board |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/sh/boards/renesas/hs7751rvoip/setup.c b/arch/sh/boards/renesas/hs7751rvoip/setup.c index f1a78b6c714c..29fb5ff70fb5 100644 --- a/arch/sh/boards/renesas/hs7751rvoip/setup.c +++ b/arch/sh/boards/renesas/hs7751rvoip/setup.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Lineo uSolutions, Inc. 2003. | 10 | * Lineo uSolutions, Inc. 2003. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
16 | 15 | ||
diff --git a/arch/sh/boards/renesas/rts7751r2d/irq.c b/arch/sh/boards/renesas/rts7751r2d/irq.c index d36c9374aed1..154535440bbf 100644 --- a/arch/sh/boards/renesas/rts7751r2d/irq.c +++ b/arch/sh/boards/renesas/rts7751r2d/irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Atom Create Engineering Co., Ltd. 2002. | 9 | * Atom Create Engineering Co., Ltd. 2002. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
15 | #include <asm/io.h> | 14 | #include <asm/io.h> |
@@ -100,7 +99,7 @@ static struct hw_interrupt_type rts7751r2d_irq_type = { | |||
100 | static void make_rts7751r2d_irq(unsigned int irq) | 99 | static void make_rts7751r2d_irq(unsigned int irq) |
101 | { | 100 | { |
102 | disable_irq_nosync(irq); | 101 | disable_irq_nosync(irq); |
103 | irq_desc[irq].handler = &rts7751r2d_irq_type; | 102 | irq_desc[irq].chip = &rts7751r2d_irq_type; |
104 | disable_rts7751r2d_irq(irq); | 103 | disable_rts7751r2d_irq(irq); |
105 | } | 104 | } |
106 | 105 | ||
diff --git a/arch/sh/boards/renesas/rts7751r2d/led.c b/arch/sh/boards/renesas/rts7751r2d/led.c index 9993259a894f..4d16de71fac1 100644 --- a/arch/sh/boards/renesas/rts7751r2d/led.c +++ b/arch/sh/boards/renesas/rts7751r2d/led.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * This file contains Renesas Technology Sales RTS7751R2D specific LED code. | 9 | * This file contains Renesas Technology Sales RTS7751R2D specific LED code. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/io.h> | 12 | #include <asm/io.h> |
14 | #include <asm/rts7751r2d/rts7751r2d.h> | 13 | #include <asm/rts7751r2d/rts7751r2d.h> |
15 | 14 | ||
diff --git a/arch/sh/boards/renesas/rts7751r2d/mach.c b/arch/sh/boards/renesas/rts7751r2d/mach.c index 610740512d56..5ed9e97ea197 100644 --- a/arch/sh/boards/renesas/rts7751r2d/mach.c +++ b/arch/sh/boards/renesas/rts7751r2d/mach.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Machine vector for the Renesas Technology sales RTS7751R2D | 9 | * Machine vector for the Renesas Technology sales RTS7751R2D |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | 14 | ||
diff --git a/arch/sh/boards/renesas/systemh/irq.c b/arch/sh/boards/renesas/systemh/irq.c index 7a2eb10edb56..8372d967f601 100644 --- a/arch/sh/boards/renesas/systemh/irq.c +++ b/arch/sh/boards/renesas/systemh/irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Jonathan Short. | 9 | * Jonathan Short. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
15 | 14 | ||
@@ -105,7 +104,7 @@ static void end_systemh_irq(unsigned int irq) | |||
105 | void make_systemh_irq(unsigned int irq) | 104 | void make_systemh_irq(unsigned int irq) |
106 | { | 105 | { |
107 | disable_irq_nosync(irq); | 106 | disable_irq_nosync(irq); |
108 | irq_desc[irq].handler = &systemh_irq_type; | 107 | irq_desc[irq].chip = &systemh_irq_type; |
109 | disable_systemh_irq(irq); | 108 | disable_systemh_irq(irq); |
110 | } | 109 | } |
111 | 110 | ||
diff --git a/arch/sh/boards/se/7300/io.c b/arch/sh/boards/se/7300/io.c index 3c89def46480..f449a94ddffd 100644 --- a/arch/sh/boards/se/7300/io.c +++ b/arch/sh/boards/se/7300/io.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <asm/mach/se7300.h> | 12 | #include <asm/mach/se7300.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
diff --git a/arch/sh/boards/se/7300/irq.c b/arch/sh/boards/se/7300/irq.c index 96c8c23d6c93..216a78d1a108 100644 --- a/arch/sh/boards/se/7300/irq.c +++ b/arch/sh/boards/se/7300/irq.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
13 | #include <asm/irq.h> | 12 | #include <asm/irq.h> |
diff --git a/arch/sh/boards/se/7300/led.c b/arch/sh/boards/se/7300/led.c index 02c7f846c84c..ad51f0a9c1e3 100644 --- a/arch/sh/boards/se/7300/led.c +++ b/arch/sh/boards/se/7300/led.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * This file contains Solution Engine specific LED code. | 11 | * This file contains Solution Engine specific LED code. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <asm/mach/se7300.h> | 15 | #include <asm/mach/se7300.h> |
17 | 16 | ||
diff --git a/arch/sh/boards/se/7300/setup.c b/arch/sh/boards/se/7300/setup.c index 08536bc224dc..ebcd98d4c081 100644 --- a/arch/sh/boards/se/7300/setup.c +++ b/arch/sh/boards/se/7300/setup.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <asm/machvec.h> | 11 | #include <asm/machvec.h> |
13 | #include <asm/machvec_init.h> | 12 | #include <asm/machvec_init.h> |
diff --git a/arch/sh/boards/se/73180/io.c b/arch/sh/boards/se/73180/io.c index 73648cbe3678..755df5ac4a4e 100644 --- a/arch/sh/boards/se/73180/io.c +++ b/arch/sh/boards/se/73180/io.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <asm/mach/se73180.h> | 12 | #include <asm/mach/se73180.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
diff --git a/arch/sh/boards/se/73180/irq.c b/arch/sh/boards/se/73180/irq.c index 70f04caad9a4..4344d0ef24aa 100644 --- a/arch/sh/boards/se/73180/irq.c +++ b/arch/sh/boards/se/73180/irq.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
16 | #include <asm/irq.h> | 15 | #include <asm/irq.h> |
@@ -85,7 +84,7 @@ void | |||
85 | make_intreq_irq(unsigned int irq) | 84 | make_intreq_irq(unsigned int irq) |
86 | { | 85 | { |
87 | disable_irq_nosync(irq); | 86 | disable_irq_nosync(irq); |
88 | irq_desc[irq].handler = &intreq_irq_type; | 87 | irq_desc[irq].chip = &intreq_irq_type; |
89 | disable_intreq_irq(irq); | 88 | disable_intreq_irq(irq); |
90 | } | 89 | } |
91 | 90 | ||
diff --git a/arch/sh/boards/se/73180/led.c b/arch/sh/boards/se/73180/led.c index 1e8f1cf3e10f..610439fde6ee 100644 --- a/arch/sh/boards/se/73180/led.c +++ b/arch/sh/boards/se/73180/led.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * This file contains Solution Engine specific LED code. | 11 | * This file contains Solution Engine specific LED code. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <asm/mach/se73180.h> | 15 | #include <asm/mach/se73180.h> |
17 | 16 | ||
diff --git a/arch/sh/boards/se/73180/setup.c b/arch/sh/boards/se/73180/setup.c index 07fa90c38a06..cdb7b5f8d942 100644 --- a/arch/sh/boards/se/73180/setup.c +++ b/arch/sh/boards/se/73180/setup.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <asm/machvec.h> | 13 | #include <asm/machvec.h> |
15 | #include <asm/machvec_init.h> | 14 | #include <asm/machvec_init.h> |
diff --git a/arch/sh/boards/se/770x/irq.c b/arch/sh/boards/se/770x/irq.c index 210897b315f4..3e558716ce10 100644 --- a/arch/sh/boards/se/770x/irq.c +++ b/arch/sh/boards/se/770x/irq.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
13 | #include <asm/irq.h> | 12 | #include <asm/irq.h> |
diff --git a/arch/sh/boards/se/770x/led.c b/arch/sh/boards/se/770x/led.c index 5c64e8ab2cfb..3cddbda025fc 100644 --- a/arch/sh/boards/se/770x/led.c +++ b/arch/sh/boards/se/770x/led.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * This file contains Solution Engine specific LED code. | 9 | * This file contains Solution Engine specific LED code. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/se/se.h> | 12 | #include <asm/se/se.h> |
14 | 13 | ||
15 | static void mach_led(int position, int value) | 14 | static void mach_led(int position, int value) |
diff --git a/arch/sh/boards/se/770x/mach.c b/arch/sh/boards/se/770x/mach.c index f9b4c56cc47e..6ec07bd3dcf1 100644 --- a/arch/sh/boards/se/770x/mach.c +++ b/arch/sh/boards/se/770x/mach.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Machine vector for the Hitachi SolutionEngine | 9 | * Machine vector for the Hitachi SolutionEngine |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | 13 | ||
15 | #include <asm/machvec.h> | 14 | #include <asm/machvec.h> |
diff --git a/arch/sh/boards/se/770x/setup.c b/arch/sh/boards/se/770x/setup.c index 2bed46fb607d..7d1a071727cc 100644 --- a/arch/sh/boards/se/770x/setup.c +++ b/arch/sh/boards/se/770x/setup.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/irq.h> | 12 | #include <linux/irq.h> |
14 | 13 | ||
diff --git a/arch/sh/boards/se/7751/irq.c b/arch/sh/boards/se/7751/irq.c index ad71f3e66c11..bf6c023615df 100644 --- a/arch/sh/boards/se/7751/irq.c +++ b/arch/sh/boards/se/7751/irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Ian da Silva and Jeremy Siegel, 2001. | 9 | * Ian da Silva and Jeremy Siegel, 2001. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
15 | #include <asm/irq.h> | 14 | #include <asm/irq.h> |
diff --git a/arch/sh/boards/se/7751/led.c b/arch/sh/boards/se/7751/led.c index 0c788230cf8f..a878726d3c7c 100644 --- a/arch/sh/boards/se/7751/led.c +++ b/arch/sh/boards/se/7751/led.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * This file contains Solution Engine specific LED code. | 9 | * This file contains Solution Engine specific LED code. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/se7751/se7751.h> | 12 | #include <asm/se7751/se7751.h> |
14 | 13 | ||
15 | static void mach_led(int position, int value) | 14 | static void mach_led(int position, int value) |
diff --git a/arch/sh/boards/se/7751/mach.c b/arch/sh/boards/se/7751/mach.c index 16d386b7e3bf..62d8d3e62590 100644 --- a/arch/sh/boards/se/7751/mach.c +++ b/arch/sh/boards/se/7751/mach.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Machine vector for the Hitachi 7751 SolutionEngine | 9 | * Machine vector for the Hitachi 7751 SolutionEngine |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | 13 | ||
15 | #include <asm/machvec.h> | 14 | #include <asm/machvec.h> |
diff --git a/arch/sh/boards/se/7751/pci.c b/arch/sh/boards/se/7751/pci.c index 1f273efd2cf5..3ee03014dea3 100644 --- a/arch/sh/boards/se/7751/pci.c +++ b/arch/sh/boards/se/7751/pci.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * PCI initialization for the Hitachi SH7751 Solution Engine board (MS7751SE01) | 11 | * PCI initialization for the Hitachi SH7751 Solution Engine board (MS7751SE01) |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/sh/boards/se/7751/setup.c b/arch/sh/boards/se/7751/setup.c index 9d111bb884f9..48dc5aee67d4 100644 --- a/arch/sh/boards/se/7751/setup.c +++ b/arch/sh/boards/se/7751/setup.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Ian da Silva and Jeremy Siegel, 2001. | 9 | * Ian da Silva and Jeremy Siegel, 2001. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
15 | 14 | ||
diff --git a/arch/sh/boards/sh03/led.c b/arch/sh/boards/sh03/led.c index c851b0bec80f..d38562ad6be8 100644 --- a/arch/sh/boards/sh03/led.c +++ b/arch/sh/boards/sh03/led.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * This file contains Interface CTP/PCI-SH03 specific LED code. | 6 | * This file contains Interface CTP/PCI-SH03 specific LED code. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
11 | 10 | ||
12 | /* Cycle the LED's in the clasic Knightrider/Sun pattern */ | 11 | /* Cycle the LED's in the clasic Knightrider/Sun pattern */ |
diff --git a/arch/sh/boards/sh03/setup.c b/arch/sh/boards/sh03/setup.c index d2a08ca5eb85..60290f8f289c 100644 --- a/arch/sh/boards/sh03/setup.c +++ b/arch/sh/boards/sh03/setup.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * | 5 | * |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | #include <linux/irq.h> | 9 | #include <linux/irq.h> |
11 | #include <linux/hdreg.h> | 10 | #include <linux/hdreg.h> |
diff --git a/arch/sh/boards/sh2000/setup.c b/arch/sh/boards/sh2000/setup.c index a290b1d09fb2..2fe6a11765e9 100644 --- a/arch/sh/boards/sh2000/setup.c +++ b/arch/sh/boards/sh2000/setup.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
13 | 12 | ||
diff --git a/arch/sh/boards/snapgear/setup.c b/arch/sh/boards/snapgear/setup.c index 08fc98342a0b..f1f7c70c9402 100644 --- a/arch/sh/boards/snapgear/setup.c +++ b/arch/sh/boards/snapgear/setup.c | |||
@@ -14,7 +14,6 @@ | |||
14 | */ | 14 | */ |
15 | /****************************************************************************/ | 15 | /****************************************************************************/ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | #include <linux/irq.h> | 18 | #include <linux/irq.h> |
20 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
@@ -51,7 +50,7 @@ static int __init eraseconfig_init(void) | |||
51 | { | 50 | { |
52 | printk("SnapGear: EraseConfig init\n"); | 51 | printk("SnapGear: EraseConfig init\n"); |
53 | /* Setup "EraseConfig" switch on external IRQ 0 */ | 52 | /* Setup "EraseConfig" switch on external IRQ 0 */ |
54 | if (request_irq(IRL0_IRQ, eraseconfig_interrupt, SA_INTERRUPT, | 53 | if (request_irq(IRL0_IRQ, eraseconfig_interrupt, IRQF_DISABLED, |
55 | "Erase Config", NULL)) | 54 | "Erase Config", NULL)) |
56 | printk("SnapGear: failed to register IRQ%d for Reset witch\n", | 55 | printk("SnapGear: failed to register IRQ%d for Reset witch\n", |
57 | IRL0_IRQ); | 56 | IRL0_IRQ); |
diff --git a/arch/sh/boards/superh/microdev/io.c b/arch/sh/boards/superh/microdev/io.c index 1ed7f880b8c7..4836b9422e27 100644 --- a/arch/sh/boards/superh/microdev/io.c +++ b/arch/sh/boards/superh/microdev/io.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * License. See linux/COPYING for more information. | 11 | * License. See linux/COPYING for more information. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/pci.h> | 15 | #include <linux/pci.h> |
17 | #include <linux/wait.h> | 16 | #include <linux/wait.h> |
diff --git a/arch/sh/boards/superh/microdev/irq.c b/arch/sh/boards/superh/microdev/irq.c index efcbd86b7cd2..236398fbc083 100644 --- a/arch/sh/boards/superh/microdev/irq.c +++ b/arch/sh/boards/superh/microdev/irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * License. See linux/COPYING for more information. | 9 | * License. See linux/COPYING for more information. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
15 | 14 | ||
@@ -147,7 +146,7 @@ static void enable_microdev_irq(unsigned int irq) | |||
147 | static void __init make_microdev_irq(unsigned int irq) | 146 | static void __init make_microdev_irq(unsigned int irq) |
148 | { | 147 | { |
149 | disable_irq_nosync(irq); | 148 | disable_irq_nosync(irq); |
150 | irq_desc[irq].handler = µdev_irq_type; | 149 | irq_desc[irq].chip = µdev_irq_type; |
151 | disable_microdev_irq(irq); | 150 | disable_microdev_irq(irq); |
152 | } | 151 | } |
153 | 152 | ||
diff --git a/arch/sh/boards/superh/microdev/led.c b/arch/sh/boards/superh/microdev/led.c index 52a98e69d3f0..a38f5351bd16 100644 --- a/arch/sh/boards/superh/microdev/led.c +++ b/arch/sh/boards/superh/microdev/led.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/io.h> | 12 | #include <asm/io.h> |
14 | 13 | ||
15 | #define LED_REGISTER 0xa6104d20 | 14 | #define LED_REGISTER 0xa6104d20 |
diff --git a/arch/sh/boards/superh/microdev/setup.c b/arch/sh/boards/superh/microdev/setup.c index 892b14d31405..61b402a3f5d7 100644 --- a/arch/sh/boards/superh/microdev/setup.c +++ b/arch/sh/boards/superh/microdev/setup.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * License. See linux/COPYING for more information. | 11 | * License. See linux/COPYING for more information. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
17 | #include <linux/ioport.h> | 16 | #include <linux/ioport.h> |
diff --git a/arch/sh/boards/unknown/setup.c b/arch/sh/boards/unknown/setup.c index 02e84f03f45c..c5e4ed10876b 100644 --- a/arch/sh/boards/unknown/setup.c +++ b/arch/sh/boards/unknown/setup.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * method to start debugging a new board during bring-up until proper board | 12 | * method to start debugging a new board during bring-up until proper board |
13 | * setup code is written. | 13 | * setup code is written. |
14 | */ | 14 | */ |
15 | #include <linux/config.h> | ||
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <asm/machvec.h> | 16 | #include <asm/machvec.h> |
18 | #include <asm/irq.h> | 17 | #include <asm/irq.h> |
diff --git a/arch/sh/boot/compressed/head.S b/arch/sh/boot/compressed/head.S index 88db04d325fb..4c26a192277d 100644 --- a/arch/sh/boot/compressed/head.S +++ b/arch/sh/boot/compressed/head.S | |||
@@ -7,7 +7,6 @@ | |||
7 | 7 | ||
8 | .text | 8 | .text |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
12 | 11 | ||
13 | .global startup | 12 | .global startup |
diff --git a/arch/sh/boot/compressed/misc.c b/arch/sh/boot/compressed/misc.c index 211e9110074f..f2fed5ce5cc3 100644 --- a/arch/sh/boot/compressed/misc.c +++ b/arch/sh/boot/compressed/misc.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Modified to use standard LinuxSH BIOS by Greg Banks 7Jul2000 | 11 | * Modified to use standard LinuxSH BIOS by Greg Banks 7Jul2000 |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <asm/uaccess.h> | 14 | #include <asm/uaccess.h> |
16 | #ifdef CONFIG_SH_STANDARD_BIOS | 15 | #ifdef CONFIG_SH_STANDARD_BIOS |
17 | #include <asm/sh_bios.h> | 16 | #include <asm/sh_bios.h> |
diff --git a/arch/sh/cchips/hd6446x/hd64461/io.c b/arch/sh/cchips/hd6446x/hd64461/io.c index 4c062d6b7a97..ac3062671db7 100644 --- a/arch/sh/cchips/hd6446x/hd64461/io.c +++ b/arch/sh/cchips/hd6446x/hd64461/io.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Typical I/O routines for HD64461 system. | 4 | * Typical I/O routines for HD64461 system. |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/io.h> | 7 | #include <asm/io.h> |
9 | #include <asm/hd64461/hd64461.h> | 8 | #include <asm/hd64461/hd64461.h> |
10 | 9 | ||
diff --git a/arch/sh/cchips/hd6446x/hd64461/setup.c b/arch/sh/cchips/hd6446x/hd64461/setup.c index f014b9bf6922..ad126016720f 100644 --- a/arch/sh/cchips/hd6446x/hd64461/setup.c +++ b/arch/sh/cchips/hd6446x/hd64461/setup.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Hitachi HD64461 companion chip support | 4 | * Hitachi HD64461 companion chip support |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
@@ -134,7 +133,7 @@ int hd64461_irq_demux(int irq) | |||
134 | return __irq_demux(irq); | 133 | return __irq_demux(irq); |
135 | } | 134 | } |
136 | 135 | ||
137 | static struct irqaction irq0 = { hd64461_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "HD64461", NULL, NULL }; | 136 | static struct irqaction irq0 = { hd64461_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "HD64461", NULL, NULL }; |
138 | 137 | ||
139 | int __init setup_hd64461(void) | 138 | int __init setup_hd64461(void) |
140 | { | 139 | { |
@@ -154,7 +153,7 @@ int __init setup_hd64461(void) | |||
154 | outw(0xffff, HD64461_NIMR); | 153 | outw(0xffff, HD64461_NIMR); |
155 | 154 | ||
156 | for (i = HD64461_IRQBASE; i < HD64461_IRQBASE + 16; i++) { | 155 | for (i = HD64461_IRQBASE; i < HD64461_IRQBASE + 16; i++) { |
157 | irq_desc[i].handler = &hd64461_irq_type; | 156 | irq_desc[i].chip = &hd64461_irq_type; |
158 | } | 157 | } |
159 | 158 | ||
160 | setup_irq(CONFIG_HD64461_IRQ, &irq0); | 159 | setup_irq(CONFIG_HD64461_IRQ, &irq0); |
diff --git a/arch/sh/cchips/hd6446x/hd64465/gpio.c b/arch/sh/cchips/hd6446x/hd64465/gpio.c index 9785fdef868e..72320d02d69a 100644 --- a/arch/sh/cchips/hd6446x/hd64465/gpio.c +++ b/arch/sh/cchips/hd6446x/hd64465/gpio.c | |||
@@ -170,7 +170,7 @@ static int __init hd64465_gpio_init(void) | |||
170 | if (!request_region(HD64465_REG_GPACR, 0x1000, MODNAME)) | 170 | if (!request_region(HD64465_REG_GPACR, 0x1000, MODNAME)) |
171 | return -EBUSY; | 171 | return -EBUSY; |
172 | if (request_irq(HD64465_IRQ_GPIO, hd64465_gpio_interrupt, | 172 | if (request_irq(HD64465_IRQ_GPIO, hd64465_gpio_interrupt, |
173 | SA_INTERRUPT, MODNAME, 0)) | 173 | IRQF_DISABLED, MODNAME, 0)) |
174 | goto out_irqfailed; | 174 | goto out_irqfailed; |
175 | 175 | ||
176 | printk("HD64465 GPIO layer on irq %d\n", HD64465_IRQ_GPIO); | 176 | printk("HD64465 GPIO layer on irq %d\n", HD64465_IRQ_GPIO); |
diff --git a/arch/sh/cchips/hd6446x/hd64465/io.c b/arch/sh/cchips/hd6446x/hd64465/io.c index 84cb142def0b..58704d066ae2 100644 --- a/arch/sh/cchips/hd6446x/hd64465/io.c +++ b/arch/sh/cchips/hd6446x/hd64465/io.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Typical I/O routines for HD64465 system. | 9 | * Typical I/O routines for HD64465 system. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <asm/io.h> | 14 | #include <asm/io.h> |
diff --git a/arch/sh/cchips/hd6446x/hd64465/setup.c b/arch/sh/cchips/hd6446x/hd64465/setup.c index 68e4c4e4283d..d2b2851bc44b 100644 --- a/arch/sh/cchips/hd6446x/hd64465/setup.c +++ b/arch/sh/cchips/hd6446x/hd64465/setup.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 2000 YAEGASHI Takeshi | 9 | * Copyright (C) 2000 YAEGASHI Takeshi |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
@@ -154,7 +153,7 @@ int hd64465_irq_demux(int irq) | |||
154 | return irq; | 153 | return irq; |
155 | } | 154 | } |
156 | 155 | ||
157 | static struct irqaction irq0 = { hd64465_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "HD64465", NULL, NULL}; | 156 | static struct irqaction irq0 = { hd64465_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "HD64465", NULL, NULL}; |
158 | 157 | ||
159 | 158 | ||
160 | static int __init setup_hd64465(void) | 159 | static int __init setup_hd64465(void) |
@@ -182,7 +181,7 @@ static int __init setup_hd64465(void) | |||
182 | outw(0xffff, HD64465_REG_NIMR); /* mask all interrupts */ | 181 | outw(0xffff, HD64465_REG_NIMR); /* mask all interrupts */ |
183 | 182 | ||
184 | for (i = 0; i < HD64465_IRQ_NUM ; i++) { | 183 | for (i = 0; i < HD64465_IRQ_NUM ; i++) { |
185 | irq_desc[HD64465_IRQ_BASE + i].handler = &hd64465_irq_type; | 184 | irq_desc[HD64465_IRQ_BASE + i].chip = &hd64465_irq_type; |
186 | } | 185 | } |
187 | 186 | ||
188 | setup_irq(CONFIG_HD64465_IRQ, &irq0); | 187 | setup_irq(CONFIG_HD64465_IRQ, &irq0); |
diff --git a/arch/sh/cchips/voyagergx/irq.c b/arch/sh/cchips/voyagergx/irq.c index 2ee330b3c38f..0dc1fb8f9687 100644 --- a/arch/sh/cchips/voyagergx/irq.c +++ b/arch/sh/cchips/voyagergx/irq.c | |||
@@ -21,7 +21,6 @@ | |||
21 | 21 | ||
22 | #undef DEBUG | 22 | #undef DEBUG |
23 | 23 | ||
24 | #include <linux/config.h> | ||
25 | #include <linux/sched.h> | 24 | #include <linux/sched.h> |
26 | #include <linux/module.h> | 25 | #include <linux/module.h> |
27 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
@@ -166,7 +165,7 @@ int voyagergx_irq_demux(int irq) | |||
166 | static struct irqaction irq0 = { | 165 | static struct irqaction irq0 = { |
167 | .name = "voyagergx", | 166 | .name = "voyagergx", |
168 | .handler = voyagergx_interrupt, | 167 | .handler = voyagergx_interrupt, |
169 | .flags = SA_INTERRUPT, | 168 | .flags = IRQF_DISABLED, |
170 | .mask = CPU_MASK_NONE, | 169 | .mask = CPU_MASK_NONE, |
171 | }; | 170 | }; |
172 | 171 | ||
@@ -191,7 +190,7 @@ void __init setup_voyagergx_irq(void) | |||
191 | flag = 1; | 190 | flag = 1; |
192 | } | 191 | } |
193 | if (flag == 1) | 192 | if (flag == 1) |
194 | irq_desc[VOYAGER_IRQ_BASE + i].handler = &voyagergx_irq_type; | 193 | irq_desc[VOYAGER_IRQ_BASE + i].chip = &voyagergx_irq_type; |
195 | } | 194 | } |
196 | 195 | ||
197 | setup_irq(IRQ_VOYAGER, &irq0); | 196 | setup_irq(IRQ_VOYAGER, &irq0); |
diff --git a/arch/sh/drivers/dma/dma-g2.c b/arch/sh/drivers/dma/dma-g2.c index 5afab6f56ec3..0f866f8789f0 100644 --- a/arch/sh/drivers/dma/dma-g2.c +++ b/arch/sh/drivers/dma/dma-g2.c | |||
@@ -56,7 +56,7 @@ static irqreturn_t g2_dma_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
56 | static struct irqaction g2_dma_irq = { | 56 | static struct irqaction g2_dma_irq = { |
57 | .name = "g2 DMA handler", | 57 | .name = "g2 DMA handler", |
58 | .handler = g2_dma_interrupt, | 58 | .handler = g2_dma_interrupt, |
59 | .flags = SA_INTERRUPT, | 59 | .flags = IRQF_DISABLED, |
60 | }; | 60 | }; |
61 | 61 | ||
62 | static int g2_enable_dma(struct dma_channel *chan) | 62 | static int g2_enable_dma(struct dma_channel *chan) |
diff --git a/arch/sh/drivers/dma/dma-pvr2.c b/arch/sh/drivers/dma/dma-pvr2.c index df604975ccc8..30a580aa7cbd 100644 --- a/arch/sh/drivers/dma/dma-pvr2.c +++ b/arch/sh/drivers/dma/dma-pvr2.c | |||
@@ -70,7 +70,7 @@ static int pvr2_xfer_dma(struct dma_channel *chan) | |||
70 | static struct irqaction pvr2_dma_irq = { | 70 | static struct irqaction pvr2_dma_irq = { |
71 | .name = "pvr2 DMA handler", | 71 | .name = "pvr2 DMA handler", |
72 | .handler = pvr2_dma_interrupt, | 72 | .handler = pvr2_dma_interrupt, |
73 | .flags = SA_INTERRUPT, | 73 | .flags = IRQF_DISABLED, |
74 | }; | 74 | }; |
75 | 75 | ||
76 | static struct dma_ops pvr2_dma_ops = { | 76 | static struct dma_ops pvr2_dma_ops = { |
diff --git a/arch/sh/drivers/dma/dma-sh.c b/arch/sh/drivers/dma/dma-sh.c index cca26c4c9d1b..e028a2d2a4ea 100644 --- a/arch/sh/drivers/dma/dma-sh.c +++ b/arch/sh/drivers/dma/dma-sh.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * for more details. | 12 | * for more details. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/irq.h> | 16 | #include <linux/irq.h> |
18 | #include <linux/interrupt.h> | 17 | #include <linux/interrupt.h> |
@@ -91,7 +90,7 @@ static int sh_dmac_request_dma(struct dma_channel *chan) | |||
91 | chan->chan); | 90 | chan->chan); |
92 | 91 | ||
93 | return request_irq(get_dmte_irq(chan->chan), dma_tei, | 92 | return request_irq(get_dmte_irq(chan->chan), dma_tei, |
94 | SA_INTERRUPT, name, chan); | 93 | IRQF_DISABLED, name, chan); |
95 | } | 94 | } |
96 | 95 | ||
97 | static void sh_dmac_free_dma(struct dma_channel *chan) | 96 | static void sh_dmac_free_dma(struct dma_channel *chan) |
@@ -259,7 +258,7 @@ static int __init sh_dmac_init(void) | |||
259 | 258 | ||
260 | #ifdef CONFIG_CPU_SH4 | 259 | #ifdef CONFIG_CPU_SH4 |
261 | make_ipr_irq(DMAE_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY); | 260 | make_ipr_irq(DMAE_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY); |
262 | i = request_irq(DMAE_IRQ, dma_err, SA_INTERRUPT, "DMAC Address Error", 0); | 261 | i = request_irq(DMAE_IRQ, dma_err, IRQF_DISABLED, "DMAC Address Error", 0); |
263 | if (i < 0) | 262 | if (i < 0) |
264 | return i; | 263 | return i; |
265 | #endif | 264 | #endif |
diff --git a/arch/sh/drivers/pci/dma-dreamcast.c b/arch/sh/drivers/pci/dma-dreamcast.c index e12418bb1fa5..6acf02b9375b 100644 --- a/arch/sh/drivers/pci/dma-dreamcast.c +++ b/arch/sh/drivers/pci/dma-dreamcast.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * for more details. | 15 | * for more details. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/param.h> | 20 | #include <linux/param.h> |
diff --git a/arch/sh/drivers/pci/fixups-dreamcast.c b/arch/sh/drivers/pci/fixups-dreamcast.c index cf30e2fa51be..63b1c6f4b8d2 100644 --- a/arch/sh/drivers/pci/fixups-dreamcast.c +++ b/arch/sh/drivers/pci/fixups-dreamcast.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * for more details. | 15 | * for more details. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/param.h> | 20 | #include <linux/param.h> |
diff --git a/arch/sh/drivers/pci/ops-bigsur.c b/arch/sh/drivers/pci/ops-bigsur.c index 9b43da67804b..ae82c6ca05e5 100644 --- a/arch/sh/drivers/pci/ops-bigsur.c +++ b/arch/sh/drivers/pci/ops-bigsur.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * PCI initialization for the Hitachi Big Sur Evaluation Board | 11 | * PCI initialization for the Hitachi Big Sur Evaluation Board |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/sh/drivers/pci/ops-dreamcast.c b/arch/sh/drivers/pci/ops-dreamcast.c index 69af80b93e3f..23d52791917e 100644 --- a/arch/sh/drivers/pci/ops-dreamcast.c +++ b/arch/sh/drivers/pci/ops-dreamcast.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * for more details. | 15 | * for more details. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/param.h> | 20 | #include <linux/param.h> |
diff --git a/arch/sh/drivers/pci/ops-rts7751r2d.c b/arch/sh/drivers/pci/ops-rts7751r2d.c index beafa11f4d0c..83171d10141a 100644 --- a/arch/sh/drivers/pci/ops-rts7751r2d.c +++ b/arch/sh/drivers/pci/ops-rts7751r2d.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * PCI initialization for the Renesas SH7751R RTS7751R2D board | 11 | * PCI initialization for the Renesas SH7751R RTS7751R2D board |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/sh/drivers/pci/ops-sh03.c b/arch/sh/drivers/pci/ops-sh03.c index df2199732348..e58d556e5f94 100644 --- a/arch/sh/drivers/pci/ops-sh03.c +++ b/arch/sh/drivers/pci/ops-sh03.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * PCI initialization for the Interface CTP/PCI-SH03 board | 4 | * PCI initialization for the Interface CTP/PCI-SH03 board |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/types.h> | 8 | #include <linux/types.h> |
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
diff --git a/arch/sh/drivers/pci/ops-snapgear.c b/arch/sh/drivers/pci/ops-snapgear.c index 6fdb9765c99a..3cbd14dd28fe 100644 --- a/arch/sh/drivers/pci/ops-snapgear.c +++ b/arch/sh/drivers/pci/ops-snapgear.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * PCI initialization for the SnapGear boards | 13 | * PCI initialization for the SnapGear boards |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/types.h> | 17 | #include <linux/types.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
diff --git a/arch/sh/drivers/pci/pci-sh7751.c b/arch/sh/drivers/pci/pci-sh7751.c index 30b14ac7ae5a..682f3dae305d 100644 --- a/arch/sh/drivers/pci/pci-sh7751.c +++ b/arch/sh/drivers/pci/pci-sh7751.c | |||
@@ -15,7 +15,6 @@ | |||
15 | 15 | ||
16 | #undef DEBUG | 16 | #undef DEBUG |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/types.h> | 18 | #include <linux/types.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |
diff --git a/arch/sh/drivers/pci/pci-st40.c b/arch/sh/drivers/pci/pci-st40.c index cb6752131156..7c81b8b65bb5 100644 --- a/arch/sh/drivers/pci/pci-st40.c +++ b/arch/sh/drivers/pci/pci-st40.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Support functions for the ST40 PCI hardware. | 7 | * Support functions for the ST40 PCI hardware. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/smp.h> | 11 | #include <linux/smp.h> |
13 | #include <linux/smp_lock.h> | 12 | #include <linux/smp_lock.h> |
@@ -448,7 +447,7 @@ static int __init pcibios_init(void) | |||
448 | PHYSADDR(memory_end) - PHYSADDR(memory_start)); | 447 | PHYSADDR(memory_end) - PHYSADDR(memory_start)); |
449 | 448 | ||
450 | if (request_irq(ST40PCI_ERR_IRQ, st40_pci_irq, | 449 | if (request_irq(ST40PCI_ERR_IRQ, st40_pci_irq, |
451 | SA_INTERRUPT, "st40pci", NULL)) { | 450 | IRQF_DISABLED, "st40pci", NULL)) { |
452 | printk(KERN_ERR "st40pci: Cannot hook interrupt\n"); | 451 | printk(KERN_ERR "st40pci: Cannot hook interrupt\n"); |
453 | return -EIO; | 452 | return -EIO; |
454 | } | 453 | } |
diff --git a/arch/sh/drivers/pci/pci.c b/arch/sh/drivers/pci/pci.c index c1669905abe4..3d546ba329cf 100644 --- a/arch/sh/drivers/pci/pci.c +++ b/arch/sh/drivers/pci/pci.c | |||
@@ -75,7 +75,7 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root, | |||
75 | } | 75 | } |
76 | 76 | ||
77 | void pcibios_align_resource(void *data, struct resource *res, | 77 | void pcibios_align_resource(void *data, struct resource *res, |
78 | unsigned long size, unsigned long align) | 78 | resource_size_t size, resource_size_t align) |
79 | __attribute__ ((weak)); | 79 | __attribute__ ((weak)); |
80 | 80 | ||
81 | /* | 81 | /* |
@@ -85,10 +85,10 @@ void pcibios_align_resource(void *data, struct resource *res, | |||
85 | * modulo 0x400. | 85 | * modulo 0x400. |
86 | */ | 86 | */ |
87 | void pcibios_align_resource(void *data, struct resource *res, | 87 | void pcibios_align_resource(void *data, struct resource *res, |
88 | unsigned long size, unsigned long align) | 88 | resource_size_t size, resource_size_t align) |
89 | { | 89 | { |
90 | if (res->flags & IORESOURCE_IO) { | 90 | if (res->flags & IORESOURCE_IO) { |
91 | unsigned long start = res->start; | 91 | resource_size_t start = res->start; |
92 | 92 | ||
93 | if (start & 0x300) { | 93 | if (start & 0x300) { |
94 | start = (start + 0x3ff) & ~0x3ff; | 94 | start = (start + 0x3ff) & ~0x3ff; |
diff --git a/arch/sh/kernel/cf-enabler.c b/arch/sh/kernel/cf-enabler.c index 7a3b18faa277..f1f9ab87f0b0 100644 --- a/arch/sh/kernel/cf-enabler.c +++ b/arch/sh/kernel/cf-enabler.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Enable the CF configuration. | 9 | * Enable the CF configuration. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
14 | 13 | ||
15 | #include <asm/io.h> | 14 | #include <asm/io.h> |
diff --git a/arch/sh/kernel/cpu/irq/imask.c b/arch/sh/kernel/cpu/irq/imask.c index baed9a550d39..a33ae3e0a5a5 100644 --- a/arch/sh/kernel/cpu/irq/imask.c +++ b/arch/sh/kernel/cpu/irq/imask.c | |||
@@ -105,6 +105,6 @@ static void shutdown_imask_irq(unsigned int irq) | |||
105 | void make_imask_irq(unsigned int irq) | 105 | void make_imask_irq(unsigned int irq) |
106 | { | 106 | { |
107 | disable_irq_nosync(irq); | 107 | disable_irq_nosync(irq); |
108 | irq_desc[irq].handler = &imask_irq_type; | 108 | irq_desc[irq].chip = &imask_irq_type; |
109 | enable_irq(irq); | 109 | enable_irq(irq); |
110 | } | 110 | } |
diff --git a/arch/sh/kernel/cpu/irq/intc2.c b/arch/sh/kernel/cpu/irq/intc2.c index 06e8afab32e4..30064bf6e154 100644 --- a/arch/sh/kernel/cpu/irq/intc2.c +++ b/arch/sh/kernel/cpu/irq/intc2.c | |||
@@ -137,7 +137,7 @@ void make_intc2_irq(unsigned int irq, | |||
137 | 137 | ||
138 | local_irq_restore(flags); | 138 | local_irq_restore(flags); |
139 | 139 | ||
140 | irq_desc[irq].handler = &intc2_irq_type; | 140 | irq_desc[irq].chip = &intc2_irq_type; |
141 | 141 | ||
142 | disable_intc2_irq(irq); | 142 | disable_intc2_irq(irq); |
143 | } | 143 | } |
diff --git a/arch/sh/kernel/cpu/irq/ipr.c b/arch/sh/kernel/cpu/irq/ipr.c index e55150ed0856..0f545941fb4f 100644 --- a/arch/sh/kernel/cpu/irq/ipr.c +++ b/arch/sh/kernel/cpu/irq/ipr.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
21 | #include <linux/module.h> | 20 | #include <linux/module.h> |
@@ -115,7 +114,7 @@ void make_ipr_irq(unsigned int irq, unsigned int addr, int pos, int priority) | |||
115 | ipr_data[irq].shift = pos*4; /* POSition (0-3) x 4 means shift */ | 114 | ipr_data[irq].shift = pos*4; /* POSition (0-3) x 4 means shift */ |
116 | ipr_data[irq].priority = priority; | 115 | ipr_data[irq].priority = priority; |
117 | 116 | ||
118 | irq_desc[irq].handler = &ipr_irq_type; | 117 | irq_desc[irq].chip = &ipr_irq_type; |
119 | disable_ipr_irq(irq); | 118 | disable_ipr_irq(irq); |
120 | } | 119 | } |
121 | 120 | ||
diff --git a/arch/sh/kernel/cpu/irq/pint.c b/arch/sh/kernel/cpu/irq/pint.c index 95d6024fe1ae..80cd8108d36a 100644 --- a/arch/sh/kernel/cpu/irq/pint.c +++ b/arch/sh/kernel/cpu/irq/pint.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * for more details. | 10 | * for more details. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
@@ -85,7 +84,7 @@ static void end_pint_irq(unsigned int irq) | |||
85 | void make_pint_irq(unsigned int irq) | 84 | void make_pint_irq(unsigned int irq) |
86 | { | 85 | { |
87 | disable_irq_nosync(irq); | 86 | disable_irq_nosync(irq); |
88 | irq_desc[irq].handler = &pint_irq_type; | 87 | irq_desc[irq].chip = &pint_irq_type; |
89 | disable_pint_irq(irq); | 88 | disable_pint_irq(irq); |
90 | } | 89 | } |
91 | 90 | ||
diff --git a/arch/sh/kernel/cpu/sh3/ex.S b/arch/sh/kernel/cpu/sh3/ex.S index 966c0858b714..cc04e9e239ff 100644 --- a/arch/sh/kernel/cpu/sh3/ex.S +++ b/arch/sh/kernel/cpu/sh3/ex.S | |||
@@ -12,7 +12,6 @@ | |||
12 | * | 12 | * |
13 | */ | 13 | */ |
14 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
15 | #include <linux/config.h> | ||
16 | 15 | ||
17 | .align 2 | 16 | .align 2 |
18 | .data | 17 | .data |
diff --git a/arch/sh/kernel/cpu/sh4/ex.S b/arch/sh/kernel/cpu/sh4/ex.S index 8221e9d15515..26a27df06505 100644 --- a/arch/sh/kernel/cpu/sh4/ex.S +++ b/arch/sh/kernel/cpu/sh4/ex.S | |||
@@ -12,7 +12,6 @@ | |||
12 | * | 12 | * |
13 | */ | 13 | */ |
14 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
15 | #include <linux/config.h> | ||
16 | 15 | ||
17 | .align 2 | 16 | .align 2 |
18 | .data | 17 | .data |
diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c index 8437ea7430fe..781dbb11c038 100644 --- a/arch/sh/kernel/cpu/sh4/sq.c +++ b/arch/sh/kernel/cpu/sh4/sq.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | #include <linux/config.h> | ||
23 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
24 | #include <linux/list.h> | 23 | #include <linux/list.h> |
25 | #include <linux/proc_fs.h> | 24 | #include <linux/proc_fs.h> |
@@ -417,7 +416,6 @@ static struct file_operations sq_fops = { | |||
417 | static struct miscdevice sq_dev = { | 416 | static struct miscdevice sq_dev = { |
418 | .minor = STORE_QUEUE_MINOR, | 417 | .minor = STORE_QUEUE_MINOR, |
419 | .name = "sq", | 418 | .name = "sq", |
420 | .devfs_name = "cpu/sq", | ||
421 | .fops = &sq_fops, | 419 | .fops = &sq_fops, |
422 | }; | 420 | }; |
423 | 421 | ||
diff --git a/arch/sh/kernel/entry.S b/arch/sh/kernel/entry.S index a440d36ee618..7dfd2ba75f7f 100644 --- a/arch/sh/kernel/entry.S +++ b/arch/sh/kernel/entry.S | |||
@@ -13,7 +13,6 @@ | |||
13 | 13 | ||
14 | #include <linux/sys.h> | 14 | #include <linux/sys.h> |
15 | #include <linux/linkage.h> | 15 | #include <linux/linkage.h> |
16 | #include <linux/config.h> | ||
17 | #include <asm/asm-offsets.h> | 16 | #include <asm/asm-offsets.h> |
18 | #include <asm/thread_info.h> | 17 | #include <asm/thread_info.h> |
19 | #include <asm/cpu/mmu_context.h> | 18 | #include <asm/cpu/mmu_context.h> |
diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c index b56e79632f24..c2e07f7f3496 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c | |||
@@ -47,7 +47,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
47 | goto unlock; | 47 | goto unlock; |
48 | seq_printf(p, "%3d: ",i); | 48 | seq_printf(p, "%3d: ",i); |
49 | seq_printf(p, "%10u ", kstat_irqs(i)); | 49 | seq_printf(p, "%10u ", kstat_irqs(i)); |
50 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 50 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
51 | seq_printf(p, " %s", action->name); | 51 | seq_printf(p, " %s", action->name); |
52 | 52 | ||
53 | for (action=action->next; action; action = action->next) | 53 | for (action=action->next; action; action = action->next) |
diff --git a/arch/sh/kernel/ptrace.c b/arch/sh/kernel/ptrace.c index 3887b4f6feb2..f7eebbde3291 100644 --- a/arch/sh/kernel/ptrace.c +++ b/arch/sh/kernel/ptrace.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
diff --git a/arch/sh/kernel/relocate_kernel.S b/arch/sh/kernel/relocate_kernel.S index b0695cffec6e..8221b37c9773 100644 --- a/arch/sh/kernel/relocate_kernel.S +++ b/arch/sh/kernel/relocate_kernel.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * Version 2. See the file COPYING for more details. | 8 | * Version 2. See the file COPYING for more details. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/linkage.h> | 11 | #include <linux/linkage.h> |
13 | 12 | ||
14 | #define PAGE_SIZE 4096 /* must be same value as in <asm/page.h> */ | 13 | #define PAGE_SIZE 4096 /* must be same value as in <asm/page.h> */ |
diff --git a/arch/sh/kernel/sh_ksyms.c b/arch/sh/kernel/sh_ksyms.c index d5d032533a8b..245ed8f945e8 100644 --- a/arch/sh/kernel/sh_ksyms.c +++ b/arch/sh/kernel/sh_ksyms.c | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/module.h> | 1 | #include <linux/module.h> |
3 | #include <linux/smp.h> | 2 | #include <linux/smp.h> |
4 | #include <linux/user.h> | 3 | #include <linux/user.h> |
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c index 62c7d1c0ad7b..6c0fb7c4af11 100644 --- a/arch/sh/kernel/smp.c +++ b/arch/sh/kernel/smp.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Free Software Foundation; either version 2 of the License, or (at your | 10 | * Free Software Foundation; either version 2 of the License, or (at your |
11 | * option) any later version. | 11 | * option) any later version. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/cache.h> | 13 | #include <linux/cache.h> |
15 | #include <linux/cpumask.h> | 14 | #include <linux/cpumask.h> |
16 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
diff --git a/arch/sh/kernel/time.c b/arch/sh/kernel/time.c index 314a275c04e0..a1589f85499d 100644 --- a/arch/sh/kernel/time.c +++ b/arch/sh/kernel/time.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Copyright (C) 1991, 1992, 1995 Linus Torvalds | 10 | * Copyright (C) 1991, 1992, 1995 Linus Torvalds |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
diff --git a/arch/sh/kernel/timers/timer-tmu.c b/arch/sh/kernel/timers/timer-tmu.c index 96a64cb13106..d4212add53b2 100644 --- a/arch/sh/kernel/timers/timer-tmu.c +++ b/arch/sh/kernel/timers/timer-tmu.c | |||
@@ -107,7 +107,7 @@ static irqreturn_t tmu_timer_interrupt(int irq, void *dev_id, | |||
107 | static struct irqaction tmu_irq = { | 107 | static struct irqaction tmu_irq = { |
108 | .name = "timer", | 108 | .name = "timer", |
109 | .handler = tmu_timer_interrupt, | 109 | .handler = tmu_timer_interrupt, |
110 | .flags = SA_INTERRUPT, | 110 | .flags = IRQF_DISABLED, |
111 | .mask = CPU_MASK_NONE, | 111 | .mask = CPU_MASK_NONE, |
112 | }; | 112 | }; |
113 | 113 | ||
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c index 7eb06719d844..d9db1180f770 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * 'Traps.c' handles hardware traps and faults after we have saved some | 12 | * 'Traps.c' handles hardware traps and faults after we have saved some |
13 | * state in 'entry.S'. | 13 | * state in 'entry.S'. |
14 | */ | 14 | */ |
15 | #include <linux/config.h> | ||
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/string.h> | 17 | #include <linux/string.h> |
diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index 51bdc1cf7838..95fdd9135fcf 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S | |||
@@ -2,7 +2,6 @@ | |||
2 | * ld script to make SuperH Linux kernel | 2 | * ld script to make SuperH Linux kernel |
3 | * Written by Niibe Yutaka | 3 | * Written by Niibe Yutaka |
4 | */ | 4 | */ |
5 | #include <linux/config.h> | ||
6 | #include <asm-generic/vmlinux.lds.h> | 5 | #include <asm-generic/vmlinux.lds.h> |
7 | 6 | ||
8 | #ifdef CONFIG_CPU_LITTLE_ENDIAN | 7 | #ifdef CONFIG_CPU_LITTLE_ENDIAN |
diff --git a/arch/sh/lib/memcpy-sh4.S b/arch/sh/lib/memcpy-sh4.S index 55f227441f9e..db6b736537ad 100644 --- a/arch/sh/lib/memcpy-sh4.S +++ b/arch/sh/lib/memcpy-sh4.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
11 | #include <linux/config.h> | ||
12 | 11 | ||
13 | /* | 12 | /* |
14 | * void *memcpy(void *dst, const void *src, size_t n); | 13 | * void *memcpy(void *dst, const void *src, size_t n); |
diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c index ab833adf28c3..524cea5b47f9 100644 --- a/arch/sh/mm/cache-sh4.c +++ b/arch/sh/mm/cache-sh4.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * for more details. | 10 | * for more details. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/mman.h> | 14 | #include <linux/mman.h> |
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
diff --git a/arch/sh/mm/clear_page.S b/arch/sh/mm/clear_page.S index ae58a61f0e66..08acead7b2a1 100644 --- a/arch/sh/mm/clear_page.S +++ b/arch/sh/mm/clear_page.S | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 2001, 2002 Niibe Yutaka | 6 | * Copyright (C) 2001, 2002 Niibe Yutaka |
7 | * | 7 | * |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/linkage.h> | 9 | #include <linux/linkage.h> |
11 | 10 | ||
12 | /* | 11 | /* |
diff --git a/arch/sh/mm/extable.c b/arch/sh/mm/extable.c index 505ede7c21bf..c1cf4463d09d 100644 --- a/arch/sh/mm/extable.c +++ b/arch/sh/mm/extable.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * linux/arch/i386/mm/extable.c | 4 | * linux/arch/i386/mm/extable.c |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/module.h> | 7 | #include <linux/module.h> |
9 | #include <asm/uaccess.h> | 8 | #include <asm/uaccess.h> |
10 | 9 | ||
diff --git a/arch/sh/mm/hugetlbpage.c b/arch/sh/mm/hugetlbpage.c index a3568fd51508..2a85bc15a412 100644 --- a/arch/sh/mm/hugetlbpage.c +++ b/arch/sh/mm/hugetlbpage.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 2002, 2003 David S. Miller (davem@redhat.com) | 8 | * Copyright (C) 2002, 2003 David S. Miller (davem@redhat.com) |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index 77b4a838fe10..8ea27ca4b700 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 1995 Linus Torvalds | 9 | * Copyright (C) 1995 Linus Torvalds |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/signal.h> | 12 | #include <linux/signal.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
diff --git a/arch/sh/mm/pg-sh4.c b/arch/sh/mm/pg-sh4.c index e5907c7330e5..c776b60fc250 100644 --- a/arch/sh/mm/pg-sh4.c +++ b/arch/sh/mm/pg-sh4.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | * Released under the terms of the GNU GPL v2.0. | 7 | * Released under the terms of the GNU GPL v2.0. |
8 | */ | 8 | */ |
9 | #include <linux/config.h> | ||
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
11 | #include <linux/mman.h> | 10 | #include <linux/mman.h> |
12 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
diff --git a/arch/sh64/boot/compressed/misc.c b/arch/sh64/boot/compressed/misc.c index 89dbf45df3c8..ee7a1b6acb83 100644 --- a/arch/sh64/boot/compressed/misc.c +++ b/arch/sh64/boot/compressed/misc.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Adapted for SHmedia from sh by Stuart Menefy, May 2002 | 9 | * Adapted for SHmedia from sh by Stuart Menefy, May 2002 |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <asm/uaccess.h> | 12 | #include <asm/uaccess.h> |
14 | 13 | ||
15 | /* cache.c */ | 14 | /* cache.c */ |
diff --git a/arch/sh64/boot/compressed/vmlinux.lds.S b/arch/sh64/boot/compressed/vmlinux.lds.S index 15a737d9bba8..59c2ef4aeda5 100644 --- a/arch/sh64/boot/compressed/vmlinux.lds.S +++ b/arch/sh64/boot/compressed/vmlinux.lds.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Modified by Stuart Menefy from arch/sh/vmlinux.lds.S written by Niibe Yutaka | 4 | * Modified by Stuart Menefy from arch/sh/vmlinux.lds.S written by Niibe Yutaka |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | 7 | ||
9 | #ifdef CONFIG_LITTLE_ENDIAN | 8 | #ifdef CONFIG_LITTLE_ENDIAN |
10 | /* OUTPUT_FORMAT("elf32-sh64l-linux", "elf32-sh64l-linux", "elf32-sh64l-linux") */ | 9 | /* OUTPUT_FORMAT("elf32-sh64l-linux", "elf32-sh64l-linux", "elf32-sh64l-linux") */ |
diff --git a/arch/sh64/kernel/alphanum.c b/arch/sh64/kernel/alphanum.c index 56d6f9f71524..9079d1e94f2b 100644 --- a/arch/sh64/kernel/alphanum.c +++ b/arch/sh64/kernel/alphanum.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Machine-independent functions for handling 8-digit alphanumeric display | 9 | * Machine-independent functions for handling 8-digit alphanumeric display |
10 | * (e.g. Agilent HDSP-253x) | 10 | * (e.g. Agilent HDSP-253x) |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/stddef.h> | 12 | #include <linux/stddef.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | 14 | ||
diff --git a/arch/sh64/kernel/dma.c b/arch/sh64/kernel/dma.c index 09cd9f4670b5..32c6f0549bf1 100644 --- a/arch/sh64/kernel/dma.c +++ b/arch/sh64/kernel/dma.c | |||
@@ -115,7 +115,7 @@ static irqreturn_t dma_mte(int irq, void *dev_id, struct pt_regs *regs) | |||
115 | 115 | ||
116 | static struct irqaction irq_dmte = { | 116 | static struct irqaction irq_dmte = { |
117 | .handler = dma_mte, | 117 | .handler = dma_mte, |
118 | .flags = SA_INTERRUPT, | 118 | .flags = IRQF_DISABLED, |
119 | .name = "DMA MTE", | 119 | .name = "DMA MTE", |
120 | }; | 120 | }; |
121 | 121 | ||
@@ -152,7 +152,7 @@ static irqreturn_t dma_err(int irq, void *dev_id, struct pt_regs *regs) | |||
152 | 152 | ||
153 | static struct irqaction irq_derr = { | 153 | static struct irqaction irq_derr = { |
154 | .handler = dma_err, | 154 | .handler = dma_err, |
155 | .flags = SA_INTERRUPT, | 155 | .flags = IRQF_DISABLED, |
156 | .name = "DMA Error", | 156 | .name = "DMA Error", |
157 | }; | 157 | }; |
158 | 158 | ||
diff --git a/arch/sh64/kernel/entry.S b/arch/sh64/kernel/entry.S index 2e2cfe20b426..40d45346248d 100644 --- a/arch/sh64/kernel/entry.S +++ b/arch/sh64/kernel/entry.S | |||
@@ -11,7 +11,6 @@ | |||
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
16 | #include <linux/sys.h> | 15 | #include <linux/sys.h> |
17 | 16 | ||
diff --git a/arch/sh64/kernel/head.S b/arch/sh64/kernel/head.S index cc0b628a9ea7..f3740ddbc471 100644 --- a/arch/sh64/kernel/head.S +++ b/arch/sh64/kernel/head.S | |||
@@ -20,7 +20,6 @@ | |||
20 | * Add early SCIF console DTLB mapping. | 20 | * Add early SCIF console DTLB mapping. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | 23 | ||
25 | #include <asm/page.h> | 24 | #include <asm/page.h> |
26 | #include <asm/mmu_context.h> | 25 | #include <asm/mmu_context.h> |
diff --git a/arch/sh64/kernel/irq.c b/arch/sh64/kernel/irq.c index d69879c0e063..e7e07f8749c9 100644 --- a/arch/sh64/kernel/irq.c +++ b/arch/sh64/kernel/irq.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * Naturally it's not a 1:1 relation, but there are similarities. | 15 | * Naturally it's not a 1:1 relation, but there are similarities. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
20 | #include <linux/kernel_stat.h> | 19 | #include <linux/kernel_stat.h> |
21 | #include <linux/signal.h> | 20 | #include <linux/signal.h> |
@@ -65,7 +64,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
65 | goto unlock; | 64 | goto unlock; |
66 | seq_printf(p, "%3d: ",i); | 65 | seq_printf(p, "%3d: ",i); |
67 | seq_printf(p, "%10u ", kstat_irqs(i)); | 66 | seq_printf(p, "%10u ", kstat_irqs(i)); |
68 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 67 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
69 | seq_printf(p, " %s", action->name); | 68 | seq_printf(p, " %s", action->name); |
70 | 69 | ||
71 | for (action=action->next; action; action = action->next) | 70 | for (action=action->next; action; action = action->next) |
diff --git a/arch/sh64/kernel/irq_intc.c b/arch/sh64/kernel/irq_intc.c index fc99bf4e362c..42c07d2e71d9 100644 --- a/arch/sh64/kernel/irq_intc.c +++ b/arch/sh64/kernel/irq_intc.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
@@ -178,7 +177,7 @@ static void end_intc_irq(unsigned int irq) | |||
178 | void make_intc_irq(unsigned int irq) | 177 | void make_intc_irq(unsigned int irq) |
179 | { | 178 | { |
180 | disable_irq_nosync(irq); | 179 | disable_irq_nosync(irq); |
181 | irq_desc[irq].handler = &intc_irq_type; | 180 | irq_desc[irq].chip = &intc_irq_type; |
182 | disable_intc_irq(irq); | 181 | disable_intc_irq(irq); |
183 | } | 182 | } |
184 | 183 | ||
@@ -208,7 +207,7 @@ void __init init_IRQ(void) | |||
208 | /* Set default: per-line enable/disable, priority driven ack/eoi */ | 207 | /* Set default: per-line enable/disable, priority driven ack/eoi */ |
209 | for (i = 0; i < NR_INTC_IRQS; i++) { | 208 | for (i = 0; i < NR_INTC_IRQS; i++) { |
210 | if (platform_int_priority[i] != NO_PRIORITY) { | 209 | if (platform_int_priority[i] != NO_PRIORITY) { |
211 | irq_desc[i].handler = &intc_irq_type; | 210 | irq_desc[i].chip = &intc_irq_type; |
212 | } | 211 | } |
213 | } | 212 | } |
214 | 213 | ||
diff --git a/arch/sh64/kernel/led.c b/arch/sh64/kernel/led.c index cf993c4a9fdc..e35d3f667fb4 100644 --- a/arch/sh64/kernel/led.c +++ b/arch/sh64/kernel/led.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | * Flash the LEDs | 9 | * Flash the LEDs |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/stddef.h> | 11 | #include <linux/stddef.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | 13 | ||
diff --git a/arch/sh64/kernel/pci_sh5.c b/arch/sh64/kernel/pci_sh5.c index 6197879e8578..9dae689b6a9b 100644 --- a/arch/sh64/kernel/pci_sh5.c +++ b/arch/sh64/kernel/pci_sh5.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Support functions for the SH5 PCI hardware. | 9 | * Support functions for the SH5 PCI hardware. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/rwsem.h> | 13 | #include <linux/rwsem.h> |
15 | #include <linux/smp.h> | 14 | #include <linux/smp.h> |
@@ -474,13 +473,13 @@ static void __init pcibios_size_bridges(void) | |||
474 | static int __init pcibios_init(void) | 473 | static int __init pcibios_init(void) |
475 | { | 474 | { |
476 | if (request_irq(IRQ_ERR, pcish5_err_irq, | 475 | if (request_irq(IRQ_ERR, pcish5_err_irq, |
477 | SA_INTERRUPT, "PCI Error",NULL) < 0) { | 476 | IRQF_DISABLED, "PCI Error",NULL) < 0) { |
478 | printk(KERN_ERR "PCISH5: Cannot hook PCI_PERR interrupt\n"); | 477 | printk(KERN_ERR "PCISH5: Cannot hook PCI_PERR interrupt\n"); |
479 | return -EINVAL; | 478 | return -EINVAL; |
480 | } | 479 | } |
481 | 480 | ||
482 | if (request_irq(IRQ_SERR, pcish5_serr_irq, | 481 | if (request_irq(IRQ_SERR, pcish5_serr_irq, |
483 | SA_INTERRUPT, "PCI SERR interrupt", NULL) < 0) { | 482 | IRQF_DISABLED, "PCI SERR interrupt", NULL) < 0) { |
484 | printk(KERN_ERR "PCISH5: Cannot hook PCI_SERR interrupt\n"); | 483 | printk(KERN_ERR "PCISH5: Cannot hook PCI_SERR interrupt\n"); |
485 | return -EINVAL; | 484 | return -EINVAL; |
486 | } | 485 | } |
diff --git a/arch/sh64/kernel/pcibios.c b/arch/sh64/kernel/pcibios.c index 50c61dcb9fae..945920bc24db 100644 --- a/arch/sh64/kernel/pcibios.c +++ b/arch/sh64/kernel/pcibios.c | |||
@@ -69,10 +69,10 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root, | |||
69 | * modulo 0x400. | 69 | * modulo 0x400. |
70 | */ | 70 | */ |
71 | void pcibios_align_resource(void *data, struct resource *res, | 71 | void pcibios_align_resource(void *data, struct resource *res, |
72 | unsigned long size, unsigned long align) | 72 | resource_size_t size, resource_size_t align) |
73 | { | 73 | { |
74 | if (res->flags & IORESOURCE_IO) { | 74 | if (res->flags & IORESOURCE_IO) { |
75 | unsigned long start = res->start; | 75 | resource_size_t start = res->start; |
76 | 76 | ||
77 | if (start & 0x300) { | 77 | if (start & 0x300) { |
78 | start = (start + 0x3ff) & ~0x3ff; | 78 | start = (start + 0x3ff) & ~0x3ff; |
diff --git a/arch/sh64/kernel/process.c b/arch/sh64/kernel/process.c index 1da9c61d6823..dba8e14013b6 100644 --- a/arch/sh64/kernel/process.c +++ b/arch/sh64/kernel/process.c | |||
@@ -35,7 +35,6 @@ | |||
35 | #define __KERNEL_SYSCALLS__ | 35 | #define __KERNEL_SYSCALLS__ |
36 | #include <stdarg.h> | 36 | #include <stdarg.h> |
37 | 37 | ||
38 | #include <linux/config.h> | ||
39 | #include <linux/kernel.h> | 38 | #include <linux/kernel.h> |
40 | #include <linux/rwsem.h> | 39 | #include <linux/rwsem.h> |
41 | #include <linux/mm.h> | 40 | #include <linux/mm.h> |
diff --git a/arch/sh64/kernel/ptrace.c b/arch/sh64/kernel/ptrace.c index cd22e9471316..4e95e18b46d9 100644 --- a/arch/sh64/kernel/ptrace.c +++ b/arch/sh64/kernel/ptrace.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/rwsem.h> | 21 | #include <linux/rwsem.h> |
23 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
diff --git a/arch/sh64/kernel/setup.c b/arch/sh64/kernel/setup.c index da98d8dbcf95..0359fa647bbc 100644 --- a/arch/sh64/kernel/setup.c +++ b/arch/sh64/kernel/setup.c | |||
@@ -39,7 +39,6 @@ | |||
39 | #include <linux/tty.h> | 39 | #include <linux/tty.h> |
40 | #include <linux/ioport.h> | 40 | #include <linux/ioport.h> |
41 | #include <linux/delay.h> | 41 | #include <linux/delay.h> |
42 | #include <linux/config.h> | ||
43 | #include <linux/init.h> | 42 | #include <linux/init.h> |
44 | #include <linux/seq_file.h> | 43 | #include <linux/seq_file.h> |
45 | #include <linux/blkdev.h> | 44 | #include <linux/blkdev.h> |
diff --git a/arch/sh64/kernel/sh_ksyms.c b/arch/sh64/kernel/sh_ksyms.c index 6f3a1c946339..6efdfa2c3994 100644 --- a/arch/sh64/kernel/sh_ksyms.c +++ b/arch/sh64/kernel/sh_ksyms.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/rwsem.h> | 12 | #include <linux/rwsem.h> |
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/smp.h> | 14 | #include <linux/smp.h> |
diff --git a/arch/sh64/kernel/time.c b/arch/sh64/kernel/time.c index 6b8f4d22abc6..b8162e59030e 100644 --- a/arch/sh64/kernel/time.c +++ b/arch/sh64/kernel/time.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * Copyright (C) 1991, 1992, 1995 Linus Torvalds | 15 | * Copyright (C) 1991, 1992, 1995 Linus Torvalds |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
20 | #include <linux/rwsem.h> | 19 | #include <linux/rwsem.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
@@ -485,8 +484,8 @@ static irqreturn_t sh64_rtc_interrupt(int irq, void *dev_id, | |||
485 | return IRQ_HANDLED; | 484 | return IRQ_HANDLED; |
486 | } | 485 | } |
487 | 486 | ||
488 | static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL}; | 487 | static struct irqaction irq0 = { timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "timer", NULL, NULL}; |
489 | static struct irqaction irq1 = { sh64_rtc_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "rtc", NULL, NULL}; | 488 | static struct irqaction irq1 = { sh64_rtc_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "rtc", NULL, NULL}; |
490 | 489 | ||
491 | void __init time_init(void) | 490 | void __init time_init(void) |
492 | { | 491 | { |
diff --git a/arch/sh64/kernel/vmlinux.lds.S b/arch/sh64/kernel/vmlinux.lds.S index 7d9f7a6339a0..a8fcc3a71585 100644 --- a/arch/sh64/kernel/vmlinux.lds.S +++ b/arch/sh64/kernel/vmlinux.lds.S | |||
@@ -22,7 +22,6 @@ | |||
22 | * Remove support for ancient toolchains. | 22 | * Remove support for ancient toolchains. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include <linux/config.h> | ||
26 | #include <asm/page.h> | 25 | #include <asm/page.h> |
27 | #include <asm/cache.h> | 26 | #include <asm/cache.h> |
28 | #include <asm/processor.h> | 27 | #include <asm/processor.h> |
diff --git a/arch/sh64/lib/c-checksum.c b/arch/sh64/lib/c-checksum.c index a82d8f1a7a64..53c1cabb3428 100644 --- a/arch/sh64/lib/c-checksum.c +++ b/arch/sh64/lib/c-checksum.c | |||
@@ -7,7 +7,6 @@ | |||
7 | 7 | ||
8 | #undef DEBUG | 8 | #undef DEBUG |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/string.h> | 10 | #include <linux/string.h> |
12 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
diff --git a/arch/sh64/lib/dbg.c b/arch/sh64/lib/dbg.c index 58087331b8a6..1326f45f31eb 100644 --- a/arch/sh64/lib/dbg.c +++ b/arch/sh64/lib/dbg.c | |||
@@ -8,7 +8,6 @@ | |||
8 | -- Copyright 2004 Richard Curnow (evt_debug etc) | 8 | -- Copyright 2004 Richard Curnow (evt_debug etc) |
9 | -- | 9 | -- |
10 | --------------------------------------------------------------------------*/ | 10 | --------------------------------------------------------------------------*/ |
11 | #include <linux/config.h> | ||
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
diff --git a/arch/sh64/lib/io.c b/arch/sh64/lib/io.c index 277e11b10c2b..587baa3dffb9 100644 --- a/arch/sh64/lib/io.c +++ b/arch/sh64/lib/io.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * | 8 | * |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
diff --git a/arch/sh64/lib/iomap.c b/arch/sh64/lib/iomap.c index 83c5f0c04958..5cd3d5e9c762 100644 --- a/arch/sh64/lib/iomap.c +++ b/arch/sh64/lib/iomap.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * License. See the file "COPYING" in the main directory of this archive | 9 | * License. See the file "COPYING" in the main directory of this archive |
10 | * for more details. | 10 | * for more details. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/pci.h> | 12 | #include <linux/pci.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
15 | 14 | ||
diff --git a/arch/sh64/lib/memcpy.c b/arch/sh64/lib/memcpy.c index c785d0aa194d..fba436a92bfa 100644 --- a/arch/sh64/lib/memcpy.c +++ b/arch/sh64/lib/memcpy.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * | 6 | * |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <asm/string.h> | 10 | #include <asm/string.h> |
12 | 11 | ||
diff --git a/arch/sh64/lib/udelay.c b/arch/sh64/lib/udelay.c index dad2f254efee..327653914007 100644 --- a/arch/sh64/lib/udelay.c +++ b/arch/sh64/lib/udelay.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * License. See the file "COPYING" in the main directory of this archive | 10 | * License. See the file "COPYING" in the main directory of this archive |
11 | * for more details. | 11 | * for more details. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | #include <asm/param.h> | 14 | #include <asm/param.h> |
16 | 15 | ||
diff --git a/arch/sh64/mach-cayman/iomap.c b/arch/sh64/mach-cayman/iomap.c index d6a538c70709..2d06e9a55137 100644 --- a/arch/sh64/mach-cayman/iomap.c +++ b/arch/sh64/mach-cayman/iomap.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * License. See the file "COPYING" in the main directory of this archive | 9 | * License. See the file "COPYING" in the main directory of this archive |
10 | * for more details. | 10 | * for more details. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/pci.h> | 12 | #include <linux/pci.h> |
14 | #include <asm/io.h> | 13 | #include <asm/io.h> |
15 | #include <asm/cayman.h> | 14 | #include <asm/cayman.h> |
diff --git a/arch/sh64/mach-cayman/irq.c b/arch/sh64/mach-cayman/irq.c index f797c84bfdd1..228ce61c3515 100644 --- a/arch/sh64/mach-cayman/irq.c +++ b/arch/sh64/mach-cayman/irq.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Copyright (C) 2002 Stuart Menefy | 12 | * Copyright (C) 2002 Stuart Menefy |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <asm/irq.h> | 15 | #include <asm/irq.h> |
17 | #include <asm/page.h> | 16 | #include <asm/page.h> |
18 | #include <asm/io.h> | 17 | #include <asm/io.h> |
@@ -45,13 +44,13 @@ static irqreturn_t cayman_interrupt_pci2(int irq, void *dev_id, struct pt_regs * | |||
45 | static struct irqaction cayman_action_smsc = { | 44 | static struct irqaction cayman_action_smsc = { |
46 | .name = "Cayman SMSC Mux", | 45 | .name = "Cayman SMSC Mux", |
47 | .handler = cayman_interrupt_smsc, | 46 | .handler = cayman_interrupt_smsc, |
48 | .flags = SA_INTERRUPT, | 47 | .flags = IRQF_DISABLED, |
49 | }; | 48 | }; |
50 | 49 | ||
51 | static struct irqaction cayman_action_pci2 = { | 50 | static struct irqaction cayman_action_pci2 = { |
52 | .name = "Cayman PCI2 Mux", | 51 | .name = "Cayman PCI2 Mux", |
53 | .handler = cayman_interrupt_pci2, | 52 | .handler = cayman_interrupt_pci2, |
54 | .flags = SA_INTERRUPT, | 53 | .flags = IRQF_DISABLED, |
55 | }; | 54 | }; |
56 | 55 | ||
57 | static void enable_cayman_irq(unsigned int irq) | 56 | static void enable_cayman_irq(unsigned int irq) |
@@ -187,7 +186,7 @@ void init_cayman_irq(void) | |||
187 | } | 186 | } |
188 | 187 | ||
189 | for (i=0; i<NR_EXT_IRQS; i++) { | 188 | for (i=0; i<NR_EXT_IRQS; i++) { |
190 | irq_desc[START_EXT_IRQS + i].handler = &cayman_irq_type; | 189 | irq_desc[START_EXT_IRQS + i].chip = &cayman_irq_type; |
191 | } | 190 | } |
192 | 191 | ||
193 | /* Setup the SMSC interrupt */ | 192 | /* Setup the SMSC interrupt */ |
diff --git a/arch/sh64/mach-cayman/setup.c b/arch/sh64/mach-cayman/setup.c index c793245629ad..d84895dda3cd 100644 --- a/arch/sh64/mach-cayman/setup.c +++ b/arch/sh64/mach-cayman/setup.c | |||
@@ -21,7 +21,6 @@ | |||
21 | 21 | ||
22 | #include <linux/stddef.h> | 22 | #include <linux/stddef.h> |
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | #include <linux/config.h> | ||
25 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
26 | #include <linux/bootmem.h> | 25 | #include <linux/bootmem.h> |
27 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
diff --git a/arch/sh64/mach-harp/setup.c b/arch/sh64/mach-harp/setup.c index 3938a65c4b25..fcd90afac297 100644 --- a/arch/sh64/mach-harp/setup.c +++ b/arch/sh64/mach-harp/setup.c | |||
@@ -20,7 +20,6 @@ | |||
20 | 20 | ||
21 | #include <linux/stddef.h> | 21 | #include <linux/stddef.h> |
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <linux/config.h> | ||
24 | #include <linux/mm.h> | 23 | #include <linux/mm.h> |
25 | #include <linux/bootmem.h> | 24 | #include <linux/bootmem.h> |
26 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
diff --git a/arch/sh64/mach-romram/setup.c b/arch/sh64/mach-romram/setup.c index a9ba03fc5bed..eb98a1640cc1 100644 --- a/arch/sh64/mach-romram/setup.c +++ b/arch/sh64/mach-romram/setup.c | |||
@@ -23,7 +23,6 @@ | |||
23 | 23 | ||
24 | #include <linux/stddef.h> | 24 | #include <linux/stddef.h> |
25 | #include <linux/init.h> | 25 | #include <linux/init.h> |
26 | #include <linux/config.h> | ||
27 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
28 | #include <linux/bootmem.h> | 27 | #include <linux/bootmem.h> |
29 | #include <linux/delay.h> | 28 | #include <linux/delay.h> |
diff --git a/arch/sh64/mach-sim/setup.c b/arch/sh64/mach-sim/setup.c index a68639cb4e5a..f09400c1ad1b 100644 --- a/arch/sh64/mach-sim/setup.c +++ b/arch/sh64/mach-sim/setup.c | |||
@@ -17,7 +17,6 @@ | |||
17 | 17 | ||
18 | #include <linux/stddef.h> | 18 | #include <linux/stddef.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/config.h> | ||
21 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
22 | #include <linux/bootmem.h> | 21 | #include <linux/bootmem.h> |
23 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
diff --git a/arch/sh64/mm/cache.c b/arch/sh64/mm/cache.c index c0c1b21350d8..421487cfff4c 100644 --- a/arch/sh64/mm/cache.c +++ b/arch/sh64/mm/cache.c | |||
@@ -13,7 +13,6 @@ | |||
13 | 13 | ||
14 | /****************************************************************************/ | 14 | /****************************************************************************/ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/mman.h> | 17 | #include <linux/mman.h> |
19 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
diff --git a/arch/sh64/mm/extable.c b/arch/sh64/mm/extable.c index 9da50e28b3fa..a2e6e0563772 100644 --- a/arch/sh64/mm/extable.c +++ b/arch/sh64/mm/extable.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * | 10 | * |
11 | * Cloned from the 2.5 SH version.. | 11 | * Cloned from the 2.5 SH version.. |
12 | */ | 12 | */ |
13 | #include <linux/config.h> | ||
14 | #include <linux/rwsem.h> | 13 | #include <linux/rwsem.h> |
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <asm/uaccess.h> | 15 | #include <asm/uaccess.h> |
diff --git a/arch/sh64/mm/hugetlbpage.c b/arch/sh64/mm/hugetlbpage.c index 3d89f2a6c785..187cf01750b8 100644 --- a/arch/sh64/mm/hugetlbpage.c +++ b/arch/sh64/mm/hugetlbpage.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 2002, 2003 David S. Miller (davem@redhat.com) | 8 | * Copyright (C) 2002, 2003 David S. Miller (davem@redhat.com) |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
14 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
diff --git a/arch/sparc/kernel/asm-offsets.c b/arch/sparc/kernel/asm-offsets.c index 1f55231f07de..29d7cfd1c970 100644 --- a/arch/sparc/kernel/asm-offsets.c +++ b/arch/sparc/kernel/asm-offsets.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * On sparc, thread_info data is static and TI_XXX offsets are computed by hand. | 10 | * On sparc, thread_info data is static and TI_XXX offsets are computed by hand. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
15 | // #include <linux/mm.h> | 14 | // #include <linux/mm.h> |
16 | 15 | ||
diff --git a/arch/sparc/kernel/auxio.c b/arch/sparc/kernel/auxio.c index d3b3648362c0..118f3eca373e 100644 --- a/arch/sparc/kernel/auxio.c +++ b/arch/sparc/kernel/auxio.c | |||
@@ -5,7 +5,6 @@ | |||
5 | 5 | ||
6 | #include <linux/stddef.h> | 6 | #include <linux/stddef.h> |
7 | #include <linux/init.h> | 7 | #include <linux/init.h> |
8 | #include <linux/config.h> | ||
9 | #include <linux/spinlock.h> | 8 | #include <linux/spinlock.h> |
10 | #include <asm/oplib.h> | 9 | #include <asm/oplib.h> |
11 | #include <asm/io.h> | 10 | #include <asm/io.h> |
diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c index d7bfc61d2879..259a559d4cea 100644 --- a/arch/sparc/kernel/cpu.c +++ b/arch/sparc/kernel/cpu.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) | 4 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | #include <linux/smp.h> | 9 | #include <linux/smp.h> |
diff --git a/arch/sparc/kernel/devices.c b/arch/sparc/kernel/devices.c index fcb0c049c3fe..adba9dfee35e 100644 --- a/arch/sparc/kernel/devices.c +++ b/arch/sparc/kernel/devices.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) | 7 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/threads.h> | 11 | #include <linux/threads.h> |
13 | #include <linux/string.h> | 12 | #include <linux/string.h> |
diff --git a/arch/sparc/kernel/ebus.c b/arch/sparc/kernel/ebus.c index a7a4892956c8..81c0cbd96ff0 100644 --- a/arch/sparc/kernel/ebus.c +++ b/arch/sparc/kernel/ebus.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Fixes for different platforms by Pete Zaitcev. | 7 | * Fixes for different platforms by Pete Zaitcev. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/types.h> | 11 | #include <linux/types.h> |
13 | #include <linux/init.h> | 12 | #include <linux/init.h> |
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S index 887f6a160c58..a4edff4c3be3 100644 --- a/arch/sparc/kernel/entry.S +++ b/arch/sparc/kernel/entry.S | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1997 Anton Blanchard (anton@progsoc.uts.edu.au) | 8 | * Copyright (C) 1997 Anton Blanchard (anton@progsoc.uts.edu.au) |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
13 | 12 | ||
14 | #include <asm/head.h> | 13 | #include <asm/head.h> |
diff --git a/arch/sparc/kernel/head.S b/arch/sparc/kernel/head.S index 42d3de59d19b..9a219e8b5ddb 100644 --- a/arch/sparc/kernel/head.S +++ b/arch/sparc/kernel/head.S | |||
@@ -11,7 +11,6 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/version.h> | 13 | #include <linux/version.h> |
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | 15 | ||
17 | #include <asm/head.h> | 16 | #include <asm/head.h> |
diff --git a/arch/sparc/kernel/idprom.c b/arch/sparc/kernel/idprom.c index 2e1b0f6e99d4..3a5bad525394 100644 --- a/arch/sparc/kernel/idprom.c +++ b/arch/sparc/kernel/idprom.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | 5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c index ae4c667c906f..8654b446ac9e 100644 --- a/arch/sparc/kernel/ioport.c +++ b/arch/sparc/kernel/ioport.c | |||
@@ -26,6 +26,7 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include <linux/config.h> | 28 | #include <linux/config.h> |
29 | #include <linux/module.h> | ||
29 | #include <linux/sched.h> | 30 | #include <linux/sched.h> |
30 | #include <linux/kernel.h> | 31 | #include <linux/kernel.h> |
31 | #include <linux/errno.h> | 32 | #include <linux/errno.h> |
@@ -40,6 +41,7 @@ | |||
40 | #include <asm/vaddrs.h> | 41 | #include <asm/vaddrs.h> |
41 | #include <asm/oplib.h> | 42 | #include <asm/oplib.h> |
42 | #include <asm/prom.h> | 43 | #include <asm/prom.h> |
44 | #include <asm/of_device.h> | ||
43 | #include <asm/sbus.h> | 45 | #include <asm/sbus.h> |
44 | #include <asm/page.h> | 46 | #include <asm/page.h> |
45 | #include <asm/pgalloc.h> | 47 | #include <asm/pgalloc.h> |
@@ -143,6 +145,21 @@ void __iomem *sbus_ioremap(struct resource *phyres, unsigned long offset, | |||
143 | phyres->start + offset, size, name); | 145 | phyres->start + offset, size, name); |
144 | } | 146 | } |
145 | 147 | ||
148 | void __iomem *of_ioremap(struct resource *res, unsigned long offset, | ||
149 | unsigned long size, char *name) | ||
150 | { | ||
151 | return _sparc_alloc_io(res->flags & 0xF, | ||
152 | res->start + offset, | ||
153 | size, name); | ||
154 | } | ||
155 | EXPORT_SYMBOL(of_ioremap); | ||
156 | |||
157 | void of_iounmap(void __iomem *base, unsigned long size) | ||
158 | { | ||
159 | iounmap(base); | ||
160 | } | ||
161 | EXPORT_SYMBOL(of_iounmap); | ||
162 | |||
146 | /* | 163 | /* |
147 | */ | 164 | */ |
148 | void sbus_iounmap(volatile void __iomem *addr, unsigned long size) | 165 | void sbus_iounmap(volatile void __iomem *addr, unsigned long size) |
@@ -208,7 +225,7 @@ _sparc_ioremap(struct resource *res, u32 bus, u32 pa, int sz) | |||
208 | pa &= PAGE_MASK; | 225 | pa &= PAGE_MASK; |
209 | sparc_mapiorange(bus, pa, res->start, res->end - res->start + 1); | 226 | sparc_mapiorange(bus, pa, res->start, res->end - res->start + 1); |
210 | 227 | ||
211 | return (void __iomem *) (res->start + offset); | 228 | return (void __iomem *)(unsigned long)(res->start + offset); |
212 | } | 229 | } |
213 | 230 | ||
214 | /* | 231 | /* |
@@ -325,7 +342,7 @@ void *sbus_alloc_consistent(struct sbus_dev *sdev, long len, u32 *dma_addrp) | |||
325 | res->name = sdev->prom_name; | 342 | res->name = sdev->prom_name; |
326 | } | 343 | } |
327 | 344 | ||
328 | return (void *)res->start; | 345 | return (void *)(unsigned long)res->start; |
329 | 346 | ||
330 | err_noiommu: | 347 | err_noiommu: |
331 | release_resource(res); | 348 | release_resource(res); |
@@ -819,7 +836,9 @@ _sparc_io_get_info(char *buf, char **start, off_t fpos, int length, int *eof, | |||
819 | if (p + 32 >= e) /* Better than nothing */ | 836 | if (p + 32 >= e) /* Better than nothing */ |
820 | break; | 837 | break; |
821 | if ((nm = r->name) == 0) nm = "???"; | 838 | if ((nm = r->name) == 0) nm = "???"; |
822 | p += sprintf(p, "%08lx-%08lx: %s\n", r->start, r->end, nm); | 839 | p += sprintf(p, "%016llx-%016llx: %s\n", |
840 | (unsigned long long)r->start, | ||
841 | (unsigned long long)r->end, nm); | ||
823 | } | 842 | } |
824 | 843 | ||
825 | return p-buf; | 844 | return p-buf; |
diff --git a/arch/sparc/kernel/irq.c b/arch/sparc/kernel/irq.c index aac8af5aae51..cde73327ca96 100644 --- a/arch/sparc/kernel/irq.c +++ b/arch/sparc/kernel/irq.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Copyright (C) 1998-2000 Anton Blanchard (anton@samba.org) | 11 | * Copyright (C) 1998-2000 Anton Blanchard (anton@samba.org) |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/module.h> | 14 | #include <linux/module.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
17 | #include <linux/ptrace.h> | 16 | #include <linux/ptrace.h> |
@@ -192,11 +191,11 @@ int show_interrupts(struct seq_file *p, void *v) | |||
192 | } | 191 | } |
193 | #endif | 192 | #endif |
194 | seq_printf(p, " %c %s", | 193 | seq_printf(p, " %c %s", |
195 | (action->flags & SA_INTERRUPT) ? '+' : ' ', | 194 | (action->flags & IRQF_DISABLED) ? '+' : ' ', |
196 | action->name); | 195 | action->name); |
197 | for (action=action->next; action; action = action->next) { | 196 | for (action=action->next; action; action = action->next) { |
198 | seq_printf(p, ",%s %s", | 197 | seq_printf(p, ",%s %s", |
199 | (action->flags & SA_INTERRUPT) ? " +" : "", | 198 | (action->flags & IRQF_DISABLED) ? " +" : "", |
200 | action->name); | 199 | action->name); |
201 | } | 200 | } |
202 | seq_putc(p, '\n'); | 201 | seq_putc(p, '\n'); |
@@ -244,7 +243,7 @@ void free_irq(unsigned int irq, void *dev_id) | |||
244 | printk("Trying to free free shared IRQ%d\n",irq); | 243 | printk("Trying to free free shared IRQ%d\n",irq); |
245 | goto out_unlock; | 244 | goto out_unlock; |
246 | } | 245 | } |
247 | } else if (action->flags & SA_SHIRQ) { | 246 | } else if (action->flags & IRQF_SHARED) { |
248 | printk("Trying to free shared IRQ%d with NULL device ID\n", irq); | 247 | printk("Trying to free shared IRQ%d with NULL device ID\n", irq); |
249 | goto out_unlock; | 248 | goto out_unlock; |
250 | } | 249 | } |
@@ -396,9 +395,9 @@ int request_fast_irq(unsigned int irq, | |||
396 | 395 | ||
397 | action = sparc_irq[cpu_irq].action; | 396 | action = sparc_irq[cpu_irq].action; |
398 | if(action) { | 397 | if(action) { |
399 | if(action->flags & SA_SHIRQ) | 398 | if(action->flags & IRQF_SHARED) |
400 | panic("Trying to register fast irq when already shared.\n"); | 399 | panic("Trying to register fast irq when already shared.\n"); |
401 | if(irqflags & SA_SHIRQ) | 400 | if(irqflags & IRQF_SHARED) |
402 | panic("Trying to register fast irq as shared.\n"); | 401 | panic("Trying to register fast irq as shared.\n"); |
403 | 402 | ||
404 | /* Anyway, someone already owns it so cannot be made fast. */ | 403 | /* Anyway, someone already owns it so cannot be made fast. */ |
@@ -498,11 +497,11 @@ int request_irq(unsigned int irq, | |||
498 | actionp = &sparc_irq[cpu_irq].action; | 497 | actionp = &sparc_irq[cpu_irq].action; |
499 | action = *actionp; | 498 | action = *actionp; |
500 | if (action) { | 499 | if (action) { |
501 | if (!(action->flags & SA_SHIRQ) || !(irqflags & SA_SHIRQ)) { | 500 | if (!(action->flags & IRQF_SHARED) || !(irqflags & IRQF_SHARED)) { |
502 | ret = -EBUSY; | 501 | ret = -EBUSY; |
503 | goto out_unlock; | 502 | goto out_unlock; |
504 | } | 503 | } |
505 | if ((action->flags & SA_INTERRUPT) != (irqflags & SA_INTERRUPT)) { | 504 | if ((action->flags & IRQF_DISABLED) != (irqflags & IRQF_DISABLED)) { |
506 | printk("Attempt to mix fast and slow interrupts on IRQ%d denied\n", irq); | 505 | printk("Attempt to mix fast and slow interrupts on IRQ%d denied\n", irq); |
507 | ret = -EBUSY; | 506 | ret = -EBUSY; |
508 | goto out_unlock; | 507 | goto out_unlock; |
diff --git a/arch/sparc/kernel/of_device.c b/arch/sparc/kernel/of_device.c index 80a809478781..bc956c530376 100644 --- a/arch/sparc/kernel/of_device.c +++ b/arch/sparc/kernel/of_device.c | |||
@@ -129,6 +129,26 @@ static int of_device_resume(struct device * dev) | |||
129 | return error; | 129 | return error; |
130 | } | 130 | } |
131 | 131 | ||
132 | static int node_match(struct device *dev, void *data) | ||
133 | { | ||
134 | struct of_device *op = to_of_device(dev); | ||
135 | struct device_node *dp = data; | ||
136 | |||
137 | return (op->node == dp); | ||
138 | } | ||
139 | |||
140 | struct of_device *of_find_device_by_node(struct device_node *dp) | ||
141 | { | ||
142 | struct device *dev = bus_find_device(&of_bus_type, NULL, | ||
143 | dp, node_match); | ||
144 | |||
145 | if (dev) | ||
146 | return to_of_device(dev); | ||
147 | |||
148 | return NULL; | ||
149 | } | ||
150 | EXPORT_SYMBOL(of_find_device_by_node); | ||
151 | |||
132 | #ifdef CONFIG_PCI | 152 | #ifdef CONFIG_PCI |
133 | struct bus_type ebus_bus_type = { | 153 | struct bus_type ebus_bus_type = { |
134 | .name = "ebus", | 154 | .name = "ebus", |
@@ -153,10 +173,459 @@ struct bus_type sbus_bus_type = { | |||
153 | EXPORT_SYMBOL(sbus_bus_type); | 173 | EXPORT_SYMBOL(sbus_bus_type); |
154 | #endif | 174 | #endif |
155 | 175 | ||
176 | struct bus_type of_bus_type = { | ||
177 | .name = "of", | ||
178 | .match = of_platform_bus_match, | ||
179 | .probe = of_device_probe, | ||
180 | .remove = of_device_remove, | ||
181 | .suspend = of_device_suspend, | ||
182 | .resume = of_device_resume, | ||
183 | }; | ||
184 | EXPORT_SYMBOL(of_bus_type); | ||
185 | |||
186 | static inline u64 of_read_addr(u32 *cell, int size) | ||
187 | { | ||
188 | u64 r = 0; | ||
189 | while (size--) | ||
190 | r = (r << 32) | *(cell++); | ||
191 | return r; | ||
192 | } | ||
193 | |||
194 | static void __init get_cells(struct device_node *dp, | ||
195 | int *addrc, int *sizec) | ||
196 | { | ||
197 | if (addrc) | ||
198 | *addrc = of_n_addr_cells(dp); | ||
199 | if (sizec) | ||
200 | *sizec = of_n_size_cells(dp); | ||
201 | } | ||
202 | |||
203 | /* Max address size we deal with */ | ||
204 | #define OF_MAX_ADDR_CELLS 4 | ||
205 | |||
206 | struct of_bus { | ||
207 | const char *name; | ||
208 | const char *addr_prop_name; | ||
209 | int (*match)(struct device_node *parent); | ||
210 | void (*count_cells)(struct device_node *child, | ||
211 | int *addrc, int *sizec); | ||
212 | u64 (*map)(u32 *addr, u32 *range, int na, int ns, int pna); | ||
213 | int (*translate)(u32 *addr, u64 offset, int na); | ||
214 | unsigned int (*get_flags)(u32 *addr); | ||
215 | }; | ||
216 | |||
217 | /* | ||
218 | * Default translator (generic bus) | ||
219 | */ | ||
220 | |||
221 | static void of_bus_default_count_cells(struct device_node *dev, | ||
222 | int *addrc, int *sizec) | ||
223 | { | ||
224 | get_cells(dev, addrc, sizec); | ||
225 | } | ||
226 | |||
227 | static u64 of_bus_default_map(u32 *addr, u32 *range, int na, int ns, int pna) | ||
228 | { | ||
229 | u64 cp, s, da; | ||
230 | |||
231 | cp = of_read_addr(range, na); | ||
232 | s = of_read_addr(range + na + pna, ns); | ||
233 | da = of_read_addr(addr, na); | ||
234 | |||
235 | if (da < cp || da >= (cp + s)) | ||
236 | return OF_BAD_ADDR; | ||
237 | return da - cp; | ||
238 | } | ||
239 | |||
240 | static int of_bus_default_translate(u32 *addr, u64 offset, int na) | ||
241 | { | ||
242 | u64 a = of_read_addr(addr, na); | ||
243 | memset(addr, 0, na * 4); | ||
244 | a += offset; | ||
245 | if (na > 1) | ||
246 | addr[na - 2] = a >> 32; | ||
247 | addr[na - 1] = a & 0xffffffffu; | ||
248 | |||
249 | return 0; | ||
250 | } | ||
251 | |||
252 | static unsigned int of_bus_default_get_flags(u32 *addr) | ||
253 | { | ||
254 | return IORESOURCE_MEM; | ||
255 | } | ||
256 | |||
257 | |||
258 | /* | ||
259 | * PCI bus specific translator | ||
260 | */ | ||
261 | |||
262 | static int of_bus_pci_match(struct device_node *np) | ||
263 | { | ||
264 | return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex"); | ||
265 | } | ||
266 | |||
267 | static void of_bus_pci_count_cells(struct device_node *np, | ||
268 | int *addrc, int *sizec) | ||
269 | { | ||
270 | if (addrc) | ||
271 | *addrc = 3; | ||
272 | if (sizec) | ||
273 | *sizec = 2; | ||
274 | } | ||
275 | |||
276 | static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna) | ||
277 | { | ||
278 | u64 cp, s, da; | ||
279 | |||
280 | /* Check address type match */ | ||
281 | if ((addr[0] ^ range[0]) & 0x03000000) | ||
282 | return OF_BAD_ADDR; | ||
283 | |||
284 | /* Read address values, skipping high cell */ | ||
285 | cp = of_read_addr(range + 1, na - 1); | ||
286 | s = of_read_addr(range + na + pna, ns); | ||
287 | da = of_read_addr(addr + 1, na - 1); | ||
288 | |||
289 | if (da < cp || da >= (cp + s)) | ||
290 | return OF_BAD_ADDR; | ||
291 | return da - cp; | ||
292 | } | ||
293 | |||
294 | static int of_bus_pci_translate(u32 *addr, u64 offset, int na) | ||
295 | { | ||
296 | return of_bus_default_translate(addr + 1, offset, na - 1); | ||
297 | } | ||
298 | |||
299 | static unsigned int of_bus_pci_get_flags(u32 *addr) | ||
300 | { | ||
301 | unsigned int flags = 0; | ||
302 | u32 w = addr[0]; | ||
303 | |||
304 | switch((w >> 24) & 0x03) { | ||
305 | case 0x01: | ||
306 | flags |= IORESOURCE_IO; | ||
307 | case 0x02: /* 32 bits */ | ||
308 | case 0x03: /* 64 bits */ | ||
309 | flags |= IORESOURCE_MEM; | ||
310 | } | ||
311 | if (w & 0x40000000) | ||
312 | flags |= IORESOURCE_PREFETCH; | ||
313 | return flags; | ||
314 | } | ||
315 | |||
316 | /* | ||
317 | * SBUS bus specific translator | ||
318 | */ | ||
319 | |||
320 | static int of_bus_sbus_match(struct device_node *np) | ||
321 | { | ||
322 | return !strcmp(np->name, "sbus") || | ||
323 | !strcmp(np->name, "sbi"); | ||
324 | } | ||
325 | |||
326 | static void of_bus_sbus_count_cells(struct device_node *child, | ||
327 | int *addrc, int *sizec) | ||
328 | { | ||
329 | if (addrc) | ||
330 | *addrc = 2; | ||
331 | if (sizec) | ||
332 | *sizec = 1; | ||
333 | } | ||
334 | |||
335 | static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna) | ||
336 | { | ||
337 | return of_bus_default_map(addr, range, na, ns, pna); | ||
338 | } | ||
339 | |||
340 | static int of_bus_sbus_translate(u32 *addr, u64 offset, int na) | ||
341 | { | ||
342 | return of_bus_default_translate(addr, offset, na); | ||
343 | } | ||
344 | |||
345 | static unsigned int of_bus_sbus_get_flags(u32 *addr) | ||
346 | { | ||
347 | return IORESOURCE_MEM; | ||
348 | } | ||
349 | |||
350 | |||
351 | /* | ||
352 | * Array of bus specific translators | ||
353 | */ | ||
354 | |||
355 | static struct of_bus of_busses[] = { | ||
356 | /* PCI */ | ||
357 | { | ||
358 | .name = "pci", | ||
359 | .addr_prop_name = "assigned-addresses", | ||
360 | .match = of_bus_pci_match, | ||
361 | .count_cells = of_bus_pci_count_cells, | ||
362 | .map = of_bus_pci_map, | ||
363 | .translate = of_bus_pci_translate, | ||
364 | .get_flags = of_bus_pci_get_flags, | ||
365 | }, | ||
366 | /* SBUS */ | ||
367 | { | ||
368 | .name = "sbus", | ||
369 | .addr_prop_name = "reg", | ||
370 | .match = of_bus_sbus_match, | ||
371 | .count_cells = of_bus_sbus_count_cells, | ||
372 | .map = of_bus_sbus_map, | ||
373 | .translate = of_bus_sbus_translate, | ||
374 | .get_flags = of_bus_sbus_get_flags, | ||
375 | }, | ||
376 | /* Default */ | ||
377 | { | ||
378 | .name = "default", | ||
379 | .addr_prop_name = "reg", | ||
380 | .match = NULL, | ||
381 | .count_cells = of_bus_default_count_cells, | ||
382 | .map = of_bus_default_map, | ||
383 | .translate = of_bus_default_translate, | ||
384 | .get_flags = of_bus_default_get_flags, | ||
385 | }, | ||
386 | }; | ||
387 | |||
388 | static struct of_bus *of_match_bus(struct device_node *np) | ||
389 | { | ||
390 | int i; | ||
391 | |||
392 | for (i = 0; i < ARRAY_SIZE(of_busses); i ++) | ||
393 | if (!of_busses[i].match || of_busses[i].match(np)) | ||
394 | return &of_busses[i]; | ||
395 | BUG(); | ||
396 | return NULL; | ||
397 | } | ||
398 | |||
399 | static int __init build_one_resource(struct device_node *parent, | ||
400 | struct of_bus *bus, | ||
401 | struct of_bus *pbus, | ||
402 | u32 *addr, | ||
403 | int na, int ns, int pna) | ||
404 | { | ||
405 | u32 *ranges; | ||
406 | unsigned int rlen; | ||
407 | int rone; | ||
408 | u64 offset = OF_BAD_ADDR; | ||
409 | |||
410 | ranges = of_get_property(parent, "ranges", &rlen); | ||
411 | if (ranges == NULL || rlen == 0) { | ||
412 | offset = of_read_addr(addr, na); | ||
413 | memset(addr, 0, pna * 4); | ||
414 | goto finish; | ||
415 | } | ||
416 | |||
417 | /* Now walk through the ranges */ | ||
418 | rlen /= 4; | ||
419 | rone = na + pna + ns; | ||
420 | for (; rlen >= rone; rlen -= rone, ranges += rone) { | ||
421 | offset = bus->map(addr, ranges, na, ns, pna); | ||
422 | if (offset != OF_BAD_ADDR) | ||
423 | break; | ||
424 | } | ||
425 | if (offset == OF_BAD_ADDR) | ||
426 | return 1; | ||
427 | |||
428 | memcpy(addr, ranges + na, 4 * pna); | ||
429 | |||
430 | finish: | ||
431 | /* Translate it into parent bus space */ | ||
432 | return pbus->translate(addr, offset, pna); | ||
433 | } | ||
434 | |||
435 | static void __init build_device_resources(struct of_device *op, | ||
436 | struct device *parent) | ||
437 | { | ||
438 | struct of_device *p_op; | ||
439 | struct of_bus *bus; | ||
440 | int na, ns; | ||
441 | int index, num_reg; | ||
442 | void *preg; | ||
443 | |||
444 | if (!parent) | ||
445 | return; | ||
446 | |||
447 | p_op = to_of_device(parent); | ||
448 | bus = of_match_bus(p_op->node); | ||
449 | bus->count_cells(op->node, &na, &ns); | ||
450 | |||
451 | preg = of_get_property(op->node, bus->addr_prop_name, &num_reg); | ||
452 | if (!preg || num_reg == 0) | ||
453 | return; | ||
454 | |||
455 | /* Convert to num-cells. */ | ||
456 | num_reg /= 4; | ||
457 | |||
458 | /* Conver to num-entries. */ | ||
459 | num_reg /= na + ns; | ||
460 | |||
461 | for (index = 0; index < num_reg; index++) { | ||
462 | struct resource *r = &op->resource[index]; | ||
463 | u32 addr[OF_MAX_ADDR_CELLS]; | ||
464 | u32 *reg = (preg + (index * ((na + ns) * 4))); | ||
465 | struct device_node *dp = op->node; | ||
466 | struct device_node *pp = p_op->node; | ||
467 | struct of_bus *pbus; | ||
468 | u64 size, result = OF_BAD_ADDR; | ||
469 | unsigned long flags; | ||
470 | int dna, dns; | ||
471 | int pna, pns; | ||
472 | |||
473 | size = of_read_addr(reg + na, ns); | ||
474 | flags = bus->get_flags(reg); | ||
475 | |||
476 | memcpy(addr, reg, na * 4); | ||
477 | |||
478 | /* If the immediate parent has no ranges property to apply, | ||
479 | * just use a 1<->1 mapping. | ||
480 | */ | ||
481 | if (of_find_property(pp, "ranges", NULL) == NULL) { | ||
482 | result = of_read_addr(addr, na); | ||
483 | goto build_res; | ||
484 | } | ||
485 | |||
486 | dna = na; | ||
487 | dns = ns; | ||
488 | |||
489 | while (1) { | ||
490 | dp = pp; | ||
491 | pp = dp->parent; | ||
492 | if (!pp) { | ||
493 | result = of_read_addr(addr, dna); | ||
494 | break; | ||
495 | } | ||
496 | |||
497 | pbus = of_match_bus(pp); | ||
498 | pbus->count_cells(dp, &pna, &pns); | ||
499 | |||
500 | if (build_one_resource(dp, bus, pbus, addr, dna, dns, pna)) | ||
501 | break; | ||
502 | |||
503 | dna = pna; | ||
504 | dns = pns; | ||
505 | bus = pbus; | ||
506 | } | ||
507 | |||
508 | build_res: | ||
509 | memset(r, 0, sizeof(*r)); | ||
510 | if (result != OF_BAD_ADDR) { | ||
511 | r->start = result & 0xffffffff; | ||
512 | r->end = result + size - 1; | ||
513 | r->flags = flags | ((result >> 32ULL) & 0xffUL); | ||
514 | } else { | ||
515 | r->start = ~0UL; | ||
516 | r->end = ~0UL; | ||
517 | } | ||
518 | r->name = op->node->name; | ||
519 | } | ||
520 | } | ||
521 | |||
522 | static struct of_device * __init scan_one_device(struct device_node *dp, | ||
523 | struct device *parent) | ||
524 | { | ||
525 | struct of_device *op = kzalloc(sizeof(*op), GFP_KERNEL); | ||
526 | struct linux_prom_irqs *intr; | ||
527 | int len, i; | ||
528 | |||
529 | if (!op) | ||
530 | return NULL; | ||
531 | |||
532 | op->node = dp; | ||
533 | |||
534 | op->clock_freq = of_getintprop_default(dp, "clock-frequency", | ||
535 | (25*1000*1000)); | ||
536 | op->portid = of_getintprop_default(dp, "upa-portid", -1); | ||
537 | if (op->portid == -1) | ||
538 | op->portid = of_getintprop_default(dp, "portid", -1); | ||
539 | |||
540 | intr = of_get_property(dp, "intr", &len); | ||
541 | if (intr) { | ||
542 | op->num_irqs = len / sizeof(struct linux_prom_irqs); | ||
543 | for (i = 0; i < op->num_irqs; i++) | ||
544 | op->irqs[i] = intr[i].pri; | ||
545 | } else { | ||
546 | unsigned int *irq = of_get_property(dp, "interrupts", &len); | ||
547 | |||
548 | if (irq) { | ||
549 | op->num_irqs = len / sizeof(unsigned int); | ||
550 | for (i = 0; i < op->num_irqs; i++) | ||
551 | op->irqs[i] = irq[i]; | ||
552 | } else { | ||
553 | op->num_irqs = 0; | ||
554 | } | ||
555 | } | ||
556 | if (sparc_cpu_model == sun4d) { | ||
557 | static int pil_to_sbus[] = { | ||
558 | 0, 0, 1, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 0, | ||
559 | }; | ||
560 | struct device_node *busp = dp->parent; | ||
561 | struct linux_prom_registers *regs; | ||
562 | int board = of_getintprop_default(busp, "board#", 0); | ||
563 | int slot; | ||
564 | |||
565 | regs = of_get_property(dp, "reg", NULL); | ||
566 | slot = regs->which_io; | ||
567 | |||
568 | for (i = 0; i < op->num_irqs; i++) { | ||
569 | int this_irq = op->irqs[i]; | ||
570 | int sbusl = pil_to_sbus[this_irq]; | ||
571 | |||
572 | if (sbusl) | ||
573 | this_irq = (((board + 1) << 5) + | ||
574 | (sbusl << 2) + | ||
575 | slot); | ||
576 | |||
577 | op->irqs[i] = this_irq; | ||
578 | } | ||
579 | } | ||
580 | |||
581 | build_device_resources(op, parent); | ||
582 | |||
583 | op->dev.parent = parent; | ||
584 | op->dev.bus = &of_bus_type; | ||
585 | if (!parent) | ||
586 | strcpy(op->dev.bus_id, "root"); | ||
587 | else | ||
588 | strcpy(op->dev.bus_id, dp->path_component_name); | ||
589 | |||
590 | if (of_device_register(op)) { | ||
591 | printk("%s: Could not register of device.\n", | ||
592 | dp->full_name); | ||
593 | kfree(op); | ||
594 | op = NULL; | ||
595 | } | ||
596 | |||
597 | return op; | ||
598 | } | ||
599 | |||
600 | static void __init scan_tree(struct device_node *dp, struct device *parent) | ||
601 | { | ||
602 | while (dp) { | ||
603 | struct of_device *op = scan_one_device(dp, parent); | ||
604 | |||
605 | if (op) | ||
606 | scan_tree(dp->child, &op->dev); | ||
607 | |||
608 | dp = dp->sibling; | ||
609 | } | ||
610 | } | ||
611 | |||
612 | static void __init scan_of_devices(void) | ||
613 | { | ||
614 | struct device_node *root = of_find_node_by_path("/"); | ||
615 | struct of_device *parent; | ||
616 | |||
617 | parent = scan_one_device(root, NULL); | ||
618 | if (!parent) | ||
619 | return; | ||
620 | |||
621 | scan_tree(root->child, &parent->dev); | ||
622 | } | ||
623 | |||
156 | static int __init of_bus_driver_init(void) | 624 | static int __init of_bus_driver_init(void) |
157 | { | 625 | { |
158 | int err = 0; | 626 | int err; |
159 | 627 | ||
628 | err = bus_register(&of_bus_type); | ||
160 | #ifdef CONFIG_PCI | 629 | #ifdef CONFIG_PCI |
161 | if (!err) | 630 | if (!err) |
162 | err = bus_register(&ebus_bus_type); | 631 | err = bus_register(&ebus_bus_type); |
@@ -165,7 +634,11 @@ static int __init of_bus_driver_init(void) | |||
165 | if (!err) | 634 | if (!err) |
166 | err = bus_register(&sbus_bus_type); | 635 | err = bus_register(&sbus_bus_type); |
167 | #endif | 636 | #endif |
168 | return 0; | 637 | |
638 | if (!err) | ||
639 | scan_of_devices(); | ||
640 | |||
641 | return err; | ||
169 | } | 642 | } |
170 | 643 | ||
171 | postcore_initcall(of_bus_driver_init); | 644 | postcore_initcall(of_bus_driver_init); |
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index bcfdddd0418a..bfd31aac2df3 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * CP-1200 by Eric Brower. | 10 | * CP-1200 by Eric Brower. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
@@ -746,7 +745,7 @@ void __init pci_time_init(void) | |||
746 | writel (PCI_COUNTER_IRQ_SET(timer_irq, 0), | 745 | writel (PCI_COUNTER_IRQ_SET(timer_irq, 0), |
747 | pcic->pcic_regs+PCI_COUNTER_IRQ); | 746 | pcic->pcic_regs+PCI_COUNTER_IRQ); |
748 | irq = request_irq(timer_irq, pcic_timer_handler, | 747 | irq = request_irq(timer_irq, pcic_timer_handler, |
749 | (SA_INTERRUPT | SA_STATIC_ALLOC), "timer", NULL); | 748 | (IRQF_DISABLED | SA_STATIC_ALLOC), "timer", NULL); |
750 | if (irq) { | 749 | if (irq) { |
751 | prom_printf("time_init: unable to attach IRQ%d\n", timer_irq); | 750 | prom_printf("time_init: unable to attach IRQ%d\n", timer_irq); |
752 | prom_halt(); | 751 | prom_halt(); |
@@ -860,7 +859,7 @@ char * __init pcibios_setup(char *str) | |||
860 | } | 859 | } |
861 | 860 | ||
862 | void pcibios_align_resource(void *data, struct resource *res, | 861 | void pcibios_align_resource(void *data, struct resource *res, |
863 | unsigned long size, unsigned long align) | 862 | resource_size_t size, resource_size_t align) |
864 | { | 863 | { |
865 | } | 864 | } |
866 | 865 | ||
diff --git a/arch/sparc/kernel/process.c b/arch/sparc/kernel/process.c index 118cac84a0f5..89a28cc018c9 100644 --- a/arch/sparc/kernel/process.c +++ b/arch/sparc/kernel/process.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
23 | #include <linux/user.h> | 23 | #include <linux/user.h> |
24 | #include <linux/a.out.h> | 24 | #include <linux/a.out.h> |
25 | #include <linux/config.h> | ||
26 | #include <linux/smp.h> | 25 | #include <linux/smp.h> |
27 | #include <linux/smp_lock.h> | 26 | #include <linux/smp_lock.h> |
28 | #include <linux/reboot.h> | 27 | #include <linux/reboot.h> |
diff --git a/arch/sparc/kernel/prom.c b/arch/sparc/kernel/prom.c index 946ce6d15819..4b06dcb00ebd 100644 --- a/arch/sparc/kernel/prom.c +++ b/arch/sparc/kernel/prom.c | |||
@@ -190,6 +190,36 @@ int of_getintprop_default(struct device_node *np, const char *name, int def) | |||
190 | } | 190 | } |
191 | EXPORT_SYMBOL(of_getintprop_default); | 191 | EXPORT_SYMBOL(of_getintprop_default); |
192 | 192 | ||
193 | int of_n_addr_cells(struct device_node *np) | ||
194 | { | ||
195 | int* ip; | ||
196 | do { | ||
197 | if (np->parent) | ||
198 | np = np->parent; | ||
199 | ip = of_get_property(np, "#address-cells", NULL); | ||
200 | if (ip != NULL) | ||
201 | return *ip; | ||
202 | } while (np->parent); | ||
203 | /* No #address-cells property for the root node, default to 2 */ | ||
204 | return 2; | ||
205 | } | ||
206 | EXPORT_SYMBOL(of_n_addr_cells); | ||
207 | |||
208 | int of_n_size_cells(struct device_node *np) | ||
209 | { | ||
210 | int* ip; | ||
211 | do { | ||
212 | if (np->parent) | ||
213 | np = np->parent; | ||
214 | ip = of_get_property(np, "#size-cells", NULL); | ||
215 | if (ip != NULL) | ||
216 | return *ip; | ||
217 | } while (np->parent); | ||
218 | /* No #size-cells property for the root node, default to 1 */ | ||
219 | return 1; | ||
220 | } | ||
221 | EXPORT_SYMBOL(of_n_size_cells); | ||
222 | |||
193 | int of_set_property(struct device_node *dp, const char *name, void *val, int len) | 223 | int of_set_property(struct device_node *dp, const char *name, void *val, int len) |
194 | { | 224 | { |
195 | struct property **prevp; | 225 | struct property **prevp; |
diff --git a/arch/sparc/kernel/setup.c b/arch/sparc/kernel/setup.c index a893a9cc9534..8606ef4e52e9 100644 --- a/arch/sparc/kernel/setup.c +++ b/arch/sparc/kernel/setup.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <linux/a.out.h> | 19 | #include <linux/a.out.h> |
20 | #include <linux/tty.h> | 20 | #include <linux/tty.h> |
21 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
22 | #include <linux/config.h> | ||
23 | #include <linux/fs.h> | 22 | #include <linux/fs.h> |
24 | #include <linux/seq_file.h> | 23 | #include <linux/seq_file.h> |
25 | #include <linux/syscalls.h> | 24 | #include <linux/syscalls.h> |
@@ -496,7 +495,7 @@ static int __init topology_init(void) | |||
496 | if (!p) | 495 | if (!p) |
497 | err = -ENOMEM; | 496 | err = -ENOMEM; |
498 | else | 497 | else |
499 | register_cpu(p, i, NULL); | 498 | register_cpu(p, i); |
500 | } | 499 | } |
501 | 500 | ||
502 | return err; | 501 | return err; |
diff --git a/arch/sparc/kernel/signal.c b/arch/sparc/kernel/signal.c index 0748d8147bbf..c9301b9143ca 100644 --- a/arch/sparc/kernel/signal.c +++ b/arch/sparc/kernel/signal.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be) | 7 | * Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be) |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/signal.h> | 12 | #include <linux/signal.h> |
diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.c index fd7deabf9982..5fb987fc3d63 100644 --- a/arch/sparc/kernel/sparc_ksyms.c +++ b/arch/sparc/kernel/sparc_ksyms.c | |||
@@ -9,7 +9,6 @@ | |||
9 | #define EXPORT_SYMTAB_STROPS | 9 | #define EXPORT_SYMTAB_STROPS |
10 | #define PROMLIB_INTERNAL | 10 | #define PROMLIB_INTERNAL |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | #include <linux/smp.h> | 14 | #include <linux/smp.h> |
diff --git a/arch/sparc/kernel/sun4c_irq.c b/arch/sparc/kernel/sun4c_irq.c index 0f2d8d9cbdba..4be2c86ea540 100644 --- a/arch/sparc/kernel/sun4c_irq.c +++ b/arch/sparc/kernel/sun4c_irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 1996 Dave Redman (djhr@tadpole.co.uk) | 9 | * Copyright (C) 1996 Dave Redman (djhr@tadpole.co.uk) |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <linux/kernel_stat.h> | 14 | #include <linux/kernel_stat.h> |
@@ -180,7 +179,7 @@ static void __init sun4c_init_timers(irqreturn_t (*counter_fn)(int, void *, stru | |||
180 | 179 | ||
181 | irq = request_irq(TIMER_IRQ, | 180 | irq = request_irq(TIMER_IRQ, |
182 | counter_fn, | 181 | counter_fn, |
183 | (SA_INTERRUPT | SA_STATIC_ALLOC), | 182 | (IRQF_DISABLED | SA_STATIC_ALLOC), |
184 | "timer", NULL); | 183 | "timer", NULL); |
185 | if (irq) { | 184 | if (irq) { |
186 | prom_printf("time_init: unable to attach IRQ%d\n",TIMER_IRQ); | 185 | prom_printf("time_init: unable to attach IRQ%d\n",TIMER_IRQ); |
diff --git a/arch/sparc/kernel/sun4d_irq.c b/arch/sparc/kernel/sun4d_irq.c index 9c30e35c88f7..74eed9775ac0 100644 --- a/arch/sparc/kernel/sun4d_irq.c +++ b/arch/sparc/kernel/sun4d_irq.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Heavily based on arch/sparc/kernel/irq.c. | 6 | * Heavily based on arch/sparc/kernel/irq.c. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/errno.h> | 9 | #include <linux/errno.h> |
11 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
12 | #include <linux/kernel_stat.h> | 11 | #include <linux/kernel_stat.h> |
@@ -108,13 +107,13 @@ found_it: seq_printf(p, "%3d: ", i); | |||
108 | kstat_cpu(cpu_logical_map(x)).irqs[i]); | 107 | kstat_cpu(cpu_logical_map(x)).irqs[i]); |
109 | #endif | 108 | #endif |
110 | seq_printf(p, "%c %s", | 109 | seq_printf(p, "%c %s", |
111 | (action->flags & SA_INTERRUPT) ? '+' : ' ', | 110 | (action->flags & IRQF_DISABLED) ? '+' : ' ', |
112 | action->name); | 111 | action->name); |
113 | action = action->next; | 112 | action = action->next; |
114 | for (;;) { | 113 | for (;;) { |
115 | for (; action; action = action->next) { | 114 | for (; action; action = action->next) { |
116 | seq_printf(p, ",%s %s", | 115 | seq_printf(p, ",%s %s", |
117 | (action->flags & SA_INTERRUPT) ? " +" : "", | 116 | (action->flags & IRQF_DISABLED) ? " +" : "", |
118 | action->name); | 117 | action->name); |
119 | } | 118 | } |
120 | if (!sbusl) break; | 119 | if (!sbusl) break; |
@@ -161,7 +160,7 @@ void sun4d_free_irq(unsigned int irq, void *dev_id) | |||
161 | printk("Trying to free free shared IRQ%d\n",irq); | 160 | printk("Trying to free free shared IRQ%d\n",irq); |
162 | goto out_unlock; | 161 | goto out_unlock; |
163 | } | 162 | } |
164 | } else if (action->flags & SA_SHIRQ) { | 163 | } else if (action->flags & IRQF_SHARED) { |
165 | printk("Trying to free shared IRQ%d with NULL device ID\n", irq); | 164 | printk("Trying to free shared IRQ%d with NULL device ID\n", irq); |
166 | goto out_unlock; | 165 | goto out_unlock; |
167 | } | 166 | } |
@@ -299,13 +298,13 @@ int sun4d_request_irq(unsigned int irq, | |||
299 | action = *actionp; | 298 | action = *actionp; |
300 | 299 | ||
301 | if (action) { | 300 | if (action) { |
302 | if ((action->flags & SA_SHIRQ) && (irqflags & SA_SHIRQ)) { | 301 | if ((action->flags & IRQF_SHARED) && (irqflags & IRQF_SHARED)) { |
303 | for (tmp = action; tmp->next; tmp = tmp->next); | 302 | for (tmp = action; tmp->next; tmp = tmp->next); |
304 | } else { | 303 | } else { |
305 | ret = -EBUSY; | 304 | ret = -EBUSY; |
306 | goto out_unlock; | 305 | goto out_unlock; |
307 | } | 306 | } |
308 | if ((action->flags & SA_INTERRUPT) ^ (irqflags & SA_INTERRUPT)) { | 307 | if ((action->flags & IRQF_DISABLED) ^ (irqflags & IRQF_DISABLED)) { |
309 | printk("Attempt to mix fast and slow interrupts on IRQ%d denied\n", irq); | 308 | printk("Attempt to mix fast and slow interrupts on IRQ%d denied\n", irq); |
310 | ret = -EBUSY; | 309 | ret = -EBUSY; |
311 | goto out_unlock; | 310 | goto out_unlock; |
@@ -491,7 +490,7 @@ static void __init sun4d_init_timers(irqreturn_t (*counter_fn)(int, void *, stru | |||
491 | 490 | ||
492 | irq = request_irq(TIMER_IRQ, | 491 | irq = request_irq(TIMER_IRQ, |
493 | counter_fn, | 492 | counter_fn, |
494 | (SA_INTERRUPT | SA_STATIC_ALLOC), | 493 | (IRQF_DISABLED | SA_STATIC_ALLOC), |
495 | "timer", NULL); | 494 | "timer", NULL); |
496 | if (irq) { | 495 | if (irq) { |
497 | prom_printf("time_init: unable to attach IRQ%d\n",TIMER_IRQ); | 496 | prom_printf("time_init: unable to attach IRQ%d\n",TIMER_IRQ); |
diff --git a/arch/sparc/kernel/sun4m_irq.c b/arch/sparc/kernel/sun4m_irq.c index a296c13ac18f..7cefa301efea 100644 --- a/arch/sparc/kernel/sun4m_irq.c +++ b/arch/sparc/kernel/sun4m_irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 1996 Dave Redman (djhr@tadpole.co.uk) | 9 | * Copyright (C) 1996 Dave Redman (djhr@tadpole.co.uk) |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
14 | #include <linux/linkage.h> | 13 | #include <linux/linkage.h> |
15 | #include <linux/kernel_stat.h> | 14 | #include <linux/kernel_stat.h> |
@@ -279,7 +278,7 @@ static void __init sun4m_init_timers(irqreturn_t (*counter_fn)(int, void *, stru | |||
279 | 278 | ||
280 | irq = request_irq(TIMER_IRQ, | 279 | irq = request_irq(TIMER_IRQ, |
281 | counter_fn, | 280 | counter_fn, |
282 | (SA_INTERRUPT | SA_STATIC_ALLOC), | 281 | (IRQF_DISABLED | SA_STATIC_ALLOC), |
283 | "timer", NULL); | 282 | "timer", NULL); |
284 | if (irq) { | 283 | if (irq) { |
285 | prom_printf("time_init: unable to attach IRQ%d\n",TIMER_IRQ); | 284 | prom_printf("time_init: unable to attach IRQ%d\n",TIMER_IRQ); |
diff --git a/arch/sparc/kernel/sys_solaris.c b/arch/sparc/kernel/sys_solaris.c index fb7578554c78..c09afd96dd9c 100644 --- a/arch/sparc/kernel/sys_solaris.c +++ b/arch/sparc/kernel/sys_solaris.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx) | 4 | * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/string.h> | 9 | #include <linux/string.h> |
diff --git a/arch/sparc/kernel/sys_sunos.c b/arch/sparc/kernel/sys_sunos.c index 288de276d9ff..aa0fb2efb615 100644 --- a/arch/sparc/kernel/sys_sunos.c +++ b/arch/sparc/kernel/sys_sunos.c | |||
@@ -196,7 +196,7 @@ asmlinkage int sunos_brk(unsigned long brk) | |||
196 | * simple, it hopefully works in most obvious cases.. Easy to | 196 | * simple, it hopefully works in most obvious cases.. Easy to |
197 | * fool it, but this should catch most mistakes. | 197 | * fool it, but this should catch most mistakes. |
198 | */ | 198 | */ |
199 | freepages = get_page_cache_size(); | 199 | freepages = global_page_state(NR_FILE_PAGES); |
200 | freepages >>= 1; | 200 | freepages >>= 1; |
201 | freepages += nr_free_pages(); | 201 | freepages += nr_free_pages(); |
202 | freepages += nr_swap_pages; | 202 | freepages += nr_swap_pages; |
diff --git a/arch/sparc/kernel/systbls.S b/arch/sparc/kernel/systbls.S index 2856551bddf1..10df38eeae08 100644 --- a/arch/sparc/kernel/systbls.S +++ b/arch/sparc/kernel/systbls.S | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) | 9 | * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | 12 | ||
14 | .data | 13 | .data |
15 | .align 4 | 14 | .align 4 |
diff --git a/arch/sparc/kernel/tick14.c b/arch/sparc/kernel/tick14.c index 591547af4c65..d3b4daac705f 100644 --- a/arch/sparc/kernel/tick14.c +++ b/arch/sparc/kernel/tick14.c | |||
@@ -74,7 +74,7 @@ void claim_ticker14(irqreturn_t (*handler)(int, void *, struct pt_regs *), | |||
74 | 74 | ||
75 | if (!request_irq(irq_nr, | 75 | if (!request_irq(irq_nr, |
76 | handler, | 76 | handler, |
77 | (SA_INTERRUPT | SA_STATIC_ALLOC), | 77 | (IRQF_DISABLED | SA_STATIC_ALLOC), |
78 | "counter14", | 78 | "counter14", |
79 | NULL)) { | 79 | NULL)) { |
80 | install_linux_ticker(); | 80 | install_linux_ticker(); |
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c index 7dadcdb4ca42..04eb1eab6e3e 100644 --- a/arch/sparc/kernel/time.c +++ b/arch/sparc/kernel/time.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * 1997-09-10 Updated NTP code according to technical memorandum Jan '96 | 15 | * 1997-09-10 Updated NTP code according to technical memorandum Jan '96 |
16 | * "A Kernel Model for Precision Timekeeping" by Dave Mills | 16 | * "A Kernel Model for Precision Timekeeping" by Dave Mills |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
20 | #include <linux/module.h> | 19 | #include <linux/module.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
@@ -42,6 +41,7 @@ | |||
42 | #include <asm/sun4paddr.h> | 41 | #include <asm/sun4paddr.h> |
43 | #include <asm/page.h> | 42 | #include <asm/page.h> |
44 | #include <asm/pcic.h> | 43 | #include <asm/pcic.h> |
44 | #include <asm/of_device.h> | ||
45 | 45 | ||
46 | extern unsigned long wall_jiffies; | 46 | extern unsigned long wall_jiffies; |
47 | 47 | ||
@@ -273,83 +273,31 @@ static __inline__ void sun4_clock_probe(void) | |||
273 | #endif | 273 | #endif |
274 | } | 274 | } |
275 | 275 | ||
276 | /* Probe for the mostek real time clock chip. */ | 276 | static int __devinit clock_probe(struct of_device *op, const struct of_device_id *match) |
277 | static __inline__ void clock_probe(void) | ||
278 | { | 277 | { |
279 | struct linux_prom_registers clk_reg[2]; | 278 | struct device_node *dp = op->node; |
280 | char model[128]; | 279 | char *model = of_get_property(dp, "model", NULL); |
281 | register int node, cpuunit, bootbus; | ||
282 | struct resource r; | ||
283 | |||
284 | cpuunit = bootbus = 0; | ||
285 | memset(&r, 0, sizeof(r)); | ||
286 | |||
287 | /* Determine the correct starting PROM node for the probe. */ | ||
288 | node = prom_getchild(prom_root_node); | ||
289 | switch (sparc_cpu_model) { | ||
290 | case sun4c: | ||
291 | break; | ||
292 | case sun4m: | ||
293 | node = prom_getchild(prom_searchsiblings(node, "obio")); | ||
294 | break; | ||
295 | case sun4d: | ||
296 | node = prom_getchild(bootbus = prom_searchsiblings(prom_getchild(cpuunit = prom_searchsiblings(node, "cpu-unit")), "bootbus")); | ||
297 | break; | ||
298 | default: | ||
299 | prom_printf("CLOCK: Unsupported architecture!\n"); | ||
300 | prom_halt(); | ||
301 | } | ||
302 | 280 | ||
303 | /* Find the PROM node describing the real time clock. */ | 281 | if (!model) |
304 | sp_clock_typ = MSTK_INVALID; | 282 | return -ENODEV; |
305 | node = prom_searchsiblings(node,"eeprom"); | ||
306 | if (!node) { | ||
307 | prom_printf("CLOCK: No clock found!\n"); | ||
308 | prom_halt(); | ||
309 | } | ||
310 | 283 | ||
311 | /* Get the model name and setup everything up. */ | 284 | if (!strcmp(model, "mk48t02")) { |
312 | model[0] = '\0'; | ||
313 | prom_getstring(node, "model", model, sizeof(model)); | ||
314 | if (strcmp(model, "mk48t02") == 0) { | ||
315 | sp_clock_typ = MSTK48T02; | 285 | sp_clock_typ = MSTK48T02; |
316 | if (prom_getproperty(node, "reg", (char *) clk_reg, sizeof(clk_reg)) == -1) { | 286 | |
317 | prom_printf("clock_probe: FAILED!\n"); | ||
318 | prom_halt(); | ||
319 | } | ||
320 | if (sparc_cpu_model == sun4d) | ||
321 | prom_apply_generic_ranges (bootbus, cpuunit, clk_reg, 1); | ||
322 | else | ||
323 | prom_apply_obio_ranges(clk_reg, 1); | ||
324 | /* Map the clock register io area read-only */ | 287 | /* Map the clock register io area read-only */ |
325 | r.flags = clk_reg[0].which_io; | 288 | mstk48t02_regs = of_ioremap(&op->resource[0], 0, |
326 | r.start = clk_reg[0].phys_addr; | 289 | sizeof(struct mostek48t02), |
327 | mstk48t02_regs = sbus_ioremap(&r, 0, | 290 | "mk48t02"); |
328 | sizeof(struct mostek48t02), "mk48t02"); | ||
329 | mstk48t08_regs = NULL; /* To catch weirdness */ | 291 | mstk48t08_regs = NULL; /* To catch weirdness */ |
330 | } else if (strcmp(model, "mk48t08") == 0) { | 292 | } else if (!strcmp(model, "mk48t08")) { |
331 | sp_clock_typ = MSTK48T08; | 293 | sp_clock_typ = MSTK48T08; |
332 | if(prom_getproperty(node, "reg", (char *) clk_reg, | 294 | mstk48t08_regs = of_ioremap(&op->resource[0], 0, |
333 | sizeof(clk_reg)) == -1) { | 295 | sizeof(struct mostek48t08), |
334 | prom_printf("clock_probe: FAILED!\n"); | 296 | "mk48t08"); |
335 | prom_halt(); | ||
336 | } | ||
337 | if (sparc_cpu_model == sun4d) | ||
338 | prom_apply_generic_ranges (bootbus, cpuunit, clk_reg, 1); | ||
339 | else | ||
340 | prom_apply_obio_ranges(clk_reg, 1); | ||
341 | /* Map the clock register io area read-only */ | ||
342 | /* XXX r/o attribute is somewhere in r.flags */ | ||
343 | r.flags = clk_reg[0].which_io; | ||
344 | r.start = clk_reg[0].phys_addr; | ||
345 | mstk48t08_regs = sbus_ioremap(&r, 0, | ||
346 | sizeof(struct mostek48t08), "mk48t08"); | ||
347 | 297 | ||
348 | mstk48t02_regs = &mstk48t08_regs->regs; | 298 | mstk48t02_regs = &mstk48t08_regs->regs; |
349 | } else { | 299 | } else |
350 | prom_printf("CLOCK: Unknown model name '%s'\n",model); | 300 | return -ENODEV; |
351 | prom_halt(); | ||
352 | } | ||
353 | 301 | ||
354 | /* Report a low battery voltage condition. */ | 302 | /* Report a low battery voltage condition. */ |
355 | if (has_low_battery()) | 303 | if (has_low_battery()) |
@@ -358,6 +306,28 @@ static __inline__ void clock_probe(void) | |||
358 | /* Kick start the clock if it is completely stopped. */ | 306 | /* Kick start the clock if it is completely stopped. */ |
359 | if (mostek_read(mstk48t02_regs + MOSTEK_SEC) & MSTK_STOP) | 307 | if (mostek_read(mstk48t02_regs + MOSTEK_SEC) & MSTK_STOP) |
360 | kick_start_clock(); | 308 | kick_start_clock(); |
309 | |||
310 | return 0; | ||
311 | } | ||
312 | |||
313 | static struct of_device_id clock_match[] = { | ||
314 | { | ||
315 | .name = "eeprom", | ||
316 | }, | ||
317 | {}, | ||
318 | }; | ||
319 | |||
320 | static struct of_platform_driver clock_driver = { | ||
321 | .name = "clock", | ||
322 | .match_table = clock_match, | ||
323 | .probe = clock_probe, | ||
324 | }; | ||
325 | |||
326 | |||
327 | /* Probe for the mostek real time clock chip. */ | ||
328 | static void clock_init(void) | ||
329 | { | ||
330 | of_register_driver(&clock_driver, &of_bus_type); | ||
361 | } | 331 | } |
362 | 332 | ||
363 | void __init sbus_time_init(void) | 333 | void __init sbus_time_init(void) |
@@ -376,7 +346,7 @@ void __init sbus_time_init(void) | |||
376 | if (ARCH_SUN4) | 346 | if (ARCH_SUN4) |
377 | sun4_clock_probe(); | 347 | sun4_clock_probe(); |
378 | else | 348 | else |
379 | clock_probe(); | 349 | clock_init(); |
380 | 350 | ||
381 | sparc_init_timers(timer_interrupt); | 351 | sparc_init_timers(timer_interrupt); |
382 | 352 | ||
diff --git a/arch/sparc/kernel/traps.c b/arch/sparc/kernel/traps.c index 41d45c298fb2..6a70d215fd04 100644 --- a/arch/sparc/kernel/traps.c +++ b/arch/sparc/kernel/traps.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * I hate traps on the sparc, grrr... | 9 | * I hate traps on the sparc, grrr... |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/sched.h> /* for jiffies */ | 12 | #include <linux/sched.h> /* for jiffies */ |
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/kallsyms.h> | 14 | #include <linux/kallsyms.h> |
diff --git a/arch/sparc/lib/atomic.S b/arch/sparc/lib/atomic.S index f48ad0c4dadb..178cbb8ae1b9 100644 --- a/arch/sparc/lib/atomic.S +++ b/arch/sparc/lib/atomic.S | |||
@@ -3,7 +3,6 @@ | |||
3 | * Copyright (C) 1996 David S. Miller (davem@caipfs.rutgers.edu) | 3 | * Copyright (C) 1996 David S. Miller (davem@caipfs.rutgers.edu) |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <asm/ptrace.h> | 6 | #include <asm/ptrace.h> |
8 | #include <asm/psr.h> | 7 | #include <asm/psr.h> |
9 | 8 | ||
diff --git a/arch/sparc/lib/bitops.S b/arch/sparc/lib/bitops.S index 3e9399769075..cb7fb66a40c8 100644 --- a/arch/sparc/lib/bitops.S +++ b/arch/sparc/lib/bitops.S | |||
@@ -3,7 +3,6 @@ | |||
3 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) | 3 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <asm/ptrace.h> | 6 | #include <asm/ptrace.h> |
8 | #include <asm/psr.h> | 7 | #include <asm/psr.h> |
9 | 8 | ||
diff --git a/arch/sparc/lib/rwsem.S b/arch/sparc/lib/rwsem.S index e7578dc600b8..20657744c864 100644 --- a/arch/sparc/lib/rwsem.S +++ b/arch/sparc/lib/rwsem.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1999 Jakub Jelinek (jakub@redhat.com) | 4 | * Copyright (C) 1999 Jakub Jelinek (jakub@redhat.com) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/ptrace.h> | 7 | #include <asm/ptrace.h> |
9 | #include <asm/psr.h> | 8 | #include <asm/psr.h> |
10 | 9 | ||
diff --git a/arch/sparc/mm/btfixup.c b/arch/sparc/mm/btfixup.c index f147a44c9780..ec4231c2855a 100644 --- a/arch/sparc/mm/btfixup.c +++ b/arch/sparc/mm/btfixup.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 6 | * Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | #include <asm/btfixup.h> | 11 | #include <asm/btfixup.h> |
diff --git a/arch/sparc/mm/extable.c b/arch/sparc/mm/extable.c index c9845c71f426..16cc28935e39 100644 --- a/arch/sparc/mm/extable.c +++ b/arch/sparc/mm/extable.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/sparc/mm/extable.c | 2 | * linux/arch/sparc/mm/extable.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | 5 | #include <linux/module.h> |
7 | #include <asm/uaccess.h> | 6 | #include <asm/uaccess.h> |
8 | 7 | ||
diff --git a/arch/sparc/mm/hypersparc.S b/arch/sparc/mm/hypersparc.S index a231cca37216..d29cc24c5bba 100644 --- a/arch/sparc/mm/hypersparc.S +++ b/arch/sparc/mm/hypersparc.S | |||
@@ -10,7 +10,6 @@ | |||
10 | #include <asm/asi.h> | 10 | #include <asm/asi.h> |
11 | #include <asm/page.h> | 11 | #include <asm/page.h> |
12 | #include <asm/pgtsrmmu.h> | 12 | #include <asm/pgtsrmmu.h> |
13 | #include <linux/config.h> | ||
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
15 | 14 | ||
16 | .text | 15 | .text |
diff --git a/arch/sparc/mm/init.c b/arch/sparc/mm/init.c index cfa7d3456634..c85ddf312747 100644 --- a/arch/sparc/mm/init.c +++ b/arch/sparc/mm/init.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 2000 Anton Blanchard (anton@samba.org) | 7 | * Copyright (C) 2000 Anton Blanchard (anton@samba.org) |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/signal.h> | 11 | #include <linux/signal.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
diff --git a/arch/sparc/mm/io-unit.c b/arch/sparc/mm/io-unit.c index eefffa1dc5de..42c1c700c0a7 100644 --- a/arch/sparc/mm/io-unit.c +++ b/arch/sparc/mm/io-unit.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 4 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | #include <linux/slab.h> | 9 | #include <linux/slab.h> |
diff --git a/arch/sparc/mm/iommu.c b/arch/sparc/mm/iommu.c index 7215849db392..be042efd1ba4 100644 --- a/arch/sparc/mm/iommu.c +++ b/arch/sparc/mm/iommu.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 7 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index 58c65cc8d0d3..16e13f663ab0 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1999,2000 Anton Blanchard (anton@samba.org) | 8 | * Copyright (C) 1999,2000 Anton Blanchard (anton@samba.org) |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
14 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c index 49f28c1bdc6d..7fdddf3c7e16 100644 --- a/arch/sparc/mm/sun4c.c +++ b/arch/sparc/mm/sun4c.c | |||
@@ -10,7 +10,6 @@ | |||
10 | 10 | ||
11 | #define NR_TASK_BUCKETS 512 | 11 | #define NR_TASK_BUCKETS 512 |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
diff --git a/arch/sparc/mm/swift.S b/arch/sparc/mm/swift.S index cd90f3fdc4e7..9f4cd396a0fa 100644 --- a/arch/sparc/mm/swift.S +++ b/arch/sparc/mm/swift.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1999 David S. Miller (davem@redhat.com) | 4 | * Copyright (C) 1999 David S. Miller (davem@redhat.com) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/psr.h> | 7 | #include <asm/psr.h> |
9 | #include <asm/asi.h> | 8 | #include <asm/asi.h> |
10 | #include <asm/page.h> | 9 | #include <asm/page.h> |
diff --git a/arch/sparc/mm/tsunami.S b/arch/sparc/mm/tsunami.S index 697af617594a..4988e6a310bb 100644 --- a/arch/sparc/mm/tsunami.S +++ b/arch/sparc/mm/tsunami.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) | 4 | * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/ptrace.h> | 7 | #include <asm/ptrace.h> |
9 | #include <asm/asm-offsets.h> | 8 | #include <asm/asm-offsets.h> |
10 | #include <asm/psr.h> | 9 | #include <asm/psr.h> |
diff --git a/arch/sparc/mm/viking.S b/arch/sparc/mm/viking.S index 3cbd6de18dde..754c622548a5 100644 --- a/arch/sparc/mm/viking.S +++ b/arch/sparc/mm/viking.S | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1999 Pavel Semerad (semerad@ss1000.ms.mff.cuni.cz) | 6 | * Copyright (C) 1999 Pavel Semerad (semerad@ss1000.ms.mff.cuni.cz) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <asm/ptrace.h> | 9 | #include <asm/ptrace.h> |
11 | #include <asm/psr.h> | 10 | #include <asm/psr.h> |
12 | #include <asm/asm-offsets.h> | 11 | #include <asm/asm-offsets.h> |
diff --git a/arch/sparc/prom/init.c b/arch/sparc/prom/init.c index b83409c81916..50abfb1b880e 100644 --- a/arch/sparc/prom/init.c +++ b/arch/sparc/prom/init.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 6 | * Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | 11 | ||
diff --git a/arch/sparc/prom/memory.c b/arch/sparc/prom/memory.c index c20e5309f8aa..b0c0f9c4fc14 100644 --- a/arch/sparc/prom/memory.c +++ b/arch/sparc/prom/memory.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1997 Michael A. Griffith (grif@acm.org) | 6 | * Copyright (C) 1997 Michael A. Griffith (grif@acm.org) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/init.h> | 10 | #include <linux/init.h> |
12 | 11 | ||
diff --git a/arch/sparc/prom/misc.c b/arch/sparc/prom/misc.c index c840c2062342..1942c7c05cb1 100644 --- a/arch/sparc/prom/misc.c +++ b/arch/sparc/prom/misc.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | 5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/types.h> | 8 | #include <linux/types.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
diff --git a/arch/sparc64/kernel/auxio.c b/arch/sparc64/kernel/auxio.c index c2c69c167d18..718350aba1ec 100644 --- a/arch/sparc64/kernel/auxio.c +++ b/arch/sparc64/kernel/auxio.c | |||
@@ -11,10 +11,9 @@ | |||
11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
12 | #include <linux/ioport.h> | 12 | #include <linux/ioport.h> |
13 | 13 | ||
14 | #include <asm/oplib.h> | 14 | #include <asm/prom.h> |
15 | #include <asm/of_device.h> | ||
15 | #include <asm/io.h> | 16 | #include <asm/io.h> |
16 | #include <asm/sbus.h> | ||
17 | #include <asm/ebus.h> | ||
18 | #include <asm/auxio.h> | 17 | #include <asm/auxio.h> |
19 | 18 | ||
20 | void __iomem *auxio_register = NULL; | 19 | void __iomem *auxio_register = NULL; |
@@ -111,12 +110,6 @@ void auxio_set_lte(int on) | |||
111 | } | 110 | } |
112 | } | 111 | } |
113 | 112 | ||
114 | static void __devinit auxio_report_dev(struct device_node *dp) | ||
115 | { | ||
116 | printk(KERN_INFO "AUXIO: Found device at %s\n", | ||
117 | dp->full_name); | ||
118 | } | ||
119 | |||
120 | static struct of_device_id auxio_match[] = { | 113 | static struct of_device_id auxio_match[] = { |
121 | { | 114 | { |
122 | .name = "auxio", | 115 | .name = "auxio", |
@@ -126,67 +119,48 @@ static struct of_device_id auxio_match[] = { | |||
126 | 119 | ||
127 | MODULE_DEVICE_TABLE(of, auxio_match); | 120 | MODULE_DEVICE_TABLE(of, auxio_match); |
128 | 121 | ||
129 | #ifdef CONFIG_SBUS | 122 | static int __devinit auxio_probe(struct of_device *dev, const struct of_device_id *match) |
130 | static int __devinit auxio_sbus_probe(struct of_device *dev, const struct of_device_id *match) | ||
131 | { | 123 | { |
132 | struct sbus_dev *sdev = to_sbus_device(&dev->dev); | 124 | struct device_node *dp = dev->node; |
133 | 125 | unsigned long size; | |
134 | auxio_devtype = AUXIO_TYPE_SBUS; | 126 | |
135 | auxio_register = sbus_ioremap(&sdev->resource[0], 0, | 127 | if (!strcmp(dp->parent->name, "ebus")) { |
136 | sdev->reg_addrs[0].reg_size, | 128 | auxio_devtype = AUXIO_TYPE_EBUS; |
137 | "auxiliaryIO"); | 129 | size = sizeof(u32); |
138 | if (!auxio_register) | 130 | } else if (!strcmp(dp->parent->name, "sbus")) { |
131 | auxio_devtype = AUXIO_TYPE_SBUS; | ||
132 | size = 1; | ||
133 | } else { | ||
134 | printk("auxio: Unknown parent bus type [%s]\n", | ||
135 | dp->parent->name); | ||
139 | return -ENODEV; | 136 | return -ENODEV; |
140 | 137 | } | |
141 | auxio_report_dev(dev->node); | 138 | auxio_register = of_ioremap(&dev->resource[0], 0, size, "auxio"); |
142 | return 0; | ||
143 | } | ||
144 | |||
145 | static struct of_platform_driver auxio_sbus_driver = { | ||
146 | .name = "auxio", | ||
147 | .match_table = auxio_match, | ||
148 | .probe = auxio_sbus_probe, | ||
149 | }; | ||
150 | #endif | ||
151 | |||
152 | #ifdef CONFIG_PCI | ||
153 | static int __devinit auxio_ebus_probe(struct of_device *dev, const struct of_device_id *match) | ||
154 | { | ||
155 | struct linux_ebus_device *edev = to_ebus_device(&dev->dev); | ||
156 | |||
157 | auxio_devtype = AUXIO_TYPE_EBUS; | ||
158 | auxio_register = ioremap(edev->resource[0].start, sizeof(u32)); | ||
159 | if (!auxio_register) | 139 | if (!auxio_register) |
160 | return -ENODEV; | 140 | return -ENODEV; |
161 | 141 | ||
162 | auxio_report_dev(dev->node); | 142 | printk(KERN_INFO "AUXIO: Found device at %s\n", |
143 | dp->full_name); | ||
163 | 144 | ||
164 | auxio_set_led(AUXIO_LED_ON); | 145 | if (auxio_devtype == AUXIO_TYPE_EBUS) |
146 | auxio_set_led(AUXIO_LED_ON); | ||
165 | 147 | ||
166 | return 0; | 148 | return 0; |
167 | } | 149 | } |
168 | 150 | ||
169 | static struct of_platform_driver auxio_ebus_driver = { | 151 | static struct of_platform_driver auxio_driver = { |
170 | .name = "auxio", | 152 | .name = "auxio", |
171 | .match_table = auxio_match, | 153 | .match_table = auxio_match, |
172 | .probe = auxio_ebus_probe, | 154 | .probe = auxio_probe, |
173 | }; | 155 | }; |
174 | #endif | ||
175 | 156 | ||
176 | static int __init auxio_probe(void) | 157 | static int __init auxio_init(void) |
177 | { | 158 | { |
178 | #ifdef CONFIG_SBUS | 159 | return of_register_driver(&auxio_driver, &of_bus_type); |
179 | of_register_driver(&auxio_sbus_driver, &sbus_bus_type); | ||
180 | #endif | ||
181 | #ifdef CONFIG_PCI | ||
182 | of_register_driver(&auxio_ebus_driver, &ebus_bus_type); | ||
183 | #endif | ||
184 | |||
185 | return 0; | ||
186 | } | 160 | } |
187 | 161 | ||
188 | /* Must be after subsys_initcall() so that busses are probed. Must | 162 | /* Must be after subsys_initcall() so that busses are probed. Must |
189 | * be before device_initcall() because things like the floppy driver | 163 | * be before device_initcall() because things like the floppy driver |
190 | * need to use the AUXIO register. | 164 | * need to use the AUXIO register. |
191 | */ | 165 | */ |
192 | fs_initcall(auxio_probe); | 166 | fs_initcall(auxio_init); |
diff --git a/arch/sparc64/kernel/binfmt_elf32.c b/arch/sparc64/kernel/binfmt_elf32.c index 8a2abcce2737..a98f3ae175a3 100644 --- a/arch/sparc64/kernel/binfmt_elf32.c +++ b/arch/sparc64/kernel/binfmt_elf32.c | |||
@@ -84,7 +84,6 @@ typedef struct { | |||
84 | 84 | ||
85 | #include <asm/processor.h> | 85 | #include <asm/processor.h> |
86 | #include <linux/module.h> | 86 | #include <linux/module.h> |
87 | #include <linux/config.h> | ||
88 | #include <linux/elfcore.h> | 87 | #include <linux/elfcore.h> |
89 | #include <linux/compat.h> | 88 | #include <linux/compat.h> |
90 | 89 | ||
diff --git a/arch/sparc64/kernel/cpu.c b/arch/sparc64/kernel/cpu.c index 11cc0caef592..7eb81d3954d9 100644 --- a/arch/sparc64/kernel/cpu.c +++ b/arch/sparc64/kernel/cpu.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) | 4 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/init.h> | 8 | #include <linux/init.h> |
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
diff --git a/arch/sparc64/kernel/devices.c b/arch/sparc64/kernel/devices.c index 389301c95cb2..f8ef2f2b9b37 100644 --- a/arch/sparc64/kernel/devices.c +++ b/arch/sparc64/kernel/devices.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) | 4 | * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/kernel.h> | 7 | #include <linux/kernel.h> |
9 | #include <linux/threads.h> | 8 | #include <linux/threads.h> |
10 | #include <linux/init.h> | 9 | #include <linux/init.h> |
@@ -21,8 +20,6 @@ | |||
21 | #include <asm/spitfire.h> | 20 | #include <asm/spitfire.h> |
22 | #include <asm/timer.h> | 21 | #include <asm/timer.h> |
23 | #include <asm/cpudata.h> | 22 | #include <asm/cpudata.h> |
24 | #include <asm/vdev.h> | ||
25 | #include <asm/irq.h> | ||
26 | 23 | ||
27 | /* Used to synchronize acceses to NatSemi SUPER I/O chip configure | 24 | /* Used to synchronize acceses to NatSemi SUPER I/O chip configure |
28 | * operations in asm/ns87303.h | 25 | * operations in asm/ns87303.h |
@@ -32,100 +29,6 @@ DEFINE_SPINLOCK(ns87303_lock); | |||
32 | extern void cpu_probe(void); | 29 | extern void cpu_probe(void); |
33 | extern void central_probe(void); | 30 | extern void central_probe(void); |
34 | 31 | ||
35 | u32 sun4v_vdev_devhandle; | ||
36 | struct device_node *sun4v_vdev_root; | ||
37 | |||
38 | struct vdev_intmap { | ||
39 | unsigned int phys; | ||
40 | unsigned int irq; | ||
41 | unsigned int cnode; | ||
42 | unsigned int cinterrupt; | ||
43 | }; | ||
44 | |||
45 | struct vdev_intmask { | ||
46 | unsigned int phys; | ||
47 | unsigned int interrupt; | ||
48 | unsigned int __unused; | ||
49 | }; | ||
50 | |||
51 | static struct vdev_intmap *vdev_intmap; | ||
52 | static int vdev_num_intmap; | ||
53 | static struct vdev_intmask *vdev_intmask; | ||
54 | |||
55 | static void __init sun4v_virtual_device_probe(void) | ||
56 | { | ||
57 | struct linux_prom64_registers *regs; | ||
58 | struct property *prop; | ||
59 | struct device_node *dp; | ||
60 | int sz; | ||
61 | |||
62 | if (tlb_type != hypervisor) | ||
63 | return; | ||
64 | |||
65 | dp = of_find_node_by_name(NULL, "virtual-devices"); | ||
66 | if (!dp) { | ||
67 | prom_printf("SUN4V: Fatal error, no virtual-devices node.\n"); | ||
68 | prom_halt(); | ||
69 | } | ||
70 | |||
71 | sun4v_vdev_root = dp; | ||
72 | |||
73 | prop = of_find_property(dp, "reg", NULL); | ||
74 | regs = prop->value; | ||
75 | sun4v_vdev_devhandle = (regs[0].phys_addr >> 32UL) & 0x0fffffff; | ||
76 | |||
77 | prop = of_find_property(dp, "interrupt-map", &sz); | ||
78 | vdev_intmap = prop->value; | ||
79 | vdev_num_intmap = sz / sizeof(struct vdev_intmap); | ||
80 | |||
81 | prop = of_find_property(dp, "interrupt-map-mask", NULL); | ||
82 | vdev_intmask = prop->value; | ||
83 | |||
84 | printk("%s: Virtual Device Bus devhandle[%x]\n", | ||
85 | dp->full_name, sun4v_vdev_devhandle); | ||
86 | } | ||
87 | |||
88 | unsigned int sun4v_vdev_device_interrupt(struct device_node *dev_node) | ||
89 | { | ||
90 | struct property *prop; | ||
91 | unsigned int irq, reg; | ||
92 | int i; | ||
93 | |||
94 | prop = of_find_property(dev_node, "interrupts", NULL); | ||
95 | if (!prop) { | ||
96 | printk("VDEV: Cannot get \"interrupts\" " | ||
97 | "property for OBP node %s\n", | ||
98 | dev_node->full_name); | ||
99 | return 0; | ||
100 | } | ||
101 | irq = *(unsigned int *) prop->value; | ||
102 | |||
103 | prop = of_find_property(dev_node, "reg", NULL); | ||
104 | if (!prop) { | ||
105 | printk("VDEV: Cannot get \"reg\" " | ||
106 | "property for OBP node %s\n", | ||
107 | dev_node->full_name); | ||
108 | return 0; | ||
109 | } | ||
110 | reg = *(unsigned int *) prop->value; | ||
111 | |||
112 | for (i = 0; i < vdev_num_intmap; i++) { | ||
113 | if (vdev_intmap[i].phys == (reg & vdev_intmask->phys) && | ||
114 | vdev_intmap[i].irq == (irq & vdev_intmask->interrupt)) { | ||
115 | irq = vdev_intmap[i].cinterrupt; | ||
116 | break; | ||
117 | } | ||
118 | } | ||
119 | |||
120 | if (i == vdev_num_intmap) { | ||
121 | printk("VDEV: No matching interrupt map entry " | ||
122 | "for OBP node %s\n", dev_node->full_name); | ||
123 | return 0; | ||
124 | } | ||
125 | |||
126 | return sun4v_build_irq(sun4v_vdev_devhandle, irq); | ||
127 | } | ||
128 | |||
129 | static const char *cpu_mid_prop(void) | 32 | static const char *cpu_mid_prop(void) |
130 | { | 33 | { |
131 | if (tlb_type == spitfire) | 34 | if (tlb_type == spitfire) |
@@ -290,7 +193,6 @@ void __init device_scan(void) | |||
290 | } | 193 | } |
291 | #endif | 194 | #endif |
292 | 195 | ||
293 | sun4v_virtual_device_probe(); | ||
294 | central_probe(); | 196 | central_probe(); |
295 | 197 | ||
296 | cpu_probe(); | 198 | cpu_probe(); |
diff --git a/arch/sparc64/kernel/ebus.c b/arch/sparc64/kernel/ebus.c index 98e0a8cbeecd..8a9b470e1b65 100644 --- a/arch/sparc64/kernel/ebus.c +++ b/arch/sparc64/kernel/ebus.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 1999 David S. Miller (davem@redhat.com) | 5 | * Copyright (C) 1999 David S. Miller (davem@redhat.com) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/types.h> | 10 | #include <linux/types.h> |
@@ -20,6 +19,8 @@ | |||
20 | #include <asm/pbm.h> | 19 | #include <asm/pbm.h> |
21 | #include <asm/ebus.h> | 20 | #include <asm/ebus.h> |
22 | #include <asm/oplib.h> | 21 | #include <asm/oplib.h> |
22 | #include <asm/prom.h> | ||
23 | #include <asm/of_device.h> | ||
23 | #include <asm/bpp.h> | 24 | #include <asm/bpp.h> |
24 | #include <asm/irq.h> | 25 | #include <asm/irq.h> |
25 | 26 | ||
@@ -139,7 +140,7 @@ int ebus_dma_irq_enable(struct ebus_dma_info *p, int on) | |||
139 | 140 | ||
140 | if (on) { | 141 | if (on) { |
141 | if (p->flags & EBUS_DMA_FLAG_USE_EBDMA_HANDLER) { | 142 | if (p->flags & EBUS_DMA_FLAG_USE_EBDMA_HANDLER) { |
142 | if (request_irq(p->irq, ebus_dma_irq, SA_SHIRQ, p->name, p)) | 143 | if (request_irq(p->irq, ebus_dma_irq, IRQF_SHARED, p->name, p)) |
143 | return -EBUSY; | 144 | return -EBUSY; |
144 | } | 145 | } |
145 | 146 | ||
@@ -279,45 +280,12 @@ static inline void *ebus_alloc(size_t size) | |||
279 | return mem; | 280 | return mem; |
280 | } | 281 | } |
281 | 282 | ||
282 | int __init ebus_intmap_match(struct linux_ebus *ebus, | 283 | static void __init fill_ebus_child(struct device_node *dp, |
283 | struct linux_prom_registers *reg, | 284 | struct linux_ebus_child *dev, |
284 | int *interrupt) | 285 | int non_standard_regs) |
285 | { | ||
286 | struct linux_prom_ebus_intmap *imap; | ||
287 | struct linux_prom_ebus_intmask *imask; | ||
288 | unsigned int hi, lo, irq; | ||
289 | int i, len, n_imap; | ||
290 | |||
291 | imap = of_get_property(ebus->prom_node, "interrupt-map", &len); | ||
292 | if (!imap) | ||
293 | return 0; | ||
294 | n_imap = len / sizeof(imap[0]); | ||
295 | |||
296 | imask = of_get_property(ebus->prom_node, "interrupt-map-mask", NULL); | ||
297 | if (!imask) | ||
298 | return 0; | ||
299 | |||
300 | hi = reg->which_io & imask->phys_hi; | ||
301 | lo = reg->phys_addr & imask->phys_lo; | ||
302 | irq = *interrupt & imask->interrupt; | ||
303 | for (i = 0; i < n_imap; i++) { | ||
304 | if ((imap[i].phys_hi == hi) && | ||
305 | (imap[i].phys_lo == lo) && | ||
306 | (imap[i].interrupt == irq)) { | ||
307 | *interrupt = imap[i].cinterrupt; | ||
308 | return 0; | ||
309 | } | ||
310 | } | ||
311 | return -1; | ||
312 | } | ||
313 | |||
314 | void __init fill_ebus_child(struct device_node *dp, | ||
315 | struct linux_prom_registers *preg, | ||
316 | struct linux_ebus_child *dev, | ||
317 | int non_standard_regs) | ||
318 | { | 286 | { |
287 | struct of_device *op; | ||
319 | int *regs; | 288 | int *regs; |
320 | int *irqs; | ||
321 | int i, len; | 289 | int i, len; |
322 | 290 | ||
323 | dev->prom_node = dp; | 291 | dev->prom_node = dp; |
@@ -354,12 +322,16 @@ void __init fill_ebus_child(struct device_node *dp, | |||
354 | } | 322 | } |
355 | } | 323 | } |
356 | 324 | ||
357 | for (i = 0; i < PROMINTR_MAX; i++) | 325 | op = of_find_device_by_node(dp); |
358 | dev->irqs[i] = PCI_IRQ_NONE; | 326 | if (!op) { |
359 | |||
360 | irqs = of_get_property(dp, "interrupts", &len); | ||
361 | if (!irqs) { | ||
362 | dev->num_irqs = 0; | 327 | dev->num_irqs = 0; |
328 | } else { | ||
329 | dev->num_irqs = op->num_irqs; | ||
330 | for (i = 0; i < dev->num_irqs; i++) | ||
331 | dev->irqs[i] = op->irqs[i]; | ||
332 | } | ||
333 | |||
334 | if (!dev->num_irqs) { | ||
363 | /* | 335 | /* |
364 | * Oh, well, some PROMs don't export interrupts | 336 | * Oh, well, some PROMs don't export interrupts |
365 | * property to children of EBus devices... | 337 | * property to children of EBus devices... |
@@ -375,23 +347,6 @@ void __init fill_ebus_child(struct device_node *dp, | |||
375 | dev->irqs[0] = dev->parent->irqs[1]; | 347 | dev->irqs[0] = dev->parent->irqs[1]; |
376 | } | 348 | } |
377 | } | 349 | } |
378 | } else { | ||
379 | dev->num_irqs = len / sizeof(irqs[0]); | ||
380 | for (i = 0; i < dev->num_irqs; i++) { | ||
381 | struct pci_pbm_info *pbm = dev->bus->parent; | ||
382 | struct pci_controller_info *p = pbm->parent; | ||
383 | |||
384 | if (ebus_intmap_match(dev->bus, preg, &irqs[i]) != -1) { | ||
385 | dev->irqs[i] = p->irq_build(pbm, | ||
386 | dev->bus->self, | ||
387 | irqs[i]); | ||
388 | } else { | ||
389 | /* If we get a bogus interrupt property, just | ||
390 | * record the raw value instead of punting. | ||
391 | */ | ||
392 | dev->irqs[i] = irqs[i]; | ||
393 | } | ||
394 | } | ||
395 | } | 350 | } |
396 | } | 351 | } |
397 | 352 | ||
@@ -403,72 +358,32 @@ static int __init child_regs_nonstandard(struct linux_ebus_device *dev) | |||
403 | return 0; | 358 | return 0; |
404 | } | 359 | } |
405 | 360 | ||
406 | void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *dev) | 361 | static void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *dev) |
407 | { | 362 | { |
408 | struct linux_prom_registers *regs; | ||
409 | struct linux_ebus_child *child; | 363 | struct linux_ebus_child *child; |
410 | int *irqs; | 364 | struct of_device *op; |
411 | int i, n, len; | 365 | int i, len; |
412 | 366 | ||
413 | dev->prom_node = dp; | 367 | dev->prom_node = dp; |
414 | 368 | ||
415 | printk(" [%s", dp->name); | 369 | printk(" [%s", dp->name); |
416 | 370 | ||
417 | regs = of_get_property(dp, "reg", &len); | 371 | op = of_find_device_by_node(dp); |
418 | if (!regs) { | 372 | if (!op) { |
419 | dev->num_addrs = 0; | 373 | dev->num_addrs = 0; |
420 | goto probe_interrupts; | ||
421 | } | ||
422 | |||
423 | if (len % sizeof(struct linux_prom_registers)) { | ||
424 | prom_printf("UGH: proplen for %s was %d, need multiple of %d\n", | ||
425 | dev->prom_node->name, len, | ||
426 | (int)sizeof(struct linux_prom_registers)); | ||
427 | prom_halt(); | ||
428 | } | ||
429 | dev->num_addrs = len / sizeof(struct linux_prom_registers); | ||
430 | |||
431 | for (i = 0; i < dev->num_addrs; i++) { | ||
432 | /* XXX Learn how to interpret ebus ranges... -DaveM */ | ||
433 | if (regs[i].which_io >= 0x10) | ||
434 | n = (regs[i].which_io - 0x10) >> 2; | ||
435 | else | ||
436 | n = regs[i].which_io; | ||
437 | |||
438 | dev->resource[i].start = dev->bus->self->resource[n].start; | ||
439 | dev->resource[i].start += (unsigned long)regs[i].phys_addr; | ||
440 | dev->resource[i].end = | ||
441 | (dev->resource[i].start + (unsigned long)regs[i].reg_size - 1UL); | ||
442 | dev->resource[i].flags = IORESOURCE_MEM; | ||
443 | dev->resource[i].name = dev->prom_node->name; | ||
444 | request_resource(&dev->bus->self->resource[n], | ||
445 | &dev->resource[i]); | ||
446 | } | ||
447 | |||
448 | probe_interrupts: | ||
449 | for (i = 0; i < PROMINTR_MAX; i++) | ||
450 | dev->irqs[i] = PCI_IRQ_NONE; | ||
451 | |||
452 | irqs = of_get_property(dp, "interrupts", &len); | ||
453 | if (!irqs) { | ||
454 | dev->num_irqs = 0; | 374 | dev->num_irqs = 0; |
455 | } else { | 375 | } else { |
456 | dev->num_irqs = len / sizeof(irqs[0]); | 376 | (void) of_get_property(dp, "reg", &len); |
457 | for (i = 0; i < dev->num_irqs; i++) { | 377 | dev->num_addrs = len / sizeof(struct linux_prom_registers); |
458 | struct pci_pbm_info *pbm = dev->bus->parent; | 378 | |
459 | struct pci_controller_info *p = pbm->parent; | 379 | for (i = 0; i < dev->num_addrs; i++) |
460 | 380 | memcpy(&dev->resource[i], | |
461 | if (ebus_intmap_match(dev->bus, ®s[0], &irqs[i]) != -1) { | 381 | &op->resource[i], |
462 | dev->irqs[i] = p->irq_build(pbm, | 382 | sizeof(struct resource)); |
463 | dev->bus->self, | 383 | |
464 | irqs[i]); | 384 | dev->num_irqs = op->num_irqs; |
465 | } else { | 385 | for (i = 0; i < dev->num_irqs; i++) |
466 | /* If we get a bogus interrupt property, just | 386 | dev->irqs[i] = op->irqs[i]; |
467 | * record the raw value instead of punting. | ||
468 | */ | ||
469 | dev->irqs[i] = irqs[i]; | ||
470 | } | ||
471 | } | ||
472 | } | 387 | } |
473 | 388 | ||
474 | dev->ofdev.node = dp; | 389 | dev->ofdev.node = dp; |
@@ -490,7 +405,7 @@ probe_interrupts: | |||
490 | child->next = NULL; | 405 | child->next = NULL; |
491 | child->parent = dev; | 406 | child->parent = dev; |
492 | child->bus = dev->bus; | 407 | child->bus = dev->bus; |
493 | fill_ebus_child(dp, regs, child, | 408 | fill_ebus_child(dp, child, |
494 | child_regs_nonstandard(dev)); | 409 | child_regs_nonstandard(dev)); |
495 | 410 | ||
496 | while ((dp = dp->sibling) != NULL) { | 411 | while ((dp = dp->sibling) != NULL) { |
@@ -500,7 +415,7 @@ probe_interrupts: | |||
500 | child->next = NULL; | 415 | child->next = NULL; |
501 | child->parent = dev; | 416 | child->parent = dev; |
502 | child->bus = dev->bus; | 417 | child->bus = dev->bus; |
503 | fill_ebus_child(dp, regs, child, | 418 | fill_ebus_child(dp, child, |
504 | child_regs_nonstandard(dev)); | 419 | child_regs_nonstandard(dev)); |
505 | } | 420 | } |
506 | } | 421 | } |
diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S index be85ce2a4ad9..0aaa35fc5a9c 100644 --- a/arch/sparc64/kernel/entry.S +++ b/arch/sparc64/kernel/entry.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1996,98,99 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 7 | * Copyright (C) 1996,98,99 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/errno.h> | 10 | #include <linux/errno.h> |
12 | 11 | ||
13 | #include <asm/head.h> | 12 | #include <asm/head.h> |
diff --git a/arch/sparc64/kernel/etrap.S b/arch/sparc64/kernel/etrap.S index 149383835c25..4b2bf9eb447a 100644 --- a/arch/sparc64/kernel/etrap.S +++ b/arch/sparc64/kernel/etrap.S | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 1997, 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz) | 5 | * Copyright (C) 1997, 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | 8 | ||
10 | #include <asm/asi.h> | 9 | #include <asm/asi.h> |
11 | #include <asm/pstate.h> | 10 | #include <asm/pstate.h> |
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S index 31c5892f5acc..75684b56767e 100644 --- a/arch/sparc64/kernel/head.S +++ b/arch/sparc64/kernel/head.S | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (C) 1997 Miguel de Icaza (miguel@nuclecu.unam.mx) | 7 | * Copyright (C) 1997 Miguel de Icaza (miguel@nuclecu.unam.mx) |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/version.h> | 10 | #include <linux/version.h> |
12 | #include <linux/errno.h> | 11 | #include <linux/errno.h> |
13 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index cc89b06d0178..4e64724cb9ae 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) | 6 | * Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
11 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
12 | #include <linux/ptrace.h> | 11 | #include <linux/ptrace.h> |
@@ -151,7 +150,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
151 | for_each_online_cpu(j) | 150 | for_each_online_cpu(j) |
152 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 151 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); |
153 | #endif | 152 | #endif |
154 | seq_printf(p, " %9s", irq_desc[i].handler->typename); | 153 | seq_printf(p, " %9s", irq_desc[i].chip->typename); |
155 | seq_printf(p, " %s", action->name); | 154 | seq_printf(p, " %s", action->name); |
156 | 155 | ||
157 | for (action=action->next; action; action = action->next) | 156 | for (action=action->next; action; action = action->next) |
@@ -224,7 +223,7 @@ static inline struct ino_bucket *virt_irq_to_bucket(unsigned int virt_irq) | |||
224 | #ifdef CONFIG_SMP | 223 | #ifdef CONFIG_SMP |
225 | static int irq_choose_cpu(unsigned int virt_irq) | 224 | static int irq_choose_cpu(unsigned int virt_irq) |
226 | { | 225 | { |
227 | cpumask_t mask = irq_affinity[virt_irq]; | 226 | cpumask_t mask = irq_desc[virt_irq].affinity; |
228 | int cpuid; | 227 | int cpuid; |
229 | 228 | ||
230 | if (cpus_equal(mask, CPU_MASK_ALL)) { | 229 | if (cpus_equal(mask, CPU_MASK_ALL)) { |
@@ -414,8 +413,12 @@ void irq_install_pre_handler(int virt_irq, | |||
414 | data->pre_handler_arg1 = arg1; | 413 | data->pre_handler_arg1 = arg1; |
415 | data->pre_handler_arg2 = arg2; | 414 | data->pre_handler_arg2 = arg2; |
416 | 415 | ||
417 | desc->handler = (desc->handler == &sun4u_irq ? | 416 | if (desc->chip == &sun4u_irq_ack || |
418 | &sun4u_irq_ack : &sun4v_irq_ack); | 417 | desc->chip == &sun4v_irq_ack) |
418 | return; | ||
419 | |||
420 | desc->chip = (desc->chip == &sun4u_irq ? | ||
421 | &sun4u_irq_ack : &sun4v_irq_ack); | ||
419 | } | 422 | } |
420 | 423 | ||
421 | unsigned int build_irq(int inofixup, unsigned long iclr, unsigned long imap) | 424 | unsigned int build_irq(int inofixup, unsigned long iclr, unsigned long imap) |
@@ -431,7 +434,7 @@ unsigned int build_irq(int inofixup, unsigned long iclr, unsigned long imap) | |||
431 | bucket = &ivector_table[ino]; | 434 | bucket = &ivector_table[ino]; |
432 | if (!bucket->virt_irq) { | 435 | if (!bucket->virt_irq) { |
433 | bucket->virt_irq = virt_irq_alloc(__irq(bucket)); | 436 | bucket->virt_irq = virt_irq_alloc(__irq(bucket)); |
434 | irq_desc[bucket->virt_irq].handler = &sun4u_irq; | 437 | irq_desc[bucket->virt_irq].chip = &sun4u_irq; |
435 | } | 438 | } |
436 | 439 | ||
437 | desc = irq_desc + bucket->virt_irq; | 440 | desc = irq_desc + bucket->virt_irq; |
@@ -465,7 +468,7 @@ unsigned int sun4v_build_irq(u32 devhandle, unsigned int devino) | |||
465 | bucket = &ivector_table[sysino]; | 468 | bucket = &ivector_table[sysino]; |
466 | if (!bucket->virt_irq) { | 469 | if (!bucket->virt_irq) { |
467 | bucket->virt_irq = virt_irq_alloc(__irq(bucket)); | 470 | bucket->virt_irq = virt_irq_alloc(__irq(bucket)); |
468 | irq_desc[bucket->virt_irq].handler = &sun4v_irq; | 471 | irq_desc[bucket->virt_irq].chip = &sun4v_irq; |
469 | } | 472 | } |
470 | 473 | ||
471 | desc = irq_desc + bucket->virt_irq; | 474 | desc = irq_desc + bucket->virt_irq; |
diff --git a/arch/sparc64/kernel/isa.c b/arch/sparc64/kernel/isa.c index 6f16dee280a8..0f3aec72ef5f 100644 --- a/arch/sparc64/kernel/isa.c +++ b/arch/sparc64/kernel/isa.c | |||
@@ -3,6 +3,8 @@ | |||
3 | #include <linux/pci.h> | 3 | #include <linux/pci.h> |
4 | #include <linux/slab.h> | 4 | #include <linux/slab.h> |
5 | #include <asm/oplib.h> | 5 | #include <asm/oplib.h> |
6 | #include <asm/prom.h> | ||
7 | #include <asm/of_device.h> | ||
6 | #include <asm/isa.h> | 8 | #include <asm/isa.h> |
7 | 9 | ||
8 | struct sparc_isa_bridge *isa_chain; | 10 | struct sparc_isa_bridge *isa_chain; |
@@ -46,107 +48,16 @@ isa_dev_get_resource(struct sparc_isa_device *isa_dev) | |||
46 | return pregs; | 48 | return pregs; |
47 | } | 49 | } |
48 | 50 | ||
49 | /* I can't believe they didn't put a real INO in the isa device | ||
50 | * interrupts property. The whole point of the OBP properties | ||
51 | * is to shield the kernel from IRQ routing details. | ||
52 | * | ||
53 | * The P1275 standard for ISA devices seems to also have been | ||
54 | * totally ignored. | ||
55 | * | ||
56 | * On later systems, an interrupt-map and interrupt-map-mask scheme | ||
57 | * akin to EBUS is used. | ||
58 | */ | ||
59 | static struct { | ||
60 | int obp_irq; | ||
61 | int pci_ino; | ||
62 | } grover_irq_table[] = { | ||
63 | { 1, 0x00 }, /* dma, unknown ino at this point */ | ||
64 | { 2, 0x27 }, /* floppy */ | ||
65 | { 3, 0x22 }, /* parallel */ | ||
66 | { 4, 0x2b }, /* serial */ | ||
67 | { 5, 0x25 }, /* acpi power management */ | ||
68 | |||
69 | { 0, 0x00 } /* end of table */ | ||
70 | }; | ||
71 | |||
72 | static int __init isa_dev_get_irq_using_imap(struct sparc_isa_device *isa_dev, | ||
73 | struct sparc_isa_bridge *isa_br, | ||
74 | int *interrupt, | ||
75 | struct linux_prom_registers *reg) | ||
76 | { | ||
77 | struct linux_prom_ebus_intmap *imap; | ||
78 | struct linux_prom_ebus_intmap *imask; | ||
79 | unsigned int hi, lo, irq; | ||
80 | int i, len, n_imap; | ||
81 | |||
82 | imap = of_get_property(isa_br->prom_node, "interrupt-map", &len); | ||
83 | if (!imap) | ||
84 | return 0; | ||
85 | n_imap = len / sizeof(imap[0]); | ||
86 | |||
87 | imask = of_get_property(isa_br->prom_node, "interrupt-map-mask", NULL); | ||
88 | if (!imask) | ||
89 | return 0; | ||
90 | |||
91 | hi = reg->which_io & imask->phys_hi; | ||
92 | lo = reg->phys_addr & imask->phys_lo; | ||
93 | irq = *interrupt & imask->interrupt; | ||
94 | for (i = 0; i < n_imap; i++) { | ||
95 | if ((imap[i].phys_hi == hi) && | ||
96 | (imap[i].phys_lo == lo) && | ||
97 | (imap[i].interrupt == irq)) { | ||
98 | *interrupt = imap[i].cinterrupt; | ||
99 | return 0; | ||
100 | } | ||
101 | } | ||
102 | return -1; | ||
103 | } | ||
104 | |||
105 | static void __init isa_dev_get_irq(struct sparc_isa_device *isa_dev, | 51 | static void __init isa_dev_get_irq(struct sparc_isa_device *isa_dev, |
106 | struct linux_prom_registers *pregs) | 52 | struct linux_prom_registers *pregs) |
107 | { | 53 | { |
108 | int irq_prop; | 54 | struct of_device *op = of_find_device_by_node(isa_dev->prom_node); |
109 | 55 | ||
110 | irq_prop = of_getintprop_default(isa_dev->prom_node, | 56 | if (!op || !op->num_irqs) { |
111 | "interrupts", -1); | 57 | isa_dev->irq = PCI_IRQ_NONE; |
112 | if (irq_prop <= 0) { | ||
113 | goto no_irq; | ||
114 | } else { | 58 | } else { |
115 | struct pci_controller_info *pcic; | 59 | isa_dev->irq = op->irqs[0]; |
116 | struct pci_pbm_info *pbm; | ||
117 | int i; | ||
118 | |||
119 | if (of_find_property(isa_dev->bus->prom_node, | ||
120 | "interrupt-map", NULL)) { | ||
121 | if (!isa_dev_get_irq_using_imap(isa_dev, | ||
122 | isa_dev->bus, | ||
123 | &irq_prop, | ||
124 | pregs)) | ||
125 | goto route_irq; | ||
126 | } | ||
127 | |||
128 | for (i = 0; grover_irq_table[i].obp_irq != 0; i++) { | ||
129 | if (grover_irq_table[i].obp_irq == irq_prop) { | ||
130 | int ino = grover_irq_table[i].pci_ino; | ||
131 | |||
132 | if (ino == 0) | ||
133 | goto no_irq; | ||
134 | |||
135 | irq_prop = ino; | ||
136 | goto route_irq; | ||
137 | } | ||
138 | } | ||
139 | goto no_irq; | ||
140 | |||
141 | route_irq: | ||
142 | pbm = isa_dev->bus->parent; | ||
143 | pcic = pbm->parent; | ||
144 | isa_dev->irq = pcic->irq_build(pbm, NULL, irq_prop); | ||
145 | return; | ||
146 | } | 60 | } |
147 | |||
148 | no_irq: | ||
149 | isa_dev->irq = PCI_IRQ_NONE; | ||
150 | } | 61 | } |
151 | 62 | ||
152 | static void __init isa_fill_children(struct sparc_isa_device *parent_isa_dev) | 63 | static void __init isa_fill_children(struct sparc_isa_device *parent_isa_dev) |
diff --git a/arch/sparc64/kernel/kprobes.c b/arch/sparc64/kernel/kprobes.c index 2e1c824c1cc9..8e75ed762fd8 100644 --- a/arch/sparc64/kernel/kprobes.c +++ b/arch/sparc64/kernel/kprobes.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * Copyright (C) 2004 David S. Miller <davem@davemloft.net> | 3 | * Copyright (C) 2004 David S. Miller <davem@davemloft.net> |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
8 | #include <linux/kprobes.h> | 7 | #include <linux/kprobes.h> |
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
diff --git a/arch/sparc64/kernel/ktlb.S b/arch/sparc64/kernel/ktlb.S index 31da1e564c95..e492db845ea3 100644 --- a/arch/sparc64/kernel/ktlb.S +++ b/arch/sparc64/kernel/ktlb.S | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1996,98,99 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 6 | * Copyright (C) 1996,98,99 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <asm/head.h> | 9 | #include <asm/head.h> |
11 | #include <asm/asi.h> | 10 | #include <asm/asi.h> |
12 | #include <asm/page.h> | 11 | #include <asm/page.h> |
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c index 768475bbce82..169b017eec0b 100644 --- a/arch/sparc64/kernel/of_device.c +++ b/arch/sparc64/kernel/of_device.c | |||
@@ -129,6 +129,43 @@ static int of_device_resume(struct device * dev) | |||
129 | return error; | 129 | return error; |
130 | } | 130 | } |
131 | 131 | ||
132 | void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name) | ||
133 | { | ||
134 | unsigned long ret = res->start + offset; | ||
135 | |||
136 | if (!request_region(ret, size, name)) | ||
137 | ret = 0; | ||
138 | |||
139 | return (void __iomem *) ret; | ||
140 | } | ||
141 | EXPORT_SYMBOL(of_ioremap); | ||
142 | |||
143 | void of_iounmap(void __iomem *base, unsigned long size) | ||
144 | { | ||
145 | release_region((unsigned long) base, size); | ||
146 | } | ||
147 | EXPORT_SYMBOL(of_iounmap); | ||
148 | |||
149 | static int node_match(struct device *dev, void *data) | ||
150 | { | ||
151 | struct of_device *op = to_of_device(dev); | ||
152 | struct device_node *dp = data; | ||
153 | |||
154 | return (op->node == dp); | ||
155 | } | ||
156 | |||
157 | struct of_device *of_find_device_by_node(struct device_node *dp) | ||
158 | { | ||
159 | struct device *dev = bus_find_device(&of_bus_type, NULL, | ||
160 | dp, node_match); | ||
161 | |||
162 | if (dev) | ||
163 | return to_of_device(dev); | ||
164 | |||
165 | return NULL; | ||
166 | } | ||
167 | EXPORT_SYMBOL(of_find_device_by_node); | ||
168 | |||
132 | #ifdef CONFIG_PCI | 169 | #ifdef CONFIG_PCI |
133 | struct bus_type isa_bus_type = { | 170 | struct bus_type isa_bus_type = { |
134 | .name = "isa", | 171 | .name = "isa", |
@@ -163,10 +200,657 @@ struct bus_type sbus_bus_type = { | |||
163 | EXPORT_SYMBOL(sbus_bus_type); | 200 | EXPORT_SYMBOL(sbus_bus_type); |
164 | #endif | 201 | #endif |
165 | 202 | ||
203 | struct bus_type of_bus_type = { | ||
204 | .name = "of", | ||
205 | .match = of_platform_bus_match, | ||
206 | .probe = of_device_probe, | ||
207 | .remove = of_device_remove, | ||
208 | .suspend = of_device_suspend, | ||
209 | .resume = of_device_resume, | ||
210 | }; | ||
211 | EXPORT_SYMBOL(of_bus_type); | ||
212 | |||
213 | static inline u64 of_read_addr(u32 *cell, int size) | ||
214 | { | ||
215 | u64 r = 0; | ||
216 | while (size--) | ||
217 | r = (r << 32) | *(cell++); | ||
218 | return r; | ||
219 | } | ||
220 | |||
221 | static void __init get_cells(struct device_node *dp, | ||
222 | int *addrc, int *sizec) | ||
223 | { | ||
224 | if (addrc) | ||
225 | *addrc = of_n_addr_cells(dp); | ||
226 | if (sizec) | ||
227 | *sizec = of_n_size_cells(dp); | ||
228 | } | ||
229 | |||
230 | /* Max address size we deal with */ | ||
231 | #define OF_MAX_ADDR_CELLS 4 | ||
232 | |||
233 | struct of_bus { | ||
234 | const char *name; | ||
235 | const char *addr_prop_name; | ||
236 | int (*match)(struct device_node *parent); | ||
237 | void (*count_cells)(struct device_node *child, | ||
238 | int *addrc, int *sizec); | ||
239 | u64 (*map)(u32 *addr, u32 *range, int na, int ns, int pna); | ||
240 | int (*translate)(u32 *addr, u64 offset, int na); | ||
241 | unsigned int (*get_flags)(u32 *addr); | ||
242 | }; | ||
243 | |||
244 | /* | ||
245 | * Default translator (generic bus) | ||
246 | */ | ||
247 | |||
248 | static void of_bus_default_count_cells(struct device_node *dev, | ||
249 | int *addrc, int *sizec) | ||
250 | { | ||
251 | get_cells(dev, addrc, sizec); | ||
252 | } | ||
253 | |||
254 | static u64 of_bus_default_map(u32 *addr, u32 *range, int na, int ns, int pna) | ||
255 | { | ||
256 | u64 cp, s, da; | ||
257 | |||
258 | cp = of_read_addr(range, na); | ||
259 | s = of_read_addr(range + na + pna, ns); | ||
260 | da = of_read_addr(addr, na); | ||
261 | |||
262 | if (da < cp || da >= (cp + s)) | ||
263 | return OF_BAD_ADDR; | ||
264 | return da - cp; | ||
265 | } | ||
266 | |||
267 | static int of_bus_default_translate(u32 *addr, u64 offset, int na) | ||
268 | { | ||
269 | u64 a = of_read_addr(addr, na); | ||
270 | memset(addr, 0, na * 4); | ||
271 | a += offset; | ||
272 | if (na > 1) | ||
273 | addr[na - 2] = a >> 32; | ||
274 | addr[na - 1] = a & 0xffffffffu; | ||
275 | |||
276 | return 0; | ||
277 | } | ||
278 | |||
279 | static unsigned int of_bus_default_get_flags(u32 *addr) | ||
280 | { | ||
281 | return IORESOURCE_MEM; | ||
282 | } | ||
283 | |||
284 | /* | ||
285 | * PCI bus specific translator | ||
286 | */ | ||
287 | |||
288 | static int of_bus_pci_match(struct device_node *np) | ||
289 | { | ||
290 | return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex"); | ||
291 | } | ||
292 | |||
293 | static void of_bus_pci_count_cells(struct device_node *np, | ||
294 | int *addrc, int *sizec) | ||
295 | { | ||
296 | if (addrc) | ||
297 | *addrc = 3; | ||
298 | if (sizec) | ||
299 | *sizec = 2; | ||
300 | } | ||
301 | |||
302 | static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna) | ||
303 | { | ||
304 | u64 cp, s, da; | ||
305 | |||
306 | /* Check address type match */ | ||
307 | if ((addr[0] ^ range[0]) & 0x03000000) | ||
308 | return OF_BAD_ADDR; | ||
309 | |||
310 | /* Read address values, skipping high cell */ | ||
311 | cp = of_read_addr(range + 1, na - 1); | ||
312 | s = of_read_addr(range + na + pna, ns); | ||
313 | da = of_read_addr(addr + 1, na - 1); | ||
314 | |||
315 | if (da < cp || da >= (cp + s)) | ||
316 | return OF_BAD_ADDR; | ||
317 | return da - cp; | ||
318 | } | ||
319 | |||
320 | static int of_bus_pci_translate(u32 *addr, u64 offset, int na) | ||
321 | { | ||
322 | return of_bus_default_translate(addr + 1, offset, na - 1); | ||
323 | } | ||
324 | |||
325 | static unsigned int of_bus_pci_get_flags(u32 *addr) | ||
326 | { | ||
327 | unsigned int flags = 0; | ||
328 | u32 w = addr[0]; | ||
329 | |||
330 | switch((w >> 24) & 0x03) { | ||
331 | case 0x01: | ||
332 | flags |= IORESOURCE_IO; | ||
333 | case 0x02: /* 32 bits */ | ||
334 | case 0x03: /* 64 bits */ | ||
335 | flags |= IORESOURCE_MEM; | ||
336 | } | ||
337 | if (w & 0x40000000) | ||
338 | flags |= IORESOURCE_PREFETCH; | ||
339 | return flags; | ||
340 | } | ||
341 | |||
342 | /* | ||
343 | * ISA bus specific translator | ||
344 | */ | ||
345 | |||
346 | static int of_bus_isa_match(struct device_node *np) | ||
347 | { | ||
348 | return !strcmp(np->name, "isa"); | ||
349 | } | ||
350 | |||
351 | static void of_bus_isa_count_cells(struct device_node *child, | ||
352 | int *addrc, int *sizec) | ||
353 | { | ||
354 | if (addrc) | ||
355 | *addrc = 2; | ||
356 | if (sizec) | ||
357 | *sizec = 1; | ||
358 | } | ||
359 | |||
360 | static u64 of_bus_isa_map(u32 *addr, u32 *range, int na, int ns, int pna) | ||
361 | { | ||
362 | u64 cp, s, da; | ||
363 | |||
364 | /* Check address type match */ | ||
365 | if ((addr[0] ^ range[0]) & 0x00000001) | ||
366 | return OF_BAD_ADDR; | ||
367 | |||
368 | /* Read address values, skipping high cell */ | ||
369 | cp = of_read_addr(range + 1, na - 1); | ||
370 | s = of_read_addr(range + na + pna, ns); | ||
371 | da = of_read_addr(addr + 1, na - 1); | ||
372 | |||
373 | if (da < cp || da >= (cp + s)) | ||
374 | return OF_BAD_ADDR; | ||
375 | return da - cp; | ||
376 | } | ||
377 | |||
378 | static int of_bus_isa_translate(u32 *addr, u64 offset, int na) | ||
379 | { | ||
380 | return of_bus_default_translate(addr + 1, offset, na - 1); | ||
381 | } | ||
382 | |||
383 | static unsigned int of_bus_isa_get_flags(u32 *addr) | ||
384 | { | ||
385 | unsigned int flags = 0; | ||
386 | u32 w = addr[0]; | ||
387 | |||
388 | if (w & 1) | ||
389 | flags |= IORESOURCE_IO; | ||
390 | else | ||
391 | flags |= IORESOURCE_MEM; | ||
392 | return flags; | ||
393 | } | ||
394 | |||
395 | /* | ||
396 | * SBUS bus specific translator | ||
397 | */ | ||
398 | |||
399 | static int of_bus_sbus_match(struct device_node *np) | ||
400 | { | ||
401 | return !strcmp(np->name, "sbus") || | ||
402 | !strcmp(np->name, "sbi"); | ||
403 | } | ||
404 | |||
405 | static void of_bus_sbus_count_cells(struct device_node *child, | ||
406 | int *addrc, int *sizec) | ||
407 | { | ||
408 | if (addrc) | ||
409 | *addrc = 2; | ||
410 | if (sizec) | ||
411 | *sizec = 1; | ||
412 | } | ||
413 | |||
414 | static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna) | ||
415 | { | ||
416 | return of_bus_default_map(addr, range, na, ns, pna); | ||
417 | } | ||
418 | |||
419 | static int of_bus_sbus_translate(u32 *addr, u64 offset, int na) | ||
420 | { | ||
421 | return of_bus_default_translate(addr, offset, na); | ||
422 | } | ||
423 | |||
424 | static unsigned int of_bus_sbus_get_flags(u32 *addr) | ||
425 | { | ||
426 | return IORESOURCE_MEM; | ||
427 | } | ||
428 | |||
429 | |||
430 | /* | ||
431 | * Array of bus specific translators | ||
432 | */ | ||
433 | |||
434 | static struct of_bus of_busses[] = { | ||
435 | /* PCI */ | ||
436 | { | ||
437 | .name = "pci", | ||
438 | .addr_prop_name = "assigned-addresses", | ||
439 | .match = of_bus_pci_match, | ||
440 | .count_cells = of_bus_pci_count_cells, | ||
441 | .map = of_bus_pci_map, | ||
442 | .translate = of_bus_pci_translate, | ||
443 | .get_flags = of_bus_pci_get_flags, | ||
444 | }, | ||
445 | /* ISA */ | ||
446 | { | ||
447 | .name = "isa", | ||
448 | .addr_prop_name = "reg", | ||
449 | .match = of_bus_isa_match, | ||
450 | .count_cells = of_bus_isa_count_cells, | ||
451 | .map = of_bus_isa_map, | ||
452 | .translate = of_bus_isa_translate, | ||
453 | .get_flags = of_bus_isa_get_flags, | ||
454 | }, | ||
455 | /* SBUS */ | ||
456 | { | ||
457 | .name = "sbus", | ||
458 | .addr_prop_name = "reg", | ||
459 | .match = of_bus_sbus_match, | ||
460 | .count_cells = of_bus_sbus_count_cells, | ||
461 | .map = of_bus_sbus_map, | ||
462 | .translate = of_bus_sbus_translate, | ||
463 | .get_flags = of_bus_sbus_get_flags, | ||
464 | }, | ||
465 | /* Default */ | ||
466 | { | ||
467 | .name = "default", | ||
468 | .addr_prop_name = "reg", | ||
469 | .match = NULL, | ||
470 | .count_cells = of_bus_default_count_cells, | ||
471 | .map = of_bus_default_map, | ||
472 | .translate = of_bus_default_translate, | ||
473 | .get_flags = of_bus_default_get_flags, | ||
474 | }, | ||
475 | }; | ||
476 | |||
477 | static struct of_bus *of_match_bus(struct device_node *np) | ||
478 | { | ||
479 | int i; | ||
480 | |||
481 | for (i = 0; i < ARRAY_SIZE(of_busses); i ++) | ||
482 | if (!of_busses[i].match || of_busses[i].match(np)) | ||
483 | return &of_busses[i]; | ||
484 | BUG(); | ||
485 | return NULL; | ||
486 | } | ||
487 | |||
488 | static int __init build_one_resource(struct device_node *parent, | ||
489 | struct of_bus *bus, | ||
490 | struct of_bus *pbus, | ||
491 | u32 *addr, | ||
492 | int na, int ns, int pna) | ||
493 | { | ||
494 | u32 *ranges; | ||
495 | unsigned int rlen; | ||
496 | int rone; | ||
497 | u64 offset = OF_BAD_ADDR; | ||
498 | |||
499 | ranges = of_get_property(parent, "ranges", &rlen); | ||
500 | if (ranges == NULL || rlen == 0) { | ||
501 | offset = of_read_addr(addr, na); | ||
502 | memset(addr, 0, pna * 4); | ||
503 | goto finish; | ||
504 | } | ||
505 | |||
506 | /* Now walk through the ranges */ | ||
507 | rlen /= 4; | ||
508 | rone = na + pna + ns; | ||
509 | for (; rlen >= rone; rlen -= rone, ranges += rone) { | ||
510 | offset = bus->map(addr, ranges, na, ns, pna); | ||
511 | if (offset != OF_BAD_ADDR) | ||
512 | break; | ||
513 | } | ||
514 | if (offset == OF_BAD_ADDR) | ||
515 | return 1; | ||
516 | |||
517 | memcpy(addr, ranges + na, 4 * pna); | ||
518 | |||
519 | finish: | ||
520 | /* Translate it into parent bus space */ | ||
521 | return pbus->translate(addr, offset, pna); | ||
522 | } | ||
523 | |||
524 | static void __init build_device_resources(struct of_device *op, | ||
525 | struct device *parent) | ||
526 | { | ||
527 | struct of_device *p_op; | ||
528 | struct of_bus *bus; | ||
529 | int na, ns; | ||
530 | int index, num_reg; | ||
531 | void *preg; | ||
532 | |||
533 | if (!parent) | ||
534 | return; | ||
535 | |||
536 | p_op = to_of_device(parent); | ||
537 | bus = of_match_bus(p_op->node); | ||
538 | bus->count_cells(op->node, &na, &ns); | ||
539 | |||
540 | preg = of_get_property(op->node, bus->addr_prop_name, &num_reg); | ||
541 | if (!preg || num_reg == 0) | ||
542 | return; | ||
543 | |||
544 | /* Convert to num-cells. */ | ||
545 | num_reg /= 4; | ||
546 | |||
547 | /* Conver to num-entries. */ | ||
548 | num_reg /= na + ns; | ||
549 | |||
550 | for (index = 0; index < num_reg; index++) { | ||
551 | struct resource *r = &op->resource[index]; | ||
552 | u32 addr[OF_MAX_ADDR_CELLS]; | ||
553 | u32 *reg = (preg + (index * ((na + ns) * 4))); | ||
554 | struct device_node *dp = op->node; | ||
555 | struct device_node *pp = p_op->node; | ||
556 | struct of_bus *pbus; | ||
557 | u64 size, result = OF_BAD_ADDR; | ||
558 | unsigned long flags; | ||
559 | int dna, dns; | ||
560 | int pna, pns; | ||
561 | |||
562 | size = of_read_addr(reg + na, ns); | ||
563 | flags = bus->get_flags(reg); | ||
564 | |||
565 | memcpy(addr, reg, na * 4); | ||
566 | |||
567 | /* If the immediate parent has no ranges property to apply, | ||
568 | * just use a 1<->1 mapping. Unless it is the 'dma' child | ||
569 | * of an isa bus, which must be passed up towards the root. | ||
570 | * | ||
571 | * Also, don't try to translate PMU bus device registers. | ||
572 | */ | ||
573 | if ((of_find_property(pp, "ranges", NULL) == NULL && | ||
574 | strcmp(pp->name, "dma") != 0) || | ||
575 | !strcmp(pp->name, "pmu")) { | ||
576 | result = of_read_addr(addr, na); | ||
577 | goto build_res; | ||
578 | } | ||
579 | |||
580 | dna = na; | ||
581 | dns = ns; | ||
582 | |||
583 | while (1) { | ||
584 | dp = pp; | ||
585 | pp = dp->parent; | ||
586 | if (!pp) { | ||
587 | result = of_read_addr(addr, dna); | ||
588 | break; | ||
589 | } | ||
590 | |||
591 | pbus = of_match_bus(pp); | ||
592 | pbus->count_cells(dp, &pna, &pns); | ||
593 | |||
594 | if (build_one_resource(dp, bus, pbus, addr, dna, dns, pna)) | ||
595 | break; | ||
596 | |||
597 | dna = pna; | ||
598 | dns = pns; | ||
599 | bus = pbus; | ||
600 | } | ||
601 | |||
602 | build_res: | ||
603 | memset(r, 0, sizeof(*r)); | ||
604 | if (result != OF_BAD_ADDR) { | ||
605 | if (tlb_type == hypervisor) | ||
606 | result &= 0x0fffffffffffffffUL; | ||
607 | |||
608 | r->start = result; | ||
609 | r->end = result + size - 1; | ||
610 | r->flags = flags; | ||
611 | } else { | ||
612 | r->start = ~0UL; | ||
613 | r->end = ~0UL; | ||
614 | } | ||
615 | r->name = op->node->name; | ||
616 | } | ||
617 | } | ||
618 | |||
619 | static struct device_node * __init | ||
620 | apply_interrupt_map(struct device_node *dp, struct device_node *pp, | ||
621 | u32 *imap, int imlen, u32 *imask, | ||
622 | unsigned int *irq_p) | ||
623 | { | ||
624 | struct device_node *cp; | ||
625 | unsigned int irq = *irq_p; | ||
626 | struct of_bus *bus; | ||
627 | phandle handle; | ||
628 | u32 *reg; | ||
629 | int na, num_reg, i; | ||
630 | |||
631 | bus = of_match_bus(pp); | ||
632 | bus->count_cells(dp, &na, NULL); | ||
633 | |||
634 | reg = of_get_property(dp, "reg", &num_reg); | ||
635 | if (!reg || !num_reg) | ||
636 | return NULL; | ||
637 | |||
638 | imlen /= ((na + 3) * 4); | ||
639 | handle = 0; | ||
640 | for (i = 0; i < imlen; i++) { | ||
641 | int j; | ||
642 | |||
643 | for (j = 0; j < na; j++) { | ||
644 | if ((reg[j] & imask[j]) != imap[j]) | ||
645 | goto next; | ||
646 | } | ||
647 | if (imap[na] == irq) { | ||
648 | handle = imap[na + 1]; | ||
649 | irq = imap[na + 2]; | ||
650 | break; | ||
651 | } | ||
652 | |||
653 | next: | ||
654 | imap += (na + 3); | ||
655 | } | ||
656 | if (i == imlen) | ||
657 | return NULL; | ||
658 | |||
659 | *irq_p = irq; | ||
660 | cp = of_find_node_by_phandle(handle); | ||
661 | |||
662 | return cp; | ||
663 | } | ||
664 | |||
665 | static unsigned int __init pci_irq_swizzle(struct device_node *dp, | ||
666 | struct device_node *pp, | ||
667 | unsigned int irq) | ||
668 | { | ||
669 | struct linux_prom_pci_registers *regs; | ||
670 | unsigned int devfn, slot, ret; | ||
671 | |||
672 | if (irq < 1 || irq > 4) | ||
673 | return irq; | ||
674 | |||
675 | regs = of_get_property(dp, "reg", NULL); | ||
676 | if (!regs) | ||
677 | return irq; | ||
678 | |||
679 | devfn = (regs->phys_hi >> 8) & 0xff; | ||
680 | slot = (devfn >> 3) & 0x1f; | ||
681 | |||
682 | ret = ((irq - 1 + (slot & 3)) & 3) + 1; | ||
683 | |||
684 | return ret; | ||
685 | } | ||
686 | |||
687 | static unsigned int __init build_one_device_irq(struct of_device *op, | ||
688 | struct device *parent, | ||
689 | unsigned int irq) | ||
690 | { | ||
691 | struct device_node *dp = op->node; | ||
692 | struct device_node *pp, *ip; | ||
693 | unsigned int orig_irq = irq; | ||
694 | |||
695 | if (irq == 0xffffffff) | ||
696 | return irq; | ||
697 | |||
698 | if (dp->irq_trans) { | ||
699 | irq = dp->irq_trans->irq_build(dp, irq, | ||
700 | dp->irq_trans->data); | ||
701 | #if 1 | ||
702 | printk("%s: direct translate %x --> %x\n", | ||
703 | dp->full_name, orig_irq, irq); | ||
704 | #endif | ||
705 | return irq; | ||
706 | } | ||
707 | |||
708 | /* Something more complicated. Walk up to the root, applying | ||
709 | * interrupt-map or bus specific translations, until we hit | ||
710 | * an IRQ translator. | ||
711 | * | ||
712 | * If we hit a bus type or situation we cannot handle, we | ||
713 | * stop and assume that the original IRQ number was in a | ||
714 | * format which has special meaning to it's immediate parent. | ||
715 | */ | ||
716 | pp = dp->parent; | ||
717 | ip = NULL; | ||
718 | while (pp) { | ||
719 | void *imap, *imsk; | ||
720 | int imlen; | ||
721 | |||
722 | imap = of_get_property(pp, "interrupt-map", &imlen); | ||
723 | imsk = of_get_property(pp, "interrupt-map-mask", NULL); | ||
724 | if (imap && imsk) { | ||
725 | struct device_node *iret; | ||
726 | int this_orig_irq = irq; | ||
727 | |||
728 | iret = apply_interrupt_map(dp, pp, | ||
729 | imap, imlen, imsk, | ||
730 | &irq); | ||
731 | #if 1 | ||
732 | printk("%s: Apply [%s:%x] imap --> [%s:%x]\n", | ||
733 | op->node->full_name, | ||
734 | pp->full_name, this_orig_irq, | ||
735 | (iret ? iret->full_name : "NULL"), irq); | ||
736 | #endif | ||
737 | if (!iret) | ||
738 | break; | ||
739 | |||
740 | if (iret->irq_trans) { | ||
741 | ip = iret; | ||
742 | break; | ||
743 | } | ||
744 | } else { | ||
745 | if (!strcmp(pp->type, "pci") || | ||
746 | !strcmp(pp->type, "pciex")) { | ||
747 | unsigned int this_orig_irq = irq; | ||
748 | |||
749 | irq = pci_irq_swizzle(dp, pp, irq); | ||
750 | #if 1 | ||
751 | printk("%s: PCI swizzle [%s] %x --> %x\n", | ||
752 | op->node->full_name, | ||
753 | pp->full_name, this_orig_irq, irq); | ||
754 | #endif | ||
755 | } | ||
756 | |||
757 | if (pp->irq_trans) { | ||
758 | ip = pp; | ||
759 | break; | ||
760 | } | ||
761 | } | ||
762 | dp = pp; | ||
763 | pp = pp->parent; | ||
764 | } | ||
765 | if (!ip) | ||
766 | return orig_irq; | ||
767 | |||
768 | irq = ip->irq_trans->irq_build(op->node, irq, | ||
769 | ip->irq_trans->data); | ||
770 | #if 1 | ||
771 | printk("%s: Apply IRQ trans [%s] %x --> %x\n", | ||
772 | op->node->full_name, ip->full_name, orig_irq, irq); | ||
773 | #endif | ||
774 | |||
775 | return irq; | ||
776 | } | ||
777 | |||
778 | static struct of_device * __init scan_one_device(struct device_node *dp, | ||
779 | struct device *parent) | ||
780 | { | ||
781 | struct of_device *op = kzalloc(sizeof(*op), GFP_KERNEL); | ||
782 | unsigned int *irq; | ||
783 | int len, i; | ||
784 | |||
785 | if (!op) | ||
786 | return NULL; | ||
787 | |||
788 | op->node = dp; | ||
789 | |||
790 | op->clock_freq = of_getintprop_default(dp, "clock-frequency", | ||
791 | (25*1000*1000)); | ||
792 | op->portid = of_getintprop_default(dp, "upa-portid", -1); | ||
793 | if (op->portid == -1) | ||
794 | op->portid = of_getintprop_default(dp, "portid", -1); | ||
795 | |||
796 | irq = of_get_property(dp, "interrupts", &len); | ||
797 | if (irq) { | ||
798 | memcpy(op->irqs, irq, len); | ||
799 | op->num_irqs = len / 4; | ||
800 | } else { | ||
801 | op->num_irqs = 0; | ||
802 | } | ||
803 | |||
804 | build_device_resources(op, parent); | ||
805 | for (i = 0; i < op->num_irqs; i++) | ||
806 | op->irqs[i] = build_one_device_irq(op, parent, op->irqs[i]); | ||
807 | |||
808 | op->dev.parent = parent; | ||
809 | op->dev.bus = &of_bus_type; | ||
810 | if (!parent) | ||
811 | strcpy(op->dev.bus_id, "root"); | ||
812 | else | ||
813 | strcpy(op->dev.bus_id, dp->path_component_name); | ||
814 | |||
815 | if (of_device_register(op)) { | ||
816 | printk("%s: Could not register of device.\n", | ||
817 | dp->full_name); | ||
818 | kfree(op); | ||
819 | op = NULL; | ||
820 | } | ||
821 | |||
822 | return op; | ||
823 | } | ||
824 | |||
825 | static void __init scan_tree(struct device_node *dp, struct device *parent) | ||
826 | { | ||
827 | while (dp) { | ||
828 | struct of_device *op = scan_one_device(dp, parent); | ||
829 | |||
830 | if (op) | ||
831 | scan_tree(dp->child, &op->dev); | ||
832 | |||
833 | dp = dp->sibling; | ||
834 | } | ||
835 | } | ||
836 | |||
837 | static void __init scan_of_devices(void) | ||
838 | { | ||
839 | struct device_node *root = of_find_node_by_path("/"); | ||
840 | struct of_device *parent; | ||
841 | |||
842 | parent = scan_one_device(root, NULL); | ||
843 | if (!parent) | ||
844 | return; | ||
845 | |||
846 | scan_tree(root->child, &parent->dev); | ||
847 | } | ||
848 | |||
166 | static int __init of_bus_driver_init(void) | 849 | static int __init of_bus_driver_init(void) |
167 | { | 850 | { |
168 | int err = 0; | 851 | int err; |
169 | 852 | ||
853 | err = bus_register(&of_bus_type); | ||
170 | #ifdef CONFIG_PCI | 854 | #ifdef CONFIG_PCI |
171 | if (!err) | 855 | if (!err) |
172 | err = bus_register(&isa_bus_type); | 856 | err = bus_register(&isa_bus_type); |
@@ -177,7 +861,11 @@ static int __init of_bus_driver_init(void) | |||
177 | if (!err) | 861 | if (!err) |
178 | err = bus_register(&sbus_bus_type); | 862 | err = bus_register(&sbus_bus_type); |
179 | #endif | 863 | #endif |
180 | return 0; | 864 | |
865 | if (!err) | ||
866 | scan_of_devices(); | ||
867 | |||
868 | return err; | ||
181 | } | 869 | } |
182 | 870 | ||
183 | postcore_initcall(of_bus_driver_init); | 871 | postcore_initcall(of_bus_driver_init); |
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c index 6c9e3e94abaa..e02f01b644af 100644 --- a/arch/sparc64/kernel/pci.c +++ b/arch/sparc64/kernel/pci.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz) | 6 | * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/string.h> | 11 | #include <linux/string.h> |
@@ -307,7 +306,6 @@ static void __init pci_scan_each_controller_bus(void) | |||
307 | p->scan_bus(p); | 306 | p->scan_bus(p); |
308 | } | 307 | } |
309 | 308 | ||
310 | extern void clock_probe(void); | ||
311 | extern void power_init(void); | 309 | extern void power_init(void); |
312 | 310 | ||
313 | static int __init pcibios_init(void) | 311 | static int __init pcibios_init(void) |
@@ -320,7 +318,6 @@ static int __init pcibios_init(void) | |||
320 | 318 | ||
321 | isa_init(); | 319 | isa_init(); |
322 | ebus_init(); | 320 | ebus_init(); |
323 | clock_probe(); | ||
324 | power_init(); | 321 | power_init(); |
325 | 322 | ||
326 | return 0; | 323 | return 0; |
@@ -357,7 +354,7 @@ void pcibios_update_irq(struct pci_dev *pdev, int irq) | |||
357 | } | 354 | } |
358 | 355 | ||
359 | void pcibios_align_resource(void *data, struct resource *res, | 356 | void pcibios_align_resource(void *data, struct resource *res, |
360 | unsigned long size, unsigned long align) | 357 | resource_size_t size, resource_size_t align) |
361 | { | 358 | { |
362 | } | 359 | } |
363 | 360 | ||
@@ -406,14 +403,8 @@ void pcibios_bus_to_resource(struct pci_dev *pdev, struct resource *res, | |||
406 | } | 403 | } |
407 | EXPORT_SYMBOL(pcibios_bus_to_resource); | 404 | EXPORT_SYMBOL(pcibios_bus_to_resource); |
408 | 405 | ||
409 | extern int pci_irq_verbose; | ||
410 | |||
411 | char * __init pcibios_setup(char *str) | 406 | char * __init pcibios_setup(char *str) |
412 | { | 407 | { |
413 | if (!strcmp(str, "irq_verbose")) { | ||
414 | pci_irq_verbose = 1; | ||
415 | return NULL; | ||
416 | } | ||
417 | return str; | 408 | return str; |
418 | } | 409 | } |
419 | 410 | ||
diff --git a/arch/sparc64/kernel/pci_common.c b/arch/sparc64/kernel/pci_common.c index b06a2955bf5f..7a59cc72c844 100644 --- a/arch/sparc64/kernel/pci_common.c +++ b/arch/sparc64/kernel/pci_common.c | |||
@@ -10,12 +10,10 @@ | |||
10 | 10 | ||
11 | #include <asm/pbm.h> | 11 | #include <asm/pbm.h> |
12 | #include <asm/prom.h> | 12 | #include <asm/prom.h> |
13 | #include <asm/of_device.h> | ||
13 | 14 | ||
14 | #include "pci_impl.h" | 15 | #include "pci_impl.h" |
15 | 16 | ||
16 | /* Pass "pci=irq_verbose" on the kernel command line to enable this. */ | ||
17 | int pci_irq_verbose; | ||
18 | |||
19 | /* Fix self device of BUS and hook it into BUS->self. | 17 | /* Fix self device of BUS and hook it into BUS->self. |
20 | * The pci_scan_bus does not do this for the host bridge. | 18 | * The pci_scan_bus does not do this for the host bridge. |
21 | */ | 19 | */ |
@@ -169,6 +167,7 @@ static void __init pdev_cookie_fillin(struct pci_pbm_info *pbm, | |||
169 | } | 167 | } |
170 | pcp->pbm = pbm; | 168 | pcp->pbm = pbm; |
171 | pcp->prom_node = dp; | 169 | pcp->prom_node = dp; |
170 | pcp->op = of_find_device_by_node(dp); | ||
172 | memcpy(pcp->prom_regs, pregs, | 171 | memcpy(pcp->prom_regs, pregs, |
173 | nregs * sizeof(struct linux_prom_pci_registers)); | 172 | nregs * sizeof(struct linux_prom_pci_registers)); |
174 | pcp->num_prom_regs = nregs; | 173 | pcp->num_prom_regs = nregs; |
@@ -549,296 +548,18 @@ void __init pci_assign_unassigned(struct pci_pbm_info *pbm, | |||
549 | pci_assign_unassigned(pbm, bus); | 548 | pci_assign_unassigned(pbm, bus); |
550 | } | 549 | } |
551 | 550 | ||
552 | static inline unsigned int pci_slot_swivel(struct pci_pbm_info *pbm, | ||
553 | struct pci_dev *toplevel_pdev, | ||
554 | struct pci_dev *pdev, | ||
555 | unsigned int interrupt) | ||
556 | { | ||
557 | unsigned int ret; | ||
558 | |||
559 | if (unlikely(interrupt < 1 || interrupt > 4)) { | ||
560 | printk("%s: Device %s interrupt value of %u is strange.\n", | ||
561 | pbm->name, pci_name(pdev), interrupt); | ||
562 | return interrupt; | ||
563 | } | ||
564 | |||
565 | ret = ((interrupt - 1 + (PCI_SLOT(pdev->devfn) & 3)) & 3) + 1; | ||
566 | |||
567 | if (pci_irq_verbose) | ||
568 | printk("%s: %s IRQ Swivel %s [%x:%x] -> [%x]\n", | ||
569 | pbm->name, pci_name(toplevel_pdev), pci_name(pdev), | ||
570 | interrupt, PCI_SLOT(pdev->devfn), ret); | ||
571 | |||
572 | return ret; | ||
573 | } | ||
574 | |||
575 | static inline unsigned int pci_apply_intmap(struct pci_pbm_info *pbm, | ||
576 | struct pci_dev *toplevel_pdev, | ||
577 | struct pci_dev *pbus, | ||
578 | struct pci_dev *pdev, | ||
579 | unsigned int interrupt, | ||
580 | struct device_node **cnode) | ||
581 | { | ||
582 | struct linux_prom_pci_intmap *imap; | ||
583 | struct linux_prom_pci_intmask *imask; | ||
584 | struct pcidev_cookie *pbus_pcp = pbus->sysdata; | ||
585 | struct pcidev_cookie *pdev_pcp = pdev->sysdata; | ||
586 | struct linux_prom_pci_registers *pregs = pdev_pcp->prom_regs; | ||
587 | struct property *prop; | ||
588 | int plen, num_imap, i; | ||
589 | unsigned int hi, mid, lo, irq, orig_interrupt; | ||
590 | |||
591 | *cnode = pbus_pcp->prom_node; | ||
592 | |||
593 | prop = of_find_property(pbus_pcp->prom_node, "interrupt-map", &plen); | ||
594 | if (!prop || | ||
595 | (plen % sizeof(struct linux_prom_pci_intmap)) != 0) { | ||
596 | printk("%s: Device %s interrupt-map has bad len %d\n", | ||
597 | pbm->name, pci_name(pbus), plen); | ||
598 | goto no_intmap; | ||
599 | } | ||
600 | imap = prop->value; | ||
601 | num_imap = plen / sizeof(struct linux_prom_pci_intmap); | ||
602 | |||
603 | prop = of_find_property(pbus_pcp->prom_node, "interrupt-map-mask", &plen); | ||
604 | if (!prop || | ||
605 | (plen % sizeof(struct linux_prom_pci_intmask)) != 0) { | ||
606 | printk("%s: Device %s interrupt-map-mask has bad len %d\n", | ||
607 | pbm->name, pci_name(pbus), plen); | ||
608 | goto no_intmap; | ||
609 | } | ||
610 | imask = prop->value; | ||
611 | |||
612 | orig_interrupt = interrupt; | ||
613 | |||
614 | hi = pregs->phys_hi & imask->phys_hi; | ||
615 | mid = pregs->phys_mid & imask->phys_mid; | ||
616 | lo = pregs->phys_lo & imask->phys_lo; | ||
617 | irq = interrupt & imask->interrupt; | ||
618 | |||
619 | for (i = 0; i < num_imap; i++) { | ||
620 | if (imap[i].phys_hi == hi && | ||
621 | imap[i].phys_mid == mid && | ||
622 | imap[i].phys_lo == lo && | ||
623 | imap[i].interrupt == irq) { | ||
624 | *cnode = of_find_node_by_phandle(imap[i].cnode); | ||
625 | interrupt = imap[i].cinterrupt; | ||
626 | } | ||
627 | } | ||
628 | |||
629 | if (pci_irq_verbose) | ||
630 | printk("%s: %s MAP BUS %s DEV %s [%x] -> [%x]\n", | ||
631 | pbm->name, pci_name(toplevel_pdev), | ||
632 | pci_name(pbus), pci_name(pdev), | ||
633 | orig_interrupt, interrupt); | ||
634 | |||
635 | no_intmap: | ||
636 | return interrupt; | ||
637 | } | ||
638 | |||
639 | /* For each PCI bus on the way to the root: | ||
640 | * 1) If it has an interrupt-map property, apply it. | ||
641 | * 2) Else, swivel the interrupt number based upon the PCI device number. | ||
642 | * | ||
643 | * Return the "IRQ controller" node. If this is the PBM's device node, | ||
644 | * all interrupt translations are complete, else we should use that node's | ||
645 | * "reg" property to apply the PBM's "interrupt-{map,mask}" to the interrupt. | ||
646 | */ | ||
647 | static struct device_node * __init | ||
648 | pci_intmap_match_to_root(struct pci_pbm_info *pbm, | ||
649 | struct pci_dev *pdev, | ||
650 | unsigned int *interrupt) | ||
651 | { | ||
652 | struct pci_dev *toplevel_pdev = pdev; | ||
653 | struct pcidev_cookie *toplevel_pcp = toplevel_pdev->sysdata; | ||
654 | struct device_node *cnode = toplevel_pcp->prom_node; | ||
655 | |||
656 | while (pdev->bus->number != pbm->pci_first_busno) { | ||
657 | struct pci_dev *pbus = pdev->bus->self; | ||
658 | struct pcidev_cookie *pcp = pbus->sysdata; | ||
659 | struct property *prop; | ||
660 | |||
661 | prop = of_find_property(pcp->prom_node, "interrupt-map", NULL); | ||
662 | if (!prop) { | ||
663 | *interrupt = pci_slot_swivel(pbm, toplevel_pdev, | ||
664 | pdev, *interrupt); | ||
665 | cnode = pcp->prom_node; | ||
666 | } else { | ||
667 | *interrupt = pci_apply_intmap(pbm, toplevel_pdev, | ||
668 | pbus, pdev, | ||
669 | *interrupt, &cnode); | ||
670 | |||
671 | while (pcp->prom_node != cnode && | ||
672 | pbus->bus->number != pbm->pci_first_busno) { | ||
673 | pbus = pbus->bus->self; | ||
674 | pcp = pbus->sysdata; | ||
675 | } | ||
676 | } | ||
677 | pdev = pbus; | ||
678 | |||
679 | if (cnode == pbm->prom_node) | ||
680 | break; | ||
681 | } | ||
682 | |||
683 | return cnode; | ||
684 | } | ||
685 | |||
686 | static int __init pci_intmap_match(struct pci_dev *pdev, unsigned int *interrupt) | ||
687 | { | ||
688 | struct pcidev_cookie *dev_pcp = pdev->sysdata; | ||
689 | struct pci_pbm_info *pbm = dev_pcp->pbm; | ||
690 | struct linux_prom_pci_registers *reg; | ||
691 | struct device_node *cnode; | ||
692 | struct property *prop; | ||
693 | unsigned int hi, mid, lo, irq; | ||
694 | int i, plen; | ||
695 | |||
696 | cnode = pci_intmap_match_to_root(pbm, pdev, interrupt); | ||
697 | if (cnode == pbm->prom_node) | ||
698 | goto success; | ||
699 | |||
700 | prop = of_find_property(cnode, "reg", &plen); | ||
701 | if (!prop || | ||
702 | (plen % sizeof(struct linux_prom_pci_registers)) != 0) { | ||
703 | printk("%s: OBP node %s reg property has bad len %d\n", | ||
704 | pbm->name, cnode->full_name, plen); | ||
705 | goto fail; | ||
706 | } | ||
707 | reg = prop->value; | ||
708 | |||
709 | hi = reg[0].phys_hi & pbm->pbm_intmask->phys_hi; | ||
710 | mid = reg[0].phys_mid & pbm->pbm_intmask->phys_mid; | ||
711 | lo = reg[0].phys_lo & pbm->pbm_intmask->phys_lo; | ||
712 | irq = *interrupt & pbm->pbm_intmask->interrupt; | ||
713 | |||
714 | for (i = 0; i < pbm->num_pbm_intmap; i++) { | ||
715 | struct linux_prom_pci_intmap *intmap; | ||
716 | |||
717 | intmap = &pbm->pbm_intmap[i]; | ||
718 | |||
719 | if (intmap->phys_hi == hi && | ||
720 | intmap->phys_mid == mid && | ||
721 | intmap->phys_lo == lo && | ||
722 | intmap->interrupt == irq) { | ||
723 | *interrupt = intmap->cinterrupt; | ||
724 | goto success; | ||
725 | } | ||
726 | } | ||
727 | |||
728 | fail: | ||
729 | return 0; | ||
730 | |||
731 | success: | ||
732 | if (pci_irq_verbose) | ||
733 | printk("%s: Routing bus[%2x] slot[%2x] to INO[%02x]\n", | ||
734 | pbm->name, | ||
735 | pdev->bus->number, PCI_SLOT(pdev->devfn), | ||
736 | *interrupt); | ||
737 | return 1; | ||
738 | } | ||
739 | |||
740 | static void __init pdev_fixup_irq(struct pci_dev *pdev) | 551 | static void __init pdev_fixup_irq(struct pci_dev *pdev) |
741 | { | 552 | { |
742 | struct pcidev_cookie *pcp = pdev->sysdata; | 553 | struct pcidev_cookie *pcp = pdev->sysdata; |
743 | struct pci_pbm_info *pbm = pcp->pbm; | 554 | struct of_device *op = pcp->op; |
744 | struct pci_controller_info *p = pbm->parent; | ||
745 | unsigned int portid = pbm->portid; | ||
746 | unsigned int prom_irq; | ||
747 | struct device_node *dp = pcp->prom_node; | ||
748 | struct property *prop; | ||
749 | |||
750 | /* If this is an empty EBUS device, sometimes OBP fails to | ||
751 | * give it a valid fully specified interrupts property. | ||
752 | * The EBUS hooked up to SunHME on PCI I/O boards of | ||
753 | * Ex000 systems is one such case. | ||
754 | * | ||
755 | * The interrupt is not important so just ignore it. | ||
756 | */ | ||
757 | if (pdev->vendor == PCI_VENDOR_ID_SUN && | ||
758 | pdev->device == PCI_DEVICE_ID_SUN_EBUS && | ||
759 | !dp->child) { | ||
760 | pdev->irq = 0; | ||
761 | return; | ||
762 | } | ||
763 | 555 | ||
764 | prop = of_find_property(dp, "interrupts", NULL); | 556 | if (op->irqs[0] == 0xffffffff) { |
765 | if (!prop) { | 557 | pdev->irq = PCI_IRQ_NONE; |
766 | pdev->irq = 0; | ||
767 | return; | 558 | return; |
768 | } | 559 | } |
769 | prom_irq = *(unsigned int *) prop->value; | ||
770 | |||
771 | if (tlb_type != hypervisor) { | ||
772 | /* Fully specified already? */ | ||
773 | if (((prom_irq & PCI_IRQ_IGN) >> 6) == portid) { | ||
774 | pdev->irq = p->irq_build(pbm, pdev, prom_irq); | ||
775 | goto have_irq; | ||
776 | } | ||
777 | |||
778 | /* An onboard device? (bit 5 set) */ | ||
779 | if ((prom_irq & PCI_IRQ_INO) & 0x20) { | ||
780 | pdev->irq = p->irq_build(pbm, pdev, (portid << 6 | prom_irq)); | ||
781 | goto have_irq; | ||
782 | } | ||
783 | } | ||
784 | |||
785 | /* Can we find a matching entry in the interrupt-map? */ | ||
786 | if (pci_intmap_match(pdev, &prom_irq)) { | ||
787 | pdev->irq = p->irq_build(pbm, pdev, (portid << 6) | prom_irq); | ||
788 | goto have_irq; | ||
789 | } | ||
790 | |||
791 | /* Ok, we have to do it the hard way. */ | ||
792 | { | ||
793 | unsigned int bus, slot, line; | ||
794 | |||
795 | bus = (pbm == &pbm->parent->pbm_B) ? (1 << 4) : 0; | ||
796 | |||
797 | /* If we have a legal interrupt property, use it as | ||
798 | * the IRQ line. | ||
799 | */ | ||
800 | if (prom_irq > 0 && prom_irq < 5) { | ||
801 | line = ((prom_irq - 1) & 3); | ||
802 | } else { | ||
803 | u8 pci_irq_line; | ||
804 | 560 | ||
805 | /* Else just directly consult PCI config space. */ | 561 | pdev->irq = op->irqs[0]; |
806 | pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pci_irq_line); | ||
807 | line = ((pci_irq_line - 1) & 3); | ||
808 | } | ||
809 | |||
810 | /* Now figure out the slot. | ||
811 | * | ||
812 | * Basically, device number zero on the top-level bus is | ||
813 | * always the PCI host controller. Slot 0 is then device 1. | ||
814 | * PBM A supports two external slots (0 and 1), and PBM B | ||
815 | * supports 4 external slots (0, 1, 2, and 3). On-board PCI | ||
816 | * devices are wired to device numbers outside of these | ||
817 | * ranges. -DaveM | ||
818 | */ | ||
819 | if (pdev->bus->number == pbm->pci_first_busno) { | ||
820 | slot = PCI_SLOT(pdev->devfn) - pbm->pci_first_slot; | ||
821 | } else { | ||
822 | struct pci_dev *bus_dev; | ||
823 | |||
824 | /* Underneath a bridge, use slot number of parent | ||
825 | * bridge which is closest to the PBM. | ||
826 | */ | ||
827 | bus_dev = pdev->bus->self; | ||
828 | while (bus_dev->bus && | ||
829 | bus_dev->bus->number != pbm->pci_first_busno) | ||
830 | bus_dev = bus_dev->bus->self; | ||
831 | |||
832 | slot = PCI_SLOT(bus_dev->devfn) - pbm->pci_first_slot; | ||
833 | } | ||
834 | slot = slot << 2; | ||
835 | |||
836 | pdev->irq = p->irq_build(pbm, pdev, | ||
837 | ((portid << 6) & PCI_IRQ_IGN) | | ||
838 | (bus | slot | line)); | ||
839 | } | ||
840 | 562 | ||
841 | have_irq: | ||
842 | pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, | 563 | pci_write_config_byte(pdev, PCI_INTERRUPT_LINE, |
843 | pdev->irq & PCI_IRQ_INO); | 564 | pdev->irq & PCI_IRQ_INO); |
844 | } | 565 | } |
diff --git a/arch/sparc64/kernel/pci_psycho.c b/arch/sparc64/kernel/pci_psycho.c index 5b2261ebda6f..197a7ffd57ee 100644 --- a/arch/sparc64/kernel/pci_psycho.c +++ b/arch/sparc64/kernel/pci_psycho.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <asm/irq.h> | 18 | #include <asm/irq.h> |
19 | #include <asm/starfire.h> | 19 | #include <asm/starfire.h> |
20 | #include <asm/prom.h> | 20 | #include <asm/prom.h> |
21 | #include <asm/of_device.h> | ||
21 | 22 | ||
22 | #include "pci_impl.h" | 23 | #include "pci_impl.h" |
23 | #include "iommu_common.h" | 24 | #include "iommu_common.h" |
@@ -208,110 +209,6 @@ static struct pci_ops psycho_ops = { | |||
208 | .write = psycho_write_pci_cfg, | 209 | .write = psycho_write_pci_cfg, |
209 | }; | 210 | }; |
210 | 211 | ||
211 | /* PSYCHO interrupt mapping support. */ | ||
212 | #define PSYCHO_IMAP_A_SLOT0 0x0c00UL | ||
213 | #define PSYCHO_IMAP_B_SLOT0 0x0c20UL | ||
214 | static unsigned long psycho_pcislot_imap_offset(unsigned long ino) | ||
215 | { | ||
216 | unsigned int bus = (ino & 0x10) >> 4; | ||
217 | unsigned int slot = (ino & 0x0c) >> 2; | ||
218 | |||
219 | if (bus == 0) | ||
220 | return PSYCHO_IMAP_A_SLOT0 + (slot * 8); | ||
221 | else | ||
222 | return PSYCHO_IMAP_B_SLOT0 + (slot * 8); | ||
223 | } | ||
224 | |||
225 | #define PSYCHO_IMAP_SCSI 0x1000UL | ||
226 | #define PSYCHO_IMAP_ETH 0x1008UL | ||
227 | #define PSYCHO_IMAP_BPP 0x1010UL | ||
228 | #define PSYCHO_IMAP_AU_REC 0x1018UL | ||
229 | #define PSYCHO_IMAP_AU_PLAY 0x1020UL | ||
230 | #define PSYCHO_IMAP_PFAIL 0x1028UL | ||
231 | #define PSYCHO_IMAP_KMS 0x1030UL | ||
232 | #define PSYCHO_IMAP_FLPY 0x1038UL | ||
233 | #define PSYCHO_IMAP_SHW 0x1040UL | ||
234 | #define PSYCHO_IMAP_KBD 0x1048UL | ||
235 | #define PSYCHO_IMAP_MS 0x1050UL | ||
236 | #define PSYCHO_IMAP_SER 0x1058UL | ||
237 | #define PSYCHO_IMAP_TIM0 0x1060UL | ||
238 | #define PSYCHO_IMAP_TIM1 0x1068UL | ||
239 | #define PSYCHO_IMAP_UE 0x1070UL | ||
240 | #define PSYCHO_IMAP_CE 0x1078UL | ||
241 | #define PSYCHO_IMAP_A_ERR 0x1080UL | ||
242 | #define PSYCHO_IMAP_B_ERR 0x1088UL | ||
243 | #define PSYCHO_IMAP_PMGMT 0x1090UL | ||
244 | #define PSYCHO_IMAP_GFX 0x1098UL | ||
245 | #define PSYCHO_IMAP_EUPA 0x10a0UL | ||
246 | |||
247 | static unsigned long __onboard_imap_off[] = { | ||
248 | /*0x20*/ PSYCHO_IMAP_SCSI, | ||
249 | /*0x21*/ PSYCHO_IMAP_ETH, | ||
250 | /*0x22*/ PSYCHO_IMAP_BPP, | ||
251 | /*0x23*/ PSYCHO_IMAP_AU_REC, | ||
252 | /*0x24*/ PSYCHO_IMAP_AU_PLAY, | ||
253 | /*0x25*/ PSYCHO_IMAP_PFAIL, | ||
254 | /*0x26*/ PSYCHO_IMAP_KMS, | ||
255 | /*0x27*/ PSYCHO_IMAP_FLPY, | ||
256 | /*0x28*/ PSYCHO_IMAP_SHW, | ||
257 | /*0x29*/ PSYCHO_IMAP_KBD, | ||
258 | /*0x2a*/ PSYCHO_IMAP_MS, | ||
259 | /*0x2b*/ PSYCHO_IMAP_SER, | ||
260 | /*0x2c*/ PSYCHO_IMAP_TIM0, | ||
261 | /*0x2d*/ PSYCHO_IMAP_TIM1, | ||
262 | /*0x2e*/ PSYCHO_IMAP_UE, | ||
263 | /*0x2f*/ PSYCHO_IMAP_CE, | ||
264 | /*0x30*/ PSYCHO_IMAP_A_ERR, | ||
265 | /*0x31*/ PSYCHO_IMAP_B_ERR, | ||
266 | /*0x32*/ PSYCHO_IMAP_PMGMT | ||
267 | }; | ||
268 | #define PSYCHO_ONBOARD_IRQ_BASE 0x20 | ||
269 | #define PSYCHO_ONBOARD_IRQ_LAST 0x32 | ||
270 | #define psycho_onboard_imap_offset(__ino) \ | ||
271 | __onboard_imap_off[(__ino) - PSYCHO_ONBOARD_IRQ_BASE] | ||
272 | |||
273 | #define PSYCHO_ICLR_A_SLOT0 0x1400UL | ||
274 | #define PSYCHO_ICLR_SCSI 0x1800UL | ||
275 | |||
276 | #define psycho_iclr_offset(ino) \ | ||
277 | ((ino & 0x20) ? (PSYCHO_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \ | ||
278 | (PSYCHO_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3))) | ||
279 | |||
280 | static unsigned int psycho_irq_build(struct pci_pbm_info *pbm, | ||
281 | struct pci_dev *pdev, | ||
282 | unsigned int ino) | ||
283 | { | ||
284 | unsigned long imap, iclr; | ||
285 | unsigned long imap_off, iclr_off; | ||
286 | int inofixup = 0; | ||
287 | |||
288 | ino &= PCI_IRQ_INO; | ||
289 | if (ino < PSYCHO_ONBOARD_IRQ_BASE) { | ||
290 | /* PCI slot */ | ||
291 | imap_off = psycho_pcislot_imap_offset(ino); | ||
292 | } else { | ||
293 | /* Onboard device */ | ||
294 | if (ino > PSYCHO_ONBOARD_IRQ_LAST) { | ||
295 | prom_printf("psycho_irq_build: Wacky INO [%x]\n", ino); | ||
296 | prom_halt(); | ||
297 | } | ||
298 | imap_off = psycho_onboard_imap_offset(ino); | ||
299 | } | ||
300 | |||
301 | /* Now build the IRQ bucket. */ | ||
302 | imap = pbm->controller_regs + imap_off; | ||
303 | imap += 4; | ||
304 | |||
305 | iclr_off = psycho_iclr_offset(ino); | ||
306 | iclr = pbm->controller_regs + iclr_off; | ||
307 | iclr += 4; | ||
308 | |||
309 | if ((ino & 0x20) == 0) | ||
310 | inofixup = ino & 0x03; | ||
311 | |||
312 | return build_irq(inofixup, iclr, imap); | ||
313 | } | ||
314 | |||
315 | /* PSYCHO error handling support. */ | 212 | /* PSYCHO error handling support. */ |
316 | enum psycho_error_type { | 213 | enum psycho_error_type { |
317 | UE_ERR, CE_ERR, PCI_ERR | 214 | UE_ERR, CE_ERR, PCI_ERR |
@@ -944,51 +841,34 @@ static irqreturn_t psycho_pcierr_intr(int irq, void *dev_id, struct pt_regs *reg | |||
944 | #define PSYCHO_ECCCTRL_EE 0x8000000000000000UL /* Enable ECC Checking */ | 841 | #define PSYCHO_ECCCTRL_EE 0x8000000000000000UL /* Enable ECC Checking */ |
945 | #define PSYCHO_ECCCTRL_UE 0x4000000000000000UL /* Enable UE Interrupts */ | 842 | #define PSYCHO_ECCCTRL_UE 0x4000000000000000UL /* Enable UE Interrupts */ |
946 | #define PSYCHO_ECCCTRL_CE 0x2000000000000000UL /* Enable CE INterrupts */ | 843 | #define PSYCHO_ECCCTRL_CE 0x2000000000000000UL /* Enable CE INterrupts */ |
947 | #define PSYCHO_UE_INO 0x2e | ||
948 | #define PSYCHO_CE_INO 0x2f | ||
949 | #define PSYCHO_PCIERR_A_INO 0x30 | ||
950 | #define PSYCHO_PCIERR_B_INO 0x31 | ||
951 | static void psycho_register_error_handlers(struct pci_controller_info *p) | 844 | static void psycho_register_error_handlers(struct pci_controller_info *p) |
952 | { | 845 | { |
953 | struct pci_pbm_info *pbm = &p->pbm_A; /* arbitrary */ | 846 | struct pci_pbm_info *pbm = &p->pbm_A; /* arbitrary */ |
847 | struct of_device *op = of_find_device_by_node(pbm->prom_node); | ||
954 | unsigned long base = p->pbm_A.controller_regs; | 848 | unsigned long base = p->pbm_A.controller_regs; |
955 | unsigned int irq, portid = pbm->portid; | ||
956 | u64 tmp; | 849 | u64 tmp; |
957 | 850 | ||
958 | /* Build IRQs and register handlers. */ | 851 | if (!op) |
959 | irq = psycho_irq_build(pbm, NULL, (portid << 6) | PSYCHO_UE_INO); | 852 | return; |
960 | if (request_irq(irq, psycho_ue_intr, | ||
961 | SA_SHIRQ, "PSYCHO UE", p) < 0) { | ||
962 | prom_printf("PSYCHO%d: Cannot register UE interrupt.\n", | ||
963 | p->index); | ||
964 | prom_halt(); | ||
965 | } | ||
966 | 853 | ||
967 | irq = psycho_irq_build(pbm, NULL, (portid << 6) | PSYCHO_CE_INO); | 854 | /* Psycho interrupt property order is: |
968 | if (request_irq(irq, psycho_ce_intr, | 855 | * 0: PCIERR PBM B INO |
969 | SA_SHIRQ, "PSYCHO CE", p) < 0) { | 856 | * 1: UE ERR |
970 | prom_printf("PSYCHO%d: Cannot register CE interrupt.\n", | 857 | * 2: CE ERR |
971 | p->index); | 858 | * 3: POWER FAIL |
972 | prom_halt(); | 859 | * 4: SPARE HARDWARE |
973 | } | 860 | * 5: PCIERR PBM A INO |
861 | */ | ||
974 | 862 | ||
975 | pbm = &p->pbm_A; | 863 | if (op->num_irqs < 6) |
976 | irq = psycho_irq_build(pbm, NULL, (portid << 6) | PSYCHO_PCIERR_A_INO); | 864 | return; |
977 | if (request_irq(irq, psycho_pcierr_intr, | ||
978 | SA_SHIRQ, "PSYCHO PCIERR", &p->pbm_A) < 0) { | ||
979 | prom_printf("PSYCHO%d(PBMA): Cannot register PciERR interrupt.\n", | ||
980 | p->index); | ||
981 | prom_halt(); | ||
982 | } | ||
983 | 865 | ||
984 | pbm = &p->pbm_B; | 866 | request_irq(op->irqs[1], psycho_ue_intr, IRQF_SHARED, "PSYCHO UE", p); |
985 | irq = psycho_irq_build(pbm, NULL, (portid << 6) | PSYCHO_PCIERR_B_INO); | 867 | request_irq(op->irqs[2], psycho_ce_intr, IRQF_SHARED, "PSYCHO CE", p); |
986 | if (request_irq(irq, psycho_pcierr_intr, | 868 | request_irq(op->irqs[5], psycho_pcierr_intr, IRQF_SHARED, |
987 | SA_SHIRQ, "PSYCHO PCIERR", &p->pbm_B) < 0) { | 869 | "PSYCHO PCIERR-A", &p->pbm_A); |
988 | prom_printf("PSYCHO%d(PBMB): Cannot register PciERR interrupt.\n", | 870 | request_irq(op->irqs[0], psycho_pcierr_intr, IRQF_SHARED, |
989 | p->index); | 871 | "PSYCHO PCIERR-B", &p->pbm_B); |
990 | prom_halt(); | ||
991 | } | ||
992 | 872 | ||
993 | /* Enable UE and CE interrupts for controller. */ | 873 | /* Enable UE and CE interrupts for controller. */ |
994 | psycho_write(base + PSYCHO_ECC_CTRL, | 874 | psycho_write(base + PSYCHO_ECC_CTRL, |
@@ -1171,9 +1051,7 @@ static void psycho_iommu_init(struct pci_controller_info *p) | |||
1171 | 1051 | ||
1172 | /* If necessary, hook us up for starfire IRQ translations. */ | 1052 | /* If necessary, hook us up for starfire IRQ translations. */ |
1173 | if (this_is_starfire) | 1053 | if (this_is_starfire) |
1174 | p->starfire_cookie = starfire_hookup(p->pbm_A.portid); | 1054 | starfire_hookup(p->pbm_A.portid); |
1175 | else | ||
1176 | p->starfire_cookie = NULL; | ||
1177 | } | 1055 | } |
1178 | 1056 | ||
1179 | #define PSYCHO_IRQ_RETRY 0x1a00UL | 1057 | #define PSYCHO_IRQ_RETRY 0x1a00UL |
@@ -1408,7 +1286,6 @@ void psycho_init(struct device_node *dp, char *model_name) | |||
1408 | p->index = pci_num_controllers++; | 1286 | p->index = pci_num_controllers++; |
1409 | p->pbms_same_domain = 0; | 1287 | p->pbms_same_domain = 0; |
1410 | p->scan_bus = psycho_scan_bus; | 1288 | p->scan_bus = psycho_scan_bus; |
1411 | p->irq_build = psycho_irq_build; | ||
1412 | p->base_address_update = psycho_base_address_update; | 1289 | p->base_address_update = psycho_base_address_update; |
1413 | p->resource_adjust = psycho_resource_adjust; | 1290 | p->resource_adjust = psycho_resource_adjust; |
1414 | p->pci_ops = &psycho_ops; | 1291 | p->pci_ops = &psycho_ops; |
diff --git a/arch/sparc64/kernel/pci_sabre.c b/arch/sparc64/kernel/pci_sabre.c index 26f194ce4400..45891850b90d 100644 --- a/arch/sparc64/kernel/pci_sabre.c +++ b/arch/sparc64/kernel/pci_sabre.c | |||
@@ -485,114 +485,6 @@ static struct pci_ops sabre_ops = { | |||
485 | .write = sabre_write_pci_cfg, | 485 | .write = sabre_write_pci_cfg, |
486 | }; | 486 | }; |
487 | 487 | ||
488 | static unsigned long sabre_pcislot_imap_offset(unsigned long ino) | ||
489 | { | ||
490 | unsigned int bus = (ino & 0x10) >> 4; | ||
491 | unsigned int slot = (ino & 0x0c) >> 2; | ||
492 | |||
493 | if (bus == 0) | ||
494 | return SABRE_IMAP_A_SLOT0 + (slot * 8); | ||
495 | else | ||
496 | return SABRE_IMAP_B_SLOT0 + (slot * 8); | ||
497 | } | ||
498 | |||
499 | static unsigned long __onboard_imap_off[] = { | ||
500 | /*0x20*/ SABRE_IMAP_SCSI, | ||
501 | /*0x21*/ SABRE_IMAP_ETH, | ||
502 | /*0x22*/ SABRE_IMAP_BPP, | ||
503 | /*0x23*/ SABRE_IMAP_AU_REC, | ||
504 | /*0x24*/ SABRE_IMAP_AU_PLAY, | ||
505 | /*0x25*/ SABRE_IMAP_PFAIL, | ||
506 | /*0x26*/ SABRE_IMAP_KMS, | ||
507 | /*0x27*/ SABRE_IMAP_FLPY, | ||
508 | /*0x28*/ SABRE_IMAP_SHW, | ||
509 | /*0x29*/ SABRE_IMAP_KBD, | ||
510 | /*0x2a*/ SABRE_IMAP_MS, | ||
511 | /*0x2b*/ SABRE_IMAP_SER, | ||
512 | /*0x2c*/ 0 /* reserved */, | ||
513 | /*0x2d*/ 0 /* reserved */, | ||
514 | /*0x2e*/ SABRE_IMAP_UE, | ||
515 | /*0x2f*/ SABRE_IMAP_CE, | ||
516 | /*0x30*/ SABRE_IMAP_PCIERR, | ||
517 | }; | ||
518 | #define SABRE_ONBOARD_IRQ_BASE 0x20 | ||
519 | #define SABRE_ONBOARD_IRQ_LAST 0x30 | ||
520 | #define sabre_onboard_imap_offset(__ino) \ | ||
521 | __onboard_imap_off[(__ino) - SABRE_ONBOARD_IRQ_BASE] | ||
522 | |||
523 | #define sabre_iclr_offset(ino) \ | ||
524 | ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \ | ||
525 | (SABRE_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3))) | ||
526 | |||
527 | /* When a device lives behind a bridge deeper in the PCI bus topology | ||
528 | * than APB, a special sequence must run to make sure all pending DMA | ||
529 | * transfers at the time of IRQ delivery are visible in the coherency | ||
530 | * domain by the cpu. This sequence is to perform a read on the far | ||
531 | * side of the non-APB bridge, then perform a read of Sabre's DMA | ||
532 | * write-sync register. | ||
533 | */ | ||
534 | static void sabre_wsync_handler(unsigned int ino, void *_arg1, void *_arg2) | ||
535 | { | ||
536 | struct pci_dev *pdev = _arg1; | ||
537 | unsigned long sync_reg = (unsigned long) _arg2; | ||
538 | u16 _unused; | ||
539 | |||
540 | pci_read_config_word(pdev, PCI_VENDOR_ID, &_unused); | ||
541 | sabre_read(sync_reg); | ||
542 | } | ||
543 | |||
544 | static unsigned int sabre_irq_build(struct pci_pbm_info *pbm, | ||
545 | struct pci_dev *pdev, | ||
546 | unsigned int ino) | ||
547 | { | ||
548 | unsigned long imap, iclr; | ||
549 | unsigned long imap_off, iclr_off; | ||
550 | int inofixup = 0; | ||
551 | int virt_irq; | ||
552 | |||
553 | ino &= PCI_IRQ_INO; | ||
554 | if (ino < SABRE_ONBOARD_IRQ_BASE) { | ||
555 | /* PCI slot */ | ||
556 | imap_off = sabre_pcislot_imap_offset(ino); | ||
557 | } else { | ||
558 | /* onboard device */ | ||
559 | if (ino > SABRE_ONBOARD_IRQ_LAST) { | ||
560 | prom_printf("sabre_irq_build: Wacky INO [%x]\n", ino); | ||
561 | prom_halt(); | ||
562 | } | ||
563 | imap_off = sabre_onboard_imap_offset(ino); | ||
564 | } | ||
565 | |||
566 | /* Now build the IRQ bucket. */ | ||
567 | imap = pbm->controller_regs + imap_off; | ||
568 | imap += 4; | ||
569 | |||
570 | iclr_off = sabre_iclr_offset(ino); | ||
571 | iclr = pbm->controller_regs + iclr_off; | ||
572 | iclr += 4; | ||
573 | |||
574 | if ((ino & 0x20) == 0) | ||
575 | inofixup = ino & 0x03; | ||
576 | |||
577 | virt_irq = build_irq(inofixup, iclr, imap); | ||
578 | |||
579 | if (pdev) { | ||
580 | struct pcidev_cookie *pcp = pdev->sysdata; | ||
581 | |||
582 | if (pdev->bus->number != pcp->pbm->pci_first_busno) { | ||
583 | struct pci_controller_info *p = pcp->pbm->parent; | ||
584 | |||
585 | irq_install_pre_handler(virt_irq, | ||
586 | sabre_wsync_handler, | ||
587 | pdev, | ||
588 | (void *) | ||
589 | p->pbm_A.controller_regs + | ||
590 | SABRE_WRSYNC); | ||
591 | } | ||
592 | } | ||
593 | return virt_irq; | ||
594 | } | ||
595 | |||
596 | /* SABRE error handling support. */ | 488 | /* SABRE error handling support. */ |
597 | static void sabre_check_iommu_error(struct pci_controller_info *p, | 489 | static void sabre_check_iommu_error(struct pci_controller_info *p, |
598 | unsigned long afsr, | 490 | unsigned long afsr, |
@@ -929,17 +821,30 @@ static irqreturn_t sabre_pcierr_intr(int irq, void *dev_id, struct pt_regs *regs | |||
929 | return IRQ_HANDLED; | 821 | return IRQ_HANDLED; |
930 | } | 822 | } |
931 | 823 | ||
932 | /* XXX What about PowerFail/PowerManagement??? -DaveM */ | ||
933 | #define SABRE_UE_INO 0x2e | ||
934 | #define SABRE_CE_INO 0x2f | ||
935 | #define SABRE_PCIERR_INO 0x30 | ||
936 | static void sabre_register_error_handlers(struct pci_controller_info *p) | 824 | static void sabre_register_error_handlers(struct pci_controller_info *p) |
937 | { | 825 | { |
938 | struct pci_pbm_info *pbm = &p->pbm_A; /* arbitrary */ | 826 | struct pci_pbm_info *pbm = &p->pbm_A; /* arbitrary */ |
827 | struct device_node *dp = pbm->prom_node; | ||
828 | struct of_device *op; | ||
939 | unsigned long base = pbm->controller_regs; | 829 | unsigned long base = pbm->controller_regs; |
940 | unsigned long irq, portid = pbm->portid; | ||
941 | u64 tmp; | 830 | u64 tmp; |
942 | 831 | ||
832 | if (pbm->chip_type == PBM_CHIP_TYPE_SABRE) | ||
833 | dp = dp->parent; | ||
834 | |||
835 | op = of_find_device_by_node(dp); | ||
836 | if (!op) | ||
837 | return; | ||
838 | |||
839 | /* Sabre/Hummingbird IRQ property layout is: | ||
840 | * 0: PCI ERR | ||
841 | * 1: UE ERR | ||
842 | * 2: CE ERR | ||
843 | * 3: POWER FAIL | ||
844 | */ | ||
845 | if (op->num_irqs < 4) | ||
846 | return; | ||
847 | |||
943 | /* We clear the error bits in the appropriate AFSR before | 848 | /* We clear the error bits in the appropriate AFSR before |
944 | * registering the handler so that we don't get spurious | 849 | * registering the handler so that we don't get spurious |
945 | * interrupts. | 850 | * interrupts. |
@@ -948,32 +853,16 @@ static void sabre_register_error_handlers(struct pci_controller_info *p) | |||
948 | (SABRE_UEAFSR_PDRD | SABRE_UEAFSR_PDWR | | 853 | (SABRE_UEAFSR_PDRD | SABRE_UEAFSR_PDWR | |
949 | SABRE_UEAFSR_SDRD | SABRE_UEAFSR_SDWR | | 854 | SABRE_UEAFSR_SDRD | SABRE_UEAFSR_SDWR | |
950 | SABRE_UEAFSR_SDTE | SABRE_UEAFSR_PDTE)); | 855 | SABRE_UEAFSR_SDTE | SABRE_UEAFSR_PDTE)); |
951 | irq = sabre_irq_build(pbm, NULL, (portid << 6) | SABRE_UE_INO); | 856 | |
952 | if (request_irq(irq, sabre_ue_intr, | 857 | request_irq(op->irqs[1], sabre_ue_intr, IRQF_SHARED, "SABRE UE", p); |
953 | SA_SHIRQ, "SABRE UE", p) < 0) { | ||
954 | prom_printf("SABRE%d: Cannot register UE interrupt.\n", | ||
955 | p->index); | ||
956 | prom_halt(); | ||
957 | } | ||
958 | 858 | ||
959 | sabre_write(base + SABRE_CE_AFSR, | 859 | sabre_write(base + SABRE_CE_AFSR, |
960 | (SABRE_CEAFSR_PDRD | SABRE_CEAFSR_PDWR | | 860 | (SABRE_CEAFSR_PDRD | SABRE_CEAFSR_PDWR | |
961 | SABRE_CEAFSR_SDRD | SABRE_CEAFSR_SDWR)); | 861 | SABRE_CEAFSR_SDRD | SABRE_CEAFSR_SDWR)); |
962 | irq = sabre_irq_build(pbm, NULL, (portid << 6) | SABRE_CE_INO); | ||
963 | if (request_irq(irq, sabre_ce_intr, | ||
964 | SA_SHIRQ, "SABRE CE", p) < 0) { | ||
965 | prom_printf("SABRE%d: Cannot register CE interrupt.\n", | ||
966 | p->index); | ||
967 | prom_halt(); | ||
968 | } | ||
969 | 862 | ||
970 | irq = sabre_irq_build(pbm, NULL, (portid << 6) | SABRE_PCIERR_INO); | 863 | request_irq(op->irqs[2], sabre_ce_intr, IRQF_SHARED, "SABRE CE", p); |
971 | if (request_irq(irq, sabre_pcierr_intr, | 864 | request_irq(op->irqs[0], sabre_pcierr_intr, IRQF_SHARED, |
972 | SA_SHIRQ, "SABRE PCIERR", p) < 0) { | 865 | "SABRE PCIERR", p); |
973 | prom_printf("SABRE%d: Cannot register PciERR interrupt.\n", | ||
974 | p->index); | ||
975 | prom_halt(); | ||
976 | } | ||
977 | 866 | ||
978 | tmp = sabre_read(base + SABRE_PCICTRL); | 867 | tmp = sabre_read(base + SABRE_PCICTRL); |
979 | tmp |= SABRE_PCICTRL_ERREN; | 868 | tmp |= SABRE_PCICTRL_ERREN; |
@@ -1492,7 +1381,6 @@ void sabre_init(struct device_node *dp, char *model_name) | |||
1492 | p->index = pci_num_controllers++; | 1381 | p->index = pci_num_controllers++; |
1493 | p->pbms_same_domain = 1; | 1382 | p->pbms_same_domain = 1; |
1494 | p->scan_bus = sabre_scan_bus; | 1383 | p->scan_bus = sabre_scan_bus; |
1495 | p->irq_build = sabre_irq_build; | ||
1496 | p->base_address_update = sabre_base_address_update; | 1384 | p->base_address_update = sabre_base_address_update; |
1497 | p->resource_adjust = sabre_resource_adjust; | 1385 | p->resource_adjust = sabre_resource_adjust; |
1498 | p->pci_ops = &sabre_ops; | 1386 | p->pci_ops = &sabre_ops; |
diff --git a/arch/sparc64/kernel/pci_schizo.c b/arch/sparc64/kernel/pci_schizo.c index f16449ccd7bc..75ade83ecc65 100644 --- a/arch/sparc64/kernel/pci_schizo.c +++ b/arch/sparc64/kernel/pci_schizo.c | |||
@@ -217,116 +217,6 @@ static struct pci_ops schizo_ops = { | |||
217 | .write = schizo_write_pci_cfg, | 217 | .write = schizo_write_pci_cfg, |
218 | }; | 218 | }; |
219 | 219 | ||
220 | /* SCHIZO interrupt mapping support. Unlike Psycho, for this controller the | ||
221 | * imap/iclr registers are per-PBM. | ||
222 | */ | ||
223 | #define SCHIZO_IMAP_BASE 0x1000UL | ||
224 | #define SCHIZO_ICLR_BASE 0x1400UL | ||
225 | |||
226 | static unsigned long schizo_imap_offset(unsigned long ino) | ||
227 | { | ||
228 | return SCHIZO_IMAP_BASE + (ino * 8UL); | ||
229 | } | ||
230 | |||
231 | static unsigned long schizo_iclr_offset(unsigned long ino) | ||
232 | { | ||
233 | return SCHIZO_ICLR_BASE + (ino * 8UL); | ||
234 | } | ||
235 | |||
236 | static void tomatillo_wsync_handler(unsigned int ino, void *_arg1, void *_arg2) | ||
237 | { | ||
238 | unsigned long sync_reg = (unsigned long) _arg2; | ||
239 | u64 mask = 1UL << (ino & IMAP_INO); | ||
240 | u64 val; | ||
241 | int limit; | ||
242 | |||
243 | schizo_write(sync_reg, mask); | ||
244 | |||
245 | limit = 100000; | ||
246 | val = 0; | ||
247 | while (--limit) { | ||
248 | val = schizo_read(sync_reg); | ||
249 | if (!(val & mask)) | ||
250 | break; | ||
251 | } | ||
252 | if (limit <= 0) { | ||
253 | printk("tomatillo_wsync_handler: DMA won't sync [%lx:%lx]\n", | ||
254 | val, mask); | ||
255 | } | ||
256 | |||
257 | if (_arg1) { | ||
258 | static unsigned char cacheline[64] | ||
259 | __attribute__ ((aligned (64))); | ||
260 | |||
261 | __asm__ __volatile__("rd %%fprs, %0\n\t" | ||
262 | "or %0, %4, %1\n\t" | ||
263 | "wr %1, 0x0, %%fprs\n\t" | ||
264 | "stda %%f0, [%5] %6\n\t" | ||
265 | "wr %0, 0x0, %%fprs\n\t" | ||
266 | "membar #Sync" | ||
267 | : "=&r" (mask), "=&r" (val) | ||
268 | : "0" (mask), "1" (val), | ||
269 | "i" (FPRS_FEF), "r" (&cacheline[0]), | ||
270 | "i" (ASI_BLK_COMMIT_P)); | ||
271 | } | ||
272 | } | ||
273 | |||
274 | static unsigned long schizo_ino_to_iclr(struct pci_pbm_info *pbm, | ||
275 | unsigned int ino) | ||
276 | { | ||
277 | ino &= PCI_IRQ_INO; | ||
278 | return pbm->pbm_regs + schizo_iclr_offset(ino) + 4; | ||
279 | } | ||
280 | |||
281 | static unsigned long schizo_ino_to_imap(struct pci_pbm_info *pbm, | ||
282 | unsigned int ino) | ||
283 | { | ||
284 | ino &= PCI_IRQ_INO; | ||
285 | return pbm->pbm_regs + schizo_imap_offset(ino) + 4; | ||
286 | } | ||
287 | |||
288 | static unsigned int schizo_irq_build(struct pci_pbm_info *pbm, | ||
289 | struct pci_dev *pdev, | ||
290 | unsigned int ino) | ||
291 | { | ||
292 | unsigned long imap, iclr; | ||
293 | int ign_fixup; | ||
294 | int virt_irq; | ||
295 | |||
296 | ino &= PCI_IRQ_INO; | ||
297 | |||
298 | /* Now build the IRQ bucket. */ | ||
299 | imap = schizo_ino_to_imap(pbm, ino); | ||
300 | iclr = schizo_ino_to_iclr(pbm, ino); | ||
301 | |||
302 | /* On Schizo, no inofixup occurs. This is because each | ||
303 | * INO has it's own IMAP register. On Psycho and Sabre | ||
304 | * there is only one IMAP register for each PCI slot even | ||
305 | * though four different INOs can be generated by each | ||
306 | * PCI slot. | ||
307 | * | ||
308 | * But, for JBUS variants (essentially, Tomatillo), we have | ||
309 | * to fixup the lowest bit of the interrupt group number. | ||
310 | */ | ||
311 | ign_fixup = 0; | ||
312 | if (pbm->chip_type == PBM_CHIP_TYPE_TOMATILLO) { | ||
313 | if (pbm->portid & 1) | ||
314 | ign_fixup = (1 << 6); | ||
315 | } | ||
316 | |||
317 | virt_irq = build_irq(ign_fixup, iclr, imap); | ||
318 | |||
319 | if (pdev && pbm->chip_type == PBM_CHIP_TYPE_TOMATILLO) { | ||
320 | irq_install_pre_handler(virt_irq, | ||
321 | tomatillo_wsync_handler, | ||
322 | ((pbm->chip_version <= 4) ? | ||
323 | (void *) 1 : (void *) 0), | ||
324 | (void *) pbm->sync_reg); | ||
325 | } | ||
326 | |||
327 | return virt_irq; | ||
328 | } | ||
329 | |||
330 | /* SCHIZO error handling support. */ | 220 | /* SCHIZO error handling support. */ |
331 | enum schizo_error_type { | 221 | enum schizo_error_type { |
332 | UE_ERR, CE_ERR, PCI_ERR, SAFARI_ERR | 222 | UE_ERR, CE_ERR, PCI_ERR, SAFARI_ERR |
@@ -362,34 +252,6 @@ struct pci_pbm_info *pbm_for_ino(struct pci_controller_info *p, u32 ino) | |||
362 | return &p->pbm_A; | 252 | return &p->pbm_A; |
363 | } | 253 | } |
364 | 254 | ||
365 | static void schizo_clear_other_err_intr(struct pci_controller_info *p, int irq) | ||
366 | { | ||
367 | struct pci_pbm_info *pbm; | ||
368 | unsigned long iclr; | ||
369 | |||
370 | /* Do not clear the interrupt for the other PCI bus. | ||
371 | * | ||
372 | * This "ACK both PBM IRQs" only needs to be performed | ||
373 | * for chip-wide error interrupts. | ||
374 | */ | ||
375 | if ((irq & IMAP_INO) == SCHIZO_PCIERR_A_INO || | ||
376 | (irq & IMAP_INO) == SCHIZO_PCIERR_B_INO) | ||
377 | return; | ||
378 | |||
379 | pbm = pbm_for_ino(p, irq); | ||
380 | if (pbm == &p->pbm_A) | ||
381 | pbm = &p->pbm_B; | ||
382 | else | ||
383 | pbm = &p->pbm_A; | ||
384 | |||
385 | schizo_irq_build(pbm, NULL, | ||
386 | (pbm->portid << 6) | (irq & IMAP_INO)); | ||
387 | |||
388 | iclr = schizo_ino_to_iclr(pbm, | ||
389 | (pbm->portid << 6) | (irq & IMAP_INO)); | ||
390 | upa_writel(ICLR_IDLE, iclr); | ||
391 | } | ||
392 | |||
393 | #define SCHIZO_STC_ERR 0xb800UL /* --> 0xba00 */ | 255 | #define SCHIZO_STC_ERR 0xb800UL /* --> 0xba00 */ |
394 | #define SCHIZO_STC_TAG 0xba00UL /* --> 0xba80 */ | 256 | #define SCHIZO_STC_TAG 0xba00UL /* --> 0xba80 */ |
395 | #define SCHIZO_STC_LINE 0xbb00UL /* --> 0xbb80 */ | 257 | #define SCHIZO_STC_LINE 0xbb00UL /* --> 0xbb80 */ |
@@ -720,8 +582,6 @@ static irqreturn_t schizo_ue_intr(int irq, void *dev_id, struct pt_regs *regs) | |||
720 | /* Interrogate IOMMU for error status. */ | 582 | /* Interrogate IOMMU for error status. */ |
721 | schizo_check_iommu_error(p, UE_ERR); | 583 | schizo_check_iommu_error(p, UE_ERR); |
722 | 584 | ||
723 | schizo_clear_other_err_intr(p, irq); | ||
724 | |||
725 | return IRQ_HANDLED; | 585 | return IRQ_HANDLED; |
726 | } | 586 | } |
727 | 587 | ||
@@ -811,8 +671,6 @@ static irqreturn_t schizo_ce_intr(int irq, void *dev_id, struct pt_regs *regs) | |||
811 | printk("(none)"); | 671 | printk("(none)"); |
812 | printk("]\n"); | 672 | printk("]\n"); |
813 | 673 | ||
814 | schizo_clear_other_err_intr(p, irq); | ||
815 | |||
816 | return IRQ_HANDLED; | 674 | return IRQ_HANDLED; |
817 | } | 675 | } |
818 | 676 | ||
@@ -1033,8 +891,6 @@ static irqreturn_t schizo_pcierr_intr(int irq, void *dev_id, struct pt_regs *reg | |||
1033 | if (error_bits & (SCHIZO_PCIAFSR_PPERR | SCHIZO_PCIAFSR_SPERR)) | 891 | if (error_bits & (SCHIZO_PCIAFSR_PPERR | SCHIZO_PCIAFSR_SPERR)) |
1034 | pci_scan_for_parity_error(p, pbm, pbm->pci_bus); | 892 | pci_scan_for_parity_error(p, pbm, pbm->pci_bus); |
1035 | 893 | ||
1036 | schizo_clear_other_err_intr(p, irq); | ||
1037 | |||
1038 | return IRQ_HANDLED; | 894 | return IRQ_HANDLED; |
1039 | } | 895 | } |
1040 | 896 | ||
@@ -1090,7 +946,6 @@ static irqreturn_t schizo_safarierr_intr(int irq, void *dev_id, struct pt_regs * | |||
1090 | printk("PCI%d: Unexpected Safari/JBUS error interrupt, errlog[%016lx]\n", | 946 | printk("PCI%d: Unexpected Safari/JBUS error interrupt, errlog[%016lx]\n", |
1091 | p->index, errlog); | 947 | p->index, errlog); |
1092 | 948 | ||
1093 | schizo_clear_other_err_intr(p, irq); | ||
1094 | return IRQ_HANDLED; | 949 | return IRQ_HANDLED; |
1095 | } | 950 | } |
1096 | 951 | ||
@@ -1098,7 +953,6 @@ static irqreturn_t schizo_safarierr_intr(int irq, void *dev_id, struct pt_regs * | |||
1098 | p->index); | 953 | p->index); |
1099 | schizo_check_iommu_error(p, SAFARI_ERR); | 954 | schizo_check_iommu_error(p, SAFARI_ERR); |
1100 | 955 | ||
1101 | schizo_clear_other_err_intr(p, irq); | ||
1102 | return IRQ_HANDLED; | 956 | return IRQ_HANDLED; |
1103 | } | 957 | } |
1104 | 958 | ||
@@ -1130,74 +984,47 @@ static irqreturn_t schizo_safarierr_intr(int irq, void *dev_id, struct pt_regs * | |||
1130 | static void tomatillo_register_error_handlers(struct pci_controller_info *p) | 984 | static void tomatillo_register_error_handlers(struct pci_controller_info *p) |
1131 | { | 985 | { |
1132 | struct pci_pbm_info *pbm; | 986 | struct pci_pbm_info *pbm; |
1133 | unsigned int irq; | 987 | struct of_device *op; |
1134 | u64 tmp, err_mask, err_no_mask; | 988 | u64 tmp, err_mask, err_no_mask; |
1135 | 989 | ||
1136 | /* Build IRQs and register handlers. */ | 990 | /* Tomatillo IRQ property layout is: |
991 | * 0: PCIERR | ||
992 | * 1: UE ERR | ||
993 | * 2: CE ERR | ||
994 | * 3: SERR | ||
995 | * 4: POWER FAIL? | ||
996 | */ | ||
997 | |||
1137 | pbm = pbm_for_ino(p, SCHIZO_UE_INO); | 998 | pbm = pbm_for_ino(p, SCHIZO_UE_INO); |
1138 | irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_UE_INO); | 999 | op = of_find_device_by_node(pbm->prom_node); |
1139 | if (request_irq(irq, schizo_ue_intr, | 1000 | if (op) |
1140 | SA_SHIRQ, "TOMATILLO UE", p) < 0) { | 1001 | request_irq(op->irqs[1], schizo_ue_intr, IRQF_SHARED, |
1141 | prom_printf("%s: Cannot register UE interrupt.\n", | 1002 | "TOMATILLO_UE", p); |
1142 | pbm->name); | ||
1143 | prom_halt(); | ||
1144 | } | ||
1145 | tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_UE_INO)); | ||
1146 | upa_writel(tmp, (pbm->pbm_regs + | ||
1147 | schizo_imap_offset(SCHIZO_UE_INO) + 4)); | ||
1148 | 1003 | ||
1149 | pbm = pbm_for_ino(p, SCHIZO_CE_INO); | 1004 | pbm = pbm_for_ino(p, SCHIZO_CE_INO); |
1150 | irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_CE_INO); | 1005 | op = of_find_device_by_node(pbm->prom_node); |
1151 | if (request_irq(irq, schizo_ce_intr, | 1006 | if (op) |
1152 | SA_SHIRQ, "TOMATILLO CE", p) < 0) { | 1007 | request_irq(op->irqs[2], schizo_ce_intr, IRQF_SHARED, |
1153 | prom_printf("%s: Cannot register CE interrupt.\n", | 1008 | "TOMATILLO CE", p); |
1154 | pbm->name); | ||
1155 | prom_halt(); | ||
1156 | } | ||
1157 | tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_CE_INO)); | ||
1158 | upa_writel(tmp, (pbm->pbm_regs + | ||
1159 | schizo_imap_offset(SCHIZO_CE_INO) + 4)); | ||
1160 | 1009 | ||
1161 | pbm = pbm_for_ino(p, SCHIZO_PCIERR_A_INO); | 1010 | pbm = pbm_for_ino(p, SCHIZO_PCIERR_A_INO); |
1162 | irq = schizo_irq_build(pbm, NULL, ((pbm->portid << 6) | | 1011 | op = of_find_device_by_node(pbm->prom_node); |
1163 | SCHIZO_PCIERR_A_INO)); | 1012 | if (op) |
1164 | if (request_irq(irq, schizo_pcierr_intr, | 1013 | request_irq(op->irqs[0], schizo_pcierr_intr, IRQF_SHARED, |
1165 | SA_SHIRQ, "TOMATILLO PCIERR", pbm) < 0) { | 1014 | "TOMATILLO PCIERR-A", pbm); |
1166 | prom_printf("%s: Cannot register PBM A PciERR interrupt.\n", | 1015 | |
1167 | pbm->name); | ||
1168 | prom_halt(); | ||
1169 | } | ||
1170 | tmp = upa_readl(schizo_ino_to_imap(pbm, ((pbm->portid << 6) | | ||
1171 | SCHIZO_PCIERR_A_INO))); | ||
1172 | upa_writel(tmp, (pbm->pbm_regs + | ||
1173 | schizo_imap_offset(SCHIZO_PCIERR_A_INO) + 4)); | ||
1174 | 1016 | ||
1175 | pbm = pbm_for_ino(p, SCHIZO_PCIERR_B_INO); | 1017 | pbm = pbm_for_ino(p, SCHIZO_PCIERR_B_INO); |
1176 | irq = schizo_irq_build(pbm, NULL, ((pbm->portid << 6) | | 1018 | op = of_find_device_by_node(pbm->prom_node); |
1177 | SCHIZO_PCIERR_B_INO)); | 1019 | if (op) |
1178 | if (request_irq(irq, schizo_pcierr_intr, | 1020 | request_irq(op->irqs[0], schizo_pcierr_intr, IRQF_SHARED, |
1179 | SA_SHIRQ, "TOMATILLO PCIERR", pbm) < 0) { | 1021 | "TOMATILLO PCIERR-B", pbm); |
1180 | prom_printf("%s: Cannot register PBM B PciERR interrupt.\n", | ||
1181 | pbm->name); | ||
1182 | prom_halt(); | ||
1183 | } | ||
1184 | tmp = upa_readl(schizo_ino_to_imap(pbm, ((pbm->portid << 6) | | ||
1185 | SCHIZO_PCIERR_B_INO))); | ||
1186 | upa_writel(tmp, (pbm->pbm_regs + | ||
1187 | schizo_imap_offset(SCHIZO_PCIERR_B_INO) + 4)); | ||
1188 | 1022 | ||
1189 | pbm = pbm_for_ino(p, SCHIZO_SERR_INO); | 1023 | pbm = pbm_for_ino(p, SCHIZO_SERR_INO); |
1190 | irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_SERR_INO); | 1024 | op = of_find_device_by_node(pbm->prom_node); |
1191 | if (request_irq(irq, schizo_safarierr_intr, | 1025 | if (op) |
1192 | SA_SHIRQ, "TOMATILLO SERR", p) < 0) { | 1026 | request_irq(op->irqs[3], schizo_safarierr_intr, IRQF_SHARED, |
1193 | prom_printf("%s: Cannot register SafariERR interrupt.\n", | 1027 | "TOMATILLO SERR", p); |
1194 | pbm->name); | ||
1195 | prom_halt(); | ||
1196 | } | ||
1197 | tmp = upa_readl(schizo_ino_to_imap(pbm, ((pbm->portid << 6) | | ||
1198 | SCHIZO_SERR_INO))); | ||
1199 | upa_writel(tmp, (pbm->pbm_regs + | ||
1200 | schizo_imap_offset(SCHIZO_SERR_INO) + 4)); | ||
1201 | 1028 | ||
1202 | /* Enable UE and CE interrupts for controller. */ | 1029 | /* Enable UE and CE interrupts for controller. */ |
1203 | schizo_write(p->pbm_A.controller_regs + SCHIZO_ECC_CTRL, | 1030 | schizo_write(p->pbm_A.controller_regs + SCHIZO_ECC_CTRL, |
@@ -1265,64 +1092,47 @@ static void tomatillo_register_error_handlers(struct pci_controller_info *p) | |||
1265 | static void schizo_register_error_handlers(struct pci_controller_info *p) | 1092 | static void schizo_register_error_handlers(struct pci_controller_info *p) |
1266 | { | 1093 | { |
1267 | struct pci_pbm_info *pbm; | 1094 | struct pci_pbm_info *pbm; |
1268 | unsigned int irq; | 1095 | struct of_device *op; |
1269 | u64 tmp, err_mask, err_no_mask; | 1096 | u64 tmp, err_mask, err_no_mask; |
1270 | 1097 | ||
1271 | /* Build IRQs and register handlers. */ | 1098 | /* Schizo IRQ property layout is: |
1099 | * 0: PCIERR | ||
1100 | * 1: UE ERR | ||
1101 | * 2: CE ERR | ||
1102 | * 3: SERR | ||
1103 | * 4: POWER FAIL? | ||
1104 | */ | ||
1105 | |||
1272 | pbm = pbm_for_ino(p, SCHIZO_UE_INO); | 1106 | pbm = pbm_for_ino(p, SCHIZO_UE_INO); |
1273 | irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_UE_INO); | 1107 | op = of_find_device_by_node(pbm->prom_node); |
1274 | if (request_irq(irq, schizo_ue_intr, | 1108 | if (op) |
1275 | SA_SHIRQ, "SCHIZO UE", p) < 0) { | 1109 | request_irq(op->irqs[1], schizo_ue_intr, IRQF_SHARED, |
1276 | prom_printf("%s: Cannot register UE interrupt.\n", | 1110 | "SCHIZO_UE", p); |
1277 | pbm->name); | ||
1278 | prom_halt(); | ||
1279 | } | ||
1280 | tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_UE_INO)); | ||
1281 | upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_UE_INO) + 4)); | ||
1282 | 1111 | ||
1283 | pbm = pbm_for_ino(p, SCHIZO_CE_INO); | 1112 | pbm = pbm_for_ino(p, SCHIZO_CE_INO); |
1284 | irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_CE_INO); | 1113 | op = of_find_device_by_node(pbm->prom_node); |
1285 | if (request_irq(irq, schizo_ce_intr, | 1114 | if (op) |
1286 | SA_SHIRQ, "SCHIZO CE", p) < 0) { | 1115 | request_irq(op->irqs[2], schizo_ce_intr, IRQF_SHARED, |
1287 | prom_printf("%s: Cannot register CE interrupt.\n", | 1116 | "SCHIZO CE", p); |
1288 | pbm->name); | ||
1289 | prom_halt(); | ||
1290 | } | ||
1291 | tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_CE_INO)); | ||
1292 | upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_CE_INO) + 4)); | ||
1293 | 1117 | ||
1294 | pbm = pbm_for_ino(p, SCHIZO_PCIERR_A_INO); | 1118 | pbm = pbm_for_ino(p, SCHIZO_PCIERR_A_INO); |
1295 | irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_PCIERR_A_INO); | 1119 | op = of_find_device_by_node(pbm->prom_node); |
1296 | if (request_irq(irq, schizo_pcierr_intr, | 1120 | if (op) |
1297 | SA_SHIRQ, "SCHIZO PCIERR", pbm) < 0) { | 1121 | request_irq(op->irqs[0], schizo_pcierr_intr, IRQF_SHARED, |
1298 | prom_printf("%s: Cannot register PBM A PciERR interrupt.\n", | 1122 | "SCHIZO PCIERR-A", pbm); |
1299 | pbm->name); | 1123 | |
1300 | prom_halt(); | ||
1301 | } | ||
1302 | tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_PCIERR_A_INO)); | ||
1303 | upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_PCIERR_A_INO) + 4)); | ||
1304 | 1124 | ||
1305 | pbm = pbm_for_ino(p, SCHIZO_PCIERR_B_INO); | 1125 | pbm = pbm_for_ino(p, SCHIZO_PCIERR_B_INO); |
1306 | irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_PCIERR_B_INO); | 1126 | op = of_find_device_by_node(pbm->prom_node); |
1307 | if (request_irq(irq, schizo_pcierr_intr, | 1127 | if (op) |
1308 | SA_SHIRQ, "SCHIZO PCIERR", &p->pbm_B) < 0) { | 1128 | request_irq(op->irqs[0], schizo_pcierr_intr, IRQF_SHARED, |
1309 | prom_printf("%s: Cannot register PBM B PciERR interrupt.\n", | 1129 | "SCHIZO PCIERR-B", pbm); |
1310 | pbm->name); | ||
1311 | prom_halt(); | ||
1312 | } | ||
1313 | tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_PCIERR_B_INO)); | ||
1314 | upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_PCIERR_B_INO) + 4)); | ||
1315 | 1130 | ||
1316 | pbm = pbm_for_ino(p, SCHIZO_SERR_INO); | 1131 | pbm = pbm_for_ino(p, SCHIZO_SERR_INO); |
1317 | irq = schizo_irq_build(pbm, NULL, (pbm->portid << 6) | SCHIZO_SERR_INO); | 1132 | op = of_find_device_by_node(pbm->prom_node); |
1318 | if (request_irq(irq, schizo_safarierr_intr, | 1133 | if (op) |
1319 | SA_SHIRQ, "SCHIZO SERR", p) < 0) { | 1134 | request_irq(op->irqs[3], schizo_safarierr_intr, IRQF_SHARED, |
1320 | prom_printf("%s: Cannot register SafariERR interrupt.\n", | 1135 | "SCHIZO SERR", p); |
1321 | pbm->name); | ||
1322 | prom_halt(); | ||
1323 | } | ||
1324 | tmp = upa_readl(schizo_ino_to_imap(pbm, (pbm->portid << 6) | SCHIZO_SERR_INO)); | ||
1325 | upa_writel(tmp, (pbm->pbm_regs + schizo_imap_offset(SCHIZO_SERR_INO) + 4)); | ||
1326 | 1136 | ||
1327 | /* Enable UE and CE interrupts for controller. */ | 1137 | /* Enable UE and CE interrupts for controller. */ |
1328 | schizo_write(p->pbm_A.controller_regs + SCHIZO_ECC_CTRL, | 1138 | schizo_write(p->pbm_A.controller_regs + SCHIZO_ECC_CTRL, |
@@ -2022,7 +1832,6 @@ static void __schizo_init(struct device_node *dp, char *model_name, int chip_typ | |||
2022 | p->scan_bus = (chip_type == PBM_CHIP_TYPE_TOMATILLO ? | 1832 | p->scan_bus = (chip_type == PBM_CHIP_TYPE_TOMATILLO ? |
2023 | tomatillo_scan_bus : | 1833 | tomatillo_scan_bus : |
2024 | schizo_scan_bus); | 1834 | schizo_scan_bus); |
2025 | p->irq_build = schizo_irq_build; | ||
2026 | p->base_address_update = schizo_base_address_update; | 1835 | p->base_address_update = schizo_base_address_update; |
2027 | p->resource_adjust = schizo_resource_adjust; | 1836 | p->resource_adjust = schizo_resource_adjust; |
2028 | p->pci_ops = &schizo_ops; | 1837 | p->pci_ops = &schizo_ops; |
diff --git a/arch/sparc64/kernel/pci_sun4v.c b/arch/sparc64/kernel/pci_sun4v.c index b69e2270a721..03ad4c06758e 100644 --- a/arch/sparc64/kernel/pci_sun4v.c +++ b/arch/sparc64/kernel/pci_sun4v.c | |||
@@ -843,15 +843,6 @@ static void pci_sun4v_scan_bus(struct pci_controller_info *p) | |||
843 | /* XXX register error interrupt handlers XXX */ | 843 | /* XXX register error interrupt handlers XXX */ |
844 | } | 844 | } |
845 | 845 | ||
846 | static unsigned int pci_sun4v_irq_build(struct pci_pbm_info *pbm, | ||
847 | struct pci_dev *pdev, | ||
848 | unsigned int devino) | ||
849 | { | ||
850 | u32 devhandle = pbm->devhandle; | ||
851 | |||
852 | return sun4v_build_irq(devhandle, devino); | ||
853 | } | ||
854 | |||
855 | static void pci_sun4v_base_address_update(struct pci_dev *pdev, int resource) | 846 | static void pci_sun4v_base_address_update(struct pci_dev *pdev, int resource) |
856 | { | 847 | { |
857 | struct pcidev_cookie *pcp = pdev->sysdata; | 848 | struct pcidev_cookie *pcp = pdev->sysdata; |
@@ -1200,7 +1191,6 @@ void sun4v_pci_init(struct device_node *dp, char *model_name) | |||
1200 | p->pbms_same_domain = 0; | 1191 | p->pbms_same_domain = 0; |
1201 | 1192 | ||
1202 | p->scan_bus = pci_sun4v_scan_bus; | 1193 | p->scan_bus = pci_sun4v_scan_bus; |
1203 | p->irq_build = pci_sun4v_irq_build; | ||
1204 | p->base_address_update = pci_sun4v_base_address_update; | 1194 | p->base_address_update = pci_sun4v_base_address_update; |
1205 | p->resource_adjust = pci_sun4v_resource_adjust; | 1195 | p->resource_adjust = pci_sun4v_resource_adjust; |
1206 | p->pci_ops = &pci_sun4v_ops; | 1196 | p->pci_ops = &pci_sun4v_ops; |
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c index 9496c7734014..e55466c77b61 100644 --- a/arch/sparc64/kernel/power.c +++ b/arch/sparc64/kernel/power.c | |||
@@ -6,7 +6,6 @@ | |||
6 | 6 | ||
7 | #define __KERNEL_SYSCALLS__ | 7 | #define __KERNEL_SYSCALLS__ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/module.h> | 10 | #include <linux/module.h> |
12 | #include <linux/init.h> | 11 | #include <linux/init.h> |
@@ -17,9 +16,10 @@ | |||
17 | #include <linux/pm.h> | 16 | #include <linux/pm.h> |
18 | 17 | ||
19 | #include <asm/system.h> | 18 | #include <asm/system.h> |
20 | #include <asm/ebus.h> | ||
21 | #include <asm/isa.h> | ||
22 | #include <asm/auxio.h> | 19 | #include <asm/auxio.h> |
20 | #include <asm/prom.h> | ||
21 | #include <asm/of_device.h> | ||
22 | #include <asm/io.h> | ||
23 | 23 | ||
24 | #include <linux/unistd.h> | 24 | #include <linux/unistd.h> |
25 | 25 | ||
@@ -30,6 +30,7 @@ | |||
30 | int scons_pwroff = 1; | 30 | int scons_pwroff = 1; |
31 | 31 | ||
32 | #ifdef CONFIG_PCI | 32 | #ifdef CONFIG_PCI |
33 | #include <linux/pci.h> | ||
33 | static void __iomem *power_reg; | 34 | static void __iomem *power_reg; |
34 | 35 | ||
35 | static DECLARE_WAIT_QUEUE_HEAD(powerd_wait); | 36 | static DECLARE_WAIT_QUEUE_HEAD(powerd_wait); |
@@ -115,27 +116,33 @@ static int __init has_button_interrupt(unsigned int irq, struct device_node *dp) | |||
115 | return 1; | 116 | return 1; |
116 | } | 117 | } |
117 | 118 | ||
118 | static void __devinit power_probe_common(struct of_device *dev, struct resource *res, unsigned int irq) | 119 | static int __devinit power_probe(struct of_device *op, const struct of_device_id *match) |
119 | { | 120 | { |
120 | power_reg = ioremap(res->start, 0x4); | 121 | struct resource *res = &op->resource[0]; |
122 | unsigned int irq= op->irqs[0]; | ||
121 | 123 | ||
122 | printk("power: Control reg at %p ... ", power_reg); | 124 | power_reg = of_ioremap(res, 0, 0x4, "power"); |
125 | |||
126 | printk("%s: Control reg at %lx ... ", | ||
127 | op->node->name, res->start); | ||
123 | 128 | ||
124 | poweroff_method = machine_halt; /* able to use the standard halt */ | 129 | poweroff_method = machine_halt; /* able to use the standard halt */ |
125 | 130 | ||
126 | if (has_button_interrupt(irq, dev->node)) { | 131 | if (has_button_interrupt(irq, op->node)) { |
127 | if (kernel_thread(powerd, NULL, CLONE_FS) < 0) { | 132 | if (kernel_thread(powerd, NULL, CLONE_FS) < 0) { |
128 | printk("Failed to start power daemon.\n"); | 133 | printk("Failed to start power daemon.\n"); |
129 | return; | 134 | return 0; |
130 | } | 135 | } |
131 | printk("powerd running.\n"); | 136 | printk("powerd running.\n"); |
132 | 137 | ||
133 | if (request_irq(irq, | 138 | if (request_irq(irq, |
134 | power_handler, SA_SHIRQ, "power", NULL) < 0) | 139 | power_handler, 0, "power", NULL) < 0) |
135 | printk("power: Error, cannot register IRQ handler.\n"); | 140 | printk("power: Error, cannot register IRQ handler.\n"); |
136 | } else { | 141 | } else { |
137 | printk("not using powerd.\n"); | 142 | printk("not using powerd.\n"); |
138 | } | 143 | } |
144 | |||
145 | return 0; | ||
139 | } | 146 | } |
140 | 147 | ||
141 | static struct of_device_id power_match[] = { | 148 | static struct of_device_id power_match[] = { |
@@ -145,44 +152,15 @@ static struct of_device_id power_match[] = { | |||
145 | {}, | 152 | {}, |
146 | }; | 153 | }; |
147 | 154 | ||
148 | static int __devinit ebus_power_probe(struct of_device *dev, const struct of_device_id *match) | 155 | static struct of_platform_driver power_driver = { |
149 | { | ||
150 | struct linux_ebus_device *edev = to_ebus_device(&dev->dev); | ||
151 | struct resource *res = &edev->resource[0]; | ||
152 | unsigned int irq = edev->irqs[0]; | ||
153 | |||
154 | power_probe_common(dev, res,irq); | ||
155 | |||
156 | return 0; | ||
157 | } | ||
158 | |||
159 | static struct of_platform_driver ebus_power_driver = { | ||
160 | .name = "power", | ||
161 | .match_table = power_match, | ||
162 | .probe = ebus_power_probe, | ||
163 | }; | ||
164 | |||
165 | static int __devinit isa_power_probe(struct of_device *dev, const struct of_device_id *match) | ||
166 | { | ||
167 | struct sparc_isa_device *idev = to_isa_device(&dev->dev); | ||
168 | struct resource *res = &idev->resource; | ||
169 | unsigned int irq = idev->irq; | ||
170 | |||
171 | power_probe_common(dev, res,irq); | ||
172 | |||
173 | return 0; | ||
174 | } | ||
175 | |||
176 | static struct of_platform_driver isa_power_driver = { | ||
177 | .name = "power", | 156 | .name = "power", |
178 | .match_table = power_match, | 157 | .match_table = power_match, |
179 | .probe = isa_power_probe, | 158 | .probe = power_probe, |
180 | }; | 159 | }; |
181 | 160 | ||
182 | void __init power_init(void) | 161 | void __init power_init(void) |
183 | { | 162 | { |
184 | of_register_driver(&ebus_power_driver, &ebus_bus_type); | 163 | of_register_driver(&power_driver, &of_bus_type); |
185 | of_register_driver(&isa_power_driver, &isa_bus_type); | ||
186 | return; | 164 | return; |
187 | } | 165 | } |
188 | #endif /* CONFIG_PCI */ | 166 | #endif /* CONFIG_PCI */ |
diff --git a/arch/sparc64/kernel/process.c b/arch/sparc64/kernel/process.c index 1c7ca2f712d9..7d75cd4eb297 100644 --- a/arch/sparc64/kernel/process.c +++ b/arch/sparc64/kernel/process.c | |||
@@ -12,7 +12,6 @@ | |||
12 | 12 | ||
13 | #include <stdarg.h> | 13 | #include <stdarg.h> |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
@@ -26,7 +25,6 @@ | |||
26 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
27 | #include <linux/user.h> | 26 | #include <linux/user.h> |
28 | #include <linux/a.out.h> | 27 | #include <linux/a.out.h> |
29 | #include <linux/config.h> | ||
30 | #include <linux/reboot.h> | 28 | #include <linux/reboot.h> |
31 | #include <linux/delay.h> | 29 | #include <linux/delay.h> |
32 | #include <linux/compat.h> | 30 | #include <linux/compat.h> |
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c index 8e87e7ea0325..fa484d4f241e 100644 --- a/arch/sparc64/kernel/prom.c +++ b/arch/sparc64/kernel/prom.c | |||
@@ -15,6 +15,7 @@ | |||
15 | * 2 of the License, or (at your option) any later version. | 15 | * 2 of the License, or (at your option) any later version. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
18 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
19 | #include <linux/types.h> | 20 | #include <linux/types.h> |
20 | #include <linux/string.h> | 21 | #include <linux/string.h> |
@@ -23,7 +24,11 @@ | |||
23 | #include <linux/module.h> | 24 | #include <linux/module.h> |
24 | 25 | ||
25 | #include <asm/prom.h> | 26 | #include <asm/prom.h> |
27 | #include <asm/of_device.h> | ||
26 | #include <asm/oplib.h> | 28 | #include <asm/oplib.h> |
29 | #include <asm/irq.h> | ||
30 | #include <asm/asi.h> | ||
31 | #include <asm/upa.h> | ||
27 | 32 | ||
28 | static struct device_node *allnodes; | 33 | static struct device_node *allnodes; |
29 | 34 | ||
@@ -190,6 +195,36 @@ int of_getintprop_default(struct device_node *np, const char *name, int def) | |||
190 | } | 195 | } |
191 | EXPORT_SYMBOL(of_getintprop_default); | 196 | EXPORT_SYMBOL(of_getintprop_default); |
192 | 197 | ||
198 | int of_n_addr_cells(struct device_node *np) | ||
199 | { | ||
200 | int* ip; | ||
201 | do { | ||
202 | if (np->parent) | ||
203 | np = np->parent; | ||
204 | ip = of_get_property(np, "#address-cells", NULL); | ||
205 | if (ip != NULL) | ||
206 | return *ip; | ||
207 | } while (np->parent); | ||
208 | /* No #address-cells property for the root node, default to 2 */ | ||
209 | return 2; | ||
210 | } | ||
211 | EXPORT_SYMBOL(of_n_addr_cells); | ||
212 | |||
213 | int of_n_size_cells(struct device_node *np) | ||
214 | { | ||
215 | int* ip; | ||
216 | do { | ||
217 | if (np->parent) | ||
218 | np = np->parent; | ||
219 | ip = of_get_property(np, "#size-cells", NULL); | ||
220 | if (ip != NULL) | ||
221 | return *ip; | ||
222 | } while (np->parent); | ||
223 | /* No #size-cells property for the root node, default to 1 */ | ||
224 | return 1; | ||
225 | } | ||
226 | EXPORT_SYMBOL(of_n_size_cells); | ||
227 | |||
193 | int of_set_property(struct device_node *dp, const char *name, void *val, int len) | 228 | int of_set_property(struct device_node *dp, const char *name, void *val, int len) |
194 | { | 229 | { |
195 | struct property **prevp; | 230 | struct property **prevp; |
@@ -253,6 +288,777 @@ static void * __init prom_early_alloc(unsigned long size) | |||
253 | return ret; | 288 | return ret; |
254 | } | 289 | } |
255 | 290 | ||
291 | #ifdef CONFIG_PCI | ||
292 | /* PSYCHO interrupt mapping support. */ | ||
293 | #define PSYCHO_IMAP_A_SLOT0 0x0c00UL | ||
294 | #define PSYCHO_IMAP_B_SLOT0 0x0c20UL | ||
295 | static unsigned long psycho_pcislot_imap_offset(unsigned long ino) | ||
296 | { | ||
297 | unsigned int bus = (ino & 0x10) >> 4; | ||
298 | unsigned int slot = (ino & 0x0c) >> 2; | ||
299 | |||
300 | if (bus == 0) | ||
301 | return PSYCHO_IMAP_A_SLOT0 + (slot * 8); | ||
302 | else | ||
303 | return PSYCHO_IMAP_B_SLOT0 + (slot * 8); | ||
304 | } | ||
305 | |||
306 | #define PSYCHO_IMAP_SCSI 0x1000UL | ||
307 | #define PSYCHO_IMAP_ETH 0x1008UL | ||
308 | #define PSYCHO_IMAP_BPP 0x1010UL | ||
309 | #define PSYCHO_IMAP_AU_REC 0x1018UL | ||
310 | #define PSYCHO_IMAP_AU_PLAY 0x1020UL | ||
311 | #define PSYCHO_IMAP_PFAIL 0x1028UL | ||
312 | #define PSYCHO_IMAP_KMS 0x1030UL | ||
313 | #define PSYCHO_IMAP_FLPY 0x1038UL | ||
314 | #define PSYCHO_IMAP_SHW 0x1040UL | ||
315 | #define PSYCHO_IMAP_KBD 0x1048UL | ||
316 | #define PSYCHO_IMAP_MS 0x1050UL | ||
317 | #define PSYCHO_IMAP_SER 0x1058UL | ||
318 | #define PSYCHO_IMAP_TIM0 0x1060UL | ||
319 | #define PSYCHO_IMAP_TIM1 0x1068UL | ||
320 | #define PSYCHO_IMAP_UE 0x1070UL | ||
321 | #define PSYCHO_IMAP_CE 0x1078UL | ||
322 | #define PSYCHO_IMAP_A_ERR 0x1080UL | ||
323 | #define PSYCHO_IMAP_B_ERR 0x1088UL | ||
324 | #define PSYCHO_IMAP_PMGMT 0x1090UL | ||
325 | #define PSYCHO_IMAP_GFX 0x1098UL | ||
326 | #define PSYCHO_IMAP_EUPA 0x10a0UL | ||
327 | |||
328 | static unsigned long __psycho_onboard_imap_off[] = { | ||
329 | /*0x20*/ PSYCHO_IMAP_SCSI, | ||
330 | /*0x21*/ PSYCHO_IMAP_ETH, | ||
331 | /*0x22*/ PSYCHO_IMAP_BPP, | ||
332 | /*0x23*/ PSYCHO_IMAP_AU_REC, | ||
333 | /*0x24*/ PSYCHO_IMAP_AU_PLAY, | ||
334 | /*0x25*/ PSYCHO_IMAP_PFAIL, | ||
335 | /*0x26*/ PSYCHO_IMAP_KMS, | ||
336 | /*0x27*/ PSYCHO_IMAP_FLPY, | ||
337 | /*0x28*/ PSYCHO_IMAP_SHW, | ||
338 | /*0x29*/ PSYCHO_IMAP_KBD, | ||
339 | /*0x2a*/ PSYCHO_IMAP_MS, | ||
340 | /*0x2b*/ PSYCHO_IMAP_SER, | ||
341 | /*0x2c*/ PSYCHO_IMAP_TIM0, | ||
342 | /*0x2d*/ PSYCHO_IMAP_TIM1, | ||
343 | /*0x2e*/ PSYCHO_IMAP_UE, | ||
344 | /*0x2f*/ PSYCHO_IMAP_CE, | ||
345 | /*0x30*/ PSYCHO_IMAP_A_ERR, | ||
346 | /*0x31*/ PSYCHO_IMAP_B_ERR, | ||
347 | /*0x32*/ PSYCHO_IMAP_PMGMT | ||
348 | }; | ||
349 | #define PSYCHO_ONBOARD_IRQ_BASE 0x20 | ||
350 | #define PSYCHO_ONBOARD_IRQ_LAST 0x32 | ||
351 | #define psycho_onboard_imap_offset(__ino) \ | ||
352 | __psycho_onboard_imap_off[(__ino) - PSYCHO_ONBOARD_IRQ_BASE] | ||
353 | |||
354 | #define PSYCHO_ICLR_A_SLOT0 0x1400UL | ||
355 | #define PSYCHO_ICLR_SCSI 0x1800UL | ||
356 | |||
357 | #define psycho_iclr_offset(ino) \ | ||
358 | ((ino & 0x20) ? (PSYCHO_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \ | ||
359 | (PSYCHO_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3))) | ||
360 | |||
361 | static unsigned int psycho_irq_build(struct device_node *dp, | ||
362 | unsigned int ino, | ||
363 | void *_data) | ||
364 | { | ||
365 | unsigned long controller_regs = (unsigned long) _data; | ||
366 | unsigned long imap, iclr; | ||
367 | unsigned long imap_off, iclr_off; | ||
368 | int inofixup = 0; | ||
369 | |||
370 | ino &= 0x3f; | ||
371 | if (ino < PSYCHO_ONBOARD_IRQ_BASE) { | ||
372 | /* PCI slot */ | ||
373 | imap_off = psycho_pcislot_imap_offset(ino); | ||
374 | } else { | ||
375 | /* Onboard device */ | ||
376 | if (ino > PSYCHO_ONBOARD_IRQ_LAST) { | ||
377 | prom_printf("psycho_irq_build: Wacky INO [%x]\n", ino); | ||
378 | prom_halt(); | ||
379 | } | ||
380 | imap_off = psycho_onboard_imap_offset(ino); | ||
381 | } | ||
382 | |||
383 | /* Now build the IRQ bucket. */ | ||
384 | imap = controller_regs + imap_off; | ||
385 | imap += 4; | ||
386 | |||
387 | iclr_off = psycho_iclr_offset(ino); | ||
388 | iclr = controller_regs + iclr_off; | ||
389 | iclr += 4; | ||
390 | |||
391 | if ((ino & 0x20) == 0) | ||
392 | inofixup = ino & 0x03; | ||
393 | |||
394 | return build_irq(inofixup, iclr, imap); | ||
395 | } | ||
396 | |||
397 | static void psycho_irq_trans_init(struct device_node *dp) | ||
398 | { | ||
399 | struct linux_prom64_registers *regs; | ||
400 | |||
401 | dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller)); | ||
402 | dp->irq_trans->irq_build = psycho_irq_build; | ||
403 | |||
404 | regs = of_get_property(dp, "reg", NULL); | ||
405 | dp->irq_trans->data = (void *) regs[2].phys_addr; | ||
406 | } | ||
407 | |||
408 | #define sabre_read(__reg) \ | ||
409 | ({ u64 __ret; \ | ||
410 | __asm__ __volatile__("ldxa [%1] %2, %0" \ | ||
411 | : "=r" (__ret) \ | ||
412 | : "r" (__reg), "i" (ASI_PHYS_BYPASS_EC_E) \ | ||
413 | : "memory"); \ | ||
414 | __ret; \ | ||
415 | }) | ||
416 | |||
417 | struct sabre_irq_data { | ||
418 | unsigned long controller_regs; | ||
419 | unsigned int pci_first_busno; | ||
420 | }; | ||
421 | #define SABRE_CONFIGSPACE 0x001000000UL | ||
422 | #define SABRE_WRSYNC 0x1c20UL | ||
423 | |||
424 | #define SABRE_CONFIG_BASE(CONFIG_SPACE) \ | ||
425 | (CONFIG_SPACE | (1UL << 24)) | ||
426 | #define SABRE_CONFIG_ENCODE(BUS, DEVFN, REG) \ | ||
427 | (((unsigned long)(BUS) << 16) | \ | ||
428 | ((unsigned long)(DEVFN) << 8) | \ | ||
429 | ((unsigned long)(REG))) | ||
430 | |||
431 | /* When a device lives behind a bridge deeper in the PCI bus topology | ||
432 | * than APB, a special sequence must run to make sure all pending DMA | ||
433 | * transfers at the time of IRQ delivery are visible in the coherency | ||
434 | * domain by the cpu. This sequence is to perform a read on the far | ||
435 | * side of the non-APB bridge, then perform a read of Sabre's DMA | ||
436 | * write-sync register. | ||
437 | */ | ||
438 | static void sabre_wsync_handler(unsigned int ino, void *_arg1, void *_arg2) | ||
439 | { | ||
440 | unsigned int phys_hi = (unsigned int) (unsigned long) _arg1; | ||
441 | struct sabre_irq_data *irq_data = _arg2; | ||
442 | unsigned long controller_regs = irq_data->controller_regs; | ||
443 | unsigned long sync_reg = controller_regs + SABRE_WRSYNC; | ||
444 | unsigned long config_space = controller_regs + SABRE_CONFIGSPACE; | ||
445 | unsigned int bus, devfn; | ||
446 | u16 _unused; | ||
447 | |||
448 | config_space = SABRE_CONFIG_BASE(config_space); | ||
449 | |||
450 | bus = (phys_hi >> 16) & 0xff; | ||
451 | devfn = (phys_hi >> 8) & 0xff; | ||
452 | |||
453 | config_space |= SABRE_CONFIG_ENCODE(bus, devfn, 0x00); | ||
454 | |||
455 | __asm__ __volatile__("membar #Sync\n\t" | ||
456 | "lduha [%1] %2, %0\n\t" | ||
457 | "membar #Sync" | ||
458 | : "=r" (_unused) | ||
459 | : "r" ((u16 *) config_space), | ||
460 | "i" (ASI_PHYS_BYPASS_EC_E_L) | ||
461 | : "memory"); | ||
462 | |||
463 | sabre_read(sync_reg); | ||
464 | } | ||
465 | |||
466 | #define SABRE_IMAP_A_SLOT0 0x0c00UL | ||
467 | #define SABRE_IMAP_B_SLOT0 0x0c20UL | ||
468 | #define SABRE_IMAP_SCSI 0x1000UL | ||
469 | #define SABRE_IMAP_ETH 0x1008UL | ||
470 | #define SABRE_IMAP_BPP 0x1010UL | ||
471 | #define SABRE_IMAP_AU_REC 0x1018UL | ||
472 | #define SABRE_IMAP_AU_PLAY 0x1020UL | ||
473 | #define SABRE_IMAP_PFAIL 0x1028UL | ||
474 | #define SABRE_IMAP_KMS 0x1030UL | ||
475 | #define SABRE_IMAP_FLPY 0x1038UL | ||
476 | #define SABRE_IMAP_SHW 0x1040UL | ||
477 | #define SABRE_IMAP_KBD 0x1048UL | ||
478 | #define SABRE_IMAP_MS 0x1050UL | ||
479 | #define SABRE_IMAP_SER 0x1058UL | ||
480 | #define SABRE_IMAP_UE 0x1070UL | ||
481 | #define SABRE_IMAP_CE 0x1078UL | ||
482 | #define SABRE_IMAP_PCIERR 0x1080UL | ||
483 | #define SABRE_IMAP_GFX 0x1098UL | ||
484 | #define SABRE_IMAP_EUPA 0x10a0UL | ||
485 | #define SABRE_ICLR_A_SLOT0 0x1400UL | ||
486 | #define SABRE_ICLR_B_SLOT0 0x1480UL | ||
487 | #define SABRE_ICLR_SCSI 0x1800UL | ||
488 | #define SABRE_ICLR_ETH 0x1808UL | ||
489 | #define SABRE_ICLR_BPP 0x1810UL | ||
490 | #define SABRE_ICLR_AU_REC 0x1818UL | ||
491 | #define SABRE_ICLR_AU_PLAY 0x1820UL | ||
492 | #define SABRE_ICLR_PFAIL 0x1828UL | ||
493 | #define SABRE_ICLR_KMS 0x1830UL | ||
494 | #define SABRE_ICLR_FLPY 0x1838UL | ||
495 | #define SABRE_ICLR_SHW 0x1840UL | ||
496 | #define SABRE_ICLR_KBD 0x1848UL | ||
497 | #define SABRE_ICLR_MS 0x1850UL | ||
498 | #define SABRE_ICLR_SER 0x1858UL | ||
499 | #define SABRE_ICLR_UE 0x1870UL | ||
500 | #define SABRE_ICLR_CE 0x1878UL | ||
501 | #define SABRE_ICLR_PCIERR 0x1880UL | ||
502 | |||
503 | static unsigned long sabre_pcislot_imap_offset(unsigned long ino) | ||
504 | { | ||
505 | unsigned int bus = (ino & 0x10) >> 4; | ||
506 | unsigned int slot = (ino & 0x0c) >> 2; | ||
507 | |||
508 | if (bus == 0) | ||
509 | return SABRE_IMAP_A_SLOT0 + (slot * 8); | ||
510 | else | ||
511 | return SABRE_IMAP_B_SLOT0 + (slot * 8); | ||
512 | } | ||
513 | |||
514 | static unsigned long __sabre_onboard_imap_off[] = { | ||
515 | /*0x20*/ SABRE_IMAP_SCSI, | ||
516 | /*0x21*/ SABRE_IMAP_ETH, | ||
517 | /*0x22*/ SABRE_IMAP_BPP, | ||
518 | /*0x23*/ SABRE_IMAP_AU_REC, | ||
519 | /*0x24*/ SABRE_IMAP_AU_PLAY, | ||
520 | /*0x25*/ SABRE_IMAP_PFAIL, | ||
521 | /*0x26*/ SABRE_IMAP_KMS, | ||
522 | /*0x27*/ SABRE_IMAP_FLPY, | ||
523 | /*0x28*/ SABRE_IMAP_SHW, | ||
524 | /*0x29*/ SABRE_IMAP_KBD, | ||
525 | /*0x2a*/ SABRE_IMAP_MS, | ||
526 | /*0x2b*/ SABRE_IMAP_SER, | ||
527 | /*0x2c*/ 0 /* reserved */, | ||
528 | /*0x2d*/ 0 /* reserved */, | ||
529 | /*0x2e*/ SABRE_IMAP_UE, | ||
530 | /*0x2f*/ SABRE_IMAP_CE, | ||
531 | /*0x30*/ SABRE_IMAP_PCIERR, | ||
532 | }; | ||
533 | #define SABRE_ONBOARD_IRQ_BASE 0x20 | ||
534 | #define SABRE_ONBOARD_IRQ_LAST 0x30 | ||
535 | #define sabre_onboard_imap_offset(__ino) \ | ||
536 | __sabre_onboard_imap_off[(__ino) - SABRE_ONBOARD_IRQ_BASE] | ||
537 | |||
538 | #define sabre_iclr_offset(ino) \ | ||
539 | ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \ | ||
540 | (SABRE_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3))) | ||
541 | |||
542 | static unsigned int sabre_irq_build(struct device_node *dp, | ||
543 | unsigned int ino, | ||
544 | void *_data) | ||
545 | { | ||
546 | struct sabre_irq_data *irq_data = _data; | ||
547 | unsigned long controller_regs = irq_data->controller_regs; | ||
548 | struct linux_prom_pci_registers *regs; | ||
549 | unsigned long imap, iclr; | ||
550 | unsigned long imap_off, iclr_off; | ||
551 | int inofixup = 0; | ||
552 | int virt_irq; | ||
553 | |||
554 | ino &= 0x3f; | ||
555 | if (ino < SABRE_ONBOARD_IRQ_BASE) { | ||
556 | /* PCI slot */ | ||
557 | imap_off = sabre_pcislot_imap_offset(ino); | ||
558 | } else { | ||
559 | /* onboard device */ | ||
560 | if (ino > SABRE_ONBOARD_IRQ_LAST) { | ||
561 | prom_printf("sabre_irq_build: Wacky INO [%x]\n", ino); | ||
562 | prom_halt(); | ||
563 | } | ||
564 | imap_off = sabre_onboard_imap_offset(ino); | ||
565 | } | ||
566 | |||
567 | /* Now build the IRQ bucket. */ | ||
568 | imap = controller_regs + imap_off; | ||
569 | imap += 4; | ||
570 | |||
571 | iclr_off = sabre_iclr_offset(ino); | ||
572 | iclr = controller_regs + iclr_off; | ||
573 | iclr += 4; | ||
574 | |||
575 | if ((ino & 0x20) == 0) | ||
576 | inofixup = ino & 0x03; | ||
577 | |||
578 | virt_irq = build_irq(inofixup, iclr, imap); | ||
579 | |||
580 | regs = of_get_property(dp, "reg", NULL); | ||
581 | if (regs && | ||
582 | ((regs->phys_hi >> 16) & 0xff) != irq_data->pci_first_busno) { | ||
583 | irq_install_pre_handler(virt_irq, | ||
584 | sabre_wsync_handler, | ||
585 | (void *) (long) regs->phys_hi, | ||
586 | (void *) | ||
587 | controller_regs + | ||
588 | SABRE_WRSYNC); | ||
589 | } | ||
590 | |||
591 | return virt_irq; | ||
592 | } | ||
593 | |||
594 | static void sabre_irq_trans_init(struct device_node *dp) | ||
595 | { | ||
596 | struct linux_prom64_registers *regs; | ||
597 | struct sabre_irq_data *irq_data; | ||
598 | u32 *busrange; | ||
599 | |||
600 | dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller)); | ||
601 | dp->irq_trans->irq_build = sabre_irq_build; | ||
602 | |||
603 | irq_data = prom_early_alloc(sizeof(struct sabre_irq_data)); | ||
604 | |||
605 | regs = of_get_property(dp, "reg", NULL); | ||
606 | irq_data->controller_regs = regs[0].phys_addr; | ||
607 | |||
608 | busrange = of_get_property(dp, "bus-range", NULL); | ||
609 | irq_data->pci_first_busno = busrange[0]; | ||
610 | |||
611 | dp->irq_trans->data = irq_data; | ||
612 | } | ||
613 | |||
614 | /* SCHIZO interrupt mapping support. Unlike Psycho, for this controller the | ||
615 | * imap/iclr registers are per-PBM. | ||
616 | */ | ||
617 | #define SCHIZO_IMAP_BASE 0x1000UL | ||
618 | #define SCHIZO_ICLR_BASE 0x1400UL | ||
619 | |||
620 | static unsigned long schizo_imap_offset(unsigned long ino) | ||
621 | { | ||
622 | return SCHIZO_IMAP_BASE + (ino * 8UL); | ||
623 | } | ||
624 | |||
625 | static unsigned long schizo_iclr_offset(unsigned long ino) | ||
626 | { | ||
627 | return SCHIZO_ICLR_BASE + (ino * 8UL); | ||
628 | } | ||
629 | |||
630 | static unsigned long schizo_ino_to_iclr(unsigned long pbm_regs, | ||
631 | unsigned int ino) | ||
632 | { | ||
633 | return pbm_regs + schizo_iclr_offset(ino) + 4; | ||
634 | } | ||
635 | |||
636 | static unsigned long schizo_ino_to_imap(unsigned long pbm_regs, | ||
637 | unsigned int ino) | ||
638 | { | ||
639 | return pbm_regs + schizo_imap_offset(ino) + 4; | ||
640 | } | ||
641 | |||
642 | #define schizo_read(__reg) \ | ||
643 | ({ u64 __ret; \ | ||
644 | __asm__ __volatile__("ldxa [%1] %2, %0" \ | ||
645 | : "=r" (__ret) \ | ||
646 | : "r" (__reg), "i" (ASI_PHYS_BYPASS_EC_E) \ | ||
647 | : "memory"); \ | ||
648 | __ret; \ | ||
649 | }) | ||
650 | #define schizo_write(__reg, __val) \ | ||
651 | __asm__ __volatile__("stxa %0, [%1] %2" \ | ||
652 | : /* no outputs */ \ | ||
653 | : "r" (__val), "r" (__reg), \ | ||
654 | "i" (ASI_PHYS_BYPASS_EC_E) \ | ||
655 | : "memory") | ||
656 | |||
657 | static void tomatillo_wsync_handler(unsigned int ino, void *_arg1, void *_arg2) | ||
658 | { | ||
659 | unsigned long sync_reg = (unsigned long) _arg2; | ||
660 | u64 mask = 1UL << (ino & IMAP_INO); | ||
661 | u64 val; | ||
662 | int limit; | ||
663 | |||
664 | schizo_write(sync_reg, mask); | ||
665 | |||
666 | limit = 100000; | ||
667 | val = 0; | ||
668 | while (--limit) { | ||
669 | val = schizo_read(sync_reg); | ||
670 | if (!(val & mask)) | ||
671 | break; | ||
672 | } | ||
673 | if (limit <= 0) { | ||
674 | printk("tomatillo_wsync_handler: DMA won't sync [%lx:%lx]\n", | ||
675 | val, mask); | ||
676 | } | ||
677 | |||
678 | if (_arg1) { | ||
679 | static unsigned char cacheline[64] | ||
680 | __attribute__ ((aligned (64))); | ||
681 | |||
682 | __asm__ __volatile__("rd %%fprs, %0\n\t" | ||
683 | "or %0, %4, %1\n\t" | ||
684 | "wr %1, 0x0, %%fprs\n\t" | ||
685 | "stda %%f0, [%5] %6\n\t" | ||
686 | "wr %0, 0x0, %%fprs\n\t" | ||
687 | "membar #Sync" | ||
688 | : "=&r" (mask), "=&r" (val) | ||
689 | : "0" (mask), "1" (val), | ||
690 | "i" (FPRS_FEF), "r" (&cacheline[0]), | ||
691 | "i" (ASI_BLK_COMMIT_P)); | ||
692 | } | ||
693 | } | ||
694 | |||
695 | struct schizo_irq_data { | ||
696 | unsigned long pbm_regs; | ||
697 | unsigned long sync_reg; | ||
698 | u32 portid; | ||
699 | int chip_version; | ||
700 | }; | ||
701 | |||
702 | static unsigned int schizo_irq_build(struct device_node *dp, | ||
703 | unsigned int ino, | ||
704 | void *_data) | ||
705 | { | ||
706 | struct schizo_irq_data *irq_data = _data; | ||
707 | unsigned long pbm_regs = irq_data->pbm_regs; | ||
708 | unsigned long imap, iclr; | ||
709 | int ign_fixup; | ||
710 | int virt_irq; | ||
711 | int is_tomatillo; | ||
712 | |||
713 | ino &= 0x3f; | ||
714 | |||
715 | /* Now build the IRQ bucket. */ | ||
716 | imap = schizo_ino_to_imap(pbm_regs, ino); | ||
717 | iclr = schizo_ino_to_iclr(pbm_regs, ino); | ||
718 | |||
719 | /* On Schizo, no inofixup occurs. This is because each | ||
720 | * INO has it's own IMAP register. On Psycho and Sabre | ||
721 | * there is only one IMAP register for each PCI slot even | ||
722 | * though four different INOs can be generated by each | ||
723 | * PCI slot. | ||
724 | * | ||
725 | * But, for JBUS variants (essentially, Tomatillo), we have | ||
726 | * to fixup the lowest bit of the interrupt group number. | ||
727 | */ | ||
728 | ign_fixup = 0; | ||
729 | |||
730 | is_tomatillo = (irq_data->sync_reg != 0UL); | ||
731 | |||
732 | if (is_tomatillo) { | ||
733 | if (irq_data->portid & 1) | ||
734 | ign_fixup = (1 << 6); | ||
735 | } | ||
736 | |||
737 | virt_irq = build_irq(ign_fixup, iclr, imap); | ||
738 | |||
739 | if (is_tomatillo) { | ||
740 | irq_install_pre_handler(virt_irq, | ||
741 | tomatillo_wsync_handler, | ||
742 | ((irq_data->chip_version <= 4) ? | ||
743 | (void *) 1 : (void *) 0), | ||
744 | (void *) irq_data->sync_reg); | ||
745 | } | ||
746 | |||
747 | return virt_irq; | ||
748 | } | ||
749 | |||
750 | static void schizo_irq_trans_init(struct device_node *dp) | ||
751 | { | ||
752 | struct linux_prom64_registers *regs; | ||
753 | struct schizo_irq_data *irq_data; | ||
754 | |||
755 | dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller)); | ||
756 | dp->irq_trans->irq_build = schizo_irq_build; | ||
757 | |||
758 | irq_data = prom_early_alloc(sizeof(struct schizo_irq_data)); | ||
759 | |||
760 | regs = of_get_property(dp, "reg", NULL); | ||
761 | dp->irq_trans->data = irq_data; | ||
762 | |||
763 | irq_data->pbm_regs = regs[0].phys_addr; | ||
764 | irq_data->sync_reg = regs[3].phys_addr + 0x1a18UL; | ||
765 | irq_data->portid = of_getintprop_default(dp, "portid", 0); | ||
766 | irq_data->chip_version = of_getintprop_default(dp, "version#", 0); | ||
767 | } | ||
768 | |||
769 | static unsigned int pci_sun4v_irq_build(struct device_node *dp, | ||
770 | unsigned int devino, | ||
771 | void *_data) | ||
772 | { | ||
773 | u32 devhandle = (u32) (unsigned long) _data; | ||
774 | |||
775 | return sun4v_build_irq(devhandle, devino); | ||
776 | } | ||
777 | |||
778 | static void pci_sun4v_irq_trans_init(struct device_node *dp) | ||
779 | { | ||
780 | struct linux_prom64_registers *regs; | ||
781 | |||
782 | dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller)); | ||
783 | dp->irq_trans->irq_build = pci_sun4v_irq_build; | ||
784 | |||
785 | regs = of_get_property(dp, "reg", NULL); | ||
786 | dp->irq_trans->data = (void *) (unsigned long) | ||
787 | ((regs->phys_addr >> 32UL) & 0x0fffffff); | ||
788 | } | ||
789 | #endif /* CONFIG_PCI */ | ||
790 | |||
791 | #ifdef CONFIG_SBUS | ||
792 | /* INO number to IMAP register offset for SYSIO external IRQ's. | ||
793 | * This should conform to both Sunfire/Wildfire server and Fusion | ||
794 | * desktop designs. | ||
795 | */ | ||
796 | #define SYSIO_IMAP_SLOT0 0x2c04UL | ||
797 | #define SYSIO_IMAP_SLOT1 0x2c0cUL | ||
798 | #define SYSIO_IMAP_SLOT2 0x2c14UL | ||
799 | #define SYSIO_IMAP_SLOT3 0x2c1cUL | ||
800 | #define SYSIO_IMAP_SCSI 0x3004UL | ||
801 | #define SYSIO_IMAP_ETH 0x300cUL | ||
802 | #define SYSIO_IMAP_BPP 0x3014UL | ||
803 | #define SYSIO_IMAP_AUDIO 0x301cUL | ||
804 | #define SYSIO_IMAP_PFAIL 0x3024UL | ||
805 | #define SYSIO_IMAP_KMS 0x302cUL | ||
806 | #define SYSIO_IMAP_FLPY 0x3034UL | ||
807 | #define SYSIO_IMAP_SHW 0x303cUL | ||
808 | #define SYSIO_IMAP_KBD 0x3044UL | ||
809 | #define SYSIO_IMAP_MS 0x304cUL | ||
810 | #define SYSIO_IMAP_SER 0x3054UL | ||
811 | #define SYSIO_IMAP_TIM0 0x3064UL | ||
812 | #define SYSIO_IMAP_TIM1 0x306cUL | ||
813 | #define SYSIO_IMAP_UE 0x3074UL | ||
814 | #define SYSIO_IMAP_CE 0x307cUL | ||
815 | #define SYSIO_IMAP_SBERR 0x3084UL | ||
816 | #define SYSIO_IMAP_PMGMT 0x308cUL | ||
817 | #define SYSIO_IMAP_GFX 0x3094UL | ||
818 | #define SYSIO_IMAP_EUPA 0x309cUL | ||
819 | |||
820 | #define bogon ((unsigned long) -1) | ||
821 | static unsigned long sysio_irq_offsets[] = { | ||
822 | /* SBUS Slot 0 --> 3, level 1 --> 7 */ | ||
823 | SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, | ||
824 | SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, SYSIO_IMAP_SLOT0, | ||
825 | SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, | ||
826 | SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, SYSIO_IMAP_SLOT1, | ||
827 | SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, | ||
828 | SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, SYSIO_IMAP_SLOT2, | ||
829 | SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, | ||
830 | SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, SYSIO_IMAP_SLOT3, | ||
831 | |||
832 | /* Onboard devices (not relevant/used on SunFire). */ | ||
833 | SYSIO_IMAP_SCSI, | ||
834 | SYSIO_IMAP_ETH, | ||
835 | SYSIO_IMAP_BPP, | ||
836 | bogon, | ||
837 | SYSIO_IMAP_AUDIO, | ||
838 | SYSIO_IMAP_PFAIL, | ||
839 | bogon, | ||
840 | bogon, | ||
841 | SYSIO_IMAP_KMS, | ||
842 | SYSIO_IMAP_FLPY, | ||
843 | SYSIO_IMAP_SHW, | ||
844 | SYSIO_IMAP_KBD, | ||
845 | SYSIO_IMAP_MS, | ||
846 | SYSIO_IMAP_SER, | ||
847 | bogon, | ||
848 | bogon, | ||
849 | SYSIO_IMAP_TIM0, | ||
850 | SYSIO_IMAP_TIM1, | ||
851 | bogon, | ||
852 | bogon, | ||
853 | SYSIO_IMAP_UE, | ||
854 | SYSIO_IMAP_CE, | ||
855 | SYSIO_IMAP_SBERR, | ||
856 | SYSIO_IMAP_PMGMT, | ||
857 | }; | ||
858 | |||
859 | #undef bogon | ||
860 | |||
861 | #define NUM_SYSIO_OFFSETS ARRAY_SIZE(sysio_irq_offsets) | ||
862 | |||
863 | /* Convert Interrupt Mapping register pointer to associated | ||
864 | * Interrupt Clear register pointer, SYSIO specific version. | ||
865 | */ | ||
866 | #define SYSIO_ICLR_UNUSED0 0x3400UL | ||
867 | #define SYSIO_ICLR_SLOT0 0x340cUL | ||
868 | #define SYSIO_ICLR_SLOT1 0x344cUL | ||
869 | #define SYSIO_ICLR_SLOT2 0x348cUL | ||
870 | #define SYSIO_ICLR_SLOT3 0x34ccUL | ||
871 | static unsigned long sysio_imap_to_iclr(unsigned long imap) | ||
872 | { | ||
873 | unsigned long diff = SYSIO_ICLR_UNUSED0 - SYSIO_IMAP_SLOT0; | ||
874 | return imap + diff; | ||
875 | } | ||
876 | |||
877 | static unsigned int sbus_of_build_irq(struct device_node *dp, | ||
878 | unsigned int ino, | ||
879 | void *_data) | ||
880 | { | ||
881 | unsigned long reg_base = (unsigned long) _data; | ||
882 | struct linux_prom_registers *regs; | ||
883 | unsigned long imap, iclr; | ||
884 | int sbus_slot = 0; | ||
885 | int sbus_level = 0; | ||
886 | |||
887 | ino &= 0x3f; | ||
888 | |||
889 | regs = of_get_property(dp, "reg", NULL); | ||
890 | if (regs) | ||
891 | sbus_slot = regs->which_io; | ||
892 | |||
893 | if (ino < 0x20) | ||
894 | ino += (sbus_slot * 8); | ||
895 | |||
896 | imap = sysio_irq_offsets[ino]; | ||
897 | if (imap == ((unsigned long)-1)) { | ||
898 | prom_printf("get_irq_translations: Bad SYSIO INO[%x]\n", | ||
899 | ino); | ||
900 | prom_halt(); | ||
901 | } | ||
902 | imap += reg_base; | ||
903 | |||
904 | /* SYSIO inconsistency. For external SLOTS, we have to select | ||
905 | * the right ICLR register based upon the lower SBUS irq level | ||
906 | * bits. | ||
907 | */ | ||
908 | if (ino >= 0x20) { | ||
909 | iclr = sysio_imap_to_iclr(imap); | ||
910 | } else { | ||
911 | sbus_level = ino & 0x7; | ||
912 | |||
913 | switch(sbus_slot) { | ||
914 | case 0: | ||
915 | iclr = reg_base + SYSIO_ICLR_SLOT0; | ||
916 | break; | ||
917 | case 1: | ||
918 | iclr = reg_base + SYSIO_ICLR_SLOT1; | ||
919 | break; | ||
920 | case 2: | ||
921 | iclr = reg_base + SYSIO_ICLR_SLOT2; | ||
922 | break; | ||
923 | default: | ||
924 | case 3: | ||
925 | iclr = reg_base + SYSIO_ICLR_SLOT3; | ||
926 | break; | ||
927 | }; | ||
928 | |||
929 | iclr += ((unsigned long)sbus_level - 1UL) * 8UL; | ||
930 | } | ||
931 | return build_irq(sbus_level, iclr, imap); | ||
932 | } | ||
933 | |||
934 | static void sbus_irq_trans_init(struct device_node *dp) | ||
935 | { | ||
936 | struct linux_prom64_registers *regs; | ||
937 | |||
938 | dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller)); | ||
939 | dp->irq_trans->irq_build = sbus_of_build_irq; | ||
940 | |||
941 | regs = of_get_property(dp, "reg", NULL); | ||
942 | dp->irq_trans->data = (void *) (unsigned long) regs->phys_addr; | ||
943 | } | ||
944 | #endif /* CONFIG_SBUS */ | ||
945 | |||
946 | |||
947 | static unsigned int central_build_irq(struct device_node *dp, | ||
948 | unsigned int ino, | ||
949 | void *_data) | ||
950 | { | ||
951 | struct device_node *central_dp = _data; | ||
952 | struct of_device *central_op = of_find_device_by_node(central_dp); | ||
953 | struct resource *res; | ||
954 | unsigned long imap, iclr; | ||
955 | u32 tmp; | ||
956 | |||
957 | if (!strcmp(dp->name, "eeprom")) { | ||
958 | res = ¢ral_op->resource[5]; | ||
959 | } else if (!strcmp(dp->name, "zs")) { | ||
960 | res = ¢ral_op->resource[4]; | ||
961 | } else if (!strcmp(dp->name, "clock-board")) { | ||
962 | res = ¢ral_op->resource[3]; | ||
963 | } else { | ||
964 | return ino; | ||
965 | } | ||
966 | |||
967 | imap = res->start + 0x00UL; | ||
968 | iclr = res->start + 0x10UL; | ||
969 | |||
970 | /* Set the INO state to idle, and disable. */ | ||
971 | upa_writel(0, iclr); | ||
972 | upa_readl(iclr); | ||
973 | |||
974 | tmp = upa_readl(imap); | ||
975 | tmp &= ~0x80000000; | ||
976 | upa_writel(tmp, imap); | ||
977 | |||
978 | return build_irq(0, iclr, imap); | ||
979 | } | ||
980 | |||
981 | static void central_irq_trans_init(struct device_node *dp) | ||
982 | { | ||
983 | dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller)); | ||
984 | dp->irq_trans->irq_build = central_build_irq; | ||
985 | |||
986 | dp->irq_trans->data = dp; | ||
987 | } | ||
988 | |||
989 | struct irq_trans { | ||
990 | const char *name; | ||
991 | void (*init)(struct device_node *); | ||
992 | }; | ||
993 | |||
994 | #ifdef CONFIG_PCI | ||
995 | static struct irq_trans pci_irq_trans_table[] = { | ||
996 | { "SUNW,sabre", sabre_irq_trans_init }, | ||
997 | { "pci108e,a000", sabre_irq_trans_init }, | ||
998 | { "pci108e,a001", sabre_irq_trans_init }, | ||
999 | { "SUNW,psycho", psycho_irq_trans_init }, | ||
1000 | { "pci108e,8000", psycho_irq_trans_init }, | ||
1001 | { "SUNW,schizo", schizo_irq_trans_init }, | ||
1002 | { "pci108e,8001", schizo_irq_trans_init }, | ||
1003 | { "SUNW,schizo+", schizo_irq_trans_init }, | ||
1004 | { "pci108e,8002", schizo_irq_trans_init }, | ||
1005 | { "SUNW,tomatillo", schizo_irq_trans_init }, | ||
1006 | { "pci108e,a801", schizo_irq_trans_init }, | ||
1007 | { "SUNW,sun4v-pci", pci_sun4v_irq_trans_init }, | ||
1008 | }; | ||
1009 | #endif | ||
1010 | |||
1011 | static unsigned int sun4v_vdev_irq_build(struct device_node *dp, | ||
1012 | unsigned int devino, | ||
1013 | void *_data) | ||
1014 | { | ||
1015 | u32 devhandle = (u32) (unsigned long) _data; | ||
1016 | |||
1017 | return sun4v_build_irq(devhandle, devino); | ||
1018 | } | ||
1019 | |||
1020 | static void sun4v_vdev_irq_trans_init(struct device_node *dp) | ||
1021 | { | ||
1022 | struct linux_prom64_registers *regs; | ||
1023 | |||
1024 | dp->irq_trans = prom_early_alloc(sizeof(struct of_irq_controller)); | ||
1025 | dp->irq_trans->irq_build = sun4v_vdev_irq_build; | ||
1026 | |||
1027 | regs = of_get_property(dp, "reg", NULL); | ||
1028 | dp->irq_trans->data = (void *) (unsigned long) | ||
1029 | ((regs->phys_addr >> 32UL) & 0x0fffffff); | ||
1030 | } | ||
1031 | |||
1032 | static void irq_trans_init(struct device_node *dp) | ||
1033 | { | ||
1034 | const char *model; | ||
1035 | int i; | ||
1036 | |||
1037 | model = of_get_property(dp, "model", NULL); | ||
1038 | if (!model) | ||
1039 | model = of_get_property(dp, "compatible", NULL); | ||
1040 | if (!model) | ||
1041 | return; | ||
1042 | |||
1043 | #ifdef CONFIG_PCI | ||
1044 | for (i = 0; i < ARRAY_SIZE(pci_irq_trans_table); i++) { | ||
1045 | struct irq_trans *t = &pci_irq_trans_table[i]; | ||
1046 | |||
1047 | if (!strcmp(model, t->name)) | ||
1048 | return t->init(dp); | ||
1049 | } | ||
1050 | #endif | ||
1051 | #ifdef CONFIG_SBUS | ||
1052 | if (!strcmp(dp->name, "sbus") || | ||
1053 | !strcmp(dp->name, "sbi")) | ||
1054 | return sbus_irq_trans_init(dp); | ||
1055 | #endif | ||
1056 | if (!strcmp(dp->name, "central")) | ||
1057 | return central_irq_trans_init(dp->child); | ||
1058 | if (!strcmp(dp->name, "virtual-devices")) | ||
1059 | return sun4v_vdev_irq_trans_init(dp); | ||
1060 | } | ||
1061 | |||
256 | static int is_root_node(const struct device_node *dp) | 1062 | static int is_root_node(const struct device_node *dp) |
257 | { | 1063 | { |
258 | if (!dp) | 1064 | if (!dp) |
@@ -676,10 +1482,10 @@ static struct device_node * __init create_node(phandle node) | |||
676 | dp->type = get_one_property(node, "device_type"); | 1482 | dp->type = get_one_property(node, "device_type"); |
677 | dp->node = node; | 1483 | dp->node = node; |
678 | 1484 | ||
679 | /* Build interrupts later... */ | ||
680 | |||
681 | dp->properties = build_prop_list(node); | 1485 | dp->properties = build_prop_list(node); |
682 | 1486 | ||
1487 | irq_trans_init(dp); | ||
1488 | |||
683 | return dp; | 1489 | return dp; |
684 | } | 1490 | } |
685 | 1491 | ||
diff --git a/arch/sparc64/kernel/rtrap.S b/arch/sparc64/kernel/rtrap.S index 7130e866f935..3522cd66f3bb 100644 --- a/arch/sparc64/kernel/rtrap.S +++ b/arch/sparc64/kernel/rtrap.S | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) | 5 | * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | 8 | ||
10 | #include <asm/asi.h> | 9 | #include <asm/asi.h> |
11 | #include <asm/pstate.h> | 10 | #include <asm/pstate.h> |
diff --git a/arch/sparc64/kernel/sbus.c b/arch/sparc64/kernel/sbus.c index ac05e0f692ef..c49a57795743 100644 --- a/arch/sparc64/kernel/sbus.c +++ b/arch/sparc64/kernel/sbus.c | |||
@@ -1065,7 +1065,7 @@ static void __init sysio_register_error_handlers(struct sbus_bus *sbus) | |||
1065 | 1065 | ||
1066 | irq = sbus_build_irq(sbus, SYSIO_UE_INO); | 1066 | irq = sbus_build_irq(sbus, SYSIO_UE_INO); |
1067 | if (request_irq(irq, sysio_ue_handler, | 1067 | if (request_irq(irq, sysio_ue_handler, |
1068 | SA_SHIRQ, "SYSIO UE", sbus) < 0) { | 1068 | IRQF_SHARED, "SYSIO UE", sbus) < 0) { |
1069 | prom_printf("SYSIO[%x]: Cannot register UE interrupt.\n", | 1069 | prom_printf("SYSIO[%x]: Cannot register UE interrupt.\n", |
1070 | sbus->portid); | 1070 | sbus->portid); |
1071 | prom_halt(); | 1071 | prom_halt(); |
@@ -1073,7 +1073,7 @@ static void __init sysio_register_error_handlers(struct sbus_bus *sbus) | |||
1073 | 1073 | ||
1074 | irq = sbus_build_irq(sbus, SYSIO_CE_INO); | 1074 | irq = sbus_build_irq(sbus, SYSIO_CE_INO); |
1075 | if (request_irq(irq, sysio_ce_handler, | 1075 | if (request_irq(irq, sysio_ce_handler, |
1076 | SA_SHIRQ, "SYSIO CE", sbus) < 0) { | 1076 | IRQF_SHARED, "SYSIO CE", sbus) < 0) { |
1077 | prom_printf("SYSIO[%x]: Cannot register CE interrupt.\n", | 1077 | prom_printf("SYSIO[%x]: Cannot register CE interrupt.\n", |
1078 | sbus->portid); | 1078 | sbus->portid); |
1079 | prom_halt(); | 1079 | prom_halt(); |
@@ -1081,7 +1081,7 @@ static void __init sysio_register_error_handlers(struct sbus_bus *sbus) | |||
1081 | 1081 | ||
1082 | irq = sbus_build_irq(sbus, SYSIO_SBUSERR_INO); | 1082 | irq = sbus_build_irq(sbus, SYSIO_SBUSERR_INO); |
1083 | if (request_irq(irq, sysio_sbus_error_handler, | 1083 | if (request_irq(irq, sysio_sbus_error_handler, |
1084 | SA_SHIRQ, "SYSIO SBUS Error", sbus) < 0) { | 1084 | IRQF_SHARED, "SYSIO SBUS Error", sbus) < 0) { |
1085 | prom_printf("SYSIO[%x]: Cannot register SBUS Error interrupt.\n", | 1085 | prom_printf("SYSIO[%x]: Cannot register SBUS Error interrupt.\n", |
1086 | sbus->portid); | 1086 | sbus->portid); |
1087 | prom_halt(); | 1087 | prom_halt(); |
@@ -1221,9 +1221,7 @@ static void __init sbus_iommu_init(int __node, struct sbus_bus *sbus) | |||
1221 | 1221 | ||
1222 | /* Now some Xfire specific grot... */ | 1222 | /* Now some Xfire specific grot... */ |
1223 | if (this_is_starfire) | 1223 | if (this_is_starfire) |
1224 | sbus->starfire_cookie = starfire_hookup(sbus->portid); | 1224 | starfire_hookup(sbus->portid); |
1225 | else | ||
1226 | sbus->starfire_cookie = NULL; | ||
1227 | 1225 | ||
1228 | sysio_register_error_handlers(sbus); | 1226 | sysio_register_error_handlers(sbus); |
1229 | } | 1227 | } |
@@ -1269,8 +1267,6 @@ int __init sbus_arch_preinit(void) | |||
1269 | void __init sbus_arch_postinit(void) | 1267 | void __init sbus_arch_postinit(void) |
1270 | { | 1268 | { |
1271 | extern void firetruck_init(void); | 1269 | extern void firetruck_init(void); |
1272 | extern void clock_probe(void); | ||
1273 | 1270 | ||
1274 | firetruck_init(); | 1271 | firetruck_init(); |
1275 | clock_probe(); | ||
1276 | } | 1272 | } |
diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index 116d9632002d..a73140466e01 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/a.out.h> | 18 | #include <linux/a.out.h> |
19 | #include <linux/tty.h> | 19 | #include <linux/tty.h> |
20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
21 | #include <linux/config.h> | ||
22 | #include <linux/fs.h> | 21 | #include <linux/fs.h> |
23 | #include <linux/seq_file.h> | 22 | #include <linux/seq_file.h> |
24 | #include <linux/syscalls.h> | 23 | #include <linux/syscalls.h> |
diff --git a/arch/sparc64/kernel/signal.c b/arch/sparc64/kernel/signal.c index ca11a4c457d4..96d56a8410ad 100644 --- a/arch/sparc64/kernel/signal.c +++ b/arch/sparc64/kernel/signal.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 8 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #ifdef CONFIG_SPARC32_COMPAT | 11 | #ifdef CONFIG_SPARC32_COMPAT |
13 | #include <linux/compat.h> /* for compat_old_sigset_t */ | 12 | #include <linux/compat.h> /* for compat_old_sigset_t */ |
14 | #endif | 13 | #endif |
diff --git a/arch/sparc64/kernel/sparc64_ksyms.c b/arch/sparc64/kernel/sparc64_ksyms.c index 4ac35dd2088b..4173de425f09 100644 --- a/arch/sparc64/kernel/sparc64_ksyms.c +++ b/arch/sparc64/kernel/sparc64_ksyms.c | |||
@@ -10,7 +10,6 @@ | |||
10 | #define EXPORT_SYMTAB_STROPS | 10 | #define EXPORT_SYMTAB_STROPS |
11 | #define PROMLIB_INTERNAL | 11 | #define PROMLIB_INTERNAL |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/types.h> | 14 | #include <linux/types.h> |
16 | #include <linux/string.h> | 15 | #include <linux/string.h> |
diff --git a/arch/sparc64/kernel/starfire.c b/arch/sparc64/kernel/starfire.c index ae859d40771e..b930fee7708a 100644 --- a/arch/sparc64/kernel/starfire.c +++ b/arch/sparc64/kernel/starfire.c | |||
@@ -54,7 +54,7 @@ struct starfire_irqinfo { | |||
54 | static struct starfire_irqinfo *sflist = NULL; | 54 | static struct starfire_irqinfo *sflist = NULL; |
55 | 55 | ||
56 | /* Beam me up Scott(McNeil)y... */ | 56 | /* Beam me up Scott(McNeil)y... */ |
57 | void *starfire_hookup(int upaid) | 57 | void starfire_hookup(int upaid) |
58 | { | 58 | { |
59 | struct starfire_irqinfo *p; | 59 | struct starfire_irqinfo *p; |
60 | unsigned long treg_base, hwmid, i; | 60 | unsigned long treg_base, hwmid, i; |
@@ -81,8 +81,6 @@ void *starfire_hookup(int upaid) | |||
81 | p->upaid = upaid; | 81 | p->upaid = upaid; |
82 | p->next = sflist; | 82 | p->next = sflist; |
83 | sflist = p; | 83 | sflist = p; |
84 | |||
85 | return (void *) p; | ||
86 | } | 84 | } |
87 | 85 | ||
88 | unsigned int starfire_translate(unsigned long imap, | 86 | unsigned int starfire_translate(unsigned long imap, |
diff --git a/arch/sparc64/kernel/sys32.S b/arch/sparc64/kernel/sys32.S index bdf1f4d02e3f..c09ab4b9431d 100644 --- a/arch/sparc64/kernel/sys32.S +++ b/arch/sparc64/kernel/sys32.S | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) | 6 | * Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <asm/errno.h> | 9 | #include <asm/errno.h> |
11 | 10 | ||
12 | /* NOTE: call as jump breaks return stack, we have to avoid that */ | 11 | /* NOTE: call as jump breaks return stack, we have to avoid that */ |
diff --git a/arch/sparc64/kernel/sys_sparc.c b/arch/sparc64/kernel/sys_sparc.c index 7a869138c37f..51c056df528e 100644 --- a/arch/sparc64/kernel/sys_sparc.c +++ b/arch/sparc64/kernel/sys_sparc.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * platform. | 6 | * platform. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/errno.h> | 9 | #include <linux/errno.h> |
11 | #include <linux/types.h> | 10 | #include <linux/types.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
diff --git a/arch/sparc64/kernel/sys_sparc32.c b/arch/sparc64/kernel/sys_sparc32.c index 31030bf00f1a..c88ae23ce812 100644 --- a/arch/sparc64/kernel/sys_sparc32.c +++ b/arch/sparc64/kernel/sys_sparc32.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * environment. | 8 | * environment. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
14 | #include <linux/capability.h> | 13 | #include <linux/capability.h> |
diff --git a/arch/sparc64/kernel/sys_sunos32.c b/arch/sparc64/kernel/sys_sunos32.c index ae5b32f817f0..87ebdf858a3a 100644 --- a/arch/sparc64/kernel/sys_sunos32.c +++ b/arch/sparc64/kernel/sys_sunos32.c | |||
@@ -155,7 +155,7 @@ asmlinkage int sunos_brk(u32 baddr) | |||
155 | * simple, it hopefully works in most obvious cases.. Easy to | 155 | * simple, it hopefully works in most obvious cases.. Easy to |
156 | * fool it, but this should catch most mistakes. | 156 | * fool it, but this should catch most mistakes. |
157 | */ | 157 | */ |
158 | freepages = get_page_cache_size(); | 158 | freepages = global_page_state(NR_FILE_PAGES); |
159 | freepages >>= 1; | 159 | freepages >>= 1; |
160 | freepages += nr_free_pages(); | 160 | freepages += nr_free_pages(); |
161 | freepages += nr_swap_pages; | 161 | freepages += nr_swap_pages; |
diff --git a/arch/sparc64/kernel/systbls.S b/arch/sparc64/kernel/systbls.S index 1136fc465e37..419a63fca172 100644 --- a/arch/sparc64/kernel/systbls.S +++ b/arch/sparc64/kernel/systbls.S | |||
@@ -10,7 +10,6 @@ | |||
10 | * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) | 10 | * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | 13 | ||
15 | .text | 14 | .text |
16 | .align 4 | 15 | .align 4 |
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index 348b82035561..8dcbfbffacc9 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Copyright (C) 1996 Thomas K. Dyas (tdyas@eden.rutgers.edu) | 9 | * Copyright (C) 1996 Thomas K. Dyas (tdyas@eden.rutgers.edu) |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
14 | #include <linux/module.h> | 13 | #include <linux/module.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
@@ -38,11 +37,8 @@ | |||
38 | #include <asm/timer.h> | 37 | #include <asm/timer.h> |
39 | #include <asm/irq.h> | 38 | #include <asm/irq.h> |
40 | #include <asm/io.h> | 39 | #include <asm/io.h> |
41 | #include <asm/sbus.h> | 40 | #include <asm/prom.h> |
42 | #include <asm/fhc.h> | 41 | #include <asm/of_device.h> |
43 | #include <asm/pbm.h> | ||
44 | #include <asm/ebus.h> | ||
45 | #include <asm/isa.h> | ||
46 | #include <asm/starfire.h> | 42 | #include <asm/starfire.h> |
47 | #include <asm/smp.h> | 43 | #include <asm/smp.h> |
48 | #include <asm/sections.h> | 44 | #include <asm/sections.h> |
@@ -770,237 +766,106 @@ static int __init clock_model_matches(char *model) | |||
770 | return 1; | 766 | return 1; |
771 | } | 767 | } |
772 | 768 | ||
773 | static void __init __clock_assign_common(void __iomem *addr, char *model) | 769 | static int __devinit clock_probe(struct of_device *op, const struct of_device_id *match) |
774 | { | 770 | { |
775 | if (model[5] == '0' && model[6] == '2') { | 771 | struct device_node *dp = op->node; |
776 | mstk48t02_regs = addr; | 772 | char *model = of_get_property(dp, "model", NULL); |
777 | } else if(model[5] == '0' && model[6] == '8') { | 773 | unsigned long size, flags; |
778 | mstk48t08_regs = addr; | 774 | void __iomem *regs; |
779 | mstk48t02_regs = mstk48t08_regs + MOSTEK_48T08_48T02; | ||
780 | } else { | ||
781 | mstk48t59_regs = addr; | ||
782 | mstk48t02_regs = mstk48t59_regs + MOSTEK_48T59_48T02; | ||
783 | } | ||
784 | } | ||
785 | |||
786 | static void __init clock_assign_clk_reg(struct linux_prom_registers *clk_reg, | ||
787 | char *model) | ||
788 | { | ||
789 | unsigned long addr; | ||
790 | |||
791 | addr = ((unsigned long) clk_reg[0].phys_addr | | ||
792 | (((unsigned long) clk_reg[0].which_io) << 32UL)); | ||
793 | |||
794 | __clock_assign_common((void __iomem *) addr, model); | ||
795 | } | ||
796 | |||
797 | static int __init clock_probe_central(void) | ||
798 | { | ||
799 | struct linux_prom_registers clk_reg[2], *pr; | ||
800 | struct device_node *dp; | ||
801 | char *model; | ||
802 | 775 | ||
803 | if (!central_bus) | 776 | if (!model || !clock_model_matches(model)) |
804 | return 0; | 777 | return -ENODEV; |
805 | |||
806 | /* Get Central FHC's prom node. */ | ||
807 | dp = central_bus->child->prom_node; | ||
808 | |||
809 | /* Then get the first child device below it. */ | ||
810 | dp = dp->child; | ||
811 | |||
812 | while (dp) { | ||
813 | model = of_get_property(dp, "model", NULL); | ||
814 | if (!model || !clock_model_matches(model)) | ||
815 | goto next_sibling; | ||
816 | |||
817 | pr = of_get_property(dp, "reg", NULL); | ||
818 | memcpy(clk_reg, pr, sizeof(clk_reg)); | ||
819 | |||
820 | apply_fhc_ranges(central_bus->child, clk_reg, 1); | ||
821 | apply_central_ranges(central_bus, clk_reg, 1); | ||
822 | |||
823 | clock_assign_clk_reg(clk_reg, model); | ||
824 | return 1; | ||
825 | 778 | ||
826 | next_sibling: | 779 | /* On an Enterprise system there can be multiple mostek clocks. |
827 | dp = dp->sibling; | 780 | * We should only match the one that is on the central FHC bus. |
828 | } | 781 | */ |
782 | if (!strcmp(dp->parent->name, "fhc") && | ||
783 | strcmp(dp->parent->parent->name, "central") != 0) | ||
784 | return -ENODEV; | ||
829 | 785 | ||
830 | return 0; | 786 | size = (op->resource[0].end - op->resource[0].start) + 1; |
831 | } | 787 | regs = of_ioremap(&op->resource[0], 0, size, "clock"); |
788 | if (!regs) | ||
789 | return -ENOMEM; | ||
832 | 790 | ||
833 | #ifdef CONFIG_PCI | ||
834 | static void __init clock_isa_ebus_assign_regs(struct resource *res, char *model) | ||
835 | { | ||
836 | if (!strcmp(model, "ds1287") || | 791 | if (!strcmp(model, "ds1287") || |
837 | !strcmp(model, "m5819") || | 792 | !strcmp(model, "m5819") || |
838 | !strcmp(model, "m5819p") || | 793 | !strcmp(model, "m5819p") || |
839 | !strcmp(model, "m5823")) { | 794 | !strcmp(model, "m5823")) { |
840 | ds1287_regs = res->start; | 795 | ds1287_regs = (unsigned long) regs; |
796 | } else if (model[5] == '0' && model[6] == '2') { | ||
797 | mstk48t02_regs = regs; | ||
798 | } else if(model[5] == '0' && model[6] == '8') { | ||
799 | mstk48t08_regs = regs; | ||
800 | mstk48t02_regs = mstk48t08_regs + MOSTEK_48T08_48T02; | ||
841 | } else { | 801 | } else { |
842 | mstk48t59_regs = (void __iomem *) res->start; | 802 | mstk48t59_regs = regs; |
843 | mstk48t02_regs = mstk48t59_regs + MOSTEK_48T59_48T02; | 803 | mstk48t02_regs = mstk48t59_regs + MOSTEK_48T59_48T02; |
844 | } | 804 | } |
845 | } | ||
846 | |||
847 | static int __init clock_probe_one_ebus_dev(struct linux_ebus_device *edev) | ||
848 | { | ||
849 | struct device_node *dp = edev->prom_node; | ||
850 | char *model; | ||
851 | |||
852 | model = of_get_property(dp, "model", NULL); | ||
853 | if (!clock_model_matches(model)) | ||
854 | return 0; | ||
855 | 805 | ||
856 | clock_isa_ebus_assign_regs(&edev->resource[0], model); | 806 | printk(KERN_INFO "%s: Clock regs at %p\n", dp->full_name, regs); |
857 | 807 | ||
858 | return 1; | 808 | local_irq_save(flags); |
859 | } | ||
860 | |||
861 | static int __init clock_probe_ebus(void) | ||
862 | { | ||
863 | struct linux_ebus *ebus; | ||
864 | 809 | ||
865 | for_each_ebus(ebus) { | 810 | if (mstk48t02_regs != NULL) { |
866 | struct linux_ebus_device *edev; | 811 | /* Report a low battery voltage condition. */ |
812 | if (has_low_battery()) | ||
813 | prom_printf("NVRAM: Low battery voltage!\n"); | ||
867 | 814 | ||
868 | for_each_ebusdev(edev, ebus) { | 815 | /* Kick start the clock if it is completely stopped. */ |
869 | if (clock_probe_one_ebus_dev(edev)) | 816 | if (mostek_read(mstk48t02_regs + MOSTEK_SEC) & MSTK_STOP) |
870 | return 1; | 817 | kick_start_clock(); |
871 | } | ||
872 | } | 818 | } |
873 | 819 | ||
874 | return 0; | 820 | set_system_time(); |
875 | } | 821 | |
876 | 822 | local_irq_restore(flags); | |
877 | static int __init clock_probe_one_isa_dev(struct sparc_isa_device *idev) | ||
878 | { | ||
879 | struct device_node *dp = idev->prom_node; | ||
880 | char *model; | ||
881 | |||
882 | model = of_get_property(dp, "model", NULL); | ||
883 | if (!clock_model_matches(model)) | ||
884 | return 0; | ||
885 | |||
886 | clock_isa_ebus_assign_regs(&idev->resource, model); | ||
887 | |||
888 | return 1; | ||
889 | } | ||
890 | |||
891 | static int __init clock_probe_isa(void) | ||
892 | { | ||
893 | struct sparc_isa_bridge *isa_br; | ||
894 | |||
895 | for_each_isa(isa_br) { | ||
896 | struct sparc_isa_device *isa_dev; | ||
897 | |||
898 | for_each_isadev(isa_dev, isa_br) { | ||
899 | if (clock_probe_one_isa_dev(isa_dev)) | ||
900 | return 1; | ||
901 | } | ||
902 | } | ||
903 | 823 | ||
904 | return 0; | 824 | return 0; |
905 | } | 825 | } |
906 | #endif /* CONFIG_PCI */ | ||
907 | |||
908 | #ifdef CONFIG_SBUS | ||
909 | static int __init clock_probe_one_sbus_dev(struct sbus_bus *sbus, struct sbus_dev *sdev) | ||
910 | { | ||
911 | struct resource *res; | ||
912 | char model[64]; | ||
913 | void __iomem *addr; | ||
914 | |||
915 | prom_getstring(sdev->prom_node, "model", model, sizeof(model)); | ||
916 | if (!clock_model_matches(model)) | ||
917 | return 0; | ||
918 | |||
919 | res = &sdev->resource[0]; | ||
920 | addr = sbus_ioremap(res, 0, 0x800UL, "eeprom"); | ||
921 | 826 | ||
922 | __clock_assign_common(addr, model); | 827 | static struct of_device_id clock_match[] = { |
923 | 828 | { | |
924 | return 1; | 829 | .name = "eeprom", |
925 | } | 830 | }, |
926 | 831 | { | |
927 | static int __init clock_probe_sbus(void) | 832 | .name = "rtc", |
928 | { | 833 | }, |
929 | struct sbus_bus *sbus; | 834 | {}, |
930 | 835 | }; | |
931 | for_each_sbus(sbus) { | ||
932 | struct sbus_dev *sdev; | ||
933 | |||
934 | for_each_sbusdev(sdev, sbus) { | ||
935 | if (clock_probe_one_sbus_dev(sbus, sdev)) | ||
936 | return 1; | ||
937 | } | ||
938 | } | ||
939 | 836 | ||
940 | return 0; | 837 | static struct of_platform_driver clock_driver = { |
941 | } | 838 | .name = "clock", |
942 | #endif | 839 | .match_table = clock_match, |
840 | .probe = clock_probe, | ||
841 | }; | ||
943 | 842 | ||
944 | void __init clock_probe(void) | 843 | static int __init clock_init(void) |
945 | { | 844 | { |
946 | static int invoked; | ||
947 | unsigned long flags; | ||
948 | |||
949 | if (invoked) | ||
950 | return; | ||
951 | invoked = 1; | ||
952 | |||
953 | if (this_is_starfire) { | 845 | if (this_is_starfire) { |
954 | xtime.tv_sec = starfire_get_time(); | 846 | xtime.tv_sec = starfire_get_time(); |
955 | xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ); | 847 | xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ); |
956 | set_normalized_timespec(&wall_to_monotonic, | 848 | set_normalized_timespec(&wall_to_monotonic, |
957 | -xtime.tv_sec, -xtime.tv_nsec); | 849 | -xtime.tv_sec, -xtime.tv_nsec); |
958 | return; | 850 | return 0; |
959 | } | 851 | } |
960 | if (tlb_type == hypervisor) { | 852 | if (tlb_type == hypervisor) { |
961 | xtime.tv_sec = hypervisor_get_time(); | 853 | xtime.tv_sec = hypervisor_get_time(); |
962 | xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ); | 854 | xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ); |
963 | set_normalized_timespec(&wall_to_monotonic, | 855 | set_normalized_timespec(&wall_to_monotonic, |
964 | -xtime.tv_sec, -xtime.tv_nsec); | 856 | -xtime.tv_sec, -xtime.tv_nsec); |
965 | return; | 857 | return 0; |
966 | } | ||
967 | |||
968 | /* Check FHC Central then EBUSs then ISA bridges then SBUSs. | ||
969 | * That way we handle the presence of multiple properly. | ||
970 | * | ||
971 | * As a special case, machines with Central must provide the | ||
972 | * timer chip there. | ||
973 | */ | ||
974 | if (!clock_probe_central() && | ||
975 | #ifdef CONFIG_PCI | ||
976 | !clock_probe_ebus() && | ||
977 | !clock_probe_isa() && | ||
978 | #endif | ||
979 | #ifdef CONFIG_SBUS | ||
980 | !clock_probe_sbus() | ||
981 | #endif | ||
982 | ) { | ||
983 | printk(KERN_WARNING "No clock chip found.\n"); | ||
984 | return; | ||
985 | } | ||
986 | |||
987 | local_irq_save(flags); | ||
988 | |||
989 | if (mstk48t02_regs != NULL) { | ||
990 | /* Report a low battery voltage condition. */ | ||
991 | if (has_low_battery()) | ||
992 | prom_printf("NVRAM: Low battery voltage!\n"); | ||
993 | |||
994 | /* Kick start the clock if it is completely stopped. */ | ||
995 | if (mostek_read(mstk48t02_regs + MOSTEK_SEC) & MSTK_STOP) | ||
996 | kick_start_clock(); | ||
997 | } | 858 | } |
998 | 859 | ||
999 | set_system_time(); | 860 | return of_register_driver(&clock_driver, &of_bus_type); |
1000 | |||
1001 | local_irq_restore(flags); | ||
1002 | } | 861 | } |
1003 | 862 | ||
863 | /* Must be after subsys_initcall() so that busses are probed. Must | ||
864 | * be before device_initcall() because things like the RTC driver | ||
865 | * need to see the clock registers. | ||
866 | */ | ||
867 | fs_initcall(clock_init); | ||
868 | |||
1004 | /* This is gets the master TICK_INT timer going. */ | 869 | /* This is gets the master TICK_INT timer going. */ |
1005 | static unsigned long sparc64_init_timers(void) | 870 | static unsigned long sparc64_init_timers(void) |
1006 | { | 871 | { |
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index 1ff34b019f3f..68420e2dad0e 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * I like traps on v9, :)))) | 9 | * I like traps on v9, :)))) |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/config.h> | ||
13 | #include <linux/module.h> | 12 | #include <linux/module.h> |
14 | #include <linux/sched.h> /* for jiffies */ | 13 | #include <linux/sched.h> /* for jiffies */ |
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
diff --git a/arch/sparc64/kernel/tsb.S b/arch/sparc64/kernel/tsb.S index a0c8ba58920b..eedf94fa5664 100644 --- a/arch/sparc64/kernel/tsb.S +++ b/arch/sparc64/kernel/tsb.S | |||
@@ -3,7 +3,6 @@ | |||
3 | * Copyright (C) 2006 David S. Miller <davem@davemloft.net> | 3 | * Copyright (C) 2006 David S. Miller <davem@davemloft.net> |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | 6 | ||
8 | #include <asm/tsb.h> | 7 | #include <asm/tsb.h> |
9 | #include <asm/hypervisor.h> | 8 | #include <asm/hypervisor.h> |
diff --git a/arch/sparc64/kernel/ttable.S b/arch/sparc64/kernel/ttable.S index ee45ca2d7a04..d7d2a8bdc66e 100644 --- a/arch/sparc64/kernel/ttable.S +++ b/arch/sparc64/kernel/ttable.S | |||
@@ -3,7 +3,6 @@ | |||
3 | * Copyright (C) 1996, 2001, 2006 David S. Miller (davem@davemloft.net) | 3 | * Copyright (C) 1996, 2001, 2006 David S. Miller (davem@davemloft.net) |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | 6 | ||
8 | .globl sparc64_ttable_tl0, sparc64_ttable_tl1 | 7 | .globl sparc64_ttable_tl0, sparc64_ttable_tl1 |
9 | .globl tl0_icpe, tl1_icpe | 8 | .globl tl0_icpe, tl1_icpe |
diff --git a/arch/sparc64/kernel/unaligned.c b/arch/sparc64/kernel/unaligned.c index bb2d68577855..a9b765271b85 100644 --- a/arch/sparc64/kernel/unaligned.c +++ b/arch/sparc64/kernel/unaligned.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/smp.h> | 20 | #include <linux/smp.h> |
21 | #include <linux/smp_lock.h> | 21 | #include <linux/smp_lock.h> |
22 | #include <linux/bitops.h> | 22 | #include <linux/bitops.h> |
23 | #include <linux/kallsyms.h> | ||
23 | #include <asm/fpumacro.h> | 24 | #include <asm/fpumacro.h> |
24 | 25 | ||
25 | /* #define DEBUG_MNA */ | 26 | /* #define DEBUG_MNA */ |
@@ -291,7 +292,8 @@ asmlinkage void kernel_unaligned_trap(struct pt_regs *regs, unsigned int insn) | |||
291 | if (count < 5) { | 292 | if (count < 5) { |
292 | last_time = jiffies; | 293 | last_time = jiffies; |
293 | count++; | 294 | count++; |
294 | printk("Kernel unaligned access at TPC[%lx]\n", regs->tpc); | 295 | printk("Kernel unaligned access at TPC[%lx] ", regs->tpc); |
296 | print_symbol("%s\n", regs->tpc); | ||
295 | } | 297 | } |
296 | 298 | ||
297 | if (!ok_for_kernel(insn) || dir == both) { | 299 | if (!ok_for_kernel(insn) || dir == both) { |
diff --git a/arch/sparc64/lib/atomic.S b/arch/sparc64/lib/atomic.S index faf87c31598b..9633750167d0 100644 --- a/arch/sparc64/lib/atomic.S +++ b/arch/sparc64/lib/atomic.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1999 David S. Miller (davem@redhat.com) | 4 | * Copyright (C) 1999 David S. Miller (davem@redhat.com) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/asi.h> | 7 | #include <asm/asi.h> |
9 | 8 | ||
10 | .text | 9 | .text |
diff --git a/arch/sparc64/lib/bitops.S b/arch/sparc64/lib/bitops.S index 31afbfe6c1e8..892431a82131 100644 --- a/arch/sparc64/lib/bitops.S +++ b/arch/sparc64/lib/bitops.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 2000 David S. Miller (davem@redhat.com) | 4 | * Copyright (C) 2000 David S. Miller (davem@redhat.com) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/asi.h> | 7 | #include <asm/asi.h> |
9 | 8 | ||
10 | .text | 9 | .text |
diff --git a/arch/sparc64/lib/mcount.S b/arch/sparc64/lib/mcount.S index 2ef2e268bdcf..9e4534b485c7 100644 --- a/arch/sparc64/lib/mcount.S +++ b/arch/sparc64/lib/mcount.S | |||
@@ -5,7 +5,6 @@ | |||
5 | * This can also be tweaked for kernel stack overflow detection. | 5 | * This can also be tweaked for kernel stack overflow detection. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/linkage.h> | 8 | #include <linux/linkage.h> |
10 | 9 | ||
11 | #include <asm/ptrace.h> | 10 | #include <asm/ptrace.h> |
diff --git a/arch/sparc64/mm/hugetlbpage.c b/arch/sparc64/mm/hugetlbpage.c index fbbbebbad8a4..53b9b1f528e5 100644 --- a/arch/sparc64/mm/hugetlbpage.c +++ b/arch/sparc64/mm/hugetlbpage.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 2002, 2003, 2006 David S. Miller (davem@davemloft.net) | 4 | * Copyright (C) 2002, 2003, 2006 David S. Miller (davem@davemloft.net) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
10 | #include <linux/fs.h> | 9 | #include <linux/fs.h> |
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index cb75a27adb51..dcba4e6ab570 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 1997-1999 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 5 | * Copyright (C) 1997-1999 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/module.h> | 8 | #include <linux/module.h> |
10 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
11 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S index f8479fad4047..d70b60a3bbcc 100644 --- a/arch/sparc64/mm/ultra.S +++ b/arch/sparc64/mm/ultra.S | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1997, 2000 David S. Miller (davem@redhat.com) | 4 | * Copyright (C) 1997, 2000 David S. Miller (davem@redhat.com) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <asm/asi.h> | 7 | #include <asm/asi.h> |
9 | #include <asm/pgtable.h> | 8 | #include <asm/pgtable.h> |
10 | #include <asm/page.h> | 9 | #include <asm/page.h> |
diff --git a/arch/sparc64/prom/misc.c b/arch/sparc64/prom/misc.c index 577bde8b6647..0b4213720d43 100644 --- a/arch/sparc64/prom/misc.c +++ b/arch/sparc64/prom/misc.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 6 | * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/types.h> | 9 | #include <linux/types.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
diff --git a/arch/sparc64/solaris/misc.c b/arch/sparc64/solaris/misc.c index 719c90905a1e..8135ec322c9c 100644 --- a/arch/sparc64/solaris/misc.c +++ b/arch/sparc64/solaris/misc.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 4 | * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz) |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #include <linux/config.h> | ||
8 | #include <linux/module.h> | 7 | #include <linux/module.h> |
9 | #include <linux/types.h> | 8 | #include <linux/types.h> |
10 | #include <linux/smp_lock.h> | 9 | #include <linux/smp_lock.h> |
diff --git a/arch/sparc64/solaris/socksys.c b/arch/sparc64/solaris/socksys.c index fc6669e8dde1..bc3df95bc057 100644 --- a/arch/sparc64/solaris/socksys.c +++ b/arch/sparc64/solaris/socksys.c | |||
@@ -26,7 +26,6 @@ | |||
26 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
27 | #include <linux/syscalls.h> | 27 | #include <linux/syscalls.h> |
28 | #include <linux/in.h> | 28 | #include <linux/in.h> |
29 | #include <linux/devfs_fs_kernel.h> | ||
30 | 29 | ||
31 | #include <net/sock.h> | 30 | #include <net/sock.h> |
32 | 31 | ||
@@ -190,8 +189,6 @@ init_socksys(void) | |||
190 | return ret; | 189 | return ret; |
191 | } | 190 | } |
192 | 191 | ||
193 | devfs_mk_cdev(MKDEV(30, 0), S_IFCHR|S_IRUSR|S_IWUSR, "socksys"); | ||
194 | |||
195 | file = fcheck(ret); | 192 | file = fcheck(ret); |
196 | /* N.B. Is this valid? Suppose the f_ops are in a module ... */ | 193 | /* N.B. Is this valid? Suppose the f_ops are in a module ... */ |
197 | socksys_file_ops = *file->f_op; | 194 | socksys_file_ops = *file->f_op; |
@@ -207,5 +204,4 @@ cleanup_socksys(void) | |||
207 | { | 204 | { |
208 | if (unregister_chrdev(30, "socksys")) | 205 | if (unregister_chrdev(30, "socksys")) |
209 | printk ("Couldn't unregister socksys character device\n"); | 206 | printk ("Couldn't unregister socksys character device\n"); |
210 | devfs_remove ("socksys"); | ||
211 | } | 207 | } |
diff --git a/arch/um/Makefile-x86_64 b/arch/um/Makefile-x86_64 index dfd88b652fbe..dffd1184c956 100644 --- a/arch/um/Makefile-x86_64 +++ b/arch/um/Makefile-x86_64 | |||
@@ -6,9 +6,11 @@ START := 0x60000000 | |||
6 | 6 | ||
7 | #We #undef __x86_64__ for kernelspace, not for userspace where | 7 | #We #undef __x86_64__ for kernelspace, not for userspace where |
8 | #it's needed for headers to work! | 8 | #it's needed for headers to work! |
9 | CFLAGS += -U__$(SUBARCH)__ -fno-builtin | 9 | CFLAGS += -U__$(SUBARCH)__ -fno-builtin -m64 |
10 | USER_CFLAGS += -fno-builtin | 10 | USER_CFLAGS += -fno-builtin -m64 |
11 | CHECKFLAGS += -m64 | 11 | CHECKFLAGS += -m64 |
12 | AFLAGS += -m64 | ||
13 | LDFLAGS += -m elf_x86_64 | ||
12 | 14 | ||
13 | ELF_ARCH := i386:x86-64 | 15 | ELF_ARCH := i386:x86-64 |
14 | ELF_FORMAT := elf64-x86-64 | 16 | ELF_FORMAT := elf64-x86-64 |
@@ -16,3 +18,4 @@ ELF_FORMAT := elf64-x86-64 | |||
16 | # Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example. | 18 | # Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example. |
17 | 19 | ||
18 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64 | 20 | LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64 |
21 | LINK-y += -m64 | ||
diff --git a/arch/um/drivers/harddog_kern.c b/arch/um/drivers/harddog_kern.c index d18a974735e6..64ff22aa077b 100644 --- a/arch/um/drivers/harddog_kern.c +++ b/arch/um/drivers/harddog_kern.c | |||
@@ -35,7 +35,6 @@ | |||
35 | */ | 35 | */ |
36 | 36 | ||
37 | #include <linux/module.h> | 37 | #include <linux/module.h> |
38 | #include <linux/config.h> | ||
39 | #include <linux/types.h> | 38 | #include <linux/types.h> |
40 | #include <linux/kernel.h> | 39 | #include <linux/kernel.h> |
41 | #include <linux/fs.h> | 40 | #include <linux/fs.h> |
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c index 6c2d4ccaf20f..ebebaabb78ad 100644 --- a/arch/um/drivers/line.c +++ b/arch/um/drivers/line.c | |||
@@ -8,7 +8,6 @@ | |||
8 | #include "linux/list.h" | 8 | #include "linux/list.h" |
9 | #include "linux/kd.h" | 9 | #include "linux/kd.h" |
10 | #include "linux/interrupt.h" | 10 | #include "linux/interrupt.h" |
11 | #include "linux/devfs_fs_kernel.h" | ||
12 | #include "asm/uaccess.h" | 11 | #include "asm/uaccess.h" |
13 | #include "chan_kern.h" | 12 | #include "chan_kern.h" |
14 | #include "irq_user.h" | 13 | #include "irq_user.h" |
@@ -374,7 +373,7 @@ static irqreturn_t line_write_interrupt(int irq, void *data, | |||
374 | int err; | 373 | int err; |
375 | 374 | ||
376 | /* Interrupts are enabled here because we registered the interrupt with | 375 | /* Interrupts are enabled here because we registered the interrupt with |
377 | * SA_INTERRUPT (see line_setup_irq).*/ | 376 | * IRQF_DISABLED (see line_setup_irq).*/ |
378 | 377 | ||
379 | spin_lock_irq(&line->lock); | 378 | spin_lock_irq(&line->lock); |
380 | err = flush_buffer(line); | 379 | err = flush_buffer(line); |
@@ -407,7 +406,7 @@ static irqreturn_t line_write_interrupt(int irq, void *data, | |||
407 | int line_setup_irq(int fd, int input, int output, struct line *line, void *data) | 406 | int line_setup_irq(int fd, int input, int output, struct line *line, void *data) |
408 | { | 407 | { |
409 | struct line_driver *driver = line->driver; | 408 | struct line_driver *driver = line->driver; |
410 | int err = 0, flags = SA_INTERRUPT | SA_SHIRQ | SA_SAMPLE_RANDOM; | 409 | int err = 0, flags = IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM; |
411 | 410 | ||
412 | if (input) | 411 | if (input) |
413 | err = um_request_irq(driver->read_irq, fd, IRQ_READ, | 412 | err = um_request_irq(driver->read_irq, fd, IRQ_READ, |
@@ -655,7 +654,6 @@ struct tty_driver *line_register_devfs(struct lines *set, | |||
655 | 654 | ||
656 | driver->driver_name = line_driver->name; | 655 | driver->driver_name = line_driver->name; |
657 | driver->name = line_driver->device_name; | 656 | driver->name = line_driver->device_name; |
658 | driver->devfs_name = line_driver->devfs_name; | ||
659 | driver->major = line_driver->major; | 657 | driver->major = line_driver->major; |
660 | driver->minor_start = line_driver->minor_start; | 658 | driver->minor_start = line_driver->minor_start; |
661 | driver->type = line_driver->type; | 659 | driver->type = line_driver->type; |
@@ -769,7 +767,7 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_struct *tty) | |||
769 | spin_unlock(&winch_handler_lock); | 767 | spin_unlock(&winch_handler_lock); |
770 | 768 | ||
771 | if(um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt, | 769 | if(um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt, |
772 | SA_INTERRUPT | SA_SHIRQ | SA_SAMPLE_RANDOM, | 770 | IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM, |
773 | "winch", winch) < 0) | 771 | "winch", winch) < 0) |
774 | printk("register_winch_irq - failed to register IRQ\n"); | 772 | printk("register_winch_irq - failed to register IRQ\n"); |
775 | } | 773 | } |
diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c index 79149314ed04..b414522f7686 100644 --- a/arch/um/drivers/mconsole_kern.c +++ b/arch/um/drivers/mconsole_kern.c | |||
@@ -777,7 +777,7 @@ static int mconsole_init(void) | |||
777 | register_reboot_notifier(&reboot_notifier); | 777 | register_reboot_notifier(&reboot_notifier); |
778 | 778 | ||
779 | err = um_request_irq(MCONSOLE_IRQ, sock, IRQ_READ, mconsole_interrupt, | 779 | err = um_request_irq(MCONSOLE_IRQ, sock, IRQ_READ, mconsole_interrupt, |
780 | SA_INTERRUPT | SA_SHIRQ | SA_SAMPLE_RANDOM, | 780 | IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM, |
781 | "mconsole", (void *)sock); | 781 | "mconsole", (void *)sock); |
782 | if (err){ | 782 | if (err){ |
783 | printk("Failed to get IRQ for management console\n"); | 783 | printk("Failed to get IRQ for management console\n"); |
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c index 8c7279bb353b..501f95675d89 100644 --- a/arch/um/drivers/net_kern.c +++ b/arch/um/drivers/net_kern.c | |||
@@ -128,7 +128,7 @@ static int uml_net_open(struct net_device *dev) | |||
128 | } | 128 | } |
129 | 129 | ||
130 | err = um_request_irq(dev->irq, lp->fd, IRQ_READ, uml_net_interrupt, | 130 | err = um_request_irq(dev->irq, lp->fd, IRQ_READ, uml_net_interrupt, |
131 | SA_INTERRUPT | SA_SHIRQ, dev->name, dev); | 131 | IRQF_DISABLED | IRQF_SHARED, dev->name, dev); |
132 | if(err != 0){ | 132 | if(err != 0){ |
133 | printk(KERN_ERR "uml_net_open: failed to get irq(%d)\n", err); | 133 | printk(KERN_ERR "uml_net_open: failed to get irq(%d)\n", err); |
134 | err = -ENETUNREACH; | 134 | err = -ENETUNREACH; |
diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c index 189839e4f1d4..73755f37a8a8 100644 --- a/arch/um/drivers/port_kern.c +++ b/arch/um/drivers/port_kern.c | |||
@@ -105,7 +105,7 @@ static int port_accept(struct port_list *port) | |||
105 | .port = port }); | 105 | .port = port }); |
106 | 106 | ||
107 | if(um_request_irq(TELNETD_IRQ, socket[0], IRQ_READ, pipe_interrupt, | 107 | if(um_request_irq(TELNETD_IRQ, socket[0], IRQ_READ, pipe_interrupt, |
108 | SA_INTERRUPT | SA_SHIRQ | SA_SAMPLE_RANDOM, | 108 | IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM, |
109 | "telnetd", conn)){ | 109 | "telnetd", conn)){ |
110 | printk(KERN_ERR "port_accept : failed to get IRQ for " | 110 | printk(KERN_ERR "port_accept : failed to get IRQ for " |
111 | "telnetd\n"); | 111 | "telnetd\n"); |
@@ -186,7 +186,7 @@ void *port_data(int port_num) | |||
186 | goto out_free; | 186 | goto out_free; |
187 | } | 187 | } |
188 | if(um_request_irq(ACCEPT_IRQ, fd, IRQ_READ, port_interrupt, | 188 | if(um_request_irq(ACCEPT_IRQ, fd, IRQ_READ, port_interrupt, |
189 | SA_INTERRUPT | SA_SHIRQ | SA_SAMPLE_RANDOM, "port", | 189 | IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM, "port", |
190 | port)){ | 190 | port)){ |
191 | printk(KERN_ERR "Failed to get IRQ for port %d\n", port_num); | 191 | printk(KERN_ERR "Failed to get IRQ for port %d\n", port_num); |
192 | goto out_close; | 192 | goto out_close; |
diff --git a/arch/um/drivers/ssl.c b/arch/um/drivers/ssl.c index a4d6415bc8c4..6dafd6fbfdae 100644 --- a/arch/um/drivers/ssl.c +++ b/arch/um/drivers/ssl.c | |||
@@ -54,7 +54,6 @@ static int ssl_remove(int n); | |||
54 | static struct line_driver driver = { | 54 | static struct line_driver driver = { |
55 | .name = "UML serial line", | 55 | .name = "UML serial line", |
56 | .device_name = "ttyS", | 56 | .device_name = "ttyS", |
57 | .devfs_name = "tts/", | ||
58 | .major = TTY_MAJOR, | 57 | .major = TTY_MAJOR, |
59 | .minor_start = 64, | 58 | .minor_start = 64, |
60 | .type = TTY_DRIVER_TYPE_SERIAL, | 59 | .type = TTY_DRIVER_TYPE_SERIAL, |
diff --git a/arch/um/drivers/stderr_console.c b/arch/um/drivers/stderr_console.c index 429ae8e6c7e5..6d2cf32a9e8f 100644 --- a/arch/um/drivers/stderr_console.c +++ b/arch/um/drivers/stderr_console.c | |||
@@ -8,10 +8,7 @@ | |||
8 | 8 | ||
9 | /* | 9 | /* |
10 | * Don't register by default -- as this registeres very early in the | 10 | * Don't register by default -- as this registeres very early in the |
11 | * boot process it becomes the default console. And as this isn't a | 11 | * boot process it becomes the default console. |
12 | * real tty driver init isn't able to open /dev/console then. | ||
13 | * | ||
14 | * In most cases this isn't what you want ... | ||
15 | */ | 12 | */ |
16 | static int use_stderr_console = 0; | 13 | static int use_stderr_console = 0; |
17 | 14 | ||
@@ -43,3 +40,20 @@ static int stderr_setup(char *str) | |||
43 | return 1; | 40 | return 1; |
44 | } | 41 | } |
45 | __setup("stderr=", stderr_setup); | 42 | __setup("stderr=", stderr_setup); |
43 | |||
44 | /* The previous behavior of not unregistering led to /dev/console being | ||
45 | * impossible to open. My FC5 filesystem started having init die, and the | ||
46 | * system panicing because of this. Unregistering causes the real | ||
47 | * console to become the default console, and /dev/console can then be | ||
48 | * opened. Making this an initcall makes this happen late enough that | ||
49 | * there is no added value in dumping everything to stderr, and the | ||
50 | * normal console is good enough to show you all available output. | ||
51 | */ | ||
52 | static int __init unregister_stderr(void) | ||
53 | { | ||
54 | unregister_console(&stderr_console); | ||
55 | |||
56 | return 0; | ||
57 | } | ||
58 | |||
59 | __initcall(unregister_stderr); | ||
diff --git a/arch/um/drivers/stdio_console.c b/arch/um/drivers/stdio_console.c index 61db8b2fc83f..856f568c2687 100644 --- a/arch/um/drivers/stdio_console.c +++ b/arch/um/drivers/stdio_console.c | |||
@@ -60,7 +60,6 @@ static int con_remove(int n); | |||
60 | static struct line_driver driver = { | 60 | static struct line_driver driver = { |
61 | .name = "UML console", | 61 | .name = "UML console", |
62 | .device_name = "tty", | 62 | .device_name = "tty", |
63 | .devfs_name = "vc/", | ||
64 | .major = TTY_MAJOR, | 63 | .major = TTY_MAJOR, |
65 | .minor_start = 0, | 64 | .minor_start = 0, |
66 | .type = TTY_DRIVER_TYPE_CONSOLE, | 65 | .type = TTY_DRIVER_TYPE_CONSOLE, |
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index 290cec6d69e2..602d7286b9e0 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include "linux/blkdev.h" | 25 | #include "linux/blkdev.h" |
26 | #include "linux/hdreg.h" | 26 | #include "linux/hdreg.h" |
27 | #include "linux/init.h" | 27 | #include "linux/init.h" |
28 | #include "linux/devfs_fs_kernel.h" | ||
29 | #include "linux/cdrom.h" | 28 | #include "linux/cdrom.h" |
30 | #include "linux/proc_fs.h" | 29 | #include "linux/proc_fs.h" |
31 | #include "linux/ctype.h" | 30 | #include "linux/ctype.h" |
@@ -628,7 +627,6 @@ static int ubd_new_disk(int major, u64 size, int unit, | |||
628 | 627 | ||
629 | { | 628 | { |
630 | struct gendisk *disk; | 629 | struct gendisk *disk; |
631 | char from[sizeof("ubd/nnnnn\0")], to[sizeof("discnnnnn/disc\0")]; | ||
632 | int err; | 630 | int err; |
633 | 631 | ||
634 | disk = alloc_disk(1 << UBD_SHIFT); | 632 | disk = alloc_disk(1 << UBD_SHIFT); |
@@ -639,20 +637,10 @@ static int ubd_new_disk(int major, u64 size, int unit, | |||
639 | disk->first_minor = unit << UBD_SHIFT; | 637 | disk->first_minor = unit << UBD_SHIFT; |
640 | disk->fops = &ubd_blops; | 638 | disk->fops = &ubd_blops; |
641 | set_capacity(disk, size / 512); | 639 | set_capacity(disk, size / 512); |
642 | if(major == MAJOR_NR){ | 640 | if(major == MAJOR_NR) |
643 | sprintf(disk->disk_name, "ubd%c", 'a' + unit); | 641 | sprintf(disk->disk_name, "ubd%c", 'a' + unit); |
644 | sprintf(disk->devfs_name, "ubd/disc%d", unit); | 642 | else |
645 | sprintf(from, "ubd/%d", unit); | ||
646 | sprintf(to, "disc%d/disc", unit); | ||
647 | err = devfs_mk_symlink(from, to); | ||
648 | if(err) | ||
649 | printk("ubd_new_disk failed to make link from %s to " | ||
650 | "%s, error = %d\n", from, to, err); | ||
651 | } | ||
652 | else { | ||
653 | sprintf(disk->disk_name, "ubd_fake%d", unit); | 643 | sprintf(disk->disk_name, "ubd_fake%d", unit); |
654 | sprintf(disk->devfs_name, "ubd_fake/disc%d", unit); | ||
655 | } | ||
656 | 644 | ||
657 | /* sysfs register (not for ide fake devices) */ | 645 | /* sysfs register (not for ide fake devices) */ |
658 | if (major == MAJOR_NR) { | 646 | if (major == MAJOR_NR) { |
@@ -841,7 +829,6 @@ int ubd_init(void) | |||
841 | { | 829 | { |
842 | int i; | 830 | int i; |
843 | 831 | ||
844 | devfs_mk_dir("ubd"); | ||
845 | if (register_blkdev(MAJOR_NR, "ubd")) | 832 | if (register_blkdev(MAJOR_NR, "ubd")) |
846 | return -1; | 833 | return -1; |
847 | 834 | ||
@@ -855,7 +842,6 @@ int ubd_init(void) | |||
855 | char name[sizeof("ubd_nnn\0")]; | 842 | char name[sizeof("ubd_nnn\0")]; |
856 | 843 | ||
857 | snprintf(name, sizeof(name), "ubd_%d", fake_major); | 844 | snprintf(name, sizeof(name), "ubd_%d", fake_major); |
858 | devfs_mk_dir(name); | ||
859 | if (register_blkdev(fake_major, "ubd")) | 845 | if (register_blkdev(fake_major, "ubd")) |
860 | return -1; | 846 | return -1; |
861 | } | 847 | } |
@@ -888,7 +874,7 @@ int ubd_driver_init(void){ | |||
888 | return(0); | 874 | return(0); |
889 | } | 875 | } |
890 | err = um_request_irq(UBD_IRQ, thread_fd, IRQ_READ, ubd_intr, | 876 | err = um_request_irq(UBD_IRQ, thread_fd, IRQ_READ, ubd_intr, |
891 | SA_INTERRUPT, "ubd", ubd_dev); | 877 | IRQF_DISABLED, "ubd", ubd_dev); |
892 | if(err != 0) | 878 | if(err != 0) |
893 | printk(KERN_ERR "um_request_irq failed - errno = %d\n", -err); | 879 | printk(KERN_ERR "um_request_irq failed - errno = %d\n", -err); |
894 | return 0; | 880 | return 0; |
diff --git a/arch/um/drivers/xterm_kern.c b/arch/um/drivers/xterm_kern.c index d269a80f4b0c..6036ec85895a 100644 --- a/arch/um/drivers/xterm_kern.c +++ b/arch/um/drivers/xterm_kern.c | |||
@@ -54,7 +54,7 @@ int xterm_fd(int socket, int *pid_out) | |||
54 | init_completion(&data->ready); | 54 | init_completion(&data->ready); |
55 | 55 | ||
56 | err = um_request_irq(XTERM_IRQ, socket, IRQ_READ, xterm_interrupt, | 56 | err = um_request_irq(XTERM_IRQ, socket, IRQ_READ, xterm_interrupt, |
57 | SA_INTERRUPT | SA_SHIRQ | SA_SAMPLE_RANDOM, | 57 | IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM, |
58 | "xterm", data); | 58 | "xterm", data); |
59 | if (err){ | 59 | if (err){ |
60 | printk(KERN_ERR "xterm_fd : failed to get IRQ for xterm, " | 60 | printk(KERN_ERR "xterm_fd : failed to get IRQ for xterm, " |
diff --git a/arch/um/include/line.h b/arch/um/include/line.h index 6ac0f8252e21..27bf2f6fbc05 100644 --- a/arch/um/include/line.h +++ b/arch/um/include/line.h | |||
@@ -17,7 +17,6 @@ | |||
17 | struct line_driver { | 17 | struct line_driver { |
18 | char *name; | 18 | char *name; |
19 | char *device_name; | 19 | char *device_name; |
20 | char *devfs_name; | ||
21 | short major; | 20 | short major; |
22 | short minor_start; | 21 | short minor_start; |
23 | short type; | 22 | short type; |
diff --git a/arch/um/include/sysdep-x86_64/kernel-offsets.h b/arch/um/include/sysdep-x86_64/kernel-offsets.h index 939cc475757a..91d129fb3930 100644 --- a/arch/um/include/sysdep-x86_64/kernel-offsets.h +++ b/arch/um/include/sysdep-x86_64/kernel-offsets.h | |||
@@ -1,4 +1,3 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/stddef.h> | 1 | #include <linux/stddef.h> |
3 | #include <linux/sched.h> | 2 | #include <linux/sched.h> |
4 | #include <linux/time.h> | 3 | #include <linux/time.h> |
diff --git a/arch/um/kernel/irq.c b/arch/um/kernel/irq.c index 2ffda012385e..bfd0bdc8cd40 100644 --- a/arch/um/kernel/irq.c +++ b/arch/um/kernel/irq.c | |||
@@ -63,7 +63,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
63 | for_each_online_cpu(j) | 63 | for_each_online_cpu(j) |
64 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 64 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); |
65 | #endif | 65 | #endif |
66 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 66 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
67 | seq_printf(p, " %s", action->name); | 67 | seq_printf(p, " %s", action->name); |
68 | 68 | ||
69 | for (action=action->next; action; action = action->next) | 69 | for (action=action->next; action; action = action->next) |
@@ -451,13 +451,13 @@ void __init init_IRQ(void) | |||
451 | irq_desc[TIMER_IRQ].status = IRQ_DISABLED; | 451 | irq_desc[TIMER_IRQ].status = IRQ_DISABLED; |
452 | irq_desc[TIMER_IRQ].action = NULL; | 452 | irq_desc[TIMER_IRQ].action = NULL; |
453 | irq_desc[TIMER_IRQ].depth = 1; | 453 | irq_desc[TIMER_IRQ].depth = 1; |
454 | irq_desc[TIMER_IRQ].handler = &SIGVTALRM_irq_type; | 454 | irq_desc[TIMER_IRQ].chip = &SIGVTALRM_irq_type; |
455 | enable_irq(TIMER_IRQ); | 455 | enable_irq(TIMER_IRQ); |
456 | for (i = 1; i < NR_IRQS; i++) { | 456 | for (i = 1; i < NR_IRQS; i++) { |
457 | irq_desc[i].status = IRQ_DISABLED; | 457 | irq_desc[i].status = IRQ_DISABLED; |
458 | irq_desc[i].action = NULL; | 458 | irq_desc[i].action = NULL; |
459 | irq_desc[i].depth = 1; | 459 | irq_desc[i].depth = 1; |
460 | irq_desc[i].handler = &normal_irq_type; | 460 | irq_desc[i].chip = &normal_irq_type; |
461 | enable_irq(i); | 461 | enable_irq(i); |
462 | } | 462 | } |
463 | } | 463 | } |
@@ -474,7 +474,7 @@ int init_aio_irq(int irq, char *name, irqreturn_t (*handler)(int, void *, | |||
474 | } | 474 | } |
475 | 475 | ||
476 | err = um_request_irq(irq, fds[0], IRQ_READ, handler, | 476 | err = um_request_irq(irq, fds[0], IRQ_READ, handler, |
477 | SA_INTERRUPT | SA_SAMPLE_RANDOM, name, | 477 | IRQF_DISABLED | IRQF_SAMPLE_RANDOM, name, |
478 | (void *) (long) fds[0]); | 478 | (void *) (long) fds[0]); |
479 | if (err) { | 479 | if (err) { |
480 | printk("init_aio_irq - : um_request_irq failed, err = %d\n", | 480 | printk("init_aio_irq - : um_request_irq failed, err = %d\n", |
diff --git a/arch/um/kernel/sigio_kern.c b/arch/um/kernel/sigio_kern.c index 1c1300fb1e95..51b677083948 100644 --- a/arch/um/kernel/sigio_kern.c +++ b/arch/um/kernel/sigio_kern.c | |||
@@ -31,7 +31,7 @@ int write_sigio_irq(int fd) | |||
31 | int err; | 31 | int err; |
32 | 32 | ||
33 | err = um_request_irq(SIGIO_WRITE_IRQ, fd, IRQ_READ, sigio_interrupt, | 33 | err = um_request_irq(SIGIO_WRITE_IRQ, fd, IRQ_READ, sigio_interrupt, |
34 | SA_INTERRUPT | SA_SAMPLE_RANDOM, "write sigio", | 34 | IRQF_DISABLED | IRQF_SAMPLE_RANDOM, "write sigio", |
35 | NULL); | 35 | NULL); |
36 | if(err){ | 36 | if(err){ |
37 | printk("write_sigio_irq : um_request_irq failed, err = %d\n", | 37 | printk("write_sigio_irq : um_request_irq failed, err = %d\n", |
diff --git a/arch/um/kernel/skas/mmu.c b/arch/um/kernel/skas/mmu.c index c5c9885a8297..624ca238d1fd 100644 --- a/arch/um/kernel/skas/mmu.c +++ b/arch/um/kernel/skas/mmu.c | |||
@@ -152,7 +152,7 @@ void destroy_context_skas(struct mm_struct *mm) | |||
152 | free_page(mmu->id.stack); | 152 | free_page(mmu->id.stack); |
153 | pte_lock_deinit(virt_to_page(mmu->last_page_table)); | 153 | pte_lock_deinit(virt_to_page(mmu->last_page_table)); |
154 | pte_free_kernel((pte_t *) mmu->last_page_table); | 154 | pte_free_kernel((pte_t *) mmu->last_page_table); |
155 | dec_page_state(nr_page_table_pages); | 155 | dec_zone_page_state(virt_to_page(mmu->last_page_table), NR_PAGETABLE); |
156 | #ifdef CONFIG_3_LEVEL_PGTABLES | 156 | #ifdef CONFIG_3_LEVEL_PGTABLES |
157 | pmd_free((pmd_t *) mmu->last_pmd); | 157 | pmd_free((pmd_t *) mmu->last_pmd); |
158 | #endif | 158 | #endif |
diff --git a/arch/um/kernel/skas/uaccess.c b/arch/um/kernel/skas/uaccess.c index 5992c3257167..8912cec0fe43 100644 --- a/arch/um/kernel/skas/uaccess.c +++ b/arch/um/kernel/skas/uaccess.c | |||
@@ -8,6 +8,7 @@ | |||
8 | #include "linux/kernel.h" | 8 | #include "linux/kernel.h" |
9 | #include "linux/string.h" | 9 | #include "linux/string.h" |
10 | #include "linux/fs.h" | 10 | #include "linux/fs.h" |
11 | #include "linux/hardirq.h" | ||
11 | #include "linux/highmem.h" | 12 | #include "linux/highmem.h" |
12 | #include "asm/page.h" | 13 | #include "asm/page.h" |
13 | #include "asm/pgtable.h" | 14 | #include "asm/pgtable.h" |
@@ -38,7 +39,7 @@ static unsigned long maybe_map(unsigned long virt, int is_write) | |||
38 | return((unsigned long) phys); | 39 | return((unsigned long) phys); |
39 | } | 40 | } |
40 | 41 | ||
41 | static int do_op(unsigned long addr, int len, int is_write, | 42 | static int do_op_one_page(unsigned long addr, int len, int is_write, |
42 | int (*op)(unsigned long addr, int len, void *arg), void *arg) | 43 | int (*op)(unsigned long addr, int len, void *arg), void *arg) |
43 | { | 44 | { |
44 | struct page *page; | 45 | struct page *page; |
@@ -49,9 +50,11 @@ static int do_op(unsigned long addr, int len, int is_write, | |||
49 | return(-1); | 50 | return(-1); |
50 | 51 | ||
51 | page = phys_to_page(addr); | 52 | page = phys_to_page(addr); |
52 | addr = (unsigned long) kmap(page) + (addr & ~PAGE_MASK); | 53 | addr = (unsigned long) kmap_atomic(page, KM_UML_USERCOPY) + (addr & ~PAGE_MASK); |
54 | |||
53 | n = (*op)(addr, len, arg); | 55 | n = (*op)(addr, len, arg); |
54 | kunmap(page); | 56 | |
57 | kunmap_atomic(page, KM_UML_USERCOPY); | ||
55 | 58 | ||
56 | return(n); | 59 | return(n); |
57 | } | 60 | } |
@@ -77,7 +80,7 @@ static void do_buffer_op(void *jmpbuf, void *arg_ptr) | |||
77 | remain = len; | 80 | remain = len; |
78 | 81 | ||
79 | current->thread.fault_catcher = jmpbuf; | 82 | current->thread.fault_catcher = jmpbuf; |
80 | n = do_op(addr, size, is_write, op, arg); | 83 | n = do_op_one_page(addr, size, is_write, op, arg); |
81 | if(n != 0){ | 84 | if(n != 0){ |
82 | *res = (n < 0 ? remain : 0); | 85 | *res = (n < 0 ? remain : 0); |
83 | goto out; | 86 | goto out; |
@@ -91,7 +94,7 @@ static void do_buffer_op(void *jmpbuf, void *arg_ptr) | |||
91 | } | 94 | } |
92 | 95 | ||
93 | while(addr < ((addr + remain) & PAGE_MASK)){ | 96 | while(addr < ((addr + remain) & PAGE_MASK)){ |
94 | n = do_op(addr, PAGE_SIZE, is_write, op, arg); | 97 | n = do_op_one_page(addr, PAGE_SIZE, is_write, op, arg); |
95 | if(n != 0){ | 98 | if(n != 0){ |
96 | *res = (n < 0 ? remain : 0); | 99 | *res = (n < 0 ? remain : 0); |
97 | goto out; | 100 | goto out; |
@@ -105,7 +108,7 @@ static void do_buffer_op(void *jmpbuf, void *arg_ptr) | |||
105 | goto out; | 108 | goto out; |
106 | } | 109 | } |
107 | 110 | ||
108 | n = do_op(addr, remain, is_write, op, arg); | 111 | n = do_op_one_page(addr, remain, is_write, op, arg); |
109 | if(n != 0) | 112 | if(n != 0) |
110 | *res = (n < 0 ? remain : 0); | 113 | *res = (n < 0 ? remain : 0); |
111 | else *res = 0; | 114 | else *res = 0; |
diff --git a/arch/um/kernel/time.c b/arch/um/kernel/time.c deleted file mode 100644 index 8fa2ae7f3026..000000000000 --- a/arch/um/kernel/time.c +++ /dev/null | |||
@@ -1,172 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #include <stdio.h> | ||
7 | #include <stdlib.h> | ||
8 | #include <unistd.h> | ||
9 | #include <time.h> | ||
10 | #include <sys/time.h> | ||
11 | #include <signal.h> | ||
12 | #include <errno.h> | ||
13 | #include "user_util.h" | ||
14 | #include "kern_util.h" | ||
15 | #include "user.h" | ||
16 | #include "process.h" | ||
17 | #include "time_user.h" | ||
18 | #include "kern_constants.h" | ||
19 | #include "os.h" | ||
20 | |||
21 | /* XXX This really needs to be declared and initialized in a kernel file since | ||
22 | * it's in <linux/time.h> | ||
23 | */ | ||
24 | extern struct timespec wall_to_monotonic; | ||
25 | |||
26 | extern struct timeval xtime; | ||
27 | |||
28 | struct timeval local_offset = { 0, 0 }; | ||
29 | |||
30 | void timer(void) | ||
31 | { | ||
32 | gettimeofday(&xtime, NULL); | ||
33 | timeradd(&xtime, &local_offset, &xtime); | ||
34 | } | ||
35 | |||
36 | static void set_interval(int timer_type) | ||
37 | { | ||
38 | int usec = 1000000/hz(); | ||
39 | struct itimerval interval = ((struct itimerval) { { 0, usec }, | ||
40 | { 0, usec } }); | ||
41 | |||
42 | if(setitimer(timer_type, &interval, NULL) == -1) | ||
43 | panic("setitimer failed - errno = %d\n", errno); | ||
44 | } | ||
45 | |||
46 | void enable_timer(void) | ||
47 | { | ||
48 | set_interval(ITIMER_VIRTUAL); | ||
49 | } | ||
50 | |||
51 | void prepare_timer(void * ptr) | ||
52 | { | ||
53 | int usec = 1000000/hz(); | ||
54 | *(struct itimerval *)ptr = ((struct itimerval) { { 0, usec }, | ||
55 | { 0, usec }}); | ||
56 | } | ||
57 | |||
58 | void disable_timer(void) | ||
59 | { | ||
60 | struct itimerval disable = ((struct itimerval) { { 0, 0 }, { 0, 0 }}); | ||
61 | if((setitimer(ITIMER_VIRTUAL, &disable, NULL) < 0) || | ||
62 | (setitimer(ITIMER_REAL, &disable, NULL) < 0)) | ||
63 | printk("disnable_timer - setitimer failed, errno = %d\n", | ||
64 | errno); | ||
65 | /* If there are signals already queued, after unblocking ignore them */ | ||
66 | set_handler(SIGALRM, SIG_IGN, 0, -1); | ||
67 | set_handler(SIGVTALRM, SIG_IGN, 0, -1); | ||
68 | } | ||
69 | |||
70 | void switch_timers(int to_real) | ||
71 | { | ||
72 | struct itimerval disable = ((struct itimerval) { { 0, 0 }, { 0, 0 }}); | ||
73 | struct itimerval enable = ((struct itimerval) { { 0, 1000000/hz() }, | ||
74 | { 0, 1000000/hz() }}); | ||
75 | int old, new; | ||
76 | |||
77 | if(to_real){ | ||
78 | old = ITIMER_VIRTUAL; | ||
79 | new = ITIMER_REAL; | ||
80 | } | ||
81 | else { | ||
82 | old = ITIMER_REAL; | ||
83 | new = ITIMER_VIRTUAL; | ||
84 | } | ||
85 | |||
86 | if((setitimer(old, &disable, NULL) < 0) || | ||
87 | (setitimer(new, &enable, NULL))) | ||
88 | printk("switch_timers - setitimer failed, errno = %d\n", | ||
89 | errno); | ||
90 | } | ||
91 | |||
92 | void uml_idle_timer(void) | ||
93 | { | ||
94 | if(signal(SIGVTALRM, SIG_IGN) == SIG_ERR) | ||
95 | panic("Couldn't unset SIGVTALRM handler"); | ||
96 | |||
97 | set_handler(SIGALRM, (__sighandler_t) alarm_handler, | ||
98 | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH, SIGVTALRM, -1); | ||
99 | set_interval(ITIMER_REAL); | ||
100 | } | ||
101 | |||
102 | extern void ktime_get_ts(struct timespec *ts); | ||
103 | #define do_posix_clock_monotonic_gettime(ts) ktime_get_ts(ts) | ||
104 | |||
105 | void time_init(void) | ||
106 | { | ||
107 | struct timespec now; | ||
108 | |||
109 | if(signal(SIGVTALRM, boot_timer_handler) == SIG_ERR) | ||
110 | panic("Couldn't set SIGVTALRM handler"); | ||
111 | set_interval(ITIMER_VIRTUAL); | ||
112 | |||
113 | do_posix_clock_monotonic_gettime(&now); | ||
114 | wall_to_monotonic.tv_sec = -now.tv_sec; | ||
115 | wall_to_monotonic.tv_nsec = -now.tv_nsec; | ||
116 | } | ||
117 | |||
118 | /* Defined in linux/ktimer.h, which can't be included here */ | ||
119 | #define clock_was_set() do { } while (0) | ||
120 | |||
121 | void do_gettimeofday(struct timeval *tv) | ||
122 | { | ||
123 | unsigned long flags; | ||
124 | |||
125 | flags = time_lock(); | ||
126 | gettimeofday(tv, NULL); | ||
127 | timeradd(tv, &local_offset, tv); | ||
128 | time_unlock(flags); | ||
129 | clock_was_set(); | ||
130 | } | ||
131 | |||
132 | int do_settimeofday(struct timespec *tv) | ||
133 | { | ||
134 | struct timeval now; | ||
135 | unsigned long flags; | ||
136 | struct timeval tv_in; | ||
137 | |||
138 | if ((unsigned long) tv->tv_nsec >= UM_NSEC_PER_SEC) | ||
139 | return -EINVAL; | ||
140 | |||
141 | tv_in.tv_sec = tv->tv_sec; | ||
142 | tv_in.tv_usec = tv->tv_nsec / 1000; | ||
143 | |||
144 | flags = time_lock(); | ||
145 | gettimeofday(&now, NULL); | ||
146 | timersub(&tv_in, &now, &local_offset); | ||
147 | time_unlock(flags); | ||
148 | |||
149 | return(0); | ||
150 | } | ||
151 | |||
152 | void idle_sleep(int secs) | ||
153 | { | ||
154 | struct timespec ts; | ||
155 | |||
156 | ts.tv_sec = secs; | ||
157 | ts.tv_nsec = 0; | ||
158 | nanosleep(&ts, NULL); | ||
159 | } | ||
160 | |||
161 | /* XXX This partly duplicates init_irq_signals */ | ||
162 | |||
163 | void user_time_init(void) | ||
164 | { | ||
165 | set_handler(SIGVTALRM, (__sighandler_t) alarm_handler, | ||
166 | SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH, | ||
167 | SIGALRM, SIGUSR2, -1); | ||
168 | set_handler(SIGALRM, (__sighandler_t) alarm_handler, | ||
169 | SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGWINCH, | ||
170 | SIGVTALRM, SIGUSR2, -1); | ||
171 | set_interval(ITIMER_VIRTUAL); | ||
172 | } | ||
diff --git a/arch/um/kernel/time_kern.c b/arch/um/kernel/time_kern.c index 87cdbc560d36..d7e044b5e5ee 100644 --- a/arch/um/kernel/time_kern.c +++ b/arch/um/kernel/time_kern.c | |||
@@ -96,11 +96,15 @@ void time_init_kern(void) | |||
96 | 96 | ||
97 | void do_boot_timer_handler(struct sigcontext * sc) | 97 | void do_boot_timer_handler(struct sigcontext * sc) |
98 | { | 98 | { |
99 | unsigned long flags; | ||
99 | struct pt_regs regs; | 100 | struct pt_regs regs; |
100 | 101 | ||
101 | CHOOSE_MODE((void) (UPT_SC(®s.regs) = sc), | 102 | CHOOSE_MODE((void) (UPT_SC(®s.regs) = sc), |
102 | (void) (regs.regs.skas.is_user = 0)); | 103 | (void) (regs.regs.skas.is_user = 0)); |
104 | |||
105 | write_seqlock_irqsave(&xtime_lock, flags); | ||
103 | do_timer(®s); | 106 | do_timer(®s); |
107 | write_sequnlock_irqrestore(&xtime_lock, flags); | ||
104 | } | 108 | } |
105 | 109 | ||
106 | static DEFINE_SPINLOCK(timer_spinlock); | 110 | static DEFINE_SPINLOCK(timer_spinlock); |
@@ -125,25 +129,17 @@ irqreturn_t um_timer(int irq, void *dev, struct pt_regs *regs) | |||
125 | unsigned long long nsecs; | 129 | unsigned long long nsecs; |
126 | unsigned long flags; | 130 | unsigned long flags; |
127 | 131 | ||
132 | write_seqlock_irqsave(&xtime_lock, flags); | ||
133 | |||
128 | do_timer(regs); | 134 | do_timer(regs); |
129 | 135 | ||
130 | write_seqlock_irqsave(&xtime_lock, flags); | ||
131 | nsecs = get_time() + local_offset; | 136 | nsecs = get_time() + local_offset; |
132 | xtime.tv_sec = nsecs / NSEC_PER_SEC; | 137 | xtime.tv_sec = nsecs / NSEC_PER_SEC; |
133 | xtime.tv_nsec = nsecs - xtime.tv_sec * NSEC_PER_SEC; | 138 | xtime.tv_nsec = nsecs - xtime.tv_sec * NSEC_PER_SEC; |
134 | write_sequnlock_irqrestore(&xtime_lock, flags); | ||
135 | |||
136 | return(IRQ_HANDLED); | ||
137 | } | ||
138 | 139 | ||
139 | long um_time(int __user *tloc) | 140 | write_sequnlock_irqrestore(&xtime_lock, flags); |
140 | { | ||
141 | long ret = get_time() / NSEC_PER_SEC; | ||
142 | |||
143 | if((tloc != NULL) && put_user(ret, tloc)) | ||
144 | return -EFAULT; | ||
145 | 141 | ||
146 | return ret; | 142 | return IRQ_HANDLED; |
147 | } | 143 | } |
148 | 144 | ||
149 | void do_gettimeofday(struct timeval *tv) | 145 | void do_gettimeofday(struct timeval *tv) |
@@ -174,18 +170,6 @@ static inline void set_time(unsigned long long nsecs) | |||
174 | clock_was_set(); | 170 | clock_was_set(); |
175 | } | 171 | } |
176 | 172 | ||
177 | long um_stime(int __user *tptr) | ||
178 | { | ||
179 | int value; | ||
180 | |||
181 | if (get_user(value, tptr)) | ||
182 | return -EFAULT; | ||
183 | |||
184 | set_time((unsigned long long) value * NSEC_PER_SEC); | ||
185 | |||
186 | return 0; | ||
187 | } | ||
188 | |||
189 | int do_settimeofday(struct timespec *tv) | 173 | int do_settimeofday(struct timespec *tv) |
190 | { | 174 | { |
191 | set_time((unsigned long long) tv->tv_sec * NSEC_PER_SEC + tv->tv_nsec); | 175 | set_time((unsigned long long) tv->tv_sec * NSEC_PER_SEC + tv->tv_nsec); |
@@ -211,7 +195,7 @@ int __init timer_init(void) | |||
211 | int err; | 195 | int err; |
212 | 196 | ||
213 | user_time_init(); | 197 | user_time_init(); |
214 | err = request_irq(TIMER_IRQ, um_timer, SA_INTERRUPT, "timer", NULL); | 198 | err = request_irq(TIMER_IRQ, um_timer, IRQF_DISABLED, "timer", NULL); |
215 | if(err != 0) | 199 | if(err != 0) |
216 | printk(KERN_ERR "timer_init : request_irq failed - " | 200 | printk(KERN_ERR "timer_init : request_irq failed - " |
217 | "errno = %d\n", -err); | 201 | "errno = %d\n", -err); |
diff --git a/arch/um/kernel/vmlinux.lds.S b/arch/um/kernel/vmlinux.lds.S index 1660a769674b..72acdce205e0 100644 --- a/arch/um/kernel/vmlinux.lds.S +++ b/arch/um/kernel/vmlinux.lds.S | |||
@@ -1,4 +1,5 @@ | |||
1 | #include <linux/config.h> | 1 | /* in case the preprocessor is a 32bit one */ |
2 | #undef i386 | ||
2 | #ifdef CONFIG_LD_SCRIPT_STATIC | 3 | #ifdef CONFIG_LD_SCRIPT_STATIC |
3 | #include "uml.lds.S" | 4 | #include "uml.lds.S" |
4 | #else | 5 | #else |
diff --git a/arch/um/os-Linux/mem.c b/arch/um/os-Linux/mem.c index c6432e729241..560c8063c77c 100644 --- a/arch/um/os-Linux/mem.c +++ b/arch/um/os-Linux/mem.c | |||
@@ -55,7 +55,7 @@ static void __init find_tempdir(void) | |||
55 | */ | 55 | */ |
56 | static int next(int fd, char *buf, int size, char c) | 56 | static int next(int fd, char *buf, int size, char c) |
57 | { | 57 | { |
58 | int n; | 58 | int n, len; |
59 | char *ptr; | 59 | char *ptr; |
60 | 60 | ||
61 | while((ptr = strchr(buf, c)) == NULL){ | 61 | while((ptr = strchr(buf, c)) == NULL){ |
@@ -69,7 +69,17 @@ static int next(int fd, char *buf, int size, char c) | |||
69 | } | 69 | } |
70 | 70 | ||
71 | ptr++; | 71 | ptr++; |
72 | memmove(buf, ptr, strlen(ptr) + 1); | 72 | len = strlen(ptr); |
73 | memmove(buf, ptr, len + 1); | ||
74 | |||
75 | /* Refill the buffer so that if there's a partial string that we care | ||
76 | * about, it will be completed, and we can recognize it. | ||
77 | */ | ||
78 | n = read(fd, &buf[len], size - len - 1); | ||
79 | if(n < 0) | ||
80 | return -errno; | ||
81 | |||
82 | buf[len + n] = '\0'; | ||
73 | return 1; | 83 | return 1; |
74 | } | 84 | } |
75 | 85 | ||
@@ -200,8 +210,11 @@ int create_tmp_file(unsigned long long len) | |||
200 | exit(1); | 210 | exit(1); |
201 | } | 211 | } |
202 | 212 | ||
203 | if (lseek64(fd, len, SEEK_SET) < 0) { | 213 | /* Seek to len - 1 because writing a character there will |
204 | perror("os_seek_file"); | 214 | * increase the file size by one byte, to the desired length. |
215 | */ | ||
216 | if (lseek64(fd, len - 1, SEEK_SET) < 0) { | ||
217 | perror("os_seek_file"); | ||
205 | exit(1); | 218 | exit(1); |
206 | } | 219 | } |
207 | 220 | ||
diff --git a/arch/um/os-Linux/umid.c b/arch/um/os-Linux/umid.c index 362db059fe30..48092b95c8ab 100644 --- a/arch/um/os-Linux/umid.c +++ b/arch/um/os-Linux/umid.c | |||
@@ -67,32 +67,53 @@ err: | |||
67 | return err; | 67 | return err; |
68 | } | 68 | } |
69 | 69 | ||
70 | static int actually_do_remove(char *dir) | 70 | /* |
71 | * Unlinks the files contained in @dir and then removes @dir. | ||
72 | * Doesn't handle directory trees, so it's not like rm -rf, but almost such. We | ||
73 | * ignore ENOENT errors for anything (they happen, strangely enough - possibly due | ||
74 | * to races between multiple dying UML threads). | ||
75 | */ | ||
76 | static int remove_files_and_dir(char *dir) | ||
71 | { | 77 | { |
72 | DIR *directory; | 78 | DIR *directory; |
73 | struct dirent *ent; | 79 | struct dirent *ent; |
74 | int len; | 80 | int len; |
75 | char file[256]; | 81 | char file[256]; |
82 | int ret; | ||
76 | 83 | ||
77 | directory = opendir(dir); | 84 | directory = opendir(dir); |
78 | if(directory == NULL) | 85 | if (directory == NULL) { |
79 | return -errno; | 86 | if (errno != ENOENT) |
87 | return -errno; | ||
88 | else | ||
89 | return 0; | ||
90 | } | ||
80 | 91 | ||
81 | while((ent = readdir(directory)) != NULL){ | 92 | while ((ent = readdir(directory)) != NULL) { |
82 | if(!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) | 93 | if (!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) |
83 | continue; | 94 | continue; |
84 | len = strlen(dir) + sizeof("/") + strlen(ent->d_name) + 1; | 95 | len = strlen(dir) + sizeof("/") + strlen(ent->d_name) + 1; |
85 | if(len > sizeof(file)) | 96 | if (len > sizeof(file)) { |
86 | return -E2BIG; | 97 | ret = -E2BIG; |
98 | goto out; | ||
99 | } | ||
87 | 100 | ||
88 | sprintf(file, "%s/%s", dir, ent->d_name); | 101 | sprintf(file, "%s/%s", dir, ent->d_name); |
89 | if(unlink(file) < 0) | 102 | if (unlink(file) < 0 && errno != ENOENT) { |
90 | return -errno; | 103 | ret = -errno; |
104 | goto out; | ||
105 | } | ||
91 | } | 106 | } |
92 | if(rmdir(dir) < 0) | ||
93 | return -errno; | ||
94 | 107 | ||
95 | return 0; | 108 | if (rmdir(dir) < 0 && errno != ENOENT) { |
109 | ret = -errno; | ||
110 | goto out; | ||
111 | } | ||
112 | |||
113 | ret = 0; | ||
114 | out: | ||
115 | closedir(directory); | ||
116 | return ret; | ||
96 | } | 117 | } |
97 | 118 | ||
98 | /* This says that there isn't already a user of the specified directory even if | 119 | /* This says that there isn't already a user of the specified directory even if |
@@ -103,9 +124,10 @@ static int actually_do_remove(char *dir) | |||
103 | * something other than UML sticking stuff in the directory | 124 | * something other than UML sticking stuff in the directory |
104 | * this boot racing with a shutdown of the other UML | 125 | * this boot racing with a shutdown of the other UML |
105 | * In any of these cases, the directory isn't useful for anything else. | 126 | * In any of these cases, the directory isn't useful for anything else. |
127 | * | ||
128 | * Boolean return: 1 if in use, 0 otherwise. | ||
106 | */ | 129 | */ |
107 | 130 | static inline int is_umdir_used(char *dir) | |
108 | static int not_dead_yet(char *dir) | ||
109 | { | 131 | { |
110 | char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")]; | 132 | char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")]; |
111 | char pid[sizeof("nnnnn\0")], *end; | 133 | char pid[sizeof("nnnnn\0")], *end; |
@@ -113,7 +135,7 @@ static int not_dead_yet(char *dir) | |||
113 | 135 | ||
114 | n = snprintf(file, sizeof(file), "%s/pid", dir); | 136 | n = snprintf(file, sizeof(file), "%s/pid", dir); |
115 | if(n >= sizeof(file)){ | 137 | if(n >= sizeof(file)){ |
116 | printk("not_dead_yet - pid filename too long\n"); | 138 | printk("is_umdir_used - pid filename too long\n"); |
117 | err = -E2BIG; | 139 | err = -E2BIG; |
118 | goto out; | 140 | goto out; |
119 | } | 141 | } |
@@ -123,7 +145,7 @@ static int not_dead_yet(char *dir) | |||
123 | if(fd < 0) { | 145 | if(fd < 0) { |
124 | fd = -errno; | 146 | fd = -errno; |
125 | if(fd != -ENOENT){ | 147 | if(fd != -ENOENT){ |
126 | printk("not_dead_yet : couldn't open pid file '%s', " | 148 | printk("is_umdir_used : couldn't open pid file '%s', " |
127 | "err = %d\n", file, -fd); | 149 | "err = %d\n", file, -fd); |
128 | } | 150 | } |
129 | goto out; | 151 | goto out; |
@@ -132,18 +154,18 @@ static int not_dead_yet(char *dir) | |||
132 | err = 0; | 154 | err = 0; |
133 | n = read(fd, pid, sizeof(pid)); | 155 | n = read(fd, pid, sizeof(pid)); |
134 | if(n < 0){ | 156 | if(n < 0){ |
135 | printk("not_dead_yet : couldn't read pid file '%s', " | 157 | printk("is_umdir_used : couldn't read pid file '%s', " |
136 | "err = %d\n", file, errno); | 158 | "err = %d\n", file, errno); |
137 | goto out_close; | 159 | goto out_close; |
138 | } else if(n == 0){ | 160 | } else if(n == 0){ |
139 | printk("not_dead_yet : couldn't read pid file '%s', " | 161 | printk("is_umdir_used : couldn't read pid file '%s', " |
140 | "0-byte read\n", file); | 162 | "0-byte read\n", file); |
141 | goto out_close; | 163 | goto out_close; |
142 | } | 164 | } |
143 | 165 | ||
144 | p = strtoul(pid, &end, 0); | 166 | p = strtoul(pid, &end, 0); |
145 | if(end == pid){ | 167 | if(end == pid){ |
146 | printk("not_dead_yet : couldn't parse pid file '%s', " | 168 | printk("is_umdir_used : couldn't parse pid file '%s', " |
147 | "errno = %d\n", file, errno); | 169 | "errno = %d\n", file, errno); |
148 | goto out_close; | 170 | goto out_close; |
149 | } | 171 | } |
@@ -153,19 +175,32 @@ static int not_dead_yet(char *dir) | |||
153 | return 1; | 175 | return 1; |
154 | } | 176 | } |
155 | 177 | ||
156 | err = actually_do_remove(dir); | ||
157 | if(err) | ||
158 | printk("not_dead_yet - actually_do_remove failed with " | ||
159 | "err = %d\n", err); | ||
160 | |||
161 | return err; | ||
162 | |||
163 | out_close: | 178 | out_close: |
164 | close(fd); | 179 | close(fd); |
165 | out: | 180 | out: |
166 | return 0; | 181 | return 0; |
167 | } | 182 | } |
168 | 183 | ||
184 | /* | ||
185 | * Try to remove the directory @dir unless it's in use. | ||
186 | * Precondition: @dir exists. | ||
187 | * Returns 0 for success, < 0 for failure in removal or if the directory is in | ||
188 | * use. | ||
189 | */ | ||
190 | static int umdir_take_if_dead(char *dir) | ||
191 | { | ||
192 | int ret; | ||
193 | if (is_umdir_used(dir)) | ||
194 | return -EEXIST; | ||
195 | |||
196 | ret = remove_files_and_dir(dir); | ||
197 | if (ret) { | ||
198 | printk("is_umdir_used - remove_files_and_dir failed with " | ||
199 | "err = %d\n", ret); | ||
200 | } | ||
201 | return ret; | ||
202 | } | ||
203 | |||
169 | static void __init create_pid_file(void) | 204 | static void __init create_pid_file(void) |
170 | { | 205 | { |
171 | char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")]; | 206 | char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")]; |
@@ -244,11 +279,7 @@ int __init make_umid(void) | |||
244 | if(err != -EEXIST) | 279 | if(err != -EEXIST) |
245 | goto err; | 280 | goto err; |
246 | 281 | ||
247 | /* 1 -> this umid is already in use | 282 | if (umdir_take_if_dead(tmp) < 0) |
248 | * < 0 -> we couldn't remove the umid directory | ||
249 | * In either case, we can't use this umid, so return -EEXIST. | ||
250 | */ | ||
251 | if(not_dead_yet(tmp) != 0) | ||
252 | goto err; | 283 | goto err; |
253 | 284 | ||
254 | err = mkdir(tmp, 0777); | 285 | err = mkdir(tmp, 0777); |
@@ -344,9 +375,9 @@ static void remove_umid_dir(void) | |||
344 | char dir[strlen(uml_dir) + UMID_LEN + 1], err; | 375 | char dir[strlen(uml_dir) + UMID_LEN + 1], err; |
345 | 376 | ||
346 | sprintf(dir, "%s%s", uml_dir, umid); | 377 | sprintf(dir, "%s%s", uml_dir, umid); |
347 | err = actually_do_remove(dir); | 378 | err = remove_files_and_dir(dir); |
348 | if(err) | 379 | if(err) |
349 | printf("remove_umid_dir - actually_do_remove failed with " | 380 | printf("remove_umid_dir - remove_files_and_dir failed with " |
350 | "err = %d\n", err); | 381 | "err = %d\n", err); |
351 | } | 382 | } |
352 | 383 | ||
diff --git a/arch/um/scripts/Makefile.rules b/arch/um/scripts/Makefile.rules index 1347dc6d5218..813077fb1e5b 100644 --- a/arch/um/scripts/Makefile.rules +++ b/arch/um/scripts/Makefile.rules | |||
@@ -8,7 +8,7 @@ USER_OBJS += $(filter %_user.o,$(obj-y) $(obj-m) $(USER_SINGLE_OBJS)) | |||
8 | USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file)) | 8 | USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file)) |
9 | 9 | ||
10 | $(USER_OBJS:.o=.%): \ | 10 | $(USER_OBJS:.o=.%): \ |
11 | c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) $(CFLAGS_$(*F).o) | 11 | c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) $(CFLAGS_$(basetarget).o) |
12 | $(USER_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \ | 12 | $(USER_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \ |
13 | -Dunix -D__unix__ -D__$(SUBARCH)__ | 13 | -Dunix -D__unix__ -D__$(SUBARCH)__ |
14 | 14 | ||
@@ -17,7 +17,7 @@ $(USER_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \ | |||
17 | UNPROFILE_OBJS := $(foreach file,$(UNPROFILE_OBJS),$(obj)/$(file)) | 17 | UNPROFILE_OBJS := $(foreach file,$(UNPROFILE_OBJS),$(obj)/$(file)) |
18 | 18 | ||
19 | $(UNPROFILE_OBJS:.o=.%): \ | 19 | $(UNPROFILE_OBJS:.o=.%): \ |
20 | c_flags = -Wp,-MD,$(depfile) $(call unprofile,$(USER_CFLAGS)) $(CFLAGS_$(*F).o) | 20 | c_flags = -Wp,-MD,$(depfile) $(call unprofile,$(USER_CFLAGS)) $(CFLAGS_$(basetarget).o) |
21 | $(UNPROFILE_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \ | 21 | $(UNPROFILE_OBJS) : CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ \ |
22 | -Dunix -D__unix__ -D__$(SUBARCH)__ | 22 | -Dunix -D__unix__ -D__$(SUBARCH)__ |
23 | 23 | ||
diff --git a/arch/um/sys-i386/checksum.S b/arch/um/sys-i386/checksum.S index d98b2fff3d08..62c7e564f22e 100644 --- a/arch/um/sys-i386/checksum.S +++ b/arch/um/sys-i386/checksum.S | |||
@@ -25,7 +25,6 @@ | |||
25 | * 2 of the License, or (at your option) any later version. | 25 | * 2 of the License, or (at your option) any later version. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include <linux/config.h> | ||
29 | #include <asm/errno.h> | 28 | #include <asm/errno.h> |
30 | 29 | ||
31 | /* | 30 | /* |
diff --git a/arch/um/sys-i386/ptrace.c b/arch/um/sys-i386/ptrace.c index 6028bc7cc01b..28bf01150323 100644 --- a/arch/um/sys-i386/ptrace.c +++ b/arch/um/sys-i386/ptrace.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * Licensed under the GPL | 3 | * Licensed under the GPL |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <linux/compiler.h> | 6 | #include <linux/compiler.h> |
8 | #include "linux/sched.h" | 7 | #include "linux/sched.h" |
9 | #include "linux/mm.h" | 8 | #include "linux/mm.h" |
diff --git a/arch/um/sys-i386/sys_call_table.S b/arch/um/sys-i386/sys_call_table.S index 1ff61474b25c..2497554b7b95 100644 --- a/arch/um/sys-i386/sys_call_table.S +++ b/arch/um/sys-i386/sys_call_table.S | |||
@@ -7,8 +7,6 @@ | |||
7 | #define sys_vm86old sys_ni_syscall | 7 | #define sys_vm86old sys_ni_syscall |
8 | #define sys_vm86 sys_ni_syscall | 8 | #define sys_vm86 sys_ni_syscall |
9 | 9 | ||
10 | #define sys_stime um_stime | ||
11 | #define sys_time um_time | ||
12 | #define old_mmap old_mmap_i386 | 10 | #define old_mmap old_mmap_i386 |
13 | 11 | ||
14 | #include "../../i386/kernel/syscall_table.S" | 12 | #include "../../i386/kernel/syscall_table.S" |
diff --git a/arch/um/sys-ppc/misc.S b/arch/um/sys-ppc/misc.S index f0c971db47e4..1364b7da578c 100644 --- a/arch/um/sys-ppc/misc.S +++ b/arch/um/sys-ppc/misc.S | |||
@@ -15,7 +15,6 @@ | |||
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <asm/processor.h> | 18 | #include <asm/processor.h> |
20 | #include "ppc_asm.h" | 19 | #include "ppc_asm.h" |
21 | 20 | ||
diff --git a/arch/um/sys-x86_64/syscall_table.c b/arch/um/sys-x86_64/syscall_table.c index 34b2e842864f..9e9ad72c2ba4 100644 --- a/arch/um/sys-x86_64/syscall_table.c +++ b/arch/um/sys-x86_64/syscall_table.c | |||
@@ -4,7 +4,6 @@ | |||
4 | #include <linux/linkage.h> | 4 | #include <linux/linkage.h> |
5 | #include <linux/sys.h> | 5 | #include <linux/sys.h> |
6 | #include <linux/cache.h> | 6 | #include <linux/cache.h> |
7 | #include <linux/config.h> | ||
8 | 7 | ||
9 | #define __NO_STUBS | 8 | #define __NO_STUBS |
10 | 9 | ||
@@ -20,12 +19,6 @@ | |||
20 | /*#define sys_set_thread_area sys_ni_syscall | 19 | /*#define sys_set_thread_area sys_ni_syscall |
21 | #define sys_get_thread_area sys_ni_syscall*/ | 20 | #define sys_get_thread_area sys_ni_syscall*/ |
22 | 21 | ||
23 | /* For __NR_time. The x86-64 name hopefully will change from sys_time64 to | ||
24 | * sys_time (since the current situation is bogus). I've sent a patch to cleanup | ||
25 | * this. Remove below the obsoleted line. */ | ||
26 | #define sys_time64 um_time | ||
27 | #define sys_time um_time | ||
28 | |||
29 | /* On UML we call it this way ("old" means it's not mmap2) */ | 22 | /* On UML we call it this way ("old" means it's not mmap2) */ |
30 | #define sys_mmap old_mmap | 23 | #define sys_mmap old_mmap |
31 | /* On x86-64 sys_uname is actually sys_newuname plus a compatibility trick. | 24 | /* On x86-64 sys_uname is actually sys_newuname plus a compatibility trick. |
diff --git a/arch/v850/kernel/anna.c b/arch/v850/kernel/anna.c index d0502e142437..40892d3e3c24 100644 --- a/arch/v850/kernel/anna.c +++ b/arch/v850/kernel/anna.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/v850/kernel/as85ep1.c b/arch/v850/kernel/as85ep1.c index d78c5e4ea9bc..5352f8a5aa07 100644 --- a/arch/v850/kernel/as85ep1.c +++ b/arch/v850/kernel/as85ep1.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/v850/kernel/fpga85e2c.c b/arch/v850/kernel/fpga85e2c.c index d8094519ad85..cb04a6954ccb 100644 --- a/arch/v850/kernel/fpga85e2c.c +++ b/arch/v850/kernel/fpga85e2c.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Written by Miles Bader <miles@gnu.org> | 12 | * Written by Miles Bader <miles@gnu.org> |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
diff --git a/arch/v850/kernel/gbus_int.c b/arch/v850/kernel/gbus_int.c index 92918b8d89ef..25d636e79e6a 100644 --- a/arch/v850/kernel/gbus_int.c +++ b/arch/v850/kernel/gbus_int.c | |||
@@ -154,7 +154,7 @@ static unsigned gbus_int_startup_irq (unsigned irq) | |||
154 | /* First enable the CPU interrupt. */ | 154 | /* First enable the CPU interrupt. */ |
155 | int rval = | 155 | int rval = |
156 | request_irq (IRQ_GINT(gint), gbus_int_handle_irq, | 156 | request_irq (IRQ_GINT(gint), gbus_int_handle_irq, |
157 | SA_INTERRUPT, | 157 | IRQF_DISABLED, |
158 | "gbus_int_handler", | 158 | "gbus_int_handler", |
159 | &gint_num_active_irqs[gint]); | 159 | &gint_num_active_irqs[gint]); |
160 | if (rval != 0) | 160 | if (rval != 0) |
diff --git a/arch/v850/kernel/irq.c b/arch/v850/kernel/irq.c index 7a151c26f82e..858c45819aab 100644 --- a/arch/v850/kernel/irq.c +++ b/arch/v850/kernel/irq.c | |||
@@ -65,10 +65,10 @@ int show_interrupts(struct seq_file *p, void *v) | |||
65 | int j; | 65 | int j; |
66 | int count = 0; | 66 | int count = 0; |
67 | int num = -1; | 67 | int num = -1; |
68 | const char *type_name = irq_desc[irq].handler->typename; | 68 | const char *type_name = irq_desc[irq].chip->typename; |
69 | 69 | ||
70 | for (j = 0; j < NR_IRQS; j++) | 70 | for (j = 0; j < NR_IRQS; j++) |
71 | if (irq_desc[j].handler->typename == type_name){ | 71 | if (irq_desc[j].chip->typename == type_name){ |
72 | if (irq == j) | 72 | if (irq == j) |
73 | num = count; | 73 | num = count; |
74 | count++; | 74 | count++; |
@@ -117,7 +117,7 @@ init_irq_handlers (int base_irq, int num, int interval, | |||
117 | irq_desc[base_irq].status = IRQ_DISABLED; | 117 | irq_desc[base_irq].status = IRQ_DISABLED; |
118 | irq_desc[base_irq].action = NULL; | 118 | irq_desc[base_irq].action = NULL; |
119 | irq_desc[base_irq].depth = 1; | 119 | irq_desc[base_irq].depth = 1; |
120 | irq_desc[base_irq].handler = irq_type; | 120 | irq_desc[base_irq].chip = irq_type; |
121 | base_irq += interval; | 121 | base_irq += interval; |
122 | } | 122 | } |
123 | } | 123 | } |
diff --git a/arch/v850/kernel/ma.c b/arch/v850/kernel/ma.c index b3dfbc5d2f40..2aa8ab0f7edc 100644 --- a/arch/v850/kernel/ma.c +++ b/arch/v850/kernel/ma.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
diff --git a/arch/v850/kernel/me2.c b/arch/v850/kernel/me2.c index 6527c218f91d..14b0c8858aa4 100644 --- a/arch/v850/kernel/me2.c +++ b/arch/v850/kernel/me2.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
diff --git a/arch/v850/kernel/process.c b/arch/v850/kernel/process.c index 57218c76925c..c4f844c86e50 100644 --- a/arch/v850/kernel/process.c +++ b/arch/v850/kernel/process.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
diff --git a/arch/v850/kernel/rte_cb.c b/arch/v850/kernel/rte_cb.c index 0c794b9e0f9b..0f7f6cd705a2 100644 --- a/arch/v850/kernel/rte_cb.c +++ b/arch/v850/kernel/rte_cb.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/irq.h> | 15 | #include <linux/irq.h> |
17 | #include <linux/fs.h> | 16 | #include <linux/fs.h> |
diff --git a/arch/v850/kernel/rte_cb_leds.c b/arch/v850/kernel/rte_cb_leds.c index b662ad838940..f654088b2760 100644 --- a/arch/v850/kernel/rte_cb_leds.c +++ b/arch/v850/kernel/rte_cb_leds.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/spinlock.h> | 15 | #include <linux/spinlock.h> |
17 | #include <linux/fs.h> | 16 | #include <linux/fs.h> |
diff --git a/arch/v850/kernel/rte_ma1_cb.c b/arch/v850/kernel/rte_ma1_cb.c index 3873e276392f..9a716f946421 100644 --- a/arch/v850/kernel/rte_ma1_cb.c +++ b/arch/v850/kernel/rte_ma1_cb.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/bootmem.h> | 16 | #include <linux/bootmem.h> |
diff --git a/arch/v850/kernel/rte_mb_a_pci.c b/arch/v850/kernel/rte_mb_a_pci.c index ffbb6d073bf2..f36b778f1432 100644 --- a/arch/v850/kernel/rte_mb_a_pci.c +++ b/arch/v850/kernel/rte_mb_a_pci.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
@@ -329,7 +328,7 @@ void pcibios_fixup_bus(struct pci_bus *b) | |||
329 | 328 | ||
330 | void | 329 | void |
331 | pcibios_align_resource (void *data, struct resource *res, | 330 | pcibios_align_resource (void *data, struct resource *res, |
332 | unsigned long size, unsigned long align) | 331 | resource_size_t size, resource_size_t align) |
333 | { | 332 | { |
334 | } | 333 | } |
335 | 334 | ||
diff --git a/arch/v850/kernel/rte_me2_cb.c b/arch/v850/kernel/rte_me2_cb.c index faaf3d95e6cf..3be355a029e2 100644 --- a/arch/v850/kernel/rte_me2_cb.c +++ b/arch/v850/kernel/rte_me2_cb.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/bootmem.h> | 16 | #include <linux/bootmem.h> |
@@ -264,7 +263,7 @@ static unsigned cb_pic_startup_irq (unsigned irq) | |||
264 | 263 | ||
265 | if (cb_pic_active_irqs == 0) { | 264 | if (cb_pic_active_irqs == 0) { |
266 | rval = request_irq (IRQ_CB_PIC, cb_pic_handle_irq, | 265 | rval = request_irq (IRQ_CB_PIC, cb_pic_handle_irq, |
267 | SA_INTERRUPT, "cb_pic_handler", 0); | 266 | IRQF_DISABLED, "cb_pic_handler", 0); |
268 | if (rval != 0) | 267 | if (rval != 0) |
269 | return rval; | 268 | return rval; |
270 | } | 269 | } |
diff --git a/arch/v850/kernel/rte_nb85e_cb.c b/arch/v850/kernel/rte_nb85e_cb.c index 990b20bffe47..b4a045da5d70 100644 --- a/arch/v850/kernel/rte_nb85e_cb.c +++ b/arch/v850/kernel/rte_nb85e_cb.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
diff --git a/arch/v850/kernel/sim.c b/arch/v850/kernel/sim.c index 17049aaa8f11..467b4aa0acdd 100644 --- a/arch/v850/kernel/sim.c +++ b/arch/v850/kernel/sim.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
diff --git a/arch/v850/kernel/sim85e2.c b/arch/v850/kernel/sim85e2.c index 9111613fb53a..566dde5e6070 100644 --- a/arch/v850/kernel/sim85e2.c +++ b/arch/v850/kernel/sim85e2.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Written by Miles Bader <miles@gnu.org> | 12 | * Written by Miles Bader <miles@gnu.org> |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
17 | #include <linux/module.h> | 16 | #include <linux/module.h> |
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
diff --git a/arch/v850/kernel/syscalls.c b/arch/v850/kernel/syscalls.c index 9224cb65f6ec..2ec0700fc46b 100644 --- a/arch/v850/kernel/syscalls.c +++ b/arch/v850/kernel/syscalls.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * and Paul Mackerras (paulus@cs.anu.edu.au). | 15 | * and Paul Mackerras (paulus@cs.anu.edu.au). |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/errno.h> | 18 | #include <linux/errno.h> |
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
21 | #include <linux/smp.h> | 20 | #include <linux/smp.h> |
diff --git a/arch/v850/kernel/teg.c b/arch/v850/kernel/teg.c index 495cf8f37bcb..290d50665016 100644 --- a/arch/v850/kernel/teg.c +++ b/arch/v850/kernel/teg.c | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 15 | #include <linux/init.h> |
17 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
diff --git a/arch/v850/kernel/time.c b/arch/v850/kernel/time.c index c1e85c2aef65..a0b46695f186 100644 --- a/arch/v850/kernel/time.c +++ b/arch/v850/kernel/time.c | |||
@@ -177,7 +177,7 @@ EXPORT_SYMBOL(do_settimeofday); | |||
177 | static int timer_dev_id; | 177 | static int timer_dev_id; |
178 | static struct irqaction timer_irqaction = { | 178 | static struct irqaction timer_irqaction = { |
179 | timer_interrupt, | 179 | timer_interrupt, |
180 | SA_INTERRUPT, | 180 | IRQF_DISABLED, |
181 | CPU_MASK_NONE, | 181 | CPU_MASK_NONE, |
182 | "timer", | 182 | "timer", |
183 | &timer_dev_id, | 183 | &timer_dev_id, |
diff --git a/arch/v850/kernel/v850_ksyms.c b/arch/v850/kernel/v850_ksyms.c index 6bcfcfe88384..c03ad6ed61cc 100644 --- a/arch/v850/kernel/v850_ksyms.c +++ b/arch/v850/kernel/v850_ksyms.c | |||
@@ -7,7 +7,6 @@ | |||
7 | #include <linux/elfcore.h> | 7 | #include <linux/elfcore.h> |
8 | #include <linux/in6.h> | 8 | #include <linux/in6.h> |
9 | #include <linux/interrupt.h> | 9 | #include <linux/interrupt.h> |
10 | #include <linux/config.h> | ||
11 | 10 | ||
12 | #include <asm/pgalloc.h> | 11 | #include <asm/pgalloc.h> |
13 | #include <asm/irq.h> | 12 | #include <asm/irq.h> |
diff --git a/arch/v850/kernel/vmlinux.lds.S b/arch/v850/kernel/vmlinux.lds.S index 5b2ffcc6e2b2..63399219cd9f 100644 --- a/arch/v850/kernel/vmlinux.lds.S +++ b/arch/v850/kernel/vmlinux.lds.S | |||
@@ -11,7 +11,6 @@ | |||
11 | * Written by Miles Bader <miles@gnu.org> | 11 | * Written by Miles Bader <miles@gnu.org> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/config.h> | ||
15 | 14 | ||
16 | #define VMLINUX_SYMBOL(_sym_) _##_sym_ | 15 | #define VMLINUX_SYMBOL(_sym_) _##_sym_ |
17 | #include <asm-generic/vmlinux.lds.h> | 16 | #include <asm-generic/vmlinux.lds.h> |
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index ccc4a7fb97a3..e856804c447f 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig | |||
@@ -370,6 +370,8 @@ config HOTPLUG_CPU | |||
370 | can be controlled through /sys/devices/system/cpu/cpu#. | 370 | can be controlled through /sys/devices/system/cpu/cpu#. |
371 | Say N if you want to disable CPU hotplug. | 371 | Say N if you want to disable CPU hotplug. |
372 | 372 | ||
373 | config ARCH_ENABLE_MEMORY_HOTPLUG | ||
374 | def_bool y | ||
373 | 375 | ||
374 | config HPET_TIMER | 376 | config HPET_TIMER |
375 | bool | 377 | bool |
@@ -459,10 +461,10 @@ config KEXEC | |||
459 | help | 461 | help |
460 | kexec is a system call that implements the ability to shutdown your | 462 | kexec is a system call that implements the ability to shutdown your |
461 | current kernel, and to start another kernel. It is like a reboot | 463 | current kernel, and to start another kernel. It is like a reboot |
462 | but it is indepedent of the system firmware. And like a reboot | 464 | but it is independent of the system firmware. And like a reboot |
463 | you can start any kernel with it, not just Linux. | 465 | you can start any kernel with it, not just Linux. |
464 | 466 | ||
465 | The name comes from the similiarity to the exec system call. | 467 | The name comes from the similarity to the exec system call. |
466 | 468 | ||
467 | It is an ongoing process to be certain the hardware in a machine | 469 | It is an ongoing process to be certain the hardware in a machine |
468 | is properly shutdown, so do not be surprised if this code does not | 470 | is properly shutdown, so do not be surprised if this code does not |
diff --git a/arch/x86_64/boot/setup.S b/arch/x86_64/boot/setup.S index 12ea0b6c52e2..7de8b8fd1685 100644 --- a/arch/x86_64/boot/setup.S +++ b/arch/x86_64/boot/setup.S | |||
@@ -45,7 +45,6 @@ | |||
45 | * Added long mode checking and SSE force. March 2003, Andi Kleen. | 45 | * Added long mode checking and SSE force. March 2003, Andi Kleen. |
46 | */ | 46 | */ |
47 | 47 | ||
48 | #include <linux/config.h> | ||
49 | #include <asm/segment.h> | 48 | #include <asm/segment.h> |
50 | #include <linux/version.h> | 49 | #include <linux/version.h> |
51 | #include <linux/compile.h> | 50 | #include <linux/compile.h> |
diff --git a/arch/x86_64/ia32/Makefile b/arch/x86_64/ia32/Makefile index e9263b4975e0..62bc5f56da9e 100644 --- a/arch/x86_64/ia32/Makefile +++ b/arch/x86_64/ia32/Makefile | |||
@@ -11,6 +11,9 @@ obj-$(CONFIG_IA32_EMULATION) += $(sysv-y) | |||
11 | 11 | ||
12 | obj-$(CONFIG_IA32_AOUT) += ia32_aout.o | 12 | obj-$(CONFIG_IA32_AOUT) += ia32_aout.o |
13 | 13 | ||
14 | audit-class-$(CONFIG_AUDIT) := audit.o | ||
15 | obj-$(CONFIG_IA32_EMULATION) += $(audit-class-y) | ||
16 | |||
14 | $(obj)/syscall32_syscall.o: \ | 17 | $(obj)/syscall32_syscall.o: \ |
15 | $(foreach F,sysenter syscall,$(obj)/vsyscall-$F.so) | 18 | $(foreach F,sysenter syscall,$(obj)/vsyscall-$F.so) |
16 | 19 | ||
diff --git a/arch/x86_64/ia32/audit.c b/arch/x86_64/ia32/audit.c new file mode 100644 index 000000000000..ab94f2e58cdd --- /dev/null +++ b/arch/x86_64/ia32/audit.c | |||
@@ -0,0 +1,11 @@ | |||
1 | #include <asm-i386/unistd.h> | ||
2 | |||
3 | unsigned ia32_dir_class[] = { | ||
4 | #include <asm-generic/audit_dir_write.h> | ||
5 | ~0U | ||
6 | }; | ||
7 | |||
8 | unsigned ia32_chattr_class[] = { | ||
9 | #include <asm-generic/audit_change_attr.h> | ||
10 | ~0U | ||
11 | }; | ||
diff --git a/arch/x86_64/ia32/sys_ia32.c b/arch/x86_64/ia32/sys_ia32.c index dc88154c412b..9c130993380d 100644 --- a/arch/x86_64/ia32/sys_ia32.c +++ b/arch/x86_64/ia32/sys_ia32.c | |||
@@ -20,7 +20,6 @@ | |||
20 | * This should be fixed. | 20 | * This should be fixed. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/config.h> | ||
24 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
25 | #include <linux/sched.h> | 24 | #include <linux/sched.h> |
26 | #include <linux/fs.h> | 25 | #include <linux/fs.h> |
diff --git a/arch/x86_64/kernel/Makefile b/arch/x86_64/kernel/Makefile index aeb9c560be88..819e84ec5b64 100644 --- a/arch/x86_64/kernel/Makefile +++ b/arch/x86_64/kernel/Makefile | |||
@@ -35,6 +35,7 @@ obj-$(CONFIG_KPROBES) += kprobes.o | |||
35 | obj-$(CONFIG_X86_PM_TIMER) += pmtimer.o | 35 | obj-$(CONFIG_X86_PM_TIMER) += pmtimer.o |
36 | obj-$(CONFIG_X86_VSMP) += vsmp.o | 36 | obj-$(CONFIG_X86_VSMP) += vsmp.o |
37 | obj-$(CONFIG_K8_NB) += k8.o | 37 | obj-$(CONFIG_K8_NB) += k8.o |
38 | obj-$(CONFIG_AUDIT) += audit.o | ||
38 | 39 | ||
39 | obj-$(CONFIG_MODULES) += module.o | 40 | obj-$(CONFIG_MODULES) += module.o |
40 | 41 | ||
diff --git a/arch/x86_64/kernel/acpi/sleep.c b/arch/x86_64/kernel/acpi/sleep.c index 091bc79c888f..5ebf62c7a3d2 100644 --- a/arch/x86_64/kernel/acpi/sleep.c +++ b/arch/x86_64/kernel/acpi/sleep.c | |||
@@ -26,7 +26,6 @@ | |||
26 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 26 | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <linux/config.h> | ||
30 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
31 | #include <linux/init.h> | 30 | #include <linux/init.h> |
32 | #include <linux/types.h> | 31 | #include <linux/types.h> |
diff --git a/arch/x86_64/kernel/aperture.c b/arch/x86_64/kernel/aperture.c index a195ef06ec55..58af8e73738b 100644 --- a/arch/x86_64/kernel/aperture.c +++ b/arch/x86_64/kernel/aperture.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * | 9 | * |
10 | * Copyright 2002 Andi Kleen, SuSE Labs. | 10 | * Copyright 2002 Andi Kleen, SuSE Labs. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
diff --git a/arch/x86_64/kernel/apic.c b/arch/x86_64/kernel/apic.c index b2ead91df218..2b8cef037a65 100644 --- a/arch/x86_64/kernel/apic.c +++ b/arch/x86_64/kernel/apic.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Mikael Pettersson : PM converted to driver model. | 14 | * Mikael Pettersson : PM converted to driver model. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/init.h> | 17 | #include <linux/init.h> |
19 | 18 | ||
20 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
diff --git a/arch/x86_64/kernel/audit.c b/arch/x86_64/kernel/audit.c new file mode 100644 index 000000000000..a067aa468a85 --- /dev/null +++ b/arch/x86_64/kernel/audit.c | |||
@@ -0,0 +1,29 @@ | |||
1 | #include <linux/init.h> | ||
2 | #include <linux/types.h> | ||
3 | #include <linux/audit.h> | ||
4 | #include <asm/unistd.h> | ||
5 | |||
6 | static unsigned dir_class[] = { | ||
7 | #include <asm-generic/audit_dir_write.h> | ||
8 | ~0U | ||
9 | }; | ||
10 | |||
11 | static unsigned chattr_class[] = { | ||
12 | #include <asm-generic/audit_change_attr.h> | ||
13 | ~0U | ||
14 | }; | ||
15 | |||
16 | static int __init audit_classes_init(void) | ||
17 | { | ||
18 | #ifdef CONFIG_IA32_EMULATION | ||
19 | extern __u32 ia32_dir_class[]; | ||
20 | extern __u32 ia32_chattr_class[]; | ||
21 | audit_register_class(AUDIT_CLASS_DIR_WRITE_32, ia32_dir_class); | ||
22 | audit_register_class(AUDIT_CLASS_CHATTR_32, ia32_chattr_class); | ||
23 | #endif | ||
24 | audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class); | ||
25 | audit_register_class(AUDIT_CLASS_CHATTR, chattr_class); | ||
26 | return 0; | ||
27 | } | ||
28 | |||
29 | __initcall(audit_classes_init); | ||
diff --git a/arch/x86_64/kernel/e820.c b/arch/x86_64/kernel/e820.c index 9e94d834624b..b8eee4c7888b 100644 --- a/arch/x86_64/kernel/e820.c +++ b/arch/x86_64/kernel/e820.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> | 8 | * Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> |
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
13 | #include <linux/types.h> | 12 | #include <linux/types.h> |
14 | #include <linux/init.h> | 13 | #include <linux/init.h> |
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index 22cac4487b57..ed92c2983606 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S | |||
@@ -28,7 +28,6 @@ | |||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #define ASSEMBLY 1 | 30 | #define ASSEMBLY 1 |
31 | #include <linux/config.h> | ||
32 | #include <linux/linkage.h> | 31 | #include <linux/linkage.h> |
33 | #include <asm/segment.h> | 32 | #include <asm/segment.h> |
34 | #include <asm/smp.h> | 33 | #include <asm/smp.h> |
diff --git a/arch/x86_64/kernel/functionlist b/arch/x86_64/kernel/functionlist index 2bcebdc3eedb..01fa23580c85 100644 --- a/arch/x86_64/kernel/functionlist +++ b/arch/x86_64/kernel/functionlist | |||
@@ -384,7 +384,6 @@ | |||
384 | *(.text.__end_that_request_first) | 384 | *(.text.__end_that_request_first) |
385 | *(.text.wake_up_bit) | 385 | *(.text.wake_up_bit) |
386 | *(.text.unuse_mm) | 386 | *(.text.unuse_mm) |
387 | *(.text.skb_release_data) | ||
388 | *(.text.shrink_icache_memory) | 387 | *(.text.shrink_icache_memory) |
389 | *(.text.sched_balance_self) | 388 | *(.text.sched_balance_self) |
390 | *(.text.__pmd_alloc) | 389 | *(.text.__pmd_alloc) |
diff --git a/arch/x86_64/kernel/genapic.c b/arch/x86_64/kernel/genapic.c index 7a64ea181788..8e78a75d1866 100644 --- a/arch/x86_64/kernel/genapic.c +++ b/arch/x86_64/kernel/genapic.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and | 8 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and |
9 | * James Cleverdon. | 9 | * James Cleverdon. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/threads.h> | 11 | #include <linux/threads.h> |
13 | #include <linux/cpumask.h> | 12 | #include <linux/cpumask.h> |
14 | #include <linux/string.h> | 13 | #include <linux/string.h> |
diff --git a/arch/x86_64/kernel/genapic_cluster.c b/arch/x86_64/kernel/genapic_cluster.c index 43fcf62fef0f..3020917546de 100644 --- a/arch/x86_64/kernel/genapic_cluster.c +++ b/arch/x86_64/kernel/genapic_cluster.c | |||
@@ -9,7 +9,6 @@ | |||
9 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and | 9 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and |
10 | * James Cleverdon. | 10 | * James Cleverdon. |
11 | */ | 11 | */ |
12 | #include <linux/config.h> | ||
13 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
14 | #include <linux/cpumask.h> | 13 | #include <linux/cpumask.h> |
15 | #include <linux/string.h> | 14 | #include <linux/string.h> |
diff --git a/arch/x86_64/kernel/genapic_flat.c b/arch/x86_64/kernel/genapic_flat.c index 21c7066e236a..eb86d374813a 100644 --- a/arch/x86_64/kernel/genapic_flat.c +++ b/arch/x86_64/kernel/genapic_flat.c | |||
@@ -8,7 +8,6 @@ | |||
8 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and | 8 | * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and |
9 | * James Cleverdon. | 9 | * James Cleverdon. |
10 | */ | 10 | */ |
11 | #include <linux/config.h> | ||
12 | #include <linux/threads.h> | 11 | #include <linux/threads.h> |
13 | #include <linux/cpumask.h> | 12 | #include <linux/cpumask.h> |
14 | #include <linux/string.h> | 13 | #include <linux/string.h> |
diff --git a/arch/x86_64/kernel/i387.c b/arch/x86_64/kernel/i387.c index 44ddb1ec808d..3aa1e9bb781d 100644 --- a/arch/x86_64/kernel/i387.c +++ b/arch/x86_64/kernel/i387.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * the 64bit user space sees a FXSAVE frame directly. | 14 | * the 64bit user space sees a FXSAVE frame directly. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <asm/processor.h> | 19 | #include <asm/processor.h> |
diff --git a/arch/x86_64/kernel/i8259.c b/arch/x86_64/kernel/i8259.c index 86b2c1e197aa..0434b1f8e3dd 100644 --- a/arch/x86_64/kernel/i8259.c +++ b/arch/x86_64/kernel/i8259.c | |||
@@ -1,5 +1,4 @@ | |||
1 | #include <linux/linkage.h> | 1 | #include <linux/linkage.h> |
2 | #include <linux/config.h> | ||
3 | #include <linux/errno.h> | 2 | #include <linux/errno.h> |
4 | #include <linux/signal.h> | 3 | #include <linux/signal.h> |
5 | #include <linux/sched.h> | 4 | #include <linux/sched.h> |
@@ -235,7 +234,7 @@ void make_8259A_irq(unsigned int irq) | |||
235 | { | 234 | { |
236 | disable_irq_nosync(irq); | 235 | disable_irq_nosync(irq); |
237 | io_apic_irqs &= ~(1<<irq); | 236 | io_apic_irqs &= ~(1<<irq); |
238 | irq_desc[irq].handler = &i8259A_irq_type; | 237 | irq_desc[irq].chip = &i8259A_irq_type; |
239 | enable_irq(irq); | 238 | enable_irq(irq); |
240 | } | 239 | } |
241 | 240 | ||
@@ -468,12 +467,12 @@ void __init init_ISA_irqs (void) | |||
468 | /* | 467 | /* |
469 | * 16 old-style INTA-cycle interrupts: | 468 | * 16 old-style INTA-cycle interrupts: |
470 | */ | 469 | */ |
471 | irq_desc[i].handler = &i8259A_irq_type; | 470 | irq_desc[i].chip = &i8259A_irq_type; |
472 | } else { | 471 | } else { |
473 | /* | 472 | /* |
474 | * 'high' PCI IRQs filled in on demand | 473 | * 'high' PCI IRQs filled in on demand |
475 | */ | 474 | */ |
476 | irq_desc[i].handler = &no_irq_type; | 475 | irq_desc[i].chip = &no_irq_type; |
477 | } | 476 | } |
478 | } | 477 | } |
479 | } | 478 | } |
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c index c768d8a036d0..924a4a332954 100644 --- a/arch/x86_64/kernel/io_apic.c +++ b/arch/x86_64/kernel/io_apic.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/init.h> | 25 | #include <linux/init.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/sched.h> | 27 | #include <linux/sched.h> |
28 | #include <linux/config.h> | ||
29 | #include <linux/smp_lock.h> | 28 | #include <linux/smp_lock.h> |
30 | #include <linux/mc146818rtc.h> | 29 | #include <linux/mc146818rtc.h> |
31 | #include <linux/acpi.h> | 30 | #include <linux/acpi.h> |
@@ -876,15 +875,17 @@ static struct hw_interrupt_type ioapic_edge_type; | |||
876 | #define IOAPIC_EDGE 0 | 875 | #define IOAPIC_EDGE 0 |
877 | #define IOAPIC_LEVEL 1 | 876 | #define IOAPIC_LEVEL 1 |
878 | 877 | ||
879 | static inline void ioapic_register_intr(int irq, int vector, unsigned long trigger) | 878 | static void ioapic_register_intr(int irq, int vector, unsigned long trigger) |
880 | { | 879 | { |
881 | unsigned idx = use_pci_vector() && !platform_legacy_irq(irq) ? vector : irq; | 880 | unsigned idx; |
881 | |||
882 | idx = use_pci_vector() && !platform_legacy_irq(irq) ? vector : irq; | ||
882 | 883 | ||
883 | if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || | 884 | if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || |
884 | trigger == IOAPIC_LEVEL) | 885 | trigger == IOAPIC_LEVEL) |
885 | irq_desc[idx].handler = &ioapic_level_type; | 886 | irq_desc[idx].chip = &ioapic_level_type; |
886 | else | 887 | else |
887 | irq_desc[idx].handler = &ioapic_edge_type; | 888 | irq_desc[idx].chip = &ioapic_edge_type; |
888 | set_intr_gate(vector, interrupt[idx]); | 889 | set_intr_gate(vector, interrupt[idx]); |
889 | } | 890 | } |
890 | 891 | ||
@@ -986,7 +987,7 @@ static void __init setup_ExtINT_IRQ0_pin(unsigned int apic, unsigned int pin, in | |||
986 | * The timer IRQ doesn't have to know that behind the | 987 | * The timer IRQ doesn't have to know that behind the |
987 | * scene we have a 8259A-master in AEOI mode ... | 988 | * scene we have a 8259A-master in AEOI mode ... |
988 | */ | 989 | */ |
989 | irq_desc[0].handler = &ioapic_edge_type; | 990 | irq_desc[0].chip = &ioapic_edge_type; |
990 | 991 | ||
991 | /* | 992 | /* |
992 | * Add it to the IO-APIC irq-routing table: | 993 | * Add it to the IO-APIC irq-routing table: |
@@ -1616,6 +1617,13 @@ static void set_ioapic_affinity_vector (unsigned int vector, | |||
1616 | #endif // CONFIG_SMP | 1617 | #endif // CONFIG_SMP |
1617 | #endif // CONFIG_PCI_MSI | 1618 | #endif // CONFIG_PCI_MSI |
1618 | 1619 | ||
1620 | static int ioapic_retrigger(unsigned int irq) | ||
1621 | { | ||
1622 | send_IPI_self(IO_APIC_VECTOR(irq)); | ||
1623 | |||
1624 | return 1; | ||
1625 | } | ||
1626 | |||
1619 | /* | 1627 | /* |
1620 | * Level and edge triggered IO-APIC interrupts need different handling, | 1628 | * Level and edge triggered IO-APIC interrupts need different handling, |
1621 | * so we use two separate IRQ descriptors. Edge triggered IRQs can be | 1629 | * so we use two separate IRQ descriptors. Edge triggered IRQs can be |
@@ -1636,6 +1644,7 @@ static struct hw_interrupt_type ioapic_edge_type __read_mostly = { | |||
1636 | #ifdef CONFIG_SMP | 1644 | #ifdef CONFIG_SMP |
1637 | .set_affinity = set_ioapic_affinity, | 1645 | .set_affinity = set_ioapic_affinity, |
1638 | #endif | 1646 | #endif |
1647 | .retrigger = ioapic_retrigger, | ||
1639 | }; | 1648 | }; |
1640 | 1649 | ||
1641 | static struct hw_interrupt_type ioapic_level_type __read_mostly = { | 1650 | static struct hw_interrupt_type ioapic_level_type __read_mostly = { |
@@ -1649,6 +1658,7 @@ static struct hw_interrupt_type ioapic_level_type __read_mostly = { | |||
1649 | #ifdef CONFIG_SMP | 1658 | #ifdef CONFIG_SMP |
1650 | .set_affinity = set_ioapic_affinity, | 1659 | .set_affinity = set_ioapic_affinity, |
1651 | #endif | 1660 | #endif |
1661 | .retrigger = ioapic_retrigger, | ||
1652 | }; | 1662 | }; |
1653 | 1663 | ||
1654 | static inline void init_IO_APIC_traps(void) | 1664 | static inline void init_IO_APIC_traps(void) |
@@ -1683,7 +1693,7 @@ static inline void init_IO_APIC_traps(void) | |||
1683 | make_8259A_irq(irq); | 1693 | make_8259A_irq(irq); |
1684 | else | 1694 | else |
1685 | /* Strange. Oh, well.. */ | 1695 | /* Strange. Oh, well.. */ |
1686 | irq_desc[irq].handler = &no_irq_type; | 1696 | irq_desc[irq].chip = &no_irq_type; |
1687 | } | 1697 | } |
1688 | } | 1698 | } |
1689 | } | 1699 | } |
@@ -1900,7 +1910,7 @@ static inline void check_timer(void) | |||
1900 | apic_printk(APIC_VERBOSE, KERN_INFO "...trying to set up timer as Virtual Wire IRQ..."); | 1910 | apic_printk(APIC_VERBOSE, KERN_INFO "...trying to set up timer as Virtual Wire IRQ..."); |
1901 | 1911 | ||
1902 | disable_8259A_irq(0); | 1912 | disable_8259A_irq(0); |
1903 | irq_desc[0].handler = &lapic_irq_type; | 1913 | irq_desc[0].chip = &lapic_irq_type; |
1904 | apic_write(APIC_LVT0, APIC_DM_FIXED | vector); /* Fixed mode */ | 1914 | apic_write(APIC_LVT0, APIC_DM_FIXED | vector); /* Fixed mode */ |
1905 | enable_8259A_irq(0); | 1915 | enable_8259A_irq(0); |
1906 | 1916 | ||
diff --git a/arch/x86_64/kernel/irq.c b/arch/x86_64/kernel/irq.c index bfa82f52a5cc..a1f1df5f7bfc 100644 --- a/arch/x86_64/kernel/irq.c +++ b/arch/x86_64/kernel/irq.c | |||
@@ -79,7 +79,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
79 | for_each_online_cpu(j) | 79 | for_each_online_cpu(j) |
80 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 80 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); |
81 | #endif | 81 | #endif |
82 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 82 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
83 | 83 | ||
84 | seq_printf(p, " %s", action->name); | 84 | seq_printf(p, " %s", action->name); |
85 | for (action=action->next; action; action = action->next) | 85 | for (action=action->next; action; action = action->next) |
@@ -146,13 +146,13 @@ void fixup_irqs(cpumask_t map) | |||
146 | if (irq == 2) | 146 | if (irq == 2) |
147 | continue; | 147 | continue; |
148 | 148 | ||
149 | cpus_and(mask, irq_affinity[irq], map); | 149 | cpus_and(mask, irq_desc[irq].affinity, map); |
150 | if (any_online_cpu(mask) == NR_CPUS) { | 150 | if (any_online_cpu(mask) == NR_CPUS) { |
151 | printk("Breaking affinity for irq %i\n", irq); | 151 | printk("Breaking affinity for irq %i\n", irq); |
152 | mask = map; | 152 | mask = map; |
153 | } | 153 | } |
154 | if (irq_desc[irq].handler->set_affinity) | 154 | if (irq_desc[irq].chip->set_affinity) |
155 | irq_desc[irq].handler->set_affinity(irq, mask); | 155 | irq_desc[irq].chip->set_affinity(irq, mask); |
156 | else if (irq_desc[irq].action && !(warned++)) | 156 | else if (irq_desc[irq].action && !(warned++)) |
157 | printk("Cannot set affinity for irq %i\n", irq); | 157 | printk("Cannot set affinity for irq %i\n", irq); |
158 | } | 158 | } |
diff --git a/arch/x86_64/kernel/kprobes.c b/arch/x86_64/kernel/kprobes.c index fa1d19ca700a..ffc73ac72485 100644 --- a/arch/x86_64/kernel/kprobes.c +++ b/arch/x86_64/kernel/kprobes.c | |||
@@ -31,7 +31,6 @@ | |||
31 | * Added function return probes functionality | 31 | * Added function return probes functionality |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <linux/config.h> | ||
35 | #include <linux/kprobes.h> | 34 | #include <linux/kprobes.h> |
36 | #include <linux/ptrace.h> | 35 | #include <linux/ptrace.h> |
37 | #include <linux/string.h> | 36 | #include <linux/string.h> |
diff --git a/arch/x86_64/kernel/mpparse.c b/arch/x86_64/kernel/mpparse.c index 083da7e606b1..a1ab4197f8a1 100644 --- a/arch/x86_64/kernel/mpparse.c +++ b/arch/x86_64/kernel/mpparse.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
18 | #include <linux/delay.h> | 18 | #include <linux/delay.h> |
19 | #include <linux/config.h> | ||
20 | #include <linux/bootmem.h> | 19 | #include <linux/bootmem.h> |
21 | #include <linux/smp_lock.h> | 20 | #include <linux/smp_lock.h> |
22 | #include <linux/kernel_stat.h> | 21 | #include <linux/kernel_stat.h> |
diff --git a/arch/x86_64/kernel/nmi.c b/arch/x86_64/kernel/nmi.c index 0ef9cf2bc45e..476c1472fc07 100644 --- a/arch/x86_64/kernel/nmi.c +++ b/arch/x86_64/kernel/nmi.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Mikael Pettersson : PM converted to driver model. Disable/enable API. | 12 | * Mikael Pettersson : PM converted to driver model. Disable/enable API. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
17 | #include <linux/delay.h> | 16 | #include <linux/delay.h> |
18 | #include <linux/interrupt.h> | 17 | #include <linux/interrupt.h> |
diff --git a/arch/x86_64/kernel/pci-gart.c b/arch/x86_64/kernel/pci-gart.c index 4ca674d16b09..6d3e61baf7a0 100644 --- a/arch/x86_64/kernel/pci-gart.c +++ b/arch/x86_64/kernel/pci-gart.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * Copyright 2002 Andi Kleen, SuSE Labs. | 10 | * Copyright 2002 Andi Kleen, SuSE Labs. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/config.h> | ||
14 | #include <linux/types.h> | 13 | #include <linux/types.h> |
15 | #include <linux/ctype.h> | 14 | #include <linux/ctype.h> |
16 | #include <linux/agp_backend.h> | 15 | #include <linux/agp_backend.h> |
diff --git a/arch/x86_64/kernel/setup.c b/arch/x86_64/kernel/setup.c index 1129918ede82..0925518b58d0 100644 --- a/arch/x86_64/kernel/setup.c +++ b/arch/x86_64/kernel/setup.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/tty.h> | 24 | #include <linux/tty.h> |
25 | #include <linux/ioport.h> | 25 | #include <linux/ioport.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/config.h> | ||
28 | #include <linux/init.h> | 27 | #include <linux/init.h> |
29 | #include <linux/initrd.h> | 28 | #include <linux/initrd.h> |
30 | #include <linux/highmem.h> | 29 | #include <linux/highmem.h> |
diff --git a/arch/x86_64/kernel/setup64.c b/arch/x86_64/kernel/setup64.c index f5934cb4a2b6..6fe58a634b5f 100644 --- a/arch/x86_64/kernel/setup64.c +++ b/arch/x86_64/kernel/setup64.c | |||
@@ -4,7 +4,6 @@ | |||
4 | * Copyright 2001, 2002, 2003 SuSE Labs / Andi Kleen. | 4 | * Copyright 2001, 2002, 2003 SuSE Labs / Andi Kleen. |
5 | * See setup.c for older changelog. | 5 | * See setup.c for older changelog. |
6 | */ | 6 | */ |
7 | #include <linux/config.h> | ||
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
9 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c index 540c0ccbcccc..9705a6a384f1 100644 --- a/arch/x86_64/kernel/smpboot.c +++ b/arch/x86_64/kernel/smpboot.c | |||
@@ -38,7 +38,6 @@ | |||
38 | */ | 38 | */ |
39 | 39 | ||
40 | 40 | ||
41 | #include <linux/config.h> | ||
42 | #include <linux/init.h> | 41 | #include <linux/init.h> |
43 | 42 | ||
44 | #include <linux/mm.h> | 43 | #include <linux/mm.h> |
diff --git a/arch/x86_64/kernel/suspend.c b/arch/x86_64/kernel/suspend.c index ecbd34c1093d..91f7e678bae7 100644 --- a/arch/x86_64/kernel/suspend.c +++ b/arch/x86_64/kernel/suspend.c | |||
@@ -7,7 +7,6 @@ | |||
7 | * Copyright (c) 2001 Patrick Mochel <mochel@osdl.org> | 7 | * Copyright (c) 2001 Patrick Mochel <mochel@osdl.org> |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/config.h> | ||
11 | #include <linux/smp.h> | 10 | #include <linux/smp.h> |
12 | #include <linux/suspend.h> | 11 | #include <linux/suspend.h> |
13 | #include <asm/proto.h> | 12 | #include <asm/proto.h> |
diff --git a/arch/x86_64/kernel/syscall.c b/arch/x86_64/kernel/syscall.c index 7c176b3edde0..213fd6ab789d 100644 --- a/arch/x86_64/kernel/syscall.c +++ b/arch/x86_64/kernel/syscall.c | |||
@@ -3,7 +3,6 @@ | |||
3 | #include <linux/linkage.h> | 3 | #include <linux/linkage.h> |
4 | #include <linux/sys.h> | 4 | #include <linux/sys.h> |
5 | #include <linux/cache.h> | 5 | #include <linux/cache.h> |
6 | #include <linux/config.h> | ||
7 | 6 | ||
8 | #define __NO_STUBS | 7 | #define __NO_STUBS |
9 | 8 | ||
diff --git a/arch/x86_64/kernel/time.c b/arch/x86_64/kernel/time.c index ebbee6f59ff5..b9ff75992c16 100644 --- a/arch/x86_64/kernel/time.c +++ b/arch/x86_64/kernel/time.c | |||
@@ -889,7 +889,7 @@ int __init time_setup(char *str) | |||
889 | } | 889 | } |
890 | 890 | ||
891 | static struct irqaction irq0 = { | 891 | static struct irqaction irq0 = { |
892 | timer_interrupt, SA_INTERRUPT, CPU_MASK_NONE, "timer", NULL, NULL | 892 | timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "timer", NULL, NULL |
893 | }; | 893 | }; |
894 | 894 | ||
895 | void __init time_init(void) | 895 | void __init time_init(void) |
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c index 3d11a2fe45b7..5a5311d3de0f 100644 --- a/arch/x86_64/kernel/traps.c +++ b/arch/x86_64/kernel/traps.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * 'Traps.c' handles hardware traps and faults after we have saved some | 12 | * 'Traps.c' handles hardware traps and faults after we have saved some |
13 | * state in 'entry.S'. | 13 | * state in 'entry.S'. |
14 | */ | 14 | */ |
15 | #include <linux/config.h> | ||
16 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/string.h> | 17 | #include <linux/string.h> |
diff --git a/arch/x86_64/kernel/vmlinux.lds.S b/arch/x86_64/kernel/vmlinux.lds.S index 1c6a5f322919..7c4de31471d4 100644 --- a/arch/x86_64/kernel/vmlinux.lds.S +++ b/arch/x86_64/kernel/vmlinux.lds.S | |||
@@ -6,7 +6,6 @@ | |||
6 | 6 | ||
7 | #include <asm-generic/vmlinux.lds.h> | 7 | #include <asm-generic/vmlinux.lds.h> |
8 | #include <asm/page.h> | 8 | #include <asm/page.h> |
9 | #include <linux/config.h> | ||
10 | 9 | ||
11 | #undef i386 /* in case the preprocessor is a 32bit one */ | 10 | #undef i386 /* in case the preprocessor is a 32bit one */ |
12 | 11 | ||
diff --git a/arch/x86_64/mm/extable.c b/arch/x86_64/mm/extable.c index 2d78f9fb4035..79ac6e7100af 100644 --- a/arch/x86_64/mm/extable.c +++ b/arch/x86_64/mm/extable.c | |||
@@ -2,7 +2,6 @@ | |||
2 | * linux/arch/x86_64/mm/extable.c | 2 | * linux/arch/x86_64/mm/extable.c |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <linux/module.h> | 5 | #include <linux/module.h> |
7 | #include <linux/spinlock.h> | 6 | #include <linux/spinlock.h> |
8 | #include <linux/init.h> | 7 | #include <linux/init.h> |
diff --git a/arch/x86_64/mm/fault.c b/arch/x86_64/mm/fault.c index 08dc696f54ee..5afcf6eb00fa 100644 --- a/arch/x86_64/mm/fault.c +++ b/arch/x86_64/mm/fault.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Copyright (C) 2001,2002 Andi Kleen, SuSE Labs. | 5 | * Copyright (C) 2001,2002 Andi Kleen, SuSE Labs. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/config.h> | ||
9 | #include <linux/signal.h> | 8 | #include <linux/signal.h> |
10 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
11 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
@@ -418,7 +417,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, | |||
418 | /* When running in the kernel we expect faults to occur only to | 417 | /* When running in the kernel we expect faults to occur only to |
419 | * addresses in user space. All other faults represent errors in the | 418 | * addresses in user space. All other faults represent errors in the |
420 | * kernel and should generate an OOPS. Unfortunatly, in the case of an | 419 | * kernel and should generate an OOPS. Unfortunatly, in the case of an |
421 | * erroneous fault occuring in a code path which already holds mmap_sem | 420 | * erroneous fault occurring in a code path which already holds mmap_sem |
422 | * we will deadlock attempting to validate the fault against the | 421 | * we will deadlock attempting to validate the fault against the |
423 | * address space. Luckily the kernel only validly references user | 422 | * address space. Luckily the kernel only validly references user |
424 | * space from well defined areas of code, which are listed in the | 423 | * space from well defined areas of code, which are listed in the |
diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c index 95bd232ff0cf..d14fb2dfbfc4 100644 --- a/arch/x86_64/mm/init.c +++ b/arch/x86_64/mm/init.c | |||
@@ -6,7 +6,6 @@ | |||
6 | * Copyright (C) 2002,2003 Andi Kleen <ak@suse.de> | 6 | * Copyright (C) 2002,2003 Andi Kleen <ak@suse.de> |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/config.h> | ||
10 | #include <linux/signal.h> | 9 | #include <linux/signal.h> |
11 | #include <linux/sched.h> | 10 | #include <linux/sched.h> |
12 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
@@ -679,16 +678,15 @@ void free_initmem(void) | |||
679 | 678 | ||
680 | #ifdef CONFIG_DEBUG_RODATA | 679 | #ifdef CONFIG_DEBUG_RODATA |
681 | 680 | ||
682 | extern char __start_rodata, __end_rodata; | ||
683 | void mark_rodata_ro(void) | 681 | void mark_rodata_ro(void) |
684 | { | 682 | { |
685 | unsigned long addr = (unsigned long)&__start_rodata; | 683 | unsigned long addr = (unsigned long)__start_rodata; |
686 | 684 | ||
687 | for (; addr < (unsigned long)&__end_rodata; addr += PAGE_SIZE) | 685 | for (; addr < (unsigned long)__end_rodata; addr += PAGE_SIZE) |
688 | change_page_attr_addr(addr, 1, PAGE_KERNEL_RO); | 686 | change_page_attr_addr(addr, 1, PAGE_KERNEL_RO); |
689 | 687 | ||
690 | printk ("Write protecting the kernel read-only data: %luk\n", | 688 | printk ("Write protecting the kernel read-only data: %luk\n", |
691 | (&__end_rodata - &__start_rodata) >> 10); | 689 | (__end_rodata - __start_rodata) >> 10); |
692 | 690 | ||
693 | /* | 691 | /* |
694 | * change_page_attr_addr() requires a global_flush_tlb() call after it. | 692 | * change_page_attr_addr() requires a global_flush_tlb() call after it. |
diff --git a/arch/x86_64/mm/mmap.c b/arch/x86_64/mm/mmap.c index 43e9b99bdf25..80bba0dc000e 100644 --- a/arch/x86_64/mm/mmap.c +++ b/arch/x86_64/mm/mmap.c | |||
@@ -1,7 +1,6 @@ | |||
1 | /* Copyright 2005 Andi Kleen, SuSE Labs. | 1 | /* Copyright 2005 Andi Kleen, SuSE Labs. |
2 | * Licensed under GPL, v.2 | 2 | * Licensed under GPL, v.2 |
3 | */ | 3 | */ |
4 | #include <linux/config.h> | ||
5 | #include <linux/mm.h> | 4 | #include <linux/mm.h> |
6 | #include <linux/sched.h> | 5 | #include <linux/sched.h> |
7 | #include <linux/random.h> | 6 | #include <linux/random.h> |
diff --git a/arch/x86_64/mm/pageattr.c b/arch/x86_64/mm/pageattr.c index 531ad21447b1..2685b1f3671c 100644 --- a/arch/x86_64/mm/pageattr.c +++ b/arch/x86_64/mm/pageattr.c | |||
@@ -3,7 +3,6 @@ | |||
3 | * Thanks to Ben LaHaise for precious feedback. | 3 | * Thanks to Ben LaHaise for precious feedback. |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/config.h> | ||
7 | #include <linux/mm.h> | 6 | #include <linux/mm.h> |
8 | #include <linux/sched.h> | 7 | #include <linux/sched.h> |
9 | #include <linux/highmem.h> | 8 | #include <linux/highmem.h> |
diff --git a/arch/xtensa/boot/boot-elf/bootstrap.S b/arch/xtensa/boot/boot-elf/bootstrap.S index 7cba94abdab8..f857fc760aa8 100644 --- a/arch/xtensa/boot/boot-elf/bootstrap.S +++ b/arch/xtensa/boot/boot-elf/bootstrap.S | |||
@@ -2,7 +2,6 @@ | |||
2 | #include <xtensa/config/specreg.h> | 2 | #include <xtensa/config/specreg.h> |
3 | #include <xtensa/config/core.h> | 3 | #include <xtensa/config/core.h> |
4 | 4 | ||
5 | #include <linux/config.h> | ||
6 | #include <asm/bootparam.h> | 5 | #include <asm/bootparam.h> |
7 | 6 | ||
8 | 7 | ||
diff --git a/arch/xtensa/kernel/coprocessor.S b/arch/xtensa/kernel/coprocessor.S index 356192a4d39d..cf5a93fb6a2e 100644 --- a/arch/xtensa/kernel/coprocessor.S +++ b/arch/xtensa/kernel/coprocessor.S | |||
@@ -24,7 +24,6 @@ | |||
24 | * assigned when the Xtensa processor is generated. | 24 | * assigned when the Xtensa processor is generated. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <linux/config.h> | ||
28 | #include <linux/linkage.h> | 27 | #include <linux/linkage.h> |
29 | #include <asm/processor.h> | 28 | #include <asm/processor.h> |
30 | 29 | ||
diff --git a/arch/xtensa/kernel/head.S b/arch/xtensa/kernel/head.S index 6e9b5225b8f6..c07cb2522993 100644 --- a/arch/xtensa/kernel/head.S +++ b/arch/xtensa/kernel/head.S | |||
@@ -16,7 +16,6 @@ | |||
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <xtensa/cacheasm.h> | 18 | #include <xtensa/cacheasm.h> |
19 | #include <linux/config.h> | ||
20 | #include <asm/processor.h> | 19 | #include <asm/processor.h> |
21 | #include <asm/page.h> | 20 | #include <asm/page.h> |
22 | 21 | ||
diff --git a/arch/xtensa/kernel/irq.c b/arch/xtensa/kernel/irq.c index 51f9bed455fa..1cf744ee0959 100644 --- a/arch/xtensa/kernel/irq.c +++ b/arch/xtensa/kernel/irq.c | |||
@@ -100,7 +100,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
100 | for_each_online_cpu(j) | 100 | for_each_online_cpu(j) |
101 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 101 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); |
102 | #endif | 102 | #endif |
103 | seq_printf(p, " %14s", irq_desc[i].handler->typename); | 103 | seq_printf(p, " %14s", irq_desc[i].chip->typename); |
104 | seq_printf(p, " %s", action->name); | 104 | seq_printf(p, " %s", action->name); |
105 | 105 | ||
106 | for (action=action->next; action; action = action->next) | 106 | for (action=action->next; action; action = action->next) |
@@ -181,7 +181,7 @@ void __init init_IRQ(void) | |||
181 | int i; | 181 | int i; |
182 | 182 | ||
183 | for (i=0; i < XTENSA_NR_IRQS; i++) | 183 | for (i=0; i < XTENSA_NR_IRQS; i++) |
184 | irq_desc[i].handler = &xtensa_irq_type; | 184 | irq_desc[i].chip = &xtensa_irq_type; |
185 | 185 | ||
186 | cached_irq_mask = 0; | 186 | cached_irq_mask = 0; |
187 | 187 | ||
diff --git a/arch/xtensa/kernel/pci.c b/arch/xtensa/kernel/pci.c index c6f471b9eaa0..8709f8249d02 100644 --- a/arch/xtensa/kernel/pci.c +++ b/arch/xtensa/kernel/pci.c | |||
@@ -17,7 +17,6 @@ | |||
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/pci.h> | 21 | #include <linux/pci.h> |
23 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
@@ -71,13 +70,13 @@ static int pci_bus_count; | |||
71 | * which might have be mirrored at 0x0100-0x03ff.. | 70 | * which might have be mirrored at 0x0100-0x03ff.. |
72 | */ | 71 | */ |
73 | void | 72 | void |
74 | pcibios_align_resource(void *data, struct resource *res, unsigned long size, | 73 | pcibios_align_resource(void *data, struct resource *res, resource_size_t size, |
75 | unsigned long align) | 74 | resource_size_t align) |
76 | { | 75 | { |
77 | struct pci_dev *dev = data; | 76 | struct pci_dev *dev = data; |
78 | 77 | ||
79 | if (res->flags & IORESOURCE_IO) { | 78 | if (res->flags & IORESOURCE_IO) { |
80 | unsigned long start = res->start; | 79 | resource_size_t start = res->start; |
81 | 80 | ||
82 | if (size > 0x100) { | 81 | if (size > 0x100) { |
83 | printk(KERN_ERR "PCI: I/O Region %s/%d too large" | 82 | printk(KERN_ERR "PCI: I/O Region %s/%d too large" |
diff --git a/arch/xtensa/kernel/platform.c b/arch/xtensa/kernel/platform.c index a17930747f20..69675f216062 100644 --- a/arch/xtensa/kernel/platform.c +++ b/arch/xtensa/kernel/platform.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Chris Zankel <chris@zankel.net> | 12 | * Chris Zankel <chris@zankel.net> |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/types.h> | 15 | #include <linux/types.h> |
17 | #include <linux/pci.h> | 16 | #include <linux/pci.h> |
18 | #include <linux/time.h> | 17 | #include <linux/time.h> |
diff --git a/arch/xtensa/kernel/process.c b/arch/xtensa/kernel/process.c index 64a649eb883f..a7c4178c2a8c 100644 --- a/arch/xtensa/kernel/process.c +++ b/arch/xtensa/kernel/process.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * Kevin Chea | 16 | * Kevin Chea |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/errno.h> | 19 | #include <linux/errno.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
22 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
diff --git a/arch/xtensa/kernel/ptrace.c b/arch/xtensa/kernel/ptrace.c index 4cc85285a70a..5064d9383963 100644 --- a/arch/xtensa/kernel/ptrace.c +++ b/arch/xtensa/kernel/ptrace.c | |||
@@ -13,7 +13,6 @@ | |||
13 | * Marc Gauthier<marc@tensilica.com> <marc@alumni.uwaterloo.ca> | 13 | * Marc Gauthier<marc@tensilica.com> <marc@alumni.uwaterloo.ca> |
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include <linux/config.h> | ||
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
19 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c index 513ed8d67766..edb29410d953 100644 --- a/arch/xtensa/kernel/setup.c +++ b/arch/xtensa/kernel/setup.c | |||
@@ -14,7 +14,6 @@ | |||
14 | * Marc Gauthier<marc@tensilica.com> <marc@alumni.uwaterloo.ca> | 14 | * Marc Gauthier<marc@tensilica.com> <marc@alumni.uwaterloo.ca> |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/config.h> | ||
18 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/proc_fs.h> | 19 | #include <linux/proc_fs.h> |
diff --git a/arch/xtensa/kernel/syscalls.c b/arch/xtensa/kernel/syscalls.c index f20c6494c518..4688ba2db84d 100644 --- a/arch/xtensa/kernel/syscalls.c +++ b/arch/xtensa/kernel/syscalls.c | |||
@@ -18,7 +18,6 @@ | |||
18 | 18 | ||
19 | #define DEBUG 0 | 19 | #define DEBUG 0 |
20 | 20 | ||
21 | #include <linux/config.h> | ||
22 | #include <linux/linkage.h> | 21 | #include <linux/linkage.h> |
23 | #include <linux/mm.h> | 22 | #include <linux/mm.h> |
24 | #include <linux/smp.h> | 23 | #include <linux/smp.h> |
diff --git a/arch/xtensa/kernel/time.c b/arch/xtensa/kernel/time.c index fe14909f45e0..412ab32de391 100644 --- a/arch/xtensa/kernel/time.c +++ b/arch/xtensa/kernel/time.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Chris Zankel <chris@zankel.net> | 12 | * Chris Zankel <chris@zankel.net> |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/errno.h> | 15 | #include <linux/errno.h> |
17 | #include <linux/time.h> | 16 | #include <linux/time.h> |
18 | #include <linux/timex.h> | 17 | #include <linux/timex.h> |
@@ -53,7 +52,7 @@ unsigned long long sched_clock(void) | |||
53 | static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 52 | static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); |
54 | static struct irqaction timer_irqaction = { | 53 | static struct irqaction timer_irqaction = { |
55 | .handler = timer_interrupt, | 54 | .handler = timer_interrupt, |
56 | .flags = SA_INTERRUPT, | 55 | .flags = IRQF_DISABLED, |
57 | .name = "timer", | 56 | .name = "timer", |
58 | }; | 57 | }; |
59 | 58 | ||
diff --git a/arch/xtensa/kernel/vmlinux.lds.S b/arch/xtensa/kernel/vmlinux.lds.S index 5ed71dfc8110..ab6cdbd5eb68 100644 --- a/arch/xtensa/kernel/vmlinux.lds.S +++ b/arch/xtensa/kernel/vmlinux.lds.S | |||
@@ -16,7 +16,6 @@ | |||
16 | 16 | ||
17 | #include <asm-generic/vmlinux.lds.h> | 17 | #include <asm-generic/vmlinux.lds.h> |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #define _NOCLANGUAGE | 19 | #define _NOCLANGUAGE |
21 | #include <xtensa/config/core.h> | 20 | #include <xtensa/config/core.h> |
22 | #include <xtensa/config/system.h> | 21 | #include <xtensa/config/system.h> |
diff --git a/arch/xtensa/kernel/xtensa_ksyms.c b/arch/xtensa/kernel/xtensa_ksyms.c index a15b6e3e72c8..0b4cb93db5a3 100644 --- a/arch/xtensa/kernel/xtensa_ksyms.c +++ b/arch/xtensa/kernel/xtensa_ksyms.c | |||
@@ -12,7 +12,6 @@ | |||
12 | * Joe Taylor <joe@tensilica.com> | 12 | * Joe Taylor <joe@tensilica.com> |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/config.h> | ||
16 | #include <linux/module.h> | 15 | #include <linux/module.h> |
17 | #include <linux/string.h> | 16 | #include <linux/string.h> |
18 | #include <linux/mm.h> | 17 | #include <linux/mm.h> |
diff --git a/arch/xtensa/mm/init.c b/arch/xtensa/mm/init.c index e1be4235f367..660ef058c149 100644 --- a/arch/xtensa/mm/init.c +++ b/arch/xtensa/mm/init.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * Kevin Chea | 15 | * Kevin Chea |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/config.h> | ||
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/signal.h> | 19 | #include <linux/signal.h> |
21 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
diff --git a/arch/xtensa/platform-iss/console.c b/arch/xtensa/platform-iss/console.c index 2a580efb58ec..22d3c571a7bc 100644 --- a/arch/xtensa/platform-iss/console.c +++ b/arch/xtensa/platform-iss/console.c | |||
@@ -10,7 +10,6 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
13 | #include <linux/config.h> | ||
14 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
15 | #include <linux/sched.h> | 14 | #include <linux/sched.h> |
16 | #include <linux/console.h> | 15 | #include <linux/console.h> |
diff --git a/arch/xtensa/platform-iss/network.c b/arch/xtensa/platform-iss/network.c index 0dc55cc8691b..d96164e602fe 100644 --- a/arch/xtensa/platform-iss/network.c +++ b/arch/xtensa/platform-iss/network.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * | 16 | * |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/config.h> | ||
20 | #include <linux/list.h> | 19 | #include <linux/list.h> |
21 | #include <linux/irq.h> | 20 | #include <linux/irq.h> |
22 | #include <linux/spinlock.h> | 21 | #include <linux/spinlock.h> |
diff --git a/arch/xtensa/platform-iss/setup.c b/arch/xtensa/platform-iss/setup.c index 23790a5610e2..c8a42b60c57a 100644 --- a/arch/xtensa/platform-iss/setup.c +++ b/arch/xtensa/platform-iss/setup.c | |||
@@ -15,7 +15,6 @@ | |||
15 | * option) any later version. | 15 | * option) any later version. |
16 | * | 16 | * |
17 | */ | 17 | */ |
18 | #include <linux/config.h> | ||
19 | #include <linux/stddef.h> | 18 | #include <linux/stddef.h> |
20 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
21 | #include <linux/init.h> | 20 | #include <linux/init.h> |