* [PATCH 1/3] ASoC: ab8500: Downgrade noisy log message
@ 2013-09-20 9:39 Mark Brown
2013-09-20 9:39 ` [PATCH 2/3] ASoC: ab8500: Use ASoC I/O functions Mark Brown
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Mark Brown @ 2013-09-20 9:39 UTC (permalink / raw)
To: Lee Jones, Liam Girdwood; +Cc: alsa-devel, linaro-kernel, Mark Brown
From: Mark Brown <broonie@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
---
sound/soc/codecs/ab8500-codec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/codecs/ab8500-codec.c b/sound/soc/codecs/ab8500-codec.c
index 80555d7..2726e5a 100644
--- a/sound/soc/codecs/ab8500-codec.c
+++ b/sound/soc/codecs/ab8500-codec.c
@@ -2606,7 +2606,7 @@ static int ab8500_codec_driver_probe(struct platform_device *pdev)
static int ab8500_codec_driver_remove(struct platform_device *pdev)
{
- dev_info(&pdev->dev, "%s Enter.\n", __func__);
+ dev_dbg(&pdev->dev, "%s Enter.\n", __func__);
snd_soc_unregister_codec(&pdev->dev);
--
1.8.4.rc3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] ASoC: ab8500: Use ASoC I/O functions
2013-09-20 9:39 [PATCH 1/3] ASoC: ab8500: Downgrade noisy log message Mark Brown
@ 2013-09-20 9:39 ` Mark Brown
2013-09-20 9:39 ` [PATCH 3/3] ASoC: ab8500: Convert register I/O to regmap Mark Brown
2013-09-20 12:09 ` [PATCH 1/3] ASoC: ab8500: Downgrade noisy log message Lee Jones
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2013-09-20 9:39 UTC (permalink / raw)
To: Lee Jones, Liam Girdwood; +Cc: alsa-devel, linaro-kernel, Mark Brown
From: Mark Brown <broonie@linaro.org>
In preparation for moving away from implementing the ASoC level register
I/O functionality change direct calls to the ab8500 implementation of that
to use snd_soc_write()
Signed-off-by: Mark Brown <broonie@linaro.org>
---
sound/soc/codecs/ab8500-codec.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/sound/soc/codecs/ab8500-codec.c b/sound/soc/codecs/ab8500-codec.c
index 2726e5a..7990217 100644
--- a/sound/soc/codecs/ab8500-codec.c
+++ b/sound/soc/codecs/ab8500-codec.c
@@ -2532,12 +2532,10 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec)
}
/* Override HW-defaults */
- ab8500_codec_write_reg(codec,
- AB8500_ANACONF5,
- BIT(AB8500_ANACONF5_HSAUTOEN));
- ab8500_codec_write_reg(codec,
- AB8500_SHORTCIRCONF,
- BIT(AB8500_SHORTCIRCONF_HSZCDDIS));
+ snd_soc_write(codec, AB8500_ANACONF5,
+ BIT(AB8500_ANACONF5_HSAUTOEN));
+ snd_soc_write(codec, AB8500_SHORTCIRCONF,
+ BIT(AB8500_SHORTCIRCONF_HSZCDDIS));
/* Add filter controls */
status = snd_soc_add_codec_controls(codec, ab8500_filter_controls,
--
1.8.4.rc3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] ASoC: ab8500: Convert register I/O to regmap
2013-09-20 9:39 [PATCH 1/3] ASoC: ab8500: Downgrade noisy log message Mark Brown
2013-09-20 9:39 ` [PATCH 2/3] ASoC: ab8500: Use ASoC I/O functions Mark Brown
@ 2013-09-20 9:39 ` Mark Brown
2013-09-20 12:09 ` [PATCH 1/3] ASoC: ab8500: Downgrade noisy log message Lee Jones
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2013-09-20 9:39 UTC (permalink / raw)
To: Lee Jones, Liam Girdwood; +Cc: alsa-devel, linaro-kernel, Mark Brown
From: Mark Brown <broonie@linaro.org>
As part of a general push to eliminate the duplicated register I/O support
in ASoC convert ab8500 to use regmap.
Signed-off-by: Mark Brown <broonie@linaro.org>
---
sound/soc/codecs/ab8500-codec.c | 64 +++++++++++++++++++----------------------
1 file changed, 30 insertions(+), 34 deletions(-)
diff --git a/sound/soc/codecs/ab8500-codec.c b/sound/soc/codecs/ab8500-codec.c
index 7990217..ca500fd 100644
--- a/sound/soc/codecs/ab8500-codec.c
+++ b/sound/soc/codecs/ab8500-codec.c
@@ -126,6 +126,8 @@ struct ab8500_codec_drvdata_dbg {
/* Private data for AB8500 device-driver */
struct ab8500_codec_drvdata {
+ struct regmap *regmap;
+
/* Sidetone */
long *sid_fir_values;
enum sid_state sid_status;
@@ -166,49 +168,35 @@ static inline const char *amic_type_str(enum amic_type type)
*/
/* Read a register from the audio-bank of AB8500 */
-static unsigned int ab8500_codec_read_reg(struct snd_soc_codec *codec,
- unsigned int reg)
+static int ab8500_codec_read_reg(void *context, unsigned int reg,
+ unsigned int *value)
{
+ struct device *dev = context;
int status;
- unsigned int value = 0;
u8 value8;
- status = abx500_get_register_interruptible(codec->dev, AB8500_AUDIO,
- reg, &value8);
- if (status < 0) {
- dev_err(codec->dev,
- "%s: ERROR: Register (0x%02x:0x%02x) read failed (%d).\n",
- __func__, (u8)AB8500_AUDIO, (u8)reg, status);
- } else {
- dev_dbg(codec->dev,
- "%s: Read 0x%02x from register 0x%02x:0x%02x\n",
- __func__, value8, (u8)AB8500_AUDIO, (u8)reg);
- value = (unsigned int)value8;
- }
+ status = abx500_get_register_interruptible(dev, AB8500_AUDIO,
+ reg, &value8);
+ *value = (unsigned int)value8;
- return value;
+ return status;
}
/* Write to a register in the audio-bank of AB8500 */
-static int ab8500_codec_write_reg(struct snd_soc_codec *codec,
- unsigned int reg, unsigned int value)
+static int ab8500_codec_write_reg(void *context, unsigned int reg,
+ unsigned int value)
{
- int status;
+ struct device *dev = context;
- status = abx500_set_register_interruptible(codec->dev, AB8500_AUDIO,
- reg, value);
- if (status < 0)
- dev_err(codec->dev,
- "%s: ERROR: Register (%02x:%02x) write failed (%d).\n",
- __func__, (u8)AB8500_AUDIO, (u8)reg, status);
- else
- dev_dbg(codec->dev,
- "%s: Wrote 0x%02x into register %02x:%02x\n",
- __func__, (u8)value, (u8)AB8500_AUDIO, (u8)reg);
-
- return status;
+ return abx500_set_register_interruptible(dev, AB8500_AUDIO,
+ reg, value);
}
+static const struct regmap_config ab8500_codec_regmap = {
+ .reg_read = ab8500_codec_read_reg,
+ .reg_write = ab8500_codec_write_reg,
+};
+
/*
* Controls - DAPM
*/
@@ -2488,6 +2476,8 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec)
/* Setup AB8500 according to board-settings */
pdata = dev_get_platdata(dev->parent);
+ codec->control_data = drvdata->regmap;
+
if (np) {
if (!pdata)
pdata = devm_kzalloc(dev,
@@ -2565,9 +2555,6 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec)
static struct snd_soc_codec_driver ab8500_codec_driver = {
.probe = ab8500_codec_probe,
- .read = ab8500_codec_read_reg,
- .write = ab8500_codec_write_reg,
- .reg_word_size = sizeof(u8),
.controls = ab8500_ctrls,
.num_controls = ARRAY_SIZE(ab8500_ctrls),
.dapm_widgets = ab8500_dapm_widgets,
@@ -2590,6 +2577,15 @@ static int ab8500_codec_driver_probe(struct platform_device *pdev)
drvdata->anc_status = ANC_UNCONFIGURED;
dev_set_drvdata(&pdev->dev, drvdata);
+ drvdata->regmap = devm_regmap_init(&pdev->dev, NULL, &pdev->dev,
+ &ab8500_codec_regmap);
+ if (IS_ERR(drvdata->regmap)) {
+ status = PTR_ERR(drvdata->regmap);
+ dev_err(&pdev->dev, "%s: Failed to allocate regmap: %d\n",
+ __func__, status);
+ return status;
+ }
+
dev_dbg(&pdev->dev, "%s: Register codec.\n", __func__);
status = snd_soc_register_codec(&pdev->dev, &ab8500_codec_driver,
ab8500_codec_dai,
--
1.8.4.rc3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/3] ASoC: ab8500: Downgrade noisy log message
2013-09-20 9:39 [PATCH 1/3] ASoC: ab8500: Downgrade noisy log message Mark Brown
2013-09-20 9:39 ` [PATCH 2/3] ASoC: ab8500: Use ASoC I/O functions Mark Brown
2013-09-20 9:39 ` [PATCH 3/3] ASoC: ab8500: Convert register I/O to regmap Mark Brown
@ 2013-09-20 12:09 ` Lee Jones
2 siblings, 0 replies; 4+ messages in thread
From: Lee Jones @ 2013-09-20 12:09 UTC (permalink / raw)
To: Mark Brown; +Cc: linaro-kernel, alsa-devel, Liam Girdwood, Mark Brown
On Fri, 20 Sep 2013, Mark Brown wrote:
> From: Mark Brown <broonie@linaro.org>
>
> Signed-off-by: Mark Brown <broonie@linaro.org>
> ---
> sound/soc/codecs/ab8500-codec.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
FWIW: All 3 patches look good to me:
Acked-by: Lee Jones <lee.jones@linaro.org>
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-09-20 12:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-20 9:39 [PATCH 1/3] ASoC: ab8500: Downgrade noisy log message Mark Brown
2013-09-20 9:39 ` [PATCH 2/3] ASoC: ab8500: Use ASoC I/O functions Mark Brown
2013-09-20 9:39 ` [PATCH 3/3] ASoC: ab8500: Convert register I/O to regmap Mark Brown
2013-09-20 12:09 ` [PATCH 1/3] ASoC: ab8500: Downgrade noisy log message Lee Jones
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.