Explorar o código

amd-xgbe-phy: Print out the auto-negotiation method used

Add a netdev_info statement detailing whether auto-negotiation was
completed through parallel detection or through the auto-negotiation
protocol.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Lendacky, Thomas %!s(int64=11) %!d(string=hai) anos
pai
achega
b668a3aefd
Modificáronse 1 ficheiros con 8 adicións e 0 borrados
  1. 8 0
      drivers/net/phy/amd-xgbe-phy.c

+ 8 - 0
drivers/net/phy/amd-xgbe-phy.c

@@ -857,6 +857,7 @@ static void amd_xgbe_an_state_machine(struct work_struct *work)
 	struct phy_device *phydev = priv->phydev;
 	struct phy_device *phydev = priv->phydev;
 	enum amd_xgbe_phy_an cur_state;
 	enum amd_xgbe_phy_an cur_state;
 	int sleep;
 	int sleep;
+	unsigned int an_supported = 0;
 
 
 	while (1) {
 	while (1) {
 		mutex_lock(&priv->an_mutex);
 		mutex_lock(&priv->an_mutex);
@@ -866,6 +867,7 @@ static void amd_xgbe_an_state_machine(struct work_struct *work)
 		switch (priv->an_state) {
 		switch (priv->an_state) {
 		case AMD_XGBE_AN_START:
 		case AMD_XGBE_AN_START:
 			priv->an_state = amd_xgbe_an_start(phydev);
 			priv->an_state = amd_xgbe_an_start(phydev);
+			an_supported = 0;
 			break;
 			break;
 
 
 		case AMD_XGBE_AN_EVENT:
 		case AMD_XGBE_AN_EVENT:
@@ -874,6 +876,7 @@ static void amd_xgbe_an_state_machine(struct work_struct *work)
 
 
 		case AMD_XGBE_AN_PAGE_RECEIVED:
 		case AMD_XGBE_AN_PAGE_RECEIVED:
 			priv->an_state = amd_xgbe_an_page_received(phydev);
 			priv->an_state = amd_xgbe_an_page_received(phydev);
+			an_supported++;
 			break;
 			break;
 
 
 		case AMD_XGBE_AN_INCOMPAT_LINK:
 		case AMD_XGBE_AN_INCOMPAT_LINK:
@@ -881,6 +884,11 @@ static void amd_xgbe_an_state_machine(struct work_struct *work)
 			break;
 			break;
 
 
 		case AMD_XGBE_AN_COMPLETE:
 		case AMD_XGBE_AN_COMPLETE:
+			netdev_info(phydev->attached_dev, "%s successful\n",
+				    an_supported ? "Auto negotiation"
+						 : "Parallel detection");
+			/* fall through */
+
 		case AMD_XGBE_AN_NO_LINK:
 		case AMD_XGBE_AN_NO_LINK:
 		case AMD_XGBE_AN_EXIT:
 		case AMD_XGBE_AN_EXIT:
 			goto exit_unlock;
 			goto exit_unlock;