From 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 07:44:59 +0000
Subject: [PATCH] gmac get mac form eeprom
---
kernel/sound/soc/codecs/rk817_codec.c | 31 ++++++++++++++++++++++++++++---
1 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/kernel/sound/soc/codecs/rk817_codec.c b/kernel/sound/soc/codecs/rk817_codec.c
index ef06558..8c767ce 100644
--- a/kernel/sound/soc/codecs/rk817_codec.c
+++ b/kernel/sound/soc/codecs/rk817_codec.c
@@ -422,7 +422,7 @@
}
snd_soc_component_update_bits(component, RK817_CODEC_DTOP_DIGEN_CLKE,
- ADC_DIG_CLK_MASK, DAC_DIG_CLK_DIS);
+ ADC_DIG_CLK_MASK, ADC_DIG_CLK_DIS);
usleep_range(2000, 2500);
snd_soc_component_update_bits(component, RK817_CODEC_DTOP_DIGEN_CLKE,
ADC_DIG_CLK_MASK, ADC_DIG_CLK_EN);
@@ -1034,7 +1034,7 @@
return 0;
}
-static int rk817_digital_mute(struct snd_soc_dai *dai, int mute, int stream)
+static int rk817_digital_mute_dac(struct snd_soc_dai *dai, int mute, int stream)
{
struct snd_soc_component *component = dai->component;
struct rk817_codec_priv *rk817 = snd_soc_component_get_drvdata(component);
@@ -1056,7 +1056,11 @@
DAC_DIG_CLK_EN, DAC_DIG_CLK_DIS);
snd_soc_component_update_bits(component, RK817_CODEC_DTOP_DIGEN_CLKE,
DAC_DIG_CLK_EN, DAC_DIG_CLK_EN);
+ snd_soc_component_update_bits(component, RK817_CODEC_DTOP_DIGEN_CLKE,
+ I2SRX_EN_MASK, I2SRX_DIS);
} else {
+ snd_soc_component_update_bits(component, RK817_CODEC_DTOP_DIGEN_CLKE,
+ I2SRX_EN_MASK, I2SRX_EN);
snd_soc_component_update_bits(component,
RK817_CODEC_DDAC_MUTE_MIXCTL,
DACMT_ENABLE, DACMT_DISABLE);
@@ -1106,6 +1110,28 @@
return 0;
}
+static int rk817_digital_mute_adc(struct snd_soc_dai *dai, int mute, int stream)
+{
+ struct snd_soc_component *component = dai->component;
+
+ if (mute)
+ snd_soc_component_update_bits(component, RK817_CODEC_DTOP_DIGEN_CLKE,
+ I2STX_EN_MASK, I2STX_DIS);
+ else
+ snd_soc_component_update_bits(component, RK817_CODEC_DTOP_DIGEN_CLKE,
+ I2STX_EN_MASK, I2STX_EN);
+
+ return 0;
+}
+
+static int rk817_digital_mute(struct snd_soc_dai *dai, int mute, int stream)
+{
+ if (stream == SNDRV_PCM_STREAM_PLAYBACK)
+ return rk817_digital_mute_dac(dai, mute, stream);
+ else
+ return rk817_digital_mute_adc(dai, mute, stream);
+}
+
#define RK817_PLAYBACK_RATES (SNDRV_PCM_RATE_8000 |\
SNDRV_PCM_RATE_16000 | \
SNDRV_PCM_RATE_32000 | \
@@ -1150,7 +1176,6 @@
.set_sysclk = rk817_set_dai_sysclk,
.mute_stream = rk817_digital_mute,
.shutdown = rk817_codec_shutdown,
- .no_capture_mute = 1,
};
static struct snd_soc_dai_driver rk817_dai[] = {
--
Gitblit v1.6.2