Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Aug 2006 21:20:47 +0200
From:      Emil Holmstr|m <emil@linux.se>
To:        freebsd-multimedia@freebsd.org
Subject:   Re: snd_ich dies
Message-ID:  <20060817192047.GA4045@Update.UU.SE>
In-Reply-To: <20060811155530.00a763b4.ariff@FreeBSD.org>
References:  <20060810035426.GA28177@Update.UU.SE> <20060810065109.78A5D15EB090@gabi-n.hauN.org> <20060811050919.1d8bb187.ariff@FreeBSD.org> <20060811002511.GA22291@cdnetworks.co.kr> <20060811155530.00a763b4.ariff@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Fri, 11 Aug 2006, Ariff Abdullah wrote:
> On Fri, 11 Aug 2006 09:25:11 +0900
> Pyun YongHyeon <pyunyh@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@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

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFE5MGP8pzA3OnagacRAkWRAKDHgxt7CwcgxYLLsyaS70e9tzjk7gCg5WTi
mRamtqI1Q24oqvr1cD7BVeQ=
=QMiQ
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060817192047.GA4045>