| From e7cfd867fd9842f346688f28412eb83dec342900 Mon Sep 17 00:00:00 2001 |
| From: Jacob Rasmussen <jacobraz@chromium.org> |
| Date: Mon, 11 Nov 2019 11:59:57 -0700 |
| Subject: ASoC: rt5645: Fixed buddy jack support. |
| |
| From: Jacob Rasmussen <jacobraz@chromium.org> |
| |
| commit e7cfd867fd9842f346688f28412eb83dec342900 upstream. |
| |
| The headphone jack on buddy was broken with the following commit: |
| commit 6b5da66322c5 ("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: Jacob Rasmussen <jacobraz@google.com> |
| Reviewed-by: Ross Zwisler <zwisler@google.com> |
| Link: https://lore.kernel.org/r/20191111185957.217244-1-jacobraz@google.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/soc/codecs/rt5645.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/sound/soc/codecs/rt5645.c |
| +++ b/sound/soc/codecs/rt5645.c |
| @@ -3307,6 +3307,9 @@ static void rt5645_jack_detect_work(stru |
| snd_soc_jack_report(rt5645->mic_jack, |
| report, SND_JACK_MICROPHONE); |
| return; |
| + case 4: |
| + val = snd_soc_component_read32(rt5645->component, RT5645_A_JD_CTRL1) & 0x002; |
| + break; |
| default: /* read rt5645 jd1_1 status */ |
| val = snd_soc_component_read32(rt5645->component, RT5645_INT_IRQ_ST) & 0x1000; |
| break; |
| @@ -3634,7 +3637,7 @@ static const struct rt5645_platform_data |
| static const struct rt5645_platform_data buddy_platform_data = { |
| .dmic1_data_pin = RT5645_DMIC_DATA_GPIO5, |
| .dmic2_data_pin = RT5645_DMIC_DATA_IN2P, |
| - .jd_mode = 3, |
| + .jd_mode = 4, |
| .level_trigger_irq = true, |
| }; |
| |
| @@ -4030,6 +4033,7 @@ static int rt5645_i2c_probe(struct i2c_c |
| RT5645_JD1_MODE_1); |
| break; |
| case 3: |
| + case 4: |
| regmap_update_bits(rt5645->regmap, RT5645_A_JD_CTRL1, |
| RT5645_JD1_MODE_MASK, |
| RT5645_JD1_MODE_2); |