Using msleep() instead of HZ
Subsystems (2)
PATCH 1/1 Using msleep() instead of HZ
Hi Andrew,
Ingo suggested me to forward you my patches which do use of msleep in order to perform short delays instead of using HZ directly.
I already sent him some, but they are against his -RT tree.
This is a modified patch, built against 2.6.12-rc6.
Signed-off by: Luca Falavigna <[email protected]>
drivers/char/rtc.c renamed from drivers/char/rtc.c.orig +3 -12
@@ -894,7 +894,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 +999,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 +1208,6 @@ static int rtc_proc_open(struct inode *ivoid 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 +1215,7 @@ void rtc_get_rtc_time(struct rtc_time *r/* * 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 +1224,7 @@ void rtc_get_rtc_time(struct rtc_time *r*/ 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
kernel/irq/autoprobe.c renamed from kernel/irq/autoprobe.c.orig +2 -4
@@ -45,8 +45,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 +67,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
I'm a bit late. I'm having troubles with my ISP. Sorry. Regards,
Signature · 1 line
Luca
Quoted 7 lines · Luca Falavigna
Hi Andrew,
Ingo suggested me to forward you my patches which do use of msleep in order to perform short delays instead of using HZ directly.
I already sent him some, but they are against his -RT tree.
This is a modified patch, built against 2.6.12-rc6.Signed-off by: Luca Falavigna <[email protected]>
Ingo
Quoted 7 lines · Luca Falavigna
Hi Andrew,
Ingo suggested me to forward you my patches which do use of msleep in order to perform short delays instead of using HZ directly.
I already sent him some, but they are against his -RT tree.
This is a modified patch, built against 2.6.12-rc6.Signed-off by: Luca Falavigna <[email protected]>
ACK