ChangeSet 1.2181.25.18, 2005/03/22 09:06:04+01:00, [EMAIL PROTECTED]

        [ALSA] remove superfluous spin_lock_irqsave calls
        
        MPU401 UART,CS4281 driver,ENS1370/1+ driver,CS46xx driver
        RME HDSP driver
        In PCM trigger and pointer callbacks, replace spin_lock_irqsave() with
        spin_lock() because interrupts are already guaranteed to be disabled.
        
        Signed-off-by: Clemens Ladisch <[EMAIL PROTECTED]>



 drivers/mpu401/mpu401_uart.c |    5 ++---
 pci/cs4281.c                 |    7 +++----
 pci/cs46xx/cs46xx_lib.c      |   16 ++++++----------
 pci/ens1370.c                |   25 ++++++++++---------------
 pci/rme9652/hdsp.c           |    7 +++----
 5 files changed, 24 insertions(+), 36 deletions(-)


diff -Nru a/sound/drivers/mpu401/mpu401_uart.c 
b/sound/drivers/mpu401/mpu401_uart.c
--- a/sound/drivers/mpu401/mpu401_uart.c        2005-03-30 16:12:59 -08:00
+++ b/sound/drivers/mpu401/mpu401_uart.c        2005-03-30 16:12:59 -08:00
@@ -134,14 +134,13 @@
  */
 static void snd_mpu401_uart_timer(unsigned long data)
 {
-       unsigned long flags;
        mpu401_t *mpu = (mpu401_t *)data;
 
-       spin_lock_irqsave(&mpu->timer_lock, flags);
+       spin_lock(&mpu->timer_lock);
        /*mpu->mode |= MPU401_MODE_TIMER;*/
        mpu->timer.expires = 1 + jiffies;
        add_timer(&mpu->timer);
-       spin_unlock_irqrestore(&mpu->timer_lock, flags);
+       spin_unlock(&mpu->timer_lock);
        if (mpu->rmidi)
                _snd_mpu401_uart_interrupt(mpu);
 }
diff -Nru a/sound/pci/cs4281.c b/sound/pci/cs4281.c
--- a/sound/pci/cs4281.c        2005-03-30 16:12:59 -08:00
+++ b/sound/pci/cs4281.c        2005-03-30 16:12:59 -08:00
@@ -697,11 +697,10 @@
 
 static int snd_cs4281_trigger(snd_pcm_substream_t *substream, int cmd)
 {
-       unsigned long flags;
        cs4281_dma_t *dma = (cs4281_dma_t *)substream->runtime->private_data;
        cs4281_t *chip = snd_pcm_substream_chip(substream);
 
-       spin_lock_irqsave(&chip->reg_lock, flags);
+       spin_lock(&chip->reg_lock);
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
                dma->valDCR |= BA0_DCR_MSK;
@@ -728,13 +727,13 @@
                        dma->valFCR &= ~BA0_FCR_FEN;
                break;
        default:
-               spin_unlock_irqrestore(&chip->reg_lock, flags);
+               spin_unlock(&chip->reg_lock);
                return -EINVAL;
        }
        snd_cs4281_pokeBA0(chip, dma->regDMR, dma->valDMR);
        snd_cs4281_pokeBA0(chip, dma->regFCR, dma->valFCR);
        snd_cs4281_pokeBA0(chip, dma->regDCR, dma->valDCR);
-       spin_unlock_irqrestore(&chip->reg_lock, flags);
+       spin_unlock(&chip->reg_lock);
        return 0;
 }
 
