ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
Subsystems (2)
PATCH 1/1 ata: ahci: mvebu: Make SATA PHY optional for Armada 3720
Older ATF does not provide SMC call for SATA phy power on functionality and therefore initialization of ahci_mvebu is failing when older version of ATF is using. In this case phy_power_on() function returns -EOPNOTSUPP.
This patch adds a new hflag AHCI_HFLAG_IGN_NOTSUPP_POWER_ON which cause that ahci_platform_enable_phys() would ignore -EOPNOTSUPP errors from phy_power_on() call.
It fixes initialization of ahci_mvebu on Espressobin boards where is older Marvell's Arm Trusted Firmware without SMC call for SATA phy power.
This is regression introduced in commit 8e18c8e58da64 ("arm64: dts: marvell:
armada-3720-espressobin: declare SATA PHY property") where SATA phy was defined and therefore ahci_platform_enable_phys() on Espressobin started failing.
--- drivers/ata/ahci.h | 2 ++ drivers/ata/ahci_mvebu.c | 2 +- drivers/ata/libahci_platform.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-)
drivers/ata/ahci.h +2 -0
@@ -240,6 +240,8 @@ enum {as default lpm_policy */ AHCI_HFLAG_SUSPEND_PHYS = (1 <<26 ),/* handle PHYs during suspend/resume */ + AHCI_HFLAG_IGN_NOTSUPP_POWER_ON = (1 << 27), /* ignore -EOPNOTSUPP +from phy_power_on() */ /* ap->flags bits */
drivers/ata/ahci_mvebu.c +1 -1
@@ -227,7 +227,7 @@ static const struct ahci_mvebu_plat_data ahci_mvebu_armada_380_plat_data = {static const struct ahci_mvebu_plat_data ahci_mvebu_armada_3700_plat_data = { .plat_config = ahci_mvebu_armada_3700_config, - .flags =AHCI_HFLAG_SUSPEND_PHYS , + .flags =AHCI_HFLAG_SUSPEND_PHYS |AHCI_HFLAG_IGN_NOTSUPP_POWER_ON , };static const struct of_device_id ahci_mvebu_of_match[] = {
drivers/ata/libahci_platform.c +1 -1
@@ -59,7 +59,7 @@ int ahci_platform_enable_phys(struct ahci_host_priv *hpriv) } rc =phy_power_on (hpriv->phys[i]); -if (rc) { +if (rc && !(rc == -EOPNOTSUPP && (hpriv->flags &AHCI_HFLAG_IGN_NOTSUPP_POWER_ON ))) {phy_exit (hpriv->phys[i]); goto disable_phys; }
Signature · 1 line
2.20.1
Jens Axboe
AppliedQuoted 8 lines · Pali Rohár
Older ATF does not provide SMC call for SATA phy power on functionality and therefore initialization of
ahci_mvebuis failing when older version of ATF is using. In this casephy_power_on()function returns-EOPNOTSUPP.This patch adds a new hflag
AHCI_HFLAG_IGN_NOTSUPP_POWER_ONwhich cause thatahci_platform_enable_phys()would ignore-EOPNOTSUPPerrors fromphy_power_on()call.
Quoted 7 lines
It fixes initialization of
ahci_mvebuon Espressobin boards where is older Marvell's Arm Trusted Firmware without SMC call for SATA phy power.This is regression introduced in commit
8e18c8e58da64("arm64: dts: marvell:
armada-3720-espressobin: declare SATA PHY property") where SATA phy was defined and thereforeahci_platform_enable_phys()on Espressobin started failing.
Applied, thanks.
Signature · 1 line
Jens Axboe