drm/tegra: hdmi - Reverse regulator enable ordering
authorThierry Reding <treding@nvidia.com>
Wed, 16 Apr 2014 08:24:12 +0000 (10:24 +0200)
committerThierry Reding <treding@nvidia.com>
Thu, 5 Jun 2014 21:09:22 +0000 (23:09 +0200)
Schematics indicate that the AVDD_HDMI_PLL supply should be enabled
prior to the AVDD_HDMI supply.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/hdmi.c

index 4475dd885282cac682f2d336d49de0b312f996a9..96fa838d60a415edc872ef041a514e32678ff3e7 100644 (file)
@@ -43,8 +43,8 @@ struct tegra_hdmi {
        bool enabled;
 
        struct regulator *hdmi;
-       struct regulator *vdd;
        struct regulator *pll;
+       struct regulator *vdd;
 
        void __iomem *regs;
        unsigned int irq;
@@ -711,15 +711,15 @@ static int tegra_output_hdmi_enable(struct tegra_output *output)
        h_back_porch = mode->htotal - mode->hsync_end;
        h_front_porch = mode->hsync_start - mode->hdisplay;
 
-       err = regulator_enable(hdmi->vdd);
+       err = regulator_enable(hdmi->pll);
        if (err < 0) {
-               dev_err(hdmi->dev, "failed to enable VDD regulator: %d\n", err);
+               dev_err(hdmi->dev, "failed to enable PLL regulator: %d\n", err);
                return err;
        }
 
-       err = regulator_enable(hdmi->pll);
+       err = regulator_enable(hdmi->vdd);
        if (err < 0) {
-               dev_err(hdmi->dev, "failed to enable PLL regulator: %d\n", err);
+               dev_err(hdmi->dev, "failed to enable VDD regulator: %d\n", err);
                return err;
        }
 
@@ -946,8 +946,8 @@ static int tegra_output_hdmi_disable(struct tegra_output *output)
 
        reset_control_assert(hdmi->rst);
        clk_disable(hdmi->clk);
-       regulator_disable(hdmi->pll);
        regulator_disable(hdmi->vdd);
+       regulator_disable(hdmi->pll);
 
        hdmi->enabled = false;
 
@@ -1403,18 +1403,18 @@ static int tegra_hdmi_probe(struct platform_device *pdev)
                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");
-               return PTR_ERR(hdmi->vdd);
-       }
-
        hdmi->pll = devm_regulator_get(&pdev->dev, "pll");
        if (IS_ERR(hdmi->pll)) {
                dev_err(&pdev->dev, "failed to get PLL regulator\n");
                return PTR_ERR(hdmi->pll);
        }
 
+       hdmi->vdd = devm_regulator_get(&pdev->dev, "vdd");
+       if (IS_ERR(hdmi->vdd)) {
+               dev_err(&pdev->dev, "failed to get VDD regulator\n");
+               return PTR_ERR(hdmi->vdd);
+       }
+
        hdmi->output.dev = &pdev->dev;
 
        err = tegra_output_probe(&hdmi->output);