Skip site navigation (1)Skip section navigation (2)
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>