linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] 10/10 sound/oss/dmasound/dmasound_q40.c
@ 2002-08-29 19:56 pwaechtler
       [not found] ` <20020911234500.B4476@linux-m68k.org>
  0 siblings, 1 reply; 7+ messages in thread
From: pwaechtler @ 2002-08-29 19:56 UTC (permalink / raw)
  To: linux-kernel; +Cc: torvalds

--- vanilla-2.5.33/sound/oss/dmasound/dmasound_q40.c	Sun Sep  8 21:52:50 2002
+++ linux-2.5-cli-oss/sound/oss/dmasound/dmasound_q40.c	Mon Sep  9 00:41:06 2002
@@ -18,7 +18,7 @@
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/soundcard.h>
-
+#include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <asm/q40ints.h>
 #include <asm/q40_master.h>
@@ -49,8 +49,7 @@
 static int Q40SetVolume(int volume);
 static void Q40PlayNextFrame(int index);
 static void Q40Play(void);
-static void Q40StereoInterrupt(int irq, void *dummy, struct pt_regs *fp);
-static void Q40MonoInterrupt(int irq, void *dummy, struct pt_regs *fp);
+static void Q40InterruptHandler(int irq, void *dummy, struct pt_regs *fp);
 static void Q40Interrupt(void);
 
 
@@ -384,7 +383,7 @@
 static int __init Q40IrqInit(void)
 {
 	/* Register interrupt handler. */
-	request_irq(Q40_IRQ_SAMPLE, Q40StereoInterrupt, 0,
+	request_irq(Q40_IRQ_SAMPLE, Q40InterruptHandler, 0,
 		    "DMA sound", Q40Interrupt);
 
 	return(1);
@@ -430,23 +429,13 @@
 	speed=(dmasound.hard.speed==10000 ? 0 : 1);
 
 	master_outb( 0,SAMPLE_ENABLE_REG);
-	free_irq(Q40_IRQ_SAMPLE, Q40Interrupt);
-	if (dmasound.soft.stereo)
-	  	request_irq(Q40_IRQ_SAMPLE, Q40StereoInterrupt, 0,
-		    "Q40 sound", Q40Interrupt);
-	  else
-	        request_irq(Q40_IRQ_SAMPLE, Q40MonoInterrupt, 0,
-		    "Q40 sound", Q40Interrupt);
-
 	master_outb( speed, SAMPLE_RATE_REG);
 	master_outb( 1,SAMPLE_CLEAR_REG);
 	master_outb( 1,SAMPLE_ENABLE_REG);
 }
 
-static void Q40Play(void)
+static void __Q40Play(void)
 {
-        unsigned long flags;
-
 	if (write_sq.active || write_sq.count<=0 ) {
 		/* There's already a frame loaded */
 		return;
@@ -459,29 +448,35 @@
 		  */
 	         return;
 	}
-	save_flags(flags); cli();
 	Q40PlayNextFrame(1);
-	restore_flags(flags);
 }
 
-static void Q40StereoInterrupt(int irq, void *dummy, struct pt_regs *fp)
-{
-        if (q40_sc>1){
-            *DAC_LEFT=*q40_pp++;
-	    *DAC_RIGHT=*q40_pp++;
-	    q40_sc -=2;
-	    master_outb(1,SAMPLE_CLEAR_REG);
-	}else Q40Interrupt();
-}
-static void Q40MonoInterrupt(int irq, void *dummy, struct pt_regs *fp)
+static void Q40Play(void)
 {
-        if (q40_sc>0){
-            *DAC_LEFT=*q40_pp;
-	    *DAC_RIGHT=*q40_pp++;
-	    q40_sc --;
+	unsigned long flags;
+	spin_lock_irqsave(&dmasound.lock, flags);
+	__Q40Play();
+	spin_unlock_irqrestore(&dmasound.lock, flags);
+}
+
+static void Q40InterruptHandler(int irq, void *dummy, struct pt_regs *fp)
+{
+	spin_lock(&dmasound.lock);
+	if (q40_sc>1){
+		if (dmasound.soft.stereo){
+			*DAC_LEFT=*q40_pp++;
+			*DAC_RIGHT=*q40_pp++;
+			q40_sc -=2;
+		} else {
+			*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)
 {
 	if (!write_sq.active) {
@@ -493,7 +488,7 @@
 		   goto exit;
 	} else write_sq.active=0;
 	write_sq.count--;
-	Q40Play();
+	__Q40Play();
 
 	if (q40_sc<2)
 	      { /* there was nothing to play, disable irq */

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

* Re: [PATCH] 10/10 sound/oss/dmasound/dmasound_q40.c
       [not found] ` <20020911234500.B4476@linux-m68k.org>
