Commit 1fa1f2e0 authored by Lendacky, Thomas's avatar Lendacky, Thomas Committed by David S. Miller

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: default avatarTom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8c43a2cc
...@@ -95,7 +95,7 @@ MODULE_DESCRIPTION("AMD 10GbE (amd-xgbe) PHY driver"); ...@@ -95,7 +95,7 @@ MODULE_DESCRIPTION("AMD 10GbE (amd-xgbe) PHY driver");
#define XNP_MP_FORMATTED (1 << 13) #define XNP_MP_FORMATTED (1 << 13)
#define XNP_NP_EXCHANGE (1 << 15) #define XNP_NP_EXCHANGE (1 << 15)
#define XGBE_PHY_RATECHANGE_COUNT 100 #define XGBE_PHY_RATECHANGE_COUNT 500
#ifndef MDIO_PMA_10GBR_PMD_CTRL #ifndef MDIO_PMA_10GBR_PMD_CTRL
#define MDIO_PMA_10GBR_PMD_CTRL 0x0096 #define MDIO_PMA_10GBR_PMD_CTRL 0x0096
...@@ -411,7 +411,7 @@ static void amd_xgbe_phy_serdes_complete_ratechange(struct phy_device *phydev) ...@@ -411,7 +411,7 @@ static void amd_xgbe_phy_serdes_complete_ratechange(struct phy_device *phydev)
/* Wait for Rx and Tx ready */ /* Wait for Rx and Tx ready */
wait = XGBE_PHY_RATECHANGE_COUNT; wait = XGBE_PHY_RATECHANGE_COUNT;
while (wait--) { while (wait--) {
usleep_range(10, 20); usleep_range(50, 75);
status = XSIR0_IOREAD(priv, SIR0_STATUS); status = XSIR0_IOREAD(priv, SIR0_STATUS);
if (XSIR_GET_BITS(status, SIR0_STATUS, RX_READY) && 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) ...@@ -419,7 +419,7 @@ static void amd_xgbe_phy_serdes_complete_ratechange(struct phy_device *phydev)
return; 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); status);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment