Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4615d1ff authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "arm64: gettimeofday change for timer rollover condition"

parents 536d517b 5dbeb97a
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -216,16 +216,25 @@ ENDPROC(__kernel_clock_getres)
ENTRY(__do_get_tspec)
	.cfi_startproc

	/* Read the virtual counter. */
	isb
#if IS_ENABLED(CONFIG_MSM_TIMER_LEAP)
#define LEAST_32BITS		0x00000000FFFFFFFF
reread:
	mrs	x15, cntvct_el0
	and	x13, x15, #LEAST_32BITS
	eor	x13, x13, #LEAST_32BITS
	cbz	x13, reread
#else
	mrs	x15, cntvct_el0
#endif

	/* Read from the vDSO data page. */
	ldr	x10, [vdso_data, #VDSO_CS_CYCLE_LAST]
	ldp	x13, x14, [vdso_data, #VDSO_XTIME_CLK_SEC]
	ldp	w11, w12, [vdso_data, #VDSO_CS_MULT]
	seqcnt_read w9

	/* Read the virtual counter. */
	isb
	mrs	x15, cntvct_el0

	/* Calculate cycle delta and convert to ns. */
	sub	x10, x15, x10
	/* We can only guarantee 56 bits of precision. */