armbian_build/patch/kernel/archive/meson64-5.12/0038-WIP-ASoC-meson-aiu-encoder-spdif-implement-the-.mute.patch
Igor Pečovnik 3b3d85e25c
Upgrade EDGE to 5.12.y (#2825)
* Bump imx6 edge to 5.12.y

* Bump odroid xu4 edge to 5.12.y

* Bump Jetson nano edge to 5.12.y

* WIP: Bump sunxi to 5.12.y

- create a copy of patches and make a new link
- wireless patches needs adjutement to 5.12
- some patches are still failing

* Adjust wireless patches to build on 5.12.y

* Remove template wireless patch

* Move Espressobin edge to 5.12.y

* Bump mvebu to 5.12

- patch 92-mvebu-gpio-remove-hardcoded-timer-assignment.patch was disabled @heisath
- adjusted wireless driver for 8723ds

* Adjust sunxi / sunxi64 edge to compile

* Fix kernel config for Jetson nano edge

* bump meson64 to 5.12.y

* bump rockchip edge to 5.12.y

* Bump rockchip64 to 5.12.y

* Bump rk322x edge to 5.12.y

@paolosabatino

* Cleanup im6, re-add 5.10.y patches since one is missing in 5.12.y

* Update odroidxu4 edge links

* rk322x: moved rk322x-edge to kernel 5.12, fix overlay compilation, retouched included kernel modules

* Cleanup: remove deprecated config

Co-authored-by: Paolo Sabatino <paolo.sabatino@gmail.com>
2021-05-22 17:08:44 +02:00

61 lines
2.0 KiB
Diff

From 3c114698990fb506d478fd5dd27a3298e526ef50 Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date: Wed, 23 Dec 2020 02:45:27 +0100
Subject: [PATCH 38/58] WIP: ASoC: meson: aiu: encoder-spdif: implement the
.mute_stream callback
Implement the .mute_stream callback based on code from the vendor
driver.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
sound/soc/meson/aiu-encoder-spdif.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/sound/soc/meson/aiu-encoder-spdif.c b/sound/soc/meson/aiu-encoder-spdif.c
index de850913975f..5c42a784cee4 100644
--- a/sound/soc/meson/aiu-encoder-spdif.c
+++ b/sound/soc/meson/aiu-encoder-spdif.c
@@ -19,6 +19,8 @@
#define AIU_958_MISC_U_FROM_STREAM BIT(12)
#define AIU_958_MISC_FORCE_LR BIT(13)
#define AIU_958_CTRL_HOLD_EN BIT(0)
+#define AIU_958_CTRL_MUTE_RIGHT_SPEAKER BIT(3)
+#define AIU_958_CTRL_MUTE_LEFT_SPEAKER BIT(4)
#define AIU_CLK_CTRL_958_DIV_EN BIT(1)
#define AIU_CLK_CTRL_958_DIV GENMASK(5, 4)
#define AIU_CLK_CTRL_958_DIV_MORE BIT(12)
@@ -200,10 +202,29 @@ static void aiu_encoder_spdif_shutdown(struct snd_pcm_substream *substream,
clk_bulk_disable_unprepare(aiu->spdif.clk_num, aiu->spdif.clks);
}
+static int aiu_encoder_spdif_mute_stream(struct snd_soc_dai *dai, int mute,
+ int stream)
+{
+ struct snd_soc_component *component = dai->component;
+ u32 value = 0;
+
+ if (mute)
+ value = AIU_958_CTRL_MUTE_RIGHT_SPEAKER |
+ AIU_958_CTRL_MUTE_LEFT_SPEAKER;
+
+ snd_soc_component_update_bits(component, AIU_958_CTRL,
+ AIU_958_CTRL_MUTE_RIGHT_SPEAKER |
+ AIU_958_CTRL_MUTE_LEFT_SPEAKER,
+ value);
+
+ return 0;
+}
+
const struct snd_soc_dai_ops aiu_encoder_spdif_dai_ops = {
.trigger = aiu_encoder_spdif_trigger,
.hw_params = aiu_encoder_spdif_hw_params,
.hw_free = aiu_encoder_spdif_hw_free,
.startup = aiu_encoder_spdif_startup,
.shutdown = aiu_encoder_spdif_shutdown,
+ .mute_stream = aiu_encoder_spdif_mute_stream,
};
--
2.25.1