<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/clocksource/arm_arch_timer.h, branch v4.18.8</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.18.8</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.18.8'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2017-10-13T17:56:15Z</updated>
<entry>
<title>arm64: use WFE for long delays</title>
<updated>2017-10-13T17:56:15Z</updated>
<author>
<name>Julien Thierry</name>
<email>julien.thierry@arm.com</email>
</author>
<published>2017-10-13T13:32:56Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=7b77452ec524fa845efdec28ae16e2202cf797dc'/>
<id>urn:sha1:7b77452ec524fa845efdec28ae16e2202cf797dc</id>
<content type='text'>
The current delay implementation uses the yield instruction, which is a
hint that it is beneficial to schedule another thread. As this is a hint,
it may be implemented as a NOP, causing all delays to be busy loops. This
is the case for many existing CPUs.

Taking advantage of the generic timer sending periodic events to all
cores, we can use WFE during delays to reduce power consumption. This is
beneficial only for delays longer than the period of the timer event
stream.

If timer event stream is not enabled, delays will behave as yield/busy
loops.

Signed-off-by: Julien Thierry &lt;julien.thierry@arm.com&gt;
Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
Cc: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm_arch_timer: Expose event stream status</title>
<updated>2017-10-13T17:55:05Z</updated>
<author>
<name>Julien Thierry</name>
<email>julien.thierry@arm.com</email>
</author>
<published>2017-10-13T13:32:55Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=ec5c8e429d07737ee94ee1fd2ae5029547484194'/>
<id>urn:sha1:ec5c8e429d07737ee94ee1fd2ae5029547484194</id>
<content type='text'>
The arch timer configuration for a CPU might get reset after suspending
said CPU.

In order to reliably use the event stream in the kernel (e.g. for delays),
we keep track of the state where we can safely consider the event stream as
properly configured. After writing to cntkctl, we issue an ISB to ensure
that subsequent delay loops can rely on the event stream being enabled.

Signed-off-by: Julien Thierry &lt;julien.thierry@arm.com&gt;
Acked-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Cc: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Cc: Russell King &lt;linux@armlinux.org.uk&gt;
Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>clocksource: arm_arch_timer: add structs to describe MMIO timer</title>
<updated>2017-04-19T15:11:48Z</updated>
<author>
<name>Fu Wei</name>
<email>fu.wei@linaro.org</email>
</author>
<published>2017-03-31T17:50:59Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b3251b8fd12337bf04bce46d4af35988742eef95'/>
<id>urn:sha1:b3251b8fd12337bf04bce46d4af35988742eef95</id>
<content type='text'>
In preparation for ACPI GTDT support, this patch adds structs to
describe the MMIO timers indepedent of the firmware interface.

Subsequent patches will use these to split the FW/HW probing logic, so
that the HW probing logic can be shared by ACPI and DT.

Signed-off-by: Fu Wei &lt;fu.wei@linaro.org&gt;
Reviewed-by: Hanjun Guo &lt;hanjun.guo@linaro.org&gt;
Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
</content>
</entry>
<entry>
<title>clocksource: arm_arch_timer: add a new enum for spi type</title>
<updated>2017-04-10T13:29:54Z</updated>
<author>
<name>Fu Wei</name>
<email>fu.wei@linaro.org</email>
</author>
<published>2017-01-18T13:25:29Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=097cd143dd871bfceacf4ed252b177cf515a1888'/>
<id>urn:sha1:097cd143dd871bfceacf4ed252b177cf515a1888</id>
<content type='text'>
This patch add a new enum "arch_timer_spi_nr" and use it in the driver.
Just for code's readability, no functional change.

Signed-off-by: Fu Wei &lt;fu.wei@linaro.org&gt;
Acked-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
</content>
</entry>
<entry>
<title>clocksource: arm_arch_timer: move enums and defines to header file</title>
<updated>2017-04-10T13:29:54Z</updated>
<author>
<name>Fu Wei</name>
<email>fu.wei@linaro.org</email>
</author>
<published>2017-01-18T13:25:28Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=831610c08e63b69b141c446c78eb9e9315660a5d'/>
<id>urn:sha1:831610c08e63b69b141c446c78eb9e9315660a5d</id>
<content type='text'>
To support the arm_arch_timer via ACPI we need to share defines and enums
between the driver and the ACPI parser code.
So we split out the relevant defines and enums into arm_arch_timer.h.

