ALSA: ice1724 - External clock item only for cards with SPDIF_IN
authorPavel Hofman <pavel.hofman@ivitera.com>
Thu, 5 Jan 2012 21:01:56 +0000 (22:01 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sun, 8 Jan 2012 13:28:32 +0000 (14:28 +0100)
Append the external clock item to the clock list only if
the SPDIF_IN capability is defined in the SPDIF register.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ice1712/ice1724.c

index 4dc51246d1aedfc98c971475954b1be4c61fce7b..9e18d3a3f03808ccfbda2d4941eca013326ed0c4 100644 (file)
@@ -1825,7 +1825,12 @@ static int snd_vt1724_pro_internal_clock_info(struct snd_kcontrol *kcontrol,
        uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
        uinfo->count = 1;
 
-       uinfo->value.enumerated.items = hw_rates_count + ice->ext_clock_count;
+       /* internal clocks */
+       uinfo->value.enumerated.items = hw_rates_count;
+       /* external clocks */
+       if (ice->force_rdma1 ||
+           (ice->eeprom.data[ICE_EEP2_SPDIF] & VT1724_CFG_SPDIF_IN))
+               uinfo->value.enumerated.items += ice->ext_clock_count;
        /* upper limit - keep at top */
        if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
                uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;