diff options
author | Mark Brown <broonie@kernel.org> | 2015-09-23 14:01:02 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-09-23 14:01:02 -0400 |
commit | fcffa0dbb6c9144d07011531860da2f1e8a8b7cd (patch) | |
tree | e0f6eacb060f462fc417cc3b07be1b90d8c9355f /sound | |
parent | 5ee84ba8c7f5a5dd1934459acfec6108b5285940 (diff) | |
parent | fce97b4d70ad632dd9c6058622492501377bbaaa (diff) |
Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-linus
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/rt5645.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c index 4972bf3efa91..268a28bd1df4 100644 --- a/sound/soc/codecs/rt5645.c +++ b/sound/soc/codecs/rt5645.c | |||
@@ -732,14 +732,14 @@ static const struct snd_kcontrol_new rt5645_mono_adc_r_mix[] = { | |||
732 | static const struct snd_kcontrol_new rt5645_dac_l_mix[] = { | 732 | static const struct snd_kcontrol_new rt5645_dac_l_mix[] = { |
733 | SOC_DAPM_SINGLE("Stereo ADC Switch", RT5645_AD_DA_MIXER, | 733 | SOC_DAPM_SINGLE("Stereo ADC Switch", RT5645_AD_DA_MIXER, |
734 | RT5645_M_ADCMIX_L_SFT, 1, 1), | 734 | RT5645_M_ADCMIX_L_SFT, 1, 1), |
735 | SOC_DAPM_SINGLE("DAC1 Switch", RT5645_AD_DA_MIXER, | 735 | SOC_DAPM_SINGLE_AUTODISABLE("DAC1 Switch", RT5645_AD_DA_MIXER, |
736 | RT5645_M_DAC1_L_SFT, 1, 1), | 736 | RT5645_M_DAC1_L_SFT, 1, 1), |
737 | }; | 737 | }; |
738 | 738 | ||
739 | static const struct snd_kcontrol_new rt5645_dac_r_mix[] = { | 739 | static const struct snd_kcontrol_new rt5645_dac_r_mix[] = { |
740 | SOC_DAPM_SINGLE("Stereo ADC Switch", RT5645_AD_DA_MIXER, | 740 | SOC_DAPM_SINGLE("Stereo ADC Switch", RT5645_AD_DA_MIXER, |
741 | RT5645_M_ADCMIX_R_SFT, 1, 1), | 741 | RT5645_M_ADCMIX_R_SFT, 1, 1), |
742 | SOC_DAPM_SINGLE("DAC1 Switch", RT5645_AD_DA_MIXER, | 742 | SOC_DAPM_SINGLE_AUTODISABLE("DAC1 Switch", RT5645_AD_DA_MIXER, |
743 | RT5645_M_DAC1_R_SFT, 1, 1), | 743 | RT5645_M_DAC1_R_SFT, 1, 1), |
744 | }; | 744 | }; |
745 | 745 | ||
@@ -1381,7 +1381,7 @@ static void hp_amp_power(struct snd_soc_codec *codec, int on) | |||
1381 | regmap_write(rt5645->regmap, RT5645_PR_BASE + | 1381 | regmap_write(rt5645->regmap, RT5645_PR_BASE + |
1382 | RT5645_MAMP_INT_REG2, 0xfc00); | 1382 | RT5645_MAMP_INT_REG2, 0xfc00); |
1383 | snd_soc_write(codec, RT5645_DEPOP_M2, 0x1140); | 1383 | snd_soc_write(codec, RT5645_DEPOP_M2, 0x1140); |
1384 | mdelay(5); | 1384 | msleep(40); |
1385 | rt5645->hp_on = true; | 1385 | rt5645->hp_on = true; |
1386 | } else { | 1386 | } else { |
1387 | /* depop parameters */ | 1387 | /* depop parameters */ |
@@ -2829,13 +2829,12 @@ static int rt5645_jack_detect(struct snd_soc_codec *codec, int jack_insert) | |||
2829 | snd_soc_dapm_sync(dapm); | 2829 | snd_soc_dapm_sync(dapm); |
2830 | rt5645->jack_type = SND_JACK_HEADPHONE; | 2830 | rt5645->jack_type = SND_JACK_HEADPHONE; |
2831 | } | 2831 | } |
2832 | |||
2833 | snd_soc_update_bits(codec, RT5645_CHARGE_PUMP, 0x0300, 0x0200); | ||
2834 | snd_soc_write(codec, RT5645_DEPOP_M1, 0x001d); | ||
2835 | snd_soc_write(codec, RT5645_DEPOP_M1, 0x0001); | ||
2836 | } else { /* jack out */ | 2832 | } else { /* jack out */ |
2837 | rt5645->jack_type = 0; | 2833 | rt5645->jack_type = 0; |
2838 | 2834 | ||
2835 | regmap_update_bits(rt5645->regmap, RT5645_HP_VOL, | ||
2836 | RT5645_L_MUTE | RT5645_R_MUTE, | ||
2837 | RT5645_L_MUTE | RT5645_R_MUTE); | ||
2839 | regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL2, | 2838 | regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL2, |
2840 | RT5645_CBJ_MN_JD, RT5645_CBJ_MN_JD); | 2839 | RT5645_CBJ_MN_JD, RT5645_CBJ_MN_JD); |
2841 | regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL1, | 2840 | regmap_update_bits(rt5645->regmap, RT5645_IN1_CTRL1, |
@@ -2880,8 +2879,6 @@ int rt5645_set_jack_detect(struct snd_soc_codec *codec, | |||
2880 | rt5645->en_button_func = true; | 2879 | rt5645->en_button_func = true; |
2881 | regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, | 2880 | regmap_update_bits(rt5645->regmap, RT5645_GPIO_CTRL1, |
2882 | RT5645_GP1_PIN_IRQ, RT5645_GP1_PIN_IRQ); | 2881 | RT5645_GP1_PIN_IRQ, RT5645_GP1_PIN_IRQ); |
2883 | regmap_update_bits(rt5645->regmap, RT5645_DEPOP_M1, | ||
2884 | RT5645_HP_CB_MASK, RT5645_HP_CB_PU); | ||
2885 | regmap_update_bits(rt5645->regmap, RT5645_GEN_CTRL1, | 2882 | regmap_update_bits(rt5645->regmap, RT5645_GEN_CTRL1, |
2886 | RT5645_DIG_GATE_CTRL, RT5645_DIG_GATE_CTRL); | 2883 | RT5645_DIG_GATE_CTRL, RT5645_DIG_GATE_CTRL); |
2887 | } | 2884 | } |
@@ -3205,6 +3202,13 @@ static const struct dmi_system_id dmi_platform_intel_braswell[] = { | |||
3205 | DMI_MATCH(DMI_PRODUCT_NAME, "Celes"), | 3202 | DMI_MATCH(DMI_PRODUCT_NAME, "Celes"), |
3206 | }, | 3203 | }, |
3207 | }, | 3204 | }, |
3205 | { | ||
3206 | .ident = "Google Ultima", | ||
3207 | .callback = strago_quirk_cb, | ||
3208 | .matches = { | ||
3209 | DMI_MATCH(DMI_PRODUCT_NAME, "Ultima"), | ||
3210 | }, | ||
3211 | }, | ||
3208 | { } | 3212 | { } |
3209 | }; | 3213 | }; |
3210 | 3214 | ||