[alsa-devel] multi pcm and mmap problem
Tim
terminator356 at users.sourceforge.net
Sun Nov 25 23:51:04 CET 2007
On Saturday 24 November 2007 05:16:38 am you wrote:
> At Fri, 23 Nov 2007 20:31:03 -0500,
> Tim wrote:
> > A final 'note':
> > The envy24control app's Master Clock - Signal/No Signal
> > seems broken again.
> > I know the cards are locked, but it still says 'No signal'
> > when S/PDIF is selected.
> Hm, could you check whether it's a driver bug or a bug of
> envy24control? This control can be basically also get/set via
> alsactl. For example, just run "alsactl -f somefile store", edit the
> file, and "alsactl -f somefile restore". Also, you can set the value
> via amixer, too.
Pardon my previous enthusiasm. So many months debugging!
I've straightened my tie and regained my composure now.
I tried creating a new asound.state with alsactl.
The resulting asound.state was smaller, but did not fix the problem.
I also tried manually turning the 'IEC958 CS8427 Error Status', and the
other related controls, on/off with a mixer, no luck.
I know the two cards are locked because if I disconnect the S/PDIF cable,
the ice1712 card goes silent or makes noises. This is normal behaviour.
Also, I have run this setup for hours without an xrun or 'un-synced drifting'.
You know, the 'locked/no signal' indicator never has worked right.
In ALSA 1.0.9b it always just says 'locked' (see below).
In ALSA 1.0.15 it says 'locked' only when on a fixed internal rate.
** Here is some info below which I think will help.
It seems to me, looking at the 'IEC958 CS8427 Error Status' results below,
that envy24control should perhaps be using it, instead of
'Word Clock Status', as a 'locked' indicator.
Thanks again. Tim.
----------------------------------------------------------
ALSA 1.0.15 + new distro:
----------------------------------------------------------
Master Clock says 'No signal'.
Master Clock: S/PDIF. S/PDIF cable is connected.
$ amixer -c1 contents
...
numid=65,iface=MIXER,name='Word Clock Status'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=64,iface=MIXER,name='Word Clock Sync'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=32
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=15
Master Clock says 'No signal'.
Master Clock: S/PDIF. S/PDIF cable is NOT connected.
$ amixer -c1 contents
...
numid=65,iface=MIXER,name='Word Clock Status'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=64,iface=MIXER,name='Word Clock Sync'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=54
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=15
Master Clock says 'No signal'.
Master Clock: Word Clock. S/PDIF cable is connected.
$ amixer -c1 contents
...
numid=65,iface=MIXER,name='Word Clock Status'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=64,iface=MIXER,name='Word Clock Sync'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=32
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=15
Master Clock says 'No signal'.
Master Clock: Word Clock. S/PDIF cable is NOT connected.
$ amixer -c1 contents
...
numid=65,iface=MIXER,name='Word Clock Status'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=64,iface=MIXER,name='Word Clock Sync'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=54
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=15
Master Clock says 'Locked'.
Master Clock: 48000 Internal. S/PDIF cable is connected.
$ amixer -c1 contents
...
numid=65,iface=MIXER,name='Word Clock Status'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=64,iface=MIXER,name='Word Clock Sync'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=0
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=67
Master Clock says 'Locked'.
Master Clock: 48000 Internal. S/PDIF cable is NOT connected.
$ amixer -c1 contents
...
numid=65,iface=MIXER,name='Word Clock Status'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=64,iface=MIXER,name='Word Clock Sync'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=0
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r-------,values=1,min=0,max=255,step=0
: values=67
----------------------------------------------------------
ALSA 1.0.9b + older distro:
----------------------------------------------------------
Master Clock says 'Locked' in all cases below...
Note: I could not find a 'Word Clock Status' item.
Perhaps that's why it never worked at all under ALSA 1.0.9b ?
Master Clock: S/PDIF. S/PDIF cable is connected.
$ amixer -c1 contents
...
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=0
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=67
numid=64,iface=PCM,name='Word Clock Sync'
; type=BOOLEAN,access=rw---,values=1
: values=off
Master Clock: S/PDIF. S/PDIF cable is NOT connected.
$ amixer -c1 contents
...
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=63
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=67
numid=64,iface=PCM,name='Word Clock Sync'
; type=BOOLEAN,access=rw---,values=1
: values=off
Master Clock: Word Clock. S/PDIF cable is connected.
$ amixer -c1 contents
...
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=0
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=67
numid=64,iface=PCM,name='Word Clock Sync'
; type=BOOLEAN,access=rw---,values=1
: values=on
Master Clock: Word Clock. S/PDIF cable is NOT connected.
$ amixer -c1 contents
...
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=23
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=67
numid=64,iface=PCM,name='Word Clock Sync'
; type=BOOLEAN,access=rw---,values=1
: values=on
Master Clock: 48000 Internal. S/PDIF cable is connected.
$ amixer -c1 contents
...
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=31
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=67
numid=64,iface=PCM,name='Word Clock Sync'
; type=BOOLEAN,access=rw---,values=1
: values=off
Master Clock: 48000 Internal. S/PDIF cable is NOT connected.
$ amixer -c1 contents
...
numid=2,iface=PCM,name='IEC958 CS8427 Error Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=22
numid=1,iface=PCM,name='IEC958 CS8427 Input Status'
; type=INTEGER,access=r----,values=1,min=0,max=255,step=0
: values=67
numid=64,iface=PCM,name='Word Clock Sync'
; type=BOOLEAN,access=rw---,values=1
: values=off
More information about the Alsa-devel
mailing list