Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753358AbdHKOXy (ORCPT ); Fri, 11 Aug 2017 10:23:54 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:48495 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753194AbdHKOXO (ORCPT ); Fri, 11 Aug 2017 10:23:14 -0400 From: Thierry Escande To: Benson Leung , Lee Jones , Jonathan Cameron Cc: Joseph Lo , Gwendal Grignou , Douglas Anderson , Daniel Hung-yu Wu , Vincent Palatin , Wei-Ning Huang , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org Subject: [PATCH v2 5/8] mfd: cros_ec: fail early if we cannot identify the EC Date: Fri, 11 Aug 2017 16:23:02 +0200 Message-Id: <1502461385-27564-6-git-send-email-thierry.escande@collabora.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1502461385-27564-1-git-send-email-thierry.escande@collabora.com> References: <1502461385-27564-1-git-send-email-thierry.escande@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset = "utf-8" Content-Transfert-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1067 Lines: 33 From: Vincent Palatin 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 Signed-off-by: Thierry Escande Acked-by: Benson Leung --- drivers/mfd/cros_ec.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/cros_ec.c b/drivers/mfd/cros_ec.c index b0ca5a4c..c5528ae 100644 --- a/drivers/mfd/cros_ec.c +++ b/drivers/mfd/cros_ec.c @@ -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, -- 2.7.4