All of lore.kernel.org
 help / color / mirror / Atom feed
From: Neil Armstrong <narmstrong@baylibre.com>
To: Sean Anderson <seanga2@gmail.com>, u-boot@lists.denx.de
Cc: Dario Binacchi <dariobin@libero.it>,
	Simon Glass <sjg@chromium.org>, Lukasz Majewski <lukma@denx.de>,
	Michal Simek <monstr@monstr.eu>,
	u-boot-amlogic@groups.io
Subject: Re: [PATCH 5/5] clk: Add clk_get_by_name_optional
Date: Thu, 2 Dec 2021 11:35:41 +0100	[thread overview]
Message-ID: <a1241f79-cd60-c81b-7f77-9ee0da068d3e@baylibre.com> (raw)
In-Reply-To: <20211201184332.2166897-6-seanga2@gmail.com>

On 01/12/2021 19:43, Sean Anderson wrote:
> This adds a helper function for clk_get_by_name in cases where the clock is
> optional. Hopefully this helps point driver writers in the right direction.
> Also convert some existing users.
> 
> Signed-off-by: Sean Anderson <seanga2@gmail.com>
> ---
> 
>  drivers/clk/clk_zynq.c  |  5 +++--
>  drivers/rng/meson-rng.c |  4 ++--
>  include/clk.h           | 24 ++++++++++++++++++++++++
>  3 files changed, 29 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/clk/clk_zynq.c b/drivers/clk/clk_zynq.c
> index 18915c3e04..e80500e382 100644
> --- a/drivers/clk/clk_zynq.c
> +++ b/drivers/clk/clk_zynq.c
> @@ -472,8 +472,9 @@ static int zynq_clk_probe(struct udevice *dev)
>  
>  	for (i = 0; i < 2; i++) {
>  		sprintf(name, "gem%d_emio_clk", i);
> -		ret = clk_get_by_name(dev, name, &priv->gem_emio_clk[i]);
> -		if (ret < 0 && ret != -ENODATA) {
> +		ret = clk_get_by_name_optional(dev, name,
> +					       &priv->gem_emio_clk[i]);
> +		if (ret) {
>  			dev_err(dev, "failed to get %s clock\n", name);
>  			return ret;
>  		}
> diff --git a/drivers/rng/meson-rng.c b/drivers/rng/meson-rng.c
> index 5a4f45ad5a..e0a1e8c7e0 100644
> --- a/drivers/rng/meson-rng.c
> +++ b/drivers/rng/meson-rng.c
> @@ -91,8 +91,8 @@ static int meson_rng_of_to_plat(struct udevice *dev)
>  		return -ENODEV;
>  
>  	/* Get optional "core" clock */
> -	err = clk_get_by_name(dev, "core", &pdata->clk);
> -	if (err && err != -ENODATA)
> +	err = clk_get_by_name_optional(dev, "core", &pdata->clk);
> +	if (err)
>  		return err;
>  
>  	return 0;
> diff --git a/include/clk.h b/include/clk.h
> index 103ef16bf9..36721188d0 100644
> --- a/include/clk.h
> +++ b/include/clk.h
> @@ -292,6 +292,30 @@ static inline int clk_release_all(struct clk *clk, int count)
>  }
>  #endif
>  
> +/**
> + * clk_get_by_name_optional() - Get/request a optional clock by name.
> + * @dev:	The client device.
> + * @name:	The name of the clock to request, within the client's list of
> + *		clocks.
> + * @clk:	A pointer to a clock struct to initialize.
> + *
> + * Behaves the same as clk_get_by_name(), except when there is no clock
> + * provider. In the latter case, return 0.
> + *
> + * Return: 0 if OK, or a negative error code.
> + */
> +static inline int clk_get_by_name_optional(struct udevice *dev,
> +					   const char *name, struct clk *clk)
> +{
> +	int ret;
> +
> +	ret = clk_get_by_name_optional(dev, name, clk);
> +	if (ret == -ENODATA)
> +		return 0;
> +
> +	return ret;
> +}
> +
>  /**
>   * clk_get_by_name_nodev_optional - Get/request an optinonal clock by name
>   *		without a device.
> 


For meson-rng:
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>

  reply	other threads:[~2021-12-02 10:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-01 18:43 [PATCH 0/5] clk: Clean up optional helpers, and add API docs to HTML Sean Anderson
2021-12-01 18:43 ` [PATCH 1/5] clk: Rename clk_get_optional_nodev Sean Anderson
2021-12-01 18:43 ` [PATCH 2/5] clk: Inline clk_get_*_optional Sean Anderson
2021-12-01 18:43 ` [PATCH 3/5] clk: Add client API to HTML docs Sean Anderson
2021-12-01 18:57   ` Heinrich Schuchardt
2021-12-01 18:43 ` [PATCH 4/5] clk: Add driver " Sean Anderson
2021-12-01 18:57   ` Heinrich Schuchardt
2021-12-01 18:43 ` [PATCH 5/5] clk: Add clk_get_by_name_optional Sean Anderson
2021-12-02 10:35   ` Neil Armstrong [this message]
2021-12-02 13:43   ` Simon Glass
2021-12-02 14:25     ` Sean Anderson
2021-12-02 15:59       ` Simon Glass

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=a1241f79-cd60-c81b-7f77-9ee0da068d3e@baylibre.com \
    --to=narmstrong@baylibre.com \
    --cc=dariobin@libero.it \
    --cc=lukma@denx.de \
    --cc=monstr@monstr.eu \
    --cc=seanga2@gmail.com \
    --cc=sjg@chromium.org \
    --cc=u-boot-amlogic@groups.io \
    --cc=u-boot@lists.denx.de \
    /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.