aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/amiserial.c6
-rw-r--r--drivers/char/applicom.c4
-rw-r--r--drivers/char/cyclades.c4
-rw-r--r--drivers/char/drm/drm_os_linux.h2
-rw-r--r--drivers/char/ec3104_keyb.c2
-rw-r--r--drivers/char/esp.c3
-rw-r--r--drivers/char/ftape/lowlevel/fdc-io.c2
-rw-r--r--drivers/char/hangcheck-timer.c2
-rw-r--r--drivers/char/hpet.c2
-rw-r--r--drivers/char/hvc_console.c4
-rw-r--r--drivers/char/hvcs.c6
-rw-r--r--drivers/char/hvsi.c6
-rw-r--r--drivers/char/ip2/ip2main.c9
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c6
-rw-r--r--drivers/char/ipmi/ipmi_watchdog.c2
-rw-r--r--drivers/char/isicom.c2
-rw-r--r--drivers/char/keyboard.c135
-rw-r--r--drivers/char/mbcs.c3
-rw-r--r--drivers/char/mmtimer.c3
-rw-r--r--drivers/char/mwave/tp3780i.c4
-rw-r--r--drivers/char/mxser.c4
-rw-r--r--drivers/char/nwbutton.c2
-rw-r--r--drivers/char/nwbutton.h2
-rw-r--r--drivers/char/pcmcia/synclink_cs.c5
-rw-r--r--drivers/char/ppdev.c2
-rw-r--r--drivers/char/qtronix.c4
-rw-r--r--drivers/char/rio/rio_linux.c4
-rw-r--r--drivers/char/riscom8.c2
-rw-r--r--drivers/char/rtc.c8
-rw-r--r--drivers/char/ser_a2232.c4
-rw-r--r--drivers/char/serial167.c8
-rw-r--r--drivers/char/snsc.c2
-rw-r--r--drivers/char/snsc_event.c2
-rw-r--r--drivers/char/sonypi.c2
-rw-r--r--drivers/char/specialix.c4
-rw-r--r--drivers/char/stallion.c5
-rw-r--r--drivers/char/sx.c4
-rw-r--r--drivers/char/synclink.c3
-rw-r--r--drivers/char/synclink_gt.c5
-rw-r--r--drivers/char/synclinkmp.c3
-rw-r--r--drivers/char/sysrq.c62
-rw-r--r--drivers/char/tlclk.c4
-rw-r--r--drivers/char/tpm/tpm_tis.c4
-rw-r--r--drivers/char/vme_scc.c18
-rw-r--r--drivers/char/vr41xx_giu.c2
-rw-r--r--drivers/char/watchdog/eurotechwdt.c2
-rw-r--r--drivers/char/watchdog/mpcore_wdt.c2
-rw-r--r--drivers/char/watchdog/pcwd_usb.c2
-rw-r--r--drivers/char/watchdog/s3c2410_wdt.c3
-rw-r--r--drivers/char/watchdog/wdt.c3
-rw-r--r--drivers/char/watchdog/wdt285.c2
-rw-r--r--drivers/char/watchdog/wdt_pci.c3
52 files changed, 181 insertions, 208 deletions
diff --git a/drivers/char/amiserial.c b/drivers/char/amiserial.c
index 486f97c3f4e5..66086fa2d59a 100644
--- a/drivers/char/amiserial.c
+++ b/drivers/char/amiserial.c
@@ -447,7 +447,7 @@ static void check_modem_status(struct async_struct *info)
447 } 447 }
448} 448}
449 449
450static irqreturn_t ser_vbl_int( int irq, void *data, struct pt_regs *regs) 450static irqreturn_t ser_vbl_int( int irq, void *data)
451{ 451{
452 /* vbl is just a periodic interrupt we tie into to update modem status */ 452 /* vbl is just a periodic interrupt we tie into to update modem status */
453 struct async_struct * info = IRQ_ports; 453 struct async_struct * info = IRQ_ports;
@@ -460,7 +460,7 @@ static irqreturn_t ser_vbl_int( int irq, void *data, struct pt_regs *regs)
460 return IRQ_HANDLED; 460 return IRQ_HANDLED;
461} 461}
462 462
463static irqreturn_t ser_rx_int(int irq, void *dev_id, struct pt_regs * regs) 463static irqreturn_t ser_rx_int(int irq, void *dev_id)
464{ 464{
465 struct async_struct * info; 465 struct async_struct * info;
466 466
@@ -480,7 +480,7 @@ static irqreturn_t ser_rx_int(int irq, void *dev_id, struct pt_regs * regs)
480 return IRQ_HANDLED; 480 return IRQ_HANDLED;
481} 481}
482 482
483static irqreturn_t ser_tx_int(int irq, void *dev_id, struct pt_regs * regs) 483static irqreturn_t ser_tx_int(int irq, void *dev_id)
484{ 484{
485 struct async_struct * info; 485 struct async_struct * info;
486 486
diff --git a/drivers/char/applicom.c b/drivers/char/applicom.c
index 10a389dafd60..1f0b752e5de1 100644
--- a/drivers/char/applicom.c
+++ b/drivers/char/applicom.c
@@ -110,7 +110,7 @@ static ssize_t ac_read (struct file *, char __user *, size_t, loff_t *);
110static ssize_t ac_write (struct file *, const char __user *, size_t, loff_t *); 110static ssize_t ac_write (struct file *, const char __user *, size_t, loff_t *);
111static int ac_ioctl(struct inode *, struct file *, unsigned int, 111static int ac_ioctl(struct inode *, struct file *, unsigned int,
112 unsigned long); 112 unsigned long);
113static irqreturn_t ac_interrupt(int, void *, struct pt_regs *); 113static irqreturn_t ac_interrupt(int, void *);
114 114
115static const struct file_operations ac_fops = { 115static const struct file_operations ac_fops = {
116 .owner = THIS_MODULE, 116 .owner = THIS_MODULE,
@@ -617,7 +617,7 @@ static ssize_t ac_read (struct file *filp, char __user *buf, size_t count, loff_
617 } 617 }
618} 618}
619 619
620static irqreturn_t ac_interrupt(int vec, void *dev_instance, struct pt_regs *regs) 620static irqreturn_t ac_interrupt(int vec, void *dev_instance)
621{ 621{
622 unsigned int i; 622 unsigned int i;
623 unsigned int FlagInt; 623 unsigned int FlagInt;
diff --git a/drivers/char/cyclades.c b/drivers/char/cyclades.c
index 87b2fb510871..e608dadece2f 100644
--- a/drivers/char/cyclades.c
+++ b/drivers/char/cyclades.c
@@ -1057,7 +1057,7 @@ detect_isa_irq(void __iomem *address)
1057 received, out buffer empty, modem change, etc. 1057 received, out buffer empty, modem change, etc.
1058 */ 1058 */
1059static irqreturn_t 1059static irqreturn_t
1060cyy_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1060cyy_interrupt(int irq, void *dev_id)
1061{ 1061{
1062 struct tty_struct *tty; 1062 struct tty_struct *tty;
1063 int status; 1063 int status;
@@ -1802,7 +1802,7 @@ cyz_handle_cmd(struct cyclades_card *cinfo)
1802 1802
1803#ifdef CONFIG_CYZ_INTR 1803#ifdef CONFIG_CYZ_INTR
1804static irqreturn_t 1804static irqreturn_t
1805cyz_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1805cyz_interrupt(int irq, void *dev_id)
1806{ 1806{
1807 struct cyclades_card *cinfo; 1807 struct cyclades_card *cinfo;
1808 1808
diff --git a/drivers/char/drm/drm_os_linux.h b/drivers/char/drm/drm_os_linux.h
index 695115d70382..2908b72daa6e 100644
--- a/drivers/char/drm/drm_os_linux.h
+++ b/drivers/char/drm/drm_os_linux.h
@@ -38,7 +38,7 @@
38 drm_device_t *dev = priv->head->dev 38 drm_device_t *dev = priv->head->dev
39 39
40/** IRQ handler arguments and return type and values */ 40/** IRQ handler arguments and return type and values */
41#define DRM_IRQ_ARGS int irq, void *arg, struct pt_regs *regs 41#define DRM_IRQ_ARGS int irq, void *arg
42 42
43/** AGP types */ 43/** AGP types */
44#if __OS_HAS_AGP 44#if __OS_HAS_AGP
diff --git a/drivers/char/ec3104_keyb.c b/drivers/char/ec3104_keyb.c
index abac18b1871c..77f58ed6d59a 100644
--- a/drivers/char/ec3104_keyb.c
+++ b/drivers/char/ec3104_keyb.c
@@ -370,7 +370,7 @@ static void e5_receive(struct e5_struct *k)
370 } 370 }
371} 371}
372 372
373static void ec3104_keyb_interrupt(int irq, void *data, struct pt_regs *regs) 373static void ec3104_keyb_interrupt(int irq, void *data)
374{ 374{
375 struct e5_struct *k = &ec3104_keyb; 375 struct e5_struct *k = &ec3104_keyb;
376 u8 msr, lsr; 376 u8 msr, lsr;
diff --git a/drivers/char/esp.c b/drivers/char/esp.c
index 05788c75d7fc..15a4ea896328 100644
--- a/drivers/char/esp.c
+++ b/drivers/char/esp.c
@@ -615,8 +615,7 @@ static inline void check_modem_status(struct esp_struct *info)
615/* 615/*
616 * This is the serial driver's interrupt routine 616 * This is the serial driver's interrupt routine
617 */ 617 */
618static irqreturn_t rs_interrupt_single(int irq, void *dev_id, 618static irqreturn_t rs_interrupt_single(int irq, void *dev_id)
619 struct pt_regs *regs)
620{ 619{
621 struct esp_struct * info; 620 struct esp_struct * info;
622 unsigned err_status; 621 unsigned err_status;
diff --git a/drivers/char/ftape/lowlevel/fdc-io.c b/drivers/char/ftape/lowlevel/fdc-io.c
index 216532445652..bbcf918f056f 100644
--- a/drivers/char/ftape/lowlevel/fdc-io.c
+++ b/drivers/char/ftape/lowlevel/fdc-io.c
@@ -1243,7 +1243,7 @@ static int fdc_config(void)
1243 TRACE_EXIT 0; 1243 TRACE_EXIT 0;
1244} 1244}
1245 1245
1246static irqreturn_t ftape_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1246static irqreturn_t ftape_interrupt(int irq, void *dev_id)
1247{ 1247{
1248 void (*handler) (void) = *fdc.hook; 1248 void (*handler) (void) = *fdc.hook;
1249 int handled = 0; 1249 int handled = 0;
diff --git a/drivers/char/hangcheck-timer.c b/drivers/char/hangcheck-timer.c
index d69f2ad9a67d..1aa93a752a9c 100644
--- a/drivers/char/hangcheck-timer.c
+++ b/drivers/char/hangcheck-timer.c
@@ -159,7 +159,7 @@ static void hangcheck_fire(unsigned long data)
159 if (hangcheck_dump_tasks) { 159 if (hangcheck_dump_tasks) {
160 printk(KERN_CRIT "Hangcheck: Task state:\n"); 160 printk(KERN_CRIT "Hangcheck: Task state:\n");
161#ifdef CONFIG_MAGIC_SYSRQ 161#ifdef CONFIG_MAGIC_SYSRQ
162 handle_sysrq('t', NULL, NULL); 162 handle_sysrq('t', NULL);
163#endif /* CONFIG_MAGIC_SYSRQ */ 163#endif /* CONFIG_MAGIC_SYSRQ */
164 } 164 }
165 if (hangcheck_reboot) { 165 if (hangcheck_reboot) {
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 58b0eb581114..091a11cd878c 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -116,7 +116,7 @@ static inline void writeq(unsigned long long v, void __iomem *addr)
116} 116}
117#endif 117#endif
118 118
119static irqreturn_t hpet_interrupt(int irq, void *data, struct pt_regs *regs) 119static irqreturn_t hpet_interrupt(int irq, void *data)
120{ 120{
121 struct hpet_dev *devp; 121 struct hpet_dev *devp;
122 unsigned long isr; 122 unsigned long isr;
diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c
index 4053d1cd393f..9902ffad3b12 100644
--- a/drivers/char/hvc_console.c
+++ b/drivers/char/hvc_console.c
@@ -294,7 +294,7 @@ static int hvc_poll(struct hvc_struct *hp);
294 * NOTE: This API isn't used if the console adapter doesn't support interrupts. 294 * NOTE: This API isn't used if the console adapter doesn't support interrupts.
295 * In this case the console is poll driven. 295 * In this case the console is poll driven.
296 */ 296 */
297static irqreturn_t hvc_handle_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 297static irqreturn_t hvc_handle_interrupt(int irq, void *dev_instance)
298{ 298{
299 /* if hvc_poll request a repoll, then kick the hvcd thread */ 299 /* if hvc_poll request a repoll, then kick the hvcd thread */
300 if (hvc_poll(dev_instance)) 300 if (hvc_poll(dev_instance))
@@ -621,7 +621,7 @@ static int hvc_poll(struct hvc_struct *hp)
621 sysrq_pressed = 1; 621 sysrq_pressed = 1;
622 continue; 622 continue;
623 } else if (sysrq_pressed) { 623 } else if (sysrq_pressed) {
624 handle_sysrq(buf[i], NULL, tty); 624 handle_sysrq(buf[i], tty);
625 sysrq_pressed = 0; 625 sysrq_pressed = 0;
626 continue; 626 continue;
627 } 627 }
diff --git a/drivers/char/hvcs.c b/drivers/char/hvcs.c
index 0b89bcde8c52..8728255c9463 100644
--- a/drivers/char/hvcs.c
+++ b/drivers/char/hvcs.c
@@ -313,8 +313,7 @@ static DEFINE_SPINLOCK(hvcs_structs_lock);
313 313
314static void hvcs_unthrottle(struct tty_struct *tty); 314static void hvcs_unthrottle(struct tty_struct *tty);
315static void hvcs_throttle(struct tty_struct *tty); 315static void hvcs_throttle(struct tty_struct *tty);
316static irqreturn_t hvcs_handle_interrupt(int irq, void *dev_instance, 316static irqreturn_t hvcs_handle_interrupt(int irq, void *dev_instance);
317 struct pt_regs *regs);
318 317
319static int hvcs_write(struct tty_struct *tty, 318static int hvcs_write(struct tty_struct *tty,
320 const unsigned char *buf, int count); 319 const unsigned char *buf, int count);
@@ -387,8 +386,7 @@ static void hvcs_throttle(struct tty_struct *tty)
387 * handler taking any further interrupts because they are disabled which means 386 * handler taking any further interrupts because they are disabled which means
388 * the hvcs_struct will always be valid in this handler. 387 * the hvcs_struct will always be valid in this handler.
389 */ 388 */
390static irqreturn_t hvcs_handle_interrupt(int irq, void *dev_instance, 389static irqreturn_t hvcs_handle_interrupt(int irq, void *dev_instance)
391 struct pt_regs *regs)
392{ 390{
393 struct hvcs_struct *hvcsd = dev_instance; 391 struct hvcs_struct *hvcsd = dev_instance;
394 392
diff --git a/drivers/char/hvsi.c b/drivers/char/hvsi.c
index c07dc58d5c1d..2cf63e7305a3 100644
--- a/drivers/char/hvsi.c
+++ b/drivers/char/hvsi.c
@@ -406,7 +406,7 @@ static void hvsi_insert_chars(struct hvsi_struct *hp, const char *buf, int len)
406 hp->sysrq = 1; 406 hp->sysrq = 1;
407 continue; 407 continue;
408 } else if (hp->sysrq) { 408 } else if (hp->sysrq) {
409 handle_sysrq(c, NULL, hp->tty); 409 handle_sysrq(c, hp->tty);
410 hp->sysrq = 0; 410 hp->sysrq = 0;
411 continue; 411 continue;
412 } 412 }
@@ -555,7 +555,7 @@ static void hvsi_send_overflow(struct hvsi_struct *hp)
555 * must get all pending data because we only get an irq on empty->non-empty 555 * must get all pending data because we only get an irq on empty->non-empty
556 * transition 556 * transition
557 */ 557 */
558static irqreturn_t hvsi_interrupt(int irq, void *arg, struct pt_regs *regs) 558static irqreturn_t hvsi_interrupt(int irq, void *arg)
559{ 559{
560 struct hvsi_struct *hp = (struct hvsi_struct *)arg; 560 struct hvsi_struct *hp = (struct hvsi_struct *)arg;
561 struct tty_struct *flip; 561 struct tty_struct *flip;
@@ -616,7 +616,7 @@ static int __init poll_for_state(struct hvsi_struct *hp, int state)
616 unsigned long end_jiffies = jiffies + HVSI_TIMEOUT; 616 unsigned long end_jiffies = jiffies + HVSI_TIMEOUT;
617 617
618 for (;;) { 618 for (;;) {
619 hvsi_interrupt(hp->virq, (void *)hp, NULL); /* get pending data */ 619 hvsi_interrupt(hp->virq, (void *)hp); /* get pending data */
620 620
621 if (hp->state == state) 621 if (hp->state == state)
622 return 0; 622 return 0;
diff --git a/drivers/char/ip2/ip2main.c b/drivers/char/ip2/ip2main.c
index 62ef511d143b..858ba5432c99 100644
--- a/drivers/char/ip2/ip2main.c
+++ b/drivers/char/ip2/ip2main.c
@@ -190,7 +190,7 @@ static int ip2_tiocmset(struct tty_struct *tty, struct file *file,
190 190
191static void set_irq(int, int); 191static void set_irq(int, int);
192static void ip2_interrupt_bh(i2eBordStrPtr pB); 192static void ip2_interrupt_bh(i2eBordStrPtr pB);
193static irqreturn_t ip2_interrupt(int irq, void *dev_id, struct pt_regs * regs); 193static irqreturn_t ip2_interrupt(int irq, void *dev_id);
194static void ip2_poll(unsigned long arg); 194static void ip2_poll(unsigned long arg);
195static inline void service_all_boards(void); 195static inline void service_all_boards(void);
196static void do_input(void *p); 196static void do_input(void *p);
@@ -1154,10 +1154,9 @@ ip2_interrupt_bh(i2eBordStrPtr pB)
1154 1154
1155 1155
1156/******************************************************************************/ 1156/******************************************************************************/
1157/* Function: ip2_interrupt(int irq, void *dev_id, struct pt_regs * regs) */ 1157/* Function: ip2_interrupt(int irq, void *dev_id) */
1158/* Parameters: irq - interrupt number */ 1158/* Parameters: irq - interrupt number */
1159/* pointer to optional device ID structure */ 1159/* pointer to optional device ID structure */
1160/* pointer to register structure */
1161/* Returns: Nothing */ 1160/* Returns: Nothing */
1162/* */ 1161/* */
1163/* Description: */ 1162/* Description: */
@@ -1173,7 +1172,7 @@ ip2_interrupt_bh(i2eBordStrPtr pB)
1173/* */ 1172/* */
1174/******************************************************************************/ 1173/******************************************************************************/
1175static irqreturn_t 1174static irqreturn_t
1176ip2_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1175ip2_interrupt(int irq, void *dev_id)
1177{ 1176{
1178 int i; 1177 int i;
1179 i2eBordStrPtr pB; 1178 i2eBordStrPtr pB;
@@ -1237,7 +1236,7 @@ ip2_poll(unsigned long arg)
1237 // Just polled boards, IRQ = 0 will hit all non-interrupt boards. 1236 // Just polled boards, IRQ = 0 will hit all non-interrupt boards.
1238 // It will NOT poll boards handled by hard interrupts. 1237 // It will NOT poll boards handled by hard interrupts.
1239 // The issue of queued BH interrups is handled in ip2_interrupt(). 1238 // The issue of queued BH interrups is handled in ip2_interrupt().
1240 ip2_interrupt(0, NULL, NULL); 1239 ip2_interrupt(0, NULL);
1241 1240
1242 PollTimer.expires = POLL_TIMEOUT; 1241 PollTimer.expires = POLL_TIMEOUT;
1243 add_timer( &PollTimer ); 1242 add_timer( &PollTimer );
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index b106c45abfc9..24825bdca8f4 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -872,7 +872,7 @@ static void smi_timeout(unsigned long data)
872 add_timer(&(smi_info->si_timer)); 872 add_timer(&(smi_info->si_timer));
873} 873}
874 874
875static irqreturn_t si_irq_handler(int irq, void *data, struct pt_regs *regs) 875static irqreturn_t si_irq_handler(int irq, void *data)
876{ 876{
877 struct smi_info *smi_info = data; 877 struct smi_info *smi_info = data;
878 unsigned long flags; 878 unsigned long flags;
@@ -899,14 +899,14 @@ static irqreturn_t si_irq_handler(int irq, void *data, struct pt_regs *regs)
899 return IRQ_HANDLED; 899 return IRQ_HANDLED;
900} 900}
901 901
902static irqreturn_t si_bt_irq_handler(int irq, void *data, struct pt_regs *regs) 902static irqreturn_t si_bt_irq_handler(int irq, void *data)
903{ 903{
904 struct smi_info *smi_info = data; 904 struct smi_info *smi_info = data;
905 /* We need to clear the IRQ flag for the BT interface. */ 905 /* We need to clear the IRQ flag for the BT interface. */
906 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, 906 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG,
907 IPMI_BT_INTMASK_CLEAR_IRQ_BIT 907 IPMI_BT_INTMASK_CLEAR_IRQ_BIT
908 | IPMI_BT_INTMASK_ENABLE_IRQ_BIT); 908 | IPMI_BT_INTMASK_ENABLE_IRQ_BIT);
909 return si_irq_handler(irq, data, regs); 909 return si_irq_handler(irq, data);
910} 910}
911 911
912static int smi_start_processing(void *send_info, 912static int smi_start_processing(void *send_info,
diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c
index accaaf1a6b69..73f759eaa5a6 100644
--- a/drivers/char/ipmi/ipmi_watchdog.c
+++ b/drivers/char/ipmi/ipmi_watchdog.c
@@ -903,7 +903,7 @@ static void ipmi_register_watchdog(int ipmi_intf)
903 903
904#ifdef HAVE_NMI_HANDLER 904#ifdef HAVE_NMI_HANDLER
905static int 905static int
906ipmi_nmi(void *dev_id, struct pt_regs *regs, int cpu, int handled) 906ipmi_nmi(void *dev_id, int cpu, int handled)
907{ 907{
908 /* If we are not expecting a timeout, ignore it. */ 908 /* If we are not expecting a timeout, ignore it. */
909 if (ipmi_watchdog_state == WDOG_TIMEOUT_NONE) 909 if (ipmi_watchdog_state == WDOG_TIMEOUT_NONE)
diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c
index ea2bbf80ad33..e9e9bf31c369 100644
--- a/drivers/char/isicom.c
+++ b/drivers/char/isicom.c
@@ -546,7 +546,7 @@ static void isicom_bottomhalf(void *data)
546 * Main interrupt handler routine 546 * Main interrupt handler routine
547 */ 547 */
548 548
549static irqreturn_t isicom_interrupt(int irq, void *dev_id, struct pt_regs *regs) 549static irqreturn_t isicom_interrupt(int irq, void *dev_id)
550{ 550{
551 struct isi_board *card = dev_id; 551 struct isi_board *card = dev_id;
552 struct isi_port *port; 552 struct isi_port *port;
diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
index e2011669c7bb..20b6c8b30248 100644
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
@@ -32,6 +32,7 @@
32#include <linux/string.h> 32#include <linux/string.h>
33#include <linux/init.h> 33#include <linux/init.h>
34#include <linux/slab.h> 34#include <linux/slab.h>
35#include <linux/irq.h>
35 36
36#include <linux/kbd_kern.h> 37#include <linux/kbd_kern.h>
37#include <linux/kbd_diacr.h> 38#include <linux/kbd_diacr.h>
@@ -77,7 +78,7 @@ void compute_shiftstate(void);
77 k_slock, k_dead2, k_brl, k_ignore 78 k_slock, k_dead2, k_brl, k_ignore
78 79
79typedef void (k_handler_fn)(struct vc_data *vc, unsigned char value, 80typedef void (k_handler_fn)(struct vc_data *vc, unsigned char value,
80 char up_flag, struct pt_regs *regs); 81 char up_flag);
81static k_handler_fn K_HANDLERS; 82static k_handler_fn K_HANDLERS;
82static k_handler_fn *k_handler[16] = { K_HANDLERS }; 83static k_handler_fn *k_handler[16] = { K_HANDLERS };
83 84
@@ -88,7 +89,7 @@ static k_handler_fn *k_handler[16] = { K_HANDLERS };
88 fn_boot_it, fn_caps_on, fn_compose, fn_SAK,\ 89 fn_boot_it, fn_caps_on, fn_compose, fn_SAK,\
89 fn_dec_console, fn_inc_console, fn_spawn_con, fn_bare_num 90 fn_dec_console, fn_inc_console, fn_spawn_con, fn_bare_num
90 91
91typedef void (fn_handler_fn)(struct vc_data *vc, struct pt_regs *regs); 92typedef void (fn_handler_fn)(struct vc_data *vc);
92static fn_handler_fn FN_HANDLERS; 93static fn_handler_fn FN_HANDLERS;
93static fn_handler_fn *fn_handler[] = { FN_HANDLERS }; 94static fn_handler_fn *fn_handler[] = { FN_HANDLERS };
94 95
@@ -428,7 +429,7 @@ static unsigned int handle_diacr(struct vc_data *vc, unsigned int ch)
428/* 429/*
429 * Special function handlers 430 * Special function handlers
430 */ 431 */
431static void fn_enter(struct vc_data *vc, struct pt_regs *regs) 432static void fn_enter(struct vc_data *vc)
432{ 433{
433 if (diacr) { 434 if (diacr) {
434 if (kbd->kbdmode == VC_UNICODE) 435 if (kbd->kbdmode == VC_UNICODE)
@@ -442,27 +443,28 @@ static void fn_enter(struct vc_data *vc, struct pt_regs *regs)
442 put_queue(vc, 10); 443 put_queue(vc, 10);
443} 444}
444 445
445static void fn_caps_toggle(struct vc_data *vc, struct pt_regs *regs) 446static void fn_caps_toggle(struct vc_data *vc)
446{ 447{
447 if (rep) 448 if (rep)
448 return; 449 return;
449 chg_vc_kbd_led(kbd, VC_CAPSLOCK); 450 chg_vc_kbd_led(kbd, VC_CAPSLOCK);
450} 451}
451 452
452static void fn_caps_on(struct vc_data *vc, struct pt_regs *regs) 453static void fn_caps_on(struct vc_data *vc)
453{ 454{
454 if (rep) 455 if (rep)
455 return; 456 return;
456 set_vc_kbd_led(kbd, VC_CAPSLOCK); 457 set_vc_kbd_led(kbd, VC_CAPSLOCK);
457} 458}
458 459
459static void fn_show_ptregs(struct vc_data *vc, struct pt_regs *regs) 460static void fn_show_ptregs(struct vc_data *vc)
460{ 461{
462 struct pt_regs *regs = get_irq_regs();
461 if (regs) 463 if (regs)
462 show_regs(regs); 464 show_regs(regs);
463} 465}
464 466
465static void fn_hold(struct vc_data *vc, struct pt_regs *regs) 467static void fn_hold(struct vc_data *vc)
466{ 468{
467 struct tty_struct *tty = vc->vc_tty; 469 struct tty_struct *tty = vc->vc_tty;
468 470
@@ -480,12 +482,12 @@ static void fn_hold(struct vc_data *vc, struct pt_regs *regs)
480 stop_tty(tty); 482 stop_tty(tty);
481} 483}
482 484
483static void fn_num(struct vc_data *vc, struct pt_regs *regs) 485static void fn_num(struct vc_data *vc)
484{ 486{
485 if (vc_kbd_mode(kbd,VC_APPLIC)) 487 if (vc_kbd_mode(kbd,VC_APPLIC))
486 applkey(vc, 'P', 1); 488 applkey(vc, 'P', 1);
487 else 489 else
488 fn_bare_num(vc, regs); 490 fn_bare_num(vc);
489} 491}
490 492
491/* 493/*
@@ -494,19 +496,19 @@ static void fn_num(struct vc_data *vc, struct pt_regs *regs)
494 * Bind this to NumLock if you prefer that the NumLock key always 496 * Bind this to NumLock if you prefer that the NumLock key always
495 * changes the NumLock flag. 497 * changes the NumLock flag.
496 */ 498 */
497static void fn_bare_num(struct vc_data *vc, struct pt_regs *regs) 499static void fn_bare_num(struct vc_data *vc)
498{ 500{
499 if (!rep) 501 if (!rep)
500 chg_vc_kbd_led(kbd, VC_NUMLOCK); 502 chg_vc_kbd_led(kbd, VC_NUMLOCK);
501} 503}
502 504
503static void fn_lastcons(struct vc_data *vc, struct pt_regs *regs) 505static void fn_lastcons(struct vc_data *vc)
504{ 506{
505 /* switch to the last used console, ChN */ 507 /* switch to the last used console, ChN */
506 set_console(last_console); 508 set_console(last_console);
507} 509}
508 510
509static void fn_dec_console(struct vc_data *vc, struct pt_regs *regs) 511static void fn_dec_console(struct vc_data *vc)
510{ 512{
511 int i, cur = fg_console; 513 int i, cur = fg_console;
512 514
@@ -523,7 +525,7 @@ static void fn_dec_console(struct vc_data *vc, struct pt_regs *regs)
523 set_console(i); 525 set_console(i);
524} 526}
525 527
526static void fn_inc_console(struct vc_data *vc, struct pt_regs *regs) 528static void fn_inc_console(struct vc_data *vc)
527{ 529{
528 int i, cur = fg_console; 530 int i, cur = fg_console;
529 531
@@ -540,7 +542,7 @@ static void fn_inc_console(struct vc_data *vc, struct pt_regs *regs)
540 set_console(i); 542 set_console(i);
541} 543}
542 544
543static void fn_send_intr(struct vc_data *vc, struct pt_regs *regs) 545static void fn_send_intr(struct vc_data *vc)
544{ 546{
545 struct tty_struct *tty = vc->vc_tty; 547 struct tty_struct *tty = vc->vc_tty;
546 548
@@ -550,37 +552,37 @@ static void fn_send_intr(struct vc_data *vc, struct pt_regs *regs)
550 con_schedule_flip(tty); 552 con_schedule_flip(tty);
551} 553}
552 554
553static void fn_scroll_forw(struct vc_data *vc, struct pt_regs *regs) 555static void fn_scroll_forw(struct vc_data *vc)
554{ 556{
555 scrollfront(vc, 0); 557 scrollfront(vc, 0);
556} 558}
557 559
558static void fn_scroll_back(struct vc_data *vc, struct pt_regs *regs) 560static void fn_scroll_back(struct vc_data *vc)
559{ 561{
560 scrollback(vc, 0); 562 scrollback(vc, 0);
561} 563}
562 564
563static void fn_show_mem(struct vc_data *vc, struct pt_regs *regs) 565static void fn_show_mem(struct vc_data *vc)
564{ 566{
565 show_mem(); 567 show_mem();
566} 568}
567 569
568static void fn_show_state(struct vc_data *vc, struct pt_regs *regs) 570static void fn_show_state(struct vc_data *vc)
569{ 571{
570 show_state(); 572 show_state();
571} 573}
572 574
573static void fn_boot_it(struct vc_data *vc, struct pt_regs *regs) 575static void fn_boot_it(struct vc_data *vc)
574{ 576{
575 ctrl_alt_del(); 577 ctrl_alt_del();
576} 578}
577 579
578static void fn_compose(struct vc_data *vc, struct pt_regs *regs) 580static void fn_compose(struct vc_data *vc)
579{ 581{
580 dead_key_next = 1; 582 dead_key_next = 1;
581} 583}
582 584
583static void fn_spawn_con(struct vc_data *vc, struct pt_regs *regs) 585static void fn_spawn_con(struct vc_data *vc)
584{ 586{
585 spin_lock(&vt_spawn_con.lock); 587 spin_lock(&vt_spawn_con.lock);
586 if (vt_spawn_con.pid) 588 if (vt_spawn_con.pid)
@@ -591,7 +593,7 @@ static void fn_spawn_con(struct vc_data *vc, struct pt_regs *regs)
591 spin_unlock(&vt_spawn_con.lock); 593 spin_unlock(&vt_spawn_con.lock);
592} 594}
593 595
594static void fn_SAK(struct vc_data *vc, struct pt_regs *regs) 596static void fn_SAK(struct vc_data *vc)
595{ 597{
596 struct tty_struct *tty = vc->vc_tty; 598 struct tty_struct *tty = vc->vc_tty;
597 599
@@ -604,7 +606,7 @@ static void fn_SAK(struct vc_data *vc, struct pt_regs *regs)
604 reset_vc(vc); 606 reset_vc(vc);
605} 607}
606 608
607static void fn_null(struct vc_data *vc, struct pt_regs *regs) 609static void fn_null(struct vc_data *vc)
608{ 610{
609 compute_shiftstate(); 611 compute_shiftstate();
610} 612}
@@ -612,11 +614,11 @@ static void fn_null(struct vc_data *vc, struct pt_regs *regs)
612/* 614/*
613 * Special key handlers 615 * Special key handlers
614 */ 616 */
615static void k_ignore(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 617static void k_ignore(struct vc_data *vc, unsigned char value, char up_flag)
616{ 618{
617} 619}
618 620
619static void k_spec(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 621static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
620{ 622{
621 if (up_flag) 623 if (up_flag)
622 return; 624 return;
@@ -626,15 +628,15 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag, struct
626 kbd->kbdmode == VC_MEDIUMRAW) && 628 kbd->kbdmode == VC_MEDIUMRAW) &&
627 value != KVAL(K_SAK)) 629 value != KVAL(K_SAK))
628 return; /* SAK is allowed even in raw mode */ 630 return; /* SAK is allowed even in raw mode */
629 fn_handler[value](vc, regs); 631 fn_handler[value](vc);
630} 632}
631 633
632static void k_lowercase(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 634static void k_lowercase(struct vc_data *vc, unsigned char value, char up_flag)
633{ 635{
634 printk(KERN_ERR "keyboard.c: k_lowercase was called - impossible\n"); 636 printk(KERN_ERR "keyboard.c: k_lowercase was called - impossible\n");
635} 637}
636 638
637static void k_unicode(struct vc_data *vc, unsigned int value, char up_flag, struct pt_regs *regs) 639static void k_unicode(struct vc_data *vc, unsigned int value, char up_flag)
638{ 640{
639 if (up_flag) 641 if (up_flag)
640 return; /* no action, if this is a key release */ 642 return; /* no action, if this is a key release */
@@ -658,41 +660,41 @@ static void k_unicode(struct vc_data *vc, unsigned int value, char up_flag, stru
658 * dead keys modifying the same character. Very useful 660 * dead keys modifying the same character. Very useful
659 * for Vietnamese. 661 * for Vietnamese.
660 */ 662 */
661static void k_deadunicode(struct vc_data *vc, unsigned int value, char up_flag, struct pt_regs *regs) 663static void k_deadunicode(struct vc_data *vc, unsigned int value, char up_flag)
662{ 664{
663 if (up_flag) 665 if (up_flag)
664 return; 666 return;
665 diacr = (diacr ? handle_diacr(vc, value) : value); 667 diacr = (diacr ? handle_diacr(vc, value) : value);
666} 668}
667 669
668static void k_self(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 670static void k_self(struct vc_data *vc, unsigned char value, char up_flag)
669{ 671{
670 k_unicode(vc, value, up_flag, regs); 672 k_unicode(vc, value, up_flag);
671} 673}
672 674
673static void k_dead2(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 675static void k_dead2(struct vc_data *vc, unsigned char value, char up_flag)
674{ 676{
675 k_deadunicode(vc, value, up_flag, regs); 677 k_deadunicode(vc, value, up_flag);
676} 678}
677 679
678/* 680/*
679 * Obsolete - for backwards compatibility only 681 * Obsolete - for backwards compatibility only
680 */ 682 */
681static void k_dead(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 683static void k_dead(struct vc_data *vc, unsigned char value, char up_flag)
682{ 684{
683 static const unsigned char ret_diacr[NR_DEAD] = {'`', '\'', '^', '~', '"', ',' }; 685 static const unsigned char ret_diacr[NR_DEAD] = {'`', '\'', '^', '~', '"', ',' };
684 value = ret_diacr[value]; 686 value = ret_diacr[value];
685 k_deadunicode(vc, value, up_flag, regs); 687 k_deadunicode(vc, value, up_flag);
686} 688}
687 689
688static void k_cons(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 690static void k_cons(struct vc_data *vc, unsigned char value, char up_flag)
689{ 691{
690 if (up_flag) 692 if (up_flag)
691 return; 693 return;
692 set_console(value); 694 set_console(value);
693} 695}
694 696
695static void k_fn(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 697static void k_fn(struct vc_data *vc, unsigned char value, char up_flag)
696{ 698{
697 unsigned v; 699 unsigned v;
698 700
@@ -706,7 +708,7 @@ static void k_fn(struct vc_data *vc, unsigned char value, char up_flag, struct p
706 printk(KERN_ERR "k_fn called with value=%d\n", value); 708 printk(KERN_ERR "k_fn called with value=%d\n", value);
707} 709}
708 710
709static void k_cur(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 711static void k_cur(struct vc_data *vc, unsigned char value, char up_flag)
710{ 712{
711 static const char *cur_chars = "BDCA"; 713 static const char *cur_chars = "BDCA";
712 714
@@ -715,7 +717,7 @@ static void k_cur(struct vc_data *vc, unsigned char value, char up_flag, struct
715 applkey(vc, cur_chars[value], vc_kbd_mode(kbd, VC_CKMODE)); 717 applkey(vc, cur_chars[value], vc_kbd_mode(kbd, VC_CKMODE));
716} 718}
717 719
718static void k_pad(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 720static void k_pad(struct vc_data *vc, unsigned char value, char up_flag)
719{ 721{
720 static const char pad_chars[] = "0123456789+-*/\015,.?()#"; 722 static const char pad_chars[] = "0123456789+-*/\015,.?()#";
721 static const char app_map[] = "pqrstuvwxylSRQMnnmPQS"; 723 static const char app_map[] = "pqrstuvwxylSRQMnnmPQS";
@@ -733,34 +735,34 @@ static void k_pad(struct vc_data *vc, unsigned char value, char up_flag, struct
733 switch (value) { 735 switch (value) {
734 case KVAL(K_PCOMMA): 736 case KVAL(K_PCOMMA):
735 case KVAL(K_PDOT): 737 case KVAL(K_PDOT):
736 k_fn(vc, KVAL(K_REMOVE), 0, regs); 738 k_fn(vc, KVAL(K_REMOVE), 0);
737 return; 739 return;
738 case KVAL(K_P0): 740 case KVAL(K_P0):
739 k_fn(vc, KVAL(K_INSERT), 0, regs); 741 k_fn(vc, KVAL(K_INSERT), 0);
740 return; 742 return;
741 case KVAL(K_P1): 743 case KVAL(K_P1):
742 k_fn(vc, KVAL(K_SELECT), 0, regs); 744 k_fn(vc, KVAL(K_SELECT), 0);
743 return; 745 return;
744 case KVAL(K_P2): 746 case KVAL(K_P2):
745 k_cur(vc, KVAL(K_DOWN), 0, regs); 747 k_cur(vc, KVAL(K_DOWN), 0);
746 return; 748 return;
747 case KVAL(K_P3): 749 case KVAL(K_P3):
748 k_fn(vc, KVAL(K_PGDN), 0, regs); 750 k_fn(vc, KVAL(K_PGDN), 0);
749 return; 751 return;
750 case KVAL(K_P4): 752 case KVAL(K_P4):
751 k_cur(vc, KVAL(K_LEFT), 0, regs); 753 k_cur(vc, KVAL(K_LEFT), 0);
752 return; 754 return;
753 case KVAL(K_P6): 755 case KVAL(K_P6):
754 k_cur(vc, KVAL(K_RIGHT), 0, regs); 756 k_cur(vc, KVAL(K_RIGHT), 0);
755 return; 757 return;
756 case KVAL(K_P7): 758 case KVAL(K_P7):
757 k_fn(vc, KVAL(K_FIND), 0, regs); 759 k_fn(vc, KVAL(K_FIND), 0);
758 return; 760 return;
759 case KVAL(K_P8): 761 case KVAL(K_P8):
760 k_cur(vc, KVAL(K_UP), 0, regs); 762 k_cur(vc, KVAL(K_UP), 0);
761 return; 763 return;
762 case KVAL(K_P9): 764 case KVAL(K_P9):
763 k_fn(vc, KVAL(K_PGUP), 0, regs); 765 k_fn(vc, KVAL(K_PGUP), 0);
764 return; 766 return;
765 case KVAL(K_P5): 767 case KVAL(K_P5):
766 applkey(vc, 'G', vc_kbd_mode(kbd, VC_APPLIC)); 768 applkey(vc, 'G', vc_kbd_mode(kbd, VC_APPLIC));
@@ -772,7 +774,7 @@ static void k_pad(struct vc_data *vc, unsigned char value, char up_flag, struct
772 put_queue(vc, 10); 774 put_queue(vc, 10);
773} 775}
774 776
775static void k_shift(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 777static void k_shift(struct vc_data *vc, unsigned char value, char up_flag)
776{ 778{
777 int old_state = shift_state; 779 int old_state = shift_state;
778 780
@@ -813,7 +815,7 @@ static void k_shift(struct vc_data *vc, unsigned char value, char up_flag, struc
813 } 815 }
814} 816}
815 817
816static void k_meta(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 818static void k_meta(struct vc_data *vc, unsigned char value, char up_flag)
817{ 819{
818 if (up_flag) 820 if (up_flag)
819 return; 821 return;
@@ -825,7 +827,7 @@ static void k_meta(struct vc_data *vc, unsigned char value, char up_flag, struct
825 put_queue(vc, value | 0x80); 827 put_queue(vc, value | 0x80);
826} 828}
827 829
828static void k_ascii(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 830static void k_ascii(struct vc_data *vc, unsigned char value, char up_flag)
829{ 831{
830 int base; 832 int base;
831 833
@@ -847,16 +849,16 @@ static void k_ascii(struct vc_data *vc, unsigned char value, char up_flag, struc
847 npadch = npadch * base + value; 849 npadch = npadch * base + value;
848} 850}
849 851
850static void k_lock(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 852static void k_lock(struct vc_data *vc, unsigned char value, char up_flag)
851{ 853{
852 if (up_flag || rep) 854 if (up_flag || rep)
853 return; 855 return;
854 chg_vc_kbd_lock(kbd, value); 856 chg_vc_kbd_lock(kbd, value);
855} 857}
856 858
857static void k_slock(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 859static void k_slock(struct vc_data *vc, unsigned char value, char up_flag)
858{ 860{
859 k_shift(vc, value, up_flag, regs); 861 k_shift(vc, value, up_flag);
860 if (up_flag || rep) 862 if (up_flag || rep)
861 return; 863 return;
862 chg_vc_kbd_slock(kbd, value); 864 chg_vc_kbd_slock(kbd, value);
@@ -876,25 +878,25 @@ static unsigned brl_nbchords = 1;
876MODULE_PARM_DESC(brl_nbchords, "Number of chords that produce a braille pattern (0 for dead chords)"); 878MODULE_PARM_DESC(brl_nbchords, "Number of chords that produce a braille pattern (0 for dead chords)");
877module_param(brl_nbchords, uint, 0644); 879module_param(brl_nbchords, uint, 0644);
878 880
879static void k_brlcommit(struct vc_data *vc, unsigned int pattern, char up_flag, struct pt_regs *regs) 881static void k_brlcommit(struct vc_data *vc, unsigned int pattern, char up_flag)
880{ 882{
881 static unsigned long chords; 883 static unsigned long chords;
882 static unsigned committed; 884 static unsigned committed;
883 885
884 if (!brl_nbchords) 886 if (!brl_nbchords)
885 k_deadunicode(vc, BRL_UC_ROW | pattern, up_flag, regs); 887 k_deadunicode(vc, BRL_UC_ROW | pattern, up_flag);
886 else { 888 else {
887 committed |= pattern; 889 committed |= pattern;
888 chords++; 890 chords++;
889 if (chords == brl_nbchords) { 891 if (chords == brl_nbchords) {
890 k_unicode(vc, BRL_UC_ROW | committed, up_flag, regs); 892 k_unicode(vc, BRL_UC_ROW | committed, up_flag);
891 chords = 0; 893 chords = 0;
892 committed = 0; 894 committed = 0;
893 } 895 }
894 } 896 }
895} 897}
896 898
897static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 899static void k_brl(struct vc_data *vc, unsigned char value, char up_flag)
898{ 900{
899 static unsigned pressed,committing; 901 static unsigned pressed,committing;
900 static unsigned long releasestart; 902 static unsigned long releasestart;
@@ -906,7 +908,7 @@ static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct
906 } 908 }
907 909
908 if (!value) { 910 if (!value) {
909 k_unicode(vc, BRL_UC_ROW, up_flag, regs); 911 k_unicode(vc, BRL_UC_ROW, up_flag);
910 return; 912 return;
911 } 913 }
912 914
@@ -923,13 +925,13 @@ static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct
923 pressed &= ~(1 << (value - 1)); 925 pressed &= ~(1 << (value - 1));
924 if (!pressed) { 926 if (!pressed) {
925 if (committing) { 927 if (committing) {
926 k_brlcommit(vc, committing, 0, regs); 928 k_brlcommit(vc, committing, 0);
927 committing = 0; 929 committing = 0;
928 } 930 }
929 } 931 }
930 } else { 932 } else {
931 if (committing) { 933 if (committing) {
932 k_brlcommit(vc, committing, 0, regs); 934 k_brlcommit(vc, committing, 0);
933 committing = 0; 935 committing = 0;
934 } 936 }
935 pressed &= ~(1 << (value - 1)); 937 pressed &= ~(1 << (value - 1));
@@ -1133,8 +1135,7 @@ static void kbd_rawcode(unsigned char data)
1133 put_queue(vc, data); 1135 put_queue(vc, data);
1134} 1136}
1135 1137
1136static void kbd_keycode(unsigned int keycode, int down, 1138static void kbd_keycode(unsigned int keycode, int down, int hw_raw)
1137 int hw_raw, struct pt_regs *regs)
1138{ 1139{
1139 struct vc_data *vc = vc_cons[fg_console].d; 1140 struct vc_data *vc = vc_cons[fg_console].d;
1140 unsigned short keysym, *key_map; 1141 unsigned short keysym, *key_map;
@@ -1181,7 +1182,7 @@ static void kbd_keycode(unsigned int keycode, int down,
1181 if (sysrq_down && !down && keycode == sysrq_alt_use) 1182 if (sysrq_down && !down && keycode == sysrq_alt_use)
1182 sysrq_down = 0; 1183 sysrq_down = 0;
1183 if (sysrq_down && down && !rep) { 1184 if (sysrq_down && down && !rep) {
1184 handle_sysrq(kbd_sysrq_xlate[keycode], regs, tty); 1185 handle_sysrq(kbd_sysrq_xlate[keycode], tty);
1185 return; 1186 return;
1186 } 1187 }
1187#endif 1188#endif
@@ -1267,7 +1268,7 @@ static void kbd_keycode(unsigned int keycode, int down,
1267 } 1268 }
1268 } 1269 }
1269 1270
1270 (*k_handler[type])(vc, keysym & 0xff, !down, regs); 1271 (*k_handler[type])(vc, keysym & 0xff, !down);
1271 1272
1272 if (type != KT_SLOCK) 1273 if (type != KT_SLOCK)
1273 kbd->slockstate = 0; 1274 kbd->slockstate = 0;
@@ -1279,7 +1280,7 @@ static void kbd_event(struct input_handle *handle, unsigned int event_type,
1279 if (event_type == EV_MSC && event_code == MSC_RAW && HW_RAW(handle->dev)) 1280 if (event_type == EV_MSC && event_code == MSC_RAW && HW_RAW(handle->dev))
1280 kbd_rawcode(value); 1281 kbd_rawcode(value);
1281 if (event_type == EV_KEY) 1282 if (event_type == EV_KEY)
1282 kbd_keycode(event_code, value, HW_RAW(handle->dev), handle->dev->regs); 1283 kbd_keycode(event_code, value, HW_RAW(handle->dev));
1283 tasklet_schedule(&keyboard_tasklet); 1284 tasklet_schedule(&keyboard_tasklet);
1284 do_poke_blanked_console = 1; 1285 do_poke_blanked_console = 1;
1285 schedule_console_callback(); 1286 schedule_console_callback();
diff --git a/drivers/char/mbcs.c b/drivers/char/mbcs.c
index 636354722658..0afb7ba999cf 100644
--- a/drivers/char/mbcs.c
+++ b/drivers/char/mbcs.c
@@ -516,11 +516,10 @@ int mbcs_gscr_mmap(struct file *fp, struct vm_area_struct *vma)
516 * mbcs_completion_intr_handler - Primary completion handler. 516 * mbcs_completion_intr_handler - Primary completion handler.
517 * @irq: irq 517 * @irq: irq
518 * @arg: soft struct for device 518 * @arg: soft struct for device
519 * @ep: regs
520 * 519 *
521 */ 520 */
522static irqreturn_t 521static irqreturn_t
523mbcs_completion_intr_handler(int irq, void *arg, struct pt_regs *ep) 522mbcs_completion_intr_handler(int irq, void *arg)
524{ 523{
525 struct mbcs_soft *soft = (struct mbcs_soft *)arg; 524 struct mbcs_soft *soft = (struct mbcs_soft *)arg;
526 void *mmr_base; 525 void *mmr_base;
diff --git a/drivers/char/mmtimer.c b/drivers/char/mmtimer.c
index 1f0f2b6dae26..22b9905c1e52 100644
--- a/drivers/char/mmtimer.c
+++ b/drivers/char/mmtimer.c
@@ -422,7 +422,6 @@ static int inline reschedule_periodic_timer(mmtimer_t *x)
422 * mmtimer_interrupt - timer interrupt handler 422 * mmtimer_interrupt - timer interrupt handler
423 * @irq: irq received 423 * @irq: irq received
424 * @dev_id: device the irq came from 424 * @dev_id: device the irq came from
425 * @regs: register state upon receipt of the interrupt
426 * 425 *
427 * Called when one of the comarators matches the counter, This 426 * Called when one of the comarators matches the counter, This
428 * routine will send signals to processes that have requested 427 * routine will send signals to processes that have requested
@@ -433,7 +432,7 @@ static int inline reschedule_periodic_timer(mmtimer_t *x)
433 * registers. 432 * registers.
434 */ 433 */
435static irqreturn_t 434static irqreturn_t
436mmtimer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 435mmtimer_interrupt(int irq, void *dev_id)
437{ 436{
438 int i; 437 int i;
439 unsigned long expires = 0; 438 unsigned long expires = 0;
diff --git a/drivers/char/mwave/tp3780i.c b/drivers/char/mwave/tp3780i.c
index cc3e54dd7234..f282976daaac 100644
--- a/drivers/char/mwave/tp3780i.c
+++ b/drivers/char/mwave/tp3780i.c
@@ -95,14 +95,14 @@ static void EnableSRAM(THINKPAD_BD_DATA * pBDData)
95} 95}
96 96
97 97
98static irqreturn_t UartInterrupt(int irq, void *dev_id, struct pt_regs *regs) 98static irqreturn_t UartInterrupt(int irq, void *dev_id)
99{ 99{
100 PRINTK_3(TRACE_TP3780I, 100 PRINTK_3(TRACE_TP3780I,
101 "tp3780i::UartInterrupt entry irq %x dev_id %p\n", irq, dev_id); 101 "tp3780i::UartInterrupt entry irq %x dev_id %p\n", irq, dev_id);
102 return IRQ_HANDLED; 102 return IRQ_HANDLED;
103} 103}
104 104
105static irqreturn_t DspInterrupt(int irq, void *dev_id, struct pt_regs *regs) 105static irqreturn_t DspInterrupt(int irq, void *dev_id)
106{ 106{
107 pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd; 107 pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd;
108 DSP_3780I_CONFIG_SETTINGS *pSettings = &pDrvData->rBDData.rDspSettings; 108 DSP_3780I_CONFIG_SETTINGS *pSettings = &pDrvData->rBDData.rDspSettings;
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c
index 8253fca8efd5..048d91142c17 100644
--- a/drivers/char/mxser.c
+++ b/drivers/char/mxser.c
@@ -407,7 +407,7 @@ static void mxser_stop(struct tty_struct *);
407static void mxser_start(struct tty_struct *); 407static void mxser_start(struct tty_struct *);
408static void mxser_hangup(struct tty_struct *); 408static void mxser_hangup(struct tty_struct *);
409static void mxser_rs_break(struct tty_struct *, int); 409static void mxser_rs_break(struct tty_struct *, int);
410static irqreturn_t mxser_interrupt(int, void *, struct pt_regs *); 410static irqreturn_t mxser_interrupt(int, void *);
411static void mxser_receive_chars(struct mxser_struct *, int *); 411static void mxser_receive_chars(struct mxser_struct *, int *);
412static void mxser_transmit_chars(struct mxser_struct *); 412static void mxser_transmit_chars(struct mxser_struct *);
413static void mxser_check_modem_status(struct mxser_struct *, int); 413static void mxser_check_modem_status(struct mxser_struct *, int);
@@ -1916,7 +1916,7 @@ static void mxser_rs_break(struct tty_struct *tty, int break_state)
1916/* 1916/*
1917 * This is the serial driver's generic interrupt routine 1917 * This is the serial driver's generic interrupt routine
1918 */ 1918 */
1919static irqreturn_t mxser_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1919static irqreturn_t mxser_interrupt(int irq, void *dev_id)
1920{ 1920{
1921 int status, iir, i; 1921 int status, iir, i;
1922 struct mxser_struct *info; 1922 struct mxser_struct *info;
diff --git a/drivers/char/nwbutton.c b/drivers/char/nwbutton.c
index ea1aa7764f8e..2d264971d839 100644
--- a/drivers/char/nwbutton.c
+++ b/drivers/char/nwbutton.c
@@ -144,7 +144,7 @@ static void button_sequence_finished (unsigned long parameters)
144 * increments the counter. 144 * increments the counter.
145 */ 145 */
146 146
147static irqreturn_t button_handler (int irq, void *dev_id, struct pt_regs *regs) 147static irqreturn_t button_handler (int irq, void *dev_id)
148{ 148{
149 if (button_press_count) { 149 if (button_press_count) {
150 del_timer (&button_timer); 150 del_timer (&button_timer);
diff --git a/drivers/char/nwbutton.h b/drivers/char/nwbutton.h
index ddb7b928dcbb..c3ebc16ce8a7 100644
--- a/drivers/char/nwbutton.h
+++ b/drivers/char/nwbutton.h
@@ -25,7 +25,7 @@ struct button_callback {
25/* Function prototypes: */ 25/* Function prototypes: */
26 26
27static void button_sequence_finished (unsigned long parameters); 27static void button_sequence_finished (unsigned long parameters);
28static irqreturn_t button_handler (int irq, void *dev_id, struct pt_regs *regs); 28static irqreturn_t button_handler (int irq, void *dev_id);
29int button_init (void); 29int button_init (void);
30int button_add_callback (void (*callback) (void), int count); 30int button_add_callback (void (*callback) (void), int count);
31int button_del_callback (void (*callback) (void)); 31int button_del_callback (void (*callback) (void));
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
index 73e324209913..1a0bc30b79d1 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -416,7 +416,7 @@ static void rx_reset_buffers(MGSLPC_INFO *info);
416static int rx_alloc_buffers(MGSLPC_INFO *info); 416static int rx_alloc_buffers(MGSLPC_INFO *info);
417static void rx_free_buffers(MGSLPC_INFO *info); 417static void rx_free_buffers(MGSLPC_INFO *info);
418 418
419static irqreturn_t mgslpc_isr(int irq, void *dev_id, struct pt_regs * regs); 419static irqreturn_t mgslpc_isr(int irq, void *dev_id);
420 420
421/* 421/*
422 * Bottom half interrupt handlers 422 * Bottom half interrupt handlers
@@ -1234,9 +1234,8 @@ static void ri_change(MGSLPC_INFO *info)
1234 * 1234 *
1235 * irq interrupt number that caused interrupt 1235 * irq interrupt number that caused interrupt
1236 * dev_id device ID supplied during interrupt registration 1236 * dev_id device ID supplied during interrupt registration
1237 * regs interrupted processor context
1238 */ 1237 */
1239static irqreturn_t mgslpc_isr(int irq, void *dev_id, struct pt_regs * regs) 1238static irqreturn_t mgslpc_isr(int irq, void *dev_id)
1240{ 1239{
1241 MGSLPC_INFO * info = (MGSLPC_INFO *)dev_id; 1240 MGSLPC_INFO * info = (MGSLPC_INFO *)dev_id;
1242 unsigned short isr; 1241 unsigned short isr;
diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c
index 520d2cf82bc0..efc485edad1c 100644
--- a/drivers/char/ppdev.c
+++ b/drivers/char/ppdev.c
@@ -269,7 +269,7 @@ static ssize_t pp_write (struct file * file, const char __user * buf,
269 return bytes_written; 269 return bytes_written;
270} 270}
271 271
272static void pp_irq (int irq, void * private, struct pt_regs * unused) 272static void pp_irq (int irq, void * private)
273{ 273{
274 struct pp_struct * pp = (struct pp_struct *) private; 274 struct pp_struct * pp = (struct pp_struct *) private;
275 275
diff --git a/drivers/char/qtronix.c b/drivers/char/qtronix.c
index 9d134e98d2a0..5c9477741a30 100644
--- a/drivers/char/qtronix.c
+++ b/drivers/char/qtronix.c
@@ -93,7 +93,7 @@ struct cir_port *cir;
93static unsigned char kbdbytes[5]; 93static unsigned char kbdbytes[5];
94static unsigned char cir_data[32]; /* we only need 16 chars */ 94static unsigned char cir_data[32]; /* we only need 16 chars */
95 95
96static void kbd_int_handler(int irq, void *dev_id, struct pt_regs *regs); 96static void kbd_int_handler(int irq, void *dev_id);
97static int handle_data(unsigned char *p_data); 97static int handle_data(unsigned char *p_data);
98static inline void handle_mouse_event(unsigned char scancode); 98static inline void handle_mouse_event(unsigned char scancode);
99static inline void handle_keyboard_event(unsigned char scancode, int down); 99static inline void handle_keyboard_event(unsigned char scancode, int down);
@@ -197,7 +197,7 @@ int CheckSumOk(u_int8_t byte1, u_int8_t byte2,
197} 197}
198 198
199 199
200static void kbd_int_handler(int irq, void *dev_id, struct pt_regs *regs) 200static void kbd_int_handler(int irq, void *dev_id)
201{ 201{
202 struct cir_port *cir; 202 struct cir_port *cir;
203 int j; 203 int j;
diff --git a/drivers/char/rio/rio_linux.c b/drivers/char/rio/rio_linux.c
index 202a3b0945b7..3bea594600d4 100644
--- a/drivers/char/rio/rio_linux.c
+++ b/drivers/char/rio/rio_linux.c
@@ -363,7 +363,7 @@ static void rio_reset_interrupt(struct Host *HostP)
363} 363}
364 364
365 365
366static irqreturn_t rio_interrupt(int irq, void *ptr, struct pt_regs *regs) 366static irqreturn_t rio_interrupt(int irq, void *ptr)
367{ 367{
368 struct Host *HostP; 368 struct Host *HostP;
369 func_enter(); 369 func_enter();
@@ -417,7 +417,7 @@ static void rio_pollfunc(unsigned long data)
417{ 417{
418 func_enter(); 418 func_enter();
419 419
420 rio_interrupt(0, &p->RIOHosts[data], NULL); 420 rio_interrupt(0, &p->RIOHosts[data]);
421 p->RIOHosts[data].timer.expires = jiffies + rio_poll; 421 p->RIOHosts[data].timer.expires = jiffies + rio_poll;
422 add_timer(&p->RIOHosts[data].timer); 422 add_timer(&p->RIOHosts[data].timer);
423 423
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c
index b0ab3f28cc6a..be68cfb0ae69 100644
--- a/drivers/char/riscom8.c
+++ b/drivers/char/riscom8.c
@@ -550,7 +550,7 @@ static inline void rc_check_modem(struct riscom_board const * bp)
550} 550}
551 551
552/* The main interrupt processing routine */ 552/* The main interrupt processing routine */
553static irqreturn_t rc_interrupt(int irq, void * dev_id, struct pt_regs * regs) 553static irqreturn_t rc_interrupt(int irq, void * dev_id)
554{ 554{
555 unsigned char status; 555 unsigned char status;
556 unsigned char ack; 556 unsigned char ack;
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c
index 656f8c0ca52e..abee7a339462 100644
--- a/drivers/char/rtc.c
+++ b/drivers/char/rtc.c
@@ -113,9 +113,9 @@ static int rtc_has_irq = 1;
113#define hpet_set_rtc_irq_bit(arg) 0 113#define hpet_set_rtc_irq_bit(arg) 0
114#define hpet_rtc_timer_init() do { } while (0) 114#define hpet_rtc_timer_init() do { } while (0)
115#define hpet_rtc_dropped_irq() 0 115#define hpet_rtc_dropped_irq() 0
116static inline irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs) {return 0;} 116static inline irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id) {return 0;}
117#else 117#else
118extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 118extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id);
119#endif 119#endif
120 120
121/* 121/*
@@ -229,7 +229,7 @@ static inline unsigned char rtc_is_updating(void)
229 * (See ./arch/XXXX/kernel/time.c for the set_rtc_mmss() function.) 229 * (See ./arch/XXXX/kernel/time.c for the set_rtc_mmss() function.)
230 */ 230 */
231 231
232irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 232irqreturn_t rtc_interrupt(int irq, void *dev_id)
233{ 233{
234 /* 234 /*
235 * Can be an alarm interrupt, update complete interrupt, 235 * Can be an alarm interrupt, update complete interrupt,
@@ -915,7 +915,7 @@ static const struct file_operations rtc_proc_fops = {
915}; 915};
916 916
917#if defined(RTC_IRQ) && !defined(__sparc__) 917#if defined(RTC_IRQ) && !defined(__sparc__)
918static irqreturn_t (*rtc_int_handler_ptr)(int irq, void *dev_id, struct pt_regs *regs); 918static irq_handler_t rtc_int_handler_ptr;
919#endif 919#endif
920 920
921static int __init rtc_init(void) 921static int __init rtc_init(void)
diff --git a/drivers/char/ser_a2232.c b/drivers/char/ser_a2232.c
index 65c751d0d643..4217d38caef9 100644
--- a/drivers/char/ser_a2232.c
+++ b/drivers/char/ser_a2232.c
@@ -111,7 +111,7 @@
111 111
112/***************************** Prototypes ***************************/ 112/***************************** Prototypes ***************************/
113/* The interrupt service routine */ 113/* The interrupt service routine */
114static irqreturn_t a2232_vbl_inter(int irq, void *data, struct pt_regs *fp); 114static irqreturn_t a2232_vbl_inter(int irq, void *data);
115/* Initialize the port structures */ 115/* Initialize the port structures */
116static void a2232_init_portstructs(void); 116static void a2232_init_portstructs(void);
117/* Initialize and register TTY drivers. */ 117/* Initialize and register TTY drivers. */
@@ -504,7 +504,7 @@ static int a2232_open(struct tty_struct * tty, struct file * filp)
504} 504}
505/*** END OF FUNCTIONS EXPECTED BY TTY DRIVER STRUCTS ***/ 505/*** END OF FUNCTIONS EXPECTED BY TTY DRIVER STRUCTS ***/
506 506
507static irqreturn_t a2232_vbl_inter(int irq, void *data, struct pt_regs *fp) 507static irqreturn_t a2232_vbl_inter(int irq, void *data)
508{ 508{
509#if A2232_IOBUFLEN != 256 509#if A2232_IOBUFLEN != 256
510#error "Re-Implement a2232_vbl_inter()!" 510#error "Re-Implement a2232_vbl_inter()!"
diff --git a/drivers/char/serial167.c b/drivers/char/serial167.c
index f4809c8183cc..6f13f98e3171 100644
--- a/drivers/char/serial167.c
+++ b/drivers/char/serial167.c
@@ -370,7 +370,7 @@ cy_sched_event(struct cyclades_port *info, int event)
370 received, out buffer empty, modem change, etc. 370 received, out buffer empty, modem change, etc.
371 */ 371 */
372static irqreturn_t 372static irqreturn_t
373cd2401_rxerr_interrupt(int irq, void *dev_id, struct pt_regs *fp) 373cd2401_rxerr_interrupt(int irq, void *dev_id)
374{ 374{
375 struct tty_struct *tty; 375 struct tty_struct *tty;
376 struct cyclades_port *info; 376 struct cyclades_port *info;
@@ -451,7 +451,7 @@ cd2401_rxerr_interrupt(int irq, void *dev_id, struct pt_regs *fp)
451} /* cy_rxerr_interrupt */ 451} /* cy_rxerr_interrupt */
452 452
453static irqreturn_t 453static irqreturn_t
454cd2401_modem_interrupt(int irq, void *dev_id, struct pt_regs *fp) 454cd2401_modem_interrupt(int irq, void *dev_id)
455{ 455{
456 struct cyclades_port *info; 456 struct cyclades_port *info;
457 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR; 457 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR;
@@ -506,7 +506,7 @@ cd2401_modem_interrupt(int irq, void *dev_id, struct pt_regs *fp)
506} /* cy_modem_interrupt */ 506} /* cy_modem_interrupt */
507 507
508static irqreturn_t 508static irqreturn_t
509cd2401_tx_interrupt(int irq, void *dev_id, struct pt_regs *fp) 509cd2401_tx_interrupt(int irq, void *dev_id)
510{ 510{
511 struct cyclades_port *info; 511 struct cyclades_port *info;
512 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR; 512 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR;
@@ -626,7 +626,7 @@ cd2401_tx_interrupt(int irq, void *dev_id, struct pt_regs *fp)
626} /* cy_tx_interrupt */ 626} /* cy_tx_interrupt */
627 627
628static irqreturn_t 628static irqreturn_t
629cd2401_rx_interrupt(int irq, void *dev_id, struct pt_regs *fp) 629cd2401_rx_interrupt(int irq, void *dev_id)
630{ 630{
631 struct tty_struct *tty; 631 struct tty_struct *tty;
632 struct cyclades_port *info; 632 struct cyclades_port *info;
diff --git a/drivers/char/snsc.c b/drivers/char/snsc.c
index 07e0b75f2338..52753e723eaa 100644
--- a/drivers/char/snsc.c
+++ b/drivers/char/snsc.c
@@ -34,7 +34,7 @@
34#define SCDRV_TIMEOUT 1000 34#define SCDRV_TIMEOUT 1000
35 35
36static irqreturn_t 36static irqreturn_t
37scdrv_interrupt(int irq, void *subch_data, struct pt_regs *regs) 37scdrv_interrupt(int irq, void *subch_data)
38{ 38{
39 struct subch_data_s *sd = subch_data; 39 struct subch_data_s *sd = subch_data;
40 unsigned long flags; 40 unsigned long flags;
diff --git a/drivers/char/snsc_event.c b/drivers/char/snsc_event.c
index 864854c58866..2f56e8c54897 100644
--- a/drivers/char/snsc_event.c
+++ b/drivers/char/snsc_event.c
@@ -36,7 +36,7 @@ DECLARE_TASKLET(sn_sysctl_event, scdrv_event, 0);
36 * destination. 36 * destination.
37 */ 37 */
38static irqreturn_t 38static irqreturn_t
39scdrv_event_interrupt(int irq, void *subch_data, struct pt_regs *regs) 39scdrv_event_interrupt(int irq, void *subch_data)
40{ 40{
41 struct subch_data_s *sd = subch_data; 41 struct subch_data_s *sd = subch_data;
42 unsigned long flags; 42 unsigned long flags;
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
index d4e434d694b7..c084149153de 100644
--- a/drivers/char/sonypi.c
+++ b/drivers/char/sonypi.c
@@ -826,7 +826,7 @@ static void sonypi_report_input_event(u8 event)
826} 826}
827 827
828/* Interrupt handler: some event is available */ 828/* Interrupt handler: some event is available */
829static irqreturn_t sonypi_irq(int irq, void *dev_id, struct pt_regs *regs) 829static irqreturn_t sonypi_irq(int irq, void *dev_id)
830{ 830{
831 u8 v1, v2, event = 0; 831 u8 v1, v2, event = 0;
832 int i, j; 832 int i, j;
diff --git a/drivers/char/specialix.c b/drivers/char/specialix.c
index 902c48dca3bc..6022495571ae 100644
--- a/drivers/char/specialix.c
+++ b/drivers/char/specialix.c
@@ -200,7 +200,7 @@ static struct specialix_port sx_port[SX_NBOARD * SX_NPORT];
200 200
201#ifdef SPECIALIX_TIMER 201#ifdef SPECIALIX_TIMER
202static struct timer_list missed_irq_timer; 202static struct timer_list missed_irq_timer;
203static irqreturn_t sx_interrupt(int irq, void * dev_id, struct pt_regs * regs); 203static irqreturn_t sx_interrupt(int irq, void * dev_id);
204#endif 204#endif
205 205
206 206
@@ -897,7 +897,7 @@ static inline void sx_check_modem(struct specialix_board * bp)
897 897
898 898
899/* The main interrupt processing routine */ 899/* The main interrupt processing routine */
900static irqreturn_t sx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 900static irqreturn_t sx_interrupt(int irq, void *dev_id)
901{ 901{
902 unsigned char status; 902 unsigned char status;
903 unsigned char ack; 903 unsigned char ack;
diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c
index bd711537ec4e..522e88e395cc 100644
--- a/drivers/char/stallion.c
+++ b/drivers/char/stallion.c
@@ -1927,13 +1927,12 @@ stl_readdone:
1927 * calls off to the approrpriate board interrupt handlers. 1927 * calls off to the approrpriate board interrupt handlers.
1928 */ 1928 */
1929 1929
1930static irqreturn_t stl_intr(int irq, void *dev_id, struct pt_regs *regs) 1930static irqreturn_t stl_intr(int irq, void *dev_id)
1931{ 1931{
1932 stlbrd_t *brdp = (stlbrd_t *) dev_id; 1932 stlbrd_t *brdp = (stlbrd_t *) dev_id;
1933 1933
1934#ifdef DEBUG 1934#ifdef DEBUG
1935 printk("stl_intr(brdp=%x,irq=%d,regs=%x)\n", (int) brdp, irq, 1935 printk("stl_intr(brdp=%x,irq=%d)\n", (int) brdp, irq);
1936 (int) regs);
1937#endif 1936#endif
1938 1937
1939 return IRQ_RETVAL((* brdp->isr)(brdp)); 1938 return IRQ_RETVAL((* brdp->isr)(brdp));
diff --git a/drivers/char/sx.c b/drivers/char/sx.c
index 8fd71a5fc619..5fec626598cd 100644
--- a/drivers/char/sx.c
+++ b/drivers/char/sx.c
@@ -1192,7 +1192,7 @@ static inline void sx_check_modem_signals (struct sx_port *port)
1192 * Small, elegant, clear. 1192 * Small, elegant, clear.
1193 */ 1193 */
1194 1194
1195static irqreturn_t sx_interrupt (int irq, void *ptr, struct pt_regs *regs) 1195static irqreturn_t sx_interrupt (int irq, void *ptr)
1196{ 1196{
1197 struct sx_board *board = ptr; 1197 struct sx_board *board = ptr;
1198 struct sx_port *port; 1198 struct sx_port *port;
@@ -1300,7 +1300,7 @@ static void sx_pollfunc (unsigned long data)
1300 1300
1301 func_enter (); 1301 func_enter ();
1302 1302
1303 sx_interrupt (0, board, NULL); 1303 sx_interrupt (0, board);
1304 1304
1305 init_timer(&board->timer); 1305 init_timer(&board->timer);
1306 1306
diff --git a/drivers/char/synclink.c b/drivers/char/synclink.c
index a4150c4519c4..f2864cc64240 100644
--- a/drivers/char/synclink.c
+++ b/drivers/char/synclink.c
@@ -1698,11 +1698,10 @@ static void mgsl_isr_transmit_dma( struct mgsl_struct *info )
1698 * 1698 *
1699 * irq interrupt number that caused interrupt 1699 * irq interrupt number that caused interrupt
1700 * dev_id device ID supplied during interrupt registration 1700 * dev_id device ID supplied during interrupt registration
1701 * regs interrupted processor context
1702 * 1701 *
1703 * Return Value: None 1702 * Return Value: None
1704 */ 1703 */
1705static irqreturn_t mgsl_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1704static irqreturn_t mgsl_interrupt(int irq, void *dev_id)
1706{ 1705{
1707 struct mgsl_struct * info; 1706 struct mgsl_struct * info;
1708 u16 UscVector; 1707 u16 UscVector;
diff --git a/drivers/char/synclink_gt.c b/drivers/char/synclink_gt.c
index bdc7cb248b8f..d4334c79f8d4 100644
--- a/drivers/char/synclink_gt.c
+++ b/drivers/char/synclink_gt.c
@@ -491,7 +491,7 @@ static void isr_serial(struct slgt_info *info);
491static void isr_rdma(struct slgt_info *info); 491static void isr_rdma(struct slgt_info *info);
492static void isr_txeom(struct slgt_info *info, unsigned short status); 492static void isr_txeom(struct slgt_info *info, unsigned short status);
493static void isr_tdma(struct slgt_info *info); 493static void isr_tdma(struct slgt_info *info);
494static irqreturn_t slgt_interrupt(int irq, void *dev_id, struct pt_regs * regs); 494static irqreturn_t slgt_interrupt(int irq, void *dev_id);
495 495
496static int alloc_dma_bufs(struct slgt_info *info); 496static int alloc_dma_bufs(struct slgt_info *info);
497static void free_dma_bufs(struct slgt_info *info); 497static void free_dma_bufs(struct slgt_info *info);
@@ -2217,9 +2217,8 @@ static void isr_gpio(struct slgt_info *info, unsigned int changed, unsigned int
2217 * 2217 *
2218 * irq interrupt number 2218 * irq interrupt number
2219 * dev_id device ID supplied during interrupt registration 2219 * dev_id device ID supplied during interrupt registration
2220 * regs interrupted processor context
2221 */ 2220 */
2222static irqreturn_t slgt_interrupt(int irq, void *dev_id, struct pt_regs * regs) 2221static irqreturn_t slgt_interrupt(int irq, void *dev_id)
2223{ 2222{
2224 struct slgt_info *info; 2223 struct slgt_info *info;
2225 unsigned int gsr; 2224 unsigned int gsr;
diff --git a/drivers/char/synclinkmp.c b/drivers/char/synclinkmp.c
index 6eb75dcd7961..3e932b681371 100644
--- a/drivers/char/synclinkmp.c
+++ b/drivers/char/synclinkmp.c
@@ -2596,8 +2596,7 @@ void isr_io_pin( SLMP_INFO *info, u16 status )
2596 * dev_id device ID supplied during interrupt registration 2596 * dev_id device ID supplied during interrupt registration
2597 * regs interrupted processor context 2597 * regs interrupted processor context
2598 */ 2598 */
2599static irqreturn_t synclinkmp_interrupt(int irq, void *dev_id, 2599static irqreturn_t synclinkmp_interrupt(int irq, void *dev_id)
2600 struct pt_regs *regs)
2601{ 2600{
2602 SLMP_INFO * info; 2601 SLMP_INFO * info;
2603 unsigned char status, status0, status1=0; 2602 unsigned char status, status0, status1=0;
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
index 6b4d4d1e343d..4c0e08685705 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -35,14 +35,14 @@
35#include <linux/vt_kern.h> 35#include <linux/vt_kern.h>
36#include <linux/workqueue.h> 36#include <linux/workqueue.h>
37#include <linux/kexec.h> 37#include <linux/kexec.h>
38#include <linux/irq.h>
38 39
39#include <asm/ptrace.h> 40#include <asm/ptrace.h>
40 41
41/* Whether we react on sysrq keys or just ignore them */ 42/* Whether we react on sysrq keys or just ignore them */
42int sysrq_enabled = 1; 43int sysrq_enabled = 1;
43 44
44static void sysrq_handle_loglevel(int key, struct pt_regs *pt_regs, 45static void sysrq_handle_loglevel(int key, struct tty_struct *tty)
45 struct tty_struct *tty)
46{ 46{
47 int i; 47 int i;
48 i = key - '0'; 48 i = key - '0';
@@ -58,8 +58,7 @@ static struct sysrq_key_op sysrq_loglevel_op = {
58}; 58};
59 59
60#ifdef CONFIG_VT 60#ifdef CONFIG_VT
61static void sysrq_handle_SAK(int key, struct pt_regs *pt_regs, 61static void sysrq_handle_SAK(int key, struct tty_struct *tty)
62 struct tty_struct *tty)
63{ 62{
64 if (tty) 63 if (tty)
65 do_SAK(tty); 64 do_SAK(tty);
@@ -76,8 +75,7 @@ static struct sysrq_key_op sysrq_SAK_op = {
76#endif 75#endif
77 76
78#ifdef CONFIG_VT 77#ifdef CONFIG_VT
79static void sysrq_handle_unraw(int key, struct pt_regs *pt_regs, 78static void sysrq_handle_unraw(int key, struct tty_struct *tty)
80 struct tty_struct *tty)
81{ 79{
82 struct kbd_struct *kbd = &kbd_table[fg_console]; 80 struct kbd_struct *kbd = &kbd_table[fg_console];
83 81
@@ -95,10 +93,9 @@ static struct sysrq_key_op sysrq_unraw_op = {
95#endif /* CONFIG_VT */ 93#endif /* CONFIG_VT */
96 94
97#ifdef CONFIG_KEXEC 95#ifdef CONFIG_KEXEC
98static void sysrq_handle_crashdump(int key, struct pt_regs *pt_regs, 96static void sysrq_handle_crashdump(int key, struct tty_struct *tty)
99 struct tty_struct *tty)
100{ 97{
101 crash_kexec(pt_regs); 98 crash_kexec(get_irq_regs());
102} 99}
103static struct sysrq_key_op sysrq_crashdump_op = { 100static struct sysrq_key_op sysrq_crashdump_op = {
104 .handler = sysrq_handle_crashdump, 101 .handler = sysrq_handle_crashdump,
@@ -110,8 +107,7 @@ static struct sysrq_key_op sysrq_crashdump_op = {
110#define sysrq_crashdump_op (*(struct sysrq_key_op *)0) 107#define sysrq_crashdump_op (*(struct sysrq_key_op *)0)
111#endif 108#endif
112 109
113static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs, 110static void sysrq_handle_reboot(int key, struct tty_struct *tty)
114 struct tty_struct *tty)
115{ 111{
116 lockdep_off(); 112 lockdep_off();
117 local_irq_enable(); 113 local_irq_enable();
@@ -124,8 +120,7 @@ static struct sysrq_key_op sysrq_reboot_op = {
124 .enable_mask = SYSRQ_ENABLE_BOOT, 120 .enable_mask = SYSRQ_ENABLE_BOOT,
125}; 121};
126 122
127static void sysrq_handle_sync(int key, struct pt_regs *pt_regs, 123static void sysrq_handle_sync(int key, struct tty_struct *tty)
128 struct tty_struct *tty)
129{ 124{
130 emergency_sync(); 125 emergency_sync();
131} 126}
@@ -136,8 +131,7 @@ static struct sysrq_key_op sysrq_sync_op = {
136 .enable_mask = SYSRQ_ENABLE_SYNC, 131 .enable_mask = SYSRQ_ENABLE_SYNC,
137}; 132};
138 133
139static void sysrq_handle_mountro(int key, struct pt_regs *pt_regs, 134static void sysrq_handle_mountro(int key, struct tty_struct *tty)
140 struct tty_struct *tty)
141{ 135{
142 emergency_remount(); 136 emergency_remount();
143} 137}
@@ -149,8 +143,7 @@ static struct sysrq_key_op sysrq_mountro_op = {
149}; 143};
150 144
151#ifdef CONFIG_LOCKDEP 145#ifdef CONFIG_LOCKDEP
152static void sysrq_handle_showlocks(int key, struct pt_regs *pt_regs, 146static void sysrq_handle_showlocks(int key, struct tty_struct *tty)
153 struct tty_struct *tty)
154{ 147{
155 debug_show_all_locks(); 148 debug_show_all_locks();
156} 149}
@@ -164,11 +157,11 @@ static struct sysrq_key_op sysrq_showlocks_op = {
164#define sysrq_showlocks_op (*(struct sysrq_key_op *)0) 157#define sysrq_showlocks_op (*(struct sysrq_key_op *)0)
165#endif 158#endif
166 159
167static void sysrq_handle_showregs(int key, struct pt_regs *pt_regs, 160static void sysrq_handle_showregs(int key, struct tty_struct *tty)
168 struct tty_struct *tty)
169{ 161{
170 if (pt_regs) 162 struct pt_regs *regs = get_irq_regs();
171 show_regs(pt_regs); 163 if (regs)
164 show_regs(regs);
172} 165}
173static struct sysrq_key_op sysrq_showregs_op = { 166static struct sysrq_key_op sysrq_showregs_op = {
174 .handler = sysrq_handle_showregs, 167 .handler = sysrq_handle_showregs,
@@ -177,8 +170,7 @@ static struct sysrq_key_op sysrq_showregs_op = {
177 .enable_mask = SYSRQ_ENABLE_DUMP, 170 .enable_mask = SYSRQ_ENABLE_DUMP,
178}; 171};
179 172
180static void sysrq_handle_showstate(int key, struct pt_regs *pt_regs, 173static void sysrq_handle_showstate(int key, struct tty_struct *tty)
181 struct tty_struct *tty)
182{ 174{
183 show_state(); 175 show_state();
184} 176}
@@ -189,8 +181,7 @@ static struct sysrq_key_op sysrq_showstate_op = {
189 .enable_mask = SYSRQ_ENABLE_DUMP, 181 .enable_mask = SYSRQ_ENABLE_DUMP,
190}; 182};
191 183
192static void sysrq_handle_showmem(int key, struct pt_regs *pt_regs, 184static void sysrq_handle_showmem(int key, struct tty_struct *tty)
193 struct tty_struct *tty)
194{ 185{
195 show_mem(); 186 show_mem();
196} 187}
@@ -215,8 +206,7 @@ static void send_sig_all(int sig)
215 } 206 }
216} 207}
217 208
218static void sysrq_handle_term(int key, struct pt_regs *pt_regs, 209static void sysrq_handle_term(int key, struct tty_struct *tty)
219 struct tty_struct *tty)
220{ 210{
221 send_sig_all(SIGTERM); 211 send_sig_all(SIGTERM);
222 console_loglevel = 8; 212 console_loglevel = 8;
@@ -236,8 +226,7 @@ static void moom_callback(void *ignored)
236 226
237static DECLARE_WORK(moom_work, moom_callback, NULL); 227static DECLARE_WORK(moom_work, moom_callback, NULL);
238 228
239static void sysrq_handle_moom(int key, struct pt_regs *pt_regs, 229static void sysrq_handle_moom(int key, struct tty_struct *tty)
240 struct tty_struct *tty)
241{ 230{
242 schedule_work(&moom_work); 231 schedule_work(&moom_work);
243} 232}
@@ -247,8 +236,7 @@ static struct sysrq_key_op sysrq_moom_op = {
247 .action_msg = "Manual OOM execution", 236 .action_msg = "Manual OOM execution",
248}; 237};
249 238
250static void sysrq_handle_kill(int key, struct pt_regs *pt_regs, 239static void sysrq_handle_kill(int key, struct tty_struct *tty)
251 struct tty_struct *tty)
252{ 240{
253 send_sig_all(SIGKILL); 241 send_sig_all(SIGKILL);
254 console_loglevel = 8; 242 console_loglevel = 8;
@@ -260,8 +248,7 @@ static struct sysrq_key_op sysrq_kill_op = {
260 .enable_mask = SYSRQ_ENABLE_SIGNAL, 248 .enable_mask = SYSRQ_ENABLE_SIGNAL,
261}; 249};
262 250
263static void sysrq_handle_unrt(int key, struct pt_regs *pt_regs, 251static void sysrq_handle_unrt(int key, struct tty_struct *tty)
264 struct tty_struct *tty)
265{ 252{
266 normalize_rt_tasks(); 253 normalize_rt_tasks();
267} 254}
@@ -361,8 +348,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
361 * This is the non-locking version of handle_sysrq. It must/can only be called 348 * This is the non-locking version of handle_sysrq. It must/can only be called
362 * by sysrq key handlers, as they are inside of the lock 349 * by sysrq key handlers, as they are inside of the lock
363 */ 350 */
364void __handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty, 351void __handle_sysrq(int key, struct tty_struct *tty, int check_mask)
365 int check_mask)
366{ 352{
367 struct sysrq_key_op *op_p; 353 struct sysrq_key_op *op_p;
368 int orig_log_level; 354 int orig_log_level;
@@ -384,7 +370,7 @@ void __handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty,
384 (sysrq_enabled & op_p->enable_mask)) { 370 (sysrq_enabled & op_p->enable_mask)) {
385 printk("%s\n", op_p->action_msg); 371 printk("%s\n", op_p->action_msg);
386 console_loglevel = orig_log_level; 372 console_loglevel = orig_log_level;
387 op_p->handler(key, pt_regs, tty); 373 op_p->handler(key, tty);
388 } else { 374 } else {
389 printk("This sysrq operation is disabled.\n"); 375 printk("This sysrq operation is disabled.\n");
390 } 376 }
@@ -413,11 +399,11 @@ void __handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty,
413 * This function is called by the keyboard handler when SysRq is pressed 399 * This function is called by the keyboard handler when SysRq is pressed
414 * and any other keycode arrives. 400 * and any other keycode arrives.
415 */ 401 */
416void handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty) 402void handle_sysrq(int key, struct tty_struct *tty)
417{ 403{
418 if (!sysrq_enabled) 404 if (!sysrq_enabled)
419 return; 405 return;
420 __handle_sysrq(key, pt_regs, tty, 1); 406 __handle_sysrq(key, tty, 1);
421} 407}
422EXPORT_SYMBOL(handle_sysrq); 408EXPORT_SYMBOL(handle_sysrq);
423 409
diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c
index d2c5ba4e83b8..2444a0e24b31 100644
--- a/drivers/char/tlclk.c
+++ b/drivers/char/tlclk.c
@@ -193,7 +193,7 @@ static DEFINE_SPINLOCK(event_lock);
193 193
194static int tlclk_major = TLCLK_MAJOR; 194static int tlclk_major = TLCLK_MAJOR;
195 195
196static irqreturn_t tlclk_interrupt(int irq, void *dev_id, struct pt_regs *regs); 196static irqreturn_t tlclk_interrupt(int irq, void *dev_id);
197 197
198static DECLARE_WAIT_QUEUE_HEAD(wq); 198static DECLARE_WAIT_QUEUE_HEAD(wq);
199 199
@@ -856,7 +856,7 @@ static void switchover_timeout(unsigned long data)
856 wake_up(&wq); 856 wake_up(&wq);
857} 857}
858 858
859static irqreturn_t tlclk_interrupt(int irq, void *dev_id, struct pt_regs *regs) 859static irqreturn_t tlclk_interrupt(int irq, void *dev_id)
860{ 860{
861 unsigned long flags; 861 unsigned long flags;
862 862
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index ee7ac6f43c65..483f3f60013c 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -377,7 +377,7 @@ static struct tpm_vendor_specific tpm_tis = {
377 .fops = &tis_ops,}, 377 .fops = &tis_ops,},
378}; 378};
379 379
380static irqreturn_t tis_int_probe(int irq, void *dev_id, struct pt_regs *regs) 380static irqreturn_t tis_int_probe(int irq, void *dev_id)
381{ 381{
382 struct tpm_chip *chip = (struct tpm_chip *) dev_id; 382 struct tpm_chip *chip = (struct tpm_chip *) dev_id;
383 u32 interrupt; 383 u32 interrupt;
@@ -397,7 +397,7 @@ static irqreturn_t tis_int_probe(int irq, void *dev_id, struct pt_regs *regs)
397 return IRQ_HANDLED; 397 return IRQ_HANDLED;
398} 398}
399 399
400static irqreturn_t tis_int_handler(int irq, void *dev_id, struct pt_regs *regs) 400static irqreturn_t tis_int_handler(int irq, void *dev_id)
401{ 401{
402 struct tpm_chip *chip = (struct tpm_chip *) dev_id; 402 struct tpm_chip *chip = (struct tpm_chip *) dev_id;
403 u32 interrupt; 403 u32 interrupt;
diff --git a/drivers/char/vme_scc.c b/drivers/char/vme_scc.c
index c2ca31eb850b..0cdbaa70cf9f 100644
--- a/drivers/char/vme_scc.c
+++ b/drivers/char/vme_scc.c
@@ -81,10 +81,10 @@ static int scc_ioctl(struct tty_struct * tty, struct file * filp,
81 unsigned int cmd, unsigned long arg); 81 unsigned int cmd, unsigned long arg);
82static void scc_throttle(struct tty_struct *tty); 82static void scc_throttle(struct tty_struct *tty);
83static void scc_unthrottle(struct tty_struct *tty); 83static void scc_unthrottle(struct tty_struct *tty);
84static irqreturn_t scc_tx_int(int irq, void *data, struct pt_regs *fp); 84static irqreturn_t scc_tx_int(int irq, void *data);
85static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp); 85static irqreturn_t scc_rx_int(int irq, void *data);
86static irqreturn_t scc_stat_int(int irq, void *data, struct pt_regs *fp); 86static irqreturn_t scc_stat_int(int irq, void *data);
87static irqreturn_t scc_spcond_int(int irq, void *data, struct pt_regs *fp); 87static irqreturn_t scc_spcond_int(int irq, void *data);
88static void scc_setsignals(struct scc_port *port, int dtr, int rts); 88static void scc_setsignals(struct scc_port *port, int dtr, int rts);
89static void scc_break_ctl(struct tty_struct *tty, int break_state); 89static void scc_break_ctl(struct tty_struct *tty, int break_state);
90 90
@@ -419,7 +419,7 @@ module_init(vme_scc_init);
419 * Interrupt handlers 419 * Interrupt handlers
420 *--------------------------------------------------------------------------*/ 420 *--------------------------------------------------------------------------*/
421 421
422static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp) 422static irqreturn_t scc_rx_int(int irq, void *data)
423{ 423{
424 unsigned char ch; 424 unsigned char ch;
425 struct scc_port *port = data; 425 struct scc_port *port = data;
@@ -440,7 +440,7 @@ static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp)
440 */ 440 */
441 if (SCCread(INT_PENDING_REG) & 441 if (SCCread(INT_PENDING_REG) &
442 (port->channel == CHANNEL_A ? IPR_A_RX : IPR_B_RX)) { 442 (port->channel == CHANNEL_A ? IPR_A_RX : IPR_B_RX)) {
443 scc_spcond_int (irq, data, fp); 443 scc_spcond_int (irq, data);
444 return IRQ_HANDLED; 444 return IRQ_HANDLED;
445 } 445 }
446 446
@@ -451,7 +451,7 @@ static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp)
451} 451}
452 452
453 453
454static irqreturn_t scc_spcond_int(int irq, void *data, struct pt_regs *fp) 454static irqreturn_t scc_spcond_int(int irq, void *data)
455{ 455{
456 struct scc_port *port = data; 456 struct scc_port *port = data;
457 struct tty_struct *tty = port->gs.tty; 457 struct tty_struct *tty = port->gs.tty;
@@ -496,7 +496,7 @@ static irqreturn_t scc_spcond_int(int irq, void *data, struct pt_regs *fp)
496} 496}
497 497
498 498
499static irqreturn_t scc_tx_int(int irq, void *data, struct pt_regs *fp) 499static irqreturn_t scc_tx_int(int irq, void *data)
500{ 500{
501 struct scc_port *port = data; 501 struct scc_port *port = data;
502 SCC_ACCESS_INIT(port); 502 SCC_ACCESS_INIT(port);
@@ -538,7 +538,7 @@ static irqreturn_t scc_tx_int(int irq, void *data, struct pt_regs *fp)
538} 538}
539 539
540 540
541static irqreturn_t scc_stat_int(int irq, void *data, struct pt_regs *fp) 541static irqreturn_t scc_stat_int(int irq, void *data)
542{ 542{
543 struct scc_port *port = data; 543 struct scc_port *port = data;
544 unsigned channel = port->channel; 544 unsigned channel = port->channel;
diff --git a/drivers/char/vr41xx_giu.c b/drivers/char/vr41xx_giu.c
index 8116a47b80f4..8e7949305171 100644
--- a/drivers/char/vr41xx_giu.c
+++ b/drivers/char/vr41xx_giu.c
@@ -221,7 +221,7 @@ static struct hw_interrupt_type giuint_high_irq_type = {
221 .end = end_giuint_high_irq, 221 .end = end_giuint_high_irq,
222}; 222};
223 223
224static int giu_get_irq(unsigned int irq, struct pt_regs *regs) 224static int giu_get_irq(unsigned int irq)
225{ 225{
226 uint16_t pendl, pendh, maskl, maskh; 226 uint16_t pendl, pendh, maskl, maskh;
227 int i; 227 int i;
diff --git a/drivers/char/watchdog/eurotechwdt.c b/drivers/char/watchdog/eurotechwdt.c
index 4f4269754c46..e228d6e173ce 100644
--- a/drivers/char/watchdog/eurotechwdt.c
+++ b/drivers/char/watchdog/eurotechwdt.c
@@ -153,7 +153,7 @@ static void eurwdt_activate_timer(void)
153 * Kernel methods. 153 * Kernel methods.
154 */ 154 */
155 155
156static irqreturn_t eurwdt_interrupt(int irq, void *dev_id, struct pt_regs *regs) 156static irqreturn_t eurwdt_interrupt(int irq, void *dev_id)
157{ 157{
158 printk(KERN_CRIT "timeout WDT timeout\n"); 158 printk(KERN_CRIT "timeout WDT timeout\n");
159 159
diff --git a/drivers/char/watchdog/mpcore_wdt.c b/drivers/char/watchdog/mpcore_wdt.c
index 02d336ace504..3404a9c67f08 100644
--- a/drivers/char/watchdog/mpcore_wdt.c
+++ b/drivers/char/watchdog/mpcore_wdt.c
@@ -64,7 +64,7 @@ MODULE_PARM_DESC(mpcore_noboot, "MPcore watchdog action, set to 1 to ignore rebo
64 * This is the interrupt handler. Note that we only use this 64 * This is the interrupt handler. Note that we only use this
65 * in testing mode, so don't actually do a reboot here. 65 * in testing mode, so don't actually do a reboot here.
66 */ 66 */
67static irqreturn_t mpcore_wdt_fire(int irq, void *arg, struct pt_regs *regs) 67static irqreturn_t mpcore_wdt_fire(int irq, void *arg)
68{ 68{
69 struct mpcore_wdt *wdt = arg; 69 struct mpcore_wdt *wdt = arg;
70 70
diff --git a/drivers/char/watchdog/pcwd_usb.c b/drivers/char/watchdog/pcwd_usb.c
index 77662cb0ac46..bda45334d802 100644
--- a/drivers/char/watchdog/pcwd_usb.c
+++ b/drivers/char/watchdog/pcwd_usb.c
@@ -158,7 +158,7 @@ static struct usb_driver usb_pcwd_driver = {
158}; 158};
159 159
160 160
161static void usb_pcwd_intr_done(struct urb *urb, struct pt_regs *regs) 161static void usb_pcwd_intr_done(struct urb *urb)
162{ 162{
163 struct usb_pcwd_private *usb_pcwd = (struct usb_pcwd_private *)urb->context; 163 struct usb_pcwd_private *usb_pcwd = (struct usb_pcwd_private *)urb->context;
164 unsigned char *data = usb_pcwd->intr_buffer; 164 unsigned char *data = usb_pcwd->intr_buffer;
diff --git a/drivers/char/watchdog/s3c2410_wdt.c b/drivers/char/watchdog/s3c2410_wdt.c
index b36a04ae9ab8..68b1ca976d53 100644
--- a/drivers/char/watchdog/s3c2410_wdt.c
+++ b/drivers/char/watchdog/s3c2410_wdt.c
@@ -336,8 +336,7 @@ static struct miscdevice s3c2410wdt_miscdev = {
336 336
337/* interrupt handler code */ 337/* interrupt handler code */
338 338
339static irqreturn_t s3c2410wdt_irq(int irqno, void *param, 339static irqreturn_t s3c2410wdt_irq(int irqno, void *param)
340 struct pt_regs *regs)
341{ 340{
342 printk(KERN_INFO PFX "Watchdog timer expired!\n"); 341 printk(KERN_INFO PFX "Watchdog timer expired!\n");
343 342
diff --git a/drivers/char/watchdog/wdt.c b/drivers/char/watchdog/wdt.c
index 13f23f4a2233..517fbd8643f8 100644
--- a/drivers/char/watchdog/wdt.c
+++ b/drivers/char/watchdog/wdt.c
@@ -225,14 +225,13 @@ static int wdt_get_temperature(int *temperature)
225 * wdt_interrupt: 225 * wdt_interrupt:
226 * @irq: Interrupt number 226 * @irq: Interrupt number
227 * @dev_id: Unused as we don't allow multiple devices. 227 * @dev_id: Unused as we don't allow multiple devices.
228 * @regs: Unused.
229 * 228 *
230 * Handle an interrupt from the board. These are raised when the status 229 * Handle an interrupt from the board. These are raised when the status
231 * map changes in what the board considers an interesting way. That means 230 * map changes in what the board considers an interesting way. That means
232 * a failure condition occurring. 231 * a failure condition occurring.
233 */ 232 */
234 233
235static irqreturn_t wdt_interrupt(int irq, void *dev_id, struct pt_regs *regs) 234static irqreturn_t wdt_interrupt(int irq, void *dev_id)
236{ 235{
237 /* 236 /*
238 * Read the status register see what is up and 237 * Read the status register see what is up and
diff --git a/drivers/char/watchdog/wdt285.c b/drivers/char/watchdog/wdt285.c
index 89a249e23fde..e4cf661dc890 100644
--- a/drivers/char/watchdog/wdt285.c
+++ b/drivers/char/watchdog/wdt285.c
@@ -46,7 +46,7 @@ static unsigned long timer_alive;
46/* 46/*
47 * If the timer expires.. 47 * If the timer expires..
48 */ 48 */
49static void watchdog_fire(int irq, void *dev_id, struct pt_regs *regs) 49static void watchdog_fire(int irq, void *dev_id)
50{ 50{
51 printk(KERN_CRIT "Watchdog: Would Reboot.\n"); 51 printk(KERN_CRIT "Watchdog: Would Reboot.\n");
52 *CSR_TIMER4_CNTL = 0; 52 *CSR_TIMER4_CNTL = 0;
diff --git a/drivers/char/watchdog/wdt_pci.c b/drivers/char/watchdog/wdt_pci.c
index 74d8cf836e13..ce1261c5cbce 100644
--- a/drivers/char/watchdog/wdt_pci.c
+++ b/drivers/char/watchdog/wdt_pci.c
@@ -270,14 +270,13 @@ static int wdtpci_get_temperature(int *temperature)
270 * wdtpci_interrupt: 270 * wdtpci_interrupt:
271 * @irq: Interrupt number 271 * @irq: Interrupt number
272 * @dev_id: Unused as we don't allow multiple devices. 272 * @dev_id: Unused as we don't allow multiple devices.
273 * @regs: Unused.
274 * 273 *
275 * Handle an interrupt from the board. These are raised when the status 274 * Handle an interrupt from the board. These are raised when the status
276 * map changes in what the board considers an interesting way. That means 275 * map changes in what the board considers an interesting way. That means
277 * a failure condition occurring. 276 * a failure condition occurring.
278 */ 277 */
279 278
280static irqreturn_t wdtpci_interrupt(int irq, void *dev_id, struct pt_regs *regs) 279static irqreturn_t wdtpci_interrupt(int irq, void *dev_id)
281{ 280{
282 /* 281 /*
283 * Read the status register see what is up and 282 * Read the status register see what is up and