Skip to content

Commit 2b9bea0

Browse files
committed
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
2 parents 016a9f5 + fb9caee commit 2b9bea0

File tree

3 files changed

+8
-11
lines changed

3 files changed

+8
-11
lines changed

drivers/mfd/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ config MFD_CROS_EC_I2C
115115

116116
config MFD_CROS_EC_SPI
117117
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
119119

120120
---help---
121121
If you say Y here, you get support for talking to the ChromeOS EC

drivers/mfd/arizona-core.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,7 @@ static int arizona_runtime_suspend(struct device *dev)
651651

652652
arizona->has_fully_powered_off = true;
653653

654-
disable_irq(arizona->irq);
654+
disable_irq_nosync(arizona->irq);
655655
arizona_enable_reset(arizona);
656656
regulator_bulk_disable(arizona->num_core_supplies,
657657
arizona->core_supplies);
@@ -1141,10 +1141,6 @@ int arizona_dev_init(struct arizona *arizona)
11411141
arizona->pdata.gpio_defaults[i]);
11421142
}
11431143

1144-
pm_runtime_set_autosuspend_delay(arizona->dev, 100);
1145-
pm_runtime_use_autosuspend(arizona->dev);
1146-
pm_runtime_enable(arizona->dev);
1147-
11481144
/* Chip default */
11491145
if (!arizona->pdata.clk32k_src)
11501146
arizona->pdata.clk32k_src = ARIZONA_32KZ_MCLK2;
@@ -1245,11 +1241,17 @@ int arizona_dev_init(struct arizona *arizona)
12451241
arizona->pdata.spk_fmt[i]);
12461242
}
12471243

1244+
pm_runtime_set_active(arizona->dev);
1245+
pm_runtime_enable(arizona->dev);
1246+
12481247
/* Set up for interrupts */
12491248
ret = arizona_irq_init(arizona);
12501249
if (ret != 0)
12511250
goto err_reset;
12521251

1252+
pm_runtime_set_autosuspend_delay(arizona->dev, 100);
1253+
pm_runtime_use_autosuspend(arizona->dev);
1254+
12531255
arizona_request_irq(arizona, ARIZONA_IRQ_CLKGEN_ERR, "CLKGEN error",
12541256
arizona_clkgen_err, arizona);
12551257
arizona_request_irq(arizona, ARIZONA_IRQ_OVERCLOCKED, "Overclocked",
@@ -1278,10 +1280,6 @@ int arizona_dev_init(struct arizona *arizona)
12781280
goto err_irq;
12791281
}
12801282

1281-
#ifdef CONFIG_PM
1282-
regulator_disable(arizona->dcvdd);
1283-
#endif
1284-
12851283
return 0;
12861284

12871285
err_irq:

drivers/platform/chrome/Kconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
menuconfig CHROME_PLATFORMS
66
bool "Platform support for Chrome hardware"
7-
depends on X86 || ARM
87
---help---
98
Say Y here to get to see options for platform support for
109
various Chromebooks and Chromeboxes. This option alone does

0 commit comments

Comments
 (0)