Skip to content

Commit

Permalink
ALSA: ice1724 - Create capture pcm only for ADC-enabled configurations
Browse files Browse the repository at this point in the history
Add the capture pcm only if there is at least one ADC configured in
the SYSCONF register.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Pavel Hofman authored and Takashi Iwai committed Jan 11, 2012
1 parent f7de8ba commit ffd364d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
1 change: 1 addition & 0 deletions sound/pci/ice1712/envy24ht.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
13 changes: 10 additions & 3 deletions sound/pci/ice1712/ice1724.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit ffd364d

Please sign in to comment.