Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp188194ybv; Wed, 5 Feb 2020 03:52:33 -0800 (PST) X-Google-Smtp-Source: APXvYqxjVIwa/m6IItnUQtjyBnVc0aOmWqk5BGrf5a0iSAwWB1KOMfxMWuD90fgTFu76aGAgZPwH X-Received: by 2002:a9d:6251:: with SMTP id i17mr26240140otk.14.1580903553207; Wed, 05 Feb 2020 03:52:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580903553; cv=none; d=google.com; s=arc-20160816; b=JqhcBCiaYLSFdrGn6yG9KUGKN2TDpoAROQgkcxoGAW9J2JiEg5vaudw8+RgL9FVnL4 iNOBxneSz555zVSjMUhI9nmesr/qJJ6is4+slNnXFNJhpjpeoi2+d2xQ/Me2dgc8LGZN zBeXf/ddUdbgXNcFjYBrZK9GHnizYrGG6NPjCkGTHk5Sp6JIgpPdwSalnpHGLl1kGOD7 DeoRe/IfTmKWvzSKLTFA+5QGCZfM4LLcBRSgs3S3uGi7EvmCz9LWxSAUDa9ar/0tP7an g98FJL5dfqA9RXtgM1fWMB0VRmpR8nXC5/Wp5obGUxCQD9kfmYMulJvxjjW8Hqf3r4Aq 7/TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=jbvFbTCcGrej2Z1q0WqVOHNoYPlE1j6xMMdkGm4J5S4=; b=fFd75IK7apvI1MtaAlMh5l9SH1VGuS95cOrHtiHNsHNHbrecEMWkiGFjz75+Hpy/qi KkZmyBw7bWMLqAUFrkkNdOwyuVTT/8t9RqUmTiUd6FTlV1O239wKnereVjqWZXKC7Bud FsCoZbTIis9sNAHtNi4TrwzwZDjLKVOpXeSOoRdAiV3MSQLrCS8AGxUJCCfCVycgozWe 9pJ4dbKU4p46Rg/0MMfflDeSH/0bNcY+12l1XRGrBxoVD7KCmrzL7U+8OQdo2ed3bX+k GXQ9OrH7QDk2U6R3Ox7x3Sf+oWBRpiprGb8pFAeCkJACtGZc8pzntuLldSMjcjFtRPQs FOKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=HFTdhdan; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m17si15111808otk.109.2020.02.05.03.52.20; Wed, 05 Feb 2020 03:52:33 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=HFTdhdan; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727330AbgBELvD (ORCPT + 99 others); Wed, 5 Feb 2020 06:51:03 -0500 Received: from mail-io1-f66.google.com ([209.85.166.66]:39959 "EHLO mail-io1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726308AbgBELvC (ORCPT ); Wed, 5 Feb 2020 06:51:02 -0500 Received: by mail-io1-f66.google.com with SMTP id x1so1780339iop.7 for ; Wed, 05 Feb 2020 03:51:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=jbvFbTCcGrej2Z1q0WqVOHNoYPlE1j6xMMdkGm4J5S4=; b=HFTdhdaniQlnrhPAgrhMtT98C5czzMG7MHRBGfuzEJ2UKcbPJeMrQbKyZUjbPhSoe/ aBwoHArL4/66pz7PkrKuCxGw50/weOugAe4rqEKul8l9lB9AaxkNB8CL35kG0XIM/BgH zWuZtUveFhvveP8sJXW6tbExAF0pmserA7hZC1Th7dGr4Km2R47hlLujSxI/fO/6aA3T /M3Bszi/i1aGbgfyFUgYXr2tsdr8ej1fEbpJlAwlpvXcEuTzn9sk+rKTMFXR/p1xCE4X b5uJAz6Ugp6HblWI9k33Y5FxpQbmzTgFv0KlfG309eDWqj8YgLK4VH1GtDoUVOuRGW93 5cpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=jbvFbTCcGrej2Z1q0WqVOHNoYPlE1j6xMMdkGm4J5S4=; b=doF2y9BCaBcDgmazhp95KB67WJtXkKcOtQzuid6RFss5jJS7IvLSJ8do6iJ9SPVA9b twOv8Lrs9azbJjrbTtsCEVuehqz0cqjnwnG1Siy9T+5zl6Z9lPJekkx2CMkAwo86ynvq B5hzbP4hEvMRXPKLrFUMqWvWHTkT/jUzlLoGpUWvSSsUrjHCnPLbMxFdqAS3zdYjThmY k9jhQD0eFerQpplZ+wNMTX0CeNmzpXdGxgWzYKTbQ3lRPoyHiD+IgoGbDlnRKgP+cf3C +FZ1T2NBC9D6Br+G5tOgE7/BExnJA4t3PZhVlT4vzc/Uvxuw9hDoBprTqMdv+4C2URz1 IVAQ== X-Gm-Message-State: APjAAAVlfAFJ+9J5S6l8RBUxA3QLS1V1EjNb/8zvjCFNT+4MMthr4145 wN+s0UAx8rc3Gq/soIE9rOUlFCFoBr8Clsg/0oQ= X-Received: by 2002:a5e:8214:: with SMTP id l20mr28855258iom.168.1580903462078; Wed, 05 Feb 2020 03:51:02 -0800 (PST) MIME-Version: 1.0 References: <20200126195619.27596-1-tiny.windzz@gmail.com> In-Reply-To: <20200126195619.27596-1-tiny.windzz@gmail.com> From: Frank Lee Date: Wed, 5 Feb 2020 19:50:50 +0800 Message-ID: Subject: Re: [PATCH 1/2] nvmem: core: add nvmem_cell_read_common To: Srini Kandagatla , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ping... On Mon, Jan 27, 2020 at 3:56 AM Yangtao Li wrote: > > Now there are nvmem_cell_read_u16 and nvmem_cell_read_u32. > They are very similar, let's strip out a common part. > > And use nvmem_cell_read_common to simplify their implementation. > > Signed-off-by: Yangtao Li > --- > drivers/nvmem/core.c | 54 ++++++++++++++++---------------------------- > 1 file changed, 19 insertions(+), 35 deletions(-) > > diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c > index 9f1ee9c766ec..f4226546e49a 100644 > --- a/drivers/nvmem/core.c > +++ b/drivers/nvmem/core.c > @@ -1071,16 +1071,8 @@ int nvmem_cell_write(struct nvmem_cell *cell, void *buf, size_t len) > } > EXPORT_SYMBOL_GPL(nvmem_cell_write); > > -/** > - * nvmem_cell_read_u16() - Read a cell value as an u16 > - * > - * @dev: Device that requests the nvmem cell. > - * @cell_id: Name of nvmem cell to read. > - * @val: pointer to output value. > - * > - * Return: 0 on success or negative errno. > - */ > -int nvmem_cell_read_u16(struct device *dev, const char *cell_id, u16 *val) > +static int nvmem_cell_read_common(struct device *dev, const char *cell_id, > + void *val, size_t count) > { > struct nvmem_cell *cell; > void *buf; > @@ -1095,17 +1087,31 @@ int nvmem_cell_read_u16(struct device *dev, const char *cell_id, u16 *val) > nvmem_cell_put(cell); > return PTR_ERR(buf); > } > - if (len != sizeof(*val)) { > + if (len != count) { > kfree(buf); > nvmem_cell_put(cell); > return -EINVAL; > } > - memcpy(val, buf, sizeof(*val)); > + memcpy(val, buf, count); > kfree(buf); > nvmem_cell_put(cell); > > return 0; > } > + > +/** > + * nvmem_cell_read_u16() - Read a cell value as an u16 > + * > + * @dev: Device that requests the nvmem cell. > + * @cell_id: Name of nvmem cell to read. > + * @val: pointer to output value. > + * > + * Return: 0 on success or negative errno. > + */ > +int nvmem_cell_read_u16(struct device *dev, const char *cell_id, u16 *val) > +{ > + return nvmem_cell_read_common(dev, cell_id, val, sizeof(*val)); > +} > EXPORT_SYMBOL_GPL(nvmem_cell_read_u16); > > /** > @@ -1119,29 +1125,7 @@ EXPORT_SYMBOL_GPL(nvmem_cell_read_u16); > */ > int nvmem_cell_read_u32(struct device *dev, const char *cell_id, u32 *val) > { > - struct nvmem_cell *cell; > - void *buf; > - size_t len; > - > - cell = nvmem_cell_get(dev, cell_id); > - if (IS_ERR(cell)) > - return PTR_ERR(cell); > - > - buf = nvmem_cell_read(cell, &len); > - if (IS_ERR(buf)) { > - nvmem_cell_put(cell); > - return PTR_ERR(buf); > - } > - if (len != sizeof(*val)) { > - kfree(buf); > - nvmem_cell_put(cell); > - return -EINVAL; > - } > - memcpy(val, buf, sizeof(*val)); > - > - kfree(buf); > - nvmem_cell_put(cell); > - return 0; > + return nvmem_cell_read_common(dev, cell_id, val, sizeof(*val)); > } > EXPORT_SYMBOL_GPL(nvmem_cell_read_u32); > > -- > 2.17.1 >