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

Commit d7b1ae9d authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Add snd_hda_get_input_pin_label() helper function



Added snd_hda_get_input_pin_label() helper function to return the
string that can be used for control or capture-source ids.

Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 75e0eb24
Loading
Loading
Loading
Loading
+24 −1
Original line number Diff line number Diff line
@@ -4654,12 +4654,35 @@ int snd_hda_parse_pin_def_config(struct hda_codec *codec,
}
EXPORT_SYMBOL_HDA(snd_hda_parse_pin_def_config);

/* labels for input pins */
/* labels for input pins - for obsoleted config stuff */
const char *auto_pin_cfg_labels[AUTO_PIN_LAST] = {
	"Mic", "Front Mic", "Line", "Front Line", "CD", "Aux"
};
EXPORT_SYMBOL_HDA(auto_pin_cfg_labels);

static const char *input_labels[AUTO_PIN_LAST][4] = {
	{ "Mic", "Mic 2", "Mic 3", "Mic 4" },
	{ "Front Mic", "Front Mic 2", "Front Mic 3", "Front Mic 4" },
	{ "Line", "Line 2", "Line 3", "Line 4" },
	{ "Front Line", "Front Line 2", "Front Line 3", "Front Line 4" },
	{ "CD", "CD 2", "CD 3", "CD 4" },
	{ "Aux", "Aux 2", "Aux 3", "Aux 4" },
};

const char *snd_hda_get_input_pin_label(const struct auto_pin_cfg *cfg,
					int input)
{
	int type = cfg->inputs[input].type;
	int idx;

	for  (idx = 0; idx < 3 && --input >= 0; idx++) {
		if (type != cfg->inputs[input].type)
			break;
	}
	return input_labels[type][idx];
}
EXPORT_SYMBOL_HDA(snd_hda_get_input_pin_label);


#ifdef CONFIG_PM
/*
+2 −0
Original line number Diff line number Diff line
@@ -391,6 +391,8 @@ struct auto_pin_cfg_item {
};

struct auto_pin_cfg;
const char *snd_hda_get_input_pin_label(const struct auto_pin_cfg *cfg,
					int input);

struct auto_pin_cfg {
	int line_outs;