public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] 6/11 sound/oss replace cli()
@ 2002-09-21 20:40 Peter Waechtler
  2002-09-22 22:59 ` Richard Zidlicky
  0 siblings, 1 reply; 2+ messages in thread
From: Peter Waechtler @ 2002-09-21 20:40 UTC (permalink / raw)
  To: linux-kernel; +Cc: Linus Torvalds, Richard Zidlicky

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)
  {


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-09-22 23:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-09-21 20:40 [PATCH] 6/11 sound/oss replace cli() Peter Waechtler
2002-09-22 22:59 ` Richard Zidlicky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox