Odd code in sound/pcm/channel.c, help with PR?
George Hartzell
hartzell at alerce.com
Fri Apr 21 00:03:52 UTC 2006
Ariff Abdullah writes:
> On Thu, 20 Apr 2006 15:47:55 -0700
> George Hartzell <hartzell at alerce.com> wrote:
> > Ariff Abdullah writes:
> > > On Wed, 19 Apr 2006 17:03:00 -0700
> > > George Hartzell <hartzell at 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.
More information about the freebsd-multimedia
mailing list