<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/clocksource/arm_global_timer.c, branch v4.9.142</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.142</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.9.142'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2016-07-15T08:41:44Z</updated>
<entry>
<title>clocksource/arm_global_timer: Convert to hotplug state machine</title>
<updated>2016-07-15T08:41:44Z</updated>
<author>
<name>Richard Cochran</name>
<email>rcochran@linutronix.de</email>
</author>
<published>2016-07-13T17:17:04Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b8a12296ac812f829bd9392346b01b1872d8118b'/>
<id>urn:sha1:b8a12296ac812f829bd9392346b01b1872d8118b</id>
<content type='text'>
Install the callbacks via the state machine and let the core invoke
the callbacks on the already online CPUs.

Signed-off-by: Richard Cochran &lt;rcochran@linutronix.de&gt;
Signed-off-by: Anna-Maria Gleixner &lt;anna-maria@linutronix.de&gt;
Reviewed-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Cc: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Maxime Coquelin &lt;maxime.coquelin@st.com&gt;
Cc: Patrice Chotard &lt;patrice.chotard@st.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Srinivas Kandagatla &lt;srinivas.kandagatla@gmail.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: kernel@stlinux.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: rt@linutronix.de
Link: http://lkml.kernel.org/r/20160713153338.062741642@linutronix.de
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>clocksources: Switch back to the clksrc table</title>
<updated>2016-06-28T08:19:35Z</updated>
<author>
<name>Daniel Lezcano</name>
<email>daniel.lezcano@linaro.org</email>
</author>
<published>2016-06-06T22:27:44Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=177cf6e52b0a1a382b9892d3cc9aafd6e7c5943f'/>
<id>urn:sha1:177cf6e52b0a1a382b9892d3cc9aafd6e7c5943f</id>
<content type='text'>
All the clocksource drivers's init function are now converted to return
an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
clksrc-of table.

Let's convert back the names:
 - CLOCKSOURCE_OF_DECLARE_RET =&gt; CLOCKSOURCE_OF_DECLARE
 - clksrc-of-ret              =&gt; clksrc-of

Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;

For exynos_mct and samsung_pwm_timer:
Acked-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;

For arch/arc:
Acked-by: Vineet Gupta &lt;vgupta@synopsys.com&gt;

For mediatek driver:
Acked-by: Matthias Brugger &lt;matthias.bgg@gmail.com&gt;

For the Rockchip-part
Acked-by: Heiko Stuebner &lt;heiko@sntech.de&gt;

For STi :
Acked-by: Patrice Chotard &lt;patrice.chotard@st.com&gt;

For the mps2-timer.c and versatile.c changes:
Acked-by: Liviu Dudau &lt;Liviu.Dudau@arm.com&gt;

For the OXNAS part :
Acked-by: Neil Armstrong &lt;narmstrong@baylibre.com&gt;

For LPC32xx driver:
Acked-by: Sylvain Lemieux &lt;slemieux.tyco@gmail.com&gt;

For Broadcom Kona timer change:
Acked-by: Ray Jui &lt;ray.jui@broadcom.com&gt;

For Sun4i and Sun5i:
Acked-by: Chen-Yu Tsai &lt;wens@csie.org&gt;

For Meson6:
Acked-by: Carlo Caione &lt;carlo@caione.org&gt;

For Keystone:
Acked-by: Santosh Shilimkar &lt;ssantosh@kernel.org&gt;

For NPS:
Acked-by: Noam Camus &lt;noamca@mellanox.com&gt;

For bcm2835:
Acked-by: Eric Anholt &lt;eric@anholt.net&gt;
</content>
</entry>
<entry>
<title>clocksource/drivers/arm_global_timer: Convert init function to return error</title>
<updated>2016-06-28T08:19:22Z</updated>
<author>
<name>Daniel Lezcano</name>
<email>daniel.lezcano@linaro.org</email>
</author>
<published>2016-06-06T15:56:04Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=5a54c1873f29411c769f8ebb044980ba0397eb1d'/>
<id>urn:sha1:5a54c1873f29411c769f8ebb044980ba0397eb1d</id>
<content type='text'>
The init functions do not return any error. They behave as the following:

  - panic, thus leading to a kernel crash while another timer may work and
       make the system boot up correctly

  or

  - print an error and let the caller unaware if the state of the system