No functional change.

Signed-off-by: Fu Wei &lt;fu.wei@linaro.org&gt;
Acked-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Tested-by: Xiongfeng Wang &lt;wangxiongfeng2@huawei.com&gt;
Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
</content>
</entry>
<entry>
<title>clocksource: arm_arch_timer: Remove arch_timer_get_timecounter</title>
<updated>2016-05-03T10:54:21Z</updated>
<author>
<name>Julien Grall</name>
<email>julien.grall@arm.com</email>
</author>
<published>2016-04-11T15:33:00Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=a53d892dfb6f14f77c508e1027f5e1bdb400fd23'/>
<id>urn:sha1:a53d892dfb6f14f77c508e1027f5e1bdb400fd23</id>
<content type='text'>
The only call of arch_timer_get_timecounter (in KVM) has been removed.

Signed-off-by: Julien Grall &lt;julien.grall@arm.com&gt;
Acked-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
Signed-off-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
<entry>
<title>clocksource: arm_arch_timer: Extend arch_timer_kvm_info to get the virtual IRQ</title>
<updated>2016-05-03T10:54:21Z</updated>
<author>
<name>Julien Grall</name>
<email>julien.grall@arm.com</email>
</author>
<published>2016-04-11T15:32:52Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d9b5e41591ca6bc6678e287b5ffe7fac2e07436e'/>
<id>urn:sha1:d9b5e41591ca6bc6678e287b5ffe7fac2e07436e</id>
<content type='text'>
Currently, the firmware table is parsed by the virtual timer code in
order to retrieve the virtual timer interrupt. However, this is already
done by the arch timer driver.

To avoid code duplication, extend arch_timer_kvm_info to get the virtual
IRQ.

Note that the KVM code will be modified in a subsequent patch.

Signed-off-by: Julien Grall &lt;julien.grall@arm.com&gt;
Acked-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
Signed-off-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
<entry>
<title>clocksource: arm_arch_timer: Gather KVM specific information in a structure</title>
<updated>2016-05-03T10:54:20Z</updated>
<author>
<name>Julien Grall</name>
<email>julien.grall@arm.com</email>
</author>
<published>2016-04-11T15:32:51Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b4d6ce9776e0fb773418efe8bc81d8c5ccca3493'/>
<id>urn:sha1:b4d6ce9776e0fb773418efe8bc81d8c5ccca3493</id>
<content type='text'>
Introduce a structure which are filled up by the arch timer driver and
used by the virtual timer in KVM.

The first member of this structure will be the timecounter. More members
will be added later.

A stub for the new helper isn't introduced because KVM requires the arch
timer for both ARM64 and ARM32.

The function arch_timer_get_timecounter is kept for the time being and
will be dropped in a subsequent patch.

Signed-off-by: Julien Grall &lt;julien.grall@arm.com&gt;
Acked-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
Signed-off-by: Christoffer Dall &lt;christoffer.dall@linaro.org&gt;
</content>
</entry>
<entry>
<title>arm64: KVM: Implement timer save/restore</title>
<updated>2015-12-14T11:30:39Z</updated>
<author>
<name>Marc Zyngier</name>
<email>marc.zyngier@arm.com</email>
</author>
<published>2015-10-19T15:32:20Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=1431af367e52b08038e78d346822966d968f1694'/>
<id>urn:sha1:1431af367e52b08038e78d346822966d968f1694</id>
<content type='text'>
Implement the timer save restore as a direct translation of
the assembly code version.

Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
</content>
</entry>
<entry>
<title>time: move the timecounter/cyclecounter code into its own file.</title>
<updated>2014-12-30T23:29:25Z</updated>
<author>
<name>Richard Cochran</name>
<email>richardcochran@gmail.com</email>
</author>
<published>2014-12-21T18:46:56Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=74d23cc704d19732e70ef1579a669f7d5f09dd9a'/>
<id>urn:sha1:74d23cc704d19732e70ef1579a669f7d5f09dd9a</id>
<content type='text'>
The timecounter code has almost nothing to do with the clocksource
code. Let it live in its own file. This will help isolate the
timecounter users from the clocksource users in the source tree.

Signed-off-by: Richard Cochran &lt;richardcochran@gmail.com&gt;
Acked-by: Jeff Kirsher &lt;jeffrey.t.kirsher@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
