From patchwork Thu Sep 20 18:03:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Boyd X-Patchwork-Id: 10608421 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EC73414DA for ; Thu, 20 Sep 2018 18:03:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E60D42E494 for ; Thu, 20 Sep 2018 18:03:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DA7F32E5BF; Thu, 20 Sep 2018 18:03:37 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 69DA22E494 for ; Thu, 20 Sep 2018 18:03:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731592AbeITXsK (ORCPT ); Thu, 20 Sep 2018 19:48:10 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:36982 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732264AbeITXsJ (ORCPT ); Thu, 20 Sep 2018 19:48:09 -0400 Received: by mail-pl1-f196.google.com with SMTP id q5-v6so1235799pli.4 for ; Thu, 20 Sep 2018 11:03:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nMypszJCM6rR4MByZFa6dYUd8t3+l7c4ueckXilTbvg=; b=k21blh7hy8Ce5BlXDiDzSdusVN1AiqzVrcdC1jGG4IAAFjnt8lYAXtmWIkh0B8qhyu VdrAt61irlrJmYsmopGLHIPj93jwwd+bkica3d8V4dl+Mg9qISOQShW/izUZyjkahU46 1ZH0dFP4a28/hoiTGhDlCw/jjDdQbWQ8kZjBo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nMypszJCM6rR4MByZFa6dYUd8t3+l7c4ueckXilTbvg=; b=KdTEZT+8r9JCnP0l1vswe4I8247JHR8+aCrHb2jK6bvqgTKg1vnRAE5Db24+M6gdMw Pt1AQehSzW5SJCi0zkcw3SCxSdd+cVH8+VhM8qETdOPLnQjUNGQ/v9ypR2wCU3qRAcGh qJF0NOjjBO+Q04EFtgKSaUpFHXliUEML1TQ0sWR7J4W6Kto+/C2JHXfUdMwWN5VHX3Nf o9K4EirMToQfro1rcrbdDPhOYoRuhM7c4Ve/230mTviHKLgXAXkfD+8mjpMkB6YXxz0O G71XxnFPda6OwVxNN82J7dUBZ/buBCYqeNrz0ohl+KUN0phaBz+saEFyk0Mlb9rZ+Luo cf8A== X-Gm-Message-State: APzg51A6Wf7BcI2jBla5LZeMBGLP+OEZ0JWvSKXpobLT/8wgE1GOCYkO ZmZyHCMs5DxbuYZ1Li8S5GoOZw== X-Google-Smtp-Source: ANB0VdY59cZA5M0ZMrtIih4RSdE1OjiZe51IkOKItIyYNNGWKgnIhAbEHqoZavaz5c/6kEKvFSGhmg== X-Received: by 2002:a17:902:3fa5:: with SMTP id a34-v6mr40709689pld.244.1537466608974; Thu, 20 Sep 2018 11:03:28 -0700 (PDT) Received: from smtp.gmail.com ([2620:15c:202:201:7e28:b9f3:6afc:5326]) by smtp.gmail.com with ESMTPSA id h124-v6sm2941874pfg.112.2018.09.20.11.03.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Sep 2018 11:03:28 -0700 (PDT) From: Stephen Boyd To: Wolfram Sang Cc: linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, linux-arm-msm@vger.kernel.org, Karthikeyan Ramasubramanian , Sagar Dharia , Girish Mahadevan Subject: [PATCH v2 2/2] i2c: i2c-qcom-geni: Simplify tx/rx functions Date: Thu, 20 Sep 2018 11:03:23 -0700 Message-Id: <20180920180323.217377-3-swboyd@chromium.org> X-Mailer: git-send-email 2.19.0.444.g18242da7ef-goog In-Reply-To: <20180920180323.217377-1-swboyd@chromium.org> References: <20180920180323.217377-1-swboyd@chromium.org> MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP We never really look at the 'ret' local variable in these functions, so let's remove it to make way for shorter and simpler code. Furthermore, we can shorten some lines by adding two local variables for the SE and the message length so that everything fits in 80 columns. And kernel style is to leave the return statement by itself, detached from the rest of the function. Cc: Karthikeyan Ramasubramanian Cc: Sagar Dharia Cc: Girish Mahadevan Signed-off-by: Stephen Boyd Reviewed-by: Douglas Anderson --- drivers/i2c/busses/i2c-qcom-geni.c | 54 ++++++++++++++---------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c index 9f2eb02481d3..1215bb21c9f1 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -368,6 +368,8 @@ static int geni_i2c_rx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg, enum geni_se_xfer_mode mode; unsigned long time_left = XFER_TIMEOUT; void *dma_buf; + struct geni_se *se = &gi2c->se; + size_t len = msg->len; gi2c->cur = msg; mode = GENI_SE_FIFO; @@ -375,19 +377,14 @@ static int geni_i2c_rx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg, if (dma_buf) mode = GENI_SE_DMA; - geni_se_select_mode(&gi2c->se, mode); - writel_relaxed(msg->len, gi2c->se.base + SE_I2C_RX_TRANS_LEN); - geni_se_setup_m_cmd(&gi2c->se, I2C_READ, m_param); - if (mode == GENI_SE_DMA) { - int ret; - - ret = geni_se_rx_dma_prep(&gi2c->se, dma_buf, msg->len, - &rx_dma); - if (ret) { - mode = GENI_SE_FIFO; - geni_se_select_mode(&gi2c->se, mode); - i2c_put_dma_safe_msg_buf(dma_buf, msg, false); - } + geni_se_select_mode(se, mode); + writel_relaxed(len, se->base + SE_I2C_RX_TRANS_LEN); + geni_se_setup_m_cmd(se, I2C_READ, m_param); + + if (dma_buf && geni_se_rx_dma_prep(se, dma_buf, len, &rx_dma)) { + mode = GENI_SE_FIFO; + geni_se_select_mode(se, mode); + i2c_put_dma_safe_msg_buf(dma_buf, msg, false); } time_left = wait_for_completion_timeout(&gi2c->done, XFER_TIMEOUT); @@ -398,9 +395,10 @@ static int geni_i2c_rx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg, if (mode == GENI_SE_DMA) { if (gi2c->err) geni_i2c_rx_fsm_rst(gi2c); - geni_se_rx_dma_unprep(&gi2c->se, rx_dma, msg->len); + geni_se_rx_dma_unprep(se, rx_dma, len); i2c_put_dma_safe_msg_buf(dma_buf, msg, !gi2c->err); } + return gi2c->err; } @@ -411,6 +409,8 @@ static int geni_i2c_tx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg, enum geni_se_xfer_mode mode; unsigned long time_left; void *dma_buf; + struct geni_se *se = &gi2c->se; + size_t len = msg->len; gi2c->cur = msg; mode = GENI_SE_FIFO; @@ -418,23 +418,18 @@ static int geni_i2c_tx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg, if (dma_buf) mode = GENI_SE_DMA; - geni_se_select_mode(&gi2c->se, mode); - writel_relaxed(msg->len, gi2c->se.base + SE_I2C_TX_TRANS_LEN); - geni_se_setup_m_cmd(&gi2c->se, I2C_WRITE, m_param); - if (mode == GENI_SE_DMA) { - int ret; - - ret = geni_se_tx_dma_prep(&gi2c->se, dma_buf, msg->len, - &tx_dma); - if (ret) { - mode = GENI_SE_FIFO; - geni_se_select_mode(&gi2c->se, mode); - i2c_put_dma_safe_msg_buf(dma_buf, msg, false); - } + geni_se_select_mode(se, mode); + writel_relaxed(len, se->base + SE_I2C_TX_TRANS_LEN); + geni_se_setup_m_cmd(se, I2C_WRITE, m_param); + + if (dma_buf && geni_se_tx_dma_prep(se, dma_buf, len, &tx_dma)) { + mode = GENI_SE_FIFO; + geni_se_select_mode(se, mode); + i2c_put_dma_safe_msg_buf(dma_buf, msg, false); } if (mode == GENI_SE_FIFO) /* Get FIFO IRQ */ - writel_relaxed(1, gi2c->se.base + SE_GENI_TX_WATERMARK_REG); + writel_relaxed(1, se->base + SE_GENI_TX_WATERMARK_REG); time_left = wait_for_completion_timeout(&gi2c->done, XFER_TIMEOUT); if (!time_left) @@ -444,9 +439,10 @@ static int geni_i2c_tx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg, if (mode == GENI_SE_DMA) { if (gi2c->err) geni_i2c_tx_fsm_rst(gi2c); - geni_se_tx_dma_unprep(&gi2c->se, tx_dma, msg->len); + geni_se_tx_dma_unprep(se, tx_dma, len); i2c_put_dma_safe_msg_buf(dma_buf, msg, !gi2c->err); } + return gi2c->err; }