ALSA: hda - Fix missing CA initialization for HDMI/DP
The commit 53d7d69d8f
ALSA: hdmi - support infoframe for DisplayPort
dropped the initialization of CA field accidentally.
This resulted in only two-channel LPCM mode on Nvidia machines.
Reference: kernel bug 28592
https://bugzilla.kernel.org/show_bug.cgi?id=28592
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
This commit is contained in:
parent
1cdfa9f34a
commit
11839aed21
|
@ -642,6 +642,7 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, hda_nid_t nid,
|
||||||
hdmi_ai->ver = 0x01;
|
hdmi_ai->ver = 0x01;
|
||||||
hdmi_ai->len = 0x0a;
|
hdmi_ai->len = 0x0a;
|
||||||
hdmi_ai->CC02_CT47 = channels - 1;
|
hdmi_ai->CC02_CT47 = channels - 1;
|
||||||
|
hdmi_ai->CA = ca;
|
||||||
hdmi_checksum_audio_infoframe(hdmi_ai);
|
hdmi_checksum_audio_infoframe(hdmi_ai);
|
||||||
} else if (spec->sink_eld[i].conn_type == 1) { /* DisplayPort */
|
} else if (spec->sink_eld[i].conn_type == 1) { /* DisplayPort */
|
||||||
struct dp_audio_infoframe *dp_ai;
|
struct dp_audio_infoframe *dp_ai;
|
||||||
|
@ -651,6 +652,7 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, hda_nid_t nid,
|
||||||
dp_ai->len = 0x1b;
|
dp_ai->len = 0x1b;
|
||||||
dp_ai->ver = 0x11 << 2;
|
dp_ai->ver = 0x11 << 2;
|
||||||
dp_ai->CC02_CT47 = channels - 1;
|
dp_ai->CC02_CT47 = channels - 1;
|
||||||
|
dp_ai->CA = ca;
|
||||||
} else {
|
} else {
|
||||||
snd_printd("HDMI: unknown connection type at pin %d\n",
|
snd_printd("HDMI: unknown connection type at pin %d\n",
|
||||||
pin_nid);
|
pin_nid);
|
||||||
|
|
Loading…
Reference in New Issue