[PATCH 11/11] ASoC: codecs: rt298: Fix jack detection
Mark Brown
broonie at kernel.org
Thu Jun 9 16:55:00 CEST 2022
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20220609/7c0a9b61/attachment.sig>
More information about the Alsa-devel
mailing list