Hi Ruoyu, thanks for the patch.

A similar fix is being discussed together with a bunch of other patches at:
https://lore.kernel.org/dri-devel/[email protected]/

On 09.06.2026 15:34, Ruoyu Wang wrote:
> pm_runtime_get_sync() increments the runtime PM usage counter even when it
> returns an error. panfrost_remove() uses it to keep the GPU active while
> runtime PM is disabled and the device is finalized, but the usage counter
> is not dropped afterwards.
> 
> Balance the get with pm_runtime_put_noidle() after disabling runtime PM.
> This drops the extra usage count without requesting a runtime suspend,
> preserving the existing teardown sequence that avoids suspending after
> panfrost_device_fini().
> 
> Fixes: 876b15d2c88d ("drm/panfrost: Fix module unload")
> Signed-off-by: Ruoyu Wang <[email protected]>
> ---
>  drivers/gpu/drm/panfrost/panfrost_drv.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c 
> b/drivers/gpu/drm/panfrost/panfrost_drv.c
> index 074c0995ddc26..d78ea7d4d099e 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
> @@ -1027,6 +1027,7 @@ static void panfrost_remove(struct platform_device 
> *pdev)
>  
>       pm_runtime_get_sync(pfdev->base.dev);
>       pm_runtime_disable(pfdev->base.dev);
> +     pm_runtime_put_noidle(pfdev->base.dev);
>       panfrost_device_fini(pfdev);
>       pm_runtime_set_suspended(pfdev->base.dev);
>  }
> -- 
> 2.51.0


Adrian Larumbe

Reply via email to