linux/sound/soc
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
..
adi treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 2019-05-30 11:29:19 -07:00
amd ASoC: AMD: Fix Kconfig warning without GPIOLIB 2019-08-22 18:23:23 +01:00
atmel ASoC: mchp-i2s-mcc: Wait for RX/TX RDY only if controller is running 2019-08-20 18:36:51 +01:00
au1x ASoC: au1x: psc-i2s.c: use devm_snd_soc_register_component() 2019-07-02 13:48:29 +01:00
bcm treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
cirrus ASoC: cirrus: ep93xx-i2s.c: use devm_snd_soc_register_component() 2019-07-02 13:48:39 +01:00
codecs ASoC: rt1011: add mutex protection to set_fmt/set_tdm_slot 2019-08-27 20:38:42 +01:00
dwc treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
fsl ASoC: fsl_ssi: Fix clock control issue in master mode 2019-08-29 20:14:11 +01:00
generic ASoC: audio-graph-card: add missing const at graph_get_dai_id() 2019-07-11 12:27:29 +01:00
hisilicon treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 340 2019-06-05 17:37:07 +02:00
img treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
intel ASoC: Intel: Baytrail: Fix implicit fallthrough warning 2019-08-29 20:14:29 +01:00
jz4740 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
kirkwood ASoC: kirkwood: armada-370-db: consider CPU-Platform possibility 2019-06-28 15:12:59 +01:00
mediatek ASoC: mediatek: mt8183: fix tdm out data align issue 2019-08-27 20:38:59 +01:00
meson ASoC: meson: g12a-tohdmitx: require regmap mmio 2019-08-20 14:11:56 +01:00
mxs ASoC: mxs: mxs-sgtl5000: consider CPU-Platform possibility 2019-06-28 15:13:19 +01:00
nuc900 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
pxa ASoC: pxa: pxa2xx-ac97.c: use devm_snd_soc_register_component() 2019-07-02 13:52:08 +01:00
qcom ASoC: qcom: apq8016_sbc: Fix oops with multiple DAI links 2019-07-23 12:16:29 +01:00
rockchip ASoC: rockchip: rockchip_max98090: Set period size to 240 2019-08-13 12:39:31 +01:00
samsung ASoC: samsung: odroid: fix a double-free issue for cpu_dai 2019-07-16 19:17:15 +01:00
sh ASoC: rsnd: don't call clk_get_rate() under atomic context 2019-08-07 14:17:47 +01:00
sirf ASoC: sirf: sirf-audio: consider CPU-Platform possibility 2019-06-28 15:16:43 +01:00
sof ASoC: SOF: Intel: hda: Initialize HDA controller after i915 init 2019-08-07 14:18:05 +01:00
spear treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
sprd treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
sti treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
stm Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
sunxi ASoC: sun4i-i2s: Register regmap and PCM before our component 2019-08-20 18:03:20 +01:00
tegra ASoC: tegra: trimslice: consider CPU-Platform possibility 2019-06-28 15:18:45 +01:00
ti ASoC: ams-delta: Take control over audio mute GPIO pins 2019-09-09 10:47:24 +01:00
txx9 Linux 5.2-rc6 2019-06-26 12:39:34 +01:00
uniphier ASoC: uniphier: Fix double reset assersion when transitioning to suspend state 2019-08-20 13:09:55 +01:00
ux500 ASoC: ux500: mop500: consider CPU-Platform possibility 2019-06-28 15:19:55 +01:00
xilinx treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
xtensa treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
zte treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 2019-05-30 11:29:22 -07:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile ASoC: SOF: Add Build support for SOF core and Intel drivers 2019-04-28 02:51:46 +09:00
soc-ac97.c ASoC: ac97: convert to SPDX identifiers 2018-07-02 10:56:09 +01:00
soc-acpi.c ASoC: soc-acpi: fix implicit header use of module.h/export.h 2019-05-08 18:06:28 +09:00
soc-compress.c ASoC: compress: Fix memory leak from snd_soc_new_compress 2019-06-25 15:33:04 +01:00
soc-core.c ASoC: Fail card instantiation if DAI format setup fails 2019-07-24 17:01:45 +01:00
soc-dapm.c ASoC: dapm: fix a memory leak bug 2019-07-22 17:33:38 +01:00
soc-devres.c ASoC: soc-devres.c: convert to SPDX identifiers 2018-07-02 10:55:22 +01:00
soc-generic-dmaengine-pcm.c ASoC: dmaengine: Make the pcm->name equal to pcm->id if the name is not set 2019-09-09 10:47:10 +01:00
soc-io.c ASoC: soc-io.c: convert to SPDX identifiers 2018-07-02 10:53:55 +01:00
soc-jack.c ASoC: soc-jack.c: convert to SPDX identifiers 2018-07-02 10:55:12 +01:00
soc-ops.c ASoC: Fix UBSAN warning at snd_soc_get/put_volsw_sx() 2018-09-11 11:58:52 +01:00
soc-pcm.c ASoC: Fixes for v5.2 2019-06-13 17:33:34 +02:00
soc-topology.c ASoC: dapm: Expose snd_soc_dapm_new_control_unlocked properly 2019-08-27 19:24:02 +01:00
soc-utils.c ASoC: soc-utils: respawn dummy Platform 2019-06-28 15:21:04 +01:00