diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2012-04-18 23:21:47 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-05-04 06:15:06 -0400 |
commit | 2fbe4526e5aafc9ffa5d85fa4749a7c5b22af6b2 (patch) | |
tree | d49b59c7ab233d3280f3054b19fbd3832a8898ca /drivers/net/ethernet/intel/e1000e/ethtool.c | |
parent | d02c70a8ee1738fc2cf6db18df065977bb44fd50 (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.c | 17 |
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 | ||