ASoC: rt5682: Fix the fast discharge for headset unplugging in soundwire mode
[linux-2.6-microblaze.git] / sound / soc / codecs / rt5682-sdw.c
index 5e097f7..e78ba3b 100644 (file)
@@ -462,7 +462,8 @@ static int rt5682_io_init(struct device *dev, struct sdw_slave *slave)
 
        regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_2,
                RT5682_EXT_JD_SRC, RT5682_EXT_JD_SRC_MANUAL);
-       regmap_write(rt5682->regmap, RT5682_CBJ_CTRL_1, 0xd042);
+       regmap_write(rt5682->regmap, RT5682_CBJ_CTRL_1, 0xd142);
+       regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_5, 0x0700, 0x0600);
        regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_3,
                RT5682_CBJ_IN_BUF_EN, RT5682_CBJ_IN_BUF_EN);
        regmap_update_bits(rt5682->regmap, RT5682_SAR_IL_CMD_1,
@@ -677,7 +678,7 @@ static int rt5682_interrupt_callback(struct sdw_slave *slave,
 
        if (status->control_port & 0x4) {
                mod_delayed_work(system_power_efficient_wq,
-                       &rt5682->jack_detect_work, msecs_to_jiffies(250));
+                       &rt5682->jack_detect_work, msecs_to_jiffies(rt5682->irq_work_delay_time));
        }
 
        return 0;