Message ID | 20220921062642.910994-2-sr@denx.de |
---|---|
State | Awaiting Upstream |
Delegated to: | Stefan Roese |
Headers | show |
Series | [1/2] arm: mvebu: Remove timer.c | expand |
On 21.09.22 08:26, Stefan Roese wrote: > Move the code making sure that the timer is initialized only once into > orion_timer_init(), which is called from timer_early_init() and from > orion_timer_probe(). This way the timer is not re-initialized. > > Signed-off-by: Stefan Roese <sr@denx.de> > Cc: Michael Walle <michael@walle.cc> > Cc: Pali Rohár <pali@kernel.org> Applied to u-boot-marvell/master Thanks, Stefan > --- > drivers/timer/orion-timer.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/timer/orion-timer.c b/drivers/timer/orion-timer.c > index cd63ea916237..d0eab3ce781d 100644 > --- a/drivers/timer/orion-timer.c > +++ b/drivers/timer/orion-timer.c > @@ -28,6 +28,11 @@ static bool early_init_done __section(".data") = false; > /* Common functions for early (boot) and DM based timer */ > static void orion_timer_init(void *base, enum input_clock_type type) > { > + /* Only init the timer once */ > + if (early_init_done) > + return; > + early_init_done = true; > + > writel(~0, base + TIMER0_VAL); > writel(~0, base + TIMER0_RELOAD); > > @@ -51,11 +56,6 @@ static uint64_t orion_timer_get_count(void *base) > /* Early (e.g. bootstage etc) timer functions */ > static void notrace timer_early_init(void) > { > - /* Only init the timer once */ > - if (early_init_done) > - return; > - early_init_done = true; > - > if (IS_ENABLED(CONFIG_ARCH_MVEBU)) > orion_timer_init((void *)MVEBU_TIMER_BASE, INPUT_CLOCK_25MHZ); > else Viele Grüße, Stefan Roese
diff --git a/drivers/timer/orion-timer.c b/drivers/timer/orion-timer.c index cd63ea916237..d0eab3ce781d 100644 --- a/drivers/timer/orion-timer.c +++ b/drivers/timer/orion-timer.c @@ -28,6 +28,11 @@ static bool early_init_done __section(".data") = false; /* Common functions for early (boot) and DM based timer */ static void orion_timer_init(void *base, enum input_clock_type type) { + /* Only init the timer once */ + if (early_init_done) + return; + early_init_done = true; + writel(~0, base + TIMER0_VAL); writel(~0, base + TIMER0_RELOAD); @@ -51,11 +56,6 @@ static uint64_t orion_timer_get_count(void *base) /* Early (e.g. bootstage etc) timer functions */ static void notrace timer_early_init(void) { - /* Only init the timer once */ - if (early_init_done) - return; - early_init_done = true; - if (IS_ENABLED(CONFIG_ARCH_MVEBU)) orion_timer_init((void *)MVEBU_TIMER_BASE, INPUT_CLOCK_25MHZ); else
Move the code making sure that the timer is initialized only once into orion_timer_init(), which is called from timer_early_init() and from orion_timer_probe(). This way the timer is not re-initialized. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Michael Walle <michael@walle.cc> Cc: Pali Rohár <pali@kernel.org> --- drivers/timer/orion-timer.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)