
On 28/04/2016 16:20, Peter Robinson wrote:
On Thu, Apr 28, 2016 at 3:07 AM, Peng Fan van.freenix@gmail.com 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 pbrobinson@gmail.com Signed-off-by: Peng Fan van.freenix@gmail.com Cc: Stefano Babic sbabic@denx.de Cc: Fabio Estevam fabio.estevam@nxp.com Cc: Tom Rini trini@konsulko.com Cc: Anatolij Gustschin agust@denx.de Cc: Peter Robinson pbrobinson@gmail.com
Tested-by: Peter Robinson pbrobinson@gmail.com
Hi Peter,
Please help test this patch to see whether this fix your issue or not. Thanks for pointing out this issue.
It fixes the build issue, I'll be installing it onto a number of devices over the next couple of days.
Thanks, Peter
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));
clk->rate = (u64)(clk->parent->rate * 16) / div;
do_div(parent_rate, div);
clk->rate = parent_rate; return 0;
}
2.6.2
Applied to u-boot-imx, thanks !
Best regards, Stefano Babic