soc/tegra: pmc: Use devm_clk_notifier_register()
authorThierry Reding <treding@nvidia.com>
Fri, 9 Jun 2023 14:42:25 +0000 (16:42 +0200)
committerThierry Reding <treding@nvidia.com>
Fri, 9 Jun 2023 14:56:58 +0000 (16:56 +0200)
Move to the device-managed version of clk_notifier_register() to remove
the need for manual cleanup. This fixes a potential issue where the
clock notifier would stick around after the driver fails to probe at a
later point.

Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/soc/tegra/pmc.c

index 438c30c..162f524 100644 (file)
@@ -2992,7 +2992,8 @@ static int tegra_pmc_probe(struct platform_device *pdev)
         */
        if (pmc->clk) {
                pmc->clk_nb.notifier_call = tegra_pmc_clk_notify_cb;
-               err = clk_notifier_register(pmc->clk, &pmc->clk_nb);
+               err = devm_clk_notifier_register(&pdev->dev, pmc->clk,
+                                                &pmc->clk_nb);
                if (err) {
                        dev_err(&pdev->dev,
                                "failed to register clk notifier\n");
@@ -3052,7 +3053,6 @@ cleanup_powergates:
 cleanup_sysfs:
        device_remove_file(&pdev->dev, &dev_attr_reset_reason);
        device_remove_file(&pdev->dev, &dev_attr_reset_level);
-       clk_notifier_unregister(pmc->clk, &pmc->clk_nb);
 
        return err;
 }