Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 381437dd authored by Bard Liao's avatar Bard Liao Committed by Mark Brown
Browse files

ASoC: rt5645: polling jd status in all conditions



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: default avatarBard Liao <bardliao@realtek.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 178ff7c6
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -3286,11 +3286,9 @@ 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));
		}
		}

		break;
	/* jack out */
@@ -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);
	}

	INIT_DELAYED_WORK(&rt5645->jack_detect_work, rt5645_jack_detect_work);
	INIT_DELAYED_WORK(&rt5645->rcclock_work, rt5645_rcclock_work);