Commit bd018bba authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'for-5.12/libata-2021-02-17' of git://git.kernel.dk/linux-block

Pull libata updates from Jens Axboe:
 "Regulartors management addition from Florian, and a trivial change to
  avoid comma separated statements from Joe"

* tag 'for-5.12/libata-2021-02-17' of git://git.kernel.dk/linux-block:
  ata: Avoid comma separated statements
  ata: ahci_brcm: Add back regulators management
parents 24880bef e53d76e6
...@@ -377,6 +377,10 @@ static int __maybe_unused brcm_ahci_resume(struct device *dev) ...@@ -377,6 +377,10 @@ static int __maybe_unused brcm_ahci_resume(struct device *dev)
if (ret) if (ret)
return ret; return ret;
ret = ahci_platform_enable_regulators(hpriv);
if (ret)
goto out_disable_clks;
brcm_sata_init(priv); brcm_sata_init(priv);
brcm_sata_phys_enable(priv); brcm_sata_phys_enable(priv);
brcm_sata_alpm_init(hpriv); brcm_sata_alpm_init(hpriv);
...@@ -406,6 +410,8 @@ static int __maybe_unused brcm_ahci_resume(struct device *dev) ...@@ -406,6 +410,8 @@ static int __maybe_unused brcm_ahci_resume(struct device *dev)
ahci_platform_disable_phys(hpriv); ahci_platform_disable_phys(hpriv);
out_disable_phys: out_disable_phys:
brcm_sata_phys_disable(priv); brcm_sata_phys_disable(priv);
ahci_platform_disable_regulators(hpriv);
out_disable_clks:
ahci_platform_disable_clks(hpriv); ahci_platform_disable_clks(hpriv);
return ret; return ret;
} }
...@@ -490,6 +496,10 @@ static int brcm_ahci_probe(struct platform_device *pdev) ...@@ -490,6 +496,10 @@ static int brcm_ahci_probe(struct platform_device *pdev)
if (ret) if (ret)
goto out_reset; 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 /* Must be first so as to configure endianness including that
* of the standard AHCI register space. * of the standard AHCI register space.
*/ */
...@@ -499,7 +509,7 @@ static int brcm_ahci_probe(struct platform_device *pdev) ...@@ -499,7 +509,7 @@ static int brcm_ahci_probe(struct platform_device *pdev)
priv->port_mask = brcm_ahci_get_portmask(hpriv, priv); priv->port_mask = brcm_ahci_get_portmask(hpriv, priv);
if (!priv->port_mask) { if (!priv->port_mask) {
ret = -ENODEV; ret = -ENODEV;
goto out_disable_clks; goto out_disable_regulators;
} }
/* Must be done before ahci_platform_enable_phys() */ /* Must be done before ahci_platform_enable_phys() */
...@@ -524,6 +534,8 @@ static int brcm_ahci_probe(struct platform_device *pdev) ...@@ -524,6 +534,8 @@ static int brcm_ahci_probe(struct platform_device *pdev)
ahci_platform_disable_phys(hpriv); ahci_platform_disable_phys(hpriv);
out_disable_phys: out_disable_phys:
brcm_sata_phys_disable(priv); brcm_sata_phys_disable(priv);
out_disable_regulators:
ahci_platform_disable_regulators(hpriv);
out_disable_clks: out_disable_clks:
ahci_platform_disable_clks(hpriv); ahci_platform_disable_clks(hpriv);
out_reset: out_reset:
......
...@@ -202,14 +202,19 @@ static void pata_icside_set_dmamode(struct ata_port *ap, struct ata_device *adev ...@@ -202,14 +202,19 @@ static void pata_icside_set_dmamode(struct ata_port *ap, struct ata_device *adev
* Choose the IOMD cycle timing which ensure that the interface * Choose the IOMD cycle timing which ensure that the interface
* satisfies the measured active, recovery and cycle times. * satisfies the measured active, recovery and cycle times.
*/ */
if (t.active <= 50 && t.recover <= 375 && t.cycle <= 425) if (t.active <= 50 && t.recover <= 375 && t.cycle <= 425) {
iomd_type = 'D', cycle = 187; iomd_type = 'D';
else if (t.active <= 125 && t.recover <= 375 && t.cycle <= 500) cycle = 187;
iomd_type = 'C', cycle = 250; } else if (t.active <= 125 && t.recover <= 375 && t.cycle <= 500) {
else if (t.active <= 200 && t.recover <= 550 && t.cycle <= 750) iomd_type = 'C';
iomd_type = 'B', cycle = 437; cycle = 250;
else } else if (t.active <= 200 && t.recover <= 550 && t.cycle <= 750) {
iomd_type = 'A', cycle = 562; iomd_type = 'B';
cycle = 437;
} else {
iomd_type = 'A';
cycle = 562;
}
ata_dev_info(adev, "timings: act %dns rec %dns cyc %dns (%c)\n", ata_dev_info(adev, "timings: act %dns rec %dns cyc %dns (%c)\n",
t.active, t.recover, t.cycle, iomd_type); t.active, t.recover, t.cycle, iomd_type);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment