OSDN Git Service

ASoC: rt5645: polling jd status in all conditions
authorBard Liao <bardliao@realtek.com>
Thu, 5 May 2016 03:13:31 +0000 (11:13 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 5 May 2016 12:06:39 +0000 (13:06 +0100)
We only polling jd status when rt5645->pdata.jd_invert is true.
However, it should be done at all time since there will be no
interrupt for jd if we press a headset button and remove the
headset at the same time.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5645.c

index dff706a..3c6594d 100644 (file)
@@ -3286,10 +3286,8 @@ static void rt5645_jack_detect_work(struct work_struct *work)
                if (btn_type == 0)/* button release */
                        report =  rt5645->jack_type;
                else {
-                       if (rt5645->pdata.jd_invert) {
-                               mod_timer(&rt5645->btn_check_timer,
-                                       msecs_to_jiffies(100));
-                       }
+                       mod_timer(&rt5645->btn_check_timer,
+                               msecs_to_jiffies(100));
                }
 
                break;
@@ -3816,9 +3814,9 @@ static int rt5645_i2c_probe(struct i2c_client *i2c,
        if (rt5645->pdata.jd_invert) {
                regmap_update_bits(rt5645->regmap, RT5645_IRQ_CTRL2,
                        RT5645_JD_1_1_MASK, RT5645_JD_1_1_INV);
-               setup_timer(&rt5645->btn_check_timer,
-                       rt5645_btn_check_callback, (unsigned long)rt5645);
        }
+       setup_timer(&rt5645->btn_check_timer,
+               rt5645_btn_check_callback, (unsigned long)rt5645);
 
        INIT_DELAYED_WORK(&rt5645->jack_detect_work, rt5645_jack_detect_work);
        INIT_DELAYED_WORK(&rt5645->rcclock_work, rt5645_rcclock_work);