Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3bc2159f authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

Merge branch 'clockevents/4.4' of...

Merge branch 'clockevents/4.4' of http://git.linaro.org/people/daniel.lezcano/linux into timers/core

clockevent updates from Daniel Lezcano:

 - Remove unneeded memset in em_sti, sh_cmt and h8300 because there are already
   zeroed by a kzalloc (Alexey Klimov)

 - Optimize code by replacing this_cpu_ptr by container_of on the exynos_mct (Alexey
   Klimov)

 - Get immune from a spurious interrupt when enabling the mtk_timer (Daniel Lezcano)

 - Use the dynamic irq affinity to optimize wakeup and useless IPI timer on the imx
   timer (Lucas Stach)

 - Add new timer for Tango SoCs (Marc Gonzalez)

 - Implement the timer delay for armada-370-xp (Russell King)

 - Use GPT as clock source (Yingjoe Chen)
parents b2c280bd cb0f2538
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -279,6 +279,10 @@ config CLKSRC_MIPS_GIC
	depends on MIPS_GIC
	select CLKSRC_OF

config CLKSRC_TANGO_XTAL
	bool
	select CLKSRC_OF

config CLKSRC_PXA
	def_bool y if ARCH_PXA || ARCH_SA1100
	select CLKSRC_OF if OF
+1 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ obj-$(CONFIG_ARCH_KEYSTONE) += timer-keystone.o
obj-$(CONFIG_ARCH_INTEGRATOR_AP)	+= timer-integrator-ap.o
obj-$(CONFIG_CLKSRC_VERSATILE)		+= versatile.o
obj-$(CONFIG_CLKSRC_MIPS_GIC)		+= mips-gic-timer.o
obj-$(CONFIG_CLKSRC_TANGO_XTAL)		+= tango_xtal.o
obj-$(CONFIG_CLKSRC_IMX_GPT)		+= timer-imx-gpt.o
obj-$(CONFIG_ASM9260_TIMER)		+= asm9260_timer.o
obj-$(CONFIG_H8300)			+= h8300_timer8.o
+0 −2
Original line number Diff line number Diff line
@@ -228,7 +228,6 @@ static int em_sti_register_clocksource(struct em_sti_priv *p)
{
	struct clocksource *cs = &p->cs;

	memset(cs, 0, sizeof(*cs));
	cs->name = dev_name(&p->pdev->dev);
	cs->rating = 200;
	cs->read = em_sti_clocksource_read;
@@ -285,7 +284,6 @@ static void em_sti_register_clockevent(struct em_sti_priv *p)
{
	struct clock_event_device *ced = &p->ced;

	memset(ced, 0, sizeof(*ced));
	ced->name = dev_name(&p->pdev->dev);
	ced->features = CLOCK_EVT_FEAT_ONESHOT;
	ced->rating = 200;
+8 −4
Original line number Diff line number Diff line
@@ -382,24 +382,28 @@ static void exynos4_mct_tick_start(unsigned long cycles,
static int exynos4_tick_set_next_event(unsigned long cycles,
				       struct clock_event_device *evt)
{
	struct mct_clock_event_device *mevt = this_cpu_ptr(&percpu_mct_tick);
	struct mct_clock_event_device *mevt;

	mevt = container_of(evt, struct mct_clock_event_device, evt);
	exynos4_mct_tick_start(cycles, mevt);

	return 0;
}

static int set_state_shutdown(struct clock_event_device *evt)
{
	exynos4_mct_tick_stop(this_cpu_ptr(&percpu_mct_tick));
	struct mct_clock_event_device *mevt;

	mevt = container_of(evt, struct mct_clock_event_device, evt);
	exynos4_mct_tick_stop(mevt);
	return 0;
}

static int set_state_periodic(struct clock_event_device *evt)
{
	struct mct_clock_event_device *mevt = this_cpu_ptr(&percpu_mct_tick);
	struct mct_clock_event_device *mevt;
	unsigned long cycles_per_jiffy;

	mevt = container_of(evt, struct mct_clock_event_device, evt);
	cycles_per_jiffy = (((unsigned long long)NSEC_PER_SEC / HZ * evt->mult)
			    >> evt->shift);
	exynos4_mct_tick_stop(mevt);
+0 −1
Original line number Diff line number Diff line
@@ -153,7 +153,6 @@ static int timer16_setup(struct timer16_priv *p, struct platform_device *pdev)
	int ret, irq;
	unsigned int ch;

	memset(p, 0, sizeof(*p));
	p->pdev = pdev;

	res[REG_CH] = platform_get_resource(p->pdev,
Loading