diff options
| author | Luca Falavigna <dktrkranz@gmail.com> | 2005-06-28 20:44:42 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-28 21:20:29 -0700 | 
| commit | 47f176fdaf8924bc83fddcf9658f2fd3ef60d573 (patch) | |
| tree | ae54af35889451bf7873595180365182bd704ff1 | |
| parent | 8d451687ca57371d303c5554b377d7f5c2ac6ae0 (diff) | |
[PATCH] Using msleep() instead of HZ
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>
| -rw-r--r-- | drivers/char/rtc.c | 16 | ||||
| -rw-r--r-- | kernel/irq/autoprobe.c | 9 | 
2 files changed, 8 insertions, 17 deletions
| diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c index ff4f09804865..d8f9e94ae475 100644 --- a/drivers/char/rtc.c +++ b/drivers/char/rtc.c @@ -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> @@ -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__ @@ -1000,12 +1000,8 @@ no_irq:  	/* 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); @@ -1213,7 +1209,6 @@ 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; @@ -1221,7 +1216,7 @@ void rtc_get_rtc_time(struct rtc_time *rtc_tm)  	/*  	 * 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  @@ -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 diff --git a/kernel/irq/autoprobe.c b/kernel/irq/autoprobe.c index 98d62d8efeaf..3467097ca61a 100644 --- a/kernel/irq/autoprobe.c +++ b/kernel/irq/autoprobe.c @@ -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 @@ -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; @@ -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 @@ -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 | 
