Patchwork [linux-next] i2c-designware: use div_u64 to fix link

login
register
mail settings
Submitter Vincent Stehlé
Date July 2, 2013, 9:46 a.m.
Message ID <1372758414-21513-1-git-send-email-vincent.stehle@freescale.com>
Download mbox | patch
Permalink /patch/256309/
State Accepted
Headers show

Comments

Vincent Stehlé - July 2, 2013, 9:46 a.m.
This fixes the following link error:

  drivers/built-in.o: In function `dw_i2c_probe':
  of_iommu.c:(.text+0x18c8f0): undefined reference to `__aeabi_uldivmod'
  make: *** [vmlinux] Error 1

Signed-off-by: Vincent Stehlé <vincent.stehle@freescale.com>
Cc: Wolfram Sang <wsa@the-dreams.de>
Cc: Christian Ruppert <christian.ruppert@abilis.com>
Cc: Pierrick Hascoet <pierrick.hascoet@abilis.com>
---


Hi,

Linux next-20130702 link broke for ARM config multi_v7_defconfig. This is with
gcc 4.7.2 but I am not sure it matters much here.

This patch repairs the link.

It did not break anything for me on i.MX6 sabre sd, but it does'nt have a
designware i2c, so more reviewing/testing is welcome.

Best regards,

V.


 drivers/i2c/busses/i2c-designware-platdrv.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Kevin Hilman - July 2, 2013, 9:12 p.m.
On Tue, Jul 2, 2013 at 2:46 AM, Vincent Stehlé
<vincent.stehle@freescale.com> wrote:
> This fixes the following link error:
>
>   drivers/built-in.o: In function `dw_i2c_probe':
>   of_iommu.c:(.text+0x18c8f0): undefined reference to `__aeabi_uldivmod'
>   make: *** [vmlinux] Error 1
>
> Signed-off-by: Vincent Stehlé <vincent.stehle@freescale.com>
> Cc: Wolfram Sang <wsa@the-dreams.de>
> Cc: Christian Ruppert <christian.ruppert@abilis.com>
> Cc: Pierrick Hascoet <pierrick.hascoet@abilis.com>
> ---
>
>
> Hi,
>
> Linux next-20130702 link broke for ARM config multi_v7_defconfig. This is with
> gcc 4.7.2 but I am not sure it matters much here.
>
> This patch repairs the link.
>
> It did not break anything for me on i.MX6 sabre sd, but it does'nt have a
> designware i2c, so more reviewing/testing is welcome.

This also broke a handful of other ARM defconfigs (notably spear*_defconfig,)

I build tested this on top of next-20130702 for multi_v7_defconfig as
well as all 3 spear defconfigs, and confirm that linux-next is back to
building for those platforms.

Tested-by: Kevin Hilman <khilman@linaro.org.

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Christian Ruppert - July 3, 2013, 8:44 a.m.
On Tue, Jul 02, 2013 at 11:46:54AM +0200, Vincent Stehlll wrote:
> This fixes the following link error:
> 
>   drivers/built-in.o: In function `dw_i2c_probe':
>   of_iommu.c:(.text+0x18c8f0): undefined reference to `__aeabi_uldivmod'
>   make: *** [vmlinux] Error 1

Looks good. I also tested it on our ARC based platform, no issues with
compilation or functionality. Thanks for pointing this out.

Reviewed-by: Christian Ruppert <christian.ruppert@abilis.com>

> Signed-off-by: Vincent Stehlé <vincent.stehle@freescale.com>
> Cc: Wolfram Sang <wsa@the-dreams.de>
> Cc: Christian Ruppert <christian.ruppert@abilis.com>
> Cc: Pierrick Hascoet <pierrick.hascoet@abilis.com>
> ---
> 
> 
> Hi,
> 
> Linux next-20130702 link broke for ARM config multi_v7_defconfig. This is with
> gcc 4.7.2 but I am not sure it matters much here.
> 
> This patch repairs the link.
> 
> It did not break anything for me on i.MX6 sabre sd, but it does'nt have a
> designware i2c, so more reviewing/testing is welcome.
> 
> Best regards,
> 
> V.
> 
> 
>  drivers/i2c/busses/i2c-designware-platdrv.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
> index def79b5..4c5fada 100644
> --- a/drivers/i2c/busses/i2c-designware-platdrv.c
> +++ b/drivers/i2c/busses/i2c-designware-platdrv.c
> @@ -122,7 +122,8 @@ static int dw_i2c_probe(struct platform_device *pdev)
>  
>  		of_property_read_u32(pdev->dev.of_node,
>  					"i2c-sda-hold-time-ns", &ht);
> -		dev->sda_hold_time = ((u64)ic_clk * ht + 500000) / 1000000;
> +		dev->sda_hold_time = div_u64((u64)ic_clk * ht + 500000,
> +					     1000000);
>  	}
>  
>  	dev->functionality =
> -- 
> 1.7.10.4
> 
> 
>
Wolfram Sang - July 3, 2013, 8:09 p.m.
On Tue, Jul 02, 2013 at 11:46:54AM +0200, Vincent Stehlé wrote:
> This fixes the following link error:
> 
>   drivers/built-in.o: In function `dw_i2c_probe':
>   of_iommu.c:(.text+0x18c8f0): undefined reference to `__aeabi_uldivmod'
>   make: *** [vmlinux] Error 1
> 
> Signed-off-by: Vincent Stehlé <vincent.stehle@freescale.com>

Applied to for-next, thanks!

Patch

diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index def79b5..4c5fada 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -122,7 +122,8 @@  static int dw_i2c_probe(struct platform_device *pdev)
 
 		of_property_read_u32(pdev->dev.of_node,
 					"i2c-sda-hold-time-ns", &ht);
-		dev->sda_hold_time = ((u64)ic_clk * ht + 500000) / 1000000;
+		dev->sda_hold_time = div_u64((u64)ic_clk * ht + 500000,
+					     1000000);
 	}
 
 	dev->functionality =