timer: dw-apb: Add missing 64bit up-conversion
authorMarek Vasut <marex@denx.de>
Wed, 10 Apr 2019 11:44:05 +0000 (13:44 +0200)
committerMarek Vasut <marex@denx.de>
Wed, 17 Apr 2019 20:20:18 +0000 (22:20 +0200)
commite09c1a133155724d3369e150f3ab7b63c875101c
tree81e0d1d30128fbf2a15881d3622c8d0e25506a8d
parent2c494e62c31a34746d88511e075aa187ac3f7d10
timer: dw-apb: Add missing 64bit up-conversion

The generic timer count is an incrementing 64bit value and a timer driver
must return an incrementing 64bit value. The DW APB timer only provides a
32bit timer counting down, thus the result must be inverted and converted
to a 64bit value. The current implementation is however missing the 64bit
up-conversion and this results in random timer roll-overs, which in turn
triggers random timeouts throughout the codebase.

This patch adds the missing 64bit up-conversion to fix the issue.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Chin Liang See <chin.liang.see@intel.com>
Cc: Dinh Nguyen <dinguyen@kernel.org>
Cc: Ley Foon Tan <ley.foon.tan@intel.com>
Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Cc: Tien Fong Chee <tien.fong.chee@intel.com>
drivers/timer/dw-apb-timer.c