diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-09-11 04:34:46 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-09-11 04:34:46 -0300 |
commit | 863981e96738983919de841ec669e157e6bdaeb0 (patch) | |
tree | d6d89a12e7eb8017837c057935a2271290907f76 /drivers/spmi/spmi.c | |
parent | 8dec7c70575785729a6a9e6719a955e9c545bcab (diff) |
Linux-libre 4.7.1-gnupck-4.7.1-gnu
Diffstat (limited to 'drivers/spmi/spmi.c')
-rw-r--r-- | drivers/spmi/spmi.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c index 6b3da1bb0..2b9b0941d 100644 --- a/drivers/spmi/spmi.c +++ b/drivers/spmi/spmi.c @@ -25,6 +25,7 @@ #define CREATE_TRACE_POINTS #include <trace/events/spmi.h> +static bool is_registered; static DEFINE_IDA(ctrl_ida); static void spmi_dev_release(struct device *dev) @@ -507,7 +508,7 @@ int spmi_controller_add(struct spmi_controller *ctrl) int ret; /* Can't register until after driver model init */ - if (WARN_ON(!spmi_bus_type.p)) + if (WARN_ON(!is_registered)) return -EAGAIN; ret = device_add(&ctrl->dev); @@ -576,7 +577,14 @@ module_exit(spmi_exit); static int __init spmi_init(void) { - return bus_register(&spmi_bus_type); + int ret; + + ret = bus_register(&spmi_bus_type); + if (ret) + return ret; + + is_registered = true; + return 0; } postcore_initcall(spmi_init); |