From owner-freebsd-multimedia@FreeBSD.ORG Fri Jun 17 16:14:30 2005 Return-Path: X-Original-To: freebsd-multimedia@freebsd.org Delivered-To: freebsd-multimedia@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 89F1316A41C for ; Fri, 17 Jun 2005 16:14:30 +0000 (GMT) (envelope-from eksffa@freebsdbrasil.com.br) Received: from capeta.freebsdbrasil.com.br (vrrp.freebsdbrasil.com.br [200.210.70.30]) by mx1.FreeBSD.org (Postfix) with SMTP id 8E73B43D48 for ; Fri, 17 Jun 2005 16:14:28 +0000 (GMT) (envelope-from eksffa@freebsdbrasil.com.br) Received: (qmail 41426 invoked by uid 0); 17 Jun 2005 13:14:39 -0300 Received: from eksffa@freebsdbrasil.com.br by capeta.freebsdbrasil.com.br by uid 82 with qmail-scanner-1.22 (uvscan: v4.3.20/v4515. spamassassin: 2.64. Clear:RC:1(201.17.165.147):. Processed in 1.911761 secs); 17 Jun 2005 16:14:39 -0000 Received: from unknown (HELO ?10.69.69.69?) (201.17.165.147) by capeta.freebsdbrasil.com.br with SMTP; 17 Jun 2005 13:14:37 -0300 Message-ID: <42B2F6D8.7080506@freebsdbrasil.com.br> Date: Fri, 17 Jun 2005 13:14:16 -0300 From: Patrick Tracanelli Organization: FreeBSD Brasil LTDA User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.7) Gecko/20050420 X-Accept-Language: en-us, en MIME-Version: 1.0 To: yongari@rndsoft.co.kr References: <42B1BF4F.6020501@freebsdbrasil.com.br> <20050616181220.GE9461@cnd.mcgill.ca> <42B1C276.5070900@freebsdbrasil.com.br> <20050617072237.GC17221@rndsoft.co.kr> In-Reply-To: <20050617072237.GC17221@rndsoft.co.kr> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-multimedia@freebsd.org Subject: Re: pcm0 channel dead X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Jun 2005 16:14:30 -0000 Pyun YongHyeon wrote: > On Thu, Jun 16, 2005 at 03:18:30PM -0300, Patrick Tracanelli wrote: > > > > > Hi, > > > I guess what you are saying is the your device is half-duplex. > > > > > > Please do a > > > sysctl hw.snd.verbose=3 > > > cat /dev/sndstat > > > > > > --Mat > > > > Here is the output > > > > (eksffa@claire-redfield)~# sysctl hw.snd.verbose=3 > > hw.snd.verbose: 1 -> 3 > > (eksffa@claire-redfield)~# cat /dev/sndstat > > FreeBSD Audio Driver (newpcm) > > Installed devices: > > pcm0: at io 0x8800 irq 11 (4p/1r/0v channels duplex > > default) > > [pcm0:record:0]: spd 8000, fmt 0x00000001/0x00000008, flags > > 0x00000000, 0x000000 > > 00 > > interrupts 0, overruns 0, hfree 256, sfree 131072 > > {hardware} -> feeder_root(0x00000008) -> > > feeder_u8toulaw(0x00000008 -> 0x0000000 > > 1) -> {userland} > > Hmm, I think capture mode works ok. > > > [pcm0:play:0]: spd 44100/44097, fmt 0x10000010, flags > > 0x00003030, 0x00000000, pi > > d 657 > > interrupts 5793, underruns 2, ready 131072 > ^^^^^^^^^^^ > This is error condition, playback channel 0 has DMA underruns. > > > {userland} -> feeder_root(0x10000010) -> {hardware} > > [pcm0:play:1]: spd 22050/22042, fmt 0x10000010, flags > > 0x00000000, 0x00000000 > > interrupts 0, underruns 0, ready 0 > > {userland} -> feeder_root(0x10000010) -> {hardware} > > [pcm0:play:2]: spd 0, fmt 0x00000000/0x00000008, flags > > 0x00000000, 0x00000000 > > interrupts 0, underruns 0, ready 0 > > {userland} -> feeder_root(0x00000000) -> {hardware} > > [pcm0:play:3]: spd 0, fmt 0x00000000/0x00000008, flags > > 0x00000000, 0x00000000 > > interrupts 0, underruns 0, ready 0 > > {userland} -> feeder_root(0x00000000) -> {hardware} > > What I can't understand is why other playback channel(channel1, > channel 2) is active, though not triggered to play. Normally you > will use one capture/playback channel. > I have no idea how you can see "capture channel dead" as the > above output indicates playback problem. > Probably the underruns might be caused by a too low HZ value, when I sent this output. It does not get underruns with HZ=100 or =1000, here follows some outputs: (root@claire-redfield)~# cp /dev/audio /tmp/audio.au /dev/audio -> /tmp/audio.au (root@claire-redfield)~# cp /dev/dsp /tmp/au.au /dev/dsp -> /tmp/au.au (root@claire-redfield)~# cp /dev/dspr0.0 /tmp/audio.au /dev/dspr0.0 -> /tmp/audio.au (root@claire-redfield)~# dmesg | tail -3 pcm0:record:0: record interrupt timeout, channel dead (count: -8, c->flags: 135216) pcm0:record:0: record interrupt timeout, channel dead (count: -8, c->flags: 135216) pcm0:record:0: record interrupt timeout, channel dead (count: -8, c->flags: 135216) (root@claire-redfield)~# grep "over\|under" /dev/sndstat interrupts 0, overruns 0, hfree 256, sfree 131072 interrupts 0, underruns 0, ready 0 interrupts 0, underruns 0, ready 0 interrupts 0, underruns 0, ready 0 interrupts 0, underruns 0, ready 0 I have no idea on whatever should be done. Should I ask -CURRENT? -- Patrick Tracanelli