From patchwork Fri Apr 19 11:43:24 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hendrik Lippek X-Patchwork-Id: 237924 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 9A9262C01E0 for ; Fri, 19 Apr 2013 21:43:29 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S968126Ab3DSLn2 (ORCPT ); Fri, 19 Apr 2013 07:43:28 -0400 Received: from moutng.kundenserver.de ([212.227.126.186]:52885 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S968123Ab3DSLn2 (ORCPT ); Fri, 19 Apr 2013 07:43:28 -0400 Received: from mailbox.adnet.avionic-design.de (mailbox.avionic-design.de [109.75.18.3]) by mrelayeu.kundenserver.de (node=mrbap3) with ESMTP (Nemesis) id 0MN4ps-1UQxrL0K3E-006cD6; Fri, 19 Apr 2013 13:43:27 +0200 Received: from localhost (localhost [127.0.0.1]) by mailbox.adnet.avionic-design.de (Postfix) with ESMTP id 8B0C72A28283; Fri, 19 Apr 2013 13:43:26 +0200 (CEST) X-Virus-Scanned: amavisd-new at avionic-design.de Received: from mailbox.adnet.avionic-design.de ([127.0.0.1]) by localhost (mailbox.avionic-design.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2y-lj7brDpWO; Fri, 19 Apr 2013 13:43:25 +0200 (CEST) Received: from mailman.adnet.avionic-design.de (mailman.adnet.avionic-design.de [172.20.31.172]) by mailbox.adnet.avionic-design.de (Postfix) with ESMTP id 89E822A2803C; Fri, 19 Apr 2013 13:43:25 +0200 (CEST) Received: from avionic-0093.mockup.avionic-design.de (avionic-0093.adnet.avionic-design.de [172.20.30.239]) by mailman.adnet.avionic-design.de (Postfix) with ESMTP id 52C55100228; Fri, 19 Apr 2013 13:43:23 +0200 (CEST) From: Hendrik Lippek To: linux-tegra@vger.kernel.org Cc: Hendrik Lippek Subject: [PATCH] i2c: tegra: Retry transfer when no_ack status is detected Date: Fri, 19 Apr 2013 13:43:24 +0200 Message-Id: <1366371804-7901-1-git-send-email-hendrik.lippek@avionic-design.de> X-Mailer: git-send-email 1.7.10.4 X-Provags-ID: V02:K0:zTovZHimyyisV3Z3bb/FvGzo3UzEDPjA1gN2ISme3k2 dLmAgsgM2JTBt+q/n3I8YvenTE5cqDUnzjQKaXicE+EpWdF26p rupE2ANdWKVAHpheOCZo+deuLskun7lxlRaUPkXmdwwPmxzm5m j8Gv8t8KN6wuF3wlp8grk8VvBGd09hY7kbwjb/XU4qBsN1l3eS mfsaQZyAikPJxCsceG0+ndJBJcOnzLlzYRs2yNK81hht6IQJzk zxI3ttxdnAgKHqGWmUuBWUSUHryKGLV1dDjbuYL08rMMv8Cbp0 pp4lpark9PKwcYYLKmrZ2i7L6WR6NugE5XEAGpYUCqyykrHKgb ZnOtciF3snZzFO141jL/+HIAJc2Lb7p+/l/aCyAzaEiECcyS3j hWQPnMN5uXbbnrqe5Aj9sa07XHUub0yR8ajsf3TT3fDVC5Aorj 9bLAx Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org In such conditions return -EAGAIN from driver. This will cause the i2c-core to retry the transmission as per the retry count and time-out specified by the platform data of the adapter. This fix is adapted from chromeos commit: 16d971dd7ee9571746ff1d352fa3c0092a36478d Signed-off-by: Hendrik Lippek --- drivers/i2c/busses/i2c-tegra.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index c1bd68d..81a6170 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -756,7 +756,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_bus *i2c_bus, if (i2c_dev->msg_err == I2C_ERR_NO_ACK) { if (msg->flags & I2C_M_IGNORE_NAK) return 0; - return -EREMOTEIO; + return -EAGAIN; } if (i2c_dev->msg_err & I2C_ERR_UNEXPECTED_STATUS)