[ALSA] ice1712 - Fix word clock status control on Delta 1010LT
authorTakashi Iwai <tiwai@suse.de>
Tue, 27 Nov 2007 14:27:17 +0000 (15:27 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 31 Jan 2008 16:29:30 +0000 (17:29 +0100)
The 'Word Clock Status' control on Delta 1010LT checks the CS8427
error register too strictly and almost always returns 1 (unlocked).
It should check only the lock status bit.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
sound/pci/ice1712/delta.c

index 371f78461db4b65a7c2d71152d105ecf00ca9f78..519b5d4bbf7b30b3a1c74ad755f6b4a76324c039 100644 (file)
@@ -405,7 +405,7 @@ static int snd_ice1712_delta1010lt_wordclock_status_get(struct snd_kcontrol *kco
        if (snd_i2c_sendbytes(ice->cs8427, &reg, 1) != 1)
                snd_printk(KERN_ERR "unable to send register 0x%x byte to CS8427\n", reg);
        snd_i2c_readbytes(ice->cs8427, &reg, 1);
-       ucontrol->value.integer.value[0] = (reg ? 1 : 0);
+       ucontrol->value.integer.value[0] = (reg & CS8427_UNLOCK) ? 1 : 0;
        return 0;
 }