mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
ALSA: hda: Properly setup HDMI stream
Since commit4005d1ba0a
("ASoC: soc-dai: don't call PCM audio ops if the stream is not supported") HDMI playback is broken with avs driver. This happens because for HDMI stream (unlike generic HDA one) channels_min for stream is not set when creating PCMs. Fix this by setting the value based on first available converter. Fixes:4005d1ba0a
("ASoC: soc-dai: don't call PCM audio ops if the stream is not supported") Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com> Link: https://lore.kernel.org/r/20240112113349.2905328-1-amadeuszx.slawinski@linux.intel.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
a03cfad512
commit
454abb80e2
@ -2301,6 +2301,7 @@ static int generic_hdmi_build_pcms(struct hda_codec *codec)
|
||||
codec_dbg(codec, "hdmi: pcm_num set to %d\n", pcm_num);
|
||||
|
||||
for (idx = 0; idx < pcm_num; idx++) {
|
||||
struct hdmi_spec_per_cvt *per_cvt;
|
||||
struct hda_pcm *info;
|
||||
struct hda_pcm_stream *pstr;
|
||||
|
||||
@ -2316,6 +2317,11 @@ static int generic_hdmi_build_pcms(struct hda_codec *codec)
|
||||
pstr = &info->stream[SNDRV_PCM_STREAM_PLAYBACK];
|
||||
pstr->substreams = 1;
|
||||
pstr->ops = generic_ops;
|
||||
|
||||
per_cvt = get_cvt(spec, 0);
|
||||
pstr->channels_min = per_cvt->channels_min;
|
||||
pstr->channels_max = per_cvt->channels_max;
|
||||
|
||||
/* pcm number is less than pcm_rec array size */
|
||||
if (spec->pcm_used >= ARRAY_SIZE(spec->pcm_rec))
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user