[PATCH] 6/11 sound/oss replace cli()

From: Peter Waechtler (pwaechtler@mac.com)
Date: Sat Sep 21 2002 - 15:40:08 EST


I left the IRQ handler as is: releasing and requesting an IRQ
handler on every frame.

--- vanilla-2.5.36/sound/oss/dmasound/dmasound_q40.c Sat Aug 10
00:03:13 2002
+++ linux-2.5-cli-oss/sound/oss/dmasound/dmasound_q40.c Sat Sep 21
18:53:15 2002
@@ -459,28 +459,32 @@
                    */
                   return;
          }
- save_flags(flags); cli();
+ spin_lock_irqsave(&dmasound.lock, flags);
          Q40PlayNextFrame(1);
- restore_flags(flags);
+ spin_unlock_irqrestore_flags(&dmasound.lock, flags);
  }

  static void Q40StereoInterrupt(int irq, void *dummy, struct pt_regs *fp)
  {
+ spin_lock(&dmasound.lock);
          if (q40_sc>1){
              *DAC_LEFT=*q40_pp++;
              *DAC_RIGHT=*q40_pp++;
              q40_sc -=2;
              master_outb(1,SAMPLE_CLEAR_REG);
          }else Q40Interrupt();
+ spin_unlock(&dmasound.lock);
  }
  static void Q40MonoInterrupt(int irq, void *dummy, struct pt_regs *fp)
  {
+ spin_lock(&dmasound.lock);
          if (q40_sc>0){
              *DAC_LEFT=*q40_pp;
              *DAC_RIGHT=*q40_pp++;
              q40_sc --;
              master_outb(1,SAMPLE_CLEAR_REG);
          }else Q40Interrupt();
+ spin_unlock(&dmasound.lock);
  }
  static void Q40Interrupt(void)
  {

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Sep 23 2002 - 22:00:35 EST