From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Nelson Date: Mon, 4 Sep 2017 19:48:56 -0700 Subject: [U-Boot] video: ipu_common: fix build error In-Reply-To: <1461809273-4603-1-git-send-email-van.freenix@gmail.com> References: <1461809273-4603-1-git-send-email-van.freenix@gmail.com> Message-ID: <7275421f-e4b0-0be4-a856-b9b4159b6845@cox.net> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Peng, Can you tell that I'm hunting a bug in an old version? I'm seeing a **very** intermittent regression between U-Boot versions 2015.07 and 2016.05 and happened to spot something in this patch. On 04/27/2016 07:07 PM, Peng Fan wrote: > Some toolchains fail to build > "clk->rate = (u64)(clk->parent->rate * 16) / div;" > And the cast usage is wrong. > > Use the following code to fix the issue, > " > do_div(parent_rate, div); > clk->rate = parent_rate; > " > > Reported-by: Peter Robinson > Signed-off-by: Peng Fan > Cc: Stefano Babic > Cc: Fabio Estevam > Cc: Tom Rini > Cc: Anatolij Gustschin > Cc: Peter Robinson > Reviewed-by: Tom Rini > Tested-by: Peter Robinson > --- > > Hi Peter, > > Please help test this patch to see whether this fix your issue or not. > Thanks for pointing out this issue. > > Thanks, > Peng. > > drivers/video/ipu_common.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c > index 36d4b23..5676a0f 100644 > --- a/drivers/video/ipu_common.c > +++ b/drivers/video/ipu_common.c > @@ -352,7 +352,9 @@ static int ipu_pixel_clk_set_rate(struct clk *clk, unsigned long rate) > */ > __raw_writel((div / 16) << 16, DI_BS_CLKGEN1(clk->id)); > Did we lose a multiply by 16 in this change? > - clk->rate = (u64)(clk->parent->rate * 16) / div; > + do_div(parent_rate, div); > + > + clk->rate = parent_rate; > > return 0; > } > Please advise, Eric