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

Commit 5457a980 authored by Wu Fengguang's avatar Wu Fengguang Committed by Takashi Iwai
Browse files

ALSA: hda: make standalone hdmi_fill_audio_infoframe()



code refactor: make a standalone function hdmi_fill_audio_infoframe().

Signed-off-by: default avatarWu Fengguang <wfg@linux.intel.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent cd896c33
Loading
Loading
Loading
Loading
+16 −9
Original line number Diff line number Diff line
@@ -246,24 +246,31 @@ static void hdmi_clear_dip_buffers(struct hda_codec *codec)
#endif
}

static void hdmi_fill_audio_infoframe(struct hda_codec *codec,
					struct hdmi_audio_infoframe *ai)
{
	u8 *params = (u8 *)ai;
	int i;

	hdmi_debug_dip_size(codec);
	hdmi_clear_dip_buffers(codec); /* be paranoid */

	hdmi_set_dip_index(codec, PIN_NID, 0x0, 0x0);
	for (i = 0; i < sizeof(ai); i++)
		hdmi_write_dip_byte(codec, PIN_NID, params[i]);
}

static void hdmi_setup_audio_infoframe(struct hda_codec *codec,
					struct snd_pcm_substream *substream)
{
	struct hdmi_audio_infoframe audio_infoframe = {
	struct hdmi_audio_infoframe ai = {
		.type		= 0x84,
		.ver		= 0x01,
		.len		= 0x0a,
		.CC02_CT47	= substream->runtime->channels - 1,
	};
	u8 *params = (u8 *)&audio_infoframe;
	int i;

	hdmi_debug_dip_size(codec);
	hdmi_clear_dip_buffers(codec); /* be paranoid */

	hdmi_set_dip_index(codec, PIN_NID, 0x0, 0x0);
	for (i = 0; i < sizeof(audio_infoframe); i++)
		hdmi_write_dip_byte(codec, PIN_NID, params[i]);
	hdmi_fill_audio_infoframe(codec, &ai);
}