diff options
Diffstat (limited to 'target/linux/brcm2708/patches-3.18/0084-Add-a-parameter-to-turn-off-SPDIF-output-if-no-audio.patch')
-rw-r--r-- | target/linux/brcm2708/patches-3.18/0084-Add-a-parameter-to-turn-off-SPDIF-output-if-no-audio.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/target/linux/brcm2708/patches-3.18/0084-Add-a-parameter-to-turn-off-SPDIF-output-if-no-audio.patch b/target/linux/brcm2708/patches-3.18/0084-Add-a-parameter-to-turn-off-SPDIF-output-if-no-audio.patch deleted file mode 100644 index 080f8db104..0000000000 --- a/target/linux/brcm2708/patches-3.18/0084-Add-a-parameter-to-turn-off-SPDIF-output-if-no-audio.patch +++ /dev/null @@ -1,72 +0,0 @@ -From a09a8ebce7251e2a42668bd5ae57c12ed24fdca8 Mon Sep 17 00:00:00 2001 -From: Daniel Matuschek <daniel@hifiberry.com> -Date: Sat, 31 Jan 2015 16:07:56 +0100 -Subject: [PATCH 084/114] Add a parameter to turn off SPDIF output if no audio - is playing - -This patch adds the paramater auto_shutdown_output to the kernel module. -Default behaviour of the module is the same, but when auto_shutdown_output -is set to 1, the SPDIF oputput will shutdown if no stream is playing. ---- - sound/soc/bcm/hifiberry_digi.c | 29 ++++++++++++++++++++++++++++- - 1 file changed, 28 insertions(+), 1 deletion(-) - ---- a/sound/soc/bcm/hifiberry_digi.c -+++ b/sound/soc/bcm/hifiberry_digi.c -@@ -26,6 +26,11 @@ - - #include "../codecs/wm8804.h" - -+static short int auto_shutdown_output = 0; -+module_param(auto_shutdown_output, short, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); -+MODULE_PARM_DESC(auto_shutdown_output, "Shutdown SP/DIF output if playback is stopped"); -+ -+ - static int samplerate=44100; - - static int snd_rpi_hifiberry_digi_init(struct snd_soc_pcm_runtime *rtd) -@@ -38,6 +43,25 @@ static int snd_rpi_hifiberry_digi_init(s - return 0; - } - -+static int snd_rpi_hifiberry_digi_startup(struct snd_pcm_substream *substream) { -+ /* turn on digital output */ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec *codec = rtd->codec; -+ snd_soc_update_bits(codec, WM8804_PWRDN, 0x3c, 0x00); -+ return 0; -+} -+ -+static void snd_rpi_hifiberry_digi_shutdown(struct snd_pcm_substream *substream) { -+ /* turn off output */ -+ if (auto_shutdown_output) { -+ /* turn off output */ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_codec *codec = rtd->codec; -+ snd_soc_update_bits(codec, WM8804_PWRDN, 0x3c, 0x3c); -+ } -+} -+ -+ - static int snd_rpi_hifiberry_digi_hw_params(struct snd_pcm_substream *substream, - struct snd_pcm_hw_params *params) - { -@@ -70,7 +94,8 @@ static int snd_rpi_hifiberry_digi_hw_par - break; - default: - dev_err(substream->pcm->dev, -- "Failed to set WM8804 SYSCLK, unsupported samplerate\n"); -+ "Failed to set WM8804 SYSCLK, unsupported samplerate %d\n", -+ samplerate); - } - - snd_soc_dai_set_clkdiv(codec_dai, WM8804_MCLK_DIV, mclk_div); -@@ -96,6 +121,8 @@ static int snd_rpi_hifiberry_digi_hw_par - /* machine stream operations */ - static struct snd_soc_ops snd_rpi_hifiberry_digi_ops = { - .hw_params = snd_rpi_hifiberry_digi_hw_params, -+ .startup = snd_rpi_hifiberry_digi_startup, -+ .shutdown = snd_rpi_hifiberry_digi_shutdown, - }; - - static struct snd_soc_dai_link snd_rpi_hifiberry_digi_dai[] = { |