Commit 9421f954 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Print multiple out-amp values of pin widgets on Conext codecs



Add a flag to work around the non-standard amp-value handling on
Conexant codecs.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 3b7523fc
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -793,6 +793,9 @@ struct hda_codec {
					     * status change
					     * (e.g. Realtek codecs)
					     */
	unsigned int pin_amp_workaround:1; /* pin out-amp takes index
					    * (e.g. Conexant codecs)
					    */
#ifdef CONFIG_SND_HDA_POWER_SAVE
	unsigned int power_on :1;	/* current (global) power-state */
	unsigned int power_transition :1; /* power-state in transition */
+8 −2
Original line number Diff line number Diff line
@@ -554,6 +554,12 @@ static void print_codec_info(struct snd_info_entry *entry,
			snd_iprintf(buffer, "  Amp-Out caps: ");
			print_amp_caps(buffer, codec, nid, HDA_OUTPUT);
			snd_iprintf(buffer, "  Amp-Out vals: ");
			if (wid_type == AC_WID_PIN &&
			    codec->pin_amp_workaround)
				print_amp_vals(buffer, codec, nid, HDA_OUTPUT,
					       wid_caps & AC_WCAP_STEREO,
					       conn_len);
			else
				print_amp_vals(buffer, codec, nid, HDA_OUTPUT,
					       wid_caps & AC_WCAP_STEREO, 1);
		}
+3 −0
Original line number Diff line number Diff line
@@ -1066,6 +1066,7 @@ static int patch_cxt5045(struct hda_codec *codec)
	if (!spec)
		return -ENOMEM;
	codec->spec = spec;
	codec->pin_amp_workaround = 1;

	spec->multiout.max_channels = 2;
	spec->multiout.num_dacs = ARRAY_SIZE(cxt5045_dac_nids);
@@ -1501,6 +1502,7 @@ static int patch_cxt5047(struct hda_codec *codec)
	if (!spec)
		return -ENOMEM;
	codec->spec = spec;
	codec->pin_amp_workaround = 1;

	spec->multiout.max_channels = 2;
	spec->multiout.num_dacs = ARRAY_SIZE(cxt5047_dac_nids);
@@ -1847,6 +1849,7 @@ static int patch_cxt5051(struct hda_codec *codec)
	if (!spec)
		return -ENOMEM;
	codec->spec = spec;
	codec->pin_amp_workaround = 1;

	codec->patch_ops = conexant_patch_ops;
	codec->patch_ops.init = cxt5051_init;