Armada 370 and XP do not have a SATA phy driver. The generic phy layer does not cleanly support optional phys. It is not possible to determine from the error code if there is expected to be a phy according to DT, but it cannot be found, or no phy is listed in DT. All that can be determined is that a phy is expected, but the driver has not been loaded yet, in which case -EPROBE_DEFER is returned. Thus for 370 and XP the driver failed to probe. Play safe, consider all errors except -EPROBE_DEFER to be none fatal and keep going, and in the case of -EPROBE_DEFER exit the probe function with that error code. Tested on Kirkwood with a sata phy driver and on 370 without a sata phy driver. Reported-by: Jean Pihet <jean.pihet@xxxxxxxxxx> Signed-off-by: Andrew Lunn <andrew@xxxxxxx> Tested-by: Gregory Clement <gregory.clement@xxxxxxxxxxxxxxxxxx> --- drivers/ata/sata_mv.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index eaa21eddbe70..148ff5a82c8b 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c @@ -4115,9 +4115,8 @@ static int mv_platform_probe(struct platform_device *pdev) if (IS_ERR(hpriv->port_phys[port])) { rc = PTR_ERR(hpriv->port_phys[port]); hpriv->port_phys[port] = NULL; - if ((rc != -EPROBE_DEFER) && (rc != -ENODEV)) - dev_warn(&pdev->dev, "error getting phy"); - goto err; + if (rc == -EPROBE_DEFER) + goto err; } else phy_power_on(hpriv->port_phys[port]); } -- 1.8.5.2 -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html