Re: [PATCH v2 21/26] media: i2c: st-mipid02: Use the correct div function

From: Sakari Ailus
Date: Wed Apr 24 2024 - 14:39:03 EST


Hi Ricardo,

On Fri, Apr 19, 2024 at 09:48:07AM +0000, Ricardo Ribalda wrote:
> link_freq does not fit in 32 bits.
>
> Found by cocci:
> drivers/media/i2c/st-mipid02.c:329:1-7: WARNING: do_div() does a 64-by-32 division, please consider using div64_s64 instead.
>
> Reviewed-by: Benjamin Mugnier <benjamin.mugnier@xxxxxxxxxxx>
> Signed-off-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
> ---
> drivers/media/i2c/st-mipid02.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
> index f250640729ca..93a40bfda1af 100644
> --- a/drivers/media/i2c/st-mipid02.c
> +++ b/drivers/media/i2c/st-mipid02.c
> @@ -326,7 +326,7 @@ static int mipid02_configure_from_rx_speed(struct mipid02_dev *bridge,
> }
>
> dev_dbg(&client->dev, "detect link_freq = %lld Hz", link_freq);
> - do_div(ui_4, link_freq);
> + ui_4 = div64_s64(ui_4, link_freq);

These are positive numbers and ui_4 is unsigned. I'd use div64_u64()
instead. With that,

Reviewed-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>

> bridge->r.clk_lane_reg1 |= ui_4 << 2;
>
> return 0;
>

--
Regards,

Sakari Ailus