diff -Nru a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
--- a/sound/pci/cs46xx/cs46xx_lib.c     2005-03-30 16:12:59 -08:00
+++ b/sound/pci/cs46xx/cs46xx_lib.c     2005-03-30 16:12:59 -08:00
@@ -765,9 +765,6 @@
 static int snd_cs46xx_playback_trigger(snd_pcm_substream_t * substream,
                                       int cmd)
 {
-#ifndef CONFIG_SND_CS46XX_NEW_DSP
-       unsigned long flags;
-#endif
        cs46xx_t *chip = snd_pcm_substream_chip(substream);
        /*snd_pcm_runtime_t *runtime = substream->runtime;*/
        int result = 0;
@@ -792,7 +789,7 @@
                if (substream->runtime->periods != CS46XX_FRAGS)
                        snd_cs46xx_playback_transfer(substream);
 #else
-               spin_lock_irqsave(&chip->reg_lock, flags);
+               spin_lock(&chip->reg_lock);
                if (substream->runtime->periods != CS46XX_FRAGS)
                        snd_cs46xx_playback_transfer(substream);
                { unsigned int tmp;
@@ -800,7 +797,7 @@
                tmp &= 0x0000ffff;
                snd_cs46xx_poke(chip, BA1_PCTL, chip->play_ctl | tmp);
                }
-               spin_unlock_irqrestore(&chip->reg_lock, flags);
+               spin_unlock(&chip->reg_lock);
 #endif
                break;
        case SNDRV_PCM_TRIGGER_STOP:
@@ -813,13 +810,13 @@
                if (!cpcm->pcm_channel->unlinked)
                        cs46xx_dsp_pcm_unlink(chip,cpcm->pcm_channel);
 #else
-               spin_lock_irqsave(&chip->reg_lock, flags);
+               spin_lock(&chip->reg_lock);
                { unsigned int tmp;
                tmp = snd_cs46xx_peek(chip, BA1_PCTL);
                tmp &= 0x0000ffff;
                snd_cs46xx_poke(chip, BA1_PCTL, tmp);
                }
-               spin_unlock_irqrestore(&chip->reg_lock, flags);
+               spin_unlock(&chip->reg_lock);
 #endif
                break;
        default:
@@ -833,12 +830,11 @@
 static int snd_cs46xx_capture_trigger(snd_pcm_substream_t * substream,
                                      int cmd)
 {
-       unsigned long flags;
        cs46xx_t *chip = snd_pcm_substream_chip(substream);
        unsigned int tmp;
        int result = 0;
 
-       spin_lock_irqsave(&chip->reg_lock, flags);
+       spin_lock(&chip->reg_lock);
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_START:
        case SNDRV_PCM_TRIGGER_RESUME:
@@ -856,7 +852,7 @@
                result = -EINVAL;
                break;
        }
-       spin_unlock_irqrestore(&chip->reg_lock, flags);
+       spin_unlock(&chip->reg_lock);
 
        return result;
 }
diff -Nru a/sound/pci/ens1370.c b/sound/pci/ens1370.c
--- a/sound/pci/ens1370.c       2005-03-30 16:12:59 -08:00
+++ b/sound/pci/ens1370.c       2005-03-30 16:12:59 -08:00
@@ -754,8 +754,6 @@
 
 static int snd_ensoniq_trigger(snd_pcm_substream_t *substream, int cmd)
 {
-       unsigned long flags;
-
        ensoniq_t *ensoniq = snd_pcm_substream_chip(substream);
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
@@ -775,13 +773,13 @@
                        } else if (s == ensoniq->capture_substream)
                                return -EINVAL;
                }
-               spin_lock_irqsave(&ensoniq->reg_lock, flags);
+               spin_lock(&ensoniq->reg_lock);
                if (cmd == SNDRV_PCM_TRIGGER_PAUSE_PUSH)
                        ensoniq->sctrl |= what;
                else
                        ensoniq->sctrl &= ~what;
                outl(ensoniq->sctrl, ES_REG(ensoniq, SERIAL));
-               spin_unlock_irqrestore(&ensoniq->reg_lock, flags);
+               spin_unlock(&ensoniq->reg_lock);
                break;
        }
        case SNDRV_PCM_TRIGGER_START:
@@ -803,13 +801,13 @@
                                snd_pcm_trigger_done(s, substream);
                        }
                }
-               spin_lock_irqsave(&ensoniq->reg_lock, flags);
+               spin_lock(&ensoniq->reg_lock);
                if (cmd == SNDRV_PCM_TRIGGER_START)
                        ensoniq->ctrl |= what;
                else
                        ensoniq->ctrl &= ~what;
                outl(ensoniq->ctrl, ES_REG(ensoniq, CONTROL));
-               spin_unlock_irqrestore(&ensoniq->reg_lock, flags);
+               spin_unlock(&ensoniq->reg_lock);
                break;
        }
        default:
