Skip to contentSkip to conversation

ASoC: jack: export gpio detect

PATCH In review [email protected] 2 participants 6 messages Apr 3, 2014 – Apr 14, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ASoC: jack: export gpio detect

From: Christopher Freeman <[email protected]>

Export the gpio detect function so machine drivers may call it. Interrupts for the jack may be disabled during sleep, so this allows a machine driver to have the jack status updated during resume.

---
 include/sound/soc.h  | 1 +
 sound/soc/soc-jack.c | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)
include/sound/soc.h +1 -0
index a6a059c..36383cb 100644
@@ -442,6 +442,7 @@ int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
 			struct snd_soc_jack_gpio *gpios);
 void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count,
 			struct snd_soc_jack_gpio *gpios);
+void snd_soc_jack_gpio_detect(struct snd_soc_jack_gpio *gpio);
 #endif
 
 /* codec register bit access */
sound/soc/soc-jack.c +2 -1
index 0bb5ccc..fd97cc5 100644
@@ -231,7 +231,7 @@ EXPORT_SYMBOL_GPL(snd_soc_jack_notifier_unregister);
 
 #ifdef CONFIG_GPIOLIB
 /* gpio detect */
-static void snd_soc_jack_gpio_detect(struct snd_soc_jack_gpio *gpio)
+void snd_soc_jack_gpio_detect(struct snd_soc_jack_gpio *gpio)
 {
 	struct snd_soc_jack *jack = gpio->jack;
 	int enable;
@@ -251,6 +251,7 @@ static void snd_soc_jack_gpio_detect(struct snd_soc_jack_gpio *gpio)
 
 	snd_soc_jack_report(jack, report, gpio->report);
 }
+EXPORT_SYMBOL_GPL(snd_soc_jack_gpio_detect);
 
 /* irq handler for gpio pin */
 static irqreturn_t gpio_handler(int irq, void *data)
Signature · 9 lines
1.8.3.2


-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
maintainer
#1 lore raw
Quoted 6 lines · On Thu, Apr 03, 2014 at 03:03:55PM -0700, [email protected] wrote:

From: Christopher Freeman <[email protected]>

Export the gpio detect function so machine drivers may call it. Interrupts for the jack may be disabled during sleep, so this allows a machine driver to have the jack status updated during resume.

It seems better to have explicit callbacks for this doesn't it, ideally ones that get triggered by the core without the machine driver having to do anything? This is a common need so having to open code it would be a bit depressing.

#2 lore raw
Quoted 10 lines · Mark Brown

* PGP Signed by an unknown key

Quoted 6 lines · On Thu, Apr 03, 2014 at 03:03:55PM -0700, [email protected] wrote:

From: Christopher Freeman <[email protected]>

Export the gpio detect function so machine drivers may call it. Interrupts for the jack may be disabled during sleep, so this allows a machine driver to have the jack status updated during resume.

Quoted 4 lines

It seems better to have explicit callbacks for this doesn't it, ideally ones that get triggered by the core without the machine driver having to do anything? This is a common need so having to open code it would be a bit depressing.

Mark, do you have a suggestion on how to plumb this up? The way I see it, the machine drivers own the context for the gpios and soc-jack acts as a helper library. I don't see a way to do this from the core.

Quoted 3 lines

* Unknown Key
* 0x7EA229BD

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

#3 lore raw
Quoted 14 lines · Christopher Freeman
Quoted 10 lines · Mark Brown

* PGP Signed by an unknown key

Quoted 6 lines · On Thu, Apr 03, 2014 at 03:03:55PM -0700, [email protected] wrote:

From: Christopher Freeman <[email protected]>

Export the gpio detect function so machine drivers may call it. Interrupts for the jack may be disabled during sleep, so this allows a machine driver to have the jack status updated during resume.

Quoted 9 lines
Quoted 4 lines

It seems better to have explicit callbacks for this doesn't it, ideally ones that get triggered by the core without the machine driver having to do anything? This is a common need so having to open code it would be a bit depressing.

Mark, do you have a suggestion on how to plumb this up? The way I see it, the machine drivers own the context for the gpios and soc-jack acts as a helper library. I don't see a way to do this from the core.

Any thoughts? One idea would be to change things such that jacks are registered with the core and the core is then allowed access to the gpio detect functionŠ This would make things common, but we're still opening up a function in the jack code. I don't see another way. (using the existing interface, we could free and add gpios on suspend/resumeŠ :-P)

Quoted 20 lines
Quoted 4 lines

* Unknown Key
* 0x7EA229BD

--------------------------------------------------------------------------
---------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
--------------------------------------------------------------------------
---------
_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

maintainer
#4 lore raw
Quoted 11 lines · Christopher Freeman
Quoted 3 lines · Christopher Freeman

Mark, do you have a suggestion on how to plumb this up? The way I see it, the machine drivers own the context for the gpios and soc-jack acts as a helper library. I don't see a way to do this from the core.

Any thoughts? One idea would be to change things such that jacks are registered with the core and the core is then allowed access to the gpio detect functionŠ This would make things common, but we're still opening up a function in the jack code. I don't see another way. (using the existing interface, we could free and add gpios on suspend/resumeŠ :-P)

Please allow a reasonable time for replies, especially during the merge window.

maintainer
#5 lore raw
In reply to Christopher Freeman
Quoted 10 lines · Christopher Freeman
Quoted 4 lines · Mark Brown

It seems better to have explicit callbacks for this doesn't it, ideally ones that get triggered by the core without the machine driver having to do anything? This is a common need so having to open code it would be a bit depressing.

Mark, do you have a suggestion on how to plumb this up? The way I see it, the machine drivers own the context for the gpios and soc-jack acts as a helper library. I don't see a way to do this from the core.

Both the ALSA core and ASoC know that the jacks exist and at least ASoC already gets callbacks from the machine drivers during suspend (usually just through providing default PM operations for them). We'd need to add code to actually keep track of them but if that's done then the core can walk the list of jacks at resume time and give them a callback.