On Tue, Sep 25, 2007 at 08:53:29PM +0000, Jacob Meuser wrote:
> On Tue, Sep 25, 2007 at 10:31:06PM +0200, Jonathan Schleifer wrote:
> > Jacob Meuser <[EMAIL PROTECTED]> wrote:
> > 
> > > sorry your report was ignored.  remember, the best way to not have
> > > problem reports ignored is to use sendbug(1).
> > 
> > I did use sendbug and I even reported it more than once IIRC. I guess
> > it's just that nobody got an idea what it could be.
> 
> oh, sorry.  now I see it, kernel/5137.  I was searching for 'audio'.

btw, NetBSD changes in revs 1.66 - 1.69 of their auich.c look relevant
here.  the following (part of changes in NetBSD rev 1.66 "Make sure
we ack every block we transfer; ...) may be enough to fix the "staticy"
problem with zsnes.  I have no auich devices to test with.

-- 
[EMAIL PROTECTED]
SDF Public Access UNIX System - http://sdf.lonestar.org

Index: auich.c
===================================================================
RCS file: /home/cvs/OpenBSD/src/sys/dev/pci/auich.c,v
retrieving revision 1.65
diff -u -r1.65 auich.c
--- auich.c     17 Sep 2007 00:50:46 -0000      1.65
+++ auich.c     25 Sep 2007 21:26:07 -0000
@@ -1222,6 +1222,8 @@
 
                                if (++q == &sc->dmalist_pcmo[AUICH_DMALIST_MAX])
                                        q = sc->dmalist_pcmo;
+                               if (sc->sc_pintr)
+                                       sc->sc_pintr(sc->sc_parg);
                        }
 
                        sc->dmap_pcmo = q;
@@ -1231,9 +1233,6 @@
                            AUICH_LVI_MASK);
                }
 
-               if (sts & AUICH_BCIS && sc->sc_pintr)
-                       sc->sc_pintr(sc->sc_parg);
-
                /* int ack */
                bus_space_write_2(sc->iot, sc->aud_ioh,
                    AUICH_PCMO + sc->sc_sts_reg, sts &
@@ -1277,6 +1276,8 @@
 
                                if (++q == &sc->dmalist_pcmi[AUICH_DMALIST_MAX])
                                        q = sc->dmalist_pcmi;
+                               if (sc->sc_rintr)
+                                       sc->sc_rintr(sc->sc_rarg);
                        }
 
                        sc->dmap_pcmi = q;
@@ -1285,9 +1286,6 @@
                            (sc->dmap_pcmi - sc->dmalist_pcmi - 1) &
                            AUICH_LVI_MASK);
                }
-
-               if (sts & AUICH_BCIS && sc->sc_rintr)
-                       sc->sc_rintr(sc->sc_rarg);
 
                /* int ack */
                bus_space_write_2(sc->iot, sc->aud_ioh,

Reply via email to