[PATCH 2/2] i2c: efi: use DIV_ROUND_UP_ULL instead of native division

Tomas Marek tomas.marek at elrest.cz
Mon Aug 19 22:28:17 PDT 2024


Hello Ahmad,

On Thu, Aug 15, 2024 at 08:56:46AM +0200, Ahmad Fatoum wrote:
> 64-bit division on 32-bit platforms is normally handled by libgcc,
> which, like the kernel, we don't link against in barebox.
> 
> Instead we have a number of division helpers that should be used for
> 64-bit division, which either expand to a normal division if possible or
> to an out-of-line division. Make use of this to fix compilation for
> 32-bit.

Thanks for hint.

> 
> Cc: Tomas Marek <tomas.marek at elrest.cz>
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> This replaces "i2c: efi: avoid 64-bit division"
> ---
>  drivers/i2c/busses/i2c-efi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/i2c/busses/i2c-efi.c b/drivers/i2c/busses/i2c-efi.c
> index 5f6cc0eed28e..4c58279e0398 100644
> --- a/drivers/i2c/busses/i2c-efi.c
> +++ b/drivers/i2c/busses/i2c-efi.c
> @@ -114,7 +114,7 @@ static unsigned int efi_i2c_msg_op_cnt(const struct efi_i2c_priv *i2c_priv,
>  
>  	max_len = efi_i2c_max_len(i2c_priv, msg);
>  
> -	return ((u64)msg->len + max_len - 1) / max_len;
> +	return DIV_ROUND_UP_ULL(msg->len, max_len);

It looks good to me.

Best regards

Tomas

>  }
>  
>  static unsigned int efi_i2c_req_op_cnt(
> -- 
> 2.39.2
> 



More information about the barebox mailing list