Re: [PATCH v2] mux: adgs1408: fix Wvoid-pointer-to-enum-cast warning
From: Nuno Sá
Date: Fri May 02 2025 - 03:40:56 EST
On Thu, 2025-05-01 at 20:18 +0200, Krzysztof Kozlowski wrote:
> 'chip_id' is an enum, thus cast of pointer on 64-bit compile test with
> W=1 causes:
>
> adgs1408.c:63:12: error: cast to smaller integer type 'enum
> adgs1408_chip_id' from 'const void *' [-Werror,-Wvoid-pointer-to-enum-cast]
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
>
> ---
>
Reviewed-by: Nuno Sá <nuno.sa@xxxxxxxxxx>
> Changes in v2:
> 1. Use kernel_ulong_t instead of uintptr_t
> 2. Rebase
>
> Patch from 2023:
> Link:
> https://lore.kernel.org/r/20230810095822.123181-1-krzysztof.kozlowski@xxxxxxxxxx
> ---
> drivers/mux/adgs1408.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mux/adgs1408.c b/drivers/mux/adgs1408.c
> index 5386cfedcb06..5eaf07d09ac9 100644
> --- a/drivers/mux/adgs1408.c
> +++ b/drivers/mux/adgs1408.c
> @@ -59,7 +59,7 @@ static int adgs1408_probe(struct spi_device *spi)
> s32 idle_state;
> int ret;
>
> - chip_id = (enum adgs1408_chip_id)spi_get_device_match_data(spi);
> + chip_id = (kernel_ulong_t)spi_get_device_match_data(spi);
>
> mux_chip = devm_mux_chip_alloc(dev, 1, 0);
> if (IS_ERR(mux_chip))