Commit ffd364dd authored by Pavel Hofman's avatar Pavel Hofman Committed by Takashi Iwai

ALSA: ice1724 - Create capture pcm only for ADC-enabled configurations

Add the capture pcm only if there is at least one ADC configured in
the SYSCONF register.
Signed-off-by: default avatarPavel Hofman <pavel.hofman@ivitera.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent f7de8ba3
...@@ -66,6 +66,7 @@ enum { ...@@ -66,6 +66,7 @@ enum {
#define VT1724_CFG_CLOCK384 0x40 /* 16.9344Mhz, 44.1kHz*384 */ #define VT1724_CFG_CLOCK384 0x40 /* 16.9344Mhz, 44.1kHz*384 */
#define VT1724_CFG_MPU401 0x20 /* MPU401 UARTs */ #define VT1724_CFG_MPU401 0x20 /* MPU401 UARTs */
#define VT1724_CFG_ADC_MASK 0x0c /* one, two or one and S/PDIF, stereo ADCs */ #define VT1724_CFG_ADC_MASK 0x0c /* one, two or one and S/PDIF, stereo ADCs */
#define VT1724_CFG_ADC_NONE 0x0c /* no ADCs */
#define VT1724_CFG_DAC_MASK 0x03 /* one, two, three, four stereo DACs */ #define VT1724_CFG_DAC_MASK 0x03 /* one, two, three, four stereo DACs */
#define VT1724_REG_AC97_CFG 0x05 /* byte */ #define VT1724_REG_AC97_CFG 0x05 /* byte */
......
...@@ -1117,14 +1117,21 @@ static struct snd_pcm_ops snd_vt1724_capture_pro_ops = { ...@@ -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) static int __devinit snd_vt1724_pcm_profi(struct snd_ice1712 *ice, int device)
{ {
struct snd_pcm *pcm; 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) if (err < 0)
return err; return err;
snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_vt1724_playback_pro_ops); 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->private_data = ice;
pcm->info_flags = 0; pcm->info_flags = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment