Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36ed3466 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: x86: Set CA bits for DisplayPort too



This is a guess work.  Usually the DP audio info frame is just 8-bit
shifted from HDMI AI, so let's try to put CA in DIP frame 2 [24-31].

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 4aedb946
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -626,20 +626,20 @@ static void snd_intelhad_prog_dip(struct snd_pcm_substream *substream,
	u8 checksum = 0;
	u32 info_frame;
	int channels;
	int ca;

	channels = substream->runtime->channels;

	had_write_register(intelhaddata, AUD_CNTL_ST, ctrl_state.regval);

	ca = snd_intelhad_channel_allocation(intelhaddata, channels);
	if (intelhaddata->dp_output) {
		info_frame = DP_INFO_FRAME_WORD1;
		frame2.regval = 1;
		frame2.regval = (substream->runtime->channels - 1) | (ca << 24);
	} else {
		info_frame = HDMI_INFO_FRAME_WORD1;
		frame2.regx.chnl_cnt = substream->runtime->channels - 1;

		frame3.regx.chnl_alloc = snd_intelhad_channel_allocation(
			intelhaddata, channels);
		frame3.regx.chnl_alloc = ca;

		/* Calculte the byte wide checksum for all valid DIP words */
		for (i = 0; i < BYTES_PER_WORD; i++)