Kyungmin Park wrote: > > On Thu, Sep 15, 2011 at 3:03 PM, Kukjin Kim <kgene.kim@xxxxxxxxxxx> wrote: > > Kukjin Kim wrote: > >> > >> Kyungmin Park wrote: > >> > > >> > Hi, > >> > > >> > It's required for boot universal c210 w/ EVT0 chip. > >> > Can you include it at 3.1 fixed branch? > >> > > >> Sure, will apply into samsung-fixes for 3.1. > > > > Unfortunately, it happens boot failure with this patch on other EXYNOS4210 > > boards and it is due to HAVE_SCHED_CLOCK. > > > >> > > + select HAVE_SCHED_CLOCK > > > > I think, we need to sort out the method... > As sched_clock_postinit is called at generic time code by > HAVE_SCHED_CLOCK. and there's no sched_clock_update_fn() is defined. > As a work-around, you can test it. > > static void sched_clock_poll(unsigned long wrap_ticks) > { > mod_timer(&sched_clock_timer, round_jiffies(jiffies + wrap_ticks)); > if (sched_clock_update_fn) > sched_clock_update_fn(); > } > Following is better than above but need Russell's review diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c index 9a46370..b1a1283 100644 --- a/arch/arm/kernel/sched_clock.c +++ b/arch/arm/kernel/sched_clock.c @@ -70,5 +70,6 @@ void __init init_sched_clock(struct clock_data *cd, void (*update)(void), void __init sched_clock_postinit(void) { - sched_clock_poll(sched_clock_timer.data); + if (sched_clock_update_fn) + sched_clock_poll(sched_clock_timer.data); } > To solve the problem correctly. you can add init_sched_clock at > "arch/arm/mach-exynos4/mct.c" properly > > Please test the work-around and share the result. I'll try to find the > proper place to add init_sched_clock at mct.c > > Thank you, > Kyungmin Park > > > > > > Thanks. > > > > Best regards, > > Kgene. > > -- > > Kukjin Kim <kgene.kim@xxxxxxxxxxx>, Senior Engineer, > > SW Solution Development Team, Samsung Electronics Co., Ltd. > > > >> > >> > Thank you, > >> > Kyungmin Park > >> > > >> > On Tue, Jul 26, 2011 at 2:50 PM, Marek Szyprowski > >> > <m.szyprowski@xxxxxxxxxxx> wrote: > >> > > Commit 069d4e743 removed support for local timers and forced to use > > MCT > >> as > >> > > event source. However MCT is not operating properly on early revision > > (EVT0) > >> > > of Exynos4 SoCs. All UniversalC210 boards are based on Exynos4 EVT0, > > so > >> > that > >> > > commit broke support for it. This patch provides a workaround that > > enables > >> > > UniversalC210 boards to boot again. s5p-timer is used as an event > > source. > >> > > > >> > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > >> > > Signed-off-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> > >> > > --- > >> > > arch/arm/mach-exynos4/Kconfig | 3 +++ > >> > > arch/arm/mach-exynos4/mach-universal_c210.c | 4 +++- > >> > > 2 files changed, 6 insertions(+), 1 deletions(-) > >> > > > >> > > diff --git a/arch/arm/mach-exynos4/Kconfig > > b/arch/arm/mach-exynos4/Kconfig > >> > > index 9d62e13..2aad73f 100644 > >> > > --- a/arch/arm/mach-exynos4/Kconfig > >> > > +++ b/arch/arm/mach-exynos4/Kconfig > >> > > @@ -173,6 +173,9 @@ config MACH_ARMLEX4210 > >> > > config MACH_UNIVERSAL_C210 > >> > > bool "Mobile UNIVERSAL_C210 Board" > >> > > select CPU_EXYNOS4210 > >> > > + select S5P_HRT > >> > > + select CLKSRC_MMIO > >> > > + select HAVE_SCHED_CLOCK > >> > > select S5P_GPIO_INT > >> > > select S5P_DEV_FIMC0 > >> > > select S5P_DEV_FIMC1 > >> > > diff --git a/arch/arm/mach-exynos4/mach-universal_c210.c > > b/arch/arm/mach- > >> > exynos4/mach-universal_c210.c > >> > > index 0e280d1..ca9e7b7 100644 > >> > > --- a/arch/arm/mach-exynos4/mach-universal_c210.c > >> > > +++ b/arch/arm/mach-exynos4/mach-universal_c210.c > >> > > @@ -34,6 +34,7 @@ > >> > > #include <plat/mfc.h> > >> > > #include <plat/sdhci.h> > >> > > #include <plat/pd.h> > >> > > +#include <plat/s5p-time.h> > >> > > > >> > > #include <mach/map.h> > >> > > > >> > > @@ -730,6 +731,7 @@ static void __init universal_map_io(void) > >> > > s5p_init_io(NULL, 0, S5P_VA_CHIPID); > >> > > s3c24xx_init_clocks(24000000); > >> > > s3c24xx_init_uarts(universal_uartcfgs, > > ARRAY_SIZE(universal_uartcfgs)); > >> > > + s5p_set_timer_source(S5P_PWM2, S5P_PWM4); > >> > > } > >> > > > >> > > static void __init universal_reserve(void) > >> > > @@ -766,6 +768,6 @@ MACHINE_START(UNIVERSAL_C210, > >> > "UNIVERSAL_C210") > >> > > .init_irq = exynos4_init_irq, > >> > > .map_io = universal_map_io, > >> > > .init_machine = universal_machine_init, > >> > > - .timer = &exynos4_timer, > >> > > + .timer = &s5p_timer, > >> > > .reserve = &universal_reserve, > >> > > MACHINE_END > >> > > -- > >> > > 1.7.1.569.g6f426 > >> > > > >> > > -- Thanks. Best regards, Kgene. -- Kukjin Kim <kgene.kim@xxxxxxxxxxx>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html