Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp1551888pxb; Thu, 14 Apr 2022 08:32:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyDGkjFgyY9T04O9g/JZu22nTyR3XCtd/pKnogxHFGmUDxrtqqjd/4xxtvLojyQ/bOCFa5B X-Received: by 2002:a63:2214:0:b0:398:ee6c:e5f7 with SMTP id i20-20020a632214000000b00398ee6ce5f7mr2769538pgi.625.1649950320483; Thu, 14 Apr 2022 08:32:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649950320; cv=none; d=google.com; s=arc-20160816; b=JgmY7wVI+Rzu2Vt5X4N0Pg3RIfxCImfNYnGDAYNOO12+6orgPlYUWCnWn22drdk7Eq 7kgFyonluENkWgNcl5ZmRMkX4B4IBoHRPyKAHnN24wO5vLLL7wwVUgFT0ElXZL9+iJMW 5/UeektduKFpXugTDpLtj/VBWf2YQfBB9igBlvVfo4lrbXtvVuFG+H7ZVJKw/EY5yFaZ M/l3KScjoZLJPE2ITae0NTWqqu78l2CmSNnnymw9qxKTLi6pHehhpaJ4PXZJxAMXNgyu 691ctDKvJZvKnal4GDqO8Cciaey6/J/d9rGOqkQarl0RRM/Ob1bbdsvZmrlsi+XG9CI8 ksGg== 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=CU1fcuuDZJU34dQ7XEBvFaI353vscvEi921PsNOla4Y=; b=liKYvrc5ldOQaBtHfgONqs4KF8dsuL2ImdRRk2KgfBeL5RxXA7ZD5m6yNqhvthnaXS wCYWUkWCiYuVtxbRJHIqYd65i3ph4XGdk2j5oL5vkMv06+kfxkj+CdEx/AmHaZfFnTX0 SEUsDyPkW07M5Qsz8DXArprXdEYuj6kmujBSVWJ3UtAqBNGWFsN+tocguwynYJlEcePA Z0YyEPlM2JrJev8xfZBHISBuR/WcAn358ktnFcMsLM3oXHLtx33/Qvp12Hs8H2vcgmCe bLamxR+ko+fSUke/yxQR91taNaHiqw6fU1iJ9PsgVTwXHD9efR9/noikaPa5Q4kdUCGl ysFA== 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:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b10-20020a170902d50a00b001589b650aa3si6366393plg.249.2022.04.14.08.31.44; Thu, 14 Apr 2022 08:32:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233949AbiDMNvx (ORCPT + 99 others); Wed, 13 Apr 2022 09:51:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235393AbiDMNvv (ORCPT ); Wed, 13 Apr 2022 09:51:51 -0400 Received: from andre.telenet-ops.be (andre.telenet-ops.be [IPv6:2a02:1800:120:4::f00:15]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71BF8DF34 for ; Wed, 13 Apr 2022 06:49:27 -0700 (PDT) Received: from ramsan.of.borg ([IPv6:2a02:1810:ac12:ed40:c9b8:20d3:ee2b:1cda]) by andre.telenet-ops.be with bizsmtp id JDpP2700S2t8Arn01DpP2a; Wed, 13 Apr 2022 15:49:25 +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 1nedN4-000Seb-Up; Wed, 13 Apr 2022 15:49:22 +0200 Received: from geert by rox.of.borg with local (Exim 4.93) (envelope-from ) id 1nedN4-00AjDf-Fl; Wed, 13 Apr 2022 15:49:22 +0200 From: Geert Uytterhoeven To: Krzysztof Kozlowski Cc: Wolfram Sang , Sergey Shtylyov , Lad Prabhakar , Andrew Gabbasov , linux-renesas-soc@vger.kernel.org, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven Subject: [PATCH v2] memory: renesas-rpc-if: Simplify single/double data register access Date: Wed, 13 Apr 2022 15:49:21 +0200 Message-Id: X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham 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 Tested-by: Wolfram Sang Reviewed-by: Wolfram Sang --- v2: - Add Tested-by, Reviewed-by, - Remove unneeded pointer post-increments from final dereferences. --- 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..ba9c526833c0f4da 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