alsa-devel.alsa-project.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).