@@ -958,11 +956,10 @@
 
 static snd_pcm_uframes_t snd_ensoniq_playback1_pointer(snd_pcm_substream_t * 
substream)
 {
-       unsigned long flags;
        ensoniq_t *ensoniq = snd_pcm_substream_chip(substream);
        size_t ptr;
 
-       spin_lock_irqsave(&ensoniq->reg_lock, flags);
+       spin_lock(&ensoniq->reg_lock);
        if (inl(ES_REG(ensoniq, CONTROL)) & ES_DAC1_EN) {
                outl(ES_MEM_PAGEO(ES_PAGE_DAC), ES_REG(ensoniq, MEM_PAGE));
                ptr = ES_REG_FCURR_COUNTI(inl(ES_REG(ensoniq, DAC1_SIZE)));
@@ -970,17 +967,16 @@
        } else {
                ptr = 0;
        }
-       spin_unlock_irqrestore(&ensoniq->reg_lock, flags);
+       spin_unlock(&ensoniq->reg_lock);
        return ptr;
 }
 
 static snd_pcm_uframes_t snd_ensoniq_playback2_pointer(snd_pcm_substream_t * 
substream)
 {
-       unsigned long flags;
        ensoniq_t *ensoniq = snd_pcm_substream_chip(substream);
        size_t ptr;
 
-       spin_lock_irqsave(&ensoniq->reg_lock, flags);
+       spin_lock(&ensoniq->reg_lock);
        if (inl(ES_REG(ensoniq, CONTROL)) & ES_DAC2_EN) {
                outl(ES_MEM_PAGEO(ES_PAGE_DAC), ES_REG(ensoniq, MEM_PAGE));
                ptr = ES_REG_FCURR_COUNTI(inl(ES_REG(ensoniq, DAC2_SIZE)));
@@ -988,17 +984,16 @@
        } else {
                ptr = 0;
        }
-       spin_unlock_irqrestore(&ensoniq->reg_lock, flags);
+       spin_unlock(&ensoniq->reg_lock);
        return ptr;
 }
 
 static snd_pcm_uframes_t snd_ensoniq_capture_pointer(snd_pcm_substream_t * 
substream)
 {
-       unsigned long flags;
        ensoniq_t *ensoniq = snd_pcm_substream_chip(substream);
        size_t ptr;
 
-       spin_lock_irqsave(&ensoniq->reg_lock, flags);
+       spin_lock(&ensoniq->reg_lock);
        if (inl(ES_REG(ensoniq, CONTROL)) & ES_ADC_EN) {
                outl(ES_MEM_PAGEO(ES_PAGE_ADC), ES_REG(ensoniq, MEM_PAGE));
                ptr = ES_REG_FCURR_COUNTI(inl(ES_REG(ensoniq, ADC_SIZE)));
@@ -1006,7 +1001,7 @@
        } else {
                ptr = 0;
        }
-       spin_unlock_irqrestore(&ensoniq->reg_lock, flags);
+       spin_unlock(&ensoniq->reg_lock);
        return ptr;
 }
 
diff -Nru a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
--- a/sound/pci/rme9652/hdsp.c  2005-03-30 16:12:59 -08:00
+++ b/sound/pci/rme9652/hdsp.c  2005-03-30 16:12:59 -08:00
@@ -3905,7 +3905,6 @@
 
 static int snd_hdsp_trigger(snd_pcm_substream_t *substream, int cmd)
 {
-       unsigned long flags;
        hdsp_t *hdsp = snd_pcm_substream_chip(substream);
        snd_pcm_substream_t *other;
        int running;
@@ -3925,7 +3924,7 @@
                return -EIO;
        }
 
-       spin_lock_irqsave(&hdsp->lock, flags);
+       spin_lock(&hdsp->lock);
        running = hdsp->running;
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_START:
@@ -3936,7 +3935,7 @@
                break;
        default:
                snd_BUG();
-               spin_unlock_irqrestore(&hdsp->lock, flags);
+               spin_unlock(&hdsp->lock);
                return -EINVAL;
        }
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
@@ -3978,7 +3977,7 @@
        else if (hdsp->running && !running)
                hdsp_stop_audio(hdsp);
        hdsp->running = running;
-       spin_unlock_irqrestore(&hdsp->lock, flags);
+       spin_unlock(&hdsp->lock);
 
        return 0;
 }
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to