Date: Tue, 18 Apr 2006 20:28:29 -0700 From: George Hartzell <hartzell@alerce.com> To: freebsd-multimedia@freebsd.org Subject: Odd code in sound/pcm/channel.c, help with PR? Message-ID: <17477.44637.316536.583639@satchel.alerce.com>
next in thread | raw e-mail | index | archive | help
I'm trying to get some traction and get sound to work on my ASUS A8V-MX. I keep ending up with pcm0:play:0::dsp0.0: play interrupt timeout, channel dead on my console. I've filed a PR with more details: http://www.freebsd.org/cgi/query-pr.cgi?pr=95949 I've been looking around, trying to understand what might be going on. I came across the following piece of code in /usr/src/sys/device/sound/pcm/channel.com, around line 320 timeout = (hz * sndbuf_getblksz(bs)) / (sndbuf_getspd(bs) * sndbuf_getbps(bs)); if (timeout < 1) timeout = 1; timeout = 1; ret = chn_sleep(c, "pcmwr", timeout); if (ret == EWOULDBLOCK) { count -= timeout; ret = 0; } else if (ret == 0) count = hz; It's funny that it goes to the trouble to figure out a timeout value then seems to unconditionally set it to 1. Removing that line doesn't seem to fix my problem, but it still seems weird. And, while I've got your attention, can anyone suggest where I might look to understand why the buffer doesn't seem to be being emptied? Thanks, g.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?17477.44637.316536.583639>