aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2006-10-05 09:55:46 -0400
committerDavid Howells <dhowells@warthog.cambridge.redhat.com>2006-10-05 10:10:12 -0400
commit7d12e780e003f93433d49ce78cfedf4b4c52adc5 (patch)
tree6748550400445c11a306b132009f3001e3525df8 /sound/pci
parentda482792a6d1a3fbaaa25fae867b343fb4db3246 (diff)
IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/ad1889.c4
-rw-r--r--sound/pci/ali5451/ali5451.c4
-rw-r--r--sound/pci/als300.c6
-rw-r--r--sound/pci/als4000.c4
-rw-r--r--sound/pci/atiixp.c2
-rw-r--r--sound/pci/atiixp_modem.c2
-rw-r--r--sound/pci/au88x0/au88x0.h3
-rw-r--r--sound/pci/au88x0/au88x0_core.c4
-rw-r--r--sound/pci/azt3328.c4
-rw-r--r--sound/pci/bt87x.c2
-rw-r--r--sound/pci/ca0106/ca0106_main.c3
-rw-r--r--sound/pci/cmipci.c4
-rw-r--r--sound/pci/cs4281.c4
-rw-r--r--sound/pci/cs46xx/cs46xx_lib.c2
-rw-r--r--sound/pci/cs5535audio/cs5535audio.c3
-rw-r--r--sound/pci/echoaudio/echoaudio.c3
-rw-r--r--sound/pci/emu10k1/emu10k1x.c3
-rw-r--r--sound/pci/emu10k1/irq.c2
-rw-r--r--sound/pci/ens1370.c4
-rw-r--r--sound/pci/es1938.c6
-rw-r--r--sound/pci/es1968.c6
-rw-r--r--sound/pci/fm801.c4
-rw-r--r--sound/pci/hda/hda_intel.c2
-rw-r--r--sound/pci/ice1712/ice1712.c6
-rw-r--r--sound/pci/ice1712/ice1724.c4
-rw-r--r--sound/pci/intel8x0.c2
-rw-r--r--sound/pci/intel8x0m.c2
-rw-r--r--sound/pci/korg1212/korg1212.c2
-rw-r--r--sound/pci/maestro3.c3
-rw-r--r--sound/pci/mixart/mixart_core.c2
-rw-r--r--sound/pci/mixart/mixart_core.h2
-rw-r--r--sound/pci/nm256/nm256.c6
-rw-r--r--sound/pci/pcxhr/pcxhr_core.c2
-rw-r--r--sound/pci/pcxhr/pcxhr_core.h2
-rw-r--r--sound/pci/riptide/riptide.c5
-rw-r--r--sound/pci/rme32.c3
-rw-r--r--sound/pci/rme96.c3
-rw-r--r--sound/pci/rme9652/hdsp.c2
-rw-r--r--sound/pci/rme9652/hdspm.c3
-rw-r--r--sound/pci/rme9652/rme9652.c2
-rw-r--r--sound/pci/sonicvibes.c4
-rw-r--r--sound/pci/trident/trident_main.c7
-rw-r--r--sound/pci/via82xx.c6
-rw-r--r--sound/pci/via82xx_modem.c2
-rw-r--r--sound/pci/ymfpci/ymfpci_main.c4
45 files changed, 69 insertions, 86 deletions
diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c
index 0786d0edaca5..cbf8331c3d33 100644
--- a/sound/pci/ad1889.c
+++ b/sound/pci/ad1889.c
@@ -596,9 +596,7 @@ static struct snd_pcm_ops snd_ad1889_capture_ops = {
596}; 596};
597 597
598static irqreturn_t 598static irqreturn_t
599snd_ad1889_interrupt(int irq, 599snd_ad1889_interrupt(int irq, void *dev_id)
600 void *dev_id,
601 struct pt_regs *regs)
602{ 600{
603 unsigned long st; 601 unsigned long st;
604 struct snd_ad1889 *chip = dev_id; 602 struct snd_ad1889 *chip = dev_id;
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c
index 74668398eac5..13a8cefa7749 100644
--- a/sound/pci/ali5451/ali5451.c
+++ b/sound/pci/ali5451/ali5451.c
@@ -1047,9 +1047,7 @@ static void snd_ali_interrupt(struct snd_ali * codec)
1047} 1047}
1048 1048
1049 1049
1050static irqreturn_t snd_ali_card_interrupt(int irq, 1050static irqreturn_t snd_ali_card_interrupt(int irq, void *dev_id)
1051 void *dev_id,
1052 struct pt_regs *regs)
1053{ 1051{
1054 struct snd_ali *codec = dev_id; 1052 struct snd_ali *codec = dev_id;
1055 1053
diff --git a/sound/pci/als300.c b/sound/pci/als300.c
index 96cfb8ae5055..9b16c299f0a9 100644
--- a/sound/pci/als300.c
+++ b/sound/pci/als300.c
@@ -204,8 +204,7 @@ static int snd_als300_dev_free(struct snd_device *device)
204 return snd_als300_free(chip); 204 return snd_als300_free(chip);
205} 205}
206 206
207static irqreturn_t snd_als300_interrupt(int irq, void *dev_id, 207static irqreturn_t snd_als300_interrupt(int irq, void *dev_id)
208 struct pt_regs *regs)
209{ 208{
210 u8 status; 209 u8 status;
211 struct snd_als300 *chip = dev_id; 210 struct snd_als300 *chip = dev_id;
@@ -236,8 +235,7 @@ static irqreturn_t snd_als300_interrupt(int irq, void *dev_id,
236 return IRQ_HANDLED; 235 return IRQ_HANDLED;
237} 236}
238 237
239static irqreturn_t snd_als300plus_interrupt(int irq, void *dev_id, 238static irqreturn_t snd_als300plus_interrupt(int irq, void *dev_id)
240 struct pt_regs *regs)
241{ 239{
242 u8 general, mpu, dram; 240 u8 general, mpu, dram;
243 struct snd_als300 *chip = dev_id; 241 struct snd_als300 *chip = dev_id;
diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c
index 9e596f750cbd..15fc3929b5f7 100644
--- a/sound/pci/als4000.c
+++ b/sound/pci/als4000.c
@@ -385,7 +385,7 @@ static snd_pcm_uframes_t snd_als4000_playback_pointer(struct snd_pcm_substream *
385 * SB IRQ status. 385 * SB IRQ status.
386 * And do we *really* need the lock here for *reading* SB_DSP4_IRQSTATUS?? 386 * And do we *really* need the lock here for *reading* SB_DSP4_IRQSTATUS??
387 * */ 387 * */
388static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id, struct pt_regs *regs) 388static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id)
389{ 389{
390 struct snd_sb *chip = dev_id; 390 struct snd_sb *chip = dev_id;
391 unsigned gcr_status; 391 unsigned gcr_status;
@@ -399,7 +399,7 @@ static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id, struct pt_regs *
399 if ((gcr_status & 0x40) && (chip->capture_substream)) /* capturing */ 399 if ((gcr_status & 0x40) && (chip->capture_substream)) /* capturing */
400 snd_pcm_period_elapsed(chip->capture_substream); 400 snd_pcm_period_elapsed(chip->capture_substream);
401 if ((gcr_status & 0x10) && (chip->rmidi)) /* MPU401 interrupt */ 401 if ((gcr_status & 0x10) && (chip->rmidi)) /* MPU401 interrupt */
402 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 402 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
403 /* release the gcr */ 403 /* release the gcr */
404 outb(gcr_status, chip->alt_port + 0xe); 404 outb(gcr_status, chip->alt_port + 0xe);
405 405
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c
index 347e25ff073d..3e8fc5a0006a 100644
--- a/sound/pci/atiixp.c
+++ b/sound/pci/atiixp.c
@@ -1300,7 +1300,7 @@ static int __devinit snd_atiixp_pcm_new(struct atiixp *chip)
1300/* 1300/*
1301 * interrupt handler 1301 * interrupt handler
1302 */ 1302 */
1303static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1303static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id)
1304{ 1304{
1305 struct atiixp *chip = dev_id; 1305 struct atiixp *chip = dev_id;
1306 unsigned int status; 1306 unsigned int status;
diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c
index a89d67c4598b..c5dda1bf3d46 100644
--- a/sound/pci/atiixp_modem.c
+++ b/sound/pci/atiixp_modem.c
@@ -1017,7 +1017,7 @@ static int __devinit snd_atiixp_pcm_new(struct atiixp_modem *chip)
1017/* 1017/*
1018 * interrupt handler 1018 * interrupt handler
1019 */ 1019 */
1020static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1020static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id)
1021{ 1021{
1022 struct atiixp_modem *chip = dev_id; 1022 struct atiixp_modem *chip = dev_id;
1023 unsigned int status; 1023 unsigned int status;
diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h
index b1cfc3c79d07..5ccf0b1ec670 100644
--- a/sound/pci/au88x0/au88x0.h
+++ b/sound/pci/au88x0/au88x0.h
@@ -236,8 +236,7 @@ static void vortex_spdif_init(vortex_t * vortex, int spdif_sr, int spdif_mode);
236static int vortex_core_init(vortex_t * card); 236static int vortex_core_init(vortex_t * card);
237static int vortex_core_shutdown(vortex_t * card); 237static int vortex_core_shutdown(vortex_t * card);
238static void vortex_enable_int(vortex_t * card); 238static void vortex_enable_int(vortex_t * card);
239static irqreturn_t vortex_interrupt(int irq, void *dev_id, 239static irqreturn_t vortex_interrupt(int irq, void *dev_id);
240 struct pt_regs *regs);
241static int vortex_alsafmt_aspfmt(int alsafmt); 240static int vortex_alsafmt_aspfmt(int alsafmt);
242 241
243/* Connection stuff. */ 242/* Connection stuff. */
diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c
index 5299cce583d3..4a336eaae9d2 100644
--- a/sound/pci/au88x0/au88x0_core.c
+++ b/sound/pci/au88x0/au88x0_core.c
@@ -2385,7 +2385,7 @@ static void vortex_disable_int(vortex_t * card)
2385 hwread(card->mmio, VORTEX_CTRL) & ~CTRL_IRQ_ENABLE); 2385 hwread(card->mmio, VORTEX_CTRL) & ~CTRL_IRQ_ENABLE);
2386} 2386}
2387 2387
2388static irqreturn_t vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2388static irqreturn_t vortex_interrupt(int irq, void *dev_id)
2389{ 2389{
2390 vortex_t *vortex = dev_id; 2390 vortex_t *vortex = dev_id;
2391 int i, handled; 2391 int i, handled;
@@ -2462,7 +2462,7 @@ static irqreturn_t vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs)
2462 } 2462 }
2463 if (source & IRQ_MIDI) { 2463 if (source & IRQ_MIDI) {
2464 snd_mpu401_uart_interrupt(vortex->irq, 2464 snd_mpu401_uart_interrupt(vortex->irq,
2465 vortex->rmidi->private_data, regs); 2465 vortex->rmidi->private_data);
2466 handled = 1; 2466 handled = 1;
2467 } 2467 }
2468 2468
diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c
index bac8e9cfd921..692f203d65d8 100644
--- a/sound/pci/azt3328.c
+++ b/sound/pci/azt3328.c
@@ -1191,7 +1191,7 @@ snd_azf3328_capture_pointer(struct snd_pcm_substream *substream)
1191} 1191}
1192 1192
1193static irqreturn_t 1193static irqreturn_t
1194snd_azf3328_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1194snd_azf3328_interrupt(int irq, void *dev_id)
1195{ 1195{
1196 struct snd_azf3328 *chip = dev_id; 1196 struct snd_azf3328 *chip = dev_id;
1197 u8 status, which; 1197 u8 status, which;
@@ -1256,7 +1256,7 @@ snd_azf3328_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1256 /* MPU401 has less critical IRQ requirements 1256 /* MPU401 has less critical IRQ requirements
1257 * than timer and playback/recording, right? */ 1257 * than timer and playback/recording, right? */
1258 if (status & IRQ_MPU401) { 1258 if (status & IRQ_MPU401) {
1259 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 1259 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
1260 1260
1261 /* hmm, do we have to ack the IRQ here somehow? 1261 /* hmm, do we have to ack the IRQ here somehow?
1262 * If so, then I don't know how... */ 1262 * If so, then I don't know how... */
diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c
index 97a280a246cb..d33a37086df9 100644
--- a/sound/pci/bt87x.c
+++ b/sound/pci/bt87x.c
@@ -269,7 +269,7 @@ static void snd_bt87x_pci_error(struct snd_bt87x *chip, unsigned int status)
269 } 269 }
270} 270}
271 271
272static irqreturn_t snd_bt87x_interrupt(int irq, void *dev_id, struct pt_regs *regs) 272static irqreturn_t snd_bt87x_interrupt(int irq, void *dev_id)
273{ 273{
274 struct snd_bt87x *chip = dev_id; 274 struct snd_bt87x *chip = dev_id;
275 unsigned int status, irq_status; 275 unsigned int status, irq_status;
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c
index 12bbbb6afd2d..6fa4a302f7de 100644
--- a/sound/pci/ca0106/ca0106_main.c
+++ b/sound/pci/ca0106/ca0106_main.c
@@ -1058,8 +1058,7 @@ static int snd_ca0106_dev_free(struct snd_device *device)
1058 return snd_ca0106_free(chip); 1058 return snd_ca0106_free(chip);
1059} 1059}
1060 1060
1061static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, 1061static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id)
1062 struct pt_regs *regs)
1063{ 1062{
1064 unsigned int status; 1063 unsigned int status;
1065 1064
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index 876b64464b6f..1f7e71083069 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -1294,7 +1294,7 @@ static int snd_cmipci_capture_spdif_hw_free(struct snd_pcm_substream *subs)
1294/* 1294/*
1295 * interrupt handler 1295 * interrupt handler
1296 */ 1296 */
1297static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1297static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id)
1298{ 1298{
1299 struct cmipci *cm = dev_id; 1299 struct cmipci *cm = dev_id;
1300 unsigned int status, mask = 0; 1300 unsigned int status, mask = 0;
@@ -1315,7 +1315,7 @@ static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *r
1315 spin_unlock(&cm->reg_lock); 1315 spin_unlock(&cm->reg_lock);
1316 1316
1317 if (cm->rmidi && (status & CM_UARTINT)) 1317 if (cm->rmidi && (status & CM_UARTINT))
1318 snd_mpu401_uart_interrupt(irq, cm->rmidi->private_data, regs); 1318 snd_mpu401_uart_interrupt(irq, cm->rmidi->private_data);
1319 1319
1320 if (cm->pcm) { 1320 if (cm->pcm) {
1321 if ((status & CM_CHINT0) && cm->channel[0].running) 1321 if ((status & CM_CHINT0) && cm->channel[0].running)
diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c
index 1990430a21c1..d54924e60bb1 100644
--- a/sound/pci/cs4281.c
+++ b/sound/pci/cs4281.c
@@ -493,7 +493,7 @@ struct cs4281 {
493 493
494}; 494};
495 495
496static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs); 496static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id);
497 497
498static struct pci_device_id snd_cs4281_ids[] = { 498static struct pci_device_id snd_cs4281_ids[] = {
499 { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */ 499 { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */
@@ -1814,7 +1814,7 @@ static int __devinit snd_cs4281_midi(struct cs4281 * chip, int device,
1814 * Interrupt handler 1814 * Interrupt handler
1815 */ 1815 */
1816 1816
1817static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1817static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id)
1818{ 1818{
1819 struct cs4281 *chip = dev_id; 1819 struct cs4281 *chip = dev_id;
1820 unsigned int status, dma, val; 1820 unsigned int status, dma, val;
diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
index 4851847180d2..16d4ebf2a33f 100644
--- a/sound/pci/cs46xx/cs46xx_lib.c
+++ b/sound/pci/cs46xx/cs46xx_lib.c
@@ -1149,7 +1149,7 @@ static int snd_cs46xx_capture_prepare(struct snd_pcm_substream *substream)
1149 return 0; 1149 return 0;
1150} 1150}
1151 1151
1152static irqreturn_t snd_cs46xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1152static irqreturn_t snd_cs46xx_interrupt(int irq, void *dev_id)
1153{ 1153{
1154 struct snd_cs46xx *chip = dev_id; 1154 struct snd_cs46xx *chip = dev_id;
1155 u32 status1; 1155 u32 status1;
diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c
index 64c7826e8b8c..2441238f2004 100644
--- a/sound/pci/cs5535audio/cs5535audio.c
+++ b/sound/pci/cs5535audio/cs5535audio.c
@@ -203,8 +203,7 @@ static void process_bm1_irq(struct cs5535audio *cs5535au)
203 } 203 }
204} 204}
205 205
206static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id, 206static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id)
207 struct pt_regs *regs)
208{ 207{
209 u16 acc_irq_stat; 208 u16 acc_irq_stat;
210 u8 bm_stat; 209 u8 bm_stat;
diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c
index c3dafa29054f..e5e88fe54de0 100644
--- a/sound/pci/echoaudio/echoaudio.c
+++ b/sound/pci/echoaudio/echoaudio.c
@@ -1818,8 +1818,7 @@ static struct snd_kcontrol_new snd_echo_channels_info __devinitdata = {
1818 IRQ Handler 1818 IRQ Handler
1819******************************************************************************/ 1819******************************************************************************/
1820 1820
1821static irqreturn_t snd_echo_interrupt(int irq, void *dev_id, 1821static irqreturn_t snd_echo_interrupt(int irq, void *dev_id)
1822 struct pt_regs *regs)
1823{ 1822{
1824 struct echoaudio *chip = dev_id; 1823 struct echoaudio *chip = dev_id;
1825 struct snd_pcm_substream *substream; 1824 struct snd_pcm_substream *substream;
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c
index da1610a571b8..c46905a11175 100644
--- a/sound/pci/emu10k1/emu10k1x.c
+++ b/sound/pci/emu10k1/emu10k1x.c
@@ -780,8 +780,7 @@ static int snd_emu10k1x_dev_free(struct snd_device *device)
780 return snd_emu10k1x_free(chip); 780 return snd_emu10k1x_free(chip);
781} 781}
782 782
783static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id, 783static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id)
784 struct pt_regs *regs)
785{ 784{
786 unsigned int status; 785 unsigned int status;
787 786
diff --git a/sound/pci/emu10k1/irq.c b/sound/pci/emu10k1/irq.c
index 1076af4c3669..4f18f7e8bcfb 100644
--- a/sound/pci/emu10k1/irq.c
+++ b/sound/pci/emu10k1/irq.c
@@ -30,7 +30,7 @@
30#include <sound/core.h> 30#include <sound/core.h>
31#include <sound/emu10k1.h> 31#include <sound/emu10k1.h>
32 32
33irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) 33irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id)
34{ 34{
35 struct snd_emu10k1 *emu = dev_id; 35 struct snd_emu10k1 *emu = dev_id;
36 unsigned int status, status2, orig_status, orig_status2; 36 unsigned int status, status2, orig_status, orig_status2;
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c
index a8a601fc781f..8cb4fb2412db 100644
--- a/sound/pci/ens1370.c
+++ b/sound/pci/ens1370.c
@@ -444,7 +444,7 @@ struct ensoniq {
444#endif 444#endif
445}; 445};
446 446
447static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs); 447static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id);
448 448
449static struct pci_device_id snd_audiopci_ids[] = { 449static struct pci_device_id snd_audiopci_ids[] = {
450#ifdef CHIP1370 450#ifdef CHIP1370
@@ -2404,7 +2404,7 @@ static int __devinit snd_ensoniq_midi(struct ensoniq * ensoniq, int device,
2404 * Interrupt handler 2404 * Interrupt handler
2405 */ 2405 */
2406 2406
2407static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2407static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id)
2408{ 2408{
2409 struct ensoniq *ensoniq = dev_id; 2409 struct ensoniq *ensoniq = dev_id;
2410 unsigned int status, sctrl; 2410 unsigned int status, sctrl;
diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c
index 3ce5a4e7e31f..2da988f78ba7 100644
--- a/sound/pci/es1938.c
+++ b/sound/pci/es1938.c
@@ -241,7 +241,7 @@ struct es1938 {
241#endif 241#endif
242}; 242};
243 243
244static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs); 244static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id);
245 245
246static struct pci_device_id snd_es1938_ids[] = { 246static struct pci_device_id snd_es1938_ids[] = {
247 { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */ 247 { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */
@@ -1642,7 +1642,7 @@ static int __devinit snd_es1938_create(struct snd_card *card,
1642/* -------------------------------------------------------------------- 1642/* --------------------------------------------------------------------
1643 * Interrupt handler 1643 * Interrupt handler
1644 * -------------------------------------------------------------------- */ 1644 * -------------------------------------------------------------------- */
1645static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1645static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id)
1646{ 1646{
1647 struct es1938 *chip = dev_id; 1647 struct es1938 *chip = dev_id;
1648 unsigned char status, audiostatus; 1648 unsigned char status, audiostatus;
@@ -1714,7 +1714,7 @@ static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *r
1714 // snd_es1938_mixer_bits(chip, ESSSB_IREG_MPU401CONTROL, 0x40, 0); /* ack? */ 1714 // snd_es1938_mixer_bits(chip, ESSSB_IREG_MPU401CONTROL, 0x40, 0); /* ack? */
1715 if (chip->rmidi) { 1715 if (chip->rmidi) {
1716 handled = 1; 1716 handled = 1;
1717 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 1717 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
1718 } 1718 }
1719 } 1719 }
1720 return IRQ_RETVAL(handled); 1720 return IRQ_RETVAL(handled);
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c
index f3c40385c87d..b9d723c7e1db 100644
--- a/sound/pci/es1968.c
+++ b/sound/pci/es1968.c
@@ -590,7 +590,7 @@ struct es1968 {
590#endif 590#endif
591}; 591};
592 592
593static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs); 593static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id);
594 594
595static struct pci_device_id snd_es1968_ids[] = { 595static struct pci_device_id snd_es1968_ids[] = {
596 /* Maestro 1 */ 596 /* Maestro 1 */
@@ -1962,7 +1962,7 @@ static void es1968_update_hw_volume(unsigned long private_data)
1962/* 1962/*
1963 * interrupt handler 1963 * interrupt handler
1964 */ 1964 */
1965static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1965static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id)
1966{ 1966{
1967 struct es1968 *chip = dev_id; 1967 struct es1968 *chip = dev_id;
1968 u32 event; 1968 u32 event;
@@ -1979,7 +1979,7 @@ static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *r
1979 outb(0xFF, chip->io_port + 0x1A); 1979 outb(0xFF, chip->io_port + 0x1A);
1980 1980
1981 if ((event & ESM_MPU401_IRQ) && chip->rmidi) { 1981 if ((event & ESM_MPU401_IRQ) && chip->rmidi) {
1982 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 1982 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
1983 } 1983 }
1984 1984
1985 if (event & ESM_SOUND_IRQ) { 1985 if (event & ESM_SOUND_IRQ) {
diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c
index bdfda1997d5b..3ec7d7ee04dd 100644
--- a/sound/pci/fm801.c
+++ b/sound/pci/fm801.c
@@ -520,7 +520,7 @@ static snd_pcm_uframes_t snd_fm801_capture_pointer(struct snd_pcm_substream *sub
520 return bytes_to_frames(substream->runtime, ptr); 520 return bytes_to_frames(substream->runtime, ptr);
521} 521}
522 522
523static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *regs) 523static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id)
524{ 524{
525 struct fm801 *chip = dev_id; 525 struct fm801 *chip = dev_id;
526 unsigned short status; 526 unsigned short status;
@@ -561,7 +561,7 @@ static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *re
561 snd_pcm_period_elapsed(chip->capture_substream); 561 snd_pcm_period_elapsed(chip->capture_substream);
562 } 562 }
563 if (chip->rmidi && (status & FM801_IRQ_MPU)) 563 if (chip->rmidi && (status & FM801_IRQ_MPU))
564 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 564 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
565 if (status & FM801_IRQ_VOLUME) 565 if (status & FM801_IRQ_VOLUME)
566 ;/* TODO */ 566 ;/* TODO */
567 567
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index e9d4cb4d07e1..a76a778d0a1f 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -811,7 +811,7 @@ static void azx_init_chip(struct azx *chip)
811/* 811/*
812 * interrupt handler 812 * interrupt handler
813 */ 813 */
814static irqreturn_t azx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 814static irqreturn_t azx_interrupt(int irq, void *dev_id)
815{ 815{
816 struct azx *chip = dev_id; 816 struct azx *chip = dev_id;
817 struct azx_dev *azx_dev; 817 struct azx_dev *azx_dev;
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c
index dc69392eafa3..8a576b78bee5 100644
--- a/sound/pci/ice1712/ice1712.c
+++ b/sound/pci/ice1712/ice1712.c
@@ -420,7 +420,7 @@ static void snd_ice1712_set_input_clock_source(struct snd_ice1712 *ice, int spdi
420 * Interrupt handler 420 * Interrupt handler
421 */ 421 */
422 422
423static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *regs) 423static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id)
424{ 424{
425 struct snd_ice1712 *ice = dev_id; 425 struct snd_ice1712 *ice = dev_id;
426 unsigned char status; 426 unsigned char status;
@@ -433,7 +433,7 @@ static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *
433 handled = 1; 433 handled = 1;
434 if (status & ICE1712_IRQ_MPU1) { 434 if (status & ICE1712_IRQ_MPU1) {
435 if (ice->rmidi[0]) 435 if (ice->rmidi[0])
436 snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data, regs); 436 snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data);
437 outb(ICE1712_IRQ_MPU1, ICEREG(ice, IRQSTAT)); 437 outb(ICE1712_IRQ_MPU1, ICEREG(ice, IRQSTAT));
438 status &= ~ICE1712_IRQ_MPU1; 438 status &= ~ICE1712_IRQ_MPU1;
439 } 439 }
@@ -441,7 +441,7 @@ static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *
441 outb(ICE1712_IRQ_TIMER, ICEREG(ice, IRQSTAT)); 441 outb(ICE1712_IRQ_TIMER, ICEREG(ice, IRQSTAT));
442 if (status & ICE1712_IRQ_MPU2) { 442 if (status & ICE1712_IRQ_MPU2) {
443 if (ice->rmidi[1]) 443 if (ice->rmidi[1])
444 snd_mpu401_uart_interrupt(irq, ice->rmidi[1]->private_data, regs); 444 snd_mpu401_uart_interrupt(irq, ice->rmidi[1]->private_data);
445 outb(ICE1712_IRQ_MPU2, ICEREG(ice, IRQSTAT)); 445 outb(ICE1712_IRQ_MPU2, ICEREG(ice, IRQSTAT));
446 status &= ~ICE1712_IRQ_MPU2; 446 status &= ~ICE1712_IRQ_MPU2;
447 } 447 }
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c
index 71d6aedc0749..e9cbfdf37059 100644
--- a/sound/pci/ice1712/ice1724.c
+++ b/sound/pci/ice1712/ice1724.c
@@ -218,7 +218,7 @@ static unsigned int snd_vt1724_get_gpio_data(struct snd_ice1712 *ice)
218 * Interrupt handler 218 * Interrupt handler
219 */ 219 */
220 220
221static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *regs) 221static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id)
222{ 222{
223 struct snd_ice1712 *ice = dev_id; 223 struct snd_ice1712 *ice = dev_id;
224 unsigned char status; 224 unsigned char status;
@@ -236,7 +236,7 @@ static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *r
236 */ 236 */
237 if ((status & VT1724_IRQ_MPU_RX)||(status & VT1724_IRQ_MPU_TX)) { 237 if ((status & VT1724_IRQ_MPU_RX)||(status & VT1724_IRQ_MPU_TX)) {
238 if (ice->rmidi[0]) 238 if (ice->rmidi[0])
239 snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data, regs); 239 snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data);
240 outb(status & (VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX), ICEREG1724(ice, IRQSTAT)); 240 outb(status & (VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX), ICEREG1724(ice, IRQSTAT));
241 status &= ~(VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX); 241 status &= ~(VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX);
242 } 242 }
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 72dbaedcbdf5..f4319b8d4644 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -801,7 +801,7 @@ static inline void snd_intel8x0_update(struct intel8x0 *chip, struct ichdev *ich
801 status & (ICH_FIFOE | ICH_BCIS | ICH_LVBCI)); 801 status & (ICH_FIFOE | ICH_BCIS | ICH_LVBCI));
802} 802}
803 803
804static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs *regs) 804static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id)
805{ 805{
806 struct intel8x0 *chip = dev_id; 806 struct intel8x0 *chip = dev_id;
807 struct ichdev *ichdev; 807 struct ichdev *ichdev;
diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c
index 268e2f7241ea..6703f5cb5569 100644
--- a/sound/pci/intel8x0m.c
+++ b/sound/pci/intel8x0m.c
@@ -511,7 +511,7 @@ static inline void snd_intel8x0_update(struct intel8x0m *chip, struct ichdev *ic
511 iputbyte(chip, port + ichdev->roff_sr, ICH_FIFOE | ICH_BCIS | ICH_LVBCI); 511 iputbyte(chip, port + ichdev->roff_sr, ICH_FIFOE | ICH_BCIS | ICH_LVBCI);
512} 512}
513 513
514static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs *regs) 514static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id)
515{ 515{
516 struct intel8x0m *chip = dev_id; 516 struct intel8x0m *chip = dev_id;
517 struct ichdev *ichdev; 517 struct ichdev *ichdev;
diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c
index cfea51f44784..398aa10a06e8 100644
--- a/sound/pci/korg1212/korg1212.c
+++ b/sound/pci/korg1212/korg1212.c
@@ -1119,7 +1119,7 @@ static void snd_korg1212_OnDSPDownloadComplete(struct snd_korg1212 *korg1212)
1119 snd_korg1212_setCardState(korg1212, K1212_STATE_DSP_COMPLETE); 1119 snd_korg1212_setCardState(korg1212, K1212_STATE_DSP_COMPLETE);
1120} 1120}
1121 1121
1122static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1122static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id)
1123{ 1123{
1124 u32 doorbellValue; 1124 u32 doorbellValue;
1125 struct snd_korg1212 *korg1212 = dev_id; 1125 struct snd_korg1212 *korg1212 = dev_id;
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c
index 45214b3b81be..05605f474a72 100644
--- a/sound/pci/maestro3.c
+++ b/sound/pci/maestro3.c
@@ -1685,8 +1685,7 @@ static void snd_m3_update_hw_volume(unsigned long private_data)
1685 spin_unlock_irqrestore(&chip->ac97_lock, flags); 1685 spin_unlock_irqrestore(&chip->ac97_lock, flags);
1686} 1686}
1687 1687
1688static irqreturn_t 1688static irqreturn_t snd_m3_interrupt(int irq, void *dev_id)
1689snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1690{ 1689{
1691 struct snd_m3 *chip = dev_id; 1690 struct snd_m3 *chip = dev_id;
1692 u8 status; 1691 u8 status;
diff --git a/sound/pci/mixart/mixart_core.c b/sound/pci/mixart/mixart_core.c
index 406ac3a9d42a..d54457317b14 100644
--- a/sound/pci/mixart/mixart_core.c
+++ b/sound/pci/mixart/mixart_core.c
@@ -408,7 +408,7 @@ void snd_mixart_msg_tasklet(unsigned long arg)
408} 408}
409 409
410 410
411irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs) 411irqreturn_t snd_mixart_interrupt(int irq, void *dev_id)
412{ 412{
413 struct mixart_mgr *mgr = dev_id; 413 struct mixart_mgr *mgr = dev_id;
414 int err; 414 int err;
diff --git a/sound/pci/mixart/mixart_core.h b/sound/pci/mixart/mixart_core.h
index 1fe2bcfcc57c..c919b734756f 100644
--- a/sound/pci/mixart/mixart_core.h
+++ b/sound/pci/mixart/mixart_core.h
@@ -563,7 +563,7 @@ int snd_mixart_send_msg(struct mixart_mgr *mgr, struct mixart_msg *request, int
563int snd_mixart_send_msg_wait_notif(struct mixart_mgr *mgr, struct mixart_msg *request, u32 notif_event); 563int snd_mixart_send_msg_wait_notif(struct mixart_mgr *mgr, struct mixart_msg *request, u32 notif_event);
564int snd_mixart_send_msg_nonblock(struct mixart_mgr *mgr, struct mixart_msg *request); 564int snd_mixart_send_msg_nonblock(struct mixart_mgr *mgr, struct mixart_msg *request);
565 565
566irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs); 566irqreturn_t snd_mixart_interrupt(int irq, void *dev_id);
567void snd_mixart_msg_tasklet(unsigned long arg); 567void snd_mixart_msg_tasklet(unsigned long arg);
568 568
569void snd_mixart_reset_board(struct mixart_mgr *mgr); 569void snd_mixart_reset_board(struct mixart_mgr *mgr);
diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c
index 101eee0aa018..b1bbdb9e3b7b 100644
--- a/sound/pci/nm256/nm256.c
+++ b/sound/pci/nm256/nm256.c
@@ -236,7 +236,7 @@ struct nm256 {
236 236
237 int irq; 237 int irq;
238 int irq_acks; 238 int irq_acks;
239 irqreturn_t (*interrupt)(int, void *, struct pt_regs *); 239 irq_handler_t interrupt;
240 int badintrcount; /* counter to check bogus interrupts */ 240 int badintrcount; /* counter to check bogus interrupts */
241 struct mutex irq_mutex; 241 struct mutex irq_mutex;
242 242
@@ -1004,7 +1004,7 @@ snd_nm256_intr_check(struct nm256 *chip)
1004 */ 1004 */
1005 1005
1006static irqreturn_t 1006static irqreturn_t
1007snd_nm256_interrupt(int irq, void *dev_id, struct pt_regs *dummy) 1007snd_nm256_interrupt(int irq, void *dev_id)
1008{ 1008{
1009 struct nm256 *chip = dev_id; 1009 struct nm256 *chip = dev_id;
1010 u16 status; 1010 u16 status;
@@ -1069,7 +1069,7 @@ snd_nm256_interrupt(int irq, void *dev_id, struct pt_regs *dummy)
1069 */ 1069 */
1070 1070
1071static irqreturn_t 1071static irqreturn_t
1072snd_nm256_interrupt_zx(int irq, void *dev_id, struct pt_regs *dummy) 1072snd_nm256_interrupt_zx(int irq, void *dev_id)
1073{ 1073{
1074 struct nm256 *chip = dev_id; 1074 struct nm256 *chip = dev_id;
1075 u32 status; 1075 u32 status;
diff --git a/sound/pci/pcxhr/pcxhr_core.c b/sound/pci/pcxhr/pcxhr_core.c
index c40f59062684..0ff8dc36fde3 100644
--- a/sound/pci/pcxhr/pcxhr_core.c
+++ b/sound/pci/pcxhr/pcxhr_core.c
@@ -1131,7 +1131,7 @@ static void pcxhr_update_timer_pos(struct pcxhr_mgr *mgr,
1131} 1131}
1132 1132
1133 1133
1134irqreturn_t pcxhr_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1134irqreturn_t pcxhr_interrupt(int irq, void *dev_id)
1135{ 1135{
1136 struct pcxhr_mgr *mgr = dev_id; 1136 struct pcxhr_mgr *mgr = dev_id;
1137 unsigned int reg; 1137 unsigned int reg;
diff --git a/sound/pci/pcxhr/pcxhr_core.h b/sound/pci/pcxhr/pcxhr_core.h
index e7415d6d1826..d9a4ab609875 100644
--- a/sound/pci/pcxhr/pcxhr_core.h
+++ b/sound/pci/pcxhr/pcxhr_core.h
@@ -194,7 +194,7 @@ int pcxhr_write_io_num_reg_cont(struct pcxhr_mgr *mgr, unsigned int mask,
194 194
195 195
196/* interrupt handling */ 196/* interrupt handling */
197irqreturn_t pcxhr_interrupt(int irq, void *dev_id, struct pt_regs *regs); 197irqreturn_t pcxhr_interrupt(int irq, void *dev_id);
198void pcxhr_msg_tasklet(unsigned long arg); 198void pcxhr_msg_tasklet(unsigned long arg);
199 199
200#endif /* __SOUND_PCXHR_CORE_H */ 200#endif /* __SOUND_PCXHR_CORE_H */
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c
index fe210c853442..ec4899147e1d 100644
--- a/sound/pci/riptide/riptide.c
+++ b/sound/pci/riptide/riptide.c
@@ -1736,7 +1736,7 @@ snd_riptide_pcm(struct snd_riptide *chip, int device, struct snd_pcm **rpcm)
1736} 1736}
1737 1737
1738static irqreturn_t 1738static irqreturn_t
1739snd_riptide_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1739snd_riptide_interrupt(int irq, void *dev_id)
1740{ 1740{
1741 struct snd_riptide *chip = dev_id; 1741 struct snd_riptide *chip = dev_id;
1742 struct cmdif *cif = chip->cif; 1742 struct cmdif *cif = chip->cif;
@@ -1751,8 +1751,7 @@ snd_riptide_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1751 if (chip->rmidi && IS_MPUIRQ(cif->hwport)) { 1751 if (chip->rmidi && IS_MPUIRQ(cif->hwport)) {
1752 chip->handled_irqs++; 1752 chip->handled_irqs++;
1753 snd_mpu401_uart_interrupt(irq, 1753 snd_mpu401_uart_interrupt(irq,
1754 chip->rmidi->private_data, 1754 chip->rmidi->private_data);
1755 regs);
1756 } 1755 }
1757 SET_AIACK(cif->hwport); 1756 SET_AIACK(cif->hwport);
1758 } 1757 }
diff --git a/sound/pci/rme32.c b/sound/pci/rme32.c
index 2a71499242fa..dc8d1302e22d 100644
--- a/sound/pci/rme32.c
+++ b/sound/pci/rme32.c
@@ -818,8 +818,7 @@ static void snd_rme32_pcm_stop(struct rme32 * rme32, int to_pause)
818 writel(0, rme32->iobase + RME32_IO_RESET_POS); 818 writel(0, rme32->iobase + RME32_IO_RESET_POS);
819} 819}
820 820
821static irqreturn_t 821static irqreturn_t snd_rme32_interrupt(int irq, void *dev_id)
822snd_rme32_interrupt(int irq, void *dev_id, struct pt_regs *regs)
823{ 822{
824 struct rme32 *rme32 = (struct rme32 *) dev_id; 823 struct rme32 *rme32 = (struct rme32 *) dev_id;
825 824
diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c
index f8de7c997017..106110a89a4c 100644
--- a/sound/pci/rme96.c
+++ b/sound/pci/rme96.c
@@ -1117,8 +1117,7 @@ snd_rme96_capture_stop(struct rme96 *rme96)
1117 1117
1118static irqreturn_t 1118static irqreturn_t
1119snd_rme96_interrupt(int irq, 1119snd_rme96_interrupt(int irq,
1120 void *dev_id, 1120 void *dev_id)
1121 struct pt_regs *regs)
1122{ 1121{
1123 struct rme96 *rme96 = (struct rme96 *)dev_id; 1122 struct rme96 *rme96 = (struct rme96 *)dev_id;
1124 1123
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index d3e07de433b0..694aa057ed49 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -3603,7 +3603,7 @@ static void hdsp_midi_tasklet(unsigned long arg)
3603 snd_hdsp_midi_input_read (&hdsp->midi[1]); 3603 snd_hdsp_midi_input_read (&hdsp->midi[1]);
3604} 3604}
3605 3605
3606static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3606static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id)
3607{ 3607{
3608 struct hdsp *hdsp = (struct hdsp *) dev_id; 3608 struct hdsp *hdsp = (struct hdsp *) dev_id;
3609 unsigned int status; 3609 unsigned int status;
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
index 7d03ae066d53..7055d893855d 100644
--- a/sound/pci/rme9652/hdspm.c
+++ b/sound/pci/rme9652/hdspm.c
@@ -2556,8 +2556,7 @@ static int snd_hdspm_set_defaults(struct hdspm * hdspm)
2556 interupt 2556 interupt
2557 ------------------------------------------------------------*/ 2557 ------------------------------------------------------------*/
2558 2558
2559static irqreturn_t snd_hdspm_interrupt(int irq, void *dev_id, 2559static irqreturn_t snd_hdspm_interrupt(int irq, void *dev_id)
2560 struct pt_regs *regs)
2561{ 2560{
2562 struct hdspm *hdspm = (struct hdspm *) dev_id; 2561 struct hdspm *hdspm = (struct hdspm *) dev_id;
2563 unsigned int status; 2562 unsigned int status;
diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c
index fc15f61ad5d1..cf0427b4bfde 100644
--- a/sound/pci/rme9652/rme9652.c
+++ b/sound/pci/rme9652/rme9652.c
@@ -1882,7 +1882,7 @@ static void snd_rme9652_set_defaults(struct snd_rme9652 *rme9652)
1882 rme9652_set_rate(rme9652, 48000); 1882 rme9652_set_rate(rme9652, 48000);
1883} 1883}
1884 1884
1885static irqreturn_t snd_rme9652_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1885static irqreturn_t snd_rme9652_interrupt(int irq, void *dev_id)
1886{ 1886{
1887 struct snd_rme9652 *rme9652 = (struct snd_rme9652 *) dev_id; 1887 struct snd_rme9652 *rme9652 = (struct snd_rme9652 *) dev_id;
1888 1888
diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c
index e5d4def1aa6f..f9b8afabda9c 100644
--- a/sound/pci/sonicvibes.c
+++ b/sound/pci/sonicvibes.c
@@ -580,7 +580,7 @@ static int snd_sonicvibes_trigger(struct sonicvibes * sonic, int what, int cmd)
580 return result; 580 return result;
581} 581}
582 582
583static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_regs *regs) 583static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id)
584{ 584{
585 struct sonicvibes *sonic = dev_id; 585 struct sonicvibes *sonic = dev_id;
586 unsigned char status; 586 unsigned char status;
@@ -601,7 +601,7 @@ static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_reg
601 } 601 }
602 if (sonic->rmidi) { 602 if (sonic->rmidi) {
603 if (status & SV_MIDI_IRQ) 603 if (status & SV_MIDI_IRQ)
604 snd_mpu401_uart_interrupt(irq, sonic->rmidi->private_data, regs); 604 snd_mpu401_uart_interrupt(irq, sonic->rmidi->private_data);
605 } 605 }
606 if (status & SV_UD_IRQ) { 606 if (status & SV_UD_IRQ) {
607 unsigned char udreg; 607 unsigned char udreg;
diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c
index ebbe12d78d8c..0d478871808d 100644
--- a/sound/pci/trident/trident_main.c
+++ b/sound/pci/trident/trident_main.c
@@ -52,8 +52,7 @@ static int snd_trident_pcm_mixer_build(struct snd_trident *trident,
52static int snd_trident_pcm_mixer_free(struct snd_trident *trident, 52static int snd_trident_pcm_mixer_free(struct snd_trident *trident,
53 struct snd_trident_voice * voice, 53 struct snd_trident_voice * voice,
54 struct snd_pcm_substream *substream); 54 struct snd_pcm_substream *substream);
55static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, 55static irqreturn_t snd_trident_interrupt(int irq, void *dev_id);
56 struct pt_regs *regs);
57static int snd_trident_sis_reset(struct snd_trident *trident); 56static int snd_trident_sis_reset(struct snd_trident *trident);
58 57
59static void snd_trident_clear_voices(struct snd_trident * trident, 58static void snd_trident_clear_voices(struct snd_trident * trident,
@@ -3737,7 +3736,7 @@ static int snd_trident_free(struct snd_trident *trident)
3737 3736
3738 ---------------------------------------------------------------------------*/ 3737 ---------------------------------------------------------------------------*/
3739 3738
3740static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3739static irqreturn_t snd_trident_interrupt(int irq, void *dev_id)
3741{ 3740{
3742 struct snd_trident *trident = dev_id; 3741 struct snd_trident *trident = dev_id;
3743 unsigned int audio_int, chn_int, stimer, channel, mask, tmp; 3742 unsigned int audio_int, chn_int, stimer, channel, mask, tmp;
@@ -3825,7 +3824,7 @@ static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *
3825 } 3824 }
3826 if (audio_int & MPU401_IRQ) { 3825 if (audio_int & MPU401_IRQ) {
3827 if (trident->rmidi) { 3826 if (trident->rmidi) {
3828 snd_mpu401_uart_interrupt(irq, trident->rmidi->private_data, regs); 3827 snd_mpu401_uart_interrupt(irq, trident->rmidi->private_data);
3829 } else { 3828 } else {
3830 inb(TRID_REG(trident, T4D_MPUR0)); 3829 inb(TRID_REG(trident, T4D_MPUR0));
3831 } 3830 }
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 6db3d4cc4d8d..e6990e0bbf23 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -613,7 +613,7 @@ static void snd_via82xx_channel_reset(struct via82xx *chip, struct viadev *viade
613 * Interrupt handler 613 * Interrupt handler
614 * Used for 686 and 8233A 614 * Used for 686 and 8233A
615 */ 615 */
616static irqreturn_t snd_via686_interrupt(int irq, void *dev_id, struct pt_regs *regs) 616static irqreturn_t snd_via686_interrupt(int irq, void *dev_id)
617{ 617{
618 struct via82xx *chip = dev_id; 618 struct via82xx *chip = dev_id;
619 unsigned int status; 619 unsigned int status;
@@ -623,7 +623,7 @@ static irqreturn_t snd_via686_interrupt(int irq, void *dev_id, struct pt_regs *r
623 if (! (status & chip->intr_mask)) { 623 if (! (status & chip->intr_mask)) {
624 if (chip->rmidi) 624 if (chip->rmidi)
625 /* check mpu401 interrupt */ 625 /* check mpu401 interrupt */
626 return snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 626 return snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
627 return IRQ_NONE; 627 return IRQ_NONE;
628 } 628 }
629 629
@@ -659,7 +659,7 @@ static irqreturn_t snd_via686_interrupt(int irq, void *dev_id, struct pt_regs *r
659/* 659/*
660 * Interrupt handler 660 * Interrupt handler
661 */ 661 */
662static irqreturn_t snd_via8233_interrupt(int irq, void *dev_id, struct pt_regs *regs) 662static irqreturn_t snd_via8233_interrupt(int irq, void *dev_id)
663{ 663{
664 struct via82xx *chip = dev_id; 664 struct via82xx *chip = dev_id;
665 unsigned int status; 665 unsigned int status;
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c
index 016f9dac253f..5ab1cf3d434b 100644
--- a/sound/pci/via82xx_modem.c
+++ b/sound/pci/via82xx_modem.c
@@ -475,7 +475,7 @@ static void snd_via82xx_channel_reset(struct via82xx_modem *chip, struct viadev
475 * Interrupt handler 475 * Interrupt handler
476 */ 476 */
477 477
478static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 478static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id)
479{ 479{
480 struct via82xx_modem *chip = dev_id; 480 struct via82xx_modem *chip = dev_id;
481 unsigned int status; 481 unsigned int status;
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index 24f6fc52f898..ebc6da89edf3 100644
--- a/sound/pci/ymfpci/ymfpci_main.c
+++ b/sound/pci/ymfpci/ymfpci_main.c
@@ -753,7 +753,7 @@ static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip)
753 } 753 }
754} 754}
755 755
756static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *regs) 756static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id)
757{ 757{
758 struct snd_ymfpci *chip = dev_id; 758 struct snd_ymfpci *chip = dev_id;
759 u32 status, nvoice, mode; 759 u32 status, nvoice, mode;
@@ -799,7 +799,7 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *r
799 snd_ymfpci_writew(chip, YDSXGR_INTFLAG, status); 799 snd_ymfpci_writew(chip, YDSXGR_INTFLAG, status);
800 800
801 if (chip->rawmidi) 801 if (chip->rawmidi)
802 snd_mpu401_uart_interrupt(irq, chip->rawmidi->private_data, regs); 802 snd_mpu401_uart_interrupt(irq, chip->rawmidi->private_data);
803 return IRQ_HANDLED; 803 return IRQ_HANDLED;
804} 804}
805 805