Date: Tue, 27 Jul 2004 15:21:57 -0700 (PDT) From: Don Lewis <truckman@FreeBSD.org> To: conrads@cox.net Cc: freebsd-current@FreeBSD.org Subject: Re: Questionable code in sys/dev/sound/pcm/channel.c Message-ID: <200407272222.i6RMLvDa061031@gw.catspoiler.org> In-Reply-To: <XFMail.20040727104106.conrads@cox.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 27 Jul, Conrad J. Sabatier wrote: > > On 26-Jul-2004 Conrad J. Sabatier wrote: >> >> On 26-Jul-2004 Conrad J. Sabatier wrote: >>> I'm a little perplexed at the following bit of logic in chn_write() >>> (which is where the "interrupt timeout, channel dead" messages are >>> being generated). > > [snip] > >>> Also, at the end of the function: >>> >>> if (count <= 0) { >>> c->flags |= CHN_F_DEAD; >>> printf("%s: play interrupt timeout, channel dead\n", >>> c->name); >>> } >>> >>> return ret; >>> } >>> >>> Could it be that the conditional test is wrong here? Perhaps >>> we should be using (count < 0) instead? >> >> I'm now running a kernel built with this last conditional test >> changed to "if (count < 0)" and sound is still working OK. Have yet >> to see if this eliminates the interrupt timeout messages. > > Well, that was a failure. :-) Didn't see any timeout error messages, > but the device still died eventually, nonetheless. I've since changed > back to the original code. That's an interesting data point. At this point I'd start looking at the driver code for your sound hardware. I suspect that the driver interrupt code is either no longer seeing interrupts, or it is no longer calling chn_intr().
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200407272222.i6RMLvDa061031>