Date: Thu, 20 Apr 2006 17:04:03 -0700 From: George Hartzell <hartzell@alerce.com> To: Ariff Abdullah <ariff@FreeBSD.org> Cc: freebsd-multimedia@FreeBSD.org Subject: Re: Odd code in sound/pcm/channel.c, help with PR? Message-ID: <17480.8563.679808.816061@satchel.alerce.com> In-Reply-To: <20060421071542.6021fee8.ariff@FreeBSD.org> References: <17477.44637.316536.583639@satchel.alerce.com> <20060420064700.48c63e27.ariff@FreeBSD.org> <17478.53172.814200.467979@satchel.alerce.com> <20060421053137.7cc345b5.ariff@FreeBSD.org> <17480.3995.952982.333106@satchel.alerce.com> <20060421071542.6021fee8.ariff@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Ariff Abdullah writes: > On Thu, 20 Apr 2006 15:47:55 -0700 > George Hartzell <hartzell@alerce.com> wrote: > > Ariff Abdullah writes: > > > On Wed, 19 Apr 2006 17:03:00 -0700 > > > George Hartzell <hartzell@alerce.com> wrote: > > > > > > > > > > > It's because the hardware DMA pointer is being lazy and need > > > > > a good spank on its face. > > > > > > > > > > Replace your sys/dev/sound/pci/via8233.c with: > > > > > > > > > > http://people.freebsd.org/~ariff/test/via8233.c > > > > > > > > > > As usual, recompile your kernel, or just the modules. If > > > > > this doesn't work, I still have few more other tricks. > > > > > > > > > > Coincidently, I'm currently investigating DMA incoherency > > > > > within few drivers, notably this and few others. > > > > > > > > I think that you need to get a bigger stick. I did a > > > > buildkernel/installkernel and still no sound when I cat to > > > > /dev/dsp0.0 and I still get the timeouts. > > > > > > > Try again (same above link). Looks like we need to fabricate DMA > > > progress. > > > > I still get silence and the same message when cat /etc/termcap > > > /dev/dsp0.0. > > > > Can you put printf("blah blah whatever\n") statement around chn_intr() > within via8233.c ? (There are 2 chn_intr(), at least). I just want to > know if the interrupt are really triggered. It's possible that the DMA > completion is too fast and it simply flag EOL on every interrupt, or > dead. I put 'before blah 1' and 'after blah 1' around the chn_intr at about 741, and 'before/after blah 2' around the chn_intr around line 768. When I cat /etc/termcap > /dev/dsp0.0 I get before blah 1 after blah 1 before blah 1 after blah 1 pcm0:play:0:dsp0.0: play interrupt timeout, channel dead g.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?17480.8563.679808.816061>