diff options
-rw-r--r-- | drivers/net/ixgbe/ixgbe_82598.c | 85 | ||||
-rw-r--r-- | drivers/net/ixgbe/ixgbe_82599.c | 134 | ||||
-rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 2 | ||||
-rw-r--r-- | drivers/net/ixgbe/ixgbe_phy.c | 8 | ||||
-rw-r--r-- | drivers/net/ixgbe/ixgbe_type.h | 10 |
5 files changed, 169 insertions, 70 deletions
diff --git a/drivers/net/ixgbe/ixgbe_82598.c b/drivers/net/ixgbe/ixgbe_82598.c index 361c9d1d0117..a7ae4d45b53d 100644 --- a/drivers/net/ixgbe/ixgbe_82598.c +++ b/drivers/net/ixgbe/ixgbe_82598.c | |||
@@ -1089,35 +1089,56 @@ out: | |||
1089 | static u32 ixgbe_get_supported_physical_layer_82598(struct ixgbe_hw *hw) | 1089 | static u32 ixgbe_get_supported_physical_layer_82598(struct ixgbe_hw *hw) |
1090 | { | 1090 | { |
1091 | u32 physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | 1091 | u32 physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; |
1092 | u32 autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC); | ||
1093 | u32 pma_pmd_10g = autoc & IXGBE_AUTOC_10G_PMA_PMD_MASK; | ||
1094 | u32 pma_pmd_1g = autoc & IXGBE_AUTOC_1G_PMA_PMD_MASK; | ||
1095 | u16 ext_ability = 0; | ||
1096 | |||
1097 | hw->phy.ops.identify(hw); | ||
1098 | |||
1099 | /* Copper PHY must be checked before AUTOC LMS to determine correct | ||
1100 | * physical layer because 10GBase-T PHYs use LMS = KX4/KX */ | ||
1101 | if (hw->phy.type == ixgbe_phy_tn || | ||
1102 | hw->phy.type == ixgbe_phy_cu_unknown) { | ||
1103 | hw->phy.ops.read_reg(hw, IXGBE_MDIO_PHY_EXT_ABILITY, | ||
1104 | IXGBE_MDIO_PMA_PMD_DEV_TYPE, &ext_ability); | ||
1105 | if (ext_ability & IXGBE_MDIO_PHY_10GBASET_ABILITY) | ||
1106 | physical_layer |= IXGBE_PHYSICAL_LAYER_10GBASE_T; | ||
1107 | if (ext_ability & IXGBE_MDIO_PHY_1000BASET_ABILITY) | ||
1108 | physical_layer |= IXGBE_PHYSICAL_LAYER_1000BASE_T; | ||
1109 | if (ext_ability & IXGBE_MDIO_PHY_100BASETX_ABILITY) | ||
1110 | physical_layer |= IXGBE_PHYSICAL_LAYER_100BASE_TX; | ||
1111 | goto out; | ||
1112 | } | ||
1092 | 1113 | ||
1093 | switch (hw->device_id) { | 1114 | switch (autoc & IXGBE_AUTOC_LMS_MASK) { |
1094 | case IXGBE_DEV_ID_82598: | 1115 | case IXGBE_AUTOC_LMS_1G_AN: |
1095 | /* Default device ID is mezzanine card KX/KX4 */ | 1116 | case IXGBE_AUTOC_LMS_1G_LINK_NO_AN: |
1096 | physical_layer = (IXGBE_PHYSICAL_LAYER_10GBASE_KX4 | | 1117 | if (pma_pmd_1g == IXGBE_AUTOC_1G_KX) |
1097 | IXGBE_PHYSICAL_LAYER_1000BASE_KX); | 1118 | physical_layer = IXGBE_PHYSICAL_LAYER_1000BASE_KX; |
1098 | break; | 1119 | else |
1099 | case IXGBE_DEV_ID_82598_BX: | 1120 | physical_layer = IXGBE_PHYSICAL_LAYER_1000BASE_BX; |
1100 | physical_layer = IXGBE_PHYSICAL_LAYER_1000BASE_BX; | ||
1101 | case IXGBE_DEV_ID_82598EB_CX4: | ||
1102 | case IXGBE_DEV_ID_82598_CX4_DUAL_PORT: | ||
1103 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_CX4; | ||
1104 | break; | ||
1105 | case IXGBE_DEV_ID_82598_DA_DUAL_PORT: | ||
1106 | physical_layer = IXGBE_PHYSICAL_LAYER_SFP_PLUS_CU; | ||
1107 | break; | 1121 | break; |
1108 | case IXGBE_DEV_ID_82598AF_DUAL_PORT: | 1122 | case IXGBE_AUTOC_LMS_10G_LINK_NO_AN: |
1109 | case IXGBE_DEV_ID_82598AF_SINGLE_PORT: | 1123 | if (pma_pmd_10g == IXGBE_AUTOC_10G_CX4) |
1110 | case IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM: | 1124 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_CX4; |
1111 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_SR; | 1125 | else if (pma_pmd_10g == IXGBE_AUTOC_10G_KX4) |
1126 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_KX4; | ||
1127 | else /* XAUI */ | ||
1128 | physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | ||
1112 | break; | 1129 | break; |
1113 | case IXGBE_DEV_ID_82598EB_XF_LR: | 1130 | case IXGBE_AUTOC_LMS_KX4_AN: |
1114 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_LR; | 1131 | case IXGBE_AUTOC_LMS_KX4_AN_1G_AN: |
1132 | if (autoc & IXGBE_AUTOC_KX_SUPP) | ||
1133 | physical_layer |= IXGBE_PHYSICAL_LAYER_1000BASE_KX; | ||
1134 | if (autoc & IXGBE_AUTOC_KX4_SUPP) | ||
1135 | physical_layer |= IXGBE_PHYSICAL_LAYER_10GBASE_KX4; | ||
1115 | break; | 1136 | break; |
1116 | case IXGBE_DEV_ID_82598AT: | 1137 | default: |
1117 | physical_layer = (IXGBE_PHYSICAL_LAYER_10GBASE_T | | ||
1118 | IXGBE_PHYSICAL_LAYER_1000BASE_T); | ||
1119 | break; | 1138 | break; |
1120 | case IXGBE_DEV_ID_82598EB_SFP_LOM: | 1139 | } |
1140 | |||
1141 | if (hw->phy.type == ixgbe_phy_nl) { | ||
1121 | hw->phy.ops.identify_sfp(hw); | 1142 | hw->phy.ops.identify_sfp(hw); |
1122 | 1143 | ||
1123 | switch (hw->phy.sfp_type) { | 1144 | switch (hw->phy.sfp_type) { |
@@ -1134,13 +1155,25 @@ static u32 ixgbe_get_supported_physical_layer_82598(struct ixgbe_hw *hw) | |||
1134 | physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | 1155 | physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; |
1135 | break; | 1156 | break; |
1136 | } | 1157 | } |
1137 | break; | 1158 | } |
1138 | 1159 | ||
1160 | switch (hw->device_id) { | ||
1161 | case IXGBE_DEV_ID_82598_DA_DUAL_PORT: | ||
1162 | physical_layer = IXGBE_PHYSICAL_LAYER_SFP_PLUS_CU; | ||
1163 | break; | ||
1164 | case IXGBE_DEV_ID_82598AF_DUAL_PORT: | ||
1165 | case IXGBE_DEV_ID_82598AF_SINGLE_PORT: | ||
1166 | case IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM: | ||
1167 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_SR; | ||
1168 | break; | ||
1169 | case IXGBE_DEV_ID_82598EB_XF_LR: | ||
1170 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_LR; | ||
1171 | break; | ||
1139 | default: | 1172 | default: |
1140 | physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | ||
1141 | break; | 1173 | break; |
1142 | } | 1174 | } |
1143 | 1175 | ||
1176 | out: | ||
1144 | return physical_layer; | 1177 | return physical_layer; |
1145 | } | 1178 | } |
1146 | 1179 | ||
diff --git a/drivers/net/ixgbe/ixgbe_82599.c b/drivers/net/ixgbe/ixgbe_82599.c index 50b399c1e87f..b3f4e96a018c 100644 --- a/drivers/net/ixgbe/ixgbe_82599.c +++ b/drivers/net/ixgbe/ixgbe_82599.c | |||
@@ -1177,53 +1177,98 @@ s32 ixgbe_identify_phy_82599(struct ixgbe_hw *hw) | |||
1177 | u32 ixgbe_get_supported_physical_layer_82599(struct ixgbe_hw *hw) | 1177 | u32 ixgbe_get_supported_physical_layer_82599(struct ixgbe_hw *hw) |
1178 | { | 1178 | { |
1179 | u32 physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | 1179 | u32 physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; |
1180 | u32 autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC); | ||
1181 | u32 autoc2 = IXGBE_READ_REG(hw, IXGBE_AUTOC2); | ||
1182 | u32 pma_pmd_10g_serial = autoc2 & IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK; | ||
1183 | u32 pma_pmd_10g_parallel = autoc & IXGBE_AUTOC_10G_PMA_PMD_MASK; | ||
1184 | u32 pma_pmd_1g = autoc & IXGBE_AUTOC_1G_PMA_PMD_MASK; | ||
1185 | u16 ext_ability = 0; | ||
1180 | u8 comp_codes_10g = 0; | 1186 | u8 comp_codes_10g = 0; |
1181 | 1187 | ||
1182 | switch (hw->device_id) { | 1188 | hw->phy.ops.identify(hw); |
1183 | case IXGBE_DEV_ID_82599: | 1189 | |
1184 | case IXGBE_DEV_ID_82599_KX4: | 1190 | if (hw->phy.type == ixgbe_phy_tn || |
1185 | /* Default device ID is mezzanine card KX/KX4 */ | 1191 | hw->phy.type == ixgbe_phy_cu_unknown) { |
1186 | physical_layer = (IXGBE_PHYSICAL_LAYER_10GBASE_KX4 | | 1192 | hw->phy.ops.read_reg(hw, IXGBE_MDIO_PHY_EXT_ABILITY, |
1187 | IXGBE_PHYSICAL_LAYER_1000BASE_KX); | 1193 | IXGBE_MDIO_PMA_PMD_DEV_TYPE, &ext_ability); |
1194 | if (ext_ability & IXGBE_MDIO_PHY_10GBASET_ABILITY) | ||
1195 | physical_layer |= IXGBE_PHYSICAL_LAYER_10GBASE_T; | ||
1196 | if (ext_ability & IXGBE_MDIO_PHY_1000BASET_ABILITY) | ||
1197 | physical_layer |= IXGBE_PHYSICAL_LAYER_1000BASE_T; | ||
1198 | if (ext_ability & IXGBE_MDIO_PHY_100BASETX_ABILITY) | ||
1199 | physical_layer |= IXGBE_PHYSICAL_LAYER_100BASE_TX; | ||
1200 | goto out; | ||
1201 | } | ||
1202 | |||
1203 | switch (autoc & IXGBE_AUTOC_LMS_MASK) { | ||
1204 | case IXGBE_AUTOC_LMS_1G_AN: | ||
1205 | case IXGBE_AUTOC_LMS_1G_LINK_NO_AN: | ||
1206 | if (pma_pmd_1g == IXGBE_AUTOC_1G_KX_BX) { | ||
1207 | physical_layer = IXGBE_PHYSICAL_LAYER_1000BASE_KX | | ||
1208 | IXGBE_PHYSICAL_LAYER_1000BASE_BX; | ||
1209 | goto out; | ||
1210 | } else | ||
1211 | /* SFI mode so read SFP module */ | ||
1212 | goto sfp_check; | ||
1188 | break; | 1213 | break; |
1189 | case IXGBE_DEV_ID_82599_SFP: | 1214 | case IXGBE_AUTOC_LMS_10G_LINK_NO_AN: |
1190 | hw->phy.ops.identify_sfp(hw); | 1215 | if (pma_pmd_10g_parallel == IXGBE_AUTOC_10G_CX4) |
1216 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_CX4; | ||
1217 | else if (pma_pmd_10g_parallel == IXGBE_AUTOC_10G_KX4) | ||
1218 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_KX4; | ||
1219 | goto out; | ||
1220 | break; | ||
1221 | case IXGBE_AUTOC_LMS_10G_SERIAL: | ||
1222 | if (pma_pmd_10g_serial == IXGBE_AUTOC2_10G_KR) { | ||
1223 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_KR; | ||
1224 | goto out; | ||
1225 | } else if (pma_pmd_10g_serial == IXGBE_AUTOC2_10G_SFI) | ||
1226 | goto sfp_check; | ||
1227 | break; | ||
1228 | case IXGBE_AUTOC_LMS_KX4_KX_KR: | ||
1229 | case IXGBE_AUTOC_LMS_KX4_KX_KR_1G_AN: | ||
1230 | if (autoc & IXGBE_AUTOC_KX_SUPP) | ||
1231 | physical_layer |= IXGBE_PHYSICAL_LAYER_1000BASE_KX; | ||
1232 | if (autoc & IXGBE_AUTOC_KX4_SUPP) | ||
1233 | physical_layer |= IXGBE_PHYSICAL_LAYER_10GBASE_KX4; | ||
1234 | if (autoc & IXGBE_AUTOC_KR_SUPP) | ||
1235 | physical_layer |= IXGBE_PHYSICAL_LAYER_10GBASE_KR; | ||
1236 | goto out; | ||
1237 | break; | ||
1238 | default: | ||
1239 | goto out; | ||
1240 | break; | ||
1241 | } | ||
1191 | 1242 | ||
1192 | switch (hw->phy.sfp_type) { | 1243 | sfp_check: |
1193 | case ixgbe_sfp_type_da_cu: | 1244 | /* SFP check must be done last since DA modules are sometimes used to |
1194 | case ixgbe_sfp_type_da_cu_core0: | 1245 | * test KR mode - we need to id KR mode correctly before SFP module. |
1195 | case ixgbe_sfp_type_da_cu_core1: | 1246 | * Call identify_sfp because the pluggable module may have changed */ |
1196 | physical_layer = IXGBE_PHYSICAL_LAYER_SFP_PLUS_CU; | 1247 | hw->phy.ops.identify_sfp(hw); |
1197 | break; | 1248 | if (hw->phy.sfp_type == ixgbe_sfp_type_not_present) |
1198 | case ixgbe_sfp_type_sr: | 1249 | goto out; |
1250 | |||
1251 | switch (hw->phy.type) { | ||
1252 | case ixgbe_phy_tw_tyco: | ||
1253 | case ixgbe_phy_tw_unknown: | ||
1254 | physical_layer = IXGBE_PHYSICAL_LAYER_SFP_PLUS_CU; | ||
1255 | break; | ||
1256 | case ixgbe_phy_sfp_avago: | ||
1257 | case ixgbe_phy_sfp_ftl: | ||
1258 | case ixgbe_phy_sfp_intel: | ||
1259 | case ixgbe_phy_sfp_unknown: | ||
1260 | hw->phy.ops.read_i2c_eeprom(hw, | ||
1261 | IXGBE_SFF_10GBE_COMP_CODES, &comp_codes_10g); | ||
1262 | if (comp_codes_10g & IXGBE_SFF_10GBASESR_CAPABLE) | ||
1199 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_SR; | 1263 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_SR; |
1200 | break; | 1264 | else if (comp_codes_10g & IXGBE_SFF_10GBASELR_CAPABLE) |
1201 | case ixgbe_sfp_type_lr: | ||
1202 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_LR; | 1265 | physical_layer = IXGBE_PHYSICAL_LAYER_10GBASE_LR; |
1203 | break; | ||
1204 | case ixgbe_sfp_type_srlr_core0: | ||
1205 | case ixgbe_sfp_type_srlr_core1: | ||
1206 | hw->phy.ops.read_i2c_eeprom(hw, | ||
1207 | IXGBE_SFF_10GBE_COMP_CODES, | ||
1208 | &comp_codes_10g); | ||
1209 | if (comp_codes_10g & IXGBE_SFF_10GBASESR_CAPABLE) | ||
1210 | physical_layer = | ||
1211 | IXGBE_PHYSICAL_LAYER_10GBASE_SR; | ||
1212 | else if (comp_codes_10g & IXGBE_SFF_10GBASELR_CAPABLE) | ||
1213 | physical_layer = | ||
1214 | IXGBE_PHYSICAL_LAYER_10GBASE_LR; | ||
1215 | else | ||
1216 | physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | ||
1217 | default: | ||
1218 | physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | ||
1219 | break; | ||
1220 | } | ||
1221 | break; | 1266 | break; |
1222 | default: | 1267 | default: |
1223 | physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | ||
1224 | break; | 1268 | break; |
1225 | } | 1269 | } |
1226 | 1270 | ||
1271 | out: | ||
1227 | return physical_layer; | 1272 | return physical_layer; |
1228 | } | 1273 | } |
1229 | 1274 | ||
@@ -1271,6 +1316,22 @@ s32 ixgbe_enable_rx_dma_82599(struct ixgbe_hw *hw, u32 regval) | |||
1271 | return 0; | 1316 | return 0; |
1272 | } | 1317 | } |
1273 | 1318 | ||
1319 | /** | ||
1320 | * ixgbe_get_device_caps_82599 - Get additional device capabilities | ||
1321 | * @hw: pointer to hardware structure | ||
1322 | * @device_caps: the EEPROM word with the extra device capabilities | ||
1323 | * | ||
1324 | * This function will read the EEPROM location for the device capabilities, | ||
1325 | * and return the word through device_caps. | ||
1326 | **/ | ||
1327 | s32 ixgbe_get_device_caps_82599(struct ixgbe_hw *hw, u16 *device_caps) | ||
1328 | { | ||
1329 | hw->eeprom.ops.read(hw, IXGBE_DEVICE_CAPS, device_caps); | ||
1330 | |||
1331 | return 0; | ||
1332 | } | ||
1333 | |||
1334 | |||
1274 | static struct ixgbe_mac_operations mac_ops_82599 = { | 1335 | static struct ixgbe_mac_operations mac_ops_82599 = { |
1275 | .init_hw = &ixgbe_init_hw_generic, | 1336 | .init_hw = &ixgbe_init_hw_generic, |
1276 | .reset_hw = &ixgbe_reset_hw_82599, | 1337 | .reset_hw = &ixgbe_reset_hw_82599, |
@@ -1280,6 +1341,7 @@ static struct ixgbe_mac_operations mac_ops_82599 = { | |||
1280 | .get_supported_physical_layer = &ixgbe_get_supported_physical_layer_82599, | 1341 | .get_supported_physical_layer = &ixgbe_get_supported_physical_layer_82599, |
1281 | .enable_rx_dma = &ixgbe_enable_rx_dma_82599, | 1342 | .enable_rx_dma = &ixgbe_enable_rx_dma_82599, |
1282 | .get_mac_addr = &ixgbe_get_mac_addr_generic, | 1343 | .get_mac_addr = &ixgbe_get_mac_addr_generic, |
1344 | .get_device_caps = &ixgbe_get_device_caps_82599, | ||
1283 | .stop_adapter = &ixgbe_stop_adapter_generic, | 1345 | .stop_adapter = &ixgbe_stop_adapter_generic, |
1284 | .get_bus_info = &ixgbe_get_bus_info_generic, | 1346 | .get_bus_info = &ixgbe_get_bus_info_generic, |
1285 | .set_lan_id = &ixgbe_set_lan_id_multi_port_pcie, | 1347 | .set_lan_id = &ixgbe_set_lan_id_multi_port_pcie, |
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 936a3efb3621..2856486e1655 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -47,7 +47,7 @@ char ixgbe_driver_name[] = "ixgbe"; | |||
47 | static const char ixgbe_driver_string[] = | 47 | static const char ixgbe_driver_string[] = |
48 | "Intel(R) 10 Gigabit PCI Express Network Driver"; | 48 | "Intel(R) 10 Gigabit PCI Express Network Driver"; |
49 | 49 | ||
50 | #define DRV_VERSION "2.0.8-k2" | 50 | #define DRV_VERSION "2.0.16-k2" |
51 | const char ixgbe_driver_version[] = DRV_VERSION; | 51 | const char ixgbe_driver_version[] = DRV_VERSION; |
52 | static char ixgbe_copyright[] = "Copyright (c) 1999-2009 Intel Corporation."; | 52 | static char ixgbe_copyright[] = "Copyright (c) 1999-2009 Intel Corporation."; |
53 | 53 | ||
diff --git a/drivers/net/ixgbe/ixgbe_phy.c b/drivers/net/ixgbe/ixgbe_phy.c index 6f11df756daa..f3258ec901fe 100644 --- a/drivers/net/ixgbe/ixgbe_phy.c +++ b/drivers/net/ixgbe/ixgbe_phy.c | |||
@@ -632,7 +632,7 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw) | |||
632 | hw->phy.multispeed_fiber = true; | 632 | hw->phy.multispeed_fiber = true; |
633 | 633 | ||
634 | /* Determine PHY vendor */ | 634 | /* Determine PHY vendor */ |
635 | if (hw->phy.type == ixgbe_phy_unknown) { | 635 | if (hw->phy.type != ixgbe_phy_nl) { |
636 | hw->phy.id = identifier; | 636 | hw->phy.id = identifier; |
637 | hw->phy.ops.read_i2c_eeprom(hw, | 637 | hw->phy.ops.read_i2c_eeprom(hw, |
638 | IXGBE_SFF_VENDOR_OUI_BYTE0, | 638 | IXGBE_SFF_VENDOR_OUI_BYTE0, |
@@ -682,9 +682,9 @@ s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw) | |||
682 | goto out; | 682 | goto out; |
683 | } | 683 | } |
684 | 684 | ||
685 | hw->eeprom.ops.read(hw, IXGBE_PHY_ENFORCE_INTEL_SFP_OFFSET, | 685 | /* This is guaranteed to be 82599, no need to check for NULL */ |
686 | &enforce_sfp); | 686 | hw->mac.ops.get_device_caps(hw, &enforce_sfp); |
687 | if (!(enforce_sfp & IXGBE_PHY_ALLOW_ANY_SFP)) { | 687 | if (!(enforce_sfp & IXGBE_DEVICE_CAPS_ALLOW_ANY_SFP)) { |
688 | /* Make sure we're a supported PHY type */ | 688 | /* Make sure we're a supported PHY type */ |
689 | if (hw->phy.type == ixgbe_phy_sfp_intel) { | 689 | if (hw->phy.type == ixgbe_phy_sfp_intel) { |
690 | status = 0; | 690 | status = 0; |
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h index db65c05773ad..a3317d8fbf6a 100644 --- a/drivers/net/ixgbe/ixgbe_type.h +++ b/drivers/net/ixgbe/ixgbe_type.h | |||
@@ -862,6 +862,7 @@ | |||
862 | #define IXGBE_MDIO_PHY_EXT_ABILITY 0xB /* Ext Ability Reg */ | 862 | #define IXGBE_MDIO_PHY_EXT_ABILITY 0xB /* Ext Ability Reg */ |
863 | #define IXGBE_MDIO_PHY_10GBASET_ABILITY 0x0004 /* 10GBaseT capable */ | 863 | #define IXGBE_MDIO_PHY_10GBASET_ABILITY 0x0004 /* 10GBaseT capable */ |
864 | #define IXGBE_MDIO_PHY_1000BASET_ABILITY 0x0020 /* 1000BaseT capable */ | 864 | #define IXGBE_MDIO_PHY_1000BASET_ABILITY 0x0020 /* 1000BaseT capable */ |
865 | #define IXGBE_MDIO_PHY_100BASETX_ABILITY 0x0080 /* 100BaseTX capable */ | ||
865 | 866 | ||
866 | #define IXGBE_MDIO_PMA_PMD_SDA_SCL_ADDR 0xC30A /* PHY_XS SDA/SCL Addr Reg */ | 867 | #define IXGBE_MDIO_PMA_PMD_SDA_SCL_ADDR 0xC30A /* PHY_XS SDA/SCL Addr Reg */ |
867 | #define IXGBE_MDIO_PMA_PMD_SDA_SCL_DATA 0xC30B /* PHY_XS SDA/SCL Data Reg */ | 868 | #define IXGBE_MDIO_PMA_PMD_SDA_SCL_DATA 0xC30B /* PHY_XS SDA/SCL Data Reg */ |
@@ -898,8 +899,6 @@ | |||
898 | #define IXGBE_CONTROL_NL 0x000F | 899 | #define IXGBE_CONTROL_NL 0x000F |
899 | #define IXGBE_CONTROL_EOL_NL 0x0FFF | 900 | #define IXGBE_CONTROL_EOL_NL 0x0FFF |
900 | #define IXGBE_CONTROL_SOL_NL 0x0000 | 901 | #define IXGBE_CONTROL_SOL_NL 0x0000 |
901 | #define IXGBE_PHY_ENFORCE_INTEL_SFP_OFFSET 0x002C | ||
902 | #define IXGBE_PHY_ALLOW_ANY_SFP 0x1 | ||
903 | 902 | ||
904 | /* General purpose Interrupt Enable */ | 903 | /* General purpose Interrupt Enable */ |
905 | #define IXGBE_SDP0_GPIEN 0x00000001 /* SDP0 */ | 904 | #define IXGBE_SDP0_GPIEN 0x00000001 /* SDP0 */ |
@@ -1385,6 +1384,7 @@ | |||
1385 | #define IXGBE_FW_PTR 0x0F | 1384 | #define IXGBE_FW_PTR 0x0F |
1386 | #define IXGBE_PBANUM0_PTR 0x15 | 1385 | #define IXGBE_PBANUM0_PTR 0x15 |
1387 | #define IXGBE_PBANUM1_PTR 0x16 | 1386 | #define IXGBE_PBANUM1_PTR 0x16 |
1387 | #define IXGBE_DEVICE_CAPS 0x2C | ||
1388 | #define IXGBE_PCIE_MSIX_82599_CAPS 0x72 | 1388 | #define IXGBE_PCIE_MSIX_82599_CAPS 0x72 |
1389 | #define IXGBE_PCIE_MSIX_82598_CAPS 0x62 | 1389 | #define IXGBE_PCIE_MSIX_82598_CAPS 0x62 |
1390 | 1390 | ||
@@ -1428,6 +1428,8 @@ | |||
1428 | #define IXGBE_EERD_ATTEMPTS 100000 | 1428 | #define IXGBE_EERD_ATTEMPTS 100000 |
1429 | #endif | 1429 | #endif |
1430 | 1430 | ||
1431 | #define IXGBE_DEVICE_CAPS_ALLOW_ANY_SFP 0x1 | ||
1432 | |||
1431 | /* PCI Bus Info */ | 1433 | /* PCI Bus Info */ |
1432 | #define IXGBE_PCI_LINK_STATUS 0xB2 | 1434 | #define IXGBE_PCI_LINK_STATUS 0xB2 |
1433 | #define IXGBE_PCI_LINK_WIDTH 0x3F0 | 1435 | #define IXGBE_PCI_LINK_WIDTH 0x3F0 |
@@ -1865,7 +1867,7 @@ typedef u32 ixgbe_physical_layer; | |||
1865 | #define IXGBE_PHYSICAL_LAYER_UNKNOWN 0 | 1867 | #define IXGBE_PHYSICAL_LAYER_UNKNOWN 0 |
1866 | #define IXGBE_PHYSICAL_LAYER_10GBASE_T 0x0001 | 1868 | #define IXGBE_PHYSICAL_LAYER_10GBASE_T 0x0001 |
1867 | #define IXGBE_PHYSICAL_LAYER_1000BASE_T 0x0002 | 1869 | #define IXGBE_PHYSICAL_LAYER_1000BASE_T 0x0002 |
1868 | #define IXGBE_PHYSICAL_LAYER_100BASE_T 0x0004 | 1870 | #define IXGBE_PHYSICAL_LAYER_100BASE_TX 0x0004 |
1869 | #define IXGBE_PHYSICAL_LAYER_SFP_PLUS_CU 0x0008 | 1871 | #define IXGBE_PHYSICAL_LAYER_SFP_PLUS_CU 0x0008 |
1870 | #define IXGBE_PHYSICAL_LAYER_10GBASE_LR 0x0010 | 1872 | #define IXGBE_PHYSICAL_LAYER_10GBASE_LR 0x0010 |
1871 | #define IXGBE_PHYSICAL_LAYER_10GBASE_LRM 0x0020 | 1873 | #define IXGBE_PHYSICAL_LAYER_10GBASE_LRM 0x0020 |
@@ -1874,6 +1876,7 @@ typedef u32 ixgbe_physical_layer; | |||
1874 | #define IXGBE_PHYSICAL_LAYER_10GBASE_CX4 0x0100 | 1876 | #define IXGBE_PHYSICAL_LAYER_10GBASE_CX4 0x0100 |
1875 | #define IXGBE_PHYSICAL_LAYER_1000BASE_KX 0x0200 | 1877 | #define IXGBE_PHYSICAL_LAYER_1000BASE_KX 0x0200 |
1876 | #define IXGBE_PHYSICAL_LAYER_1000BASE_BX 0x0400 | 1878 | #define IXGBE_PHYSICAL_LAYER_1000BASE_BX 0x0400 |
1879 | #define IXGBE_PHYSICAL_LAYER_10GBASE_KR 0x0800 | ||
1877 | 1880 | ||
1878 | enum ixgbe_eeprom_type { | 1881 | enum ixgbe_eeprom_type { |
1879 | ixgbe_eeprom_uninitialized = 0, | 1882 | ixgbe_eeprom_uninitialized = 0, |
@@ -2105,6 +2108,7 @@ struct ixgbe_mac_operations { | |||
2105 | enum ixgbe_media_type (*get_media_type)(struct ixgbe_hw *); | 2108 | enum ixgbe_media_type (*get_media_type)(struct ixgbe_hw *); |
2106 | u32 (*get_supported_physical_layer)(struct ixgbe_hw *); | 2109 | u32 (*get_supported_physical_layer)(struct ixgbe_hw *); |
2107 | s32 (*get_mac_addr)(struct ixgbe_hw *, u8 *); | 2110 | s32 (*get_mac_addr)(struct ixgbe_hw *, u8 *); |
2111 | s32 (*get_device_caps)(struct ixgbe_hw *, u16 *); | ||
2108 | s32 (*stop_adapter)(struct ixgbe_hw *); | 2112 | s32 (*stop_adapter)(struct ixgbe_hw *); |
2109 | s32 (*get_bus_info)(struct ixgbe_hw *); | 2113 | s32 (*get_bus_info)(struct ixgbe_hw *); |
2110 | void (*set_lan_id)(struct ixgbe_hw *); | 2114 | void (*set_lan_id)(struct ixgbe_hw *); |