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
--- V1->V2: - Added Ack from Charles. --- drivers/mfd/wm8994-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c index 1990b2c90732..95e6bc55adbb 100644 --- a/drivers/mfd/wm8994-core.c +++ b/drivers/mfd/wm8994-core.c @@ -603,9 +603,9 @@ static int wm8994_device_init(struct wm8994 *wm8994, int irq) 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[] = {