From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80B3EC433E9 for ; Fri, 5 Mar 2021 10:59:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4459465017 for ; Fri, 5 Mar 2021 10:59:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229493AbhCEK7A (ORCPT ); Fri, 5 Mar 2021 05:59:00 -0500 Received: from 4.mo173.mail-out.ovh.net ([46.105.34.219]:48214 "EHLO 4.mo173.mail-out.ovh.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229563AbhCEK60 (ORCPT ); Fri, 5 Mar 2021 05:58:26 -0500 X-Greylist: delayed 2018 seconds by postgrey-1.27 at vger.kernel.org; Fri, 05 Mar 2021 05:58:26 EST Received: from player787.ha.ovh.net (unknown [10.110.103.133]) by mo173.mail-out.ovh.net (Postfix) with ESMTP id 6BE501605C7 for ; Fri, 5 Mar 2021 11:39:47 +0100 (CET) Received: from milecki.pl (ip-194-187-74-233.konfederacka.maverick.com.pl [194.187.74.233]) (Authenticated sender: rafal@milecki.pl) by player787.ha.ovh.net (Postfix) with ESMTPSA id 46D2E1BE6FC32; Fri, 5 Mar 2021 10:39:37 +0000 (UTC) Authentication-Results: garm.ovh; auth=pass (GARM-97G002147fd398-b58b-41e1-ab1a-00ab95efaa5d, 4F7D11A3904BD8E553EC742B87CBB6774FEDAA0F) smtp.auth=rafal@milecki.pl X-OVh-ClientIp: 194.187.74.233 Subject: Re: [PATCH 2/2] nvmem: iomap: new driver exposing NVMEM accessible using I/O mapping To: Srinivas Kandagatla , =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , Rob Herring Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, Florian Fainelli , Vivek Unune , bcm-kernel-feedback-list@broadcom.com, linux-kernel@vger.kernel.org References: <20210304144132.24098-1-zajec5@gmail.com> <20210304144132.24098-2-zajec5@gmail.com> <047bced8-6c20-4a0a-c7ea-e0ad83318461@linaro.org> <93708a21-3444-f68e-c834-a4f769a0acba@milecki.pl> <35e498b6-3b2c-d154-db00-d755af339b60@linaro.org> From: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= Message-ID: Date: Fri, 5 Mar 2021 11:39:36 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: <35e498b6-3b2c-d154-db00-d755af339b60@linaro.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Ovh-Tracer-Id: 752945565747678743 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeduledruddtiedgudekucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepuffvfhfhkffffgggjggtgfesthekredttdefjeenucfhrhhomheptfgrfhgrlhcuofhilhgvtghkihcuoehrrghfrghlsehmihhlvggtkhhirdhplheqnecuggftrfgrthhtvghrnhepkeduheejheffudefhffghfegjeejleetkeevueelveegkefhhfffieehleelgfevnecukfhppedtrddtrddtrddtpdduleegrddukeejrdejgedrvdeffeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdqohhuthdphhgvlhhopehplhgrhigvrhejkeejrdhhrgdrohhvhhdrnhgvthdpihhnvghtpedtrddtrddtrddtpdhmrghilhhfrhhomheprhgrfhgrlhesmhhilhgvtghkihdrphhlpdhrtghpthhtoheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorhhg Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05.03.2021 11:33, Srinivas Kandagatla wrote: > On 05/03/2021 10:24, Rafał Miłecki wrote: >>>> >>>> +static int iomap_read(void *context, unsigned int offset, void *val, >>>> +              size_t bytes) >>>> +{ >>>> +    struct iomap *priv = context; >>>> +    u8 *src = priv->base + offset; >>>> +    u8 *dst = val; >>>> +    size_t tmp; >>>> + >>>> +    tmp = offset % 4; >>>> +    memcpy_fromio(dst, src, tmp); >>>> +    dst += tmp; >>>> +    src += tmp; >>>> +    bytes -= tmp; >>>> + >>>> +    tmp = rounddown(bytes, 4); >>>> +    __ioread32_copy(dst, src, tmp / 4); >>>> +    dst += tmp; >>>> +    src += tmp; >>>> +    bytes -= tmp; >>>> + >>>> +    memcpy_fromio(dst, src, bytes); >>>> + >>> >>> >>> You could just do this! >>> >>>      while (bytes--) >>>          *val++ = readb(priv->base + offset + i++); >> >> Do you mean that as replacement for "memcpy_fromio" or the whole >> function code? > > Yes please! > >> The reason for using __ioread32_copy() was to improve reading >> performance (using aligned 32 bit access where possible). I'm not sure >> if that really matters? > > Just simple while loop is much readable than the previous code TBH! > >> > >> P.S. >> Please don't yell at me in every sentence :( Makes me a bit sad :( > Sorry!! I did not mean anything as such! :-) All clear (I hope)! Thanks for your review!