time: Refactor usecs_to_jiffies

Refactor the usecs_to_jiffies conditional code part in time.c and
jiffies.h putting it into conditional functions rather than #ifdefs
to improve readability. This is analogous to the msecs_to_jiffies()
cleanup in commit ca42aaf0c8 ("time: Refactor msecs_to_jiffies")

Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Joe Perches <joe@perches.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Andrew Hunter <ahh@google.com>
Cc: Paul Turner <pjt@google.com>
Cc: Michal Marek <mmarek@suse.cz>
Link: http://lkml.kernel.org/r/1432832996-12129-1-git-send-email-hofrat@osadl.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Nicholas Mc Guire 2015-05-28 19:09:55 +02:00 committed by Thomas Gleixner
parent d711b8b30c
commit ae60d6a0e3
2 changed files with 29 additions and 11 deletions

View File

@ -362,7 +362,32 @@ static inline unsigned long msecs_to_jiffies(const unsigned int m)
} }
} }
extern unsigned long usecs_to_jiffies(const unsigned int u); extern unsigned long __usecs_to_jiffies(const unsigned int u);
#if HZ <= USEC_PER_SEC && !(USEC_PER_SEC % HZ)
static inline unsigned long _usecs_to_jiffies(const unsigned int u)
{
return (u + (USEC_PER_SEC / HZ) - 1) / (USEC_PER_SEC / HZ);
}
#elif HZ > USEC_PER_SEC && !(HZ % USEC_PER_SEC)
static inline unsigned long _usecs_to_jiffies(const unsigned int u)
{
return u * (HZ / USEC_PER_SEC);
}
static inline unsigned long _usecs_to_jiffies(const unsigned int u)
{
#else
static inline unsigned long _usecs_to_jiffies(const unsigned int u)
{
return (USEC_TO_HZ_MUL32 * u + USEC_TO_HZ_ADJ32)
>> USEC_TO_HZ_SHR32;
}
#endif
static inline unsigned long usecs_to_jiffies(const unsigned int u)
{
return __usecs_to_jiffies(u);
}
extern unsigned long timespec_to_jiffies(const struct timespec *value); extern unsigned long timespec_to_jiffies(const struct timespec *value);
extern void jiffies_to_timespec(const unsigned long jiffies, extern void jiffies_to_timespec(const unsigned long jiffies,
struct timespec *value); struct timespec *value);

View File

@ -522,20 +522,13 @@ unsigned long __msecs_to_jiffies(const unsigned int m)
} }
EXPORT_SYMBOL(__msecs_to_jiffies); EXPORT_SYMBOL(__msecs_to_jiffies);
unsigned long usecs_to_jiffies(const unsigned int u) unsigned long __usecs_to_jiffies(const unsigned int u)
{ {
if (u > jiffies_to_usecs(MAX_JIFFY_OFFSET)) if (u > jiffies_to_usecs(MAX_JIFFY_OFFSET))
return MAX_JIFFY_OFFSET; return MAX_JIFFY_OFFSET;
#if HZ <= USEC_PER_SEC && !(USEC_PER_SEC % HZ) return _usecs_to_jiffies(u);
return (u + (USEC_PER_SEC / HZ) - 1) / (USEC_PER_SEC / HZ);
#elif HZ > USEC_PER_SEC && !(HZ % USEC_PER_SEC)
return u * (HZ / USEC_PER_SEC);
#else
return (USEC_TO_HZ_MUL32 * u + USEC_TO_HZ_ADJ32)
>> USEC_TO_HZ_SHR32;
#endif
} }
EXPORT_SYMBOL(usecs_to_jiffies); EXPORT_SYMBOL(__usecs_to_jiffies);
/* /*
* The TICK_NSEC - 1 rounds up the value to the next resolution. Note * The TICK_NSEC - 1 rounds up the value to the next resolution. Note