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

* Re: [PATCH] 6/11 sound/oss replace cli()
  2002-09-21 20:40 [PATCH] 6/11 sound/oss replace cli() Peter Waechtler
@ 2002-09-22 22:59 ` Richard Zidlicky
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Zidlicky @ 2002-09-22 22:59 UTC (permalink / raw)
  To: Peter Waechtler; +Cc: linux-kernel, Linus Torvalds

On Sat, Sep 21, 2002 at 10:40:08PM +0200, Peter Waechtler wrote:
> I left the IRQ handler as is: releasing and requesting an IRQ
> handler on every frame.

Thanks,
Richard

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