rtc: ds1307: fix Wvoid-pointer-to-enum-cast warning
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Thu, 10 Aug 2023 10:38:59 +0000 (12:38 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 15 Aug 2023 23:32:08 +0000 (01:32 +0200)
'type' is an enum, thus cast of pointer on 64-bit compile test with W=1
causes:

  rtc-ds1307.c:1747:18: error: cast to smaller integer type 'enum ds_type' from 'const void *' [-Werror,-Wvoid-pointer-to-enum-cast]

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20230810103902.151145-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-ds1307.c

index cb5acec..506b7d1 100644 (file)
@@ -1744,7 +1744,7 @@ static int ds1307_probe(struct i2c_client *client)
 
        match = device_get_match_data(&client->dev);
        if (match) {
-               ds1307->type = (enum ds_type)match;
+               ds1307->type = (uintptr_t)match;
                chip = &chips[ds1307->type];
        } else if (id) {
                chip = &chips[id->driver_data];