Commit e95ea43a authored by Jon Hunter's avatar Jon Hunter

ARM: OMAP2+: Display correct system timer name

Currently on boot, when displaying the name of the gptimer used for
clockevents and clocksource timers, the timer ID is shown. However,
when booting with device-tree, the timer ID is not used to select a
gptimer but a timer property. Hence, it is possible that the timer
selected when booting with device-tree does not match the ID shown.
Therefore, instead display the HWMOD name of the gptimer and use
the HWMOD name as the name of clockevent and clocksource timer (if a
gptimer is used).
Signed-off-by: default avatarJon Hunter <jon-hunter@ti.com>
Acked-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
parent 2d61aece
...@@ -129,7 +129,6 @@ static void omap2_gp_timer_set_mode(enum clock_event_mode mode, ...@@ -129,7 +129,6 @@ static void omap2_gp_timer_set_mode(enum clock_event_mode mode,
} }
static struct clock_event_device clockevent_gpt = { static struct clock_event_device clockevent_gpt = {
.name = "gp_timer",
.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
.shift = 32, .shift = 32,
.rating = 300, .rating = 300,
...@@ -215,10 +214,11 @@ static u32 __init omap_dm_timer_get_errata(void) ...@@ -215,10 +214,11 @@ static u32 __init omap_dm_timer_get_errata(void)
} }
static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer, static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
int gptimer_id, int gptimer_id,
const char *fck_source, const char *fck_source,
const char *property, const char *property,
int posted) const char **timer_name,
int posted)
{ {
char name[10]; /* 10 = sizeof("gptXX_Xck0") */ char name[10]; /* 10 = sizeof("gptXX_Xck0") */
const char *oh_name; const char *oh_name;
...@@ -255,6 +255,8 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer, ...@@ -255,6 +255,8 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
if (!oh) if (!oh)
return -ENODEV; return -ENODEV;
*timer_name = oh->name;
if (!of_have_populated_dt()) { if (!of_have_populated_dt()) {
r = omap_hwmod_get_resource_byname(oh, IORESOURCE_IRQ, NULL, r = omap_hwmod_get_resource_byname(oh, IORESOURCE_IRQ, NULL,
&irq); &irq);
...@@ -328,7 +330,7 @@ static void __init omap2_gp_clockevent_init(int gptimer_id, ...@@ -328,7 +330,7 @@ static void __init omap2_gp_clockevent_init(int gptimer_id,
__omap_dm_timer_override_errata(&clkev, OMAP_TIMER_ERRATA_I103_I767); __omap_dm_timer_override_errata(&clkev, OMAP_TIMER_ERRATA_I103_I767);
res = omap_dm_timer_init_one(&clkev, gptimer_id, fck_source, property, res = omap_dm_timer_init_one(&clkev, gptimer_id, fck_source, property,
OMAP_TIMER_POSTED); &clockevent_gpt.name, OMAP_TIMER_POSTED);
BUG_ON(res); BUG_ON(res);
omap2_gp_timer_irq.dev_id = &clkev; omap2_gp_timer_irq.dev_id = &clkev;
...@@ -348,8 +350,8 @@ static void __init omap2_gp_clockevent_init(int gptimer_id, ...@@ -348,8 +350,8 @@ static void __init omap2_gp_clockevent_init(int gptimer_id,
clockevent_gpt.irq = omap_dm_timer_get_irq(&clkev); clockevent_gpt.irq = omap_dm_timer_get_irq(&clkev);
clockevents_register_device(&clockevent_gpt); clockevents_register_device(&clockevent_gpt);
pr_info("OMAP clockevent source: GPTIMER%d at %lu Hz\n", pr_info("OMAP clockevent source: %s at %lu Hz\n", clockevent_gpt.name,
gptimer_id, clkev.rate); clkev.rate);
} }
/* Clocksource code */ /* Clocksource code */
...@@ -366,7 +368,6 @@ static cycle_t clocksource_read_cycles(struct clocksource *cs) ...@@ -366,7 +368,6 @@ static cycle_t clocksource_read_cycles(struct clocksource *cs)
} }
static struct clocksource clocksource_gpt = { static struct clocksource clocksource_gpt = {
.name = "gp_timer",
.rating = 300, .rating = 300,
.read = clocksource_read_cycles, .read = clocksource_read_cycles,
.mask = CLOCKSOURCE_MASK(32), .mask = CLOCKSOURCE_MASK(32),
...@@ -456,6 +457,7 @@ static void __init omap2_gptimer_clocksource_init(int gptimer_id, ...@@ -456,6 +457,7 @@ static void __init omap2_gptimer_clocksource_init(int gptimer_id,
clksrc.errata = omap_dm_timer_get_errata(); clksrc.errata = omap_dm_timer_get_errata();
res = omap_dm_timer_init_one(&clksrc, gptimer_id, fck_source, NULL, res = omap_dm_timer_init_one(&clksrc, gptimer_id, fck_source, NULL,
&clocksource_gpt.name,
OMAP_TIMER_NONPOSTED); OMAP_TIMER_NONPOSTED);
BUG_ON(res); BUG_ON(res);
...@@ -468,8 +470,8 @@ static void __init omap2_gptimer_clocksource_init(int gptimer_id, ...@@ -468,8 +470,8 @@ static void __init omap2_gptimer_clocksource_init(int gptimer_id,
pr_err("Could not register clocksource %s\n", pr_err("Could not register clocksource %s\n",
clocksource_gpt.name); clocksource_gpt.name);
else else
pr_info("OMAP clocksource: GPTIMER%d at %lu Hz\n", pr_info("OMAP clocksource: %s at %lu Hz\n",
gptimer_id, clksrc.rate); clocksource_gpt.name, clksrc.rate);
} }
#ifdef CONFIG_SOC_HAS_REALTIME_COUNTER #ifdef CONFIG_SOC_HAS_REALTIME_COUNTER
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment