lkml.org 
[lkml]   [2002]   [Sep]   [22]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateSat, 21 Sep 2002 22:40:08 +0200
Subject[PATCH] 6/11 sound/oss replace cli()
FromPeter Waechtler <>
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/

\
 
 \ /
  Last update: 2005-03-22 12:29    [from the cache]
©2003-2008