From: Nathan Chancellor <natechancellor@gmail.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>,
"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] pinctrl: generic: Avoid several implicit enum conversions
Date: Wed, 31 Oct 2018 17:03:38 -0700 [thread overview]
Message-ID: <20181101000338.GA32577@flashbox> (raw)
In-Reply-To: <CACRpkda9LhdQybgci8gYs13L5pHWvDx43_Ftn5s+ERLLFPvLjQ@mail.gmail.com>
On Wed, Oct 31, 2018 at 02:33:24PM +0100, Linus Walleij wrote:
> On Thu, Oct 25, 2018 at 11:04 PM Nathan Chancellor
> <natechancellor@gmail.com> wrote:
>
> > In my opinion, there are enough of these warnings to warrant changing
> > the type of param globally (arm64 allyesconfig):
>
> Yeah as it is from the compiler, sure we need to get rid of it.
>
> > Linus, did you have any other objections to this patch given my
> > reasoning in these past couple of emails or would you like me to try
> > adding explicit casts to all of these call sites?
>
> I would favor the model to:
>
> 1. Replace all occurences of enum pin_config_param with unsigned
> int.
>
Given that there are 57 files with this definition and some include it
multiple time, this doesn't seem super reasonable in my opinion.
> 2. Replace the whole definition of enum pin_config_param with
> #define PIN_CONFIG_BIAS_BUS_HOLD 0
> #define PIN_CONFIG_BIAS_DISABLE 1
> etc etc.
>
> I think it is not a good idea to try to do both at the same time.
>
> A slightly lesser evil variant is to add a few PIN_CONFIG_CUSTOM_1
> PIN_CONFIG_CUSTOM_2 etc at the end of the enum and just
> #define MY_CONFIG PIN_CONFIG_CUSTOM_1
> in all drivers that use these.
>
Some drivers actually just define their pin config params like:
#define VAR (PIN_CONFIG_END + 1)
In fact, more drivers do that than not. I will go ahead and draft some
patches tonight and send them out tonight to see what driver authors
think.
Example with drivers/pinctrl/sprd/pinctrl-sprd.c
================================================
diff --git a/drivers/pinctrl/sprd/pinctrl-sprd.c b/drivers/pinctrl/sprd/pinctrl-sprd.c
index 4537b5453996..7d9a44bd0047 100644
--- a/drivers/pinctrl/sprd/pinctrl-sprd.c
+++ b/drivers/pinctrl/sprd/pinctrl-sprd.c
@@ -159,10 +159,8 @@ struct sprd_pinctrl {
struct sprd_pinctrl_soc_info *info;
};
-enum sprd_pinconf_params {
- SPRD_PIN_CONFIG_CONTROL = PIN_CONFIG_END + 1,
- SPRD_PIN_CONFIG_SLEEP_MODE = PIN_CONFIG_END + 2,
-};
+#define SPRD_PIN_CONFIG_CONTROL (PIN_CONFIG_END + 1)
+#define SPRD_PIN_CONFIG_SLEEP_MODE (PIN_CONFIG_END + 2)
static int sprd_pinctrl_get_id_by_name(struct sprd_pinctrl *sprd_pctl,
const char *name)
> Yours,
> Linus Walleij
Thank you for the reply and advice!
Nathan
next prev parent reply other threads:[~2018-11-01 0:03 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-25 6:18 [PATCH] pinctrl: generic: Avoid several implicit enum conversions Nathan Chancellor
2018-09-25 10:58 ` Linus Walleij
2018-09-25 16:14 ` Nathan Chancellor
2018-09-25 16:23 ` Nick Desaulniers
2018-10-25 21:04 ` Nathan Chancellor
2018-10-31 13:33 ` Linus Walleij
2018-11-01 0:03 ` Nathan Chancellor [this message]
2018-11-01 11:46 ` David Laight
2018-11-09 9:29 ` Linus Walleij
2018-11-09 15:21 ` Nathan Chancellor
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=20181101000338.GA32577@flashbox \
--to=natechancellor@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--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.