mfd: arizona: Disable PM runtime at start of driver removal
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Mon, 2 Jun 2014 08:50:39 +0000 (09:50 +0100)
committerLee Jones <lee.jones@linaro.org>
Wed, 9 Jul 2014 13:58:02 +0000 (14:58 +0100)
We don't want to trigger any PM runtime operations whilst we are tearing
down the driver, as things the suspend and resume callbacks rely on
might already have been destroyed. So disable PM runtime for the device
as the first step arizona_dev_exit.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/arizona-core.c

index cfc191abae4a5d777c07e59fa26fd78ec4340287..9d71ebccc8b02b97623d07a5870aa71059607aae 100644 (file)
@@ -1023,11 +1023,12 @@ EXPORT_SYMBOL_GPL(arizona_dev_init);
 
 int arizona_dev_exit(struct arizona *arizona)
 {
+       pm_runtime_disable(arizona->dev);
+
        mfd_remove_devices(arizona->dev);
        arizona_free_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, arizona);
        arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona);
        arizona_free_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, arizona);
-       pm_runtime_disable(arizona->dev);
        arizona_irq_exit(arizona);
        if (arizona->pdata.reset)
                gpio_set_value_cansleep(arizona->pdata.reset, 0);