@ 2002-09-12  8:26   ` Richard Zidlicky
  0 siblings, 0 replies; 7+ messages in thread
From: Richard Zidlicky @ 2002-09-12  8:26 UTC (permalink / raw)
  To: pwaechtler; +Cc: Linux Kernel ML

On Thu, Aug 29, 2002 at 09:56:27PM +0200, pwaechtler@mac.com wrote:


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

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


not so good. The interrupt will happen up to 20000/s so any 
unneeded code in the interrupt handler like the test for stereo
should be avoided.. I will rewrite it in assembler someday.

Richard




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

* Re: [PATCH] 10/10 sound/oss/dmasound/dmasound_q40.c
  2002-09-09 16:07 ` Linus Torvalds
  2002-09-09 17:20   ` Tomas Szepe
  2002-09-09 17:32   ` Andreas Dilger
@ 2002-09-09 19:47   ` pwaechtler
  2 siblings, 0 replies; 7+ messages in thread
From: pwaechtler @ 2002-09-09 19:47 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Kernel Mailing List

Am Montag den, 9. September 2002, um 18:07, schrieb Linus Torvalds:

> The reasons your emails seem to be considered spammish by spamassassing
> is:
>

> ...
> Your mailer seems to be
>
> 	X-Mailer: Apple Mail (2.482)
>
> which is apparently a total piece of cr*p software.

No, I am the crap - I used a self written script to generate the former 
41
OSS fixes - but was too lazy this time and edited the mbox file for
sending these 10 patches :-(

Now, I will add my full name without &auml; (which btw, is not an
&aelig;) - I guess you fetched the patch via an lkml archive, or do I
have to resent 5/10?


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

* Re: [PATCH] 10/10 sound/oss/dmasound/dmasound_q40.c
  2002-09-09 16:07 ` Linus Torvalds
  2002-09-09 17:20   ` Tomas Szepe
@ 2002-09-09 17:32   ` Andreas Dilger
  2002-09-09 17:32     ` David S. Miller
  2002-09-09 19:47   ` pwaechtler
  2 siblings, 1 reply; 7+ messages in thread
From: Andreas Dilger @ 2002-09-09 17:32 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: pwaechtler, Kernel Mailing List

On Sep 09, 2002  09:07 -0700, Linus Torvalds wrote:
> The reasons your emails seem to be considered spammish by spamassassing 
> is:
> 
> 	tests=MSG_ID_ADDED_BY_MTA_2,NO_REAL_NAME,DATE_IN_FUTURE
> 
> That seems to have happened with patch 5/10, for example.

LOL.  My spamassassin marked 5/10 in the "P O R N_10" group, and
"DATE_IN_PAST_96_XX", but it was rescued by "UNIFIED_PATCH" and "AWL"
(spamassassin 2.31, but with some scores I set myself).  It got marked
that way because of the triple-x beside "fixme".  I have AWL set as a
pretty small negative number because people start spamming (viruses more)
with sender addresses of real people on l-k.

Cheers, Andreas
--
Andreas Dilger
http://www-mddsp.enel.ucalgary.ca/People/adilger/
http://sourceforge.net/projects/ext2resize/


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

* Re: [PATCH] 10/10 sound/oss/dmasound/dmasound_q40.c
  2002-09-09 17:32   ` Andreas Dilger
@ 2002-09-09 17:32     ` David S. Miller
  0 siblings, 0 replies; 7+ messages in thread
From: David S. Miller @ 2002-09-09 17:32 UTC (permalink / raw)
  To: adilger; +Cc: torvalds, pwaechtler, linux-kernel

   From: Andreas Dilger <adilger@clusterfs.com>
   Date: Mon, 9 Sep 2002 11:32:19 -0600
   
   It got marked that way because of the triple-x beside "fixme".

You should see my (linux-kernel listowner) inbox when someone
posts patches to the Adaptec scsi driver.

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

* Re: [PATCH] 10/10 sound/oss/dmasound/dmasound_q40.c
  2002-09-09 16:07 ` Linus Torvalds
@ 2002-09-09 17:20   ` Tomas Szepe
  2002-09-09 17:32   ` Andreas Dilger
  2002-09-09 19:47   ` pwaechtler
  2 siblings, 0 replies; 7+ messages in thread
