Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 54334
b: refs/heads/master
c: ee17b36
h: refs/heads/master
v: v3
  • Loading branch information
john stultz authored and Linus Torvalds committed May 7, 2007
1 parent 0c2fb0a commit 24019e6
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 76 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c2f239d93e8af991392871c57465cb2ac556b482
refs/heads/master: ee17b36fd0dc2af37ea92548595e30964674ded8
4 changes: 4 additions & 0 deletions trunk/arch/v850/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ config GENERIC_IRQ_PROBE
bool
default y

config GENERIC_TIME
bool
default y

config TIME_LOW_RES
bool
default y
Expand Down
75 changes: 0 additions & 75 deletions trunk/arch/v850/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,81 +90,6 @@ static irqreturn_t timer_interrupt (int irq, void *dummy, struct pt_regs *regs)
return IRQ_HANDLED;
}

/*
* This version of gettimeofday has near microsecond resolution.
*/
void do_gettimeofday (struct timeval *tv)
{
#if 0 /* DAVIDM later if possible */
extern volatile unsigned long lost_ticks;
unsigned long lost;
#endif
unsigned long flags;
unsigned long usec, sec;
unsigned long seq;

do {
seq = read_seqbegin_irqsave(&xtime_lock, flags);

#if 0
usec = mach_gettimeoffset ? mach_gettimeoffset () : 0;
#else
usec = 0;
#endif
#if 0 /* DAVIDM later if possible */
lost = lost_ticks;
if (lost)
usec += lost * (1000000/HZ);
#endif
sec = xtime.tv_sec;
usec += xtime.tv_nsec / 1000;
} while (read_seqretry_irqrestore(&xtime_lock, seq, flags));

while (usec >= 1000000) {
usec -= 1000000;
sec++;
}

tv->tv_sec = sec;
tv->tv_usec = usec;
}

EXPORT_SYMBOL(do_gettimeofday);

int do_settimeofday(struct timespec *tv)
{
if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
return -EINVAL;

write_seqlock_irq (&xtime_lock);

/* This is revolting. We need to set the xtime.tv_nsec
* correctly. However, the value in this location is
* is value at the last tick.
* Discover what correction gettimeofday
* would have done, and then undo it!
*/
#if 0
tv->tv_nsec -= mach_gettimeoffset() * 1000;
#endif

while (tv->tv_nsec < 0) {
tv->tv_nsec += NSEC_PER_SEC;
tv->tv_sec--;
}

xtime.tv_sec = tv->tv_sec;
xtime.tv_nsec = tv->tv_nsec;

ntp_clear();

write_sequnlock_irq (&xtime_lock);
clock_was_set();
return 0;
}

EXPORT_SYMBOL(do_settimeofday);

static int timer_dev_id;
static struct irqaction timer_irqaction = {
timer_interrupt,
Expand Down

0 comments on commit 24019e6

Please sign in to comment.