diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-08-10 13:48:11 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-08-10 13:48:11 -0400 |
| commit | 2b9bea035a488774b176f14f53160442e8906ad8 (patch) | |
| tree | f0d5474f161371d5b9d3960a86bdb0256e9ee8a0 | |
| parent | 016a9f50e28086f70007729017142dedc84e53d1 (diff) | |
| parent | fb9caeedafe61599371d057696bff3baef01f455 (diff) | |
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
| -rw-r--r-- | drivers/mfd/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/mfd/arizona-core.c | 16 | ||||
| -rw-r--r-- | drivers/platform/chrome/Kconfig | 1 |
3 files changed, 8 insertions, 11 deletions
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index 653815950aa2..3f68dd251ce8 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig | |||
| @@ -115,7 +115,7 @@ config MFD_CROS_EC_I2C | |||
| 115 | 115 | ||
| 116 | config MFD_CROS_EC_SPI | 116 | config MFD_CROS_EC_SPI |
| 117 | tristate "ChromeOS Embedded Controller (SPI)" | 117 | tristate "ChromeOS Embedded Controller (SPI)" |
| 118 | depends on MFD_CROS_EC && CROS_EC_PROTO && SPI && OF | 118 | depends on MFD_CROS_EC && CROS_EC_PROTO && SPI |
| 119 | 119 | ||
| 120 | ---help--- | 120 | ---help--- |
| 121 | If you say Y here, you get support for talking to the ChromeOS EC | 121 | If you say Y here, you get support for talking to the ChromeOS EC |
diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c index bebf58a06a6b..a72ddb295078 100644 --- a/drivers/mfd/arizona-core.c +++ b/drivers/mfd/arizona-core.c | |||
| @@ -651,7 +651,7 @@ static int arizona_runtime_suspend(struct device *dev) | |||
| 651 | 651 | ||
| 652 | arizona->has_fully_powered_off = true; | 652 | arizona->has_fully_powered_off = true; |
| 653 | 653 | ||
| 654 | disable_irq(arizona->irq); | 654 | disable_irq_nosync(arizona->irq); |
| 655 | arizona_enable_reset(arizona); | 655 | arizona_enable_reset(arizona); |
| 656 | regulator_bulk_disable(arizona->num_core_supplies, | 656 | regulator_bulk_disable(arizona->num_core_supplies, |
| 657 | arizona->core_supplies); | 657 | arizona->core_supplies); |
| @@ -1141,10 +1141,6 @@ int arizona_dev_init(struct arizona *arizona) | |||
| 1141 | arizona->pdata.gpio_defaults[i]); | 1141 | arizona->pdata.gpio_defaults[i]); |
| 1142 | } | 1142 | } |
| 1143 | 1143 | ||
| 1144 | pm_runtime_set_autosuspend_delay(arizona->dev, 100); | ||
| 1145 | pm_runtime_use_autosuspend(arizona->dev); | ||
| 1146 | pm_runtime_enable(arizona->dev); | ||
| 1147 | |||
| 1148 | /* Chip default */ | 1144 | /* Chip default */ |
| 1149 | if (!arizona->pdata.clk32k_src) | 1145 | if (!arizona->pdata.clk32k_src) |
| 1150 | arizona->pdata.clk32k_src = ARIZONA_32KZ_MCLK2; | 1146 | arizona->pdata.clk32k_src = ARIZONA_32KZ_MCLK2; |
| @@ -1245,11 +1241,17 @@ int arizona_dev_init(struct arizona *arizona) | |||
| 1245 | arizona->pdata.spk_fmt[i]); | 1241 | arizona->pdata.spk_fmt[i]); |
| 1246 | } | 1242 | } |
| 1247 | 1243 | ||
| 1244 | pm_runtime_set_active(arizona->dev); | ||
| 1245 | pm_runtime_enable(arizona->dev); | ||
| 1246 | |||
| 1248 | /* Set up for interrupts */ | 1247 | /* Set up for interrupts */ |
| 1249 | ret = arizona_irq_init(arizona); | 1248 | ret = arizona_irq_init(arizona); |
| 1250 | if (ret != 0) | 1249 | if (ret != 0) |
| 1251 | goto err_reset; | 1250 | goto err_reset; |
| 1252 | 1251 | ||
| 1252 | pm_runtime_set_autosuspend_delay(arizona->dev, 100); | ||
| 1253 | pm_runtime_use_autosuspend(arizona->dev); | ||
| 1254 | |||
| 1253 | arizona_request_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, "CLKGEN error", | 1255 | arizona_request_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, "CLKGEN error", |
| 1254 | arizona_clkgen_err, arizona); | 1256 | arizona_clkgen_err, arizona); |
| 1255 | arizona_request_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, "Overclocked", | 1257 | arizona_request_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, "Overclocked", |
| @@ -1278,10 +1280,6 @@ int arizona_dev_init(struct arizona *arizona) | |||
| 1278 | goto err_irq; | 1280 | goto err_irq; |
| 1279 | } | 1281 | } |
| 1280 | 1282 | ||
| 1281 | #ifdef CONFIG_PM | ||
| 1282 | regulator_disable(arizona->dcvdd); | ||
| 1283 | #endif | ||
| 1284 | |||
| 1285 | return 0; | 1283 | return 0; |
| 1286 | 1284 | ||
| 1287 | err_irq: | 1285 | err_irq: |
diff --git a/drivers/platform/chrome/Kconfig b/drivers/platform/chrome/Kconfig index cb1329919527..3271cd1abe7c 100644 --- a/drivers/platform/chrome/Kconfig +++ b/drivers/platform/chrome/Kconfig | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | 4 | ||
| 5 | menuconfig CHROME_PLATFORMS | 5 | menuconfig CHROME_PLATFORMS |
| 6 | bool "Platform support for Chrome hardware" | 6 | bool "Platform support for Chrome hardware" |
| 7 | depends on X86 || ARM | ||
| 8 | ---help--- | 7 | ---help--- |
| 9 | Say Y here to get to see options for platform support for | 8 | Say Y here to get to see options for platform support for |
| 10 | various Chromebooks and Chromeboxes. This option alone does | 9 | various Chromebooks and Chromeboxes. This option alone does |
