* [PATCH] ata: ahci_brcm: Add back regulators management
@ 2020-12-23 22:41 Florian Fainelli
2021-01-14 20:46 ` Florian Fainelli
0 siblings, 1 reply; 3+ messages in thread
From: Florian Fainelli @ 2020-12-23 22:41 UTC (permalink / raw)
To: linux-kernel, axboe
Cc: bcm-kernel-feedback-list, Florian Fainelli, Hans de Goede,
open list:LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
While reworking the resources management and departing from using
ahci_platform_enable_resources() which did not allow a proper step
separation like we need, we unfortunately lost the ability to control
AHCI regulators. This broke some Broadcom STB systems that do expect
regulators to be turned on to link up with attached hard drives.
Fixes: c0cdf2ac4b5b ("ata: ahci_brcm: Fix AHCI resources management")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
Jens,
This is based on your for-next branch, let me know if you need me to
rebase to a different branch. Thanks!
drivers/ata/ahci_brcm.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/ahci_brcm.c b/drivers/ata/ahci_brcm.c
index 49f7acbfcf01..5b32df5d33ad 100644
--- a/drivers/ata/ahci_brcm.c
+++ b/drivers/ata/ahci_brcm.c
@@ -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 @@ static int __maybe_unused brcm_ahci_resume(struct device *dev)
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 @@ static int brcm_ahci_probe(struct platform_device *pdev)
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:
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] ata: ahci_brcm: Add back regulators management
2020-12-23 22:41 [PATCH] ata: ahci_brcm: Add back regulators management Florian Fainelli
@ 2021-01-14 20:46 ` Florian Fainelli
2021-01-21 20:47 ` Florian Fainelli
0 siblings, 1 reply; 3+ messages in thread
From: Florian Fainelli @ 2021-01-14 20:46 UTC (permalink / raw)
To: Florian Fainelli, linux-kernel, axboe
Cc: bcm-kernel-feedback-list, Hans de Goede,
open list:LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
On 12/23/20 2:41 PM, Florian Fainelli wrote:
> While reworking the resources management and departing from using
> ahci_platform_enable_resources() which did not allow a proper step
> separation like we need, we unfortunately lost the ability to control
> AHCI regulators. This broke some Broadcom STB systems that do expect
> regulators to be turned on to link up with attached hard drives.
>
> Fixes: c0cdf2ac4b5b ("ata: ahci_brcm: Fix AHCI resources management")
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
> Jens,
>
> This is based on your for-next branch, let me know if you need me to
> rebase to a different branch. Thanks!
Jens, this is a bug fix so it would be nice to get this applied at some
point. Thank you
--
Florian
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] ata: ahci_brcm: Add back regulators management
2021-01-14 20:46 ` Florian Fainelli
@ 2021-01-21 20:47 ` Florian Fainelli
0 siblings, 0 replies; 3+ messages in thread
From: Florian Fainelli @ 2021-01-21 20:47 UTC (permalink / raw)
To: Florian Fainelli, linux-kernel, axboe
Cc: bcm-kernel-feedback-list, Hans de Goede,
open list:LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
On 1/14/2021 12:46 PM, Florian Fainelli wrote:
> On 12/23/20 2:41 PM, Florian Fainelli wrote:
>> While reworking the resources management and departing from using
>> ahci_platform_enable_resources() which did not allow a proper step
>> separation like we need, we unfortunately lost the ability to control
>> AHCI regulators. This broke some Broadcom STB systems that do expect
>> regulators to be turned on to link up with attached hard drives.
>>
>> Fixes: c0cdf2ac4b5b ("ata: ahci_brcm: Fix AHCI resources management")
>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
>> ---
>> Jens,
>>
>> This is based on your for-next branch, let me know if you need me to
>> rebase to a different branch. Thanks!
>
> Jens, this is a bug fix so it would be nice to get this applied at some> point. Thank you
Jens, can you apply this patch or let me know if you need me to change
something? Thanks
--
Florian
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-01-21 20:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-23 22:41 [PATCH] ata: ahci_brcm: Add back regulators management Florian Fainelli
2021-01-14 20:46 ` Florian Fainelli
2021-01-21 20:47 ` Florian Fainelli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).