Commit 607ace4b authored by David S. Miller's avatar David S. Miller

[SOUND TRIDENT]: Update for irqreturn_t.

parent d466e157
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
static int snd_trident_pcm_mixer_build(trident_t *trident, snd_trident_voice_t * voice, snd_pcm_substream_t *substream); static int snd_trident_pcm_mixer_build(trident_t *trident, snd_trident_voice_t * voice, snd_pcm_substream_t *substream);
static int snd_trident_pcm_mixer_free(trident_t *trident, snd_trident_voice_t * voice, snd_pcm_substream_t *substream); static int snd_trident_pcm_mixer_free(trident_t *trident, snd_trident_voice_t * voice, snd_pcm_substream_t *substream);
static void snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs); static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs);
#ifdef CONFIG_PM #ifdef CONFIG_PM
static int snd_trident_set_power_state(snd_card_t *card, unsigned int power_state); static int snd_trident_set_power_state(snd_card_t *card, unsigned int power_state);
#endif #endif
...@@ -3683,11 +3683,11 @@ int snd_trident_free(trident_t *trident) ...@@ -3683,11 +3683,11 @@ int snd_trident_free(trident_t *trident)
the method try & fail so it is possible that it won't the method try & fail so it is possible that it won't
work on all computers. [jaroslav] work on all computers. [jaroslav]
Returns: None. Returns: Whether IRQ was handled or not.
---------------------------------------------------------------------------*/ ---------------------------------------------------------------------------*/
static void snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{ {
trident_t *trident = snd_magic_cast(trident_t, dev_id, return); trident_t *trident = snd_magic_cast(trident_t, dev_id, return);
unsigned int audio_int, chn_int, stimer, channel, mask, tmp; unsigned int audio_int, chn_int, stimer, channel, mask, tmp;
...@@ -3696,7 +3696,7 @@ static void snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -3696,7 +3696,7 @@ static void snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs)
audio_int = inl(TRID_REG(trident, T4D_MISCINT)); audio_int = inl(TRID_REG(trident, T4D_MISCINT));
if ((audio_int & (ADDRESS_IRQ|MPU401_IRQ)) == 0) if ((audio_int & (ADDRESS_IRQ|MPU401_IRQ)) == 0)
return; return IRQ_NONE;
if (audio_int & ADDRESS_IRQ) { if (audio_int & ADDRESS_IRQ) {
// get interrupt status for all channels // get interrupt status for all channels
spin_lock(&trident->reg_lock); spin_lock(&trident->reg_lock);
...@@ -3781,6 +3781,8 @@ static void snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -3781,6 +3781,8 @@ static void snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs)
} }
} }
// outl((ST_TARGET_REACHED | MIXER_OVERFLOW | MIXER_UNDERFLOW), TRID_REG(trident, T4D_MISCINT)); // outl((ST_TARGET_REACHED | MIXER_OVERFLOW | MIXER_UNDERFLOW), TRID_REG(trident, T4D_MISCINT));
return IRQ_HANDLED;
} }
/*--------------------------------------------------------------------------- /*---------------------------------------------------------------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment