[PATCH] ASoC: da7219-aad: Fix detection of plugged jack after resume

Marek Maslanka posted 1 patch 1 year, 1 month ago
sound/soc/codecs/da7219-aad.c | 4 ----
1 file changed, 4 deletions(-)
[PATCH] ASoC: da7219-aad: Fix detection of plugged jack after resume
Posted by Marek Maslanka 1 year, 1 month ago
Don't notify and mark the jack as unplugged during the "set_jack" action,
because this action is called very late in during the resume process, forcing
the jack to be unplugged after the resume, even if the jack is plugged in. Let's
leave the responsibility of managing the insertion of the jack to IRQ.

Signed-off-by: Marek Maslanka <mmaslanka@google.com>
---
 sound/soc/codecs/da7219-aad.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/sound/soc/codecs/da7219-aad.c b/sound/soc/codecs/da7219-aad.c
index 15e5e3eb592b3..2745b55fba662 100644
--- a/sound/soc/codecs/da7219-aad.c
+++ b/sound/soc/codecs/da7219-aad.c
@@ -33,10 +33,6 @@ void da7219_aad_jack_det(struct snd_soc_component *component, struct snd_soc_jac
 	struct da7219_priv *da7219 = snd_soc_component_get_drvdata(component);
 
 	da7219->aad->jack = jack;
-	da7219->aad->jack_inserted = false;
-
-	/* Send an initial empty report */
-	snd_soc_jack_report(jack, 0, DA7219_AAD_REPORT_ALL_MASK);
 
 	/* Enable/Disable jack detection */
 	snd_soc_component_update_bits(component, DA7219_ACCDET_CONFIG_1,
-- 
2.47.0.277.g8800431eea-goog
Re: [PATCH] ASoC: da7219-aad: Fix detection of plugged jack after resume
Posted by Mark Brown 1 year, 1 month ago
On Tue, Nov 12, 2024 at 07:40:47AM +0000, Marek Maslanka wrote:
> Don't notify and mark the jack as unplugged during the "set_jack" action,
> because this action is called very late in during the resume process, forcing
> the jack to be unplugged after the resume, even if the jack is plugged in. Let's
> leave the responsibility of managing the insertion of the jack to IRQ.

> @@ -33,10 +33,6 @@ void da7219_aad_jack_det(struct snd_soc_component *component, struct snd_soc_jac
>  	struct da7219_priv *da7219 = snd_soc_component_get_drvdata(component);
>  
>  	da7219->aad->jack = jack;
> -	da7219->aad->jack_inserted = false;
> -
> -	/* Send an initial empty report */
> -	snd_soc_jack_report(jack, 0, DA7219_AAD_REPORT_ALL_MASK);
>  
>  	/* Enable/Disable jack detection */
>  	snd_soc_component_update_bits(component, DA7219_ACCDET_CONFIG_1,

This path is also (AFAICT only?) called when registering the jack by
da7219_set_jack(), I'm not immediately seeing the path for resume.  This
suggests that what's going on here is an issue with the machine driver
unregistering the jack over suspend?
Re: [PATCH] ASoC: da7219-aad: Fix detection of plugged jack after resume
Posted by Marek Maślanka 1 year, 1 month ago
Hi Mark,

On Tue, Nov 12, 2024 at 2:16 PM Mark Brown <broonie@kernel.org> wrote:
>
> On Tue, Nov 12, 2024 at 07:40:47AM +0000, Marek Maslanka wrote:
> > Don't notify and mark the jack as unplugged during the "set_jack" action,
> > because this action is called very late in during the resume process, forcing
> > the jack to be unplugged after the resume, even if the jack is plugged in. Let's
> > leave the responsibility of managing the insertion of the jack to IRQ.
>
> > @@ -33,10 +33,6 @@ void da7219_aad_jack_det(struct snd_soc_component *component, struct snd_soc_jac
> >       struct da7219_priv *da7219 = snd_soc_component_get_drvdata(component);
> >
> >       da7219->aad->jack = jack;
> > -     da7219->aad->jack_inserted = false;
> > -
> > -     /* Send an initial empty report */
> > -     snd_soc_jack_report(jack, 0, DA7219_AAD_REPORT_ALL_MASK);
> >
> >       /* Enable/Disable jack detection */
> >       snd_soc_component_update_bits(component, DA7219_ACCDET_CONFIG_1,
>
> This path is also (AFAICT only?) called when registering the jack by
> da7219_set_jack(), I'm not immediately seeing the path for resume.  This
> suggests that what's going on here is an issue with the machine driver
> unregistering the jack over suspend?

In my case the da7219_set_jack() is directly called from avs_card_resume_post()
(sound/soc/intel/avs/boards/da7219.c) so that could be a problem too.
Re: [PATCH] ASoC: da7219-aad: Fix detection of plugged jack after resume
Posted by Mark Brown 1 year, 1 month ago
On Tue, Nov 12, 2024 at 03:11:07PM +0100, Marek Maślanka wrote:
> On Tue, Nov 12, 2024 at 2:16 PM Mark Brown <broonie@kernel.org> wrote:

> > This path is also (AFAICT only?) called when registering the jack by
> > da7219_set_jack(), I'm not immediately seeing the path for resume.  This
> > suggests that what's going on here is an issue with the machine driver
> > unregistering the jack over suspend?

> In my case the da7219_set_jack() is directly called from avs_card_resume_post()
> (sound/soc/intel/avs/boards/da7219.c) so that could be a problem too.

Right, that's the machine driver unregistering the jack over suspend
thing that I mentioned.  If there's some problem with the jack detection
being left enabled over suspend then that might need to be addressed in
the CODEC driver, but probably the machine driver shouldn't be doing
what it is.