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

Commit 610793fe authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge branch 'topic/hda-dual-codecs' into for-next

parents fc7438b1 56798e6b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -494,6 +494,8 @@ add_hp_mic (bool)
hp_mic_detect (bool)
    enable/disable the hp/mic shared input for a single built-in mic
    case; default true
vmaster (bool)
    enable/disable the virtual Master control; default true
mixer_nid (int)
    specifies the widget NID of the analog-loopback mixer

+1 −0
Original line number Diff line number Diff line
@@ -580,6 +580,7 @@ const char *hda_get_autocfg_input_label(struct hda_codec *codec,
		has_multiple_pins = 1;
	if (has_multiple_pins && type == AUTO_PIN_MIC)
		has_multiple_pins &= check_mic_location_need(codec, cfg, input);
	has_multiple_pins |= codec->force_pin_prefix;
	return hda_get_input_pin_label(codec, &cfg->inputs[input],
				       cfg->inputs[input].pin,
				       has_multiple_pins);
+1 −0
Original line number Diff line number Diff line
@@ -256,6 +256,7 @@ struct hda_codec {
	unsigned int dump_coef:1; /* dump processing coefs in codec proc file */
	unsigned int power_save_node:1; /* advanced PM for each widget */
	unsigned int auto_runtime_pm:1; /* enable automatic codec runtime pm */
	unsigned int force_pin_prefix:1; /* Add location prefix */
#ifdef CONFIG_PM
	unsigned long power_on_acct;
	unsigned long power_off_acct;
+7 −2
Original line number Diff line number Diff line
@@ -196,6 +196,9 @@ static void parse_user_hints(struct hda_codec *codec)
	val = snd_hda_get_bool_hint(codec, "hp_mic_detect");
	if (val >= 0)
		spec->suppress_hp_mic_detect = !val;
	val = snd_hda_get_bool_hint(codec, "vmaster");
	if (val >= 0)
		spec->suppress_vmaster = !val;

	if (!snd_hda_get_int_hint(codec, "mixer_nid", &val))
		spec->mixer_nid = val;
@@ -1125,6 +1128,7 @@ static const char *get_line_out_pfx(struct hda_codec *codec, int ch,

	*index = 0;
	if (cfg->line_outs == 1 && !spec->multi_ios &&
	    !codec->force_pin_prefix &&
	    !cfg->hp_outs && !cfg->speaker_outs)
		return spec->vmaster_mute.hook ? "PCM" : "Master";

@@ -1132,6 +1136,7 @@ static const char *get_line_out_pfx(struct hda_codec *codec, int ch,
	 * use it master (or "PCM" if a vmaster hook is present)
	 */
	if (spec->multiout.num_dacs == 1 && !spec->mixer_nid &&
	    !codec->force_pin_prefix &&
	    !spec->multiout.hp_out_nid[0] && !spec->multiout.extra_out_nid[0])
		return spec->vmaster_mute.hook ? "PCM" : "Master";

@@ -5031,7 +5036,7 @@ int snd_hda_gen_build_controls(struct hda_codec *codec)
	}

	/* if we have no master control, let's create it */
	if (!spec->no_analog &&
	if (!spec->no_analog && !spec->suppress_vmaster &&
	    !snd_hda_find_mixer_ctl(codec, "Master Playback Volume")) {
		err = snd_hda_add_vmaster(codec, "Master Playback Volume",
					  spec->vmaster_tlv, slave_pfxs,
@@ -5039,7 +5044,7 @@ int snd_hda_gen_build_controls(struct hda_codec *codec)
		if (err < 0)
			return err;
	}
	if (!spec->no_analog &&
	if (!spec->no_analog && !spec->suppress_vmaster &&
	    !snd_hda_find_mixer_ctl(codec, "Master Playback Switch")) {
		err = __snd_hda_add_vmaster(codec, "Master Playback Switch",
					    NULL, slave_pfxs,
+1 −0
Original line number Diff line number Diff line
@@ -229,6 +229,7 @@ struct hda_gen_spec {
	unsigned int add_jack_modes:1; /* add i/o jack mode enum ctls */
	unsigned int power_down_unused:1; /* power down unused widgets */
	unsigned int dac_min_mute:1; /* minimal = mute for DACs */
	unsigned int suppress_vmaster:1; /* don't create vmaster kctls */

	/* other internal flags */
	unsigned int no_analog:1; /* digital I/O only */
Loading