Hi, one more thing I notice below when comparing with Hantro ... Le lundi 17 juin 2024 à 19:48 +0900, Jackson.lee a écrit : > From: "jackson.lee" <jackson.lee@xxxxxxxxxxxxxxx> > [...] > > err_enc_unreg: > @@ -295,6 +334,9 @@ static void wave5_vpu_remove(struct platform_device *pdev) > hrtimer_cancel(&dev->hrtimer); > } > > + pm_runtime_put_sync(&pdev->dev); I don't know if its strictly needed, but I noticed that Hantro calls pm_runtime_dont_use_autosuspend() in its remove function. Can you check if this is strictly needed, we don't want anything to call again later if we are removing the module, so better check. Nicolas > + pm_runtime_disable(&pdev->dev); > + > mutex_destroy(&dev->dev_lock); > mutex_destroy(&dev->hw_lock); > clk_bulk_disable_unprepare(dev->num_clks, dev->clks); > @@ -320,6 +362,7 @@ static struct platform_driver wave5_vpu_driver = { > .driver = { > .name = VPU_PLATFORM_DEVICE_NAME, > .of_match_table = of_match_ptr(wave5_dt_ids), > + .pm = &wave5_pm_ops, > }, > .probe = wave5_vpu_probe, > .remove_new = wave5_vpu_remove,