From: Prarit Bhargava <prarit@redhat.com> Date: Mon, 28 Jul 2008 14:36:50 -0400 Subject: [snd] fix snd-sb16.ko compile Message-id: 20080728183649.3917.29422.sendpatchset@prarit.bos.redhat.com O-Subject: [RHEL5.4 PATCH]: Fix snd-sb16.ko compile Bugzilla: 456698 RH-Acked-by: Brian Maly <bmaly@redhat.com> RH-Acked-by: Jaroslav Kysela <jkysela@redhat.com> Fix snd-sb16.ko compile. This option is not turned on in our kernel, however, it should compile. Compile tested only. Resolves BZ 456698. diff --git a/include/sound/initval.h b/include/sound/initval.h index e85b907..3a088ad 100644 --- a/include/sound/initval.h +++ b/include/sound/initval.h @@ -53,7 +53,8 @@ #ifdef SNDRV_LEGACY_FIND_FREE_IRQ #include <linux/interrupt.h> -static irqreturn_t snd_legacy_empty_irq_handler(int irq, void *dev_id) +static irqreturn_t snd_legacy_empty_irq_handler(int irq, void *dev_id, + struct pt_regs *regs) { return IRQ_HANDLED; } diff --git a/include/sound/sb.h b/include/sound/sb.h index 81b2096..d0b434c 100644 --- a/include/sound/sb.h +++ b/include/sound/sb.h @@ -100,6 +100,7 @@ struct snd_sb { struct snd_rawmidi *rmidi; struct snd_rawmidi_substream *midi_substream_input; struct snd_rawmidi_substream *midi_substream_output; + irq_handler_t rmidi_callback; spinlock_t reg_lock; spinlock_t open_lock; @@ -315,7 +316,7 @@ int snd_sb16dsp_pcm(struct snd_sb *chip, int device, struct snd_pcm ** rpcm); const struct snd_pcm_ops *snd_sb16dsp_get_pcm_ops(int direction); int snd_sb16dsp_configure(struct snd_sb *chip); /* sb16.c */ -irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id); +irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs); /* exported mixer stuffs */ enum { diff --git a/sound/isa/sb/sb16_main.c b/sound/isa/sb/sb16_main.c index 383911b..f183f18 100644 --- a/sound/isa/sb/sb16_main.c +++ b/sound/isa/sb/sb16_main.c @@ -395,7 +395,7 @@ static int snd_sb16_capture_trigger(struct snd_pcm_substream *substream, return result; } -irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id) +irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs) { struct snd_sb *chip = dev_id; unsigned char status; @@ -405,7 +405,7 @@ irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id) status = snd_sbmixer_read(chip, SB_DSP4_IRQSTATUS); spin_unlock(&chip->mixer_lock); if ((status & SB_IRQTYPE_MPUIN) && chip->rmidi_callback) - chip->rmidi_callback(irq, chip->rmidi->private_data); + chip->rmidi_callback(irq, chip->rmidi->private_data, regs); if (status & SB_IRQTYPE_8BIT) { ok = 0; if (chip->mode & SB_MODE_PLAYBACK_8) { diff --git a/sound/isa/sb/sb8.c b/sound/isa/sb/sb8.c index be1e83e..7b46cfc 100644 --- a/sound/isa/sb/sb8.c +++ b/sound/isa/sb/sb8.c @@ -63,7 +63,8 @@ struct snd_sb8 { struct snd_sb *chip; }; -static irqreturn_t snd_sb8_interrupt(int irq, void *dev_id) +static irqreturn_t snd_sb8_interrupt(int irq, void *dev_id, + struct pt_regs *regs) { struct snd_sb *chip = dev_id;