mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 00:56:49 +07:00
ASoC: wm8804: Use new devres regulator_register_notifier
This is more idiomatic and also fixes an issue where the notifiers were being leaked if probe failed. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
5142442d75
commit
0be9653a02
@ -601,8 +601,10 @@ int wm8804_probe(struct device *dev, struct regmap *regmap)
|
|||||||
|
|
||||||
/* This should really be moved into the regulator core */
|
/* This should really be moved into the regulator core */
|
||||||
for (i = 0; i < ARRAY_SIZE(wm8804->supplies); i++) {
|
for (i = 0; i < ARRAY_SIZE(wm8804->supplies); i++) {
|
||||||
ret = regulator_register_notifier(wm8804->supplies[i].consumer,
|
struct regulator *regulator = wm8804->supplies[i].consumer;
|
||||||
&wm8804->disable_nb[i]);
|
|
||||||
|
ret = devm_regulator_register_notifier(regulator,
|
||||||
|
&wm8804->disable_nb[i]);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
dev_err(dev,
|
dev_err(dev,
|
||||||
"Failed to register regulator notifier: %d\n",
|
"Failed to register regulator notifier: %d\n",
|
||||||
@ -662,15 +664,6 @@ EXPORT_SYMBOL_GPL(wm8804_probe);
|
|||||||
|
|
||||||
void wm8804_remove(struct device *dev)
|
void wm8804_remove(struct device *dev)
|
||||||
{
|
{
|
||||||
struct wm8804_priv *wm8804;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
wm8804 = dev_get_drvdata(dev);
|
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(wm8804->supplies); ++i)
|
|
||||||
regulator_unregister_notifier(wm8804->supplies[i].consumer,
|
|
||||||
&wm8804->disable_nb[i]);
|
|
||||||
|
|
||||||
snd_soc_unregister_codec(dev);
|
snd_soc_unregister_codec(dev);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(wm8804_remove);
|
EXPORT_SYMBOL_GPL(wm8804_remove);
|
||||||
|
Loading…
Reference in New Issue
Block a user