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 |