- Fix dependency issues on ChromeOS platforms
- Fix runtime PM issues on Arizona - Fix IRQ/Suspend race on Arizona -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJVyMu3AAoJEFGvii+H/Hdhvp4QAIBWKyet/MbWQY5rptvKZmTV zQeTjQb6Qyr/hUJQ1Ptedu/Df5eX8L4HVVLuQDTTMjVMd+4KSAD18PdqrjMsQ7U3 fTfkYs4w4o71aSg3yKVQ8Y+OekwmumVPWOTlb2PSFwEciEhBS1Fgl0BIOWy3Or3g rEG19B0/rlL2CE448C9ENqtUcEmt4MylyyoDFUz/27zLY74Jw7trHpXBY9d1tXhG BJD9qQNDdO1o5zBvvVQ8ETr+QK60GahayuwhXtnbJbvL46wGrxhOALwS9UtyhF/w XgEvZkX7Ns6uZrZkLhz251GNPxqE7CEe2HZ2x8EUj8TxbIXA/QbNm4sid6xe74IQ YGRTrVql5By+LYemEqrOIw2T4i+7HI7hOf+LI6kVWvn49/zr6v7Vk2deSZ+aIcEs 9rUTa7upIoLA5msDgk1SILdxKjStkgbz/BDUdAH8hbIJe8hzk29Kr2A9/D1QwIif k41+KWDaobUFiKLUQUavPdGTVus05kolsmgikmlg7lB3WSB496uhsQ9DxddH7Vqo WoJ4BHXn4O++uSAuGe8MQGBYviK32pEpSc5k+U1dauIqNmrRy1W7Tt5DsKtNNWDn F64KVNNLfbEhHp9Tgnd+7axvhuNpll6FaSGEvFC+TsA4Xdvk692k5HmDA2L4/Dyx OCHLOve/vkNqPi8mmD5K =/Rnq -----END PGP SIGNATURE----- Merge tag 'mfd-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD fixes from Lee Jones: - fix dependency issues on ChromeOS platforms - fix runtime PM issues on Arizona - fix IRQ/suspend race on Arizona * tag 'mfd-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: mfd: Remove MFD_CROS_EC_SPI depends on OF platform/chrome: Don't make CHROME_PLATFORMS depends on X86 || ARM mfd: arizona: Fix initialisation of the PM runtime mfd: arizona: Fix race between runtime suspend and IRQs
This commit is contained in:
Коммит
2b9bea035a
|
@ -115,7 +115,7 @@ config MFD_CROS_EC_I2C
|
||||||
|
|
||||||
config MFD_CROS_EC_SPI
|
config MFD_CROS_EC_SPI
|
||||||
tristate "ChromeOS Embedded Controller (SPI)"
|
tristate "ChromeOS Embedded Controller (SPI)"
|
||||||
depends on MFD_CROS_EC && CROS_EC_PROTO && SPI && OF
|
depends on MFD_CROS_EC && CROS_EC_PROTO && SPI
|
||||||
|
|
||||||
---help---
|
---help---
|
||||||
If you say Y here, you get support for talking to the ChromeOS EC
|
If you say Y here, you get support for talking to the ChromeOS EC
|
||||||
|
|
|
@ -651,7 +651,7 @@ static int arizona_runtime_suspend(struct device *dev)
|
||||||
|
|
||||||
arizona->has_fully_powered_off = true;
|
arizona->has_fully_powered_off = true;
|
||||||
|
|
||||||
disable_irq(arizona->irq);
|
disable_irq_nosync(arizona->irq);
|
||||||
arizona_enable_reset(arizona);
|
arizona_enable_reset(arizona);
|
||||||
regulator_bulk_disable(arizona->num_core_supplies,
|
regulator_bulk_disable(arizona->num_core_supplies,
|
||||||
arizona->core_supplies);
|
arizona->core_supplies);
|
||||||
|
@ -1141,10 +1141,6 @@ int arizona_dev_init(struct arizona *arizona)
|
||||||
arizona->pdata.gpio_defaults[i]);
|
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 */
|
/* Chip default */
|
||||||
if (!arizona->pdata.clk32k_src)
|
if (!arizona->pdata.clk32k_src)
|
||||||
arizona->pdata.clk32k_src = ARIZONA_32KZ_MCLK2;
|
arizona->pdata.clk32k_src = ARIZONA_32KZ_MCLK2;
|
||||||
|
@ -1245,11 +1241,17 @@ int arizona_dev_init(struct arizona *arizona)
|
||||||
arizona->pdata.spk_fmt[i]);
|
arizona->pdata.spk_fmt[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pm_runtime_set_active(arizona->dev);
|
||||||
|
pm_runtime_enable(arizona->dev);
|
||||||
|
|
||||||
/* Set up for interrupts */
|
/* Set up for interrupts */
|
||||||
ret = arizona_irq_init(arizona);
|
ret = arizona_irq_init(arizona);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
goto err_reset;
|
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_request_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, "CLKGEN error",
|
||||||
arizona_clkgen_err, arizona);
|
arizona_clkgen_err, arizona);
|
||||||
arizona_request_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, "Overclocked",
|
arizona_request_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, "Overclocked",
|
||||||
|
@ -1278,10 +1280,6 @@ int arizona_dev_init(struct arizona *arizona)
|
||||||
goto err_irq;
|
goto err_irq;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
|
||||||
regulator_disable(arizona->dcvdd);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_irq:
|
err_irq:
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
menuconfig CHROME_PLATFORMS
|
menuconfig CHROME_PLATFORMS
|
||||||
bool "Platform support for Chrome hardware"
|
bool "Platform support for Chrome hardware"
|
||||||
depends on X86 || ARM
|
|
||||||
---help---
|
---help---
|
||||||
Say Y here to get to see options for platform support for
|
Say Y here to get to see options for platform support for
|
||||||
various Chromebooks and Chromeboxes. This option alone does
|
various Chromebooks and Chromeboxes. This option alone does
|
||||||
|
|
Загрузка…
Ссылка в новой задаче