Re: linux-next: Tree for May 9 (i2c/busses/i2c-mlxbf.c)

From: Randy Dunlap
Date: Fri May 09 2025 - 20:19:05 EST




On 5/9/25 2:58 AM, Stephen Rothwell wrote:
> Hi all,
>
> Changes since 20250508:
>

on i386:

ld: drivers/i2c/busses/i2c-mlxbf.o: in function `mlxbf_i2c_set_timings':
i2c-mlxbf.c:(.text+0x67): undefined reference to `__udivdi3'
ld: i2c-mlxbf.c:(.text+0x8a): undefined reference to `__udivdi3'
ld: i2c-mlxbf.c:(.text+0xc7): undefined reference to `__udivdi3'
ld: i2c-mlxbf.c:(.text+0xeb): undefined reference to `__udivdi3'
ld: i2c-mlxbf.c:(.text+0x112): undefined reference to `__udivdi3'

ld: drivers/i2c/busses/i2c-mlxbf.o: in function `mlxbf_i2c_calculate_freq_from_tyu':
i2c-mlxbf.c:(.text+0x194): undefined reference to `__udivdi3'
ld: drivers/i2c/busses/i2c-mlxbf.o: in function `mlxbf_i2c_calculate_freq_from_yu':
i2c-mlxbf.c:(.text+0x1e0): undefined reference to `__udivdi3'

These come fromm using '/' instead of one of the kernel's DIV macros when using
u64 or ULL data types.

in mlxbf_i2c_get_ticks():

ticks = (nanoseconds * frequency) / MLXBF_I2C_FREQUENCY_1GHZ;

in mlxbf_i2c_calculate_freq_from_yu():

corepll_frequency = (MLXBF_I2C_PLL_IN_FREQ * core_f) / MLNXBF_I2C_COREPLL_CONST;
corepll_frequency /= (++core_r) * (++core_od);

in mlxbf_i2c_calculate_freq_from_tyu():

core_frequency /= (++core_r) * (++core_od);


commit 37f071ec327b0 ("i2c: mlxbf: Fix frequency calculation")


--
~Randy