Change that by converting the init functions to return an error conforming
to the CLOCKSOURCE_OF_RET prototype.

Proper error handling (rollback, errno value) will be changed later case
by case, thus this change just return back an error or success in the init
function.

Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Acked-by: Maxime Coquelin &lt;maxime.coquelin@st.com&gt;
</content>
</entry>
<entry>
<title>clockevents/drivers/arm_global_timer: Implement -&gt;set_state_oneshot_stopped()</title>
<updated>2016-02-25T13:34:06Z</updated>
<author>
<name>Viresh Kumar</name>
<email>viresh.kumar@linaro.org</email>
</author>
<published>2015-12-23T11:29:13Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3effa3ceea2da9f67f042a694e24ba0d8143cff8'/>
<id>urn:sha1:3effa3ceea2da9f67f042a694e24ba0d8143cff8</id>
<content type='text'>
set_state_oneshot_stopped() is called by the clkevt core, when the next
event is required at an expiry time of 'KTIME_MAX'. This normally
happens with NO_HZ_{IDLE|FULL} in both LOWRES/HIGHRES modes.

This patch makes the clockevent device to stop on such an event, to
avoid spurious interrupts, as explained by: commit 8fff52fd5093
("clockevents: Introduce CLOCK_EVT_STATE_ONESHOT_STOPPED state").

Signed-off-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
</content>
</entry>
<entry>
<title>clocksource/drivers/arm_global_timer: Register delay timer</title>
<updated>2016-02-25T13:34:04Z</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin.vincent@axis.com</email>
</author>
<published>2015-08-19T13:43:38Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=bbaa06702719818913ed686612d0db477b2b53b0'/>
<id>urn:sha1:bbaa06702719818913ed686612d0db477b2b53b0</id>
<content type='text'>
Provide a delay timer using the lower 32-bits of the global timer so
that we can use that instead of having to calibrating delays.

Signed-off-by: Rabin Vincent &lt;rabin.vincent@axis.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
</content>
</entry>
<entry>
<title>clocksource/drivers/arm_global_timer: Fix suspend resume</title>
<updated>2015-12-16T08:58:47Z</updated>
<author>
<name>Grygorii Strashko</name>
<email>grygorii.strashko@ti.com</email>
</author>
<published>2015-11-30T18:25:12Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=9c9ae5ffee2831c0b8c0b002443b093e141d08f1'/>
<id>urn:sha1:9c9ae5ffee2831c0b8c0b002443b093e141d08f1</id>
<content type='text'>
Now the System stall is observed on TI AM437x based board (am437x-gp-evm)
during resuming from System suspend when ARM Global timer is selected as
clocksource device (CPUIdle not enabled) - SysRq are working, but nothing
else.

The reason of stall is that ARM Global timer loses its contexts during
System suspend:
   GT_CONTROL.TIMER_ENABLE = 0 (unbanked)
   GT_COUNTERx = 0

Hence, update ARM Global timer driver to reflect above behaviour
- re-enable ARM Global timer on resume (GT_CONTROL.TIMER_ENABLE = 1)
  if not enabled.

CC: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: John Stultz &lt;john.stultz@linaro.org&gt;
Cc: Felipe Balbi &lt;balbi@ti.com&gt;
Cc: Tony Lindgren &lt;tony@atomide.com&gt;
Cc: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Reviewed-by: Santosh Shilimkar &lt;ssantosh@kernel.org&gt;
Signed-off-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
</content>
</entry>
<entry>
<title>clockevents/drivers/arm_global_timer: Use writel_relaxed in gt_compare_set</title>
<updated>2015-12-16T08:44:23Z</updated>
<author>
<name>Jisheng Zhang</name>
<email>jszhang@marvell.com</email>
</author>
<published>2015-11-26T12:20:38Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=08e4b44852626f3549c8bd45308431d9c9e0ee6d'/>
<id>urn:sha1:08e4b44852626f3549c8bd45308431d9c9e0ee6d</id>
<content type='text'>
Use the relaxed version to improve performance. we measured time of
4096 rounds of gt_compare_set() spent on Marvell BG2Q:

