Commit e7cfd867 authored by Jacob Rasmussen's avatar Jacob Rasmussen Committed by Mark Brown

ASoC: rt5645: Fixed buddy jack support.

The headphone jack on buddy was broken with the following commit:
commit 6b5da663 ("ASoC: rt5645: read jd1_1 status for jd
detection").
This changes the jd_mode for buddy to 4 so buddy can read from the same
register that was used in the working version of this driver without
affecting any other devices that might use this, since no other device uses
jd_mode = 4. To test this I plugged and uplugged the headphone jack, verifying
audio works.
Signed-off-by: default avatarJacob Rasmussen <jacobraz@google.com>
Reviewed-by: default avatarRoss Zwisler <zwisler@google.com>
Link: https://lore.kernel.org/r/20191111185957.217244-1-jacobraz@google.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
parent 9508ef5a
...@@ -3270,6 +3270,9 @@ static void rt5645_jack_detect_work(struct work_struct *work) ...@@ -3270,6 +3270,9 @@ static void rt5645_jack_detect_work(struct work_struct *work)
snd_soc_jack_report(rt5645->mic_jack, snd_soc_jack_report(rt5645->mic_jack,
report, SND_JACK_MICROPHONE); report, SND_JACK_MICROPHONE);
return; return;
case 4:
val = snd_soc_component_read32(rt5645->component, RT5645_A_JD_CTRL1) & 0x002;
break;
default: /* read rt5645 jd1_1 status */ default: /* read rt5645 jd1_1 status */
val = snd_soc_component_read32(rt5645->component, RT5645_INT_IRQ_ST) & 0x1000; val = snd_soc_component_read32(rt5645->component, RT5645_INT_IRQ_ST) & 0x1000;
break; break;
...@@ -3603,7 +3606,7 @@ static const struct rt5645_platform_data intel_braswell_platform_data = { ...@@ -3603,7 +3606,7 @@ static const struct rt5645_platform_data intel_braswell_platform_data = {
static const struct rt5645_platform_data buddy_platform_data = { static const struct rt5645_platform_data buddy_platform_data = {
.dmic1_data_pin = RT5645_DMIC_DATA_GPIO5, .dmic1_data_pin = RT5645_DMIC_DATA_GPIO5,
.dmic2_data_pin = RT5645_DMIC_DATA_IN2P, .dmic2_data_pin = RT5645_DMIC_DATA_IN2P,
.jd_mode = 3, .jd_mode = 4,
.level_trigger_irq = true, .level_trigger_irq = true,
}; };
...@@ -3999,6 +4002,7 @@ static int rt5645_i2c_probe(struct i2c_client *i2c, ...@@ -3999,6 +4002,7 @@ static int rt5645_i2c_probe(struct i2c_client *i2c,
RT5645_JD1_MODE_1); RT5645_JD1_MODE_1);
break; break;
case 3: case 3:
case 4:
regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1, regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1,
RT5645_JD1_MODE_MASK, RT5645_JD1_MODE_MASK,
RT5645_JD1_MODE_2); RT5645_JD1_MODE_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