2019-09-19 14:43:19 +00:00
|
|
|
From a2d8d212b986e4a4ae52c748d246e4c28ebaf1bc Mon Sep 17 00:00:00 2001
|
2019-07-09 18:32:28 +00:00
|
|
|
From: Annaliese McDermond <nh6z@nh6z.net>
|
|
|
|
Date: Thu, 21 Mar 2019 17:58:50 -0700
|
2019-09-19 14:43:19 +00:00
|
|
|
Subject: [PATCH 404/806] ASoC: tlv320aic32x4: Move aosr and dosr setting to
|
2019-07-09 18:32:28 +00:00
|
|
|
separate functions
|
|
|
|
|
|
|
|
commit fbafbf6517274a797e6e6508c18dd8dba5920c89 upstream.
|
|
|
|
|
|
|
|
Move these to separate helper functions. This looks cleaner and fits
|
|
|
|
better with the new clock setting in CCF.
|
|
|
|
|
|
|
|
Signed-off-by: Annaliese McDermond <nh6z@nh6z.net>
|
|
|
|
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
|
|
---
|
|
|
|
sound/soc/codecs/tlv320aic32x4.c | 24 +++++++++++++++++-------
|
|
|
|
1 file changed, 17 insertions(+), 7 deletions(-)
|
|
|
|
|
|
|
|
--- a/sound/soc/codecs/tlv320aic32x4.c
|
|
|
|
+++ b/sound/soc/codecs/tlv320aic32x4.c
|
|
|
|
@@ -720,6 +720,20 @@ static int aic32x4_set_dai_fmt(struct sn
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
+static int aic32x4_set_aosr(struct snd_soc_component *component, u8 aosr)
|
|
|
|
+{
|
|
|
|
+ return snd_soc_component_write(component, AIC32X4_AOSR, aosr);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static int aic32x4_set_dosr(struct snd_soc_component *component, u16 dosr)
|
|
|
|
+{
|
|
|
|
+ snd_soc_component_write(component, AIC32X4_DOSRMSB, dosr >> 8);
|
|
|
|
+ snd_soc_component_write(component, AIC32X4_DOSRLSB,
|
|
|
|
+ (dosr & 0xff));
|
|
|
|
+
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
static int aic32x4_set_processing_blocks(struct snd_soc_component *component,
|
|
|
|
u8 r_block, u8 p_block)
|
|
|
|
{
|
|
|
|
@@ -765,14 +779,10 @@ static int aic32x4_setup_clocks(struct s
|
|
|
|
clk_set_rate(clocks[4].clk, aic32x4_divs[i].mdac_rate);
|
|
|
|
clk_set_rate(clocks[5].clk, aic32x4_divs[i].bdiv_rate);
|
|
|
|
|
|
|
|
- aic32x4_set_processing_blocks(component, aic32x4_divs[i].r_block, aic32x4_divs[i].p_block);
|
|
|
|
+ aic32x4_set_aosr(component, aic32x4_divs[i].aosr);
|
|
|
|
+ aic32x4_set_dosr(component, aic32x4_divs[i].dosr);
|
|
|
|
|
|
|
|
- /* DOSR MSB & LSB values */
|
|
|
|
- snd_soc_component_write(component, AIC32X4_DOSRMSB, aic32x4_divs[i].dosr >> 8);
|
|
|
|
- snd_soc_component_write(component, AIC32X4_DOSRLSB, (aic32x4_divs[i].dosr & 0xff));
|
|
|
|
-
|
|
|
|
- /* AOSR value */
|
|
|
|
- snd_soc_component_write(component, AIC32X4_AOSR, aic32x4_divs[i].aosr);
|
|
|
|
+ aic32x4_set_processing_blocks(component, aic32x4_divs[i].r_block, aic32x4_divs[i].p_block);
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|