From 363969758f660bfc4d544b24b4bdebf2ef43193a Mon Sep 17 00:00:00 2001
From: lguohan <lguohan@gmail.com>
Date: Tue, 5 Dec 2017 09:35:50 -0800
Subject: [PATCH] [igb]: support broadcom 54616 phy for Intel igb driver (#3)

---
 ...adcom-54616-Phy-for-Intel-igb-driver.patch | 61 +++++++++++++++++++
 patch/series                                  |  1 +
 2 files changed, 62 insertions(+)
 create mode 100644 patch/0011-support-Broadcom-54616-Phy-for-Intel-igb-driver.patch

diff --git a/patch/0011-support-Broadcom-54616-Phy-for-Intel-igb-driver.patch b/patch/0011-support-Broadcom-54616-Phy-for-Intel-igb-driver.patch
new file mode 100644
index 000000000..721065dc2
--- /dev/null
+++ b/patch/0011-support-Broadcom-54616-Phy-for-Intel-igb-driver.patch
@@ -0,0 +1,61 @@
+From 6d396497162d143ff7476bdcdffa29923ff7a49e Mon Sep 17 00:00:00 2001
+From: Guohan Lu <gulv@microsoft.com>
+Date: Tue, 5 Dec 2017 13:41:45 +0000
+Subject: [PATCH] Support Broadcom 54616 Phy for Intel igb driver
+
+---
+ drivers/net/ethernet/intel/igb/e1000_82575.c   | 5 +++++
+ drivers/net/ethernet/intel/igb/e1000_defines.h | 1 +
+ drivers/net/ethernet/intel/igb/e1000_hw.h      | 1 +
+ 3 files changed, 7 insertions(+)
+
+diff --git a/drivers/net/ethernet/intel/igb/e1000_82575.c b/drivers/net/ethernet/intel/igb/e1000_82575.c
+index a61447f..394ecd8 100644
+--- a/drivers/net/ethernet/intel/igb/e1000_82575.c
++++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
+@@ -328,6 +328,9 @@ static s32 igb_init_phy_params_82575(struct e1000_hw *hw)
+ 		phy->ops.set_d3_lplu_state = igb_set_d3_lplu_state_82580;
+ 		phy->ops.force_speed_duplex = igb_phy_force_speed_duplex_m88;
+ 		break;
++	case BCM54616_E_PHY_ID:
++		phy->type = e1000_phy_bcm54616;
++		break;
+ 	default:
+ 		ret_val = -E1000_ERR_PHY;
+ 		goto out;
+@@ -1647,6 +1650,8 @@ static s32 igb_setup_copper_link_82575(struct e1000_hw *hw)
+ 	case e1000_phy_82580:
+ 		ret_val = igb_copper_link_setup_82580(hw);
+ 		break;
++	case e1000_phy_bcm54616:
++		break;
+ 	default:
+ 		ret_val = -E1000_ERR_PHY;
+ 		break;
+diff --git a/drivers/net/ethernet/intel/igb/e1000_defines.h b/drivers/net/ethernet/intel/igb/e1000_defines.h
+index 2688180..ce95b7e 100644
+--- a/drivers/net/ethernet/intel/igb/e1000_defines.h
++++ b/drivers/net/ethernet/intel/igb/e1000_defines.h
+@@ -867,6 +867,7 @@
+ #define I210_I_PHY_ID        0x01410C00
+ #define M88E1543_E_PHY_ID    0x01410EA0
+ #define M88E1512_E_PHY_ID    0x01410DD0
++#define BCM54616_E_PHY_ID    0x03625D10
+ 
+ /* M88E1000 Specific Registers */
+ #define M88E1000_PHY_SPEC_CTRL     0x10  /* PHY Specific Control Register */
+diff --git a/drivers/net/ethernet/intel/igb/e1000_hw.h b/drivers/net/ethernet/intel/igb/e1000_hw.h
+index 2fb2213..644d8f5 100644
+--- a/drivers/net/ethernet/intel/igb/e1000_hw.h
++++ b/drivers/net/ethernet/intel/igb/e1000_hw.h
+@@ -128,6 +128,7 @@ enum e1000_phy_type {
+ 	e1000_phy_ife,
+ 	e1000_phy_82580,
+ 	e1000_phy_i210,
++	e1000_phy_bcm54616,
+ };
+ 
+ enum e1000_bus_type {
+-- 
+2.7.4
+
diff --git a/patch/series b/patch/series
index 1da6ee173..f1a3c4da6 100644
--- a/patch/series
+++ b/patch/series
@@ -9,6 +9,7 @@
 0008-hwmon-pmbus-Add-support-for-Texas-Instruments-tps536.patch
 0009-platform-mellonox-introduce-mlxreg-io-driver-and-add.patch
 0010-config-mellanox-configuration.patch
+0011-support-Broadcom-54616-Phy-for-Intel-igb-driver.patch
 #
 # This series applies on GIT commit 1451b36b2b0d62178e42f648d8a18131af18f7d8
 # Tkernel-sched-core-fix-cgroup-fork-race.patch