From 1fa1f2e09824abd39fa7e7bffe8769b7b0260b45 Mon Sep 17 00:00:00 2001 From: "Lendacky, Thomas" Date: Fri, 1 Aug 2014 11:56:36 -0500 Subject: [PATCH] amd-xgbe-phy: Allow more time for Rx/Tx to become ready The current time range waiting for Rx/Tx to become ready can sometimes be too short if a connection is not present. Increase the number of retries and the sleep to give a bit more time. Also, change level of the message issued from _err to _dbg if Rx/Tx do not become ready since the underlying logic will function as if no link is established and retry eventually. Signed-off-by: Tom Lendacky Signed-off-by: David S. Miller --- drivers/net/phy/amd-xgbe-phy.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/phy/amd-xgbe-phy.c b/drivers/net/phy/amd-xgbe-phy.c index 388e3029165a..f3230eef41fd 100644 --- a/drivers/net/phy/amd-xgbe-phy.c +++ b/drivers/net/phy/amd-xgbe-phy.c @@ -95,7 +95,7 @@ MODULE_DESCRIPTION("AMD 10GbE (amd-xgbe) PHY driver"); #define XNP_MP_FORMATTED (1 << 13) #define XNP_NP_EXCHANGE (1 << 15) -#define XGBE_PHY_RATECHANGE_COUNT 100 +#define XGBE_PHY_RATECHANGE_COUNT 500 #ifndef MDIO_PMA_10GBR_PMD_CTRL #define MDIO_PMA_10GBR_PMD_CTRL 0x0096 @@ -411,7 +411,7 @@ static void amd_xgbe_phy_serdes_complete_ratechange(struct phy_device *phydev) /* Wait for Rx and Tx ready */ wait = XGBE_PHY_RATECHANGE_COUNT; while (wait--) { - usleep_range(10, 20); + usleep_range(50, 75); status = XSIR0_IOREAD(priv, SIR0_STATUS); if (XSIR_GET_BITS(status, SIR0_STATUS, RX_READY) && @@ -419,7 +419,7 @@ static void amd_xgbe_phy_serdes_complete_ratechange(struct phy_device *phydev) return; } - netdev_err(phydev->attached_dev, "SerDes rx/tx not ready (%#hx)\n", + netdev_dbg(phydev->attached_dev, "SerDes rx/tx not ready (%#hx)\n", status); }