drm/vc4: hdmi: Switch to devm_pm_runtime_enable
authorMaxime Ripard <maxime@cerno.tech>
Mon, 11 Jul 2022 17:39:18 +0000 (19:39 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Wed, 13 Jul 2022 08:46:11 +0000 (10:46 +0200)
devm_pm_runtime_enable() simplifies the driver a bit since it will call
pm_runtime_disable() automatically through a device-managed action.

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20220711173939.1132294-49-maxime@cerno.tech
drivers/gpu/drm/vc4/vc4_hdmi.c

index a826faf..166d22d 100644 (file)
@@ -3314,7 +3314,9 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
                        vc4_hdmi->disable_4kp60 = true;
        }
 
-       pm_runtime_enable(dev);
+       ret = devm_pm_runtime_enable(dev);
+       if (ret)
+               return ret;
 
        /*
         *  We need to have the device powered up at this point to call
@@ -3322,7 +3324,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
         */
        ret = pm_runtime_resume_and_get(dev);
        if (ret)
-               goto err_disable_runtime_pm;
+               return ret;
 
        if ((of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi0") ||
             of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi1")) &&
@@ -3367,21 +3369,12 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
 
 err_put_runtime_pm:
        pm_runtime_put_sync(dev);
-err_disable_runtime_pm:
-       pm_runtime_disable(dev);
 
        return ret;
 }
 
-static void vc4_hdmi_unbind(struct device *dev, struct device *master,
-                           void *data)
-{
-       pm_runtime_disable(dev);
-}
-
 static const struct component_ops vc4_hdmi_ops = {
        .bind   = vc4_hdmi_bind,
-       .unbind = vc4_hdmi_unbind,
 };
 
 static int vc4_hdmi_dev_probe(struct platform_device *pdev)