struct device *dev;
        bool enabled;
 
+       struct regulator *hdmi;
        struct regulator *vdd;
        struct regulator *pll;
 
        h_back_porch = mode->htotal - mode->hsync_end;
        h_front_porch = mode->hsync_start - mode->hdisplay;
 
+       err = regulator_enable(hdmi->vdd);
+       if (err < 0) {
+               dev_err(hdmi->dev, "failed to enable VDD regulator: %d\n", err);
+               return err;
+       }
+
        err = regulator_enable(hdmi->pll);
        if (err < 0) {
                dev_err(hdmi->dev, "failed to enable PLL regulator: %d\n", err);
        reset_control_assert(hdmi->rst);
        clk_disable(hdmi->clk);
        regulator_disable(hdmi->pll);
+       regulator_disable(hdmi->vdd);
 
        hdmi->enabled = false;
 
        struct tegra_hdmi *hdmi = host1x_client_to_hdmi(client);
        int err;
 
-       err = regulator_enable(hdmi->vdd);
-       if (err < 0) {
-               dev_err(client->dev, "failed to enable VDD regulator: %d\n",
-                       err);
-               return err;
-       }
-
        hdmi->output.type = TEGRA_OUTPUT_HDMI;
        hdmi->output.dev = client->dev;
        hdmi->output.ops = &hdmi_ops;
                        dev_err(client->dev, "debugfs setup failed: %d\n", err);
        }
 
+       err = regulator_enable(hdmi->hdmi);
+       if (err < 0) {
+               dev_err(client->dev, "failed to enable HDMI regulator: %d\n",
+                       err);
+               return err;
+       }
+
        return 0;
 }
 
        struct tegra_hdmi *hdmi = host1x_client_to_hdmi(client);
        int err;
 
+       regulator_disable(hdmi->hdmi);
+
        if (IS_ENABLED(CONFIG_DEBUG_FS)) {
                err = tegra_hdmi_debugfs_exit(hdmi);
                if (err < 0)
                return err;
        }
 
-       regulator_disable(hdmi->vdd);
-
        return 0;
 }
 
                return err;
        }
 
+       hdmi->hdmi = devm_regulator_get(&pdev->dev, "hdmi");
+       if (IS_ERR(hdmi->hdmi)) {
+               dev_err(&pdev->dev, "failed to get HDMI regulator\n");
+               return PTR_ERR(hdmi->hdmi);
+       }
+
        hdmi->vdd = devm_regulator_get(&pdev->dev, "vdd");
        if (IS_ERR(hdmi->vdd)) {
                dev_err(&pdev->dev, "failed to get VDD regulator\n");