Commit 8f244127 authored by oder_chiou@realtek.com's avatar oder_chiou@realtek.com Committed by Mark Brown

ASoC: rt5663: Optimize the Jack Type detection

The patch optimizes the Jack Type detection.
Signed-off-by: default avatarOder Chiou <oder_chiou@realtek.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 7d8e00c7
...@@ -1508,7 +1508,7 @@ static int rt5663_v2_jack_detect(struct snd_soc_codec *codec, int jack_insert) ...@@ -1508,7 +1508,7 @@ static int rt5663_v2_jack_detect(struct snd_soc_codec *codec, int jack_insert)
static int rt5663_jack_detect(struct snd_soc_codec *codec, int jack_insert) static int rt5663_jack_detect(struct snd_soc_codec *codec, int jack_insert)
{ {
struct rt5663_priv *rt5663 = snd_soc_codec_get_drvdata(codec); struct rt5663_priv *rt5663 = snd_soc_codec_get_drvdata(codec);
int val, i = 0, sleep_time[5] = {300, 150, 100, 50, 30}; int val, i = 0;
dev_dbg(codec->dev, "%s jack_insert:%d\n", __func__, jack_insert); dev_dbg(codec->dev, "%s jack_insert:%d\n", __func__, jack_insert);
...@@ -1543,17 +1543,22 @@ static int rt5663_jack_detect(struct snd_soc_codec *codec, int jack_insert) ...@@ -1543,17 +1543,22 @@ static int rt5663_jack_detect(struct snd_soc_codec *codec, int jack_insert)
RT5663_IRQ_POW_SAV_MASK, RT5663_IRQ_POW_SAV_EN); RT5663_IRQ_POW_SAV_MASK, RT5663_IRQ_POW_SAV_EN);
snd_soc_update_bits(codec, RT5663_IRQ_1, snd_soc_update_bits(codec, RT5663_IRQ_1,
RT5663_EN_IRQ_JD1_MASK, RT5663_EN_IRQ_JD1_EN); RT5663_EN_IRQ_JD1_MASK, RT5663_EN_IRQ_JD1_EN);
while (i < 5) {
msleep(sleep_time[i]); while (true) {
val = snd_soc_read(codec, RT5663_EM_JACK_TYPE_2) & regmap_read(rt5663->regmap, RT5663_INT_ST_2, &val);
0x0003; if (!(val & 0x80))
dev_dbg(codec->dev, "%s: MX-00e7 val=%x sleep %d\n", usleep_range(10000, 10005);
__func__, val, sleep_time[i]); else
i++; break;
if (val == 0x1 || val == 0x2 || val == 0x3)
if (i > 200)
break; break;
i++;
} }
val = snd_soc_read(codec, RT5663_EM_JACK_TYPE_2) & 0x0003;
dev_dbg(codec->dev, "%s val = %d\n", __func__, val); dev_dbg(codec->dev, "%s val = %d\n", __func__, val);
switch (val) { switch (val) {
case 1: case 1:
case 2: case 2:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment