| From foo@baz Sat Jul 28 10:48:22 CEST 2018 |
| From: Vincent Palatin <vpalatin@chromium.org> |
| Date: Wed, 18 Apr 2018 12:23:58 +0200 |
| Subject: mfd: cros_ec: Fail early if we cannot identify the EC |
| |
| From: Vincent Palatin <vpalatin@chromium.org> |
| |
| [ Upstream commit 0dbbf25561b29ffab5ba6277429760abdf49ceff ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/mfd/cros_ec.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/mfd/cros_ec.c |
| +++ b/drivers/mfd/cros_ec.c |
| @@ -86,7 +86,11 @@ int cros_ec_register(struct cros_ec_devi |
| |
| 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, |