mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-04 19:54:03 +08:00
prism54: isl_38xx: Replace 'struct timeval'
'struct timeval' uses a 32-bit seconds field which will overflow in year 2038 and beyond. This patch is part of a larger effort to remove all instances of 'struct timeval' from the kernel and replace them with 64-bit timekeeping variables. The patch also fixes the debug printf specifier to avoid the seconds value being truncated. The patch was build-tested / debugged by removing the "if VERBOSE > SHOW_ERROR_MESSAGES" guards. Signed-off-by: Tina Ruchandani <ruchandani.tina@gmail.com> Suggested-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
e4c8b456c5
commit
706a527ca3
@ -19,6 +19,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/ktime.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/io.h>
|
||||
@ -113,7 +114,7 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base)
|
||||
|
||||
#if VERBOSE > SHOW_ERROR_MESSAGES
|
||||
u32 counter = 0;
|
||||
struct timeval current_time;
|
||||
struct timespec64 current_ts64;
|
||||
DEBUG(SHOW_FUNCTION_CALLS, "isl38xx trigger device\n");
|
||||
#endif
|
||||
|
||||
@ -121,22 +122,22 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base)
|
||||
if (asleep) {
|
||||
/* device is in powersave, trigger the device for wakeup */
|
||||
#if VERBOSE > SHOW_ERROR_MESSAGES
|
||||
do_gettimeofday(¤t_time);
|
||||
DEBUG(SHOW_TRACING, "%08li.%08li Device wakeup triggered\n",
|
||||
current_time.tv_sec, (long)current_time.tv_usec);
|
||||
ktime_get_real_ts64(¤t_ts64);
|
||||
DEBUG(SHOW_TRACING, "%lld.%09ld Device wakeup triggered\n",
|
||||
(s64)current_ts64.tv_sec, current_ts64.tv_nsec);
|
||||
|
||||
DEBUG(SHOW_TRACING, "%08li.%08li Device register read %08x\n",
|
||||
current_time.tv_sec, (long)current_time.tv_usec,
|
||||
DEBUG(SHOW_TRACING, "%lld.%09ld Device register read %08x\n",
|
||||
(s64)current_ts64.tv_sec, current_ts64.tv_nsec,
|
||||
readl(device_base + ISL38XX_CTRL_STAT_REG));
|
||||
#endif
|
||||
|
||||
reg = readl(device_base + ISL38XX_INT_IDENT_REG);
|
||||
if (reg == 0xabadface) {
|
||||
#if VERBOSE > SHOW_ERROR_MESSAGES
|
||||
do_gettimeofday(¤t_time);
|
||||
ktime_get_real_ts64(¤t_ts64);
|
||||
DEBUG(SHOW_TRACING,
|
||||
"%08li.%08li Device register abadface\n",
|
||||
current_time.tv_sec, (long)current_time.tv_usec);
|
||||
"%lld.%09ld Device register abadface\n",
|
||||
(s64)current_ts64.tv_sec, current_ts64.tv_nsec);
|
||||
#endif
|
||||
/* read the Device Status Register until Sleepmode bit is set */
|
||||
while (reg = readl(device_base + ISL38XX_CTRL_STAT_REG),
|
||||
@ -149,13 +150,13 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base)
|
||||
|
||||
#if VERBOSE > SHOW_ERROR_MESSAGES
|
||||
DEBUG(SHOW_TRACING,
|
||||
"%08li.%08li Device register read %08x\n",
|
||||
current_time.tv_sec, (long)current_time.tv_usec,
|
||||
"%lld.%09ld Device register read %08x\n",
|
||||
(s64)current_ts64.tv_sec, current_ts64.tv_nsec,
|
||||
readl(device_base + ISL38XX_CTRL_STAT_REG));
|
||||
do_gettimeofday(¤t_time);
|
||||
ktime_get_real_ts64(¤t_ts64);
|
||||
DEBUG(SHOW_TRACING,
|
||||
"%08li.%08li Device asleep counter %i\n",
|
||||
current_time.tv_sec, (long)current_time.tv_usec,
|
||||
"%lld.%09ld Device asleep counter %i\n",
|
||||
(s64)current_ts64.tv_sec, current_ts64.tv_nsec,
|
||||
counter);
|
||||
#endif
|
||||
}
|
||||
@ -168,9 +169,9 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base)
|
||||
|
||||
/* perform another read on the Device Status Register */
|
||||
reg = readl(device_base + ISL38XX_CTRL_STAT_REG);
|
||||
do_gettimeofday(¤t_time);
|
||||
DEBUG(SHOW_TRACING, "%08li.%08li Device register read %08x\n",
|
||||
current_time.tv_sec, (long)current_time.tv_usec, reg);
|
||||
ktime_get_real_ts64(¤t_ts64);
|
||||
DEBUG(SHOW_TRACING, "%lld.%00ld Device register read %08x\n",
|
||||
(s64)current_ts64.tv_sec, current_ts64.tv_nsec, reg);
|
||||
#endif
|
||||
} else {
|
||||
/* device is (still) awake */
|
||||
|
Loading…
Reference in New Issue
Block a user