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>
Tue, 29 Nov 2016 08:21:21 +0000 (08:21 +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 1990b2c907324c94cef48dde19c443d4d1049c49..95e6bc55adbbf47b26c7fa8d23280ecb3d43fd6d 100644 (file)
@@ -603,9 +603,9 @@ 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[] = {