LKML Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] pinctrl: max77620: Use define directive for max77620_pinconf_param values
@ 2018-11-01  0:50 Nathan Chancellor
  2018-11-09  9:01 ` Linus Walleij
  0 siblings, 1 reply; 3+ messages in thread
From: Nathan Chancellor @ 2018-11-01  0:50 UTC (permalink / raw)
  To: Linus Walleij
  Cc: linux-gpio, linux-kernel, Nick Desaulniers, Nathan Chancellor

Clang warns when one enumerated type is implicitly converted to another:

drivers/pinctrl/pinctrl-max77620.c:56:12: warning: implicit conversion
from enumeration type 'enum max77620_pinconf_param' to different
enumeration type 'enum pin_config_param' [-Wenum-conversion]
                .param = MAX77620_ACTIVE_FPS_SOURCE,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~

It is expected that pinctrl drivers can extend pin_config_param because
of the gap between PIN_CONFIG_END and PIN_CONFIG_MAX so this conversion
isn't an issue. Most drivers that take advantage of this define the
PIN_CONFIG variables as constants, rather than enumerated values. Do the
same thing here so that Clang no longer warns.

Link: https://github.com/ClangBuiltLinux/linux/issues/139
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
---
 drivers/pinctrl/pinctrl-max77620.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-max77620.c b/drivers/pinctrl/pinctrl-max77620.c
index a7f37063518e..3d05bc1937d4 100644
--- a/drivers/pinctrl/pinctrl-max77620.c
+++ b/drivers/pinctrl/pinctrl-max77620.c
@@ -34,14 +34,12 @@ enum max77620_pin_ppdrv {
 	MAX77620_PIN_PP_DRV,
 };
 
-enum max77620_pinconf_param {
-	MAX77620_ACTIVE_FPS_SOURCE = PIN_CONFIG_END + 1,
-	MAX77620_ACTIVE_FPS_POWER_ON_SLOTS,
-	MAX77620_ACTIVE_FPS_POWER_DOWN_SLOTS,
-	MAX77620_SUSPEND_FPS_SOURCE,
-	MAX77620_SUSPEND_FPS_POWER_ON_SLOTS,
-	MAX77620_SUSPEND_FPS_POWER_DOWN_SLOTS,
-};
+#define MAX77620_ACTIVE_FPS_SOURCE		(PIN_CONFIG_END + 1)
+#define MAX77620_ACTIVE_FPS_POWER_ON_SLOTS	(PIN_CONFIG_END + 2)
+#define MAX77620_ACTIVE_FPS_POWER_DOWN_SLOTS	(PIN_CONFIG_END + 3)
+#define MAX77620_SUSPEND_FPS_SOURCE		(PIN_CONFIG_END + 4)
+#define MAX77620_SUSPEND_FPS_POWER_ON_SLOTS	(PIN_CONFIG_END + 5)
+#define MAX77620_SUSPEND_FPS_POWER_DOWN_SLOTS	(PIN_CONFIG_END + 6)
 
 struct max77620_pin_function {
 	const char *name;
-- 
2.19.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] pinctrl: max77620: Use define directive for max77620_pinconf_param values
  2018-11-01  0:50 [PATCH] pinctrl: max77620: Use define directive for max77620_pinconf_param values Nathan Chancellor
@ 2018-11-09  9:01 ` Linus Walleij
  2018-11-09 10:48   ` Laxman Dewangan
  0 siblings, 1 reply; 3+ messages in thread
From: Linus Walleij @ 2018-11-09  9:01 UTC (permalink / raw)
  To: Nathan Chancellor, Laxman Dewangan
  Cc: open list:GPIO SUBSYSTEM, linux-kernel, Nick Desaulniers

On Thu, Nov 1, 2018 at 1:51 AM Nathan Chancellor
<natechancellor@gmail.com> wrote:

> Clang warns when one enumerated type is implicitly converted to another:
>
> drivers/pinctrl/pinctrl-max77620.c:56:12: warning: implicit conversion
> from enumeration type 'enum max77620_pinconf_param' to different
> enumeration type 'enum pin_config_param' [-Wenum-conversion]
>                 .param = MAX77620_ACTIVE_FPS_SOURCE,
>                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
>
> It is expected that pinctrl drivers can extend pin_config_param because
> of the gap between PIN_CONFIG_END and PIN_CONFIG_MAX so this conversion
> isn't an issue. Most drivers that take advantage of this define the
> PIN_CONFIG variables as constants, rather than enumerated values. Do the
> same thing here so that Clang no longer warns.
>
> Link: https://github.com/ClangBuiltLinux/linux/issues/139
> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>

Patch tentatively applied.

This seems to be the direction we need to be going with a lot
of CLANG business.

Laxman: you weren't CCed, so tell us if you dislike it for some
reason.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] pinctrl: max77620: Use define directive for max77620_pinconf_param values
  2018-11-09  9:01 ` Linus Walleij
@ 2018-11-09 10:48   ` Laxman Dewangan
  0 siblings, 0 replies; 3+ messages in thread
From: Laxman Dewangan @ 2018-11-09 10:48 UTC (permalink / raw)
  To: Linus Walleij, Nathan Chancellor
  Cc: open list:GPIO SUBSYSTEM, linux-kernel, Nick Desaulniers



On Friday 09 November 2018 02:31 PM, Linus Walleij wrote:
> On Thu, Nov 1, 2018 at 1:51 AM Nathan Chancellor
> <natechancellor@gmail.com> wrote:
>
>> Clang warns when one enumerated type is implicitly converted to another:
>>
>> drivers/pinctrl/pinctrl-max77620.c:56:12: warning: implicit conversion
>> from enumeration type 'enum max77620_pinconf_param' to different
>> enumeration type 'enum pin_config_param' [-Wenum-conversion]
>>                  .param = MAX77620_ACTIVE_FPS_SOURCE,
>>                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> It is expected that pinctrl drivers can extend pin_config_param because
>> of the gap between PIN_CONFIG_END and PIN_CONFIG_MAX so this conversion
>> isn't an issue. Most drivers that take advantage of this define the
>> PIN_CONFIG variables as constants, rather than enumerated values. Do the
>> same thing here so that Clang no longer warns.
>>
>> Link: https://github.com/ClangBuiltLinux/linux/issues/139
>> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> Patch tentatively applied.
>
> This seems to be the direction we need to be going with a lot
> of CLANG business.
>
> Laxman: you weren't CCed, so tell us if you dislike it for some
> reason.
>
Looked changes and it is great. MISRA-C also happy with macros instead 
of enum.

Acked-by: Laxman Dewangan <ldewangan@nvidia.com>



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, back to index

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-01  0:50 [PATCH] pinctrl: max77620: Use define directive for max77620_pinconf_param values Nathan Chancellor
2018-11-09  9:01 ` Linus Walleij
2018-11-09 10:48   ` Laxman Dewangan

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org linux-kernel@archiver.kernel.org
	public-inbox-index lkml


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox