diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2015-05-22 15:51:41 +0800 |
---|---|---|
committer | Shawn Guo <shawn.guo@linaro.org> | 2015-06-03 14:52:27 +0800 |
commit | 5ab0475b70ccdb349812d932a84dec86029a84d7 (patch) | |
tree | 44ca206b9c76ae26ea3fd3c291d97c20d8367121 /arch/arm/mach-imx/time.c | |
parent | 9c8694bd6c1e9e40a532c5c609288d6bc95d05b4 (diff) |
ARM: imx: set up .set_next_event hook via imx_gpt_data
Set up .set_next_event hook via imx_gpt_data, so that we can save the
use of timer_is_v2().
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Diffstat (limited to 'arch/arm/mach-imx/time.c')
-rw-r--r-- | arch/arm/mach-imx/time.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/arm/mach-imx/time.c b/arch/arm/mach-imx/time.c index 6142740e8000..b16a4e07d1ec 100644 --- a/arch/arm/mach-imx/time.c +++ b/arch/arm/mach-imx/time.c @@ -97,6 +97,8 @@ struct imx_timer { struct imx_gpt_data { void (*gpt_setup_tctl)(struct imx_timer *imxtm); + int (*set_next_event)(unsigned long evt, + struct clock_event_device *ced); }; static void __iomem *timer_base; @@ -301,9 +303,7 @@ static struct clock_event_device clockevent_mxc = { static int __init mxc_clockevent_init(struct imx_timer *imxtm) { - if (timer_is_v2()) - clockevent_mxc.set_next_event = v2_set_next_event; - + clockevent_mxc.set_next_event = imxtm->gpt->set_next_event; clockevent_mxc.cpumask = cpumask_of(0); clockevents_config_and_register(&clockevent_mxc, clk_get_rate(imxtm->clk_per), @@ -353,18 +353,22 @@ static void imx6dl_gpt_setup_tctl(struct imx_timer *imxtm) static const struct imx_gpt_data imx1_gpt_data = { .gpt_setup_tctl = imx1_gpt_setup_tctl, + .set_next_event = mx1_2_set_next_event, }; static const struct imx_gpt_data imx21_gpt_data = { .gpt_setup_tctl = imx21_gpt_setup_tctl, + .set_next_event = mx1_2_set_next_event, }; static const struct imx_gpt_data imx31_gpt_data = { .gpt_setup_tctl = imx31_gpt_setup_tctl, + .set_next_event = v2_set_next_event, }; static const struct imx_gpt_data imx6dl_gpt_data = { .gpt_setup_tctl = imx6dl_gpt_setup_tctl, + .set_next_event = v2_set_next_event, }; static void __init _mxc_timer_init(struct imx_timer *imxtm) |