diff options
| author | Jarkko Nikula <jarkko.nikula@linux.intel.com> | 2014-10-02 13:29:08 +0300 | 
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2014-10-02 11:50:22 +0100 | 
| commit | 24221dcc8be736a2b0b83ecaeb60b99bd7e9334c (patch) | |
| tree | deb3a3b24eac0991adb8ae7562146c4a89f90c08 | |
| parent | a5f0ab05b67213ef33107b716e8596a480b5875f (diff) | |
ASoC: Intel: byt-rt5640: Add quirk for Dell Venue 8 Pro tablet
It was found with help of Jan-Michael Brummer <jan.brummer@tabos.org> that
Dell Venue 8 Pro tablet has a digital microphone connected to DMIC2
interface of the RT564x.
This patch adds a DAPM route to DMIC2 and a quirk using it for that tablet.
Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reported-by: Jan-Michael Brummer <jan.brummer@tabos.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
| -rw-r--r-- | sound/soc/intel/byt-rt5640.c | 18 | 
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[] = {  	{"DMIC1", NULL, "Internal Mic"},  }; +static const struct snd_soc_dapm_route byt_rt5640_intmic_dmic2_map[] = { +	{"DMIC2", NULL, "Internal Mic"}, +}; +  static const struct snd_soc_dapm_route byt_rt5640_intmic_in1_map[] = {  	{"Internal Mic", NULL, "MICBIAS1"},  	{"IN1P", NULL, "Internal Mic"}, @@ -56,6 +60,7 @@ static const struct snd_soc_dapm_route byt_rt5640_intmic_in1_map[] = {  enum {  	BYT_RT5640_DMIC1_MAP, +	BYT_RT5640_DMIC2_MAP,  	BYT_RT5640_IN1_MAP,  }; @@ -111,6 +116,15 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {  		},  		.driver_data = (unsigned long *)BYT_RT5640_IN1_MAP,  	}, +	{ +		.callback = byt_rt5640_quirk_cb, +		.matches = { +			DMI_MATCH(DMI_SYS_VENDOR, "DellInc."), +			DMI_MATCH(DMI_PRODUCT_NAME, "Venue 8 Pro 5830"), +		}, +		.driver_data = (unsigned long *)(BYT_RT5640_DMIC2_MAP | +						 BYT_RT5640_DMIC_EN), +	},  	{}  }; @@ -138,6 +152,10 @@ static int byt_rt5640_init(struct snd_soc_pcm_runtime *runtime)  		custom_map = byt_rt5640_intmic_in1_map;  		num_routes = ARRAY_SIZE(byt_rt5640_intmic_in1_map);  		break; +	case BYT_RT5640_DMIC2_MAP: +		custom_map = byt_rt5640_intmic_dmic2_map; +		num_routes = ARRAY_SIZE(byt_rt5640_intmic_dmic2_map); +		break;  	default:  		custom_map = byt_rt5640_intmic_dmic1_map;  		num_routes = ARRAY_SIZE(byt_rt5640_intmic_dmic1_map); | 
