diff options
author | Sachin Kamat <sachin.kamat@linaro.org> | 2012-11-26 06:49:46 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-12-01 23:05:30 -0500 |
commit | 6dff9b3b05f21a7b8e20916d521f17a5715d7688 (patch) | |
tree | db0bc487734685236621f96dfda4f09022d873f1 /sound/soc/codecs/wm8993.c | |
parent | 877fa971fb246f8ba9907e3a3b9fb5f00d934230 (diff) |
ASoC: wm8993: Use devm_regmap_init_i2c()
devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.
Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm8993.c')
-rw-r--r-- | sound/soc/codecs/wm8993.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sound/soc/codecs/wm8993.c b/sound/soc/codecs/wm8993.c index c3d31073eeeb..347a359a7c86 100644 --- a/sound/soc/codecs/wm8993.c +++ b/sound/soc/codecs/wm8993.c | |||
@@ -1660,7 +1660,7 @@ static __devinit int wm8993_i2c_probe(struct i2c_client *i2c, | |||
1660 | wm8993->dev = &i2c->dev; | 1660 | wm8993->dev = &i2c->dev; |
1661 | init_completion(&wm8993->fll_lock); | 1661 | init_completion(&wm8993->fll_lock); |
1662 | 1662 | ||
1663 | wm8993->regmap = regmap_init_i2c(i2c, &wm8993_regmap); | 1663 | wm8993->regmap = devm_regmap_init_i2c(i2c, &wm8993_regmap); |
1664 | if (IS_ERR(wm8993->regmap)) { | 1664 | if (IS_ERR(wm8993->regmap)) { |
1665 | ret = PTR_ERR(wm8993->regmap); | 1665 | ret = PTR_ERR(wm8993->regmap); |
1666 | dev_err(&i2c->dev, "Failed to allocate regmap: %d\n", ret); | 1666 | dev_err(&i2c->dev, "Failed to allocate regmap: %d\n", ret); |
@@ -1676,14 +1676,14 @@ static __devinit int wm8993_i2c_probe(struct i2c_client *i2c, | |||
1676 | wm8993->supplies); | 1676 | wm8993->supplies); |
1677 | if (ret != 0) { | 1677 | if (ret != 0) { |
1678 | dev_err(&i2c->dev, "Failed to request supplies: %d\n", ret); | 1678 | dev_err(&i2c->dev, "Failed to request supplies: %d\n", ret); |
1679 | goto err; | 1679 | return ret; |
1680 | } | 1680 | } |
1681 | 1681 | ||
1682 | ret = regulator_bulk_enable(ARRAY_SIZE(wm8993->supplies), | 1682 | ret = regulator_bulk_enable(ARRAY_SIZE(wm8993->supplies), |
1683 | wm8993->supplies); | 1683 | wm8993->supplies); |
1684 | if (ret != 0) { | 1684 | if (ret != 0) { |
1685 | dev_err(&i2c->dev, "Failed to enable supplies: %d\n", ret); | 1685 | dev_err(&i2c->dev, "Failed to enable supplies: %d\n", ret); |
1686 | goto err; | 1686 | return ret; |
1687 | } | 1687 | } |
1688 | 1688 | ||
1689 | ret = regmap_read(wm8993->regmap, WM8993_SOFTWARE_RESET, ®); | 1689 | ret = regmap_read(wm8993->regmap, WM8993_SOFTWARE_RESET, ®); |
@@ -1742,8 +1742,6 @@ err_irq: | |||
1742 | free_irq(i2c->irq, wm8993); | 1742 | free_irq(i2c->irq, wm8993); |
1743 | err_enable: | 1743 | err_enable: |
1744 | regulator_bulk_disable(ARRAY_SIZE(wm8993->supplies), wm8993->supplies); | 1744 | regulator_bulk_disable(ARRAY_SIZE(wm8993->supplies), wm8993->supplies); |
1745 | err: | ||
1746 | regmap_exit(wm8993->regmap); | ||
1747 | return ret; | 1745 | return ret; |
1748 | } | 1746 | } |
1749 | 1747 | ||
@@ -1754,7 +1752,6 @@ static __devexit int wm8993_i2c_remove(struct i2c_client *i2c) | |||
1754 | snd_soc_unregister_codec(&i2c->dev); | 1752 | snd_soc_unregister_codec(&i2c->dev); |
1755 | if (i2c->irq) | 1753 | if (i2c->irq) |
1756 | free_irq(i2c->irq, wm8993); | 1754 | free_irq(i2c->irq, wm8993); |
1757 | regmap_exit(wm8993->regmap); | ||
1758 | regulator_bulk_disable(ARRAY_SIZE(wm8993->supplies), wm8993->supplies); | 1755 | regulator_bulk_disable(ARRAY_SIZE(wm8993->supplies), wm8993->supplies); |
1759 | 1756 | ||
1760 | return 0; | 1757 | return 0; |