linux-stable/sound/soc/ti
Janusz Krzysztofik 73681f4f14
ASoC: ams-delta: Take control over audio mute GPIO pins
Since commit 1137ceee76 ("ARM: OMAP1: ams-delta: Don't request unused
GPIOs"), on-board audio has appeared muted.  It has been discovered that
believed to be unused GPIO pins "hookflash1" and "hookflash2" need to be
set low for audible sound in handsfree and handset mode respectively.

According to Amstrad E3 wiki, the purpose of both pins hasn't been
clearly identified.  Original Amstrad software used to produce a high
pulse on them when the phone was taken off hook or recall was pressed.
With the current findings, we can assume the pins provide a kind of
audio mute function, separately for handset and handsfree operation
modes.

Commit 2afdb4c41d ("ARM: OMAP1: ams-delta: Fix audio permanently
muted") attempted to fix the issue temporarily by hogging the GPIO pin
"hookflash1" renamed to "audio_mute", however the fix occurred
incomplete as it restored audible sound only for handsfree mode.

Stop hogging that pin, rename the pins to "handsfree_mute" and
"handset_mute" respectively and implement appropriate DAPM event
callbacks for "Speaker" and "Earpiece" DAPM widgets.

Fixes: 1137ceee76 ("ARM: OMAP1: ams-delta: Don't request unused GPIOs")
Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/20190907111650.15440-1-jmkrzyszt@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2019-09-09 10:47:24 +01:00
..
ams-delta.c ASoC: ams-delta: Take control over audio mute GPIO pins 2019-09-09 10:47:24 +01:00
davinci-evm.c ASoC: ti: davinci-evm: consider CPU-Platform possibility 2019-06-28 15:18:55 +01:00
davinci-i2s.c ASoC: ti: davinci-i2s: Move the XSYNCERR workaround to .prepare callback 2019-08-30 12:21:20 +01:00
davinci-i2s.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
davinci-mcasp.c ASoC: ti: davinci-mcasp: Correct slot_width posed constraint 2019-07-26 13:09:32 +01:00
davinci-mcasp.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
davinci-vcif.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
edma-pcm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
edma-pcm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile
n810.c Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
omap-abe-twl6040.c ASoC: ti: omap-abe-twl6040: consider CPU-Platform possibility 2019-06-28 15:19:05 +01:00
omap-dmic.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
omap-dmic.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
omap-hdmi.c ASoC: ti: omap-hdmi: consider CPU-Platform possibility 2019-06-28 15:19:15 +01:00
omap-mcbsp-priv.h
omap-mcbsp-st.c
omap-mcbsp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
omap-mcbsp.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
omap-mcpdm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
omap-mcpdm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
omap-twl4030.c ASoC: ti: omap-twl4030: consider CPU-Platform possibility 2019-06-28 15:19:35 +01:00
omap3pandora.c Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
osk5912.c Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
rx51.c ASoC: ti: rx51: consider CPU-Platform possibility 2019-06-28 15:19:45 +01:00
sdma-pcm.c ASoC: ti: remove compat dma probing 2019-03-11 16:33:43 +00:00
sdma-pcm.h