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

Commit fb0095da authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

Merge branch 'clockevents/3.15-fixes' of...

Merge branch 'clockevents/3.15-fixes' of git://git.linaro.org/people/daniel.lezcano/linux into timers/urgent

clockevent fixes for 3.15 from Daniel Lezcano:
 * Lorenzo Pieralizi fixed an issue with the arch_arm_timer where the
   C3STOP flag for all the arch can cause some trouble by setting the
   flag only if the power domain is not always on
 * Alexander Shiyan fixed a compilation by changing the init function
   to the right prototype
parents d1db0eea 9afa27ce
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -19,6 +19,9 @@ to deliver its interrupts via SPIs.


- clock-frequency : The frequency of the main counter, in Hz. Optional.
- clock-frequency : The frequency of the main counter, in Hz. Optional.


- always-on : a boolean property. If present, the timer is powered through an
  always-on power domain, therefore it never loses context.

Example:
Example:


	timer {
	timer {
+5 −1
Original line number Original line Diff line number Diff line
@@ -66,6 +66,7 @@ static int arch_timer_ppi[MAX_TIMER_PPI];
static struct clock_event_device __percpu *arch_timer_evt;
static struct clock_event_device __percpu *arch_timer_evt;


static bool arch_timer_use_virtual = true;
static bool arch_timer_use_virtual = true;
static bool arch_timer_c3stop;
static bool arch_timer_mem_use_virtual;
static bool arch_timer_mem_use_virtual;


/*
/*
@@ -263,6 +264,7 @@ static void __arch_timer_setup(unsigned type,
	clk->features = CLOCK_EVT_FEAT_ONESHOT;
	clk->features = CLOCK_EVT_FEAT_ONESHOT;


	if (type == ARCH_CP15_TIMER) {
	if (type == ARCH_CP15_TIMER) {
		if (arch_timer_c3stop)
			clk->features |= CLOCK_EVT_FEAT_C3STOP;
			clk->features |= CLOCK_EVT_FEAT_C3STOP;
		clk->name = "arch_sys_timer";
		clk->name = "arch_sys_timer";
		clk->rating = 450;
		clk->rating = 450;
@@ -665,6 +667,8 @@ static void __init arch_timer_init(struct device_node *np)
		}
		}
	}
	}


	arch_timer_c3stop = !of_property_read_bool(np, "always-on");

	arch_timer_register();
	arch_timer_register();
	arch_timer_common_init();
	arch_timer_common_init();
}
}
+6 −1
Original line number Original line Diff line number Diff line
@@ -212,4 +212,9 @@ static int __init zevio_timer_add(struct device_node *node)
	return ret;
	return ret;
}
}


CLOCKSOURCE_OF_DECLARE(zevio_timer, "lsi,zevio-timer", zevio_timer_add);
static void __init zevio_timer_init(struct device_node *node)
{
	BUG_ON(zevio_timer_add(node));
}

CLOCKSOURCE_OF_DECLARE(zevio_timer, "lsi,zevio-timer", zevio_timer_init);