Skip to content

Commit

Permalink
[PATCH] uml: s390 preparation, delay moved to arch
Browse files Browse the repository at this point in the history
s390 has fast read access to realtime clock (nanosecond resolution).  So it
makes sense to have an arch-specific implementation not only of __delay, but
__udelay also.

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Bodo Stroesser authored and Linus Torvalds committed May 5, 2005
1 parent 7d37c6d commit 5fd861b
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 21 deletions.
3 changes: 0 additions & 3 deletions arch/um/kernel/ksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include "linux/spinlock.h"
#include "linux/highmem.h"
#include "asm/current.h"
#include "asm/delay.h"
#include "asm/processor.h"
#include "asm/unistd.h"
#include "asm/pgalloc.h"
Expand All @@ -28,8 +27,6 @@ EXPORT_SYMBOL(uml_physmem);
EXPORT_SYMBOL(set_signals);
EXPORT_SYMBOL(get_signals);
EXPORT_SYMBOL(kernel_thread);
EXPORT_SYMBOL(__const_udelay);
EXPORT_SYMBOL(__udelay);
EXPORT_SYMBOL(sys_waitpid);
EXPORT_SYMBOL(task_size);
EXPORT_SYMBOL(flush_tlb_range);
Expand Down
18 changes: 0 additions & 18 deletions arch/um/kernel/time_kern.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ static unsigned long long prev_usecs;
static long long delta; /* Deviation per interval */
#endif

#define MILLION 1000000

void timer_irq(union uml_pt_regs *regs)
{
unsigned long long ticks = 0;
Expand Down Expand Up @@ -136,22 +134,6 @@ long um_stime(int __user *tptr)
return 0;
}

void __udelay(unsigned long usecs)
{
int i, n;

n = (loops_per_jiffy * HZ * usecs) / MILLION;
for(i=0;i<n;i++) ;
}

void __const_udelay(unsigned long usecs)
{
int i, n;

n = (loops_per_jiffy * HZ * usecs) / MILLION;
for(i=0;i<n;i++) ;
}

void timer_handler(int sig, union uml_pt_regs *regs)
{
local_irq_disable();
Expand Down
18 changes: 18 additions & 0 deletions arch/um/sys-i386/delay.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
#include "linux/delay.h"
#include "asm/param.h"

void __delay(unsigned long time)
{
/* Stolen from the i386 __loop_delay */
Expand All @@ -12,3 +15,18 @@ void __delay(unsigned long time)
:"0" (time));
}

void __udelay(unsigned long usecs)
{
int i, n;

n = (loops_per_jiffy * HZ * usecs) / MILLION;
for(i=0;i<n;i++) ;
}

void __const_udelay(unsigned long usecs)
{
int i, n;

n = (loops_per_jiffy * HZ * usecs) / MILLION;
for(i=0;i<n;i++) ;
}
5 changes: 5 additions & 0 deletions arch/um/sys-i386/ksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include "linux/in6.h"
#include "linux/rwsem.h"
#include "asm/byteorder.h"
#include "asm/delay.h"
#include "asm/semaphore.h"
#include "asm/uaccess.h"
#include "asm/checksum.h"
Expand All @@ -14,3 +15,7 @@ EXPORT_SYMBOL(__up_wakeup);

/* Networking helper routines. */
EXPORT_SYMBOL(csum_partial);

/* delay core functions */
EXPORT_SYMBOL(__const_udelay);
EXPORT_SYMBOL(__udelay);
18 changes: 18 additions & 0 deletions arch/um/sys-x86_64/delay.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
* Licensed under the GPL
*/

#include "linux/delay.h"
#include "asm/processor.h"
#include "asm/param.h"

void __delay(unsigned long loops)
{
Expand All @@ -14,6 +16,22 @@ void __delay(unsigned long loops)
for(i = 0; i < loops; i++) ;
}

void __udelay(unsigned long usecs)
{
int i, n;

n = (loops_per_jiffy * HZ * usecs) / MILLION;
for(i=0;i<n;i++) ;
}

void __const_udelay(unsigned long usecs)
{
int i, n;

n = (loops_per_jiffy * HZ * usecs) / MILLION;
for(i=0;i<n;i++) ;
}

/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
Expand Down
2 changes: 2 additions & 0 deletions include/asm-um/delay.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@
#include "asm/arch/delay.h"
#include "asm/archparam.h"

#define MILLION 1000000

#endif

0 comments on commit 5fd861b

Please sign in to comment.