diff mbox series

i2c: mlxbf: Allow build with COMPILE_TEST

Message ID 20250505215854.2896383-1-andi.shyti@kernel.org
State New
Headers show
Series i2c: mlxbf: Allow build with COMPILE_TEST | expand

Commit Message

Andi Shyti May 5, 2025, 9:58 p.m. UTC
Extend the Kconfig dependency to include COMPILE_TEST so the
Mellanox BlueField I2C driver can be built on non-ARM64 platforms
for compile testing purposes.

Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Cc: Khalil Blaiech <kblaiech@nvidia.com>
Cc: Asmaa Mnebhi <asmaa@nvidia.com>
---
 drivers/i2c/busses/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andi Shyti May 8, 2025, 10:10 a.m. UTC | #1
Hi,

On Mon, May 05, 2025 at 11:58:54PM +0200, Andi Shyti wrote:
> Extend the Kconfig dependency to include COMPILE_TEST so the
> Mellanox BlueField I2C driver can be built on non-ARM64 platforms
> for compile testing purposes.
> 
> Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
> Cc: Khalil Blaiech <kblaiech@nvidia.com>
> Cc: Asmaa Mnebhi <asmaa@nvidia.com>

merged into i2c/i2c-host.

Andi
Khalil Blaiech May 8, 2025, 1:40 p.m. UTC | #2
Thanks Andi

-----Original Message-----
From: Andi Shyti <andi.shyti@kernel.org> 
Sent: Thursday, May 8, 2025 6:11 AM
To: linux-i2c <linux-i2c@vger.kernel.org>
Cc: Khalil Blaiech <kblaiech@nvidia.com>; Asmaa Mnebhi <asmaa@nvidia.com>
Subject: Re: [PATCH] i2c: mlxbf: Allow build with COMPILE_TEST

Hi,

On Mon, May 05, 2025 at 11:58:54PM +0200, Andi Shyti wrote:
> Extend the Kconfig dependency to include COMPILE_TEST so the Mellanox 
> BlueField I2C driver can be built on non-ARM64 platforms for compile 
> testing purposes.
> 
> Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
> Cc: Khalil Blaiech <kblaiech@nvidia.com>
> Cc: Asmaa Mnebhi <asmaa@nvidia.com>

merged into i2c/i2c-host.

Andi
Nathan Chancellor May 10, 2025, 7:50 p.m. UTC | #3
On Mon, May 05, 2025 at 11:58:54PM +0200, Andi Shyti wrote:
> Extend the Kconfig dependency to include COMPILE_TEST so the
> Mellanox BlueField I2C driver can be built on non-ARM64 platforms
> for compile testing purposes.
> 
> Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
> Cc: Khalil Blaiech <kblaiech@nvidia.com>
> Cc: Asmaa Mnebhi <asmaa@nvidia.com>
> ---
>  drivers/i2c/busses/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
> index adb2910525b1..9f216d5db91d 100644
> --- a/drivers/i2c/busses/Kconfig
> +++ b/drivers/i2c/busses/Kconfig
> @@ -855,7 +855,7 @@ config I2C_LS2X
>  
>  config I2C_MLXBF
>          tristate "Mellanox BlueField I2C controller"
> -        depends on MELLANOX_PLATFORM && ARM64
> +        depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
>  	depends on ACPI
>  	select I2C_SLAVE
>          help
> -- 
> 2.49.0
> 

There are 64-bit divides in several places within this driver so this
patch breaks the build on 32-bit platforms when compile testing now:

  i386-linux-ld: drivers/i2c/busses/i2c-mlxbf.o: in function `mlxbf_i2c_calculate_freq_from_tyu':
  i2c-mlxbf.c:(.text+0x3e): undefined reference to `__udivdi3'
  i386-linux-ld: drivers/i2c/busses/i2c-mlxbf.o: in function `mlxbf_i2c_calculate_freq_from_yu':
  i2c-mlxbf.c:(.text+0x8e): undefined reference to `__udivdi3'
  i386-linux-ld: drivers/i2c/busses/i2c-mlxbf.o: in function `mlxbf_i2c_probe':
  i2c-mlxbf.c:(.text+0x1749): undefined reference to `__udivdi3'
  i386-linux-ld: i2c-mlxbf.c:(.text+0x1769): undefined reference to `__udivdi3'
  i386-linux-ld: i2c-mlxbf.c:(.text+0x17c0): undefined reference to `__udivdi3'
  i386-linux-ld: drivers/i2c/busses/i2c-mlxbf.o:i2c-mlxbf.c:(.text+0x17e6): more undefined references to `__udivdi3' follow

Cheers,
Nathan
Andi Shyti May 12, 2025, 10:55 p.m. UTC | #4
Hi Nathan,

On Sat, May 10, 2025 at 08:50:48PM +0100, Nathan Chancellor wrote:
> On Mon, May 05, 2025 at 11:58:54PM +0200, Andi Shyti wrote:
> > Extend the Kconfig dependency to include COMPILE_TEST so the
> > Mellanox BlueField I2C driver can be built on non-ARM64 platforms
> > for compile testing purposes.
> > 
> > Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
> > Cc: Khalil Blaiech <kblaiech@nvidia.com>
> > Cc: Asmaa Mnebhi <asmaa@nvidia.com>
> > ---
> >  drivers/i2c/busses/Kconfig | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
> > index adb2910525b1..9f216d5db91d 100644
> > --- a/drivers/i2c/busses/Kconfig
> > +++ b/drivers/i2c/busses/Kconfig
> > @@ -855,7 +855,7 @@ config I2C_LS2X
> >  
> >  config I2C_MLXBF
> >          tristate "Mellanox BlueField I2C controller"
> > -        depends on MELLANOX_PLATFORM && ARM64
> > +        depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
> >  	depends on ACPI
> >  	select I2C_SLAVE
> >          help
> > -- 
> > 2.49.0
> > 
> 
> There are 64-bit divides in several places within this driver so this
> patch breaks the build on 32-bit platforms when compile testing now:
> 
>   i386-linux-ld: drivers/i2c/busses/i2c-mlxbf.o: in function `mlxbf_i2c_calculate_freq_from_tyu':
>   i2c-mlxbf.c:(.text+0x3e): undefined reference to `__udivdi3'
>   i386-linux-ld: drivers/i2c/busses/i2c-mlxbf.o: in function `mlxbf_i2c_calculate_freq_from_yu':
>   i2c-mlxbf.c:(.text+0x8e): undefined reference to `__udivdi3'
>   i386-linux-ld: drivers/i2c/busses/i2c-mlxbf.o: in function `mlxbf_i2c_probe':
>   i2c-mlxbf.c:(.text+0x1749): undefined reference to `__udivdi3'
>   i386-linux-ld: i2c-mlxbf.c:(.text+0x1769): undefined reference to `__udivdi3'
>   i386-linux-ld: i2c-mlxbf.c:(.text+0x17c0): undefined reference to `__udivdi3'
>   i386-linux-ld: drivers/i2c/busses/i2c-mlxbf.o:i2c-mlxbf.c:(.text+0x17e6): more undefined references to `__udivdi3' follow

arghh... you're right! Thanks for testing this! I reverted my
patch for now.

Thanks,
Andi
diff mbox series

Patch

diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index adb2910525b1..9f216d5db91d 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -855,7 +855,7 @@  config I2C_LS2X
 
 config I2C_MLXBF
         tristate "Mellanox BlueField I2C controller"
-        depends on MELLANOX_PLATFORM && ARM64
+        depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
 	depends on ACPI
 	select I2C_SLAVE
         help