On Mon, Sep 21, 2026 at 06:29:57PM +0800, [email protected] wrote: > From: Ryan Zhang <[email protected]> > > The first read of GPU_TIMESTAMP after the GPU has been idle can return a > value that lags the real counter, while a read issued immediately after is > accurate. > > Userspace correlates this timestamp with the host clock, so a stale value > shows up as skew between the device and host time domains and makes > dEQP-VK.pipeline.monolithic.timestamp.calibrated.calibration_test fail > whenever a query happens to hit a large first-read error. > > Signed-off-by: Ryan Zhang <[email protected]>
Reviewed-by: Liviu Dudau <[email protected]> Best regards, Liviu > --- > drivers/gpu/drm/panthor/panthor_drv.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/gpu/drm/panthor/panthor_drv.c > b/drivers/gpu/drm/panthor/panthor_drv.c > index 720bf889096d..956a147dc282 100644 > --- a/drivers/gpu/drm/panthor/panthor_drv.c > +++ b/drivers/gpu/drm/panthor/panthor_drv.c > @@ -2,6 +2,7 @@ > /* Copyright 2018 Marty E. Plummer <[email protected]> */ > /* Copyright 2019 Linaro, Ltd., Rob Herring <[email protected]> */ > /* Copyright 2019 Collabora ltd. */ > +/* Copyright 2026 NXP */ > > #ifdef CONFIG_ARM_ARCH_TIMER > #include <asm/arch_timer.h> > @@ -772,6 +773,10 @@ static int panthor_query_timestamp_info(struct > panthor_device *ptdev, > #else > arg->timestamp_frequency = 0; > #endif > + > + /* Dummy read to avoid stale values. */ > + gpu_read64_counter(ptdev, GPU_TIMESTAMP); > + > arg->current_timestamp = gpu_read64_counter(ptdev, GPU_TIMESTAMP); > arg->timestamp_offset = gpu_read64(ptdev, GPU_TIMESTAMP_OFFSET); > > -- > 2.43.0 > -- ==================== | I would like to | | fix the world, | | but they're not | | giving me the | \ source code! / --------------- ¯\_(ツ)_/¯
