amd-xgbe-phy: Print out the auto-negotiation method used
authorLendacky, Thomas <Thomas.Lendacky@amd.com>
Tue, 29 Jul 2014 13:57:49 +0000 (08:57 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 31 Jul 2014 01:46:53 +0000 (18:46 -0700)
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>
drivers/net/phy/amd-xgbe-phy.c

index 39428e5..388e302 100644 (file)
@@ -857,6 +857,7 @@ static void amd_xgbe_an_state_machine(struct work_struct *work)
        struct phy_device *phydev = priv->phydev;
        enum amd_xgbe_phy_an cur_state;
        int sleep;
+       unsigned int an_supported = 0;
 
        while (1) {
                mutex_lock(&priv->an_mutex);
@@ -866,6 +867,7 @@ static void amd_xgbe_an_state_machine(struct work_struct *work)
                switch (priv->an_state) {
                case AMD_XGBE_AN_START:
                        priv->an_state = amd_xgbe_an_start(phydev);
+                       an_supported = 0;
                        break;
 
                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:
                        priv->an_state = amd_xgbe_an_page_received(phydev);
+                       an_supported++;
                        break;
 
                case AMD_XGBE_AN_INCOMPAT_LINK:
@@ -881,6 +884,11 @@ static void amd_xgbe_an_state_machine(struct work_struct *work)
                        break;
 
                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_EXIT:
                        goto exit_unlock;