WATCHDOG: sb_wdog: Fix 32 bit build failure
authorRalf Baechle <ralf@linux-mips.org>
Wed, 19 Jun 2013 08:57:33 +0000 (10:57 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 21 Jun 2013 16:07:03 +0000 (18:07 +0200)
commitcd6cbde6b01b6e82662cad392c0d177b4af17443
tree3e5dd20791914dbb7696f30e4e07cc49a5f4ff18
parent318883517ebc56e1f9068597e9875f578016e225
WATCHDOG: sb_wdog: Fix 32 bit build failure

Fixes the following linking problem:
drivers/watchdog/sb_wdog.c:211: undefined reference to `__udivdi3'

This results from reading a 64 bit register, then dividing the value by
1000000.  For 32 bit kernels gcc will use the helper function __udivdi3
from libgcc which the kernel intentionally doesn't provide.

In the read registerbits 23..63 are always zero and only bits 0..22 are
signficant.  So a simple cast to truncate the read value to 32 bits
fixes the issue.

Reported and initial patch by Markos Chandras <markos.chandras@imgtec.com>.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Reported-by: Markos Chandras <markos.chandras@imgtec.com>
drivers/watchdog/sb_wdog.c