From: Alban <albeu@free.fr>
To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Aban Bedel <albeu@free.fr>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/8] nvmem: Add nvmem_cell_get_optional and devm_nvmem_cell_get_optional
Date: Wed, 16 Jan 2019 19:26:58 +0100 [thread overview]
Message-ID: <20190116192658.7df211e8@tack> (raw)
In-Reply-To: <de4aa31e-2d9e-a7bd-270e-f00ac3e88988@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 2345 bytes --]
On Tue, 15 Jan 2019 12:40:53 +0000
Srinivas Kandagatla <srinivas.kandagatla@linaro.org> wrote:
> On 06/01/2019 19:28, Alban Bedel wrote:
> > Add helper functions to make the driver code simpler when a cell is
> > optional. Using these functions just return NULL when the cell doesn't
> > exists or if nvmem is disabled.
> >
> > Signed-off-by: Alban Bedel<albeu@free.fr>
> > ---
> > drivers/nvmem/core.c | 48 ++++++++++++++++++++++++++++++++++
> > include/linux/nvmem-consumer.h | 16 ++++++++++++
> > 2 files changed, 64 insertions(+)
> >
> > diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> > index f8c43da6f2ca..8e1b52559467 100644
> > --- a/drivers/nvmem/core.c
> > +++ b/drivers/nvmem/core.c
> > @@ -1083,6 +1083,30 @@ struct nvmem_cell *nvmem_cell_get(struct device *dev, const char *id)
> > }
> > EXPORT_SYMBOL_GPL(nvmem_cell_get);
> >
> > +/**
> > + * nvmem_cell_get_optional() - Get an optional nvmem cell of device from
> > + * a given id.
> > + *
> > + * @dev: Device that requests the nvmem cell.
> > + * @cell_id: nvmem cell name to get.
> > + *
> > + * Return: Will be NULL if no cell with the given name is defined,
> > + * an ERR_PTR() on error or a valid pointer to a struct nvmem_cell.
> > + * The nvmem_cell will be freed by the nvmem_cell_put().
> > + */
> > +struct nvmem_cell *nvmem_cell_get_optional(struct device *dev,
> > + const char *cell_id)
> > +{
> > + struct nvmem_cell *cell;
> > +
> > + cell = nvmem_cell_get(dev, cell_id);
> > + if (IS_ERR(cell) && PTR_ERR(cell) == -ENOENT)
> > + return NULL;
>
> What is the real use-case here, it does not make sense to me to add this
> additional call just to return NULL when cell is not found!
It also return NULL when nvmem is not compiled in. I quiet like such
convenience functions as they make the driver code much simpler and
the intent explicit. It replace:
data->cell = devm_nvmem_cell_get(dev, "my-cell");
if (IS_ERR(data->cell) {
if (PTR_ERR(data->cell) == -ENOENT ||
PTR_ERR(data->cell) == -EOPNOTSUPP)
data->cell = NULL;
else
return PTR_ERR(data->cell);
}
with:
data->cell = dev_nvmem_cell_get_optional(dev, "my-cell");
if (IS_ERR(cell))
return PTR_ERR(data->cell);
It's your call if you find that useful or not.
Alban
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2019-01-16 18:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-06 19:28 [PATCH 0/8] nvmem: Various small fixes and improvements Alban Bedel
2019-01-06 19:28 ` [PATCH 1/8] nvmem: core: Set the provider read-only when no write callback is given Alban Bedel
2019-01-06 19:28 ` [PATCH 2/8] nvmem: core: Fix of_nvmem_cell_get() for optional cells Alban Bedel
2019-01-06 19:28 ` [PATCH 3/8] nvmem: Add nvmem_cell_get_optional and devm_nvmem_cell_get_optional Alban Bedel
2019-01-15 12:40 ` Srinivas Kandagatla
2019-01-16 18:26 ` Alban [this message]
2019-01-17 10:20 ` Srinivas Kandagatla
2019-01-06 19:28 ` [PATCH 4/8] nvmem: core: Fix cell lookup when no cell is found Alban Bedel
2019-01-06 19:28 ` [PATCH 5/8] nvmem: core: Properly handle connection ID in of_nvmem_device_get() Alban Bedel
2019-01-06 19:28 ` [PATCH 6/8] nvmem: core: Always reference the device returned by nvmem_device_get() Alban Bedel
2019-01-06 19:28 ` [PATCH 7/8] nvmem: core: Fix device reference leak Alban Bedel
2019-01-06 19:28 ` [PATCH 8/8] nvmem: core: Avoid useless iterations in nvmem_cell_get_from_lookup() Alban Bedel
2019-01-15 12:40 ` [PATCH 0/8] nvmem: Various small fixes and improvements Srinivas Kandagatla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190116192658.7df211e8@tack \
--to=albeu@free.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=srinivas.kandagatla@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.