aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/soc/intel/byt-rt5640.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sound/soc/intel/byt-rt5640.c b/sound/soc/intel/byt-rt5640.c
index 8392c160d9e2..a9619b4201f9 100644
--- a/sound/soc/intel/byt-rt5640.c
+++ b/sound/soc/intel/byt-rt5640.c
@@ -49,6 +49,10 @@ static const struct snd_soc_dapm_route byt_rt5640_intmic_dmic1_map[] = {
49 {"DMIC1", NULL, "Internal Mic"}, 49 {"DMIC1", NULL, "Internal Mic"},
50}; 50};
51 51
52static const struct snd_soc_dapm_route byt_rt5640_intmic_dmic2_map[] = {
53 {"DMIC2", NULL, "Internal Mic"},
54};
55
52static const struct snd_soc_dapm_route byt_rt5640_intmic_in1_map[] = { 56static const struct snd_soc_dapm_route byt_rt5640_intmic_in1_map[] = {
53 {"Internal Mic", NULL, "MICBIAS1"}, 57 {"Internal Mic", NULL, "MICBIAS1"},
54 {"IN1P", NULL, "Internal Mic"}, 58 {"IN1P", NULL, "Internal Mic"},
@@ -56,6 +60,7 @@ static const struct snd_soc_dapm_route byt_rt5640_intmic_in1_map[] = {
56 60
57enum { 61enum {
58 BYT_RT5640_DMIC1_MAP, 62 BYT_RT5640_DMIC1_MAP,
63 BYT_RT5640_DMIC2_MAP,
59 BYT_RT5640_IN1_MAP, 64 BYT_RT5640_IN1_MAP,
60}; 65};
61 66
@@ -111,6 +116,15 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
111 }, 116 },
112 .driver_data = (unsigned long *)BYT_RT5640_IN1_MAP, 117 .driver_data = (unsigned long *)BYT_RT5640_IN1_MAP,
113 }, 118 },
119 {
120 .callback = byt_rt5640_quirk_cb,
121 .matches = {
122 DMI_MATCH(DMI_SYS_VENDOR, "DellInc."),
123 DMI_MATCH(DMI_PRODUCT_NAME, "Venue 8 Pro 5830"),
124 },
125 .driver_data = (unsigned long *)(BYT_RT5640_DMIC2_MAP |
126 BYT_RT5640_DMIC_EN),
127 },
114 {} 128 {}
115}; 129};
116 130
@@ -138,6 +152,10 @@ static int byt_rt5640_init(struct snd_soc_pcm_runtime *runtime)
138 custom_map = byt_rt5640_intmic_in1_map; 152 custom_map = byt_rt5640_intmic_in1_map;
139 num_routes = ARRAY_SIZE(byt_rt5640_intmic_in1_map); 153 num_routes = ARRAY_SIZE(byt_rt5640_intmic_in1_map);
140 break; 154 break;
155 case BYT_RT5640_DMIC2_MAP:
156 custom_map = byt_rt5640_intmic_dmic2_map;
157 num_routes = ARRAY_SIZE(byt_rt5640_intmic_dmic2_map);
158 break;
141 default: 159 default:
142 custom_map = byt_rt5640_intmic_dmic1_map; 160 custom_map = byt_rt5640_intmic_dmic1_map;
143 num_routes = ARRAY_SIZE(byt_rt5640_intmic_dmic1_map); 161 num_routes = ARRAY_SIZE(byt_rt5640_intmic_dmic1_map);