mfd: arizona: Disable PM runtime at start of driver removal
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>
This commit is contained in:
parent
627918ed12
commit
b804020ada
|
@ -1023,11 +1023,12 @@ EXPORT_SYMBOL_GPL(arizona_dev_init);
|
||||||
|
|
||||||
int arizona_dev_exit(struct arizona *arizona)
|
int arizona_dev_exit(struct arizona *arizona)
|
||||||
{
|
{
|
||||||
|
pm_runtime_disable(arizona->dev);
|
||||||
|
|
||||||
mfd_remove_devices(arizona->dev);
|
mfd_remove_devices(arizona->dev);
|
||||||
arizona_free_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, arizona);
|
arizona_free_irq(arizona, ARIZONA_IRQ_UNDERCLOCKED, arizona);
|
||||||
arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona);
|
arizona_free_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, arizona);
|
||||||
arizona_free_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, arizona);
|
arizona_free_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, arizona);
|
||||||
pm_runtime_disable(arizona->dev);
|
|
||||||
arizona_irq_exit(arizona);
|
arizona_irq_exit(arizona);
|
||||||
if (arizona->pdata.reset)
|
if (arizona->pdata.reset)
|
||||||
gpio_set_value_cansleep(arizona->pdata.reset, 0);
|
gpio_set_value_cansleep(arizona->pdata.reset, 0);
|
||||||
|
|
Loading…
Reference in New Issue