diff options
author | Takashi Iwai <tiwai@suse.de> | 2022-02-01 18:52:54 +0300 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2022-02-01 18:52:54 +0300 |
commit | 52517d9c0c011272950e1d88f1ced297daa001e9 (patch) | |
tree | a6a17b07901b39d9caddf45a8972207512e6a8ed /sound/soc/codecs/rt5682-i2c.c | |
parent | 1c7f0e349aa5f8f80b1cac3d4917405332e14cdf (diff) | |
parent | a4f399a1416f645ac701064a55b0cb5203707ac9 (diff) | |
download | linux-52517d9c0c011272950e1d88f1ced297daa001e9.tar.xz |
Merge tag 'asoc-fix-v5.17-rc2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v5.17
Quite a few fixes here, including an unusually large set in the core
spurred on by various testing efforts as well as the usual small driver
fixes. There are quite a few fixes for out of bounds writes in both the
core and the various Qualcomm drivers, plus a couple of fixes for
locking in the DPCM code.
Diffstat (limited to 'sound/soc/codecs/rt5682-i2c.c')
-rw-r--r-- | sound/soc/codecs/rt5682-i2c.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/sound/soc/codecs/rt5682-i2c.c b/sound/soc/codecs/rt5682-i2c.c index 20e0f90ea498..20fc0f3766de 100644 --- a/sound/soc/codecs/rt5682-i2c.c +++ b/sound/soc/codecs/rt5682-i2c.c @@ -59,18 +59,12 @@ static void rt5682_jd_check_handler(struct work_struct *work) struct rt5682_priv *rt5682 = container_of(work, struct rt5682_priv, jd_check_work.work); - if (snd_soc_component_read(rt5682->component, RT5682_AJD1_CTRL) - & RT5682_JDH_RS_MASK) { + if (snd_soc_component_read(rt5682->component, RT5682_AJD1_CTRL) & RT5682_JDH_RS_MASK) /* jack out */ - rt5682->jack_type = rt5682_headset_detect(rt5682->component, 0); - - snd_soc_jack_report(rt5682->hs_jack, rt5682->jack_type, - SND_JACK_HEADSET | - SND_JACK_BTN_0 | SND_JACK_BTN_1 | - SND_JACK_BTN_2 | SND_JACK_BTN_3); - } else { + mod_delayed_work(system_power_efficient_wq, + &rt5682->jack_detect_work, 0); + else schedule_delayed_work(&rt5682->jd_check_work, 500); - } } static irqreturn_t rt5682_irq(int irq, void *data) @@ -198,7 +192,6 @@ static int rt5682_i2c_probe(struct i2c_client *i2c, } mutex_init(&rt5682->calibrate_mutex); - mutex_init(&rt5682->jdet_mutex); rt5682_calibrate(rt5682); rt5682_apply_patch_list(rt5682, &i2c->dev); |