{
        struct tegra_xusb *tegra = dev_get_drvdata(dev);
 
-       tegra_xusb_phy_disable(tegra);
        regulator_bulk_disable(tegra->soc->num_supplies, tegra->supplies);
        tegra_xusb_clk_disable(tegra);
 
                goto disable_clk;
        }
 
-       err = tegra_xusb_phy_enable(tegra);
-       if (err < 0) {
-               dev_err(dev, "failed to enable PHYs: %d\n", err);
-               goto disable_regulator;
-       }
-
        return 0;
 
-disable_regulator:
-       regulator_bulk_disable(tegra->soc->num_supplies, tegra->supplies);
 disable_clk:
        tegra_xusb_clk_disable(tegra);
        return err;
         */
        platform_set_drvdata(pdev, tegra);
 
+       err = tegra_xusb_phy_enable(tegra);
+       if (err < 0) {
+               dev_err(&pdev->dev, "failed to enable PHYs: %d\n", err);
+               goto put_hcd;
+       }
+
        pm_runtime_enable(&pdev->dev);
        if (pm_runtime_enabled(&pdev->dev))
                err = pm_runtime_get_sync(&pdev->dev);
 
        if (err < 0) {
                dev_err(&pdev->dev, "failed to enable device: %d\n", err);
-               goto disable_rpm;
+               goto disable_phy;
        }
 
        tegra_xusb_config(tegra, regs);
 put_rpm:
        if (!pm_runtime_status_suspended(&pdev->dev))
                tegra_xusb_runtime_suspend(&pdev->dev);
-disable_rpm:
-       pm_runtime_disable(&pdev->dev);
+put_hcd:
        usb_put_hcd(tegra->hcd);
+disable_phy:
+       tegra_xusb_phy_disable(tegra);
+       pm_runtime_disable(&pdev->dev);
 put_powerdomains:
        if (!of_property_read_bool(pdev->dev.of_node, "power-domains")) {
                tegra_powergate_power_off(TEGRA_POWERGATE_XUSBC);
                tegra_xusb_powerdomain_remove(&pdev->dev, tegra);
        }
 
+       tegra_xusb_phy_disable(tegra);
+
        tegra_xusb_padctl_put(tegra->padctl);
 
        return 0;