ASoC: intel: byt: Introduce new map for dual mics
The RT5651 codec has 3 analog inputs. Some laptops have two different internal analog microphones on the external case. Add a new custom quirk mapping the two internal mics on IN1P / IN2P, leaving the headset mic on IN3P. Signed-off-by: Carlo Caione <carlo@endlessm.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Родитель
bc2bd45b1f
Коммит
ea261bd02a
|
@ -38,6 +38,7 @@ enum {
|
|||
BYT_RT5651_DMIC_MAP,
|
||||
BYT_RT5651_IN1_MAP,
|
||||
BYT_RT5651_IN2_MAP,
|
||||
BYT_RT5651_IN1_IN2_MAP,
|
||||
};
|
||||
|
||||
#define BYT_RT5651_MAP(quirk) ((quirk) & GENMASK(7, 0))
|
||||
|
@ -171,6 +172,13 @@ static const struct snd_soc_dapm_route byt_rt5651_intmic_in2_map[] = {
|
|||
{"IN2P", NULL, "Internal Mic"},
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_route byt_rt5651_intmic_in1_in2_map[] = {
|
||||
{"Internal Mic", NULL, "micbias1"},
|
||||
{"IN1P", NULL, "Internal Mic"},
|
||||
{"IN2P", NULL, "Internal Mic"},
|
||||
{"IN3P", NULL, "Headset Mic"},
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new byt_rt5651_controls[] = {
|
||||
SOC_DAPM_PIN_SWITCH("Headphone"),
|
||||
SOC_DAPM_PIN_SWITCH("Headset Mic"),
|
||||
|
@ -281,6 +289,10 @@ static int byt_rt5651_init(struct snd_soc_pcm_runtime *runtime)
|
|||
custom_map = byt_rt5651_intmic_in2_map;
|
||||
num_routes = ARRAY_SIZE(byt_rt5651_intmic_in2_map);
|
||||
break;
|
||||
case BYT_RT5651_IN1_IN2_MAP:
|
||||
custom_map = byt_rt5651_intmic_in1_in2_map;
|
||||
num_routes = ARRAY_SIZE(byt_rt5651_intmic_in1_in2_map);
|
||||
break;
|
||||
default:
|
||||
custom_map = byt_rt5651_intmic_dmic_map;
|
||||
num_routes = ARRAY_SIZE(byt_rt5651_intmic_dmic_map);
|
||||
|
|
Загрузка…
Ссылка в новой задаче