ALSA: intelhdmi - sticky channel count

Don't change channel count if not necessary.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Wu Fengguang 2009-11-18 12:38:07 +08:00 committed by Takashi Iwai
parent 5779191e0e
commit 81bf31e2d0

View File

@ -422,24 +422,18 @@ static void hdmi_stop_infoframe_trans(struct hda_codec *codec,
AC_DIPXMIT_DISABLE); AC_DIPXMIT_DISABLE);
} }
#ifdef CONFIG_SND_DEBUG_VERBOSE
static int hdmi_get_channel_count(struct hda_codec *codec, hda_nid_t nid) static int hdmi_get_channel_count(struct hda_codec *codec, hda_nid_t nid)
{ {
return 1 + snd_hda_codec_read(codec, nid, 0, return 1 + snd_hda_codec_read(codec, nid, 0,
AC_VERB_GET_CVT_CHAN_COUNT, 0); AC_VERB_GET_CVT_CHAN_COUNT, 0);
} }
#endif
static void hdmi_set_channel_count(struct hda_codec *codec, static void hdmi_set_channel_count(struct hda_codec *codec,
hda_nid_t nid, int chs) hda_nid_t nid, int chs)
{ {
snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CVT_CHAN_COUNT, chs - 1);
#ifdef CONFIG_SND_DEBUG_VERBOSE
if (chs != hdmi_get_channel_count(codec, nid)) if (chs != hdmi_get_channel_count(codec, nid))
snd_printd(KERN_INFO "HDMI channel count: expect %d, get %d\n", snd_hda_codec_write(codec, nid, 0,
chs, hdmi_get_channel_count(codec, nid)); AC_VERB_SET_CVT_CHAN_COUNT, chs - 1);
#endif
} }
static void hdmi_debug_channel_mapping(struct hda_codec *codec, hda_nid_t nid) static void hdmi_debug_channel_mapping(struct hda_codec *codec, hda_nid_t nid)