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