OSDN Git Service

drm/meson: dw-hdmi: Use devm_regulator_*get_enable*()
authorMatti Vaittinen <mazziesaccount@gmail.com>
Wed, 30 Nov 2022 09:23:00 +0000 (11:23 +0200)
committerNeil Armstrong <neil.armstrong@linaro.org>
Thu, 1 Dec 2022 08:38:48 +0000 (09:38 +0100)
Simplify using the devm_regulator_get_enable_optional(). Also drop the
now unused struct member 'hdmi_supply'.

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/df0096b5aea2a18d1540cde379c5abf589ccd7c4.1669799805.git.mazziesaccount@gmail.com
drivers/gpu/drm/meson/meson_dw_hdmi.c

index 5cd2b2e..7642f74 100644 (file)
@@ -140,7 +140,6 @@ struct meson_dw_hdmi {
        struct reset_control *hdmitx_apb;
        struct reset_control *hdmitx_ctrl;
        struct reset_control *hdmitx_phy;
-       struct regulator *hdmi_supply;
        u32 irq_stat;
        struct dw_hdmi *hdmi;
        struct drm_bridge *bridge;
@@ -665,11 +664,6 @@ static void meson_dw_hdmi_init(struct meson_dw_hdmi *meson_dw_hdmi)
 
 }
 
-static void meson_disable_regulator(void *data)
-{
-       regulator_disable(data);
-}
-
 static void meson_disable_clk(void *data)
 {
        clk_disable_unprepare(data);
@@ -723,20 +717,9 @@ static int meson_dw_hdmi_bind(struct device *dev, struct device *master,
        meson_dw_hdmi->data = match;
        dw_plat_data = &meson_dw_hdmi->dw_plat_data;
 
-       meson_dw_hdmi->hdmi_supply = devm_regulator_get_optional(dev, "hdmi");
-       if (IS_ERR(meson_dw_hdmi->hdmi_supply)) {
-               if (PTR_ERR(meson_dw_hdmi->hdmi_supply) == -EPROBE_DEFER)
-                       return -EPROBE_DEFER;
-               meson_dw_hdmi->hdmi_supply = NULL;
-       } else {
-               ret = regulator_enable(meson_dw_hdmi->hdmi_supply);
-               if (ret)
-                       return ret;
-               ret = devm_add_action_or_reset(dev, meson_disable_regulator,
-                                              meson_dw_hdmi->hdmi_supply);
-               if (ret)
-                       return ret;
-       }
+       ret = devm_regulator_get_enable_optional(dev, "hdmi");
+       if (ret != -ENODEV)
+               return ret;
 
        meson_dw_hdmi->hdmitx_apb = devm_reset_control_get_exclusive(dev,
                                                "hdmitx_apb");