Merge tag 'exfat-for-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linki...
[linux-2.6-microblaze.git] / drivers / ata / ahci_brcm.c
index 49f7acb..5b32df5 100644 (file)
@@ -377,6 +377,10 @@ static int __maybe_unused brcm_ahci_resume(struct device *dev)
        if (ret)
                return ret;
 
+       ret = ahci_platform_enable_regulators(hpriv);
+       if (ret)
+               goto out_disable_clks;
+
        brcm_sata_init(priv);
        brcm_sata_phys_enable(priv);
        brcm_sata_alpm_init(hpriv);
@@ -406,6 +410,8 @@ out_disable_platform_phys:
        ahci_platform_disable_phys(hpriv);
 out_disable_phys:
        brcm_sata_phys_disable(priv);
+       ahci_platform_disable_regulators(hpriv);
+out_disable_clks:
        ahci_platform_disable_clks(hpriv);
        return ret;
 }
@@ -490,6 +496,10 @@ static int brcm_ahci_probe(struct platform_device *pdev)
        if (ret)
                goto out_reset;
 
+       ret = ahci_platform_enable_regulators(hpriv);
+       if (ret)
+               goto out_disable_clks;
+
        /* Must be first so as to configure endianness including that
         * of the standard AHCI register space.
         */
@@ -499,7 +509,7 @@ static int brcm_ahci_probe(struct platform_device *pdev)
        priv->port_mask = brcm_ahci_get_portmask(hpriv, priv);
        if (!priv->port_mask) {
                ret = -ENODEV;
-               goto out_disable_clks;
+               goto out_disable_regulators;
        }
 
        /* Must be done before ahci_platform_enable_phys() */
@@ -524,6 +534,8 @@ out_disable_platform_phys:
        ahci_platform_disable_phys(hpriv);
 out_disable_phys:
        brcm_sata_phys_disable(priv);
+out_disable_regulators:
+       ahci_platform_disable_regulators(hpriv);
 out_disable_clks:
        ahci_platform_disable_clks(hpriv);
 out_reset: