]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40e: Fix for supported link modes in 10GBaseT PHY's
authorAvinash Dayanand <avinash.dayanand@intel.com>
Fri, 18 Mar 2016 19:18:13 +0000 (12:18 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 7 Jul 2016 17:40:54 +0000 (10:40 -0700)
Orabug: 23176970

100baseT/Full is now listed and supported link mode for 10GBaseT PHY.
This is a fix to list all the supported link modes of 10GBaseT PHY.

Change-ID: If2be3212ef0fef85fd5d6e4550c7783de2f915e9
Signed-off-by: Avinash Dayanand <avinash.dayanand@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 16badc34695ff489a39e450b4e4e5a241ac85a31)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_ethtool.c

index 6e58f4e8dfe1837db870ed048e3cee0f156b6605..36bb01f54d949362cc1963bda8d1ccb111943412 100644 (file)
@@ -313,6 +313,13 @@ static void i40e_get_settings_link_up(struct i40e_hw *hw,
                        ecmd->advertising |= ADVERTISED_10000baseT_Full;
                if (hw_link_info->requested_speeds & I40E_LINK_SPEED_1GB)
                        ecmd->advertising |= ADVERTISED_1000baseT_Full;
+               /* adding 100baseT support for 10GBASET_PHY */
+               if (pf->flags & I40E_FLAG_HAVE_10GBASET_PHY) {
+                       ecmd->supported |= SUPPORTED_100baseT_Full;
+                       ecmd->advertising |= ADVERTISED_100baseT_Full |
+                                            ADVERTISED_1000baseT_Full |
+                                            ADVERTISED_10000baseT_Full;
+               }
                break;
        case I40E_PHY_TYPE_1000BASE_T_OPTICAL:
                ecmd->supported = SUPPORTED_Autoneg |
@@ -325,6 +332,15 @@ static void i40e_get_settings_link_up(struct i40e_hw *hw,
                                  SUPPORTED_100baseT_Full;
                if (hw_link_info->requested_speeds & I40E_LINK_SPEED_100MB)
                        ecmd->advertising |= ADVERTISED_100baseT_Full;
+               /* firmware detects 10G phy as 100M phy at 100M speed */
+               if (pf->flags & I40E_FLAG_HAVE_10GBASET_PHY) {
+                       ecmd->supported |= SUPPORTED_10000baseT_Full |
+                                          SUPPORTED_1000baseT_Full;
+                       ecmd->advertising |= ADVERTISED_Autoneg |
+                                            ADVERTISED_100baseT_Full |
+                                            ADVERTISED_1000baseT_Full |
+                                            ADVERTISED_10000baseT_Full;
+               }
                break;
        case I40E_PHY_TYPE_10GBASE_CR1_CU:
        case I40E_PHY_TYPE_10GBASE_CR1: