All of lore.kernel.org
 help / color / mirror / Atom feed
From: Curtis Malainey <cujomalainey@google.com>
To: Shuming Fan <shumingf@realtek.com>
Cc: "Oder Chiou" <oder_chiou@realtek.com>,
	"Jack Yu" <jack.yu@realtek.com>,
	"ALSA development" <alsa-devel@alsa-project.org>,
	"Lars-Peter Clausen" <lars@metafoo.de>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Derek [方德義]" <derek.fang@realtek.com>,
	"Nujella, Sathyanarayana" <sathyanarayana.nujella@intel.com>,
	"Arava, Jairaj" <jairaj.arava@intel.com>,
	"Flove(HsinFu)" <flove@realtek.com>
Subject: Re: [PATCH] ASoC: rt5682: add delay time of workqueue to control next IRQ event
Date: Tue, 9 Mar 2021 10:38:37 -0800	[thread overview]
Message-ID: <CAOReqxgPnL51MNY6Z4JHnNSbkjKnuZG+LQGWYNKMaob4f_pqcw@mail.gmail.com> (raw)
In-Reply-To: <20210309085827.32032-1-shumingf@realtek.com>

On Tue, Mar 9, 2021 at 12:58 AM <shumingf@realtek.com> wrote:
>
> From: Shuming Fan <shumingf@realtek.com>
>
> This patch keeps the delay time (50 ms) for jack detection and zero delay time for the button press.
> This patch improves the reaction of the button press.
>
> Signed-off-by: Shuming Fan <shumingf@realtek.com>

Thanks for fixing this up

Tested-by Curtis Malainey <cujomalainey@chromium.org>

> ---
>  sound/soc/codecs/rt5682-i2c.c | 2 +-
>  sound/soc/codecs/rt5682-sdw.c | 2 +-
>  sound/soc/codecs/rt5682.c     | 2 ++
>  sound/soc/codecs/rt5682.h     | 1 +
>  4 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/codecs/rt5682-i2c.c b/sound/soc/codecs/rt5682-i2c.c
> index 93c1603b42f1..8ea9f1d9fec0 100644
> --- a/sound/soc/codecs/rt5682-i2c.c
> +++ b/sound/soc/codecs/rt5682-i2c.c
> @@ -78,7 +78,7 @@ static irqreturn_t rt5682_irq(int irq, void *data)
>         struct rt5682_priv *rt5682 = data;
>
>         mod_delayed_work(system_power_efficient_wq,
> -               &rt5682->jack_detect_work, msecs_to_jiffies(250));
> +               &rt5682->jack_detect_work, msecs_to_jiffies(rt5682->irq_work_delay_time));
>
>         return IRQ_HANDLED;
>  }
> diff --git a/sound/soc/codecs/rt5682-sdw.c b/sound/soc/codecs/rt5682-sdw.c
> index 5e097f776561..fed80c8f994f 100644
> --- a/sound/soc/codecs/rt5682-sdw.c
> +++ b/sound/soc/codecs/rt5682-sdw.c
> @@ -677,7 +677,7 @@ static int rt5682_interrupt_callback(struct sdw_slave *slave,
>
>         if (status->control_port & 0x4) {
>                 mod_delayed_work(system_power_efficient_wq,
> -                       &rt5682->jack_detect_work, msecs_to_jiffies(250));
> +                       &rt5682->jack_detect_work, msecs_to_jiffies(rt5682->irq_work_delay_time));
>         }
>
>         return 0;
> diff --git a/sound/soc/codecs/rt5682.c b/sound/soc/codecs/rt5682.c
> index 559dc6db1f7c..0e2a10ed11da 100644
> --- a/sound/soc/codecs/rt5682.c
> +++ b/sound/soc/codecs/rt5682.c
> @@ -1094,6 +1094,7 @@ void rt5682_jack_detect_handler(struct work_struct *work)
>                         /* jack was out, report jack type */
>                         rt5682->jack_type =
>                                 rt5682_headset_detect(rt5682->component, 1);
> +                       rt5682->irq_work_delay_time = 0;
>                 } else if ((rt5682->jack_type & SND_JACK_HEADSET) ==
>                         SND_JACK_HEADSET) {
>                         /* jack is already in, report button event */
> @@ -1139,6 +1140,7 @@ void rt5682_jack_detect_handler(struct work_struct *work)
>         } else {
>                 /* jack out */
>                 rt5682->jack_type = rt5682_headset_detect(rt5682->component, 0);
> +               rt5682->irq_work_delay_time = 50;
>         }
>
>         snd_soc_jack_report(rt5682->hs_jack, rt5682->jack_type,
> diff --git a/sound/soc/codecs/rt5682.h b/sound/soc/codecs/rt5682.h
> index 1f9c51a5b9bf..74ff66767016 100644
> --- a/sound/soc/codecs/rt5682.h
> +++ b/sound/soc/codecs/rt5682.h
> @@ -1439,6 +1439,7 @@ struct rt5682_priv {
>         int pll_out[RT5682_PLLS];
>
>         int jack_type;
> +       int irq_work_delay_time;
>  };
>
>  extern const char *rt5682_supply_names[RT5682_NUM_SUPPLIES];
> --
> 2.29.0
>

  reply	other threads:[~2021-03-09 18:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-09  8:58 [PATCH] ASoC: rt5682: add delay time of workqueue to control next IRQ event shumingf
2021-03-09 18:38 ` Curtis Malainey [this message]
2021-03-09 19:06 ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAOReqxgPnL51MNY6Z4JHnNSbkjKnuZG+LQGWYNKMaob4f_pqcw@mail.gmail.com \
    --to=cujomalainey@google.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=derek.fang@realtek.com \
    --cc=flove@realtek.com \
    --cc=jack.yu@realtek.com \
    --cc=jairaj.arava@intel.com \
    --cc=lars@metafoo.de \
    --cc=lgirdwood@gmail.com \
    --cc=oder_chiou@realtek.com \
    --cc=sathyanarayana.nujella@intel.com \
    --cc=shumingf@realtek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.