Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ enum {
#define     VT1724_CFG_CLOCK384  0x40	/* 16.9344Mhz, 44.1kHz*384 */
#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_NONE	0x0c	/* no ADCs */
#define   VT1724_CFG_DAC_MASK	0x03	/* one, two, three, four stereo DACs */

#define VT1724_REG_AC97_CFG		0x05	/* byte */
+10 −3
Original line number Diff line number Diff line
@@ -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;