diff options
Diffstat (limited to 'include')
49 files changed, 178 insertions, 140 deletions
diff --git a/include/asm-frv/dma.h b/include/asm-frv/dma.h index 18d6bb8f84fc..683c47d48a5b 100644 --- a/include/asm-frv/dma.h +++ b/include/asm-frv/dma.h | |||
@@ -24,10 +24,7 @@ | |||
24 | /* | 24 | /* |
25 | * FRV DMA controller management | 25 | * FRV DMA controller management |
26 | */ | 26 | */ |
27 | struct pt_regs; | 27 | typedef irqreturn_t (*dma_irq_handler_t)(int dmachan, unsigned long cstr, void *data); |
28 | |||
29 | typedef irqreturn_t (*dma_irq_handler_t)(int dmachan, unsigned long cstr, void *data, | ||
30 | struct pt_regs *regs); | ||
31 | 28 | ||
32 | extern void frv_dma_init(void); | 29 | extern void frv_dma_init(void); |
33 | 30 | ||
diff --git a/include/asm-frv/irq_regs.h b/include/asm-frv/irq_regs.h new file mode 100644 index 000000000000..d22e83289ad1 --- /dev/null +++ b/include/asm-frv/irq_regs.h | |||
@@ -0,0 +1,27 @@ | |||
1 | /* FRV per-CPU frame pointer holder | ||
2 | * | ||
3 | * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. | ||
4 | * Written by David Howells (dhowells@redhat.com) | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * as published by the Free Software Foundation; either version | ||
9 | * 2 of the License, or (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | #ifndef _ASM_IRQ_REGS_H | ||
13 | #define _ASM_IRQ_REGS_H | ||
14 | |||
15 | /* | ||
16 | * Per-cpu current frame pointer - the location of the last exception frame on | ||
17 | * the stack | ||
18 | * - on FRV, GR28 is dedicated to keeping a pointer to the current exception | ||
19 | * frame | ||
20 | */ | ||
21 | #define ARCH_HAS_OWN_IRQ_REGS | ||
22 | |||
23 | #ifndef __ASSEMBLY__ | ||
24 | #define get_irq_regs() (__frame) | ||
25 | #endif | ||
26 | |||
27 | #endif /* _ASM_IRQ_REGS_H */ | ||
diff --git a/include/asm-frv/ptrace.h b/include/asm-frv/ptrace.h index 7ff525162a72..9a2241b8eb1e 100644 --- a/include/asm-frv/ptrace.h +++ b/include/asm-frv/ptrace.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #define _ASM_PTRACE_H | 12 | #define _ASM_PTRACE_H |
13 | 13 | ||
14 | #include <asm/registers.h> | 14 | #include <asm/registers.h> |
15 | #include <asm/irq_regs.h> | ||
15 | 16 | ||
16 | #define in_syscall(regs) (((regs)->tbr & TBR_TT) == TBR_TT_TRAP0) | 17 | #define in_syscall(regs) (((regs)->tbr & TBR_TT) == TBR_TT_TRAP0) |
17 | 18 | ||
diff --git a/include/asm-generic/irq_regs.h b/include/asm-generic/irq_regs.h new file mode 100644 index 000000000000..5ae1d07d4a12 --- /dev/null +++ b/include/asm-generic/irq_regs.h | |||
@@ -0,0 +1,37 @@ | |||
1 | /* Fallback per-CPU frame pointer holder | ||
2 | * | ||
3 | * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. | ||
4 | * Written by David Howells (dhowells@redhat.com) | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * as published by the Free Software Foundation; either version | ||
9 | * 2 of the License, or (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | #ifndef _ASM_GENERIC_IRQ_REGS_H | ||
13 | #define _ASM_GENERIC_IRQ_REGS_H | ||
14 | |||
15 | #include <linux/percpu.h> | ||
16 | |||
17 | /* | ||
18 | * Per-cpu current frame pointer - the location of the last exception frame on | ||
19 | * the stack | ||
20 | */ | ||
21 | DECLARE_PER_CPU(struct pt_regs *, __irq_regs); | ||
22 | |||
23 | static inline struct pt_regs *get_irq_regs(void) | ||
24 | { | ||
25 | return __get_cpu_var(__irq_regs); | ||
26 | } | ||
27 | |||
28 | static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) | ||
29 | { | ||
30 | struct pt_regs *old_regs, **pp_regs = &__get_cpu_var(__irq_regs); | ||
31 | |||
32 | old_regs = *pp_regs; | ||
33 | *pp_regs = new_regs; | ||
34 | return old_regs; | ||
35 | } | ||
36 | |||
37 | #endif /* _ASM_GENERIC_IRQ_REGS_H */ | ||
diff --git a/include/asm-i386/apic.h b/include/asm-i386/apic.h index 3a42b7d6fc92..b9529578fc37 100644 --- a/include/asm-i386/apic.h +++ b/include/asm-i386/apic.h | |||
@@ -98,7 +98,7 @@ extern void sync_Arb_IDs (void); | |||
98 | extern void init_bsp_APIC (void); | 98 | extern void init_bsp_APIC (void); |
99 | extern void setup_local_APIC (void); | 99 | extern void setup_local_APIC (void); |
100 | extern void init_apic_mappings (void); | 100 | extern void init_apic_mappings (void); |
101 | extern void smp_local_timer_interrupt (struct pt_regs * regs); | 101 | extern void smp_local_timer_interrupt (void); |
102 | extern void setup_boot_APIC_clock (void); | 102 | extern void setup_boot_APIC_clock (void); |
103 | extern void setup_secondary_APIC_clock (void); | 103 | extern void setup_secondary_APIC_clock (void); |
104 | extern int APIC_init_uniprocessor (void); | 104 | extern int APIC_init_uniprocessor (void); |
@@ -107,7 +107,7 @@ extern void enable_APIC_timer(void); | |||
107 | 107 | ||
108 | extern void enable_NMI_through_LVT0 (void * dummy); | 108 | extern void enable_NMI_through_LVT0 (void * dummy); |
109 | 109 | ||
110 | void smp_send_timer_broadcast_ipi(struct pt_regs *regs); | 110 | void smp_send_timer_broadcast_ipi(void); |
111 | void switch_APIC_timer_to_ipi(void *cpumask); | 111 | void switch_APIC_timer_to_ipi(void *cpumask); |
112 | void switch_ipi_to_APIC_timer(void *cpumask); | 112 | void switch_ipi_to_APIC_timer(void *cpumask); |
113 | #define ARCH_APICTIMER_STOPS_ON_C3 1 | 113 | #define ARCH_APICTIMER_STOPS_ON_C3 1 |
diff --git a/include/asm-i386/arch_hooks.h b/include/asm-i386/arch_hooks.h index 238cf4275b96..a8c1fca9726d 100644 --- a/include/asm-i386/arch_hooks.h +++ b/include/asm-i386/arch_hooks.h | |||
@@ -14,7 +14,7 @@ | |||
14 | extern void init_ISA_irqs(void); | 14 | extern void init_ISA_irqs(void); |
15 | extern void apic_intr_init(void); | 15 | extern void apic_intr_init(void); |
16 | extern void smp_intr_init(void); | 16 | extern void smp_intr_init(void); |
17 | extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 17 | extern irqreturn_t timer_interrupt(int irq, void *dev_id); |
18 | 18 | ||
19 | /* these are the defined hooks */ | 19 | /* these are the defined hooks */ |
20 | extern void intr_init_hook(void); | 20 | extern void intr_init_hook(void); |
diff --git a/include/asm-i386/floppy.h b/include/asm-i386/floppy.h index 359ead60b718..44ef2f55a8e9 100644 --- a/include/asm-i386/floppy.h +++ b/include/asm-i386/floppy.h | |||
@@ -51,7 +51,7 @@ static char *virtual_dma_addr; | |||
51 | static int virtual_dma_mode; | 51 | static int virtual_dma_mode; |
52 | static int doing_pdma; | 52 | static int doing_pdma; |
53 | 53 | ||
54 | static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) | 54 | static irqreturn_t floppy_hardint(int irq, void *dev_id) |
55 | { | 55 | { |
56 | register unsigned char st; | 56 | register unsigned char st; |
57 | 57 | ||
@@ -63,7 +63,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) | |||
63 | static int dma_wait=0; | 63 | static int dma_wait=0; |
64 | #endif | 64 | #endif |
65 | if (!doing_pdma) | 65 | if (!doing_pdma) |
66 | return floppy_interrupt(irq, dev_id, regs); | 66 | return floppy_interrupt(irq, dev_id); |
67 | 67 | ||
68 | #ifdef TRACE_FLPY_INT | 68 | #ifdef TRACE_FLPY_INT |
69 | if(!calls) | 69 | if(!calls) |
@@ -106,7 +106,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) | |||
106 | dma_wait=0; | 106 | dma_wait=0; |
107 | #endif | 107 | #endif |
108 | doing_pdma = 0; | 108 | doing_pdma = 0; |
109 | floppy_interrupt(irq, dev_id, regs); | 109 | floppy_interrupt(irq, dev_id); |
110 | return IRQ_HANDLED; | 110 | return IRQ_HANDLED; |
111 | } | 111 | } |
112 | #ifdef TRACE_FLPY_INT | 112 | #ifdef TRACE_FLPY_INT |
diff --git a/include/asm-i386/hpet.h b/include/asm-i386/hpet.h index af5d435519d1..e47be9a56cc2 100644 --- a/include/asm-i386/hpet.h +++ b/include/asm-i386/hpet.h | |||
@@ -108,7 +108,7 @@ extern int hpet_set_alarm_time(unsigned char hrs, unsigned char min, unsigned ch | |||
108 | extern int hpet_set_periodic_freq(unsigned long freq); | 108 | extern int hpet_set_periodic_freq(unsigned long freq); |
109 | extern int hpet_rtc_dropped_irq(void); | 109 | extern int hpet_rtc_dropped_irq(void); |
110 | extern int hpet_rtc_timer_init(void); | 110 | extern int hpet_rtc_timer_init(void); |
111 | extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 111 | extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id); |
112 | #endif /* CONFIG_HPET_EMULATE_RTC */ | 112 | #endif /* CONFIG_HPET_EMULATE_RTC */ |
113 | #endif /* CONFIG_HPET_TIMER */ | 113 | #endif /* CONFIG_HPET_TIMER */ |
114 | #endif /* _I386_HPET_H */ | 114 | #endif /* _I386_HPET_H */ |
diff --git a/include/asm-i386/hw_irq.h b/include/asm-i386/hw_irq.h index 88f02a073561..8806c7e002a7 100644 --- a/include/asm-i386/hw_irq.h +++ b/include/asm-i386/hw_irq.h | |||
@@ -41,7 +41,7 @@ fastcall void call_function_interrupt(void); | |||
41 | fastcall void apic_timer_interrupt(void); | 41 | fastcall void apic_timer_interrupt(void); |
42 | fastcall void error_interrupt(void); | 42 | fastcall void error_interrupt(void); |
43 | fastcall void spurious_interrupt(void); | 43 | fastcall void spurious_interrupt(void); |
44 | fastcall void thermal_interrupt(struct pt_regs *); | 44 | fastcall void thermal_interrupt(void); |
45 | #define platform_legacy_irq(irq) ((irq) < 16) | 45 | #define platform_legacy_irq(irq) ((irq) < 16) |
46 | #endif | 46 | #endif |
47 | 47 | ||
diff --git a/include/asm-i386/irq_regs.h b/include/asm-i386/irq_regs.h new file mode 100644 index 000000000000..3dd9c0b70270 --- /dev/null +++ b/include/asm-i386/irq_regs.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/irq_regs.h> | |||
diff --git a/include/asm-i386/mach-default/do_timer.h b/include/asm-i386/mach-default/do_timer.h index 4182c347ef85..7d606e3364ae 100644 --- a/include/asm-i386/mach-default/do_timer.h +++ b/include/asm-i386/mach-default/do_timer.h | |||
@@ -14,11 +14,11 @@ | |||
14 | * timer interrupt as a means of triggering reschedules etc. | 14 | * timer interrupt as a means of triggering reschedules etc. |
15 | **/ | 15 | **/ |
16 | 16 | ||
17 | static inline void do_timer_interrupt_hook(struct pt_regs *regs) | 17 | static inline void do_timer_interrupt_hook(void) |
18 | { | 18 | { |
19 | do_timer(1); | 19 | do_timer(1); |
20 | #ifndef CONFIG_SMP | 20 | #ifndef CONFIG_SMP |
21 | update_process_times(user_mode_vm(regs)); | 21 | update_process_times(user_mode_vm(get_irq_regs())); |
22 | #endif | 22 | #endif |
23 | /* | 23 | /* |
24 | * In the SMP case we use the local APIC timer interrupt to do the | 24 | * In the SMP case we use the local APIC timer interrupt to do the |
@@ -26,10 +26,10 @@ static inline void do_timer_interrupt_hook(struct pt_regs *regs) | |||
26 | * system, in that case we have to call the local interrupt handler. | 26 | * system, in that case we have to call the local interrupt handler. |
27 | */ | 27 | */ |
28 | #ifndef CONFIG_X86_LOCAL_APIC | 28 | #ifndef CONFIG_X86_LOCAL_APIC |
29 | profile_tick(CPU_PROFILING, regs); | 29 | profile_tick(CPU_PROFILING); |
30 | #else | 30 | #else |
31 | if (!using_apic_timer) | 31 | if (!using_apic_timer) |
32 | smp_local_timer_interrupt(regs); | 32 | smp_local_timer_interrupt(); |
33 | #endif | 33 | #endif |
34 | } | 34 | } |
35 | 35 | ||
diff --git a/include/asm-i386/mach-visws/do_timer.h b/include/asm-i386/mach-visws/do_timer.h index 8db618c5a72b..21cd696d4d0f 100644 --- a/include/asm-i386/mach-visws/do_timer.h +++ b/include/asm-i386/mach-visws/do_timer.h | |||
@@ -4,14 +4,14 @@ | |||
4 | #include <asm/i8259.h> | 4 | #include <asm/i8259.h> |
5 | #include "cobalt.h" | 5 | #include "cobalt.h" |
6 | 6 | ||
7 | static inline void do_timer_interrupt_hook(struct pt_regs *regs) | 7 | static inline void do_timer_interrupt_hook(void) |
8 | { | 8 | { |
9 | /* Clear the interrupt */ | 9 | /* Clear the interrupt */ |
10 | co_cpu_write(CO_CPU_STAT,co_cpu_read(CO_CPU_STAT) & ~CO_STAT_TIMEINTR); | 10 | co_cpu_write(CO_CPU_STAT,co_cpu_read(CO_CPU_STAT) & ~CO_STAT_TIMEINTR); |
11 | 11 | ||
12 | do_timer(1); | 12 | do_timer(1); |
13 | #ifndef CONFIG_SMP | 13 | #ifndef CONFIG_SMP |
14 | update_process_times(user_mode_vm(regs)); | 14 | update_process_times(user_mode_vm(irq_regs)); |
15 | #endif | 15 | #endif |
16 | /* | 16 | /* |
17 | * In the SMP case we use the local APIC timer interrupt to do the | 17 | * In the SMP case we use the local APIC timer interrupt to do the |
@@ -19,10 +19,10 @@ static inline void do_timer_interrupt_hook(struct pt_regs *regs) | |||
19 | * system, in that case we have to call the local interrupt handler. | 19 | * system, in that case we have to call the local interrupt handler. |
20 | */ | 20 | */ |
21 | #ifndef CONFIG_X86_LOCAL_APIC | 21 | #ifndef CONFIG_X86_LOCAL_APIC |
22 | profile_tick(CPU_PROFILING, regs); | 22 | profile_tick(CPU_PROFILING); |
23 | #else | 23 | #else |
24 | if (!using_apic_timer) | 24 | if (!using_apic_timer) |
25 | smp_local_timer_interrupt(regs); | 25 | smp_local_timer_interrupt(); |
26 | #endif | 26 | #endif |
27 | } | 27 | } |
28 | 28 | ||
diff --git a/include/asm-i386/mach-voyager/do_timer.h b/include/asm-i386/mach-voyager/do_timer.h index 099fe9f5c1b2..04e69c104a74 100644 --- a/include/asm-i386/mach-voyager/do_timer.h +++ b/include/asm-i386/mach-voyager/do_timer.h | |||
@@ -1,14 +1,14 @@ | |||
1 | /* defines for inline arch setup functions */ | 1 | /* defines for inline arch setup functions */ |
2 | #include <asm/voyager.h> | 2 | #include <asm/voyager.h> |
3 | 3 | ||
4 | static inline void do_timer_interrupt_hook(struct pt_regs *regs) | 4 | static inline void do_timer_interrupt_hook(void) |
5 | { | 5 | { |
6 | do_timer(1); | 6 | do_timer(1); |
7 | #ifndef CONFIG_SMP | 7 | #ifndef CONFIG_SMP |
8 | update_process_times(user_mode_vm(regs)); | 8 | update_process_times(user_mode_vm(irq_regs)); |
9 | #endif | 9 | #endif |
10 | 10 | ||
11 | voyager_timer_interrupt(regs); | 11 | voyager_timer_interrupt(); |
12 | } | 12 | } |
13 | 13 | ||
14 | static inline int do_timer_overflow(int count) | 14 | static inline int do_timer_overflow(int count) |
diff --git a/include/asm-i386/voyager.h b/include/asm-i386/voyager.h index aaf432dd7673..e74c54aa757f 100644 --- a/include/asm-i386/voyager.h +++ b/include/asm-i386/voyager.h | |||
@@ -505,8 +505,8 @@ extern int voyager_memory_detect(int region, __u32 *addr, __u32 *length); | |||
505 | extern void voyager_smp_intr_init(void); | 505 | extern void voyager_smp_intr_init(void); |
506 | extern __u8 voyager_extended_cmos_read(__u16 cmos_address); | 506 | extern __u8 voyager_extended_cmos_read(__u16 cmos_address); |
507 | extern void voyager_smp_dump(void); | 507 | extern void voyager_smp_dump(void); |
508 | extern void voyager_timer_interrupt(struct pt_regs *regs); | 508 | extern void voyager_timer_interrupt(void); |
509 | extern void smp_local_timer_interrupt(struct pt_regs * regs); | 509 | extern void smp_local_timer_interrupt(void); |
510 | extern void voyager_power_off(void); | 510 | extern void voyager_power_off(void); |
511 | extern void smp_voyager_power_off(void *dummy); | 511 | extern void smp_voyager_power_off(void *dummy); |
512 | extern void voyager_restart(void); | 512 | extern void voyager_restart(void); |
diff --git a/include/asm-ia64/irq_regs.h b/include/asm-ia64/irq_regs.h new file mode 100644 index 000000000000..3dd9c0b70270 --- /dev/null +++ b/include/asm-ia64/irq_regs.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/irq_regs.h> | |||
diff --git a/include/asm-ia64/machvec.h b/include/asm-ia64/machvec.h index 90cba967df35..7ffbddf5306f 100644 --- a/include/asm-ia64/machvec.h +++ b/include/asm-ia64/machvec.h | |||
@@ -26,7 +26,7 @@ typedef void ia64_mv_setup_t (char **); | |||
26 | typedef void ia64_mv_cpu_init_t (void); | 26 | typedef void ia64_mv_cpu_init_t (void); |
27 | typedef void ia64_mv_irq_init_t (void); | 27 | typedef void ia64_mv_irq_init_t (void); |
28 | typedef void ia64_mv_send_ipi_t (int, int, int, int); | 28 | typedef void ia64_mv_send_ipi_t (int, int, int, int); |
29 | typedef void ia64_mv_timer_interrupt_t (int, void *, struct pt_regs *); | 29 | typedef void ia64_mv_timer_interrupt_t (int, void *); |
30 | typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long); | 30 | typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long); |
31 | typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); | 31 | typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); |
32 | typedef unsigned int ia64_mv_local_vector_to_irq (u8); | 32 | typedef unsigned int ia64_mv_local_vector_to_irq (u8); |
@@ -96,7 +96,7 @@ machvec_noop_task (struct task_struct *task) | |||
96 | } | 96 | } |
97 | 97 | ||
98 | extern void machvec_setup (char **); | 98 | extern void machvec_setup (char **); |
99 | extern void machvec_timer_interrupt (int, void *, struct pt_regs *); | 99 | extern void machvec_timer_interrupt (int, void *); |
100 | extern void machvec_dma_sync_single (struct device *, dma_addr_t, size_t, int); | 100 | extern void machvec_dma_sync_single (struct device *, dma_addr_t, size_t, int); |
101 | extern void machvec_dma_sync_sg (struct device *, struct scatterlist *, int, int); | 101 | extern void machvec_dma_sync_sg (struct device *, struct scatterlist *, int, int); |
102 | extern void machvec_tlb_migrate_finish (struct mm_struct *); | 102 | extern void machvec_tlb_migrate_finish (struct mm_struct *); |
diff --git a/include/asm-mips/irq_regs.h b/include/asm-mips/irq_regs.h new file mode 100644 index 000000000000..3dd9c0b70270 --- /dev/null +++ b/include/asm-mips/irq_regs.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/irq_regs.h> | |||
diff --git a/include/asm-mips/time.h b/include/asm-mips/time.h index 2d543735668b..30f21df39253 100644 --- a/include/asm-mips/time.h +++ b/include/asm-mips/time.h | |||
@@ -67,7 +67,7 @@ extern unsigned long (*do_gettimeoffset)(void); | |||
67 | /* | 67 | /* |
68 | * high-level timer interrupt routines. | 68 | * high-level timer interrupt routines. |
69 | */ | 69 | */ |
70 | extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 70 | extern irqreturn_t timer_interrupt(int irq, void *dev_id); |
71 | 71 | ||
72 | /* | 72 | /* |
73 | * the corresponding low-level timer interrupt routine. | 73 | * the corresponding low-level timer interrupt routine. |
@@ -77,7 +77,7 @@ extern asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs); | |||
77 | /* | 77 | /* |
78 | * profiling and process accouting is done separately in local_timer_interrupt | 78 | * profiling and process accouting is done separately in local_timer_interrupt |
79 | */ | 79 | */ |
80 | extern void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 80 | extern void local_timer_interrupt(int irq, void *dev_id); |
81 | extern asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs); | 81 | extern asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs); |
82 | 82 | ||
83 | /* | 83 | /* |
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h index 89ed545b446b..f960f5346f40 100644 --- a/include/asm-powerpc/irq.h +++ b/include/asm-powerpc/irq.h | |||
@@ -825,7 +825,7 @@ extern struct thread_info *softirq_ctx[NR_CPUS]; | |||
825 | 825 | ||
826 | extern void irq_ctx_init(void); | 826 | extern void irq_ctx_init(void); |
827 | extern void call_do_softirq(struct thread_info *tp); | 827 | extern void call_do_softirq(struct thread_info *tp); |
828 | extern int call_handle_irq(int irq, void *p1, void *p2, | 828 | extern int call_handle_irq(int irq, void *p1, |
829 | struct thread_info *tp, void *func); | 829 | struct thread_info *tp, void *func); |
830 | #else | 830 | #else |
831 | #define irq_ctx_init() | 831 | #define irq_ctx_init() |
diff --git a/include/asm-powerpc/irq_regs.h b/include/asm-powerpc/irq_regs.h new file mode 100644 index 000000000000..ba94b51a0a70 --- /dev/null +++ b/include/asm-powerpc/irq_regs.h | |||
@@ -0,0 +1,2 @@ | |||
1 | #include <asm-generic/irq_regs.h> | ||
2 | |||
diff --git a/include/asm-powerpc/smp.h b/include/asm-powerpc/smp.h index 068f119aa298..20ea7c70bc38 100644 --- a/include/asm-powerpc/smp.h +++ b/include/asm-powerpc/smp.h | |||
@@ -34,8 +34,7 @@ extern void cpu_die(void); | |||
34 | #ifdef CONFIG_SMP | 34 | #ifdef CONFIG_SMP |
35 | 35 | ||
36 | extern void smp_send_debugger_break(int cpu); | 36 | extern void smp_send_debugger_break(int cpu); |
37 | struct pt_regs; | 37 | extern void smp_message_recv(int); |
38 | extern void smp_message_recv(int, struct pt_regs *); | ||
39 | 38 | ||
40 | #ifdef CONFIG_HOTPLUG_CPU | 39 | #ifdef CONFIG_HOTPLUG_CPU |
41 | extern void fixup_irqs(cpumask_t map); | 40 | extern void fixup_irqs(cpumask_t map); |
diff --git a/include/asm-x86_64/apic.h b/include/asm-x86_64/apic.h index 9e66d32330c9..e81d0f289f0b 100644 --- a/include/asm-x86_64/apic.h +++ b/include/asm-x86_64/apic.h | |||
@@ -77,7 +77,7 @@ extern void sync_Arb_IDs (void); | |||
77 | extern void init_bsp_APIC (void); | 77 | extern void init_bsp_APIC (void); |
78 | extern void setup_local_APIC (void); | 78 | extern void setup_local_APIC (void); |
79 | extern void init_apic_mappings (void); | 79 | extern void init_apic_mappings (void); |
80 | extern void smp_local_timer_interrupt (struct pt_regs * regs); | 80 | extern void smp_local_timer_interrupt (void); |
81 | extern void setup_boot_APIC_clock (void); | 81 | extern void setup_boot_APIC_clock (void); |
82 | extern void setup_secondary_APIC_clock (void); | 82 | extern void setup_secondary_APIC_clock (void); |
83 | extern int APIC_init_uniprocessor (void); | 83 | extern int APIC_init_uniprocessor (void); |
diff --git a/include/asm-x86_64/floppy.h b/include/asm-x86_64/floppy.h index 32ff5d132714..6ea13c3806f3 100644 --- a/include/asm-x86_64/floppy.h +++ b/include/asm-x86_64/floppy.h | |||
@@ -51,7 +51,7 @@ static char *virtual_dma_addr; | |||
51 | static int virtual_dma_mode; | 51 | static int virtual_dma_mode; |
52 | static int doing_pdma; | 52 | static int doing_pdma; |
53 | 53 | ||
54 | static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) | 54 | static irqreturn_t floppy_hardint(int irq, void *dev_id) |
55 | { | 55 | { |
56 | register unsigned char st; | 56 | register unsigned char st; |
57 | 57 | ||
@@ -63,7 +63,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) | |||
63 | static int dma_wait=0; | 63 | static int dma_wait=0; |
64 | #endif | 64 | #endif |
65 | if (!doing_pdma) | 65 | if (!doing_pdma) |
66 | return floppy_interrupt(irq, dev_id, regs); | 66 | return floppy_interrupt(irq, dev_id); |
67 | 67 | ||
68 | #ifdef TRACE_FLPY_INT | 68 | #ifdef TRACE_FLPY_INT |
69 | if(!calls) | 69 | if(!calls) |
@@ -106,7 +106,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) | |||
106 | dma_wait=0; | 106 | dma_wait=0; |
107 | #endif | 107 | #endif |
108 | doing_pdma = 0; | 108 | doing_pdma = 0; |
109 | floppy_interrupt(irq, dev_id, regs); | 109 | floppy_interrupt(irq, dev_id); |
110 | return IRQ_HANDLED; | 110 | return IRQ_HANDLED; |
111 | } | 111 | } |
112 | #ifdef TRACE_FLPY_INT | 112 | #ifdef TRACE_FLPY_INT |
diff --git a/include/asm-x86_64/irq_regs.h b/include/asm-x86_64/irq_regs.h new file mode 100644 index 000000000000..3dd9c0b70270 --- /dev/null +++ b/include/asm-x86_64/irq_regs.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/irq_regs.h> | |||
diff --git a/include/asm-x86_64/proto.h b/include/asm-x86_64/proto.h index c28fc2db2171..c181fef786e4 100644 --- a/include/asm-x86_64/proto.h +++ b/include/asm-x86_64/proto.h | |||
@@ -66,7 +66,7 @@ extern void free_bootmem_generic(unsigned long phys, unsigned len); | |||
66 | extern void load_gs_index(unsigned gs); | 66 | extern void load_gs_index(unsigned gs); |
67 | 67 | ||
68 | extern void stop_timer_interrupt(void); | 68 | extern void stop_timer_interrupt(void); |
69 | extern void main_timer_handler(struct pt_regs *regs); | 69 | extern void main_timer_handler(void); |
70 | 70 | ||
71 | extern unsigned long end_pfn_map; | 71 | extern unsigned long end_pfn_map; |
72 | 72 | ||
@@ -124,7 +124,7 @@ extern int notsc_setup(char *); | |||
124 | 124 | ||
125 | extern int gsi_irq_sharing(int gsi); | 125 | extern int gsi_irq_sharing(int gsi); |
126 | 126 | ||
127 | extern void smp_local_timer_interrupt(struct pt_regs * regs); | 127 | extern void smp_local_timer_interrupt(void); |
128 | 128 | ||
129 | long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); | 129 | long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); |
130 | 130 | ||
diff --git a/include/linux/adb.h b/include/linux/adb.h index b7305b178279..64d8878e1444 100644 --- a/include/linux/adb.h +++ b/include/linux/adb.h | |||
@@ -90,10 +90,10 @@ extern struct blocking_notifier_head adb_client_list; | |||
90 | int adb_request(struct adb_request *req, void (*done)(struct adb_request *), | 90 | int adb_request(struct adb_request *req, void (*done)(struct adb_request *), |
91 | int flags, int nbytes, ...); | 91 | int flags, int nbytes, ...); |
92 | int adb_register(int default_id,int handler_id,struct adb_ids *ids, | 92 | int adb_register(int default_id,int handler_id,struct adb_ids *ids, |
93 | void (*handler)(unsigned char *, int, struct pt_regs *, int)); | 93 | void (*handler)(unsigned char *, int, int)); |
94 | int adb_unregister(int index); | 94 | int adb_unregister(int index); |
95 | void adb_poll(void); | 95 | void adb_poll(void); |
96 | void adb_input(unsigned char *, int, struct pt_regs *, int); | 96 | void adb_input(unsigned char *, int, int); |
97 | int adb_reset_bus(void); | 97 | int adb_reset_bus(void); |
98 | 98 | ||
99 | int adb_try_handler_change(int address, int new_id); | 99 | int adb_try_handler_change(int address, int new_id); |
diff --git a/include/linux/arcdevice.h b/include/linux/arcdevice.h index 231ba090ae34..2f85049cfb3d 100644 --- a/include/linux/arcdevice.h +++ b/include/linux/arcdevice.h | |||
@@ -334,7 +334,7 @@ void arcnet_dump_skb(struct net_device *dev, struct sk_buff *skb, char *desc); | |||
334 | #endif | 334 | #endif |
335 | 335 | ||
336 | void arcnet_unregister_proto(struct ArcProto *proto); | 336 | void arcnet_unregister_proto(struct ArcProto *proto); |
337 | irqreturn_t arcnet_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 337 | irqreturn_t arcnet_interrupt(int irq, void *dev_id); |
338 | struct net_device *alloc_arcdev(char *name); | 338 | struct net_device *alloc_arcdev(char *name); |
339 | 339 | ||
340 | #endif /* __KERNEL__ */ | 340 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/hiddev.h b/include/linux/hiddev.h index 945ba1ad14ac..acbdae6d7ae1 100644 --- a/include/linux/hiddev.h +++ b/include/linux/hiddev.h | |||
@@ -222,7 +222,7 @@ struct hid_report; | |||
222 | int hiddev_connect(struct hid_device *); | 222 | int hiddev_connect(struct hid_device *); |
223 | void hiddev_disconnect(struct hid_device *); | 223 | void hiddev_disconnect(struct hid_device *); |
224 | void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, | 224 | void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, |
225 | struct hid_usage *usage, __s32 value, struct pt_regs *regs); | 225 | struct hid_usage *usage, __s32 value); |
226 | void hiddev_report_event(struct hid_device *hid, struct hid_report *report); | 226 | void hiddev_report_event(struct hid_device *hid, struct hid_report *report); |
227 | int __init hiddev_init(void); | 227 | int __init hiddev_init(void); |
228 | void hiddev_exit(void); | 228 | void hiddev_exit(void); |
@@ -230,7 +230,7 @@ void hiddev_exit(void); | |||
230 | static inline int hiddev_connect(struct hid_device *hid) { return -1; } | 230 | static inline int hiddev_connect(struct hid_device *hid) { return -1; } |
231 | static inline void hiddev_disconnect(struct hid_device *hid) { } | 231 | static inline void hiddev_disconnect(struct hid_device *hid) { } |
232 | static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, | 232 | static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, |
233 | struct hid_usage *usage, __s32 value, struct pt_regs *regs) { } | 233 | struct hid_usage *usage, __s32 value) { } |
234 | static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { } | 234 | static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { } |
235 | static inline int hiddev_init(void) { return 0; } | 235 | static inline int hiddev_init(void) { return 0; } |
236 | static inline void hiddev_exit(void) { } | 236 | static inline void hiddev_exit(void) { } |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 07d8d725541f..9c2050293f17 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -1185,7 +1185,7 @@ extern void ide_stall_queue(ide_drive_t *drive, unsigned long timeout); | |||
1185 | 1185 | ||
1186 | extern int ide_spin_wait_hwgroup(ide_drive_t *); | 1186 | extern int ide_spin_wait_hwgroup(ide_drive_t *); |
1187 | extern void ide_timer_expiry(unsigned long); | 1187 | extern void ide_timer_expiry(unsigned long); |
1188 | extern irqreturn_t ide_intr(int irq, void *dev_id, struct pt_regs *regs); | 1188 | extern irqreturn_t ide_intr(int irq, void *dev_id); |
1189 | extern void do_ide_request(request_queue_t *); | 1189 | extern void do_ide_request(request_queue_t *); |
1190 | 1190 | ||
1191 | void ide_init_disk(struct gendisk *, ide_drive_t *); | 1191 | void ide_init_disk(struct gendisk *, ide_drive_t *); |
diff --git a/include/linux/input.h b/include/linux/input.h index 5770105471dd..c38507ba38b5 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
@@ -953,7 +953,6 @@ struct input_dev { | |||
953 | unsigned int repeat_key; | 953 | unsigned int repeat_key; |
954 | struct timer_list timer; | 954 | struct timer_list timer; |
955 | 955 | ||
956 | struct pt_regs *regs; | ||
957 | int state; | 956 | int state; |
958 | 957 | ||
959 | int sync; | 958 | int sync; |
@@ -1149,15 +1148,9 @@ static inline void input_report_switch(struct input_dev *dev, unsigned int code, | |||
1149 | input_event(dev, EV_SW, code, !!value); | 1148 | input_event(dev, EV_SW, code, !!value); |
1150 | } | 1149 | } |
1151 | 1150 | ||
1152 | static inline void input_regs(struct input_dev *dev, struct pt_regs *regs) | ||
1153 | { | ||
1154 | dev->regs = regs; | ||
1155 | } | ||
1156 | |||
1157 | static inline void input_sync(struct input_dev *dev) | 1151 | static inline void input_sync(struct input_dev *dev) |
1158 | { | 1152 | { |
1159 | input_event(dev, EV_SYN, SYN_REPORT, 0); | 1153 | input_event(dev, EV_SYN, SYN_REPORT, 0); |
1160 | dev->regs = NULL; | ||
1161 | } | 1154 | } |
1162 | 1155 | ||
1163 | static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat) | 1156 | static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat) |
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 1f97e3d92639..5b83e7b59621 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
@@ -64,8 +64,10 @@ | |||
64 | #define SA_TRIGGER_RISING IRQF_TRIGGER_RISING | 64 | #define SA_TRIGGER_RISING IRQF_TRIGGER_RISING |
65 | #define SA_TRIGGER_MASK IRQF_TRIGGER_MASK | 65 | #define SA_TRIGGER_MASK IRQF_TRIGGER_MASK |
66 | 66 | ||
67 | typedef irqreturn_t (*irq_handler_t)(int, void *); | ||
68 | |||
67 | struct irqaction { | 69 | struct irqaction { |
68 | irqreturn_t (*handler)(int, void *, struct pt_regs *); | 70 | irq_handler_t handler; |
69 | unsigned long flags; | 71 | unsigned long flags; |
70 | cpumask_t mask; | 72 | cpumask_t mask; |
71 | const char *name; | 73 | const char *name; |
@@ -75,9 +77,8 @@ struct irqaction { | |||
75 | struct proc_dir_entry *dir; | 77 | struct proc_dir_entry *dir; |
76 | }; | 78 | }; |
77 | 79 | ||
78 | extern irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs); | 80 | extern irqreturn_t no_action(int cpl, void *dev_id); |
79 | extern int request_irq(unsigned int, | 81 | extern int request_irq(unsigned int, irq_handler_t handler, |
80 | irqreturn_t (*handler)(int, void *, struct pt_regs *), | ||
81 | unsigned long, const char *, void *); | 82 | unsigned long, const char *, void *); |
82 | extern void free_irq(unsigned int, void *); | 83 | extern void free_irq(unsigned int, void *); |
83 | 84 | ||
diff --git a/include/linux/ioc3.h b/include/linux/ioc3.h index da7c09e4ede6..38b286e9a46c 100644 --- a/include/linux/ioc3.h +++ b/include/linux/ioc3.h | |||
@@ -63,7 +63,7 @@ struct ioc3_submodule { | |||
63 | /* IRQ stuff */ | 63 | /* IRQ stuff */ |
64 | unsigned int irq_mask; /* IOC3 IRQ mask, leave clear for Ethernet */ | 64 | unsigned int irq_mask; /* IOC3 IRQ mask, leave clear for Ethernet */ |
65 | int reset_mask; /* non-zero if you want the ioc3.c module to reset interrupts */ | 65 | int reset_mask; /* non-zero if you want the ioc3.c module to reset interrupts */ |
66 | int (*intr) (struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int, struct pt_regs *); | 66 | int (*intr) (struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int); |
67 | /* private submodule data */ | 67 | /* private submodule data */ |
68 | void *data; /* assigned by submodule */ | 68 | void *data; /* assigned by submodule */ |
69 | }; | 69 | }; |
diff --git a/include/linux/irq.h b/include/linux/irq.h index 6f463606c318..c64f3cc7e870 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -21,6 +21,12 @@ | |||
21 | 21 | ||
22 | #include <asm/irq.h> | 22 | #include <asm/irq.h> |
23 | #include <asm/ptrace.h> | 23 | #include <asm/ptrace.h> |
24 | #include <asm/irq_regs.h> | ||
25 | |||
26 | struct irq_desc; | ||
27 | typedef void fastcall (*irq_flow_handler_t)(unsigned int irq, | ||
28 | struct irq_desc *desc); | ||
29 | |||
24 | 30 | ||
25 | /* | 31 | /* |
26 | * IRQ line status. | 32 | * IRQ line status. |
@@ -139,9 +145,7 @@ struct irq_chip { | |||
139 | * Pad this out to 32 bytes for cache and indexing reasons. | 145 | * Pad this out to 32 bytes for cache and indexing reasons. |
140 | */ | 146 | */ |
141 | struct irq_desc { | 147 | struct irq_desc { |
142 | void fastcall (*handle_irq)(unsigned int irq, | 148 | irq_flow_handler_t handle_irq; |
143 | struct irq_desc *desc, | ||
144 | struct pt_regs *regs); | ||
145 | struct irq_chip *chip; | 149 | struct irq_chip *chip; |
146 | void *handler_data; | 150 | void *handler_data; |
147 | void *chip_data; | 151 | void *chip_data; |
@@ -254,43 +258,31 @@ static inline int select_smp_affinity(unsigned int irq) | |||
254 | extern int no_irq_affinity; | 258 | extern int no_irq_affinity; |
255 | 259 | ||
256 | /* Handle irq action chains: */ | 260 | /* Handle irq action chains: */ |
257 | extern int handle_IRQ_event(unsigned int irq, struct pt_regs *regs, | 261 | extern int handle_IRQ_event(unsigned int irq, struct irqaction *action); |
258 | struct irqaction *action); | ||
259 | 262 | ||
260 | /* | 263 | /* |
261 | * Built-in IRQ handlers for various IRQ types, | 264 | * Built-in IRQ handlers for various IRQ types, |
262 | * callable via desc->chip->handle_irq() | 265 | * callable via desc->chip->handle_irq() |
263 | */ | 266 | */ |
264 | extern void fastcall | 267 | extern void fastcall handle_level_irq(unsigned int irq, struct irq_desc *desc); |
265 | handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); | 268 | extern void fastcall handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc); |
266 | extern void fastcall | 269 | extern void fastcall handle_edge_irq(unsigned int irq, struct irq_desc *desc); |
267 | handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc, | 270 | extern void fastcall handle_simple_irq(unsigned int irq, struct irq_desc *desc); |
268 | struct pt_regs *regs); | 271 | extern void fastcall handle_percpu_irq(unsigned int irq, struct irq_desc *desc); |
269 | extern void fastcall | 272 | extern void fastcall handle_bad_irq(unsigned int irq, struct irq_desc *desc); |
270 | handle_edge_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); | ||
271 | extern void fastcall | ||
272 | handle_simple_irq(unsigned int irq, struct irq_desc *desc, | ||
273 | struct pt_regs *regs); | ||
274 | extern void fastcall | ||
275 | handle_percpu_irq(unsigned int irq, struct irq_desc *desc, | ||
276 | struct pt_regs *regs); | ||
277 | extern void fastcall | ||
278 | handle_bad_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); | ||
279 | 273 | ||
280 | /* | 274 | /* |
281 | * Get a descriptive string for the highlevel handler, for | 275 | * Get a descriptive string for the highlevel handler, for |
282 | * /proc/interrupts output: | 276 | * /proc/interrupts output: |
283 | */ | 277 | */ |
284 | extern const char * | 278 | extern const char *handle_irq_name(irq_flow_handler_t handle); |
285 | handle_irq_name(void fastcall (*handle)(unsigned int, struct irq_desc *, | ||
286 | struct pt_regs *)); | ||
287 | 279 | ||
288 | /* | 280 | /* |
289 | * Monolithic do_IRQ implementation. | 281 | * Monolithic do_IRQ implementation. |
290 | * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly) | 282 | * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly) |
291 | */ | 283 | */ |
292 | #ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ | 284 | #ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ |
293 | extern fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs); | 285 | extern fastcall unsigned int __do_IRQ(unsigned int irq); |
294 | #endif | 286 | #endif |
295 | 287 | ||
296 | /* | 288 | /* |
@@ -299,23 +291,23 @@ extern fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs); | |||
299 | * irqchip-style controller then we call the ->handle_irq() handler, | 291 | * irqchip-style controller then we call the ->handle_irq() handler, |
300 | * and it calls __do_IRQ() if it's attached to an irqtype-style controller. | 292 | * and it calls __do_IRQ() if it's attached to an irqtype-style controller. |
301 | */ | 293 | */ |
302 | static inline void generic_handle_irq(unsigned int irq, struct pt_regs *regs) | 294 | static inline void generic_handle_irq(unsigned int irq) |
303 | { | 295 | { |
304 | struct irq_desc *desc = irq_desc + irq; | 296 | struct irq_desc *desc = irq_desc + irq; |
305 | 297 | ||
306 | #ifdef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ | 298 | #ifdef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ |
307 | desc->handle_irq(irq, desc, regs); | 299 | desc->handle_irq(irq, desc); |
308 | #else | 300 | #else |
309 | if (likely(desc->handle_irq)) | 301 | if (likely(desc->handle_irq)) |
310 | desc->handle_irq(irq, desc, regs); | 302 | desc->handle_irq(irq, desc); |
311 | else | 303 | else |
312 | __do_IRQ(irq, regs); | 304 | __do_IRQ(irq); |
313 | #endif | 305 | #endif |
314 | } | 306 | } |
315 | 307 | ||
316 | /* Handling of unhandled and spurious interrupts: */ | 308 | /* Handling of unhandled and spurious interrupts: */ |
317 | extern void note_interrupt(unsigned int irq, struct irq_desc *desc, | 309 | extern void note_interrupt(unsigned int irq, struct irq_desc *desc, |
318 | int action_ret, struct pt_regs *regs); | 310 | int action_ret); |
319 | 311 | ||
320 | /* Resending of interrupts :*/ | 312 | /* Resending of interrupts :*/ |
321 | void check_irq_resend(struct irq_desc *desc, unsigned int irq); | 313 | void check_irq_resend(struct irq_desc *desc, unsigned int irq); |
@@ -335,22 +327,15 @@ extern struct irq_chip dummy_irq_chip; | |||
335 | 327 | ||
336 | extern void | 328 | extern void |
337 | set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, | 329 | set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, |
338 | void fastcall (*handle)(unsigned int, | 330 | irq_flow_handler_t handle); |
339 | struct irq_desc *, | ||
340 | struct pt_regs *)); | ||
341 | extern void | 331 | extern void |
342 | __set_irq_handler(unsigned int irq, | 332 | __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained); |
343 | void fastcall (*handle)(unsigned int, struct irq_desc *, | ||
344 | struct pt_regs *), | ||
345 | int is_chained); | ||
346 | 333 | ||
347 | /* | 334 | /* |
348 | * Set a highlevel flow handler for a given IRQ: | 335 | * Set a highlevel flow handler for a given IRQ: |
349 | */ | 336 | */ |
350 | static inline void | 337 | static inline void |
351 | set_irq_handler(unsigned int irq, | 338 | set_irq_handler(unsigned int irq, irq_flow_handler_t handle) |
352 | void fastcall (*handle)(unsigned int, struct irq_desc *, | ||
353 | struct pt_regs *)) | ||
354 | { | 339 | { |
355 | __set_irq_handler(irq, handle, 0); | 340 | __set_irq_handler(irq, handle, 0); |
356 | } | 341 | } |
@@ -362,8 +347,7 @@ set_irq_handler(unsigned int irq, | |||
362 | */ | 347 | */ |
363 | static inline void | 348 | static inline void |
364 | set_irq_chained_handler(unsigned int irq, | 349 | set_irq_chained_handler(unsigned int irq, |
365 | void fastcall (*handle)(unsigned int, struct irq_desc *, | 350 | irq_flow_handler_t handle) |
366 | struct pt_regs *)) | ||
367 | { | 351 | { |
368 | __set_irq_handler(irq, handle, 1); | 352 | __set_irq_handler(irq, handle, 1); |
369 | } | 353 | } |
diff --git a/include/linux/libata.h b/include/linux/libata.h index d1af1dbeaeb4..d0a7ad5ed518 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -628,7 +628,7 @@ struct ata_port_operations { | |||
628 | void (*error_handler) (struct ata_port *ap); | 628 | void (*error_handler) (struct ata_port *ap); |
629 | void (*post_internal_cmd) (struct ata_queued_cmd *qc); | 629 | void (*post_internal_cmd) (struct ata_queued_cmd *qc); |
630 | 630 | ||
631 | irqreturn_t (*irq_handler)(int, void *, struct pt_regs *); | 631 | irq_handler_t irq_handler; |
632 | void (*irq_clear) (struct ata_port *); | 632 | void (*irq_clear) (struct ata_port *); |
633 | 633 | ||
634 | u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg); | 634 | u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg); |
@@ -769,7 +769,7 @@ extern void ata_exec_command(struct ata_port *ap, const struct ata_taskfile *tf) | |||
769 | extern int ata_port_start (struct ata_port *ap); | 769 | extern int ata_port_start (struct ata_port *ap); |
770 | extern void ata_port_stop (struct ata_port *ap); | 770 | extern void ata_port_stop (struct ata_port *ap); |
771 | extern void ata_host_stop (struct ata_host *host); | 771 | extern void ata_host_stop (struct ata_host *host); |
772 | extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs); | 772 | extern irqreturn_t ata_interrupt (int irq, void *dev_instance); |
773 | extern void ata_mmio_data_xfer(struct ata_device *adev, unsigned char *buf, | 773 | extern void ata_mmio_data_xfer(struct ata_device *adev, unsigned char *buf, |
774 | unsigned int buflen, int write_data); | 774 | unsigned int buflen, int write_data); |
775 | extern void ata_pio_data_xfer(struct ata_device *adev, unsigned char *buf, | 775 | extern void ata_pio_data_xfer(struct ata_device *adev, unsigned char *buf, |
diff --git a/include/linux/parport.h b/include/linux/parport.h index 5bf321e82c99..80682aaa8f18 100644 --- a/include/linux/parport.h +++ b/include/linux/parport.h | |||
@@ -229,7 +229,7 @@ struct pardevice { | |||
229 | int (*preempt)(void *); | 229 | int (*preempt)(void *); |
230 | void (*wakeup)(void *); | 230 | void (*wakeup)(void *); |
231 | void *private; | 231 | void *private; |
232 | void (*irq_func)(int, void *, struct pt_regs *); | 232 | void (*irq_func)(int, void *); |
233 | unsigned int flags; | 233 | unsigned int flags; |
234 | struct pardevice *next; | 234 | struct pardevice *next; |
235 | struct pardevice *prev; | 235 | struct pardevice *prev; |
@@ -375,7 +375,7 @@ extern void parport_put_port (struct parport *); | |||
375 | struct pardevice *parport_register_device(struct parport *port, | 375 | struct pardevice *parport_register_device(struct parport *port, |
376 | const char *name, | 376 | const char *name, |
377 | int (*pf)(void *), void (*kf)(void *), | 377 | int (*pf)(void *), void (*kf)(void *), |
378 | void (*irq_func)(int, void *, struct pt_regs *), | 378 | void (*irq_func)(int, void *), |
379 | int flags, void *handle); | 379 | int flags, void *handle); |
380 | 380 | ||
381 | /* parport_unregister unlinks a device from the chain. */ | 381 | /* parport_unregister unlinks a device from the chain. */ |
@@ -457,7 +457,7 @@ static __inline__ int parport_yield_blocking(struct pardevice *dev) | |||
457 | #define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */ | 457 | #define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */ |
458 | 458 | ||
459 | /* IEEE1284 functions */ | 459 | /* IEEE1284 functions */ |
460 | extern void parport_ieee1284_interrupt (int, void *, struct pt_regs *); | 460 | extern void parport_ieee1284_interrupt (int, void *); |
461 | extern int parport_negotiate (struct parport *, int mode); | 461 | extern int parport_negotiate (struct parport *, int mode); |
462 | extern ssize_t parport_write (struct parport *, const void *buf, size_t len); | 462 | extern ssize_t parport_write (struct parport *, const void *buf, size_t len); |
463 | extern ssize_t parport_read (struct parport *, void *buf, size_t len); | 463 | extern ssize_t parport_read (struct parport *, void *buf, size_t len); |
@@ -502,8 +502,7 @@ extern void parport_daisy_fini (struct parport *port); | |||
502 | extern struct pardevice *parport_open (int devnum, const char *name, | 502 | extern struct pardevice *parport_open (int devnum, const char *name, |
503 | int (*pf) (void *), | 503 | int (*pf) (void *), |
504 | void (*kf) (void *), | 504 | void (*kf) (void *), |
505 | void (*irqf) (int, void *, | 505 | void (*irqf) (int, void *), |
506 | struct pt_regs *), | ||
507 | int flags, void *handle); | 506 | int flags, void *handle); |
508 | extern void parport_close (struct pardevice *dev); | 507 | extern void parport_close (struct pardevice *dev); |
509 | extern ssize_t parport_device_id (int devnum, char *buffer, size_t len); | 508 | extern ssize_t parport_device_id (int devnum, char *buffer, size_t len); |
@@ -512,13 +511,12 @@ extern void parport_daisy_deselect_all (struct parport *port); | |||
512 | extern int parport_daisy_select (struct parport *port, int daisy, int mode); | 511 | extern int parport_daisy_select (struct parport *port, int daisy, int mode); |
513 | 512 | ||
514 | /* Lowlevel drivers _can_ call this support function to handle irqs. */ | 513 | /* Lowlevel drivers _can_ call this support function to handle irqs. */ |
515 | static __inline__ void parport_generic_irq(int irq, struct parport *port, | 514 | static __inline__ void parport_generic_irq(int irq, struct parport *port) |
516 | struct pt_regs *regs) | ||
517 | { | 515 | { |
518 | parport_ieee1284_interrupt (irq, port, regs); | 516 | parport_ieee1284_interrupt (irq, port); |
519 | read_lock(&port->cad_lock); | 517 | read_lock(&port->cad_lock); |
520 | if (port->cad && port->cad->irq_func) | 518 | if (port->cad && port->cad->irq_func) |
521 | port->cad->irq_func(irq, port->cad->private, regs); | 519 | port->cad->irq_func(irq, port->cad->private); |
522 | read_unlock(&port->cad_lock); | 520 | read_unlock(&port->cad_lock); |
523 | } | 521 | } |
524 | 522 | ||
diff --git a/include/linux/profile.h b/include/linux/profile.h index e633004ae052..acce53fd38b6 100644 --- a/include/linux/profile.h +++ b/include/linux/profile.h | |||
@@ -17,7 +17,7 @@ struct notifier_block; | |||
17 | 17 | ||
18 | /* init basic kernel profiler */ | 18 | /* init basic kernel profiler */ |
19 | void __init profile_init(void); | 19 | void __init profile_init(void); |
20 | void profile_tick(int, struct pt_regs *); | 20 | void profile_tick(int); |
21 | void profile_hit(int, void *); | 21 | void profile_hit(int, void *); |
22 | #ifdef CONFIG_PROC_FS | 22 | #ifdef CONFIG_PROC_FS |
23 | void create_prof_cpu_mask(struct proc_dir_entry *); | 23 | void create_prof_cpu_mask(struct proc_dir_entry *); |
diff --git a/include/linux/rtc.h b/include/linux/rtc.h index b89f09357054..09ff4c3e2713 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h | |||
@@ -208,7 +208,7 @@ int rtc_register(rtc_task_t *task); | |||
208 | int rtc_unregister(rtc_task_t *task); | 208 | int rtc_unregister(rtc_task_t *task); |
209 | int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg); | 209 | int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg); |
210 | void rtc_get_rtc_time(struct rtc_time *rtc_tm); | 210 | void rtc_get_rtc_time(struct rtc_time *rtc_tm); |
211 | irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 211 | irqreturn_t rtc_interrupt(int irq, void *dev_id); |
212 | 212 | ||
213 | #endif /* __KERNEL__ */ | 213 | #endif /* __KERNEL__ */ |
214 | 214 | ||
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index b661c19f3f72..463ab953b092 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
@@ -409,13 +409,12 @@ int uart_resume_port(struct uart_driver *reg, struct uart_port *port); | |||
409 | * The following are helper functions for the low level drivers. | 409 | * The following are helper functions for the low level drivers. |
410 | */ | 410 | */ |
411 | static inline int | 411 | static inline int |
412 | uart_handle_sysrq_char(struct uart_port *port, unsigned int ch, | 412 | uart_handle_sysrq_char(struct uart_port *port, unsigned int ch) |
413 | struct pt_regs *regs) | ||
414 | { | 413 | { |
415 | #ifdef SUPPORT_SYSRQ | 414 | #ifdef SUPPORT_SYSRQ |
416 | if (port->sysrq) { | 415 | if (port->sysrq) { |
417 | if (ch && time_before(jiffies, port->sysrq)) { | 416 | if (ch && time_before(jiffies, port->sysrq)) { |
418 | handle_sysrq(ch, regs, port->info->tty); | 417 | handle_sysrq(ch, port->info->tty); |
419 | port->sysrq = 0; | 418 | port->sysrq = 0; |
420 | return 1; | 419 | return 1; |
421 | } | 420 | } |
@@ -425,7 +424,7 @@ uart_handle_sysrq_char(struct uart_port *port, unsigned int ch, | |||
425 | return 0; | 424 | return 0; |
426 | } | 425 | } |
427 | #ifndef SUPPORT_SYSRQ | 426 | #ifndef SUPPORT_SYSRQ |
428 | #define uart_handle_sysrq_char(port,ch,regs) uart_handle_sysrq_char(port, 0, NULL) | 427 | #define uart_handle_sysrq_char(port,ch) uart_handle_sysrq_char(port, 0) |
429 | #endif | 428 | #endif |
430 | 429 | ||
431 | /* | 430 | /* |
diff --git a/include/linux/serio.h b/include/linux/serio.h index c9069310b6ac..3a697cc6ecae 100644 --- a/include/linux/serio.h +++ b/include/linux/serio.h | |||
@@ -60,8 +60,7 @@ struct serio_driver { | |||
60 | unsigned int manual_bind; | 60 | unsigned int manual_bind; |
61 | 61 | ||
62 | void (*write_wakeup)(struct serio *); | 62 | void (*write_wakeup)(struct serio *); |
63 | irqreturn_t (*interrupt)(struct serio *, unsigned char, | 63 | irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int); |
64 | unsigned int, struct pt_regs *); | ||
65 | int (*connect)(struct serio *, struct serio_driver *drv); | 64 | int (*connect)(struct serio *, struct serio_driver *drv); |
66 | int (*reconnect)(struct serio *); | 65 | int (*reconnect)(struct serio *); |
67 | void (*disconnect)(struct serio *); | 66 | void (*disconnect)(struct serio *); |
@@ -75,7 +74,7 @@ int serio_open(struct serio *serio, struct serio_driver *drv); | |||
75 | void serio_close(struct serio *serio); | 74 | void serio_close(struct serio *serio); |
76 | void serio_rescan(struct serio *serio); | 75 | void serio_rescan(struct serio *serio); |
77 | void serio_reconnect(struct serio *serio); | 76 | void serio_reconnect(struct serio *serio); |
78 | irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags, struct pt_regs *regs); | 77 | irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags); |
79 | 78 | ||
80 | void __serio_register_port(struct serio *serio, struct module *owner); | 79 | void __serio_register_port(struct serio *serio, struct module *owner); |
81 | static inline void serio_register_port(struct serio *serio) | 80 | static inline void serio_register_port(struct serio *serio) |
diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h index e657e523b9bf..9df8833670cb 100644 --- a/include/linux/sysrq.h +++ b/include/linux/sysrq.h | |||
@@ -29,7 +29,7 @@ struct tty_struct; | |||
29 | #define SYSRQ_ENABLE_RTNICE 0x0100 | 29 | #define SYSRQ_ENABLE_RTNICE 0x0100 |
30 | 30 | ||
31 | struct sysrq_key_op { | 31 | struct sysrq_key_op { |
32 | void (*handler)(int, struct pt_regs *, struct tty_struct *); | 32 | void (*handler)(int, struct tty_struct *); |
33 | char *help_msg; | 33 | char *help_msg; |
34 | char *action_msg; | 34 | char *action_msg; |
35 | int enable_mask; | 35 | int enable_mask; |
@@ -42,8 +42,8 @@ struct sysrq_key_op { | |||
42 | * are available -- else NULL's). | 42 | * are available -- else NULL's). |
43 | */ | 43 | */ |
44 | 44 | ||
45 | void handle_sysrq(int, struct pt_regs *, struct tty_struct *); | 45 | void handle_sysrq(int, struct tty_struct *); |
46 | void __handle_sysrq(int, struct pt_regs *, struct tty_struct *, int check_mask); | 46 | void __handle_sysrq(int, struct tty_struct *, int check_mask); |
47 | int register_sysrq_key(int, struct sysrq_key_op *); | 47 | int register_sysrq_key(int, struct sysrq_key_op *); |
48 | int unregister_sysrq_key(int, struct sysrq_key_op *); | 48 | int unregister_sysrq_key(int, struct sysrq_key_op *); |
49 | struct sysrq_key_op *__sysrq_get_key_op(int key); | 49 | struct sysrq_key_op *__sysrq_get_key_op(int key); |
diff --git a/include/linux/usb.h b/include/linux/usb.h index 190cc1b78fe2..5482bfb3303d 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
@@ -764,9 +764,8 @@ struct usb_iso_packet_descriptor { | |||
764 | }; | 764 | }; |
765 | 765 | ||
766 | struct urb; | 766 | struct urb; |
767 | struct pt_regs; | ||
768 | 767 | ||
769 | typedef void (*usb_complete_t)(struct urb *, struct pt_regs *); | 768 | typedef void (*usb_complete_t)(struct urb *); |
770 | 769 | ||
771 | /** | 770 | /** |
772 | * struct urb - USB Request Block | 771 | * struct urb - USB Request Block |
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h index 91c983eef899..91b3ea2bbb14 100644 --- a/include/linux/usb/serial.h +++ b/include/linux/usb/serial.h | |||
@@ -226,10 +226,10 @@ struct usb_serial_driver { | |||
226 | int (*tiocmget) (struct usb_serial_port *port, struct file *file); | 226 | int (*tiocmget) (struct usb_serial_port *port, struct file *file); |
227 | int (*tiocmset) (struct usb_serial_port *port, struct file *file, unsigned int set, unsigned int clear); | 227 | int (*tiocmset) (struct usb_serial_port *port, struct file *file, unsigned int set, unsigned int clear); |
228 | 228 | ||
229 | void (*read_int_callback)(struct urb *urb, struct pt_regs *regs); | 229 | void (*read_int_callback)(struct urb *urb); |
230 | void (*write_int_callback)(struct urb *urb, struct pt_regs *regs); | 230 | void (*write_int_callback)(struct urb *urb); |
231 | void (*read_bulk_callback)(struct urb *urb, struct pt_regs *regs); | 231 | void (*read_bulk_callback)(struct urb *urb); |
232 | void (*write_bulk_callback)(struct urb *urb, struct pt_regs *regs); | 232 | void (*write_bulk_callback)(struct urb *urb); |
233 | }; | 233 | }; |
234 | #define to_usb_serial_driver(d) container_of(d, struct usb_serial_driver, driver) | 234 | #define to_usb_serial_driver(d) container_of(d, struct usb_serial_driver, driver) |
235 | 235 | ||
@@ -262,8 +262,8 @@ extern int usb_serial_generic_write (struct usb_serial_port *port, const unsigne | |||
262 | extern void usb_serial_generic_close (struct usb_serial_port *port, struct file *filp); | 262 | extern void usb_serial_generic_close (struct usb_serial_port *port, struct file *filp); |
263 | extern int usb_serial_generic_write_room (struct usb_serial_port *port); | 263 | extern int usb_serial_generic_write_room (struct usb_serial_port *port); |
264 | extern int usb_serial_generic_chars_in_buffer (struct usb_serial_port *port); | 264 | extern int usb_serial_generic_chars_in_buffer (struct usb_serial_port *port); |
265 | extern void usb_serial_generic_read_bulk_callback (struct urb *urb, struct pt_regs *regs); | 265 | extern void usb_serial_generic_read_bulk_callback (struct urb *urb); |
266 | extern void usb_serial_generic_write_bulk_callback (struct urb *urb, struct pt_regs *regs); | 266 | extern void usb_serial_generic_write_bulk_callback (struct urb *urb); |
267 | extern void usb_serial_generic_shutdown (struct usb_serial *serial); | 267 | extern void usb_serial_generic_shutdown (struct usb_serial *serial); |
268 | extern int usb_serial_generic_register (int debug); | 268 | extern int usb_serial_generic_register (int debug); |
269 | extern void usb_serial_generic_deregister (void); | 269 | extern void usb_serial_generic_deregister (void); |
diff --git a/include/sound/cs4231.h b/include/sound/cs4231.h index 60b5b92a1319..ab51ce1ba9a5 100644 --- a/include/sound/cs4231.h +++ b/include/sound/cs4231.h | |||
@@ -273,7 +273,7 @@ unsigned char snd_cs4236_ext_in(struct snd_cs4231 *chip, unsigned char reg); | |||
273 | void snd_cs4231_mce_up(struct snd_cs4231 *chip); | 273 | void snd_cs4231_mce_up(struct snd_cs4231 *chip); |
274 | void snd_cs4231_mce_down(struct snd_cs4231 *chip); | 274 | void snd_cs4231_mce_down(struct snd_cs4231 *chip); |
275 | 275 | ||
276 | irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 276 | irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id); |
277 | 277 | ||
278 | const char *snd_cs4231_chip_id(struct snd_cs4231 *chip); | 278 | const char *snd_cs4231_chip_id(struct snd_cs4231 *chip); |
279 | 279 | ||
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h index 892e310c504d..3d3c1514cf71 100644 --- a/include/sound/emu10k1.h +++ b/include/sound/emu10k1.h | |||
@@ -1194,7 +1194,7 @@ int snd_emu10k1_mixer(struct snd_emu10k1 * emu, int pcm_device, int multi_device | |||
1194 | int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device); | 1194 | int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device); |
1195 | int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep); | 1195 | int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep); |
1196 | 1196 | ||
1197 | irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 1197 | irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id); |
1198 | 1198 | ||
1199 | void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice); | 1199 | void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice); |
1200 | int snd_emu10k1_init_efx(struct snd_emu10k1 *emu); | 1200 | int snd_emu10k1_init_efx(struct snd_emu10k1 *emu); |
diff --git a/include/sound/gus.h b/include/sound/gus.h index 68a664ab97f3..c49ea57db8cc 100644 --- a/include/sound/gus.h +++ b/include/sound/gus.h | |||
@@ -638,7 +638,7 @@ int snd_gus_initialize(struct snd_gus_card * gus); | |||
638 | 638 | ||
639 | /* gus_irq.c */ | 639 | /* gus_irq.c */ |
640 | 640 | ||
641 | irqreturn_t snd_gus_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 641 | irqreturn_t snd_gus_interrupt(int irq, void *dev_id); |
642 | #ifdef CONFIG_SND_DEBUG | 642 | #ifdef CONFIG_SND_DEBUG |
643 | void snd_gus_irq_profile_init(struct snd_gus_card *gus); | 643 | void snd_gus_irq_profile_init(struct snd_gus_card *gus); |
644 | #endif | 644 | #endif |
diff --git a/include/sound/initval.h b/include/sound/initval.h index 2ae76efc696f..e85b90750a59 100644 --- a/include/sound/initval.h +++ b/include/sound/initval.h | |||
@@ -53,7 +53,7 @@ | |||
53 | #ifdef SNDRV_LEGACY_FIND_FREE_IRQ | 53 | #ifdef SNDRV_LEGACY_FIND_FREE_IRQ |
54 | #include <linux/interrupt.h> | 54 | #include <linux/interrupt.h> |
55 | 55 | ||
56 | static irqreturn_t snd_legacy_empty_irq_handler(int irq, void *dev_id, struct pt_regs *regs) | 56 | static irqreturn_t snd_legacy_empty_irq_handler(int irq, void *dev_id) |
57 | { | 57 | { |
58 | return IRQ_HANDLED; | 58 | return IRQ_HANDLED; |
59 | } | 59 | } |
diff --git a/include/sound/mpu401.h b/include/sound/mpu401.h index ac504321ea56..8c88267e9bea 100644 --- a/include/sound/mpu401.h +++ b/include/sound/mpu401.h | |||
@@ -106,10 +106,8 @@ struct snd_mpu401 { | |||
106 | 106 | ||
107 | */ | 107 | */ |
108 | 108 | ||
109 | irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id, | 109 | irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id); |
110 | struct pt_regs *regs); | 110 | irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id); |
111 | irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id, | ||
112 | struct pt_regs *regs); | ||
113 | 111 | ||
114 | int snd_mpu401_uart_new(struct snd_card *card, | 112 | int snd_mpu401_uart_new(struct snd_card *card, |
115 | int device, | 113 | int device, |
diff --git a/include/sound/sb.h b/include/sound/sb.h index 431d06675e36..2dd5c8e5b4fe 100644 --- a/include/sound/sb.h +++ b/include/sound/sb.h | |||
@@ -100,7 +100,7 @@ struct snd_sb { | |||
100 | struct snd_rawmidi *rmidi; | 100 | struct snd_rawmidi *rmidi; |
101 | struct snd_rawmidi_substream *midi_substream_input; | 101 | struct snd_rawmidi_substream *midi_substream_input; |
102 | struct snd_rawmidi_substream *midi_substream_output; | 102 | struct snd_rawmidi_substream *midi_substream_output; |
103 | irqreturn_t (*rmidi_callback)(int irq, void *dev_id, struct pt_regs *regs); | 103 | irq_handler_t rmidi_callback; |
104 | 104 | ||
105 | spinlock_t reg_lock; | 105 | spinlock_t reg_lock; |
106 | spinlock_t open_lock; | 106 | spinlock_t open_lock; |
@@ -286,7 +286,7 @@ int snd_sbdsp_reset(struct snd_sb *chip); | |||
286 | int snd_sbdsp_create(struct snd_card *card, | 286 | int snd_sbdsp_create(struct snd_card *card, |
287 | unsigned long port, | 287 | unsigned long port, |
288 | int irq, | 288 | int irq, |
289 | irqreturn_t (*irq_handler)(int, void *, struct pt_regs *), | 289 | irq_handler_t irq_handler, |
290 | int dma8, int dma16, | 290 | int dma8, int dma16, |
291 | unsigned short hardware, | 291 | unsigned short hardware, |
292 | struct snd_sb **r_chip); | 292 | struct snd_sb **r_chip); |
@@ -316,7 +316,7 @@ int snd_sb16dsp_pcm(struct snd_sb *chip, int device, struct snd_pcm ** rpcm); | |||
316 | const struct snd_pcm_ops *snd_sb16dsp_get_pcm_ops(int direction); | 316 | const struct snd_pcm_ops *snd_sb16dsp_get_pcm_ops(int direction); |
317 | int snd_sb16dsp_configure(struct snd_sb *chip); | 317 | int snd_sb16dsp_configure(struct snd_sb *chip); |
318 | /* sb16.c */ | 318 | /* sb16.c */ |
319 | irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs); | 319 | irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id); |
320 | 320 | ||
321 | /* exported mixer stuffs */ | 321 | /* exported mixer stuffs */ |
322 | enum { | 322 | enum { |
diff --git a/include/sound/vx_core.h b/include/sound/vx_core.h index dbca14170615..217394652090 100644 --- a/include/sound/vx_core.h +++ b/include/sound/vx_core.h | |||
@@ -228,7 +228,7 @@ void snd_vx_free_firmware(struct vx_core *chip); | |||
228 | /* | 228 | /* |
229 | * interrupt handler; exported for pcmcia | 229 | * interrupt handler; exported for pcmcia |
230 | */ | 230 | */ |
231 | irqreturn_t snd_vx_irq_handler(int irq, void *dev, struct pt_regs *regs); | 231 | irqreturn_t snd_vx_irq_handler(int irq, void *dev); |
232 | 232 | ||
233 | /* | 233 | /* |
234 | * lowlevel functions | 234 | * lowlevel functions |