On 01/02/16 20:26, fu.wei@linaro.org wrote:
From: Fu Wei fu.wei@linaro.org
This patch adds ACPI/GTDT support for virt arch timer using the API in GTDT driver.
Signed-off-by: Fu Wei fu.wei@linaro.org
virt/kvm/arm/arch_timer.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/virt/kvm/arm/arch_timer.c b/virt/kvm/arm/arch_timer.c index 0a279d3..4077347 100644 --- a/virt/kvm/arm/arch_timer.c +++ b/virt/kvm/arm/arch_timer.c @@ -385,6 +385,9 @@ static int kvm_timer_get_ppi(unsigned int *ppi) { struct device_node *np; int ret = -EINVAL; +#ifdef CONFIG_ACPI_GTDT
- struct arch_timer_data data;
+#endif np = of_find_matching_node(NULL, arch_timer_of_match); if (!np) { @@ -397,6 +400,11 @@ static int kvm_timer_get_ppi(unsigned int *ppi) of_node_put(np); skip_of: +#ifdef CONFIG_ACPI_GTDT
- if (!*ppi && !gtdt_arch_timer_data_init(NULL, &data))
*ppi = data.virt_ppi;
+#endif
- if (*ppi) return 0;
As I already pointed out in another thread hacking some KVM ACPI stuff, this is the wrong approach.
We should have a *common* accessor in the timer code that exports the relevant information, whatever the firmware "du jour" is.
See Julien's series, which seems to address the issue in a much more convincing way:
https://lists.cs.columbia.edu/pipermail/kvmarm/2016-February/018531.html
Thanks,
M.