|
@@ -1117,14 +1117,21 @@ static struct snd_pcm_ops snd_vt1724_capture_pro_ops = {
|
|
|
static int __devinit snd_vt1724_pcm_profi(struct snd_ice1712 *ice, int device)
|
|
|
{
|
|
|
struct snd_pcm *pcm;
|
|
|
- int err;
|
|
|
+ int capt, err;
|
|
|
|
|
|
- err = snd_pcm_new(ice->card, "ICE1724", device, 1, 1, &pcm);
|
|
|
+ if ((ice->eeprom.data[ICE_EEP2_SYSCONF] & VT1724_CFG_ADC_MASK) ==
|
|
|
+ VT1724_CFG_ADC_NONE)
|
|
|
+ capt = 0;
|
|
|
+ else
|
|
|
+ capt = 1;
|
|
|
+ err = snd_pcm_new(ice->card, "ICE1724", device, 1, capt, &pcm);
|
|
|
if (err < 0)
|
|
|
return err;
|
|
|
|
|
|
snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_vt1724_playback_pro_ops);
|
|
|
- snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_vt1724_capture_pro_ops);
|
|
|
+ if (capt)
|
|
|
+ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
|
|
|
+ &snd_vt1724_capture_pro_ops);
|
|
|
|
|
|
pcm->private_data = ice;
|
|
|
pcm->info_flags = 0;
|