OSDN Git Service

Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[tomoyo/tomoyo-test1.git] / sound / soc / codecs / rt5682.c
index 9feba9a..ae6f612 100644 (file)
@@ -1004,6 +1004,7 @@ static int rt5682_set_jack_detect(struct snd_soc_component *component,
                                   RT5682_JD1_EN_MASK, RT5682_JD1_DIS);
                regmap_update_bits(rt5682->regmap, RT5682_RC_CLK_CTRL,
                                   RT5682_POW_JDH | RT5682_POW_JDL, 0);
+               cancel_delayed_work_sync(&rt5682->jack_detect_work);
                return 0;
        }
 
@@ -1464,28 +1465,6 @@ static const struct snd_kcontrol_new hpor_switch =
        SOC_DAPM_SINGLE_AUTODISABLE("Switch", RT5682_HP_CTRL_1,
                                        RT5682_R_MUTE_SFT, 1, 1);
 
-static int rt5682_charge_pump_event(struct snd_soc_dapm_widget *w,
-       struct snd_kcontrol *kcontrol, int event)
-{
-       struct snd_soc_component *component =
-               snd_soc_dapm_to_component(w->dapm);
-
-       switch (event) {
-       case SND_SOC_DAPM_PRE_PMU:
-               snd_soc_component_update_bits(component,
-                       RT5682_HP_CHARGE_PUMP_1, RT5682_PM_HP_MASK, RT5682_PM_HP_HV);
-               break;
-       case SND_SOC_DAPM_POST_PMD:
-               snd_soc_component_update_bits(component,
-                       RT5682_HP_CHARGE_PUMP_1, RT5682_PM_HP_MASK, RT5682_PM_HP_LV);
-               break;
-       default:
-               return 0;
-       }
-
-       return 0;
-}
-
 static int rt5682_hp_event(struct snd_soc_dapm_widget *w,
        struct snd_kcontrol *kcontrol, int event)
 {
@@ -1769,8 +1748,7 @@ static const struct snd_soc_dapm_widget rt5682_dapm_widgets[] = {
        SND_SOC_DAPM_SUPPLY("HP Amp R", RT5682_PWR_ANLG_1,
                RT5682_PWR_HA_R_BIT, 0, NULL, 0),
        SND_SOC_DAPM_SUPPLY_S("Charge Pump", 1, RT5682_DEPOP_1,
-               RT5682_PUMP_EN_SFT, 0, rt5682_charge_pump_event,
-               SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
+               RT5682_PUMP_EN_SFT, 0, NULL, 0),
        SND_SOC_DAPM_SUPPLY_S("Capless", 2, RT5682_DEPOP_1,
                RT5682_CAPLESS_EN_SFT, 0, NULL, 0),
 
@@ -2671,6 +2649,8 @@ static int rt5682_i2c_probe(struct i2c_client *i2c,
                        RT5682_HPA_CP_BIAS_CTRL_MASK, RT5682_HPA_CP_BIAS_3UA);
        regmap_update_bits(rt5682->regmap, RT5682_CHARGE_PUMP_1,
                        RT5682_CP_CLK_HP_MASK, RT5682_CP_CLK_HP_300KHZ);
+       regmap_update_bits(rt5682->regmap, RT5682_HP_CHARGE_PUMP_1,
+                       RT5682_PM_HP_MASK, RT5682_PM_HP_HV);
 
        INIT_DELAYED_WORK(&rt5682->jack_detect_work,
                                rt5682_jack_detect_handler);