[PATCH 1/3] i2c: bcm-iproc: Fix Wvoid-pointer-to-enum-cast warning

Andi Shyti andi.shyti at kernel.org
Wed Dec 3 09:38:18 PST 2025


Hi Krzk,

All three patches merged to i2c/i2c-host.

Thanks,
Andi

On Wed, Nov 26, 2025 at 07:22:58PM +0100, Krzysztof Kozlowski wrote:
> 'type' is an enum, thus cast of pointer on 64-bit compile test with
> clang and W=1 causes:
> 
>   i2c-bcm-iproc.c:1102:3: error: cast to smaller integer type 'enum bcm_iproc_i2c_type' from 'const void *' [-Werror,-Wvoid-pointer-to-enum-cast]
> 
> One of the discussions in 2023 on LKML suggested warning is not suitable
> for kernel.  Nothing changed in this regard since that time, so assume
> the warning will stay and we want to have warnings-free builds.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski at oss.qualcomm.com>
> 
> ---
> 
> kernel_ulong_t is the preferred cast for such cases.
> ---
>  drivers/i2c/busses/i2c-bcm-iproc.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-bcm-iproc.c b/drivers/i2c/busses/i2c-bcm-iproc.c
> index e418a4f23f15..b5629cffe99b 100644
> --- a/drivers/i2c/busses/i2c-bcm-iproc.c
> +++ b/drivers/i2c/busses/i2c-bcm-iproc.c
> @@ -1098,8 +1098,7 @@ static int bcm_iproc_i2c_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, iproc_i2c);
>  	iproc_i2c->device = &pdev->dev;
> -	iproc_i2c->type =
> -		(enum bcm_iproc_i2c_type)of_device_get_match_data(&pdev->dev);
> +	iproc_i2c->type = (kernel_ulong_t)of_device_get_match_data(&pdev->dev);
>  	init_completion(&iproc_i2c->done);
>  
>  	iproc_i2c->base = devm_platform_ioremap_resource(pdev, 0);
> -- 
> 2.48.1
> 



More information about the linux-arm-kernel mailing list