From patchwork Sat Mar 11 18:24:18 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 737720 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 3vgXbs29Pxz9s2s for ; Sun, 12 Mar 2017 05:24:57 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="pr/WpzT+"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933134AbdCKSY4 (ORCPT ); Sat, 11 Mar 2017 13:24:56 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:35403 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932743AbdCKSYz (ORCPT ); Sat, 11 Mar 2017 13:24:55 -0500 Received: by mail-wr0-f194.google.com with SMTP id u108so15281724wrb.2 for ; Sat, 11 Mar 2017 10:24:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:references:cc:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=MVWZKaNwYL5Z4JfCFvtp5phG9Y1GD4wnppZu57fjz0A=; b=pr/WpzT+d9PmCI6ECD0Ma2AXNmIvEJoAmagFLqsJLpxZV3EdZZcJbdkX7ZGp6E29Zl 3uYlB8EqKMbfUyo7IPn7M1f8mwEfqNo27HLLeVlRHezHSjP5FtsltP1SX3cwY1j5nzTe 61eOIqIRXAdBEPYrtVx+g6JX4qxbCMcNsc1cXzkJJbj3XtmcfSLlQP3W4ofiF2z3U4UF J64B/3QD7nn043lfPCrjwVLClIA+03DRDV0EA0Owzj3Yw+q0z1aabVeelYrzRkLJXPCx Jye8A+Q6Fx1+fXl2WW8pcz8pPE2oxVUD32ePPjM5zOWPC11f4XXTjMi9TpLmt8rpsfLE FhSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:references:cc:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=MVWZKaNwYL5Z4JfCFvtp5phG9Y1GD4wnppZu57fjz0A=; b=ZjFbpoLDbP9GbSMiUDqq6DItiSqtKmD3NAAFEyTaGmruCZhO+Jv1QE9d9sa4Vmmnpw VCcNGIIsXMEbs3w3PEtV3/T54T3cG9E5HvM7hLogY9dXCUI8KHdxeN5JOCZVjzMg4wul 8Aw59KuR7DrsODHISQCBbFPTZR1moUc4PA6syGepUGQmksrriEo1EI5p1DFX8M0gKPpR Z+NwdkIpCn20YpbeaR05nV/jghdpBTpPxaBULlJmWNk+ReI3vlVvMWnQZDdA7pr4GcKF mkZBSMLnJu4Zy8gWPtp89YUXo6IKACr3n31v/z41cO866m6TycbT7Q/BRe2neGJyJYho Br+A== X-Gm-Message-State: AMke39nNeFjkWt/sb3w0qkVJDHNt3gkGHeKzsPiOEWKfemcQdZTMgnFSmKtoF5jP8/Un6A== X-Received: by 10.223.132.163 with SMTP id 32mr21485374wrg.147.1489256694037; Sat, 11 Mar 2017 10:24:54 -0800 (PST) Received: from ?IPv6:2003:c6:ebdc:4000:3419:a191:120:8b2e? (p200300C6EBDC40003419A19101208B2E.dip0.t-ipconnect.de. [2003:c6:ebdc:4000:3419:a191:120:8b2e]) by smtp.googlemail.com with ESMTPSA id x18sm4503207wmd.14.2017.03.11.10.24.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 11 Mar 2017 10:24:53 -0800 (PST) From: Heiner Kallweit Subject: [PATCH v3 09/10] i2c: meson: remove meson_i2c_write_tokens To: Wolfram Sang , Jerome Brunet References: Cc: "linux-i2c@vger.kernel.org" , linux-amlogic@lists.infradead.org Message-ID: <5f2c80cc-dfe8-cfe2-90a0-8f5c63522f2a@gmail.com> Date: Sat, 11 Mar 2017 19:24:18 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org meson_i2c_write_tokens is always called directly after meson_i2c_prepare_xfer (and only then). So we can simplify the code by removing meson_i2c_write_tokens and moving the two statements of meson_i2c_write_tokens to the end of meson_i2c_prepare_xfer. Signed-off-by: Heiner Kallweit --- v2: - rebased v3: - no changes --- drivers/i2c/busses/i2c-meson.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/i2c/busses/i2c-meson.c b/drivers/i2c/busses/i2c-meson.c index 6c873ed8..23f25efa 100644 --- a/drivers/i2c/busses/i2c-meson.c +++ b/drivers/i2c/busses/i2c-meson.c @@ -123,12 +123,6 @@ static void meson_i2c_add_token(struct meson_i2c *i2c, int token) i2c->num_tokens++; } -static void meson_i2c_write_tokens(struct meson_i2c *i2c) -{ - writel(i2c->tokens[0], i2c->regs + REG_TOK_LIST0); - writel(i2c->tokens[1], i2c->regs + REG_TOK_LIST1); -} - static void meson_i2c_set_clk_div(struct meson_i2c *i2c, unsigned int freq) { unsigned long clk_rate = clk_get_rate(i2c->clk); @@ -207,6 +201,9 @@ static void meson_i2c_prepare_xfer(struct meson_i2c *i2c) if (i2c->last && i2c->pos + i2c->count >= i2c->msg->len) meson_i2c_add_token(i2c, TOKEN_STOP); + + writel(i2c->tokens[0], i2c->regs + REG_TOK_LIST0); + writel(i2c->tokens[1], i2c->regs + REG_TOK_LIST1); } static irqreturn_t meson_i2c_irq(int irqno, void *dev_id) @@ -272,12 +269,10 @@ static irqreturn_t meson_i2c_irq(int irqno, void *dev_id) } out: - if (i2c->state != STATE_IDLE) { + if (i2c->state != STATE_IDLE) /* Restart the processing */ - meson_i2c_write_tokens(i2c); meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_START, REG_CTRL_START); - } spin_unlock(&i2c->lock); @@ -318,7 +313,6 @@ static int meson_i2c_xfer_msg(struct meson_i2c *i2c, struct i2c_msg *msg, i2c->state = (msg->flags & I2C_M_RD) ? STATE_READ : STATE_WRITE; meson_i2c_prepare_xfer(i2c); - meson_i2c_write_tokens(i2c); reinit_completion(&i2c->done); /* Start the transfer */