From: Tomas Szepe @ 2002-09-09 17:20 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: pwaechtler, Kernel Mailing List

>  your emails tend to be marked as spam for me. This one, for example, came 
> _really_ close to my not-very-aggressive filter limit, and since I never 
> received PATCH 5/10 I suspect that got eaten.

Very likely -- unless you use the UNIFIED_PATCH test.

5/10 ->
X-Spam-Status: No, hits=-1.4 required=5.0
        tests=NO_REAL_NAME,PORN_10,UNIFIED_PATCH,MSG_ID_ADDED_BY_MTA_2,
              DATE_IN_PAST_96_XX
        version=2.31

... as basically it's just the fact that the mail contains a patch that
reverts the spam label here.

T.

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

* Re: [PATCH] 10/10 sound/oss/dmasound/dmasound_q40.c
       [not found] <200209091007.g89A7dZH010390@smtp-relay02.mac.com>
@ 2002-09-09 16:07 ` Linus Torvalds
  2002-09-09 17:20   ` Tomas Szepe
                     ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Linus Torvalds @ 2002-09-09 16:07 UTC (permalink / raw)
  To: pwaechtler; +Cc: Kernel Mailing List


[ More examples of emails that didn't make it to me, with a public warning 
  to the kernel list. I'm going through my last 1000 received emails to 
  see which ones were incorrectly marked spam: that seems to have happened
  to exactly 2 of them right now, your 5/10 and Hans' 3/3.

  On the whole I'm pretty happy, since it automatically deleted 150+ real
  spam emails over the last two days alone, so the few false positives
  aren't going to make me switch - I'll just try to convince people to 
  fix their mailers instead. ]

Peter,
 your emails tend to be marked as spam for me. This one, for example, came 
_really_ close to my not-very-aggressive filter limit, and since I never 
received PATCH 5/10 I suspect that got eaten.

The reasons your emails seem to be considered spammish by spamassassing 
is:

	tests=MSG_ID_ADDED_BY_MTA_2,NO_REAL_NAME,DATE_IN_FUTURE

because of this:

 (a) your email software is broken and does not add a message ID, so the 
     ID gets added by one of the _relaying_ stations instead of your own 
     mailer:

	Message-Id: <200209091005.g89A5SVw025550@smtp-relay01.mac.com>
	Received: from picmac.adams.family ([145.254.143.74]) by
	          asmtp02.mac.com (Netscape Messaging Server 4.15) with ESMTP id
	          H261D300.AEV; Mon, 9 Sep 2002 03:05:27 -0700 

     Spam detectors consider emails without original message ID's to be
     likely bulk output.

 (b) Your email From address is

	From: pwaechtler@mac.com

     which looks more automated than a named person (ie it _likes_ seeing 
     something like this:

	From: pwaechtler@mac.com (Peter Waechtler)

     instead, which looks more like a real person than an automated 
     address - and also allows the quoted reply to look a lot more 
     natural)

 (c) your date is bogus:

	Date: Thu, 29 Aug 2002 21:56:27 +0200

     even though the mail was received "Mon, 9 Sep 2002". Again, this 
     tends to make spam detectors _think_ that the email body was 
     auto-generated rather than generated by a real mail client.

Your mailer seems to be

	X-Mailer: Apple Mail (2.482)

which is apparently a total piece of cr*p software. 

NOTE! This email actually got past the spam filter despite all these 
problems. But the problems get it "close enough" to be considered spam 
that any additional issues (if you were to send an all-caps subject line, 
for example) would take it over the line. That seems to have happened with 
patch 5/10, for example.

			Linus


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

end of thread, other threads:[~2002-09-12  8:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-29 19:56 [PATCH] 10/10 sound/oss/dmasound/dmasound_q40.c pwaechtler
     [not found] ` <20020911234500.B4476@linux-m68k.org>
2002-09-12  8:26   ` Richard Zidlicky
     [not found] <200209091007.g89A7dZH010390@smtp-relay02.mac.com>
2002-09-09 16:07 ` Linus Torvalds
2002-09-09 17:20   ` Tomas Szepe
2002-09-09 17:32   ` Andreas Dilger
2002-09-09 17:32     ` David S. Miller
2002-09-09 19:47   ` pwaechtler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).