| From 7a8b8013f72198210fbd67e42ee06f09df04d4c6 Mon Sep 17 00:00:00 2001 |
| From: Jacob Rasmussen <jacobraz@chromium.org> |
| Date: Mon, 11 Nov 2019 11:59:57 -0700 |
| Subject: [PATCH] ASoC: rt5645: Fixed buddy jack support. |
| |
| 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: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c |
| index 1c06b3b9218c..902ac98a3fbe 100644 |
| --- a/sound/soc/codecs/rt5645.c |
| +++ b/sound/soc/codecs/rt5645.c |
| @@ -3270,6 +3270,9 @@ static void rt5645_jack_detect_work(struct work_struct *work) |
| 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; |
| @@ -3603,7 +3606,7 @@ static const struct rt5645_platform_data intel_braswell_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, |
| }; |
| |
| @@ -3999,6 +4002,7 @@ static int rt5645_i2c_probe(struct i2c_client *i2c, |
| 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); |
| -- |
| 2.7.4 |
| |