Message ID | 20210608154341.10794-3-will@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Use Exynos-MCT timer as wakeup for Arm arch timer | expand |
On 08/06/2021 17:43, Will Deacon wrote: > The "mct_tick" is a per-cpu clockevents device. Set the > CLOCK_EVT_FEAT_PERCPU feature to prevent e.g. mct_tick0 being unsafely > designated as the global broadcast timer and instead treat the device as > a per-cpu wakeup timer. > > Cc: Daniel Lezcano <daniel.lezcano@linaro.org> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > Signed-off-by: Will Deacon <will@kernel.org> > --- > drivers/clocksource/exynos_mct.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Best regards, Krzysztof
On 6/9/21 12:43 AM, Will Deacon wrote: > The "mct_tick" is a per-cpu clockevents device. Set the > CLOCK_EVT_FEAT_PERCPU feature to prevent e.g. mct_tick0 being unsafely > designated as the global broadcast timer and instead treat the device as > a per-cpu wakeup timer. > > Cc: Daniel Lezcano <daniel.lezcano@linaro.org> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > Signed-off-by: Will Deacon <will@kernel.org> > --- > drivers/clocksource/exynos_mct.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c > index 804d3e01c8f4..5e3e96d3d1b9 100644 > --- a/drivers/clocksource/exynos_mct.c > +++ b/drivers/clocksource/exynos_mct.c > @@ -465,7 +465,8 @@ static int exynos4_mct_starting_cpu(unsigned int cpu) > evt->set_state_oneshot = set_state_shutdown; > evt->set_state_oneshot_stopped = set_state_shutdown; > evt->tick_resume = set_state_shutdown; > - evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; > + evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT | > + CLOCK_EVT_FEAT_PERCPU; > evt->rating = MCT_CLKEVENTS_RATING, > > exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET); > Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c index 804d3e01c8f4..5e3e96d3d1b9 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c @@ -465,7 +465,8 @@ static int exynos4_mct_starting_cpu(unsigned int cpu) evt->set_state_oneshot = set_state_shutdown; evt->set_state_oneshot_stopped = set_state_shutdown; evt->tick_resume = set_state_shutdown; - evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; + evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT | + CLOCK_EVT_FEAT_PERCPU; evt->rating = MCT_CLKEVENTS_RATING, exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET);
The "mct_tick" is a per-cpu clockevents device. Set the CLOCK_EVT_FEAT_PERCPU feature to prevent e.g. mct_tick0 being unsafely designated as the global broadcast timer and instead treat the device as a per-cpu wakeup timer. Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Signed-off-by: Will Deacon <will@kernel.org> --- drivers/clocksource/exynos_mct.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)