Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1917471pxb; Fri, 5 Mar 2021 03:00:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJyv9GnD1F7Vhqw7PgJHitvsQT+VFb+/aENb/VlktkfMkeqp7Uk6wJu0rQZ5EIwVd1Xg8BN9 X-Received: by 2002:a05:6402:375:: with SMTP id s21mr8512898edw.287.1614942017093; Fri, 05 Mar 2021 03:00:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614942017; cv=none; d=google.com; s=arc-20160816; b=fOhlfZ3e4LAQ1p1btSkwPUARvmN6KZaClFdhBjwktwdO40bV21+RtIkK/nlT/QwFwW XBOsCSva7PAR8mVKYDbob3OWNpI/c/F2QQxXHkZVE5i8ibIx2FUEDzXO5oPnanm6YgvU tnaA+/pqf0EblyFHJ/gqMMAPMZspeHsL0csHSqeF6JLrQ858Q09AicfQ5ylfVzvdSTc3 VnoCR6wVvciO0jHmxupkberV+NT3u0BfHWOCDKvsRXZnXY5i+P1sTNtiuVHGR9oWCa5u viRfjoA6wyGtWcq3iRHMhkMEwGSWFj9XePQPip4lk4GL2SwXmGPuV2Vgbo2aTFUJexDf UDvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=ps5MAps+He7hsLfHpPoS1WRgCoL4W2ykJZK93p8gmrg=; b=mzNHFi0aBKoPMRywqS+yvsbB+4O+zV1a3/4CJEF/ay5YnCqX/XDIhYR636a3eSpJFN yANcADt2DIuuBPDgM651OB5DZa7/DNEKfwlNfm+Us6UucnlmSs0DsqOPkOa9N7Ae9KUA nAl+Y2U8nX0vPmD/B7GP+weliX7Cr9MD+eg6uziEhF3sjAhuMf5RHdXYpjKmzHcBjfZT jKjkQS7cqbI6sBzV0ituCFeiGsAaJBcX6ZLUBynsxbPCSvFskORYv8+f1uAL34lxo16n L81Eq8T6wfSp1nkRsHm/qIR7Nqe9Y86WS+Bs1yjpcDjAha/9nBRA+Gd642znEqU/3Cev 1nAA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z16si1093701eji.715.2021.03.05.02.59.54; Fri, 05 Mar 2021 03:00:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229687AbhCEK67 (ORCPT + 99 others); Fri, 5 Mar 2021 05:58:59 -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!