diff options
author | Olaf Hering <olaf@aepfle.de> | 2006-10-07 08:08:26 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-10-07 08:08:26 -0400 |
commit | 35a84c2f56e0f77ea2c5a4327b17104705f4c8c7 (patch) | |
tree | 856df3bb21b1a9c7910d956b4ee59be2041b7525 /arch/powerpc | |
parent | 1224f373c974eacc46fe5e1073422c794d0b0d34 (diff) |
[POWERPC] Fix up after irq changes
Remove struct pt_regs * from all handlers.
Also remove the regs argument from get_irq() functions.
Compile tested with arch/powerpc/config/* and
arch/ppc/configs/prep_defconfig
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc')
27 files changed, 60 insertions, 68 deletions
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c index 124dbcba94a8..da9fe254eb94 100644 --- a/arch/powerpc/kernel/ibmebus.c +++ b/arch/powerpc/kernel/ibmebus.c | |||
@@ -319,7 +319,7 @@ EXPORT_SYMBOL(ibmebus_unregister_driver); | |||
319 | 319 | ||
320 | int ibmebus_request_irq(struct ibmebus_dev *dev, | 320 | int ibmebus_request_irq(struct ibmebus_dev *dev, |
321 | u32 ist, | 321 | u32 ist, |
322 | irqreturn_t (*handler)(int, void*, struct pt_regs *), | 322 | irqreturn_t (*handler)(int, void*), |
323 | unsigned long irq_flags, const char * devname, | 323 | unsigned long irq_flags, const char * devname, |
324 | void *dev_id) | 324 | void *dev_id) |
325 | { | 325 | { |
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 5deaab3090b4..829ac18b566c 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
@@ -217,7 +217,7 @@ void do_IRQ(struct pt_regs *regs) | |||
217 | * The value -2 is for buggy hardware and means that this IRQ | 217 | * The value -2 is for buggy hardware and means that this IRQ |
218 | * has already been handled. -- Tom | 218 | * has already been handled. -- Tom |
219 | */ | 219 | */ |
220 | irq = ppc_md.get_irq(regs); | 220 | irq = ppc_md.get_irq(); |
221 | 221 | ||
222 | if (irq != NO_IRQ && irq != NO_IRQ_IGNORE) { | 222 | if (irq != NO_IRQ && irq != NO_IRQ_IGNORE) { |
223 | #ifdef CONFIG_IRQSTACKS | 223 | #ifdef CONFIG_IRQSTACKS |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index d210d0a5006b..5b59bc18dfe7 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -706,7 +706,7 @@ void timer_interrupt(struct pt_regs * regs) | |||
706 | 706 | ||
707 | #ifdef CONFIG_PPC_ISERIES | 707 | #ifdef CONFIG_PPC_ISERIES |
708 | if (hvlpevent_is_pending()) | 708 | if (hvlpevent_is_pending()) |
709 | process_hvlpevents(regs); | 709 | process_hvlpevents(); |
710 | #endif | 710 | #endif |
711 | 711 | ||
712 | #ifdef CONFIG_PPC64 | 712 | #ifdef CONFIG_PPC64 |
diff --git a/arch/powerpc/platforms/82xx/mpc82xx_ads.c b/arch/powerpc/platforms/82xx/mpc82xx_ads.c index 4276f087f26e..0cea42a8053d 100644 --- a/arch/powerpc/platforms/82xx/mpc82xx_ads.c +++ b/arch/powerpc/platforms/82xx/mpc82xx_ads.c | |||
@@ -384,8 +384,7 @@ struct hw_interrupt_type m82xx_pci_ic = { | |||
384 | }; | 384 | }; |
385 | 385 | ||
386 | static void | 386 | static void |
387 | m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc, | 387 | m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc) |
388 | struct pt_regs *regs) | ||
389 | { | 388 | { |
390 | unsigned long stat, mask, pend; | 389 | unsigned long stat, mask, pend; |
391 | int bit; | 390 | int bit; |
@@ -398,7 +397,7 @@ m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc, | |||
398 | break; | 397 | break; |
399 | for (bit = 0; pend != 0; ++bit, pend <<= 1) { | 398 | for (bit = 0; pend != 0; ++bit, pend <<= 1) { |
400 | if (pend & 0x80000000) | 399 | if (pend & 0x80000000) |
401 | __do_IRQ(pci_int_base + bit, regs); | 400 | __do_IRQ(pci_int_base + bit); |
402 | } | 401 | } |
403 | } | 402 | } |
404 | } | 403 | } |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ads.c b/arch/powerpc/platforms/85xx/mpc85xx_ads.c index 8af7126fc6b9..d3e669d69c73 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_ads.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_ads.c | |||
@@ -66,12 +66,11 @@ mpc85xx_pcibios_fixup(void) | |||
66 | 66 | ||
67 | #ifdef CONFIG_CPM2 | 67 | #ifdef CONFIG_CPM2 |
68 | 68 | ||
69 | static void cpm2_cascade(unsigned int irq, struct irq_desc *desc, | 69 | static void cpm2_cascade(unsigned int irq, struct irq_desc *desc) |
70 | struct pt_regs *regs) | ||
71 | { | 70 | { |
72 | int cascade_irq; | 71 | int cascade_irq; |
73 | 72 | ||
74 | while ((cascade_irq = cpm2_get_irq(regs)) >= 0) { | 73 | while ((cascade_irq = cpm2_get_irq()) >= 0) { |
75 | generic_handle_irq(cascade_irq); | 74 | generic_handle_irq(cascade_irq); |
76 | } | 75 | } |
77 | desc->chip->eoi(irq); | 76 | desc->chip->eoi(irq); |
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c index b92fc6976a47..953cd5dd3f54 100644 --- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c +++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c | |||
@@ -132,10 +132,9 @@ mpc85xx_cds_pcibios_fixup(void) | |||
132 | 132 | ||
133 | #ifdef CONFIG_PPC_I8259 | 133 | #ifdef CONFIG_PPC_I8259 |
134 | #warning The i8259 PIC support is currently broken | 134 | #warning The i8259 PIC support is currently broken |
135 | static void mpc85xx_8259_cascade(unsigned int irq, struct | 135 | static void mpc85xx_8259_cascade(unsigned int irq, struct irq_desc *desc) |
136 | irq_desc *desc, struct pt_regs *regs) | ||
137 | { | 136 | { |
138 | unsigned int cascade_irq = i8259_irq(regs); | 137 | unsigned int cascade_irq = i8259_irq(); |
139 | 138 | ||
140 | if (cascade_irq != NO_IRQ) | 139 | if (cascade_irq != NO_IRQ) |
141 | generic_handle_irq(cascade_irq); | 140 | generic_handle_irq(cascade_irq); |
@@ -150,8 +149,10 @@ void __init mpc85xx_cds_pic_init(void) | |||
150 | struct mpic *mpic; | 149 | struct mpic *mpic; |
151 | struct resource r; | 150 | struct resource r; |
152 | struct device_node *np = NULL; | 151 | struct device_node *np = NULL; |
152 | #ifdef CONFIG_PPC_I8259 | ||
153 | struct device_node *cascade_node = NULL; | 153 | struct device_node *cascade_node = NULL; |
154 | int cascade_irq; | 154 | int cascade_irq; |
155 | #endif | ||
155 | 156 | ||
156 | np = of_find_node_by_type(np, "open-pic"); | 157 | np = of_find_node_by_type(np, "open-pic"); |
157 | 158 | ||
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c index 8218703babde..1a1c226ad4d9 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | |||
@@ -53,10 +53,9 @@ unsigned long pci_dram_offset = 0; | |||
53 | 53 | ||
54 | 54 | ||
55 | #ifdef CONFIG_PCI | 55 | #ifdef CONFIG_PCI |
56 | static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc, | 56 | static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc) |
57 | struct pt_regs *regs) | ||
58 | { | 57 | { |
59 | unsigned int cascade_irq = i8259_irq(regs); | 58 | unsigned int cascade_irq = i8259_irq(); |
60 | if (cascade_irq != NO_IRQ) | 59 | if (cascade_irq != NO_IRQ) |
61 | generic_handle_irq(cascade_irq); | 60 | generic_handle_irq(cascade_irq); |
62 | desc->chip->eoi(irq); | 61 | desc->chip->eoi(irq); |
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c index f8768b096f02..a914c12b4060 100644 --- a/arch/powerpc/platforms/cell/interrupt.c +++ b/arch/powerpc/platforms/cell/interrupt.c | |||
@@ -98,8 +98,7 @@ static void iic_ioexc_eoi(unsigned int irq) | |||
98 | { | 98 | { |
99 | } | 99 | } |
100 | 100 | ||
101 | static void iic_ioexc_cascade(unsigned int irq, struct irq_desc *desc, | 101 | static void iic_ioexc_cascade(unsigned int irq, struct irq_desc *desc) |
102 | struct pt_regs *regs) | ||
103 | { | 102 | { |
104 | struct cbe_iic_regs __iomem *node_iic = (void __iomem *)desc->handler_data; | 103 | struct cbe_iic_regs __iomem *node_iic = (void __iomem *)desc->handler_data; |
105 | unsigned int base = (irq & 0xffffff00) | IIC_IRQ_TYPE_IOEXC; | 104 | unsigned int base = (irq & 0xffffff00) | IIC_IRQ_TYPE_IOEXC; |
@@ -140,7 +139,7 @@ static struct irq_chip iic_ioexc_chip = { | |||
140 | }; | 139 | }; |
141 | 140 | ||
142 | /* Get an IRQ number from the pending state register of the IIC */ | 141 | /* Get an IRQ number from the pending state register of the IIC */ |
143 | static unsigned int iic_get_irq(struct pt_regs *regs) | 142 | static unsigned int iic_get_irq(void) |
144 | { | 143 | { |
145 | struct cbe_iic_pending_bits pending; | 144 | struct cbe_iic_pending_bits pending; |
146 | struct iic *iic; | 145 | struct iic *iic; |
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c index 35cd7a5f6834..cae3d13229b9 100644 --- a/arch/powerpc/platforms/chrp/setup.c +++ b/arch/powerpc/platforms/chrp/setup.c | |||
@@ -70,7 +70,7 @@ unsigned long event_scan_interval; | |||
70 | * has to include <linux/interrupt.h> (to get irqreturn_t), which | 70 | * has to include <linux/interrupt.h> (to get irqreturn_t), which |
71 | * causes all sorts of problems. -- paulus | 71 | * causes all sorts of problems. -- paulus |
72 | */ | 72 | */ |
73 | extern irqreturn_t xmon_irq(int, void *, struct pt_regs *); | 73 | extern irqreturn_t xmon_irq(int, void *); |
74 | 74 | ||
75 | extern unsigned long loops_per_jiffy; | 75 | extern unsigned long loops_per_jiffy; |
76 | 76 | ||
@@ -335,10 +335,9 @@ chrp_event_scan(unsigned long unused) | |||
335 | jiffies + event_scan_interval); | 335 | jiffies + event_scan_interval); |
336 | } | 336 | } |
337 | 337 | ||
338 | static void chrp_8259_cascade(unsigned int irq, struct irq_desc *desc, | 338 | static void chrp_8259_cascade(unsigned int irq, struct irq_desc *desc) |
339 | struct pt_regs *regs) | ||
340 | { | 339 | { |
341 | unsigned int cascade_irq = i8259_irq(regs); | 340 | unsigned int cascade_irq = i8259_irq(); |
342 | if (cascade_irq != NO_IRQ) | 341 | if (cascade_irq != NO_IRQ) |
343 | generic_handle_irq(cascade_irq); | 342 | generic_handle_irq(cascade_irq); |
344 | desc->chip->eoi(irq); | 343 | desc->chip->eoi(irq); |
diff --git a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c index cb6f084844f2..bdb475c65cba 100644 --- a/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c +++ b/arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c | |||
@@ -61,8 +61,7 @@ pci_dram_offset = MPC7448_HPC2_PCI_MEM_OFFSET; | |||
61 | extern int tsi108_setup_pci(struct device_node *dev); | 61 | extern int tsi108_setup_pci(struct device_node *dev); |
62 | extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val); | 62 | extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val); |
63 | extern void tsi108_pci_int_init(void); | 63 | extern void tsi108_pci_int_init(void); |
64 | extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc, | 64 | extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc); |
65 | struct pt_regs *regs); | ||
66 | 65 | ||
67 | int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn) | 66 | int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn) |
68 | { | 67 | { |
@@ -200,7 +199,7 @@ static void __init mpc7448_hpc2_init_IRQ(void) | |||
200 | tsi_pic = of_find_node_by_type(NULL, "open-pic"); | 199 | tsi_pic = of_find_node_by_type(NULL, "open-pic"); |
201 | if (tsi_pic) { | 200 | if (tsi_pic) { |
202 | unsigned int size; | 201 | unsigned int size; |
203 | void *prop = get_property(tsi_pic, "reg", &size); | 202 | const void *prop = get_property(tsi_pic, "reg", &size); |
204 | mpic_paddr = of_translate_address(tsi_pic, prop); | 203 | mpic_paddr = of_translate_address(tsi_pic, prop); |
205 | } | 204 | } |
206 | 205 | ||
diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c index 44c245672dd8..5225abfafd9b 100644 --- a/arch/powerpc/platforms/iseries/irq.c +++ b/arch/powerpc/platforms/iseries/irq.c | |||
@@ -85,7 +85,7 @@ static DEFINE_SPINLOCK(pending_irqs_lock); | |||
85 | static int num_pending_irqs; | 85 | static int num_pending_irqs; |
86 | static int pending_irqs[NR_IRQS]; | 86 | static int pending_irqs[NR_IRQS]; |
87 | 87 | ||
88 | static void int_received(struct pci_event *event, struct pt_regs *regs) | 88 | static void int_received(struct pci_event *event) |
89 | { | 89 | { |
90 | int irq; | 90 | int irq; |
91 | 91 | ||
@@ -143,11 +143,11 @@ static void int_received(struct pci_event *event, struct pt_regs *regs) | |||
143 | } | 143 | } |
144 | } | 144 | } |
145 | 145 | ||
146 | static void pci_event_handler(struct HvLpEvent *event, struct pt_regs *regs) | 146 | static void pci_event_handler(struct HvLpEvent *event) |
147 | { | 147 | { |
148 | if (event && (event->xType == HvLpEvent_Type_PciIo)) { | 148 | if (event && (event->xType == HvLpEvent_Type_PciIo)) { |
149 | if (hvlpevent_is_int(event)) | 149 | if (hvlpevent_is_int(event)) |
150 | int_received((struct pci_event *)event, regs); | 150 | int_received((struct pci_event *)event); |
151 | else | 151 | else |
152 | printk(KERN_ERR | 152 | printk(KERN_ERR |
153 | "pci_event_handler: unexpected ack received\n"); | 153 | "pci_event_handler: unexpected ack received\n"); |
@@ -305,7 +305,7 @@ int __init iSeries_allocate_IRQ(HvBusNumber bus, | |||
305 | /* | 305 | /* |
306 | * Get the next pending IRQ. | 306 | * Get the next pending IRQ. |
307 | */ | 307 | */ |
308 | unsigned int iSeries_get_irq(struct pt_regs *regs) | 308 | unsigned int iSeries_get_irq(void) |
309 | { | 309 | { |
310 | int irq = NO_IRQ_IGNORE; | 310 | int irq = NO_IRQ_IGNORE; |
311 | 311 | ||
@@ -316,7 +316,7 @@ unsigned int iSeries_get_irq(struct pt_regs *regs) | |||
316 | } | 316 | } |
317 | #endif /* CONFIG_SMP */ | 317 | #endif /* CONFIG_SMP */ |
318 | if (hvlpevent_is_pending()) | 318 | if (hvlpevent_is_pending()) |
319 | process_hvlpevents(regs); | 319 | process_hvlpevents(); |
320 | 320 | ||
321 | #ifdef CONFIG_PCI | 321 | #ifdef CONFIG_PCI |
322 | if (num_pending_irqs) { | 322 | if (num_pending_irqs) { |
diff --git a/arch/powerpc/platforms/iseries/irq.h b/arch/powerpc/platforms/iseries/irq.h index 1ee8985140e5..69f1b437fc7b 100644 --- a/arch/powerpc/platforms/iseries/irq.h +++ b/arch/powerpc/platforms/iseries/irq.h | |||
@@ -4,6 +4,6 @@ | |||
4 | extern void iSeries_init_IRQ(void); | 4 | extern void iSeries_init_IRQ(void); |
5 | extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32); | 5 | extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32); |
6 | extern void iSeries_activate_IRQs(void); | 6 | extern void iSeries_activate_IRQs(void); |
7 | extern unsigned int iSeries_get_irq(struct pt_regs *); | 7 | extern unsigned int iSeries_get_irq(void); |
8 | 8 | ||
9 | #endif /* _ISERIES_IRQ_H */ | 9 | #endif /* _ISERIES_IRQ_H */ |
diff --git a/arch/powerpc/platforms/iseries/lpevents.c b/arch/powerpc/platforms/iseries/lpevents.c index 98c1c2440aad..e3e929e1b460 100644 --- a/arch/powerpc/platforms/iseries/lpevents.c +++ b/arch/powerpc/platforms/iseries/lpevents.c | |||
@@ -116,7 +116,7 @@ static void hvlpevent_clear_valid(struct HvLpEvent * event) | |||
116 | hvlpevent_invalidate(event); | 116 | hvlpevent_invalidate(event); |
117 | } | 117 | } |
118 | 118 | ||
119 | void process_hvlpevents(struct pt_regs *regs) | 119 | void process_hvlpevents(void) |
120 | { | 120 | { |
121 | struct HvLpEvent * event; | 121 | struct HvLpEvent * event; |
122 | 122 | ||
@@ -144,7 +144,7 @@ void process_hvlpevents(struct pt_regs *regs) | |||
144 | __get_cpu_var(hvlpevent_counts)[event->xType]++; | 144 | __get_cpu_var(hvlpevent_counts)[event->xType]++; |
145 | if (event->xType < HvLpEvent_Type_NumTypes && | 145 | if (event->xType < HvLpEvent_Type_NumTypes && |
146 | lpEventHandler[event->xType]) | 146 | lpEventHandler[event->xType]) |
147 | lpEventHandler[event->xType](event, regs); | 147 | lpEventHandler[event->xType](event); |
148 | else | 148 | else |
149 | printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType ); | 149 | printk(KERN_INFO "Unexpected Lp Event type=%d\n", event->xType ); |
150 | 150 | ||
diff --git a/arch/powerpc/platforms/iseries/mf.c b/arch/powerpc/platforms/iseries/mf.c index 1983b640bac1..b5737d68d6c4 100644 --- a/arch/powerpc/platforms/iseries/mf.c +++ b/arch/powerpc/platforms/iseries/mf.c | |||
@@ -513,7 +513,7 @@ static void handle_ack(struct io_mf_lp_event *event) | |||
513 | * parse it enough to know if it is an interrupt or an | 513 | * parse it enough to know if it is an interrupt or an |
514 | * acknowledge. | 514 | * acknowledge. |
515 | */ | 515 | */ |
516 | static void hv_handler(struct HvLpEvent *event, struct pt_regs *regs) | 516 | static void hv_handler(struct HvLpEvent *event) |
517 | { | 517 | { |
518 | if ((event != NULL) && (event->xType == HvLpEvent_Type_MachineFac)) { | 518 | if ((event != NULL) && (event->xType == HvLpEvent_Type_MachineFac)) { |
519 | if (hvlpevent_is_ack(event)) | 519 | if (hvlpevent_is_ack(event)) |
@@ -847,7 +847,7 @@ static int mf_get_boot_rtc(struct rtc_time *tm) | |||
847 | /* We need to poll here as we are not yet taking interrupts */ | 847 | /* We need to poll here as we are not yet taking interrupts */ |
848 | while (rtc_data.busy) { | 848 | while (rtc_data.busy) { |
849 | if (hvlpevent_is_pending()) | 849 | if (hvlpevent_is_pending()) |
850 | process_hvlpevents(NULL); | 850 | process_hvlpevents(); |
851 | } | 851 | } |
852 | return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm); | 852 | return rtc_set_tm(rtc_data.rc, rtc_data.ce_msg.ce_msg, tm); |
853 | } | 853 | } |
diff --git a/arch/powerpc/platforms/iseries/viopath.c b/arch/powerpc/platforms/iseries/viopath.c index 9baa4ee82592..04e07e5da0c1 100644 --- a/arch/powerpc/platforms/iseries/viopath.c +++ b/arch/powerpc/platforms/iseries/viopath.c | |||
@@ -378,7 +378,7 @@ void vio_set_hostlp(void) | |||
378 | } | 378 | } |
379 | EXPORT_SYMBOL(vio_set_hostlp); | 379 | EXPORT_SYMBOL(vio_set_hostlp); |
380 | 380 | ||
381 | static void vio_handleEvent(struct HvLpEvent *event, struct pt_regs *regs) | 381 | static void vio_handleEvent(struct HvLpEvent *event) |
382 | { | 382 | { |
383 | HvLpIndex remoteLp; | 383 | HvLpIndex remoteLp; |
384 | int subtype = (event->xSubtype & VIOMAJOR_SUBTYPE_MASK) | 384 | int subtype = (event->xSubtype & VIOMAJOR_SUBTYPE_MASK) |
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c index 5da677835c00..39db12890214 100644 --- a/arch/powerpc/platforms/powermac/pic.c +++ b/arch/powerpc/platforms/powermac/pic.c | |||
@@ -42,7 +42,7 @@ | |||
42 | * has to include <linux/interrupt.h> (to get irqreturn_t), which | 42 | * has to include <linux/interrupt.h> (to get irqreturn_t), which |
43 | * causes all sorts of problems. -- paulus | 43 | * causes all sorts of problems. -- paulus |
44 | */ | 44 | */ |
45 | extern irqreturn_t xmon_irq(int, void *, struct pt_regs *); | 45 | extern irqreturn_t xmon_irq(int, void *); |
46 | 46 | ||
47 | #ifdef CONFIG_PPC32 | 47 | #ifdef CONFIG_PPC32 |
48 | struct pmac_irq_hw { | 48 | struct pmac_irq_hw { |
@@ -210,7 +210,7 @@ static struct irq_chip pmac_pic = { | |||
210 | .retrigger = pmac_retrigger, | 210 | .retrigger = pmac_retrigger, |
211 | }; | 211 | }; |
212 | 212 | ||
213 | static irqreturn_t gatwick_action(int cpl, void *dev_id, struct pt_regs *regs) | 213 | static irqreturn_t gatwick_action(int cpl, void *dev_id) |
214 | { | 214 | { |
215 | unsigned long flags; | 215 | unsigned long flags; |
216 | int irq, bits; | 216 | int irq, bits; |
@@ -235,18 +235,18 @@ static irqreturn_t gatwick_action(int cpl, void *dev_id, struct pt_regs *regs) | |||
235 | return rc; | 235 | return rc; |
236 | } | 236 | } |
237 | 237 | ||
238 | static unsigned int pmac_pic_get_irq(struct pt_regs *regs) | 238 | static unsigned int pmac_pic_get_irq(void) |
239 | { | 239 | { |
240 | int irq; | 240 | int irq; |
241 | unsigned long bits = 0; | 241 | unsigned long bits = 0; |
242 | unsigned long flags; | 242 | unsigned long flags; |
243 | 243 | ||
244 | #ifdef CONFIG_SMP | 244 | #ifdef CONFIG_SMP |
245 | void psurge_smp_message_recv(struct pt_regs *); | 245 | void psurge_smp_message_recv(void); |
246 | 246 | ||
247 | /* IPI's are a hack on the powersurge -- Cort */ | 247 | /* IPI's are a hack on the powersurge -- Cort */ |
248 | if ( smp_processor_id() != 0 ) { | 248 | if ( smp_processor_id() != 0 ) { |
249 | psurge_smp_message_recv(regs); | 249 | psurge_smp_message_recv(); |
250 | return NO_IRQ_IGNORE; /* ignore, already handled */ | 250 | return NO_IRQ_IGNORE; /* ignore, already handled */ |
251 | } | 251 | } |
252 | #endif /* CONFIG_SMP */ | 252 | #endif /* CONFIG_SMP */ |
@@ -444,7 +444,7 @@ static void pmac_u3_cascade(unsigned int irq, struct irq_desc *desc) | |||
444 | { | 444 | { |
445 | struct mpic *mpic = desc->handler_data; | 445 | struct mpic *mpic = desc->handler_data; |
446 | 446 | ||
447 | unsigned int cascade_irq = mpic_get_one_irq(mpic, get_irq_regs()); | 447 | unsigned int cascade_irq = mpic_get_one_irq(mpic); |
448 | if (cascade_irq != NO_IRQ) | 448 | if (cascade_irq != NO_IRQ) |
449 | generic_handle_irq(cascade_irq); | 449 | generic_handle_irq(cascade_irq); |
450 | desc->chip->eoi(irq); | 450 | desc->chip->eoi(irq); |
diff --git a/arch/powerpc/platforms/powermac/pic.h b/arch/powerpc/platforms/powermac/pic.h index 664103dfeef9..c44c89f5e532 100644 --- a/arch/powerpc/platforms/powermac/pic.h +++ b/arch/powerpc/platforms/powermac/pic.h | |||
@@ -5,7 +5,7 @@ | |||
5 | 5 | ||
6 | extern struct hw_interrupt_type pmac_pic; | 6 | extern struct hw_interrupt_type pmac_pic; |
7 | 7 | ||
8 | void pmac_pic_init(void); | 8 | extern void pmac_pic_init(void); |
9 | int pmac_get_irq(struct pt_regs *regs); | 9 | extern int pmac_get_irq(void); |
10 | 10 | ||
11 | #endif /* __PPC_PLATFORMS_PMAC_PIC_H */ | 11 | #endif /* __PPC_PLATFORMS_PMAC_PIC_H */ |
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c index 1949b657b092..574cd205b302 100644 --- a/arch/powerpc/platforms/powermac/smp.c +++ b/arch/powerpc/platforms/powermac/smp.c | |||
@@ -160,7 +160,7 @@ static inline void psurge_clr_ipi(int cpu) | |||
160 | */ | 160 | */ |
161 | static unsigned long psurge_smp_message[NR_CPUS]; | 161 | static unsigned long psurge_smp_message[NR_CPUS]; |
162 | 162 | ||
163 | void psurge_smp_message_recv(struct pt_regs *regs) | 163 | void psurge_smp_message_recv(void) |
164 | { | 164 | { |
165 | int cpu = smp_processor_id(); | 165 | int cpu = smp_processor_id(); |
166 | int msg; | 166 | int msg; |
@@ -174,12 +174,12 @@ void psurge_smp_message_recv(struct pt_regs *regs) | |||
174 | /* make sure there is a message there */ | 174 | /* make sure there is a message there */ |
175 | for (msg = 0; msg < 4; msg++) | 175 | for (msg = 0; msg < 4; msg++) |
176 | if (test_and_clear_bit(msg, &psurge_smp_message[cpu])) | 176 | if (test_and_clear_bit(msg, &psurge_smp_message[cpu])) |
177 | smp_message_recv(msg, regs); | 177 | smp_message_recv(msg); |
178 | } | 178 | } |
179 | 179 | ||
180 | irqreturn_t psurge_primary_intr(int irq, void *d, struct pt_regs *regs) | 180 | irqreturn_t psurge_primary_intr(int irq, void *d) |
181 | { | 181 | { |
182 | psurge_smp_message_recv(regs); | 182 | psurge_smp_message_recv(); |
183 | return IRQ_HANDLED; | 183 | return IRQ_HANDLED; |
184 | } | 184 | } |
185 | 185 | ||
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index ad9aec2c6fee..89a8119f988d 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c | |||
@@ -123,7 +123,7 @@ static void __init fwnmi_init(void) | |||
123 | 123 | ||
124 | void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc) | 124 | void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc) |
125 | { | 125 | { |
126 | unsigned int cascade_irq = i8259_irq(get_irq_regs()); | 126 | unsigned int cascade_irq = i8259_irq(); |
127 | if (cascade_irq != NO_IRQ) | 127 | if (cascade_irq != NO_IRQ) |
128 | generic_handle_irq(cascade_irq); | 128 | generic_handle_irq(cascade_irq); |
129 | desc->chip->eoi(irq); | 129 | desc->chip->eoi(irq); |
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index f6bd2f285153..d071abe78ab1 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -308,14 +308,14 @@ static inline unsigned int xics_remap_irq(unsigned int vec) | |||
308 | return NO_IRQ; | 308 | return NO_IRQ; |
309 | } | 309 | } |
310 | 310 | ||
311 | static unsigned int xics_get_irq_direct(struct pt_regs *regs) | 311 | static unsigned int xics_get_irq_direct(void) |
312 | { | 312 | { |
313 | unsigned int cpu = smp_processor_id(); | 313 | unsigned int cpu = smp_processor_id(); |
314 | 314 | ||
315 | return xics_remap_irq(direct_xirr_info_get(cpu)); | 315 | return xics_remap_irq(direct_xirr_info_get(cpu)); |
316 | } | 316 | } |
317 | 317 | ||
318 | static unsigned int xics_get_irq_lpar(struct pt_regs *regs) | 318 | static unsigned int xics_get_irq_lpar(void) |
319 | { | 319 | { |
320 | unsigned int cpu = smp_processor_id(); | 320 | unsigned int cpu = smp_processor_id(); |
321 | 321 | ||
diff --git a/arch/powerpc/sysdev/cpm2_pic.c b/arch/powerpc/sysdev/cpm2_pic.c index 28b018994746..767ee6651adc 100644 --- a/arch/powerpc/sysdev/cpm2_pic.c +++ b/arch/powerpc/sysdev/cpm2_pic.c | |||
@@ -147,7 +147,7 @@ static struct irq_chip cpm2_pic = { | |||
147 | .end = cpm2_end_irq, | 147 | .end = cpm2_end_irq, |
148 | }; | 148 | }; |
149 | 149 | ||
150 | unsigned int cpm2_get_irq(struct pt_regs *regs) | 150 | unsigned int cpm2_get_irq(void) |
151 | { | 151 | { |
152 | int irq; | 152 | int irq; |
153 | unsigned long bits; | 153 | unsigned long bits; |
diff --git a/arch/powerpc/sysdev/cpm2_pic.h b/arch/powerpc/sysdev/cpm2_pic.h index 3c513e5a688e..2840616529e4 100644 --- a/arch/powerpc/sysdev/cpm2_pic.h +++ b/arch/powerpc/sysdev/cpm2_pic.h | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | extern intctl_cpm2_t *cpm2_intctl; | 4 | extern intctl_cpm2_t *cpm2_intctl; |
5 | 5 | ||
6 | extern unsigned int cpm2_get_irq(struct pt_regs *regs); | 6 | extern unsigned int cpm2_get_irq(void); |
7 | 7 | ||
8 | extern void cpm2_pic_init(struct device_node*); | 8 | extern void cpm2_pic_init(struct device_node*); |
9 | 9 | ||
diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c index 26a6a3becd66..0450265d73bb 100644 --- a/arch/powerpc/sysdev/i8259.c +++ b/arch/powerpc/sysdev/i8259.c | |||
@@ -34,7 +34,7 @@ static struct irq_host *i8259_host; | |||
34 | * which is called. It should be noted that polling is broken on some | 34 | * which is called. It should be noted that polling is broken on some |
35 | * IBM and Motorola PReP boxes so we must use the int-ack feature on them. | 35 | * IBM and Motorola PReP boxes so we must use the int-ack feature on them. |
36 | */ | 36 | */ |
37 | unsigned int i8259_irq(struct pt_regs *regs) | 37 | unsigned int i8259_irq(void) |
38 | { | 38 | { |
39 | int irq; | 39 | int irq; |
40 | int lock = 0; | 40 | int lock = 0; |
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c index 6ebdae8e6f69..bc4d4a7f9657 100644 --- a/arch/powerpc/sysdev/ipic.c +++ b/arch/powerpc/sysdev/ipic.c | |||
@@ -709,7 +709,7 @@ void ipic_clear_mcp_status(u32 mask) | |||
709 | } | 709 | } |
710 | 710 | ||
711 | /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ | 711 | /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ |
712 | unsigned int ipic_get_irq(struct pt_regs *regs) | 712 | unsigned int ipic_get_irq(void) |
713 | { | 713 | { |
714 | int irq; | 714 | int irq; |
715 | 715 | ||
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 195215560fd7..ba4833f57d47 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -1217,7 +1217,7 @@ void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask) | |||
1217 | mpic_physmask(cpu_mask & cpus_addr(cpu_online_map)[0])); | 1217 | mpic_physmask(cpu_mask & cpus_addr(cpu_online_map)[0])); |
1218 | } | 1218 | } |
1219 | 1219 | ||
1220 | unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs) | 1220 | unsigned int mpic_get_one_irq(struct mpic *mpic) |
1221 | { | 1221 | { |
1222 | u32 src; | 1222 | u32 src; |
1223 | 1223 | ||
@@ -1230,13 +1230,13 @@ unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs) | |||
1230 | return irq_linear_revmap(mpic->irqhost, src); | 1230 | return irq_linear_revmap(mpic->irqhost, src); |
1231 | } | 1231 | } |
1232 | 1232 | ||
1233 | unsigned int mpic_get_irq(struct pt_regs *regs) | 1233 | unsigned int mpic_get_irq(void) |
1234 | { | 1234 | { |
1235 | struct mpic *mpic = mpic_primary; | 1235 | struct mpic *mpic = mpic_primary; |
1236 | 1236 | ||
1237 | BUG_ON(mpic == NULL); | 1237 | BUG_ON(mpic == NULL); |
1238 | 1238 | ||
1239 | return mpic_get_one_irq(mpic, regs); | 1239 | return mpic_get_one_irq(mpic); |
1240 | } | 1240 | } |
1241 | 1241 | ||
1242 | 1242 | ||
diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c index 0dec010bcbb5..6995f51b9488 100644 --- a/arch/powerpc/sysdev/qe_lib/qe_ic.c +++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c | |||
@@ -300,7 +300,7 @@ static struct irq_host_ops qe_ic_host_ops = { | |||
300 | }; | 300 | }; |
301 | 301 | ||
302 | /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ | 302 | /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ |
303 | unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic, struct pt_regs *regs) | 303 | unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic) |
304 | { | 304 | { |
305 | int irq; | 305 | int irq; |
306 | 306 | ||
@@ -316,7 +316,7 @@ unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic, struct pt_regs *regs) | |||
316 | } | 316 | } |
317 | 317 | ||
318 | /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ | 318 | /* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ |
319 | unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic, struct pt_regs *regs) | 319 | unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic) |
320 | { | 320 | { |
321 | int irq; | 321 | int irq; |
322 | 322 | ||
@@ -333,13 +333,12 @@ unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic, struct pt_regs *regs) | |||
333 | 333 | ||
334 | /* FIXME: We mask all the QE Low interrupts while handling. We should | 334 | /* FIXME: We mask all the QE Low interrupts while handling. We should |
335 | * let other interrupt come in, but BAD interrupts are generated */ | 335 | * let other interrupt come in, but BAD interrupts are generated */ |
336 | void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc, | 336 | void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc) |
337 | struct pt_regs *regs) | ||
338 | { | 337 | { |
339 | struct qe_ic *qe_ic = desc->handler_data; | 338 | struct qe_ic *qe_ic = desc->handler_data; |
340 | struct irq_chip *chip = irq_desc[irq].chip; | 339 | struct irq_chip *chip = irq_desc[irq].chip; |
341 | 340 | ||
342 | unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic, regs); | 341 | unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic); |
343 | 342 | ||
344 | chip->mask_ack(irq); | 343 | chip->mask_ack(irq); |
345 | if (cascade_irq != NO_IRQ) | 344 | if (cascade_irq != NO_IRQ) |
@@ -349,13 +348,12 @@ void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc, | |||
349 | 348 | ||
350 | /* FIXME: We mask all the QE High interrupts while handling. We should | 349 | /* FIXME: We mask all the QE High interrupts while handling. We should |
351 | * let other interrupt come in, but BAD interrupts are generated */ | 350 | * let other interrupt come in, but BAD interrupts are generated */ |
352 | void fastcall qe_ic_cascade_high(unsigned int irq, struct irq_desc *desc, | 351 | void fastcall qe_ic_cascade_high(unsigned int irq, struct irq_desc *desc) |
353 | struct pt_regs *regs) | ||
354 | { | 352 | { |
355 | struct qe_ic *qe_ic = desc->handler_data; | 353 | struct qe_ic *qe_ic = desc->handler_data; |
356 | struct irq_chip *chip = irq_desc[irq].chip; | 354 | struct irq_chip *chip = irq_desc[irq].chip; |
357 | 355 | ||
358 | unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic, regs); | 356 | unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic); |
359 | 357 | ||
360 | chip->mask_ack(irq); | 358 | chip->mask_ack(irq); |
361 | if (cascade_irq != NO_IRQ) | 359 | if (cascade_irq != NO_IRQ) |
diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c index 14f4a1ab6d18..322f86e93de5 100644 --- a/arch/powerpc/sysdev/tsi108_pci.c +++ b/arch/powerpc/sysdev/tsi108_pci.c | |||
@@ -405,8 +405,7 @@ void __init tsi108_pci_int_init(void) | |||
405 | init_pci_source(); | 405 | init_pci_source(); |
406 | } | 406 | } |
407 | 407 | ||
408 | void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc, | 408 | void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc) |
409 | struct pt_regs *regs) | ||
410 | { | 409 | { |
411 | unsigned int cascade_irq = get_pci_source(); | 410 | unsigned int cascade_irq = get_pci_source(); |
412 | if (cascade_irq != NO_IRQ) | 411 | if (cascade_irq != NO_IRQ) |