From: "Amadeusz Sławiński" <amadeuszx.slawinski@linux.intel.com>
To: Mark Brown <broonie@kernel.org>
Cc: Oder Chiou <oder_chiou@realtek.com>,
Cezary Rojewski <cezary.rojewski@intel.com>,
alsa-devel@alsa-project.org, Takashi Iwai <tiwai@suse.com>,
Liam Girdwood <lgirdwood@gmail.com>,
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Subject: Re: [PATCH 11/11] ASoC: codecs: rt298: Fix jack detection
Date: Fri, 10 Jun 2022 11:46:19 +0200 [thread overview]
Message-ID: <7a13211b-524c-f92e-8c80-a03660cdfd01@linux.intel.com> (raw)
In-Reply-To: <YqIJxPFwwsbAPJ14@sirena.org.uk>
On 6/9/2022 4:55 PM, Mark Brown wrote:
> On Thu, Jun 09, 2022 at 03:35:41PM +0200, Amadeusz Sławiński wrote:
>> On our RVP platforms using rt298 with combojack we've seen issues with
>> controls being in incorrect state after suspend/resume cycle. This is
>> caused by codec driver not setting pins to correct state and causing
>> codec suspend method to not be called. Which on resume caused codec
>> registers to be in undefined state. Fix this by setting pins correctly
>> in jack detect function.
>
> Again fixes should go before cleanups. Could you be more specific about
> what was wrong with the existing code and how this fixes it?
>
>> static int rt298_mic_detect(struct snd_soc_component *component,
>> struct snd_soc_jack *jack, void *data)
>> {
>> + struct snd_soc_dapm_context *dapm = snd_soc_component_get_dapm(component);
>> struct rt298_priv *rt298 = snd_soc_component_get_drvdata(component);
>> - struct snd_soc_dapm_context *dapm;
>> - bool hp = false;
>> - bool mic = false;
>> - int status = 0;
>>
>> rt298->jack = jack;
>>
>> - /* If jack in NULL, disable HS jack */
>> - if (!jack) {
>> + if (jack) {
>> + /* enable IRQ */
>> + if (rt298->jack->status & SND_JACK_HEADPHONE)
>> + snd_soc_dapm_force_enable_pin(dapm, "LDO1");
>> + if (rt298->jack->status & SND_JACK_MICROPHONE) {
>> + snd_soc_dapm_force_enable_pin(dapm, "HV");
>> + snd_soc_dapm_force_enable_pin(dapm, "VREF");
>> + }
>> + regmap_update_bits(rt298->regmap, RT298_IRQ_CTRL, 0x2, 0x2);
>> + enable_irq(rt298->i2c->irq);
>> + snd_soc_jack_report(rt298->jack, rt298->jack->status,
>> + SND_JACK_MICROPHONE | SND_JACK_HEADPHONE);
>
> It looks rt298_jack_detect() already forces the pins on? It's not clear
> to me what the relationship between this code and the existing code is.
This aligns the code to be similar to other two rt2xx drivers and fixes
a problem on our side.
Original code doesn't reach rt298_jack_detect() when jack == NULL, so it
never disables those pins in this case.
I could probably fix this by moving rt298_jack_detect() call, but as
drivers for rt2xx codecs are quite similar to each other I opted to fix
the issue by minimizing the differences between them.
next prev parent reply other threads:[~2022-06-10 9:47 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-09 13:35 [PATCH 00/11] ASoC: codecs: Series of fixes for realtek codecs used on RVPs Amadeusz Sławiński
2022-06-09 13:35 ` [PATCH 01/11] ASoC: codecs: rt274: Always init jack_detect_work Amadeusz Sławiński
2022-06-09 13:35 ` [PATCH 02/11] ASoC: codecs: rt286: Reorganize jack detect handling Amadeusz Sławiński
2022-06-09 13:35 ` [PATCH 03/11] ASoC: codecs: rt298: " Amadeusz Sławiński
2022-06-09 13:35 ` [PATCH 04/11] ASoC: codecs: rt274: Move irq registration and cleanup Amadeusz Sławiński
2022-06-09 14:17 ` Mark Brown
2022-06-09 13:35 ` [PATCH 05/11] ASoC: codecs: rt286: " Amadeusz Sławiński
2022-06-09 13:35 ` [PATCH 06/11] ASoC: codecs: rt298: " Amadeusz Sławiński
2022-06-09 13:35 ` [PATCH 07/11] ASoC: codecs: rt274: Enable irq only when needed Amadeusz Sławiński
2022-06-09 14:18 ` Mark Brown
2022-06-10 9:33 ` Amadeusz Sławiński
2022-06-10 10:38 ` Mark Brown
2022-06-23 13:53 ` Amadeusz Sławiński
2022-06-23 14:23 ` Mark Brown
2022-06-09 13:35 ` [PATCH 08/11] ASoC: codecs: rt286: " Amadeusz Sławiński
2022-06-09 13:35 ` [PATCH 09/11] ASoC: codecs: rt298: " Amadeusz Sławiński
2022-06-09 13:35 ` [PATCH 10/11] ASoC: codecs: rt298: Fix NULL jack in interrupt Amadeusz Sławiński
2022-06-09 14:19 ` Mark Brown
2022-06-09 13:35 ` [PATCH 11/11] ASoC: codecs: rt298: Fix jack detection Amadeusz Sławiński
2022-06-09 14:55 ` Mark Brown
2022-06-10 9:46 ` Amadeusz Sławiński [this message]
2022-06-10 12:25 ` Mark Brown
2022-06-10 15:58 ` (subset) [PATCH 00/11] ASoC: codecs: Series of fixes for realtek codecs used on RVPs 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=7a13211b-524c-f92e-8c80-a03660cdfd01@linux.intel.com \
--to=amadeuszx.slawinski@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=cezary.rojewski@intel.com \
--cc=lgirdwood@gmail.com \
--cc=oder_chiou@realtek.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=tiwai@suse.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