aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/e1000e/ethtool.c
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2012-04-18 23:21:47 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2012-05-04 06:15:06 -0400
commit2fbe4526e5aafc9ffa5d85fa4749a7c5b22af6b2 (patch)
treed49b59c7ab233d3280f3054b19fbd3832a8898ca /drivers/net/ethernet/intel/e1000e/ethtool.c
parentd02c70a8ee1738fc2cf6db18df065977bb44fd50 (diff)
e1000e: initial support for i217
i217 is the next-generation LOM that will be available on systems with the Lynx Point Platform Controller Hub (PCH) chipset from Intel. This patch provides the initial support for the device. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/ethtool.c')
-rw-r--r--drivers/net/ethernet/intel/e1000e/ethtool.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/ethtool.c b/drivers/net/ethernet/intel/e1000e/ethtool.c
index 4f1edd9c22f1..d863075df7a4 100644
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -773,6 +773,7 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data)
773 u32 i; 773 u32 i;
774 u32 toggle; 774 u32 toggle;
775 u32 mask; 775 u32 mask;
776 u32 wlock_mac = 0;
776 777
777 /* 778 /*
778 * The status register is Read Only, so a write should fail. 779 * The status register is Read Only, so a write should fail.
@@ -838,19 +839,31 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data)
838 case e1000_ich10lan: 839 case e1000_ich10lan:
839 case e1000_pchlan: 840 case e1000_pchlan:
840 case e1000_pch2lan: 841 case e1000_pch2lan:
842 case e1000_pch_lpt:
841 mask |= (1 << 18); 843 mask |= (1 << 18);
842 break; 844 break;
843 default: 845 default:
844 break; 846 break;
845 } 847 }
846 for (i = 0; i < mac->rar_entry_count; i++) 848
849 if (mac->type == e1000_pch_lpt)
850 wlock_mac = (er32(FWSM) & E1000_FWSM_WLOCK_MAC_MASK) >>
851 E1000_FWSM_WLOCK_MAC_SHIFT;
852
853 for (i = 0; i < mac->rar_entry_count; i++) {
854 /* Cannot test write-protected SHRAL[n] registers */
855 if ((wlock_mac == 1) || (wlock_mac && (i > wlock_mac)))
856 continue;
857
847 REG_PATTERN_TEST_ARRAY(E1000_RA, ((i << 1) + 1), 858 REG_PATTERN_TEST_ARRAY(E1000_RA, ((i << 1) + 1),
848 mask, 0xFFFFFFFF); 859 mask, 0xFFFFFFFF);
860 }
849 861
850 for (i = 0; i < mac->mta_reg_count; i++) 862 for (i = 0; i < mac->mta_reg_count; i++)
851 REG_PATTERN_TEST_ARRAY(E1000_MTA, i, 0xFFFFFFFF, 0xFFFFFFFF); 863 REG_PATTERN_TEST_ARRAY(E1000_MTA, i, 0xFFFFFFFF, 0xFFFFFFFF);
852 864
853 *data = 0; 865 *data = 0;
866
854 return 0; 867 return 0;
855} 868}
856 869