On Mon, 23 Apr 2018 20:40:37 +0200, Johannes Geiss wrote: > > On Mon, 23 Apr 2018 15:42:33 +0200 > Takashi Iwai <tiwai@xxxxxxx> wrote: > > > Did you get the error message "Too many HDMI devices" as mentioned in > > the changelog? > > Yes: > > Mar 14 11:29:48 mizar kernel: snd_hda_intel 0000:00:1b.0: Too many HDMI > devices Mar 14 11:29:48 mizar kernel: snd_hda_intel 0000:00:1b.0: > Consider building the kernel with CONFIG_SND_DYNAMIC_MINORS=y Mar 14 > 11:29:48 mizar kernel: input: HDA Intel PCH Line > as /devices/pci0000:00/0000:00:1b.0/sound/card0/input3 Mar 14 11:29:48 > mizar kernel: input: HDA Intel PCH Headphone > as /devices/pci0000:00/0000:00:1b.0/sound/card0/input4 Mar 14 11:29:48 > mizar kernel: input: HDA Intel PCH SPDIF In > as /devices/pci0000:00/0000:00:1b.0/sound/card0/input5 Mar 14 11:29:48 > mizar kernel: input: HDA Intel PCH HDMI/DP,pcm=3 > as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7 Mar 14 11:29:48 > mizar kernel: input: HDA Intel PCH HDMI/DP,pcm=7 > as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8 Mar 14 11:29:48 > mizar kernel: input: HDA Intel PCH HDMI/DP > as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9 Mar 14 11:29:48 > mizar systemd[1]: Reached target Sound Card. > > Does this mean I should try to use CONFIG_SND_DYNAMIC_MINORS=y to solve > the hibernate/suspend problem? I guess the problem should gone with that kconfig, yes. But it doesn't mean that we ignore the issue. What about the patch below? Does it change the behavior? thanks, Takashi -- 8< -- diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -1383,6 +1383,8 @@ static void hdmi_pcm_setup_pin(struct hdmi_spec *spec, pcm = get_pcm_rec(spec, per_pin->pcm_idx); else return; + if (!pcm->pcm) + return; if (!test_bit(per_pin->pcm_idx, &spec->pcm_in_use)) return; @@ -2151,8 +2153,13 @@ static int generic_hdmi_build_controls(struct hda_codec *codec) int dev, err; int pin_idx, pcm_idx; - for (pcm_idx = 0; pcm_idx < spec->pcm_used; pcm_idx++) { + if (!get_pcm_rec(spec, pcm_idx)->pcm) { + /* no PCM; mark this not to be selected */ + set_bit(idx, &spec->pcm_bitmap); + continue; + } + err = generic_hdmi_build_jack(codec, pcm_idx); if (err < 0) return err; _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel