提交 2b9bea03 编写于 作者: L Linus Torvalds

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
...@@ -115,7 +115,7 @@ config MFD_CROS_EC_I2C ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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 @@ ...@@ -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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册