[PATCH v2] drm/panthor: Enable timestamp propagation

Ashley Smith posted 1 patch 2 months, 1 week ago
drivers/gpu/drm/panthor/panthor_drv.c | 3 ++-
drivers/gpu/drm/panthor/panthor_fw.c  | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
[PATCH v2] drm/panthor: Enable timestamp propagation
Posted by Ashley Smith 2 months, 1 week ago
Set the GLB_COUNTER_EN bit to enable coherent propagation of GPU
timestamp values to shader cores. This is a prerequisite for exposing
device-coherent timestamp queries.

Bump the version to 1.6 so userspace can detect support.

v2:
- GLB_COUNTER_EN is not a toggle bit move to panthor_fw_update_reqs

Signed-off-by: Ashley Smith <ashley.smith@collabora.com>
---
 drivers/gpu/drm/panthor/panthor_drv.c | 3 ++-
 drivers/gpu/drm/panthor/panthor_fw.c  | 4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/panthor/panthor_drv.c
index d1d4c50da5bf..0b0ec3b978c6 100644
--- a/drivers/gpu/drm/panthor/panthor_drv.c
+++ b/drivers/gpu/drm/panthor/panthor_drv.c
@@ -1604,6 +1604,7 @@ static void panthor_debugfs_init(struct drm_minor *minor)
  * - 1.3 - adds DRM_PANTHOR_GROUP_STATE_INNOCENT flag
  * - 1.4 - adds DRM_IOCTL_PANTHOR_BO_SET_LABEL ioctl
  * - 1.5 - adds DRM_PANTHOR_SET_USER_MMIO_OFFSET ioctl
