diff mbox series

pinctrl: max77620: Use define directive for max77620_pinconf_param values

Message ID 20181101005021.8393-1-natechancellor@gmail.com
State New
Headers show
Series pinctrl: max77620: Use define directive for max77620_pinconf_param values | expand

Commit Message

Nathan Chancellor Nov. 1, 2018, 12:50 a.m. UTC
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(-)

Comments

Linus Walleij Nov. 9, 2018, 9:01 a.m. UTC | #1
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
Laxman Dewangan Nov. 9, 2018, 10:48 a.m. UTC | #2
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>
diff mbox series

Patch

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;