Преглед на файлове

ALSA: ice1724 - limit channels for multi-channel playback

Limit the available channels for multi-channel playback device to
the real number of channels.  Until now, always up to 8 channels
are created, which are simply useless without the real outputs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Takashi Iwai преди 16 години
родител
ревизия
a6b936b956
променени са 1 файла, в които са добавени 3 реда и са изтрити 2 реда
  1. 3 2
      sound/pci/ice1712/ice1724.c

+ 3 - 2
sound/pci/ice1712/ice1724.c

@@ -942,7 +942,7 @@ static int snd_vt1724_playback_pro_open(struct snd_pcm_substream *substream)
 {
 	struct snd_pcm_runtime *runtime = substream->runtime;
 	struct snd_ice1712 *ice = snd_pcm_substream_chip(substream);
-	int chs;
+	int chs, num_indeps;
 
 	runtime->private_data = (void *)&vt1724_playback_pro_reg;
 	ice->playback_pro_substream = substream;
@@ -952,7 +952,8 @@ static int snd_vt1724_playback_pro_open(struct snd_pcm_substream *substream)
 	set_rate_constraints(ice, substream);
 	mutex_lock(&ice->open_mutex);
 	/* calculate the currently available channels */
-	for (chs = 0; chs < 3; chs++) {
+	num_indeps = ice->num_total_dacs / 2 - 1;
+	for (chs = 0; chs < num_indeps; chs++) {
 		if (ice->pcm_reserved[chs])
 			break;
 	}