|
@@ -651,7 +651,7 @@ static int arizona_runtime_suspend(struct device *dev)
|
|
|
|
|
|
arizona->has_fully_powered_off = true;
|
|
|
|
|
|
- disable_irq(arizona->irq);
|
|
|
+ disable_irq_nosync(arizona->irq);
|
|
|
arizona_enable_reset(arizona);
|
|
|
regulator_bulk_disable(arizona->num_core_supplies,
|
|
|
arizona->core_supplies);
|
|
@@ -1141,10 +1141,6 @@ int arizona_dev_init(struct arizona *arizona)
|
|
|
arizona->pdata.gpio_defaults[i]);
|
|
|
}
|
|
|
|
|
|
- pm_runtime_set_autosuspend_delay(arizona->dev, 100);
|
|
|
- pm_runtime_use_autosuspend(arizona->dev);
|
|
|
- pm_runtime_enable(arizona->dev);
|
|
|
-
|
|
|
/* Chip default */
|
|
|
if (!arizona->pdata.clk32k_src)
|
|
|
arizona->pdata.clk32k_src = ARIZONA_32KZ_MCLK2;
|
|
@@ -1245,11 +1241,17 @@ int arizona_dev_init(struct arizona *arizona)
|
|
|
arizona->pdata.spk_fmt[i]);
|
|
|
}
|
|
|
|
|
|
+ pm_runtime_set_active(arizona->dev);
|
|
|
+ pm_runtime_enable(arizona->dev);
|
|
|
+
|
|
|
/* Set up for interrupts */
|
|
|
ret = arizona_irq_init(arizona);
|
|
|
if (ret != 0)
|
|
|
goto err_reset;
|
|
|
|
|
|
+ pm_runtime_set_autosuspend_delay(arizona->dev, 100);
|
|
|
+ pm_runtime_use_autosuspend(arizona->dev);
|
|
|
+
|
|
|
arizona_request_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, "CLKGEN error",
|
|
|
arizona_clkgen_err, arizona);
|
|
|
arizona_request_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, "Overclocked",
|
|
@@ -1278,10 +1280,6 @@ int arizona_dev_init(struct arizona *arizona)
|
|
|
goto err_irq;
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_PM
|
|
|
- regulator_disable(arizona->dcvdd);
|
|
|
-#endif
|
|
|
-
|
|
|
return 0;
|
|
|
|
|
|
err_irq:
|