Skip to content

Commit

Permalink
[PATCH] Using msleep() instead of HZ
Browse files Browse the repository at this point in the history
Use msleep() in a few places.

Signed-off-by: Luca Falavigna <dktrkranz@gmail.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Luca Falavigna authored and Linus Torvalds committed Jun 29, 2005
1 parent 8d45168 commit 47f176f
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 17 deletions.
16 changes: 4 additions & 12 deletions drivers/char/rtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
#include <linux/sysctl.h>
#include <linux/wait.h>
#include <linux/bcd.h>
#include <linux/delay.h>

#include <asm/current.h>
#include <asm/uaccess.h>
Expand Down Expand Up @@ -894,7 +895,6 @@ static int __init rtc_init(void)
struct proc_dir_entry *ent;
#if defined(__alpha__) || defined(__mips__)
unsigned int year, ctrl;
unsigned long uip_watchdog;
char *guess = NULL;
#endif
#ifdef __sparc__
Expand Down Expand Up @@ -1000,12 +1000,8 @@ static int __init rtc_init(void)
/* Each operating system on an Alpha uses its own epoch.
Let's try to guess which one we are using now. */

uip_watchdog = jiffies;
if (rtc_is_updating() != 0)
while (jiffies - uip_watchdog < 2*HZ/100) {
barrier();
cpu_relax();
}
msleep(20);

spin_lock_irq(&rtc_lock);
year = CMOS_READ(RTC_YEAR);
Expand Down Expand Up @@ -1213,15 +1209,14 @@ static int rtc_proc_open(struct inode *inode, struct file *file)

void rtc_get_rtc_time(struct rtc_time *rtc_tm)
{
unsigned long uip_watchdog = jiffies;
unsigned char ctrl;
#ifdef CONFIG_MACH_DECSTATION
unsigned int real_year;
#endif

/*
* read RTC once any update in progress is done. The update
* can take just over 2ms. We wait 10 to 20ms. There is no need to
* can take just over 2ms. We wait 20ms. There is no need to
* to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP.
* If you need to know *exactly* when a second has started, enable
* periodic update complete interrupts, (via ioctl) and then
Expand All @@ -1230,10 +1225,7 @@ void rtc_get_rtc_time(struct rtc_time *rtc_tm)
*/

if (rtc_is_updating() != 0)
while (jiffies - uip_watchdog < 2*HZ/100) {
barrier();
cpu_relax();
}
msleep(20);

/*
* Only the values that we read from the RTC are set. We leave
Expand Down
9 changes: 4 additions & 5 deletions kernel/irq/autoprobe.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <linux/irq.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/delay.h>

/*
* Autodetection depends on the fact that any interrupt that
Expand All @@ -26,7 +27,7 @@ static DECLARE_MUTEX(probe_sem);
*/
unsigned long probe_irq_on(void)
{
unsigned long val, delay;
unsigned long val;
irq_desc_t *desc;
unsigned int i;

Expand All @@ -45,8 +46,7 @@ unsigned long probe_irq_on(void)
}

/* Wait for longstanding interrupts to trigger. */
for (delay = jiffies + HZ/50; time_after(delay, jiffies); )
/* about 20ms delay */ barrier();
msleep(20);

/*
* enable any unassigned irqs
Expand All @@ -68,8 +68,7 @@ unsigned long probe_irq_on(void)
/*
* Wait for spurious interrupts to trigger
*/
for (delay = jiffies + HZ/10; time_after(delay, jiffies); )
/* about 100ms delay */ barrier();
msleep(100);

/*
* Now filter out any obviously spurious interrupts
Expand Down

0 comments on commit 47f176f

Please sign in to comment.