Re: ARMADA espressobin SATA drive detection failure
From: Pali Rohár <pali@kernel.org>
Date: 2022-08-13 12:01:19
On Saturday 13 August 2022 11:53:39 Shinichiro Kawasaki wrote:
On Aug 13, 2022 / 11:32, Pali Rohár wrote:quoted
On Saturday 13 August 2022 01:35:35 Shinichiro Kawasaki wrote:[...]quoted
Ok, thanks for testing. It looks like that reset code has some issues. Could you please test this change?@@ -1393,7 +1436,8 @@ static int mvebu_a3700_comphy_probe(struct platform_device *pdev) * To avoid relying on the bootloader/firmware configuration, * power off all comphys. */ - mvebu_a3700_comphy_reset(phy); +// mvebu_a3700_comphy_reset(phy); + mvebu_a3700_comphy_power_off(phy); lane->needs_reset = false; }It should replace reset code by power off at beginning / probe time.This change also avoided the "ata1: SATA link down (SStatus 0 SControl 300)" message, and my SSD was detected as /dev/sda. Good symptoms for me. FYI, I attach the console log with this change. (This time, following messages were printed. Not sure if they are important or not.) [ 2.937376] mvebu-a3700-comphy d0018300.phy: invalid COMPHY mode [ 2.943581] mvebu-a3700-comphy d0018300.phy: invalid COMPHY mode [ 2.949679] mvebu-a3700-comphy d0018300.phy: invalid COMPHY mode
Those errors are important, it means that power_off did nothing and was
skipped. So test did nothing.
Could you please replace mvebu_a3700_comphy_power_off implementation
with this one and try it again?
static int mvebu_a3700_comphy_power_off(struct phy *phy)
{
struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy);
switch (lane->id) {
case 0:
mvebu_a3700_comphy_usb3_power_off(lane);
mvebu_a3700_comphy_ethernet_power_off(lane);
return 0;
case 1:
mvebu_a3700_comphy_pcie_power_off(lane);
mvebu_a3700_comphy_ethernet_power_off(lane);
return 0;
case 2:
mvebu_a3700_comphy_usb3_power_off(lane);
mvebu_a3700_comphy_sata_power_off(lane);
return 0;
default:
dev_err(lane->dev, "invalid COMPHY mode\n");
return -EINVAL;
}
}
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy