On Fri, 2015-07-03 at 17:51 +0200, Matthias Brugger wrote: > On Friday, July 03, 2015 09:48:42 PM Daniel Kurtz wrote: <...> > > >> @@ -243,6 +251,8 @@ static void __init mtk_timer_init(struct device_node > > >> *node)>> > > >> mtk_timer_setup(evt, GPT_CLK_SRC, TIMER_CTRL_OP_FREERUN, 1); > > >> clocksource_mmio_init(evt->gpt_base + TIMER_CNT_REG(GPT_CLK_SRC), > > >> > > >> node->name, rate, 300, 32, > > >> clocksource_mmio_readl_up); > > >> > > >> + gpt_base = evt->gpt_base; > > > > > > This is really hacky. We should clean up the code and provide > > > mtk_clock_event_device globally. > > > Please add the patch below, which does exactly this. > > > > I don't think this is so hacky. > > In light of Stephen's comment about the benefit of using > > container_of() to extract gpt_base from the passed in struct > > clock_event_device in the other routines, what is the benefit of > > making more of mtk_clock_event_device global? > > I think what Yingjoe has implemented is short and sweet. > > > > Huh, this patch got somehow forgotten. > Ok, just one comment. I would prefer to rename the global gpt_base to > gpt_sched_base or something similar and set the pointer + offset directly > mtk_timer_init. In next version, I will it change to: static void __iomem *gpt_sched_reg __read_mostly; and in mtk_timer_init: + gpt_sched_reg = evt->gpt_base + TIMER_CNT_REG(GPT_CLK_SRC); Joe.C -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html