The pm_runtime_get_sync() call keeps the device awake while the hardware is torn down, but the usage counter it takes is never dropped, so the count is left permanently elevated once runtime PM has been disabled. Drop it with pm_runtime_put_noidle() once the device has been marked suspended. Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") Cc: stable@vger.kernel.org Signed-off-by: Wentao Liang --- 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 074c0995ddc2..6d047ca7e208 100644 --- a/drivers/gpu/drm/panfrost/panfrost_drv.c +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c @@ -1029,6 +1029,7 @@ static void panfrost_remove(struct platform_device *pdev) pm_runtime_disable(pfdev->base.dev); panfrost_device_fini(pfdev); pm_runtime_set_suspended(pfdev->base.dev); + pm_runtime_put_noidle(pfdev->base.dev); } static ssize_t profiling_show(struct device *dev, -- 2.34.1