ASoC: Convert WM8400 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Mark Brown 2011-12-03 11:41:27 +00:00
parent 0d1fe0d452
commit b903c0ed2e

View File

@ -1383,7 +1383,8 @@ static int wm8400_codec_probe(struct snd_soc_codec *codec)
int ret; int ret;
u16 reg; u16 reg;
priv = kzalloc(sizeof(struct wm8400_priv), GFP_KERNEL); priv = devm_kzalloc(codec->dev, sizeof(struct wm8400_priv),
GFP_KERNEL);
if (priv == NULL) if (priv == NULL)
return -ENOMEM; return -ENOMEM;
@ -1395,7 +1396,7 @@ static int wm8400_codec_probe(struct snd_soc_codec *codec)
ARRAY_SIZE(power), &power[0]); ARRAY_SIZE(power), &power[0]);
if (ret != 0) { if (ret != 0) {
dev_err(codec->dev, "Failed to get regulators: %d\n", ret); dev_err(codec->dev, "Failed to get regulators: %d\n", ret);
goto err; return ret;
} }
INIT_WORK(&priv->work, wm8400_probe_deferred); INIT_WORK(&priv->work, wm8400_probe_deferred);
@ -1426,14 +1427,11 @@ static int wm8400_codec_probe(struct snd_soc_codec *codec)
err_regulator: err_regulator:
regulator_bulk_free(ARRAY_SIZE(power), power); regulator_bulk_free(ARRAY_SIZE(power), power);
err:
kfree(priv);
return ret; return ret;
} }
static int wm8400_codec_remove(struct snd_soc_codec *codec) static int wm8400_codec_remove(struct snd_soc_codec *codec)
{ {
struct wm8400_priv *priv = snd_soc_codec_get_drvdata(codec);
u16 reg; u16 reg;
reg = wm8400_read(codec, WM8400_POWER_MANAGEMENT_1); reg = wm8400_read(codec, WM8400_POWER_MANAGEMENT_1);
@ -1441,7 +1439,6 @@ static int wm8400_codec_remove(struct snd_soc_codec *codec)
reg & (~WM8400_CODEC_ENA)); reg & (~WM8400_CODEC_ENA));
regulator_bulk_free(ARRAY_SIZE(power), power); regulator_bulk_free(ARRAY_SIZE(power), power);
kfree(priv);
return 0; return 0;
} }