Explorar o código

[ALSA] hda-codec - Fix assignment of PCM devices for Realtek codecs

Fixed the assignment of PCM devices for Realtek codecs.
The secondary analog capture should be statically asigned to the
third device regardless whether SPDIF exists or not.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Takashi Iwai %!s(int64=19) %!d(string=hai) anos
pai
achega
c06134d73c
Modificáronse 1 ficheiros con 2 adicións e 2 borrados
  1. 2 2
      sound/pci/hda/patch_realtek.c

+ 2 - 2
sound/pci/hda/patch_realtek.c

@@ -1799,7 +1799,7 @@ static int alc_build_pcms(struct hda_codec *codec)
 	/* SPDIF for stream index #1 */
 	/* SPDIF for stream index #1 */
 	if (spec->multiout.dig_out_nid || spec->dig_in_nid) {
 	if (spec->multiout.dig_out_nid || spec->dig_in_nid) {
 		codec->num_pcms = 2;
 		codec->num_pcms = 2;
-		info++;
+		info = spec->pcm_rec + 1;
 		info->name = spec->stream_name_digital;
 		info->name = spec->stream_name_digital;
 		if (spec->multiout.dig_out_nid &&
 		if (spec->multiout.dig_out_nid &&
 		    spec->stream_digital_playback) {
 		    spec->stream_digital_playback) {
@@ -1820,7 +1820,7 @@ static int alc_build_pcms(struct hda_codec *codec)
 	if (spec->num_adc_nids > 1 && spec->stream_analog_capture &&
 	if (spec->num_adc_nids > 1 && spec->stream_analog_capture &&
 	    spec->adc_nids) {
 	    spec->adc_nids) {
 		codec->num_pcms = 3;
 		codec->num_pcms = 3;
-		info++;
+		info = spec->pcm_rec + 2;
 		info->name = spec->stream_name_analog;
 		info->name = spec->stream_name_analog;
 		/* No playback stream for second PCM */
 		/* No playback stream for second PCM */
 		info->stream[SNDRV_PCM_STREAM_PLAYBACK] = alc_pcm_null_playback;
 		info->stream[SNDRV_PCM_STREAM_PLAYBACK] = alc_pcm_null_playback;