mfd: cros_ec: Fail early if we cannot identify the EC
authorVincent Palatin <vpalatin@chromium.org>
Wed, 18 Apr 2018 10:23:58 +0000 (12:23 +0200)
committerLee Jones <lee.jones@linaro.org>
Tue, 29 May 2018 08:09:35 +0000 (09:09 +0100)
If we cannot communicate with the EC chip to detect the protocol version
and its features, it's very likely useless to continue. Else we will
commit all kind of uninformed mistakes (using the wrong protocol, the
wrong buffer size, mixing the EC with other chips).

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Acked-by: Benson Leung <bleung@chromium.org>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/cros_ec.c

index c221163d5b9ea8e64d60ee1f4aa8a83d31539ef9..1e527697077868b41a6318e610ab52a74c4d85a4 100644 (file)
@@ -112,7 +112,11 @@ int cros_ec_register(struct cros_ec_device *ec_dev)
 
        mutex_init(&ec_dev->lock);
 
-       cros_ec_query_all(ec_dev);
+       err = cros_ec_query_all(ec_dev);
+       if (err) {
+               dev_err(dev, "Cannot identify the EC: error %d\n", err);
+               return err;
+       }
 
        if (ec_dev->irq) {
                err = request_threaded_irq(ec_dev->irq, NULL, ec_irq_thread,