before the patch: 3690648ns on average
after the patch: 1083023ns on average

improved by 70%!

Signed-off-by: Jisheng Zhang &lt;jszhang@marvell.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
</content>
</entry>
<entry>
<title>clocksource/drivers/arm_global_timer: Prevent ftrace recursion</title>
<updated>2015-10-27T00:32:33Z</updated>
<author>
<name>Jisheng Zhang</name>
<email>jszhang@marvell.com</email>
</author>
<published>2015-10-20T08:02:34Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d6df3576e6b4bcf765f5ace69915b4fa4a7ee1c3'/>
<id>urn:sha1:d6df3576e6b4bcf765f5ace69915b4fa4a7ee1c3</id>
<content type='text'>
Currently arm_global_timer can be used as a scheduler clock. We properly
marked gt_sched_clock_read() as notrace but we then call another function
gt_counter_read() that _wasn't_ notrace.

Having a traceable function in the sched_clock() path leads to a recursion
within ftrace and a kernel crash.

Fix this by adding an extra notrace function to keep other users of
gt_counter_read() traceable.

Signed-off-by: Jisheng Zhang &lt;jszhang@marvell.com&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
</content>
</entry>
<entry>
<title>clockevents/drivers/arm_global_timer: Migrate to new 'set-state' interface</title>
<updated>2015-08-06T10:16:41Z</updated>
<author>
<name>Viresh Kumar</name>
<email>viresh.kumar@linaro.org</email>
</author>
<published>2015-06-12T08:00:13Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e511e6c3cd9baa3177f29aeb30c4ac7150c5f93b'/>
<id>urn:sha1:e511e6c3cd9baa3177f29aeb30c4ac7150c5f93b</id>
<content type='text'>
Migrate arm_global_timer driver to the new 'set-state' interface
provided by the clockevents core, the earlier 'set-mode' interface is
marked obsolete now.

This also enables us to implement callbacks for new states of clockevent
devices, for example: ONESHOT_STOPPED.

Acked-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
Acked-by: Maxime Coquelin &lt;maxime.coquelin@st.com&gt;
Acked-by: Srinivas Kandagatla &lt;srinivas.kandagatla@linaro.org&gt;
Cc: Srinivas Kandagatla &lt;srinivas.kandagatla@gmail.com&gt;
Cc: Maxime Coquelin &lt;maxime.coquelin@st.com&gt;
Cc: Patrice Chotard &lt;patrice.chotard@st.com&gt;
Signed-off-by: Viresh Kumar &lt;viresh.kumar@linaro.org&gt;
Signed-off-by: Daniel Lezcano &lt;daniel.lezcano@linaro.org&gt;
</content>
</entry>
<entry>
<title>ARM: make it easier to check the CPU part number correctly</title>
<updated>2014-07-18T11:29:02Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2014-06-24T18:43:15Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=af040ffc9ba1e079ee4c0748aff64fa3d4716fa5'/>
<id>urn:sha1:af040ffc9ba1e079ee4c0748aff64fa3d4716fa5</id>
<content type='text'>
Ensure that platform maintainers check the CPU part number in the right
manner: the CPU part number is meaningless without also checking the
CPU implement(e|o)r (choose your preferred spelling!)  Provide an
interface which returns both the implementer and part number together,
and update the definitions to include the implementer.

Mark the old function as being deprecated... indeed, using the old
function with the definitions will now always evaluate as false, so
people must update their un-merged code to the new function.  While
this could be avoided by adding new definitions, we'd also have to
create new names for them which would be awkward.

Acked-by: Nicolas Pitre &lt;nico@linaro.org&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
</feed>
