From: Nathan Chancellor <nathan@kernel.org>
To: Arnd Bergmann <arnd@kernel.org>
Cc: "Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"Nick Desaulniers" <ndesaulniers@google.com>,
"Maíra Canal" <maira.canal@usp.br>,
"Arnd Bergmann" <arnd@arndb.de>,
"Colin Ian King" <colin.king@canonical.com>,
linux-kernel@vger.kernel.org, llvm@lists.linux.dev
Subject: Re: [PATCH] regulator: lp872x: fix enum conversion warning
Date: Tue, 19 Oct 2021 10:40:33 -0700 [thread overview]
Message-ID: <YW8DEXD1bjW73coE@archlinux-ax161> (raw)
In-Reply-To: <20211019153851.509626-1-arnd@kernel.org>
On Tue, Oct 19, 2021 at 05:38:43PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> clang warns that the argument to devm_gpiod_get_optional()
> is the wrong type:
>
> drivers/regulator/lp872x.c:689:57: error: implicit conversion from enumeration type 'enum lp872x_dvs_state' to different enumeration type 'enum gpiod_flags' [-Werror,-Wenum-conversion]
> dvs->gpio = devm_gpiod_get_optional(lp->dev, "ti,dvs", pinstate);
> ~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~
>
> The enum value is specifcally chosen to be the same here, but
> the compiler only sees the mismatched types. This could be
> worked around using another ?: expression, but it seems easiest
> to replace the assignment with a macro.
>
> Fixes: 72bf80cf09c4 ("regulator: lp872x: replacing legacy gpio interface for gpiod")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
I sent basically the same patch but I also eliminated DSV_{LOW,HIGH}
in favor of the GPIOD flags outright:
https://lore.kernel.org/r/20211019004335.193492-1-nathan@kernel.org/
Either one works so I do not really care which one gets merged.
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
> ---
> drivers/regulator/lp872x.c | 6 +++---
> include/linux/regulator/lp872x.h | 8 +++-----
> 2 files changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/regulator/lp872x.c b/drivers/regulator/lp872x.c
> index 1dba5dbcd461..61412ebc8d8d 100644
> --- a/drivers/regulator/lp872x.c
> +++ b/drivers/regulator/lp872x.c
> @@ -103,7 +103,7 @@ struct lp872x {
> enum lp872x_id chipid;
> struct lp872x_platform_data *pdata;
> int num_regulators;
> - enum lp872x_dvs_state dvs_pin;
> + enum gpiod_flags dvs_pin;
> };
>
> /* LP8720/LP8725 shared voltage table for LDOs */
> @@ -251,7 +251,7 @@ static int lp872x_regulator_enable_time(struct regulator_dev *rdev)
> static void lp872x_set_dvs(struct lp872x *lp, enum lp872x_dvs_sel dvs_sel,
> struct gpio_desc *gpio)
> {
> - enum lp872x_dvs_state state;
> + enum gpiod_flags state;
>
> state = dvs_sel == SEL_V1 ? DVS_HIGH : DVS_LOW;
> gpiod_set_value(gpio, state);
> @@ -675,7 +675,7 @@ static const struct regulator_desc lp8725_regulator_desc[] = {
> static int lp872x_init_dvs(struct lp872x *lp)
> {
> struct lp872x_dvs *dvs = lp->pdata ? lp->pdata->dvs : NULL;
> - enum lp872x_dvs_state pinstate;
> + enum gpiod_flags pinstate;
> u8 mask[] = { LP8720_EXT_DVS_M, LP8725_DVS1_M | LP8725_DVS2_M };
> u8 default_dvs_mode[] = { LP8720_DEFAULT_DVS, LP8725_DEFAULT_DVS };
>
> diff --git a/include/linux/regulator/lp872x.h b/include/linux/regulator/lp872x.h
> index 8e7e0343c6e1..5b94fe38fc78 100644
> --- a/include/linux/regulator/lp872x.h
> +++ b/include/linux/regulator/lp872x.h
> @@ -40,10 +40,8 @@ enum lp872x_regulator_id {
> LP872X_ID_MAX,
> };
>
> -enum lp872x_dvs_state {
> - DVS_LOW = GPIOD_OUT_LOW,
> - DVS_HIGH = GPIOD_OUT_HIGH,
> -};
> +#define DVS_LOW GPIOD_OUT_LOW
> +#define DVS_HIGH GPIOD_OUT_HIGH
>
> enum lp872x_dvs_sel {
> SEL_V1,
> @@ -59,7 +57,7 @@ enum lp872x_dvs_sel {
> struct lp872x_dvs {
> struct gpio_desc *gpio;
> enum lp872x_dvs_sel vsel;
> - enum lp872x_dvs_state init_state;
> + enum gpiod_flags init_state;
> };
>
> /**
> --
> 2.29.2
>
prev parent reply other threads:[~2021-10-19 17:40 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-19 15:38 [PATCH] regulator: lp872x: fix enum conversion warning Arnd Bergmann
2021-10-19 17:40 ` Nathan Chancellor [this message]
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=YW8DEXD1bjW73coE@archlinux-ax161 \
--to=nathan@kernel.org \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=broonie@kernel.org \
--cc=colin.king@canonical.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=maira.canal@usp.br \
--cc=ndesaulniers@google.com \
/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.