From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guenter Roeck Date: Fri, 05 Jun 2015 20:23:22 +0000 Subject: Re: [PATCH -next] fbdev: radeon: Avoid 64 bit divide Message-Id: <5572053A.6060903@roeck-us.net> List-Id: References: <1433527521-5384-1-git-send-email-linux@roeck-us.net> <1433534917.4526.105.camel@kernel.crashing.org> In-Reply-To: <1433534917.4526.105.camel@kernel.crashing.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Benjamin Herrenschmidt Cc: Jean-Christophe Plagniol-Villard , Tomi Valkeinen , linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org, Tina Ruchandani On 06/05/2015 01:08 PM, Benjamin Herrenschmidt wrote: > On Fri, 2015-06-05 at 11:05 -0700, Guenter Roeck wrote: >> A 64 bit divide causes build failures with 32 bit builds, such as >> >> ERROR: "__divdi3" [drivers/video/fbdev/aty/radeonfb.ko] undefined! >> >> or >> >> drivers/built-in.o: In function `radeon_probe_pll_params': >> radeon_base.c:(.text+0x16608b): undefined reference to `__divdi3' > > What about using do_div() instead ? > delta is known to be <= 10*1000000, so I figured that would have been overkill. But, sure, at the end it is the same. Want me to resubmit ? Guenter >> Fixes: ce8f4069dce8 ("fbdev: radeon: Remove 'struct timeval' usage") >> Cc: Tina Ruchandani >> Signed-off-by: Guenter Roeck >> --- >> drivers/video/fbdev/aty/radeon_base.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c >> index b3612e30d74f..374e47532035 100644 >> --- a/drivers/video/fbdev/aty/radeon_base.c >> +++ b/drivers/video/fbdev/aty/radeon_base.c >> @@ -492,7 +492,7 @@ static int radeon_probe_pll_params(struct radeonfb_info *rinfo) >> /* Return -1 if more than 10 seconds have elapsed */ >> if (delta > (10*1000000)) >> return -1; >> - hz = 1000000/delta; >> + hz = 1000000 / (int)delta; >> >> hTotal = ((INREG(CRTC_H_TOTAL_DISP) & 0x1ff) + 1) * 8; >> vTotal = ((INREG(CRTC_V_TOTAL_DISP) & 0x3ff) + 1); > > > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752678AbbFEUXa (ORCPT ); Fri, 5 Jun 2015 16:23:30 -0400 Received: from bh-25.webhostbox.net ([208.91.199.152]:36308 "EHLO bh-25.webhostbox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751688AbbFEUX0 (ORCPT ); Fri, 5 Jun 2015 16:23:26 -0400 Message-ID: <5572053A.6060903@roeck-us.net> Date: Fri, 05 Jun 2015 13:23:22 -0700 From: Guenter Roeck User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Benjamin Herrenschmidt CC: Jean-Christophe Plagniol-Villard , Tomi Valkeinen , linux-fbdev@vger.kernel.org, linux-kernel@vger.kernel.org, Tina Ruchandani Subject: Re: [PATCH -next] fbdev: radeon: Avoid 64 bit divide References: <1433527521-5384-1-git-send-email-linux@roeck-us.net> <1433534917.4526.105.camel@kernel.crashing.org> In-Reply-To: <1433534917.4526.105.camel@kernel.crashing.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Authenticated_sender: linux@roeck-us.net X-OutGoing-Spam-Status: No, score=-1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bh-25.webhostbox.net X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - roeck-us.net X-Get-Message-Sender-Via: bh-25.webhostbox.net: authenticated_id: linux@roeck-us.net X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/05/2015 01:08 PM, Benjamin Herrenschmidt wrote: > On Fri, 2015-06-05 at 11:05 -0700, Guenter Roeck wrote: >> A 64 bit divide causes build failures with 32 bit builds, such as >> >> ERROR: "__divdi3" [drivers/video/fbdev/aty/radeonfb.ko] undefined! >> >> or >> >> drivers/built-in.o: In function `radeon_probe_pll_params': >> radeon_base.c:(.text+0x16608b): undefined reference to `__divdi3' > > What about using do_div() instead ? > delta is known to be <= 10*1000000, so I figured that would have been overkill. But, sure, at the end it is the same. Want me to resubmit ? Guenter >> Fixes: ce8f4069dce8 ("fbdev: radeon: Remove 'struct timeval' usage") >> Cc: Tina Ruchandani >> Signed-off-by: Guenter Roeck >> --- >> drivers/video/fbdev/aty/radeon_base.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c >> index b3612e30d74f..374e47532035 100644 >> --- a/drivers/video/fbdev/aty/radeon_base.c >> +++ b/drivers/video/fbdev/aty/radeon_base.c >> @@ -492,7 +492,7 @@ static int radeon_probe_pll_params(struct radeonfb_info *rinfo) >> /* Return -1 if more than 10 seconds have elapsed */ >> if (delta > (10*1000000)) >> return -1; >> - hz = 1000000/delta; >> + hz = 1000000 / (int)delta; >> >> hTotal = ((INREG(CRTC_H_TOTAL_DISP) & 0x1ff) + 1) * 8; >> vTotal = ((INREG(CRTC_V_TOTAL_DISP) & 0x3ff) + 1); > > >