mfd: wm8994-core: Disable regulators before removing them
authorViresh Kumar <viresh.kumar@linaro.org>
Fri, 16 Sep 2016 03:26:59 +0000 (08:56 +0530)
committerLee Jones <lee.jones@linaro.org>
Fri, 25 Nov 2016 11:09:05 +0000 (11:09 +0000)
The order in which resources were freed in wm8994_device_exit() isn't
correct. The regulators are removed before they are disabled.

Fix it by reordering code a bit, which makes it exact opposite of
wm8994_device_init() as well.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/wm8994-core.c

index 7eec619a6023c717803d05e318537e0589f6967e..1e644aa53a2d0e2d152ea5680693f5ff72834f0d 100644 (file)
@@ -604,10 +604,10 @@ err:
 static void wm8994_device_exit(struct wm8994 *wm8994)
 {
        pm_runtime_disable(wm8994->dev);
-       mfd_remove_devices(wm8994->dev);
        wm8994_irq_exit(wm8994);
        regulator_bulk_disable(wm8994->num_supplies,
                               wm8994->supplies);
+       mfd_remove_devices(wm8994->dev);
 }
 
 static const struct of_device_id wm8994_of_match[] = {