On Monday 26 November 2007 05:38:59 am you wrote:
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.
Actually 'Word Clock Status' is determined from this register value. So far it checks whether its zero or not. But this seesm too strict. We'll need to check only the UNLOCK bit (bit 4) for sync status.
How about the patch below (to alsa-kernel)?
diff -r 5e8cab953031 pci/ice1712/delta.c --- a/pci/ice1712/delta.c Mon Nov 26 09:00:56 2007 +0100 +++ b/pci/ice1712/delta.c Mon Nov 26 11:56:18 2007 +0100 @@ -405,7 +405,7 @@ static int snd_ice1712_delta1010lt_wordc if (snd_i2c_sendbytes(ice->cs8427, ®, 1) != 1) snd_printk(KERN_ERR "unable to send register 0x%x byte to CS8427\n", reg); snd_i2c_readbytes(ice->cs8427, ®, 1);
- ucontrol->value.integer.value[0] = (reg ? 1 : 0);
- ucontrol->value.integer.value[0] = (reg & CS8427_UNLOCK) ? 1 : 0; return 0;
}
Ah, there we go! Tested OK connecting/disconnecting S/PDIF cable - says 'locked' then 'no signal'. Thanks again, Takashi. Tim.