/* Starting with HUB rev 2.0, the UV RTC register is replicated across all cachelines of it's own page. This allows faster simultaneous reads from a given socket.  */
static cycle_t uv_read_rtc(struct clocksource *cs)
/* Starting with HUB rev 2.0, the UV RTC register is replicated across all cachelines of it's own page. This allows faster simultaneous reads from a given socket.  */
static cycle_t uv_read_rtc(struct clocksource *cs)
{
	unsigned long offset;
	if (uv_get_min_hub_revision_id() == 1)
		offset = 0;
	else
		offset = (uv_blade_processor_id() * L1_CACHE_BYTES) % PAGE_SIZE;
	return (cycle_t)uv_read_local_mmr(UVH_RTC | offset);
}