Date: Sat, 01 Jan 2000 13:35:41 +0900 From: Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> To: dmmiller@cvzoom.net Cc: Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> Subject: Re: Newpcm is broken again for mpg123 (ESS 1868 isa sound card) Message-ID: <14445.33821.200059.72159A@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> In-Reply-To: In your message of "Wed, 29 Dec 1999 20:38:48 -0500" <386AB7A8.DC369061@cvzoom.net> References: <14429.46098.1195.72159A@rina.r.dl.itc.u-tokyo.ac.jp> <14433.63218.157116.72159A@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> <386278C7.B748EEF5@cvzoom.net> <14434.52947.683451.72159A@rina.r.dl.itc.u-tokyo.ac.jp> <14436.13492.839612.72159A@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> <14439.4177.642029.72159A@rina.r.dl.itc.u-tokyo.ac.jp> <14439.26155.338725.72159A@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> <386AB7A8.DC369061@cvzoom.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 29 Dec 1999 20:38:48 -0500, Donn Miller <dmmiller@cvzoom.net> said: Donn> I just recently did another cvsup, and now newpcm is broken Donn> again. When I try to play a clip with mpg123, I hear a very Donn> short burst of the beginning of the clip repeated indefinitely, Donn> like so: Donn> "ba ba ba ba ba ba ba ba ba ba ba ba ba ba". I have the ESS Donn> 1868, of course. Well, I (wisely) saved my old kernel as Donn> /kernel.good and just booted into that. Donn> Could you also say what was fixed if you get around to it? I'd Donn> to learn a little more about the sound driver. The following things were in the recent mail of mine: - All ioctl(2)s go to see the secondary buffer(if I have forget nothing). - chn_setblocksize() changes the size of the secondary buffer. - chn_mmap() maps the secondary buffer. - chn_poll() invokes DMA. - chn_wrintr() performs DMA emulation for pcm devices with no DMA functionality(requested by nyan). - SNDCTL_DSP_SETFRAGMENT handles the count correctly. - GETI/OSPACE returns the number of fragments. - DMA transfer keeps running upon underrun. Some DSPs seem to end up with an unpredictable result if the DMA gets stopped followed by immediate restart. This revokes the change in sys/dev/sound/pcm/channel.c rev 1.12. - chn_write() and chn_read() returns EAGAIN for nonblocking if there are no space to write or data to read. You can add something like: printf("chn_write: writing %d bytes, bs->fl = %d, bs->rl = %d, b->fl = %d, b->rl = %d, b->dl = %d\n", buf->uio_resid, bs->fl, bs->rl, b->fl, b->rl, b->dl); to see the state of the buffers, especially before and after triggering DMA transfer(around chn_{wr,rd}intr()) or feeding(around chn_{wr,rd}feed()). A positive value of b->dl shows that DMA transfer is taking place. -- Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> <tanimura@freebsd.org> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14445.33821.200059.72159A>