aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2006-10-07 08:08:26 -0400
committerPaul Mackerras <paulus@samba.org>2006-10-07 08:08:26 -0400
commit35a84c2f56e0f77ea2c5a4327b17104705f4c8c7 (patch)
tree856df3bb21b1a9c7910d956b4ee59be2041b7525 /arch/powerpc
parent1224f373c974eacc46fe5e1073422c794d0b0d34 (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')
-rw-r--r--arch/powerpc/kernel/ibmebus.c2
-rw-r--r--arch/powerpc/kernel/irq.c2
-rw-r--r--arch/powerpc/kernel/time.c2
-rw-r--r--arch/powerpc/platforms/82xx/mpc82xx_ads.c5
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_ads.c5
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_cds.c7
-rw-r--r--arch/powerpc/platforms/86xx/mpc86xx_hpcn.c5
-rw-r--r--arch/powerpc/platforms/cell/interrupt.c5
-rw-r--r--arch/powerpc/platforms/chrp/setup.c7
-rw-r--r--arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c5
-rw-r--r--arch/powerpc/platforms/iseries/irq.c10
-rw-r--r--arch/powerpc/platforms/iseries/irq.h2
-rw-r--r--arch/powerpc/platforms/iseries/lpevents.c4
-rw-r--r--arch/powerpc/platforms/iseries/mf.c4
-rw-r--r--arch/powerpc/platforms/iseries/viopath.c2
-rw-r--r--arch/powerpc/platforms/powermac/pic.c12
-rw-r--r--arch/powerpc/platforms/powermac/pic.h4
-rw-r--r--arch/powerpc/platforms/powermac/smp.c8
-rw-r--r--arch/powerpc/platforms/pseries/setup.c2
-rw-r--r--arch/powerpc/platforms/pseries/xics.c4
-rw-r--r--arch/powerpc/sysdev/cpm2_pic.c2
-rw-r--r--arch/powerpc/sysdev/cpm2_pic.h2
-rw-r--r--arch/powerpc/sysdev/i8259.c2
-rw-r--r--arch/powerpc/sysdev/ipic.c2
-rw-r--r--arch/powerpc/sysdev/mpic.c6
-rw-r--r--arch/powerpc/sysdev/qe_lib/qe_ic.c14
-rw-r--r--arch/powerpc/sysdev/tsi108_pci.c3
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
320int ibmebus_request_irq(struct ibmebus_dev *dev, 320int 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
386static void 386static void
387m82xx_pci_irq_demux(unsigned int irq, struct irq_desc *desc, 387m82xx_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
69static void cpm2_cascade(unsigned int irq, struct irq_desc *desc, 69static 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
135static void mpc85xx_8259_cascade(unsigned int irq, struct 135static 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
56static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc, 56static 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
101static void iic_ioexc_cascade(unsigned int irq, struct irq_desc *desc, 101static 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 */
143static unsigned int iic_get_irq(struct pt_regs *regs) 142static 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 */
73extern irqreturn_t xmon_irq(int, void *, struct pt_regs *); 73extern irqreturn_t xmon_irq(int, void *);
74 74
75extern unsigned long loops_per_jiffy; 75extern 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
338static void chrp_8259_cascade(unsigned int irq, struct irq_desc *desc, 338static 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;
61extern int tsi108_setup_pci(struct device_node *dev); 61extern int tsi108_setup_pci(struct device_node *dev);
62extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val); 62extern void _nmask_and_or_msr(unsigned long nmask, unsigned long or_val);
63extern void tsi108_pci_int_init(void); 63extern void tsi108_pci_int_init(void);
64extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc, 64extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc);
65 struct pt_regs *regs);
66 65
67int mpc7448_hpc2_exclude_device(u_char bus, u_char devfn) 66int 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);
85static int num_pending_irqs; 85static int num_pending_irqs;
86static int pending_irqs[NR_IRQS]; 86static int pending_irqs[NR_IRQS];
87 87
88static void int_received(struct pci_event *event, struct pt_regs *regs) 88static 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
146static void pci_event_handler(struct HvLpEvent *event, struct pt_regs *regs) 146static 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 */
308unsigned int iSeries_get_irq(struct pt_regs *regs) 308unsigned 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 @@
4extern void iSeries_init_IRQ(void); 4extern void iSeries_init_IRQ(void);
5extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32); 5extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32);
6extern void iSeries_activate_IRQs(void); 6extern void iSeries_activate_IRQs(void);
7extern unsigned int iSeries_get_irq(struct pt_regs *); 7extern 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
119void process_hvlpevents(struct pt_regs *regs) 119void 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 */
516static void hv_handler(struct HvLpEvent *event, struct pt_regs *regs) 516static 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}
379EXPORT_SYMBOL(vio_set_hostlp); 379EXPORT_SYMBOL(vio_set_hostlp);
380 380
381static void vio_handleEvent(struct HvLpEvent *event, struct pt_regs *regs) 381static 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 */
45extern irqreturn_t xmon_irq(int, void *, struct pt_regs *); 45extern irqreturn_t xmon_irq(int, void *);
46 46
47#ifdef CONFIG_PPC32 47#ifdef CONFIG_PPC32
48struct pmac_irq_hw { 48struct 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
213static irqreturn_t gatwick_action(int cpl, void *dev_id, struct pt_regs *regs) 213static 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
238static unsigned int pmac_pic_get_irq(struct pt_regs *regs) 238static 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
6extern struct hw_interrupt_type pmac_pic; 6extern struct hw_interrupt_type pmac_pic;
7 7
8void pmac_pic_init(void); 8extern void pmac_pic_init(void);
9int pmac_get_irq(struct pt_regs *regs); 9extern 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 */
161static unsigned long psurge_smp_message[NR_CPUS]; 161static unsigned long psurge_smp_message[NR_CPUS];
162 162
163void psurge_smp_message_recv(struct pt_regs *regs) 163void 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
180irqreturn_t psurge_primary_intr(int irq, void *d, struct pt_regs *regs) 180irqreturn_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
124void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc) 124void 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
311static unsigned int xics_get_irq_direct(struct pt_regs *regs) 311static 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
318static unsigned int xics_get_irq_lpar(struct pt_regs *regs) 318static 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
150unsigned int cpm2_get_irq(struct pt_regs *regs) 150unsigned 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
4extern intctl_cpm2_t *cpm2_intctl; 4extern intctl_cpm2_t *cpm2_intctl;
5 5
6extern unsigned int cpm2_get_irq(struct pt_regs *regs); 6extern unsigned int cpm2_get_irq(void);
7 7
8extern void cpm2_pic_init(struct device_node*); 8extern 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 */
37unsigned int i8259_irq(struct pt_regs *regs) 37unsigned 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. */
712unsigned int ipic_get_irq(struct pt_regs *regs) 712unsigned 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
1220unsigned int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs) 1220unsigned 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
1233unsigned int mpic_get_irq(struct pt_regs *regs) 1233unsigned 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. */
303unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic, struct pt_regs *regs) 303unsigned 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. */
319unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic, struct pt_regs *regs) 319unsigned 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 */
336void fastcall qe_ic_cascade_low(unsigned int irq, struct irq_desc *desc, 336void 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 */
352void fastcall qe_ic_cascade_high(unsigned int irq, struct irq_desc *desc, 351void 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
408void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc, 408void 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)