Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Jun 2005 13:14:16 -0300
From:      Patrick Tracanelli <eksffa@freebsdbrasil.com.br>
To:        yongari@rndsoft.co.kr
Cc:        freebsd-multimedia@freebsd.org
Subject:   Re: pcm0 channel dead
Message-ID:  <42B2F6D8.7080506@freebsdbrasil.com.br>
In-Reply-To: <20050617072237.GC17221@rndsoft.co.kr>
References:  <42B1BF4F.6020501@freebsdbrasil.com.br> <20050616181220.GE9461@cnd.mcgill.ca> <42B1C276.5070900@freebsdbrasil.com.br> <20050617072237.GC17221@rndsoft.co.kr>

next in thread | previous in thread | raw e-mail | index | archive | help
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: <Acer Labs M5451> 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



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