X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=drivers%2Fspmi%2Fspmi.c;h=2b9b0941d9eb5f82e917978426290a9d39b5c5cd;hb=1fde76f173e4d9aa205432c2ed5eff978d00deee;hp=6b3da1bb0d63676fd9a3f3092a535978c7832709;hpb=12f17211f75531139ea4394f7f7b4f2090f9778a;p=cascardo%2Flinux.git diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c index 6b3da1bb0d63..2b9b0941d9eb 100644 --- a/drivers/spmi/spmi.c +++ b/drivers/spmi/spmi.c @@ -25,6 +25,7 @@ #define CREATE_TRACE_POINTS #include +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);