summaryrefslogtreecommitdiffstats
path: root/include/asm-generic/mshyperv.h
diff options
context:
space:
mode:
authorMichael Kelley <mikelley@microsoft.com>2021-07-14 02:01:46 +0200
committerWei Liu <wei.liu@kernel.org>2021-07-19 11:24:28 +0200
commit31e5e64694cf9879e63b2802007fa934f4131126 (patch)
treed2efd0afb5e7073fd3c47f1d663126a9c57705a3 /include/asm-generic/mshyperv.h
parentx86/hyperv: add comment describing TSC_INVARIANT_CONTROL MSR setting bit 0 (diff)
downloadlinux-31e5e64694cf9879e63b2802007fa934f4131126.tar.xz
linux-31e5e64694cf9879e63b2802007fa934f4131126.zip
drivers: hv: Decouple Hyper-V clock/timer code from VMbus drivers
Hyper-V clock/timer code in hyperv_timer.c is mostly independent from other VMbus drivers, but building for ARM64 without hyperv_timer.c shows some remaining entanglements. A default implementation of hv_read_reference_counter can just read a Hyper-V synthetic register and be independent of hyperv_timer.c, so move this code out and into hv_common.c. Then it can be used by the timesync driver even if hyperv_timer.c isn't built on a particular architecture. If hyperv_timer.c *is* built, it can override with a faster implementation. Also provide stubs for stimer functions called by the VMbus driver when hyperv_timer.c isn't built. No functional changes. Signed-off-by: Michael Kelley <mikelley@microsoft.com> Link: https://lore.kernel.org/r/1626220906-22629-1-git-send-email-mikelley@microsoft.com Signed-off-by: Wei Liu <wei.liu@kernel.org>
Diffstat (limited to 'include/asm-generic/mshyperv.h')
-rw-r--r--include/asm-generic/mshyperv.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h
index 60cdff3e2252..c1ab6a6e72b5 100644
--- a/include/asm-generic/mshyperv.h
+++ b/include/asm-generic/mshyperv.h
@@ -167,6 +167,8 @@ extern bool hv_root_partition;
extern u32 *hv_vp_index;
extern u32 hv_max_vp_index;
+extern u64 (*hv_read_reference_counter)(void);
+
/* Sentinel value for an uninitialized entry in hv_vp_index array */
#define VP_INVAL U32_MAX