leds: lm355x: avoid enum conversion warning
authorArnd Bergmann <arnd@arndb.de>
Tue, 5 May 2020 14:19:17 +0000 (16:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Aug 2020 09:02:00 +0000 (11:02 +0200)
[ Upstream commit 985b1f596f9ed56f42b8c2280005f943e1434c06 ]

clang points out that doing arithmetic between diffent enums is usually
a mistake:

drivers/leds/leds-lm355x.c:167:28: warning: bitwise operation between different enumeration types ('enum lm355x_tx2' and 'enum lm355x_ntc') [-Wenum-enum-conversion]
                reg_val = pdata->pin_tx2 | pdata->ntc_pin;
                          ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
drivers/leds/leds-lm355x.c:178:28: warning: bitwise operation between different enumeration types ('enum lm355x_tx2' and 'enum lm355x_ntc') [-Wenum-enum-conversion]
                reg_val = pdata->pin_tx2 | pdata->ntc_pin | pdata->pass_mode;
                          ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~

In this driver, it is intentional, so add a cast to hide the false-positive
warning. It appears to be the only instance of this warning at the moment.

Fixes: b98d13c72592 ("leds: Add new LED driver for lm355x chips")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/leds/leds-lm355x.c

index 6cb94f9a2f3f3fb382d98f29f780d1cb58c76339..b9c60dd2b13274d9cc66db6a9c766f56ca180ece 100644 (file)
@@ -168,18 +168,19 @@ static int lm355x_chip_init(struct lm355x_chip_data *chip)
        /* input and output pins configuration */
        switch (chip->type) {
        case CHIP_LM3554:
-               reg_val = pdata->pin_tx2 | pdata->ntc_pin;
+               reg_val = (u32)pdata->pin_tx2 | (u32)pdata->ntc_pin;
                ret = regmap_update_bits(chip->regmap, 0xE0, 0x28, reg_val);
                if (ret < 0)
                        goto out;
-               reg_val = pdata->pass_mode;
+               reg_val = (u32)pdata->pass_mode;
                ret = regmap_update_bits(chip->regmap, 0xA0, 0x04, reg_val);
                if (ret < 0)
                        goto out;
                break;
 
        case CHIP_LM3556:
-               reg_val = pdata->pin_tx2 | pdata->ntc_pin | pdata->pass_mode;
+               reg_val = (u32)pdata->pin_tx2 | (u32)pdata->ntc_pin |
+                         (u32)pdata->pass_mode;
                ret = regmap_update_bits(chip->regmap, 0x0A, 0xC4, reg_val);
                if (ret < 0)
                        goto out;