Skip to content

Commit

Permalink
ALSA: x86: Set CA bits for DisplayPort too
Browse files Browse the repository at this point in the history
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: Takashi Iwai <[email protected]>
  • Loading branch information
tiwai committed Feb 3, 2017
1 parent 4aedb94 commit 36ed346
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions sound/x86/intel_hdmi_audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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++)
Expand Down

0 comments on commit 36ed346

Please sign in to comment.