leds: lm355x: avoid enum conversion warning
authorArnd Bergmann <arnd@arndb.de>
Tue, 5 May 2020 14:19:17 +0000 (16:19 +0200)
committerPavel Machek <pavel@ucw.cz>
Mon, 22 Jun 2020 08:37:57 +0000 (10:37 +0200)
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>
drivers/leds/leds-lm355x.c

index 11ce052..b2eb2e1 100644 (file)
@@ -164,18 +164,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;