[v2,1/2] mfd: wm8994: Fix driver operation if loaded as modules
diff mbox series

Message ID 20200226100802.16384-1-m.szyprowski@samsung.com
State New
Headers show
Series
  • [v2,1/2] mfd: wm8994: Fix driver operation if loaded as modules
Related show

Commit Message

Marek Szyprowski Feb. 26, 2020, 10:08 a.m. UTC
WM8994 chip has built-in regulators, which might be used for chip
operation. They are controlled by a separate wm8994-regulator driver,
which should be loaded before this driver calls regulator_get(), because
that driver also provides consumer-supply mapping for the them. If that
driver is not yet loaded, regulator core substitute them with dummy
regulator, what breaks chip operation, because the built-in regulators are
never enabled. Fix this by annotating this driver with MODULE_SOFTDEP()
"pre" dependency to "wm8994_regulator" module.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
---
v2:
- replaced request_module() call with MODULE_SOFTDEP() annotation
---
 drivers/mfd/wm8994-core.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Charles Keepax Feb. 27, 2020, 1:52 p.m. UTC | #1
On Wed, Feb 26, 2020 at 11:08:01AM +0100, Marek Szyprowski wrote:
> WM8994 chip has built-in regulators, which might be used for chip
> operation. They are controlled by a separate wm8994-regulator driver,
> which should be loaded before this driver calls regulator_get(), because
> that driver also provides consumer-supply mapping for the them. If that
> driver is not yet loaded, regulator core substitute them with dummy
> regulator, what breaks chip operation, because the built-in regulators are
> never enabled. Fix this by annotating this driver with MODULE_SOFTDEP()
> "pre" dependency to "wm8994_regulator" module.
> 
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---

Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Be good to ensure patches@opensource.cirrus.com is CCed on
patches for the old Wolfson CODECs.

Thanks,
Charles

Patch
diff mbox series

diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
index 1e9fe7d92597..737dede4a95c 100644
--- a/drivers/mfd/wm8994-core.c
+++ b/drivers/mfd/wm8994-core.c
@@ -690,3 +690,4 @@  module_i2c_driver(wm8994_i2c_driver);
 MODULE_DESCRIPTION("Core support for the WM8994 audio CODEC");
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Mark Brown <broonie@opensource.wolfsonmicro.com>");
+MODULE_SOFTDEP("pre: wm8994_regulator");