10/10 sound/oss/dmasound/dmasound_q40.c

10/10 sound/oss/dmasound/dmasound_q40.c

Post by pwaecht.. » Tue, 10 Sep 2002 19:20:06



--- vanilla-2.5.33/sound/oss/dmasound/dmasound_q40.c    Sun Sep  8 21:52:50 2002

 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/soundcard.h>
-
+#include <linux/spinlock.h>
 #include <asm/uaccess.h>
 #include <asm/q40ints.h>

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

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


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

                   goto exit;
        } else write_sq.active=0;
        write_sq.count--;
-       Q40Play();
+       __Q40Play();

        if (q40_sc<2)
              { /* there was nothing to play, disable irq */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

10/10 sound/oss/dmasound/dmasound_q40.c

Post by Linus Torvald » Wed, 11 Sep 2002 01:10:08


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


        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


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


     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

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

10/10 sound/oss/dmasound/dmasound_q40.c

Post by Tomas Szep » Wed, 11 Sep 2002 02:30:08


Quote:>  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,*_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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://www.veryComputer.com/
Please read the FAQ at  http://www.veryComputer.com/

 
 
 

10/10 sound/oss/dmasound/dmasound_q40.c

Post by Andreas Dilge » Wed, 11 Sep 2002 02:40:07



Quote:> 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/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

10/10 sound/oss/dmasound/dmasound_q40.c

Post by David S. Mille » Wed, 11 Sep 2002 02:50:04



   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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

 
 
 

10/10 sound/oss/dmasound/dmasound_q40.c

Post by pwaecht.. » Wed, 11 Sep 2002 04:50:08


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

Quote:> 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 *- 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?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://www.veryComputer.com/
Please read the FAQ at  http://www.veryComputer.com/

 
 
 

1. 10/10 sound/oss/dmasound/dmasound_q40.c

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

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

2. Linux installation questions.

3. 9/10 sound/oss/dmasound/dmasound.h

4. xlock problem under solaris 2.5

5. 8/10 sound/oss/dmasound/dmasound_core.c

6. videoram installed, how to set to 24-bit?

7. 6/10 sound/oss/dmasound/dmasound_atari.c

8. Can't find -lX11

9. 7/10 sound/oss/dmasound/dmasound_awacs.c

10. L 10 10 10 10...

11. 4/10 sound/oss/v_midi.h

12. 2/10 sound/oss/gus_wave.c

13. 10/11 sound/oss replace cli()