snd_ich dies

Emil Holmstr|m emil at linux.se
Thu Aug 17 19:20:59 UTC 2006


On Fri, 11 Aug 2006, Ariff Abdullah wrote:
> On Fri, 11 Aug 2006 09:25:11 +0900
> Pyun YongHyeon <pyunyh at gmail.com> wrote:
> > On Fri, Aug 11, 2006 at 05:09:19AM +0800, Ariff Abdullah wrote:
> >  > On Thu, 10 Aug 2006 15:51:09 +0900 (JST)
> >  > TAMURA Kent <kent at NetBSD.org> wrote:
> >  > > 
> >  > > > My audio dies, espcially when my system is under heavy load.
> >  > > > Otherwise I can maybe play music for an half hour, (with
> >  > > > choppy sound).
> >  > > 
> >  > > >     vendor   = 'Intel Corporation'
> >  > > >     device   = '82440MX AC'97 Audio Controller'
> >  > > 
> >  > > 440MX has a hardware erratum and an audio driver should have
> >  > > special handling to avoid it.  The drivers of NetBSD and ALSA
> >  > > does it, and FreeBSD's does not for now.
> >  > > 
> >  > > ALSA:
> >  > > http://hg-mirror.alsa-project.org/alsa-kernel?cmd=changeset;node=e0d1f8060d20;style=gitweb
> >  > > 
> >  > > NetBSD:
> >  > > http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=19919
> >  > > http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/pci/auich.c.diff?r1=1.33&r2=1.34
> >  > > 
> >  > > 
> >  > Looks trivial enough, though both BUS_DMA_NOCACHE/COHERENT almost
> >  > a noop for most FreeBSD archs. I'll revisit this sooner using
> >  > other non-cacheable method.
> >  > 
> >  > 
> > 
> > AFAIK arm/sparc64 has implemented BUS_DMA_COHERENT. But it seems
> > that BUS_DMA_COHERENT for sparc64 implementation is not complete.
> > 
> > What makes me wonder is why NetBSD needed an additional
> > BUS_DMA_NOCACHE flag as the purpose of BUS_DMA_COHERENT is to map
> > pages into uncached address space or to set cache-inhibit bits in
> > PTE.
> > 
> > Btw, the workaround suggested by Intel said it _reduces_ the
> > frequency of the failure(Master Abort). Because it does not remove
> > the bug I wonder how it works well in real hardware.
> > 
> Not much choice then.
> 
> Ok, Emil, take this:
> 
>   http://people.freebsd.org/~ariff/test/ich.c

I thought I send an answer to this mail, but I guess I didn't. Anyway.

Thank you for all great response.

I tryed to patch ich.c myself, in a simular way as the NetBSD sound
driver: auich.c. And it gave the same result as the version you send
me: The driver works a little better, but under heavy load the audio
either plays in slow motion or stops working.

The NetBSD-driver looked quite alot different? Maybe there are more
bugs? I have never written a driver, so I don't think I can help that
much.

Is it possible to port the NetBSD driver or is it totaly incompatible?
Maybe the problem lies in another dependency, or as sayed, that this
isn't an total fix, only reduce the problem a bit?

Thanks,
Emil
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-multimedia/attachments/20060817/7487bfdd/attachment.pgp


More information about the freebsd-multimedia mailing list