+ * - 1.6 - enables GLB_COUNTER_EN
  */
 static const struct drm_driver panthor_drm_driver = {
 	.driver_features = DRIVER_RENDER | DRIVER_GEM | DRIVER_SYNCOBJ |
@@ -1617,7 +1618,7 @@ static const struct drm_driver panthor_drm_driver = {
 	.name = "panthor",
 	.desc = "Panthor DRM driver",
 	.major = 1,
-	.minor = 5,
+	.minor = 6,
 
 	.gem_create_object = panthor_gem_create_object,
 	.gem_prime_import_sg_table = drm_gem_shmem_prime_import_sg_table,
diff --git a/drivers/gpu/drm/panthor/panthor_fw.c b/drivers/gpu/drm/panthor/panthor_fw.c
index 38d87ab92eda..a55731e95884 100644
--- a/drivers/gpu/drm/panthor/panthor_fw.c
+++ b/drivers/gpu/drm/panthor/panthor_fw.c
@@ -996,7 +996,9 @@ static void panthor_fw_init_global_iface(struct panthor_device *ptdev)
 					 GLB_IDLE_EN |
 					 GLB_IDLE;
 
-	panthor_fw_update_reqs(glb_iface, req, GLB_IDLE_EN, GLB_IDLE_EN);
+	panthor_fw_update_reqs(glb_iface, req,
+			       GLB_IDLE_EN | GLB_COUNTER_EN,
+			       GLB_IDLE_EN | GLB_COUNTER_EN);
 	panthor_fw_toggle_reqs(glb_iface, req, ack,
 			       GLB_CFG_ALLOC_EN |
 			       GLB_CFG_POWEROFF_TIMER |

base-commit: 92c49b3f4df8f9acfa95551ef38fc00c675319fd
-- 
2.43.0
Re: [PATCH v2] drm/panthor: Enable timestamp propagation
Posted by Steven Price 2 months, 1 week ago
On 27/11/2025 11:44, Ashley Smith wrote:
> Set the GLB_COUNTER_EN bit to enable coherent propagation of GPU
> timestamp values to shader cores. This is a prerequisite for exposing
> device-coherent timestamp queries.
> 
> Bump the version to 1.6 so userspace can detect support.
> 
> v2:
> - GLB_COUNTER_EN is not a toggle bit move to panthor_fw_update_reqs
> 
> Signed-off-by: Ashley Smith <ashley.smith@collabora.com>

Reviewed-by: Steven Price <steven.price@arm.com>

> ---
>  drivers/gpu/drm/panthor/panthor_drv.c | 3 ++-
>  drivers/gpu/drm/panthor/panthor_fw.c  | 4 +++-
>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/panthor/panthor_drv.c
> index d1d4c50da5bf..0b0ec3b978c6 100644
> --- a/drivers/gpu/drm/panthor/panthor_drv.c
> +++ b/drivers/gpu/drm/panthor/panthor_drv.c
> @@ -1604,6 +1604,7 @@ static void panthor_debugfs_init(struct drm_minor *minor)
>   * - 1.3 - adds DRM_PANTHOR_GROUP_STATE_INNOCENT flag
>   * - 1.4 - adds DRM_IOCTL_PANTHOR_BO_SET_LABEL ioctl
>   * - 1.5 - adds DRM_PANTHOR_SET_USER_MMIO_OFFSET ioctl
> + * - 1.6 - enables GLB_COUNTER_EN
>   */
>  static const struct drm_driver panthor_drm_driver = {
>  	.driver_features = DRIVER_RENDER | DRIVER_GEM | DRIVER_SYNCOBJ |
> @@ -1617,7 +1618,7 @@ static const struct drm_driver panthor_drm_driver = {
>  	.name = "panthor",
>  	.desc = "Panthor DRM driver",
>  	.major = 1,
> -	.minor = 5,
> +	.minor = 6,
>  
>  	.gem_create_object = panthor_gem_create_object,
>  	.gem_prime_import_sg_table = drm_gem_shmem_prime_import_sg_table,
> diff --git a/drivers/gpu/drm/panthor/panthor_fw.c b/drivers/gpu/drm/panthor/panthor_fw.c
> index 38d87ab92eda..a55731e95884 100644
> --- a/drivers/gpu/drm/panthor/panthor_fw.c
> +++ b/drivers/gpu/drm/panthor/panthor_fw.c
> @@ -996,7 +996,9 @@ static void panthor_fw_init_global_iface(struct panthor_device *ptdev)
>  					 GLB_IDLE_EN |
>  					 GLB_IDLE;
>  
> -	panthor_fw_update_reqs(glb_iface, req, GLB_IDLE_EN, GLB_IDLE_EN);
> +	panthor_fw_update_reqs(glb_iface, req,
> +			       GLB_IDLE_EN | GLB_COUNTER_EN,
> +			       GLB_IDLE_EN | GLB_COUNTER_EN);
>  	panthor_fw_toggle_reqs(glb_iface, req, ack,
>  			       GLB_CFG_ALLOC_EN |
>  			       GLB_CFG_POWEROFF_TIMER |
> 
> base-commit: 92c49b3f4df8f9acfa95551ef38fc00c675319fd
Re: [PATCH v2] drm/panthor: Enable timestamp propagation
Posted by Boris Brezillon 2 months ago
On Mon, 1 Dec 2025 16:35:23 +0000
Steven Price <steven.price@arm.com> wrote:

> On 27/11/2025 11:44, Ashley Smith wrote:
> > Set the GLB_COUNTER_EN bit to enable coherent propagation of GPU
> > timestamp values to shader cores. This is a prerequisite for exposing
> > device-coherent timestamp queries.
> > 
> > Bump the version to 1.6 so userspace can detect support.
> > 
> > v2:
> > - GLB_COUNTER_EN is not a toggle bit move to panthor_fw_update_reqs
> > 
> > Signed-off-by: Ashley Smith <ashley.smith@collabora.com>  
> 
> Reviewed-by: Steven Price <steven.price@arm.com>

Queued to drm-misc-next.

> 
> > ---
> >  drivers/gpu/drm/panthor/panthor_drv.c | 3 ++-
> >  drivers/gpu/drm/panthor/panthor_fw.c  | 4 +++-
> >  2 files changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/panthor/panthor_drv.c
> > index d1d4c50da5bf..0b0ec3b978c6 100644
> > --- a/drivers/gpu/drm/panthor/panthor_drv.c
> > +++ b/drivers/gpu/drm/panthor/panthor_drv.c
> > @@ -1604,6 +1604,7 @@ static void panthor_debugfs_init(struct drm_minor *minor)
> >   * - 1.3 - adds DRM_PANTHOR_GROUP_STATE_INNOCENT flag
> >   * - 1.4 - adds DRM_IOCTL_PANTHOR_BO_SET_LABEL ioctl
> >   * - 1.5 - adds DRM_PANTHOR_SET_USER_MMIO_OFFSET ioctl
> > + * - 1.6 - enables GLB_COUNTER_EN
> >   */
> >  static const struct drm_driver panthor_drm_driver = {
> >  	.driver_features = DRIVER_RENDER | DRIVER_GEM | DRIVER_SYNCOBJ |
> > @@ -1617,7 +1618,7 @@ static const struct drm_driver panthor_drm_driver = {
> >  	.name = "panthor",
> >  	.desc = "Panthor DRM driver",
> >  	.major = 1,
> > -	.minor = 5,
> > +	.minor = 6,
> >  
> >  	.gem_create_object = panthor_gem_create_object,
> >  	.gem_prime_import_sg_table = drm_gem_shmem_prime_import_sg_table,
> > diff --git a/drivers/gpu/drm/panthor/panthor_fw.c b/drivers/gpu/drm/panthor/panthor_fw.c
> > index 38d87ab92eda..a55731e95884 100644
> > --- a/drivers/gpu/drm/panthor/panthor_fw.c
> > +++ b/drivers/gpu/drm/panthor/panthor_fw.c
> > @@ -996,7 +996,9 @@ static void panthor_fw_init_global_iface(struct panthor_device *ptdev)
> >  					 GLB_IDLE_EN |
> >  					 GLB_IDLE;
> >  
> > -	panthor_fw_update_reqs(glb_iface, req, GLB_IDLE_EN, GLB_IDLE_EN);
> > +	panthor_fw_update_reqs(glb_iface, req,
> > +			       GLB_IDLE_EN | GLB_COUNTER_EN,
> > +			       GLB_IDLE_EN | GLB_COUNTER_EN);
> >  	panthor_fw_toggle_reqs(glb_iface, req, ack,
> >  			       GLB_CFG_ALLOC_EN |
> >  			       GLB_CFG_POWEROFF_TIMER |
> > 
> > base-commit: 92c49b3f4df8f9acfa95551ef38fc00c675319fd  
>