Message ID | 20090415105012.29940.70431.sendpatchset@rx1.opensource.se (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Wed, Apr 15, 2009 at 07:50:12PM +0900, Magnus Damm wrote: > --- 0001/arch/sh/kernel/time_32.c > +++ work/arch/sh/kernel/time_32.c 2009-04-15 16:59:31.000000000 +0900 > @@ -233,6 +234,14 @@ void __init time_init(void) > * initialized for us. > */ > sys_timer = get_sys_timer(); > + > + /* Make sure all compiled-in early timers register themselves. > + * Run probe() for one "earlytimer" device. > + */ > + early_platform_driver_register_all("earlytimer"); > + if (early_platform_driver_probe("earlytimer", 1, 0)) > + return; > + > if (unlikely(!sys_timer)) > panic("System timer missing.\n"); > What exactly is the plan for progression from here? If the CMT clocksource and clockevent drivers are filling the role of the old CMT driver, then the sys_timer stuff needs to be isolated. As it is now, platforms that only contain the CMT will still need to use the sys_timer version, especially if they don't have multiple channels. -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Apr 15, 2009 at 8:42 PM, Paul Mundt <lethal@linux-sh.org> wrote: > On Wed, Apr 15, 2009 at 07:50:12PM +0900, Magnus Damm wrote: >> --- 0001/arch/sh/kernel/time_32.c >> +++ work/arch/sh/kernel/time_32.c   2009-04-15 16:59:31.000000000 +0900 >> @@ -233,6 +234,14 @@ void __init time_init(void) >>     * initialized for us. >>     */ >>    sys_timer = get_sys_timer(); >> + >> +   /* Make sure all compiled-in early timers register themselves. >> +    * Run probe() for one "earlytimer" device. >> +    */ >> +   early_platform_driver_register_all("earlytimer"); >> +   if (early_platform_driver_probe("earlytimer", 1, 0)) >> +       return; >> + >>    if (unlikely(!sys_timer)) >>        panic("System timer missing.\n"); >> > What exactly is the plan for progression from here? If the CMT > clocksource and clockevent drivers are filling the role of the old CMT > driver, then the sys_timer stuff needs to be isolated. As it is now, > platforms that only contain the CMT will still need to use the sys_timer > version, especially if they don't have multiple channels. Sorry about the unclear code. So the early platform stuff should be moved up before get_sys_timer(). This way sys_timer will always be NULL if earlytimer is used. I'll resend a new version. / magnus -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- 0001/arch/sh/kernel/time_32.c +++ work/arch/sh/kernel/time_32.c 2009-04-15 16:59:31.000000000 +0900 @@ -17,6 +17,7 @@ #include <linux/sched.h> #include <linux/clockchips.h> #include <linux/mc146818rtc.h> /* for rtc_lock */ +#include <linux/platform_device.h> #include <linux/smp.h> #include <asm/clock.h> #include <asm/rtc.h> @@ -233,6 +234,14 @@ void __init time_init(void) * initialized for us. */ sys_timer = get_sys_timer(); + + /* Make sure all compiled-in early timers register themselves. + * Run probe() for one "earlytimer" device. + */ + early_platform_driver_register_all("earlytimer"); + if (early_platform_driver_probe("earlytimer", 1, 0)) + return; + if (unlikely(!sys_timer)) panic("System timer missing.\n");