[alsa-devel] [PATCH 1/4] ASoC: Convert WM8776 to devm_kzalloc()
Signed-off-by: Mark Brown broonie@opensource.wolfsonmicro.com --- sound/soc/codecs/wm8776.c | 14 ++++++-------- 1 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/sound/soc/codecs/wm8776.c b/sound/soc/codecs/wm8776.c index fbf80c5..38b4556 100644 --- a/sound/soc/codecs/wm8776.c +++ b/sound/soc/codecs/wm8776.c @@ -452,7 +452,8 @@ static int __devinit wm8776_spi_probe(struct spi_device *spi) struct wm8776_priv *wm8776; int ret;
- wm8776 = kzalloc(sizeof(struct wm8776_priv), GFP_KERNEL); + wm8776 = devm_kzalloc(&spi->dev, sizeof(struct wm8776_priv), + GFP_KERNEL); if (wm8776 == NULL) return -ENOMEM;
@@ -461,15 +462,13 @@ static int __devinit wm8776_spi_probe(struct spi_device *spi)
ret = snd_soc_register_codec(&spi->dev, &soc_codec_dev_wm8776, wm8776_dai, ARRAY_SIZE(wm8776_dai)); - if (ret < 0) - kfree(wm8776); + return ret; }
static int __devexit wm8776_spi_remove(struct spi_device *spi) { snd_soc_unregister_codec(&spi->dev); - kfree(spi_get_drvdata(spi)); return 0; }
@@ -491,7 +490,8 @@ static __devinit int wm8776_i2c_probe(struct i2c_client *i2c, struct wm8776_priv *wm8776; int ret;
- wm8776 = kzalloc(sizeof(struct wm8776_priv), GFP_KERNEL); + wm8776 = devm_kzalloc(&i2c->dev, sizeof(struct wm8776_priv), + GFP_KERNEL); if (wm8776 == NULL) return -ENOMEM;
@@ -500,15 +500,13 @@ static __devinit int wm8776_i2c_probe(struct i2c_client *i2c,
ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_wm8776, wm8776_dai, ARRAY_SIZE(wm8776_dai)); - if (ret < 0) - kfree(wm8776); + return ret; }
static __devexit int wm8776_i2c_remove(struct i2c_client *client) { snd_soc_unregister_codec(&client->dev); - kfree(i2c_get_clientdata(client)); return 0; }
The device only supports SPI.
Signed-off-by: Mark Brown broonie@opensource.wolfsonmicro.com --- sound/soc/codecs/wm8770.c | 6 ------ 1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/sound/soc/codecs/wm8770.c b/sound/soc/codecs/wm8770.c index c23aa14..19374a9 100644 --- a/sound/soc/codecs/wm8770.c +++ b/sound/soc/codecs/wm8770.c @@ -690,7 +690,6 @@ static const struct of_device_id wm8770_of_match[] = { }; MODULE_DEVICE_TABLE(of, wm8770_of_match);
-#if defined(CONFIG_SPI_MASTER) static int __devinit wm8770_spi_probe(struct spi_device *spi) { struct wm8770_priv *wm8770; @@ -725,28 +724,23 @@ static struct spi_driver wm8770_spi_driver = { .probe = wm8770_spi_probe, .remove = __devexit_p(wm8770_spi_remove) }; -#endif
static int __init wm8770_modinit(void) { int ret = 0;
-#if defined(CONFIG_SPI_MASTER) ret = spi_register_driver(&wm8770_spi_driver); if (ret) { printk(KERN_ERR "Failed to register wm8770 SPI driver: %d\n", ret); } -#endif return ret; } module_init(wm8770_modinit);
static void __exit wm8770_exit(void) { -#if defined(CONFIG_SPI_MASTER) spi_unregister_driver(&wm8770_spi_driver); -#endif } module_exit(wm8770_exit);
Signed-off-by: Mark Brown broonie@opensource.wolfsonmicro.com --- sound/soc/codecs/wm8804.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/sound/soc/codecs/wm8804.c b/sound/soc/codecs/wm8804.c index ae4b8fb..d54a3ca 100644 --- a/sound/soc/codecs/wm8804.c +++ b/sound/soc/codecs/wm8804.c @@ -659,8 +659,6 @@ static int wm8804_probe(struct snd_soc_codec *codec)
wm8804_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
- snd_soc_add_controls(codec, wm8804_snd_controls, - ARRAY_SIZE(wm8804_snd_controls)); return 0;
err_reg_enable: @@ -715,7 +713,10 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8804 = { .reg_cache_size = ARRAY_SIZE(wm8804_reg_defs), .reg_word_size = sizeof(u8), .reg_cache_default = wm8804_reg_defs, - .volatile_register = wm8804_volatile + .volatile_register = wm8804_volatile, + + .controls = wm8804_snd_controls, + .num_controls = ARRAY_SIZE(wm8804_snd_controls), };
static const struct of_device_id wm8804_of_match[] = {
Signed-off-by: Mark Brown broonie@opensource.wolfsonmicro.com --- sound/soc/codecs/wm8900.c | 24 ++++++++---------------- 1 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/sound/soc/codecs/wm8900.c b/sound/soc/codecs/wm8900.c index e427a38..f18c554 100644 --- a/sound/soc/codecs/wm8900.c +++ b/sound/soc/codecs/wm8900.c @@ -542,7 +542,7 @@ SND_SOC_DAPM_MIXER("Right Output Mixer", WM8900_REG_POWER3, 2, 0, };
/* Target, Path, Source */ -static const struct snd_soc_dapm_route audio_map[] = { +static const struct snd_soc_dapm_route wm8900_dapm_routes[] = { /* Inputs */ {"Left Input PGA", "LINPUT1 Switch", "LINPUT1"}, {"Left Input PGA", "LINPUT2 Switch", "LINPUT2"}, @@ -606,17 +606,6 @@ static const struct snd_soc_dapm_route audio_map[] = { {"HP_R", NULL, "Headphone Amplifier"}, };
-static int wm8900_add_widgets(struct snd_soc_codec *codec) -{ - struct snd_soc_dapm_context *dapm = &codec->dapm; - - snd_soc_dapm_new_controls(dapm, wm8900_dapm_widgets, - ARRAY_SIZE(wm8900_dapm_widgets)); - snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map)); - - return 0; -} - static int wm8900_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct snd_soc_dai *dai) @@ -1203,10 +1192,6 @@ static int wm8900_probe(struct snd_soc_codec *codec) /* Set the DAC and mixer output bias */ snd_soc_write(codec, WM8900_REG_OUTBIASCTL, 0x81);
- snd_soc_add_controls(codec, wm8900_snd_controls, - ARRAY_SIZE(wm8900_snd_controls)); - wm8900_add_widgets(codec); - return 0; }
@@ -1227,6 +1212,13 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8900 = { .reg_cache_size = ARRAY_SIZE(wm8900_reg_defaults), .reg_word_size = sizeof(u16), .reg_cache_default = wm8900_reg_defaults, + + .controls = wm8900_snd_controls, + .num_controls = ARRAY_SIZE(wm8900_snd_controls), + .dapm_widgets = wm8900_dapm_widgets, + .num_dapm_widgets = ARRAY_SIZE(wm8900_dapm_widgets), + .dapm_routes = wm8900_dapm_routes, + .num_dapm_routes = ARRAY_SIZE(wm8900_dapm_routes), };
#if defined(CONFIG_SPI_MASTER)
participants (1)
-
Mark Brown