Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp770722pxb; Tue, 12 Apr 2022 13:01:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwfSq7ho22QxIDtBIoxtMpbNh71MyTFv3imgzETF2Pn1/JgsevvQ5GuiBG4DWwjccQR/YPw X-Received: by 2002:a63:5710:0:b0:399:365e:5dde with SMTP id l16-20020a635710000000b00399365e5ddemr32981535pgb.192.1649793713017; Tue, 12 Apr 2022 13:01:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649793713; cv=none; d=google.com; s=arc-20160816; b=N9Wr4K31hQTVBnSd8SHYJDSkmTp4q9RG5xAipL3O7eHJ0ziey6gOJ7Ii6wpeo5/jKn 90KkuPl17NxgjbNfNEwGKVgPG6EgDlnc7vcogMopl04bnQ1O3DvH0J3Lwwtc2Q1di8kI 3K+FbC5TOQgyRenGtsdVbTmfbG5t1o2lasepWWbuq2wbOenUGwiI/oh2l1u3Eno9DF8k mBmmBZCB6jFjlKDDg9ewwN2ohtSEz5kd6PDQ6/RLdbZkovURWNqFjeAAIC7gyKXp/Zs/ 0Ooh/G6F+cYbhEymThh0dC2y4+Wz62ACHfJ9UxjWdWgCF3oKFzvI0O4W4VuEKCrHXpSj fgGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=FuyQN4ED8m+lovuKT37PWPdNPyK8vTPXRo7IpxvhHlg=; b=Z6ZIqKJpQgrpRgXzbSP9ufGSRbIjQupv7TGZUTxSppcP5NGGnR7UEAAoaaGy4miCsk nqBM7E/a5hMYvtuMpMwtTcGkEeOx+Q+5NfDpShTOshKfBgXXPHmF3bFzj6kRE5d9CNW0 2QPxE5zGCamnHgfvz10dODOepa05vbtWkd/yO66KkVl/c/nbjMQ4ZBrL22E2tJzjy++s etKudaK+pVkVsuSHyCUKm9Z1/IyHwCEISUahmMOpRkZzslMKyGk8hxe9Y+NfI3v/C3d9 QMJiBs1Nshd7v1JeCLf4f5d5lAq0XJ8ORByTbA+b9fLjWt3nvxyBZoz0SHbPFzQfGBL9 UZLg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id i8-20020a170902c94800b00156a95ac6efsi2156006pla.611.2022.04.12.13.01.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 13:01:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id BA2F67C17A; Tue, 12 Apr 2022 12:53:35 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346271AbiDKM55 (ORCPT + 99 others); Mon, 11 Apr 2022 08:57:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346330AbiDKM5s (ORCPT ); Mon, 11 Apr 2022 08:57:48 -0400 Received: from baptiste.telenet-ops.be (baptiste.telenet-ops.be [IPv6:2a02:1800:120:4::f00:13]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E671228 for ; Mon, 11 Apr 2022 05:55:34 -0700 (PDT) Received: from ramsan.of.borg ([IPv6:2a02:1810:ac12:ed40:b509:6862:2557:437a]) by baptiste.telenet-ops.be with bizsmtp id HQvX2700U1G7NMJ01QvXyl; Mon, 11 Apr 2022 14:55:32 +0200 Received: from rox.of.borg ([192.168.97.57]) by ramsan.of.borg with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.93) (envelope-from ) id 1ndtZr-000ARl-6C; Mon, 11 Apr 2022 14:55:31 +0200 Received: from geert by rox.of.borg with local (Exim 4.93) (envelope-from ) id 1ndtZq-009JJB-OB; Mon, 11 Apr 2022 14:55:30 +0200 From: Geert Uytterhoeven To: Krzysztof Kozlowski Cc: Wolfram Sang , Sergey Shtylyov , Duc Nguyen , Lad Prabhakar , Andrew Gabbasov , linux-renesas-soc@vger.kernel.org, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven Subject: [PATCH] memory: renesas-rpc-if: Simplify single/double data register access Date: Mon, 11 Apr 2022 14:55:29 +0200 Message-Id: <19358863deae03b1b26f473e878305a1c6e40d19.1649681638.git.geert+renesas@glider.be> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org For manual write and read, factor out the common access to the first data register by keeping track of the current data pointer. Signed-off-by: Geert Uytterhoeven --- drivers/memory/renesas-rpc-if.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/drivers/memory/renesas-rpc-if.c b/drivers/memory/renesas-rpc-if.c index 019a0822bde0e413..fb2a507ca2badc70 100644 --- a/drivers/memory/renesas-rpc-if.c +++ b/drivers/memory/renesas-rpc-if.c @@ -488,7 +488,7 @@ int rpcif_manual_xfer(struct rpcif *rpc) case RPCIF_DATA_OUT: while (pos < rpc->xferlen) { u32 bytes_left = rpc->xferlen - pos; - u32 nbytes, data[2]; + u32 nbytes, data[2], *p = data; smcr = rpc->smcr | RPCIF_SMCR_SPIE; @@ -502,15 +502,9 @@ int rpcif_manual_xfer(struct rpcif *rpc) rpc->xfer_size = nbytes; memcpy(data, rpc->buffer + pos, nbytes); - if (nbytes == 8) { - regmap_write(rpc->regmap, RPCIF_SMWDR1, - data[0]); - regmap_write(rpc->regmap, RPCIF_SMWDR0, - data[1]); - } else { - regmap_write(rpc->regmap, RPCIF_SMWDR0, - data[0]); - } + if (nbytes == 8) + regmap_write(rpc->regmap, RPCIF_SMWDR1, *p++); + regmap_write(rpc->regmap, RPCIF_SMWDR0, *p++); regmap_write(rpc->regmap, RPCIF_SMCR, smcr); ret = wait_msg_xfer_end(rpc); @@ -552,7 +546,7 @@ int rpcif_manual_xfer(struct rpcif *rpc) } while (pos < rpc->xferlen) { u32 bytes_left = rpc->xferlen - pos; - u32 nbytes, data[2]; + u32 nbytes, data[2], *p = data; /* nbytes may only be 1, 2, 4, or 8 */ nbytes = bytes_left >= max ? max : (1 << ilog2(bytes_left)); @@ -569,15 +563,9 @@ int rpcif_manual_xfer(struct rpcif *rpc) if (ret) goto err_out; - if (nbytes == 8) { - regmap_read(rpc->regmap, RPCIF_SMRDR1, - &data[0]); - regmap_read(rpc->regmap, RPCIF_SMRDR0, - &data[1]); - } else { - regmap_read(rpc->regmap, RPCIF_SMRDR0, - &data[0]); - } + if (nbytes == 8) + regmap_read(rpc->regmap, RPCIF_SMRDR1, p++); + regmap_read(rpc->regmap, RPCIF_SMRDR0, p++); memcpy(rpc->buffer + pos, data, nbytes); pos += nbytes; -- 2.25.1