Deleted Added
full compact
ixgbe_82599.c (302408) ixgbe_82599.c (320897)
1/******************************************************************************
2
1/******************************************************************************
2
3 Copyright (c) 2001-2015, Intel Corporation
3 Copyright (c) 2001-2017, Intel Corporation
4 All rights reserved.
4 All rights reserved.
5
6 Redistribution and use in source and binary forms, with or without
5
6 Redistribution and use in source and binary forms, with or without
7 modification, are permitted provided that the following conditions are met:
7 modification, are permitted provided that the following conditions are met:
8
9 1. Redistributions of source code must retain the above copyright notice,
8
9 1. Redistributions of source code must retain the above copyright notice,
10 this list of conditions and the following disclaimer.
10 this list of conditions and the following disclaimer.
11
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
11
12 2. Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
14 documentation and/or other materials provided with the distribution.
15
16 3. Neither the name of the Intel Corporation nor the names of its
17 contributors may be used to endorse or promote products derived from
15
16 3. Neither the name of the Intel Corporation nor the names of its
17 contributors may be used to endorse or promote products derived from
18 this software without specific prior written permission.
18 this software without specific prior written permission.
19
19
20 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
21 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 POSSIBILITY OF SUCH DAMAGE.
31
32******************************************************************************/
29 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 POSSIBILITY OF SUCH DAMAGE.
31
32******************************************************************************/
33/*$FreeBSD: stable/11/sys/dev/ixgbe/ixgbe_82599.c 292674 2015-12-23 22:45:17Z sbruno $*/
33/*$FreeBSD: stable/11/sys/dev/ixgbe/ixgbe_82599.c 320897 2017-07-11 21:25:07Z erj $*/
34
35#include "ixgbe_type.h"
36#include "ixgbe_82599.h"
37#include "ixgbe_api.h"
38#include "ixgbe_common.h"
39#include "ixgbe_phy.h"
40
41#define IXGBE_82599_MAX_TX_QUEUES 128

--- 347 unchanged lines hidden (view full) ---

389
390 /* EEPROM */
391 eeprom->ops.read = ixgbe_read_eeprom_82599;
392 eeprom->ops.read_buffer = ixgbe_read_eeprom_buffer_82599;
393
394 /* Manageability interface */
395 mac->ops.set_fw_drv_ver = ixgbe_set_fw_drv_ver_generic;
396
34
35#include "ixgbe_type.h"
36#include "ixgbe_82599.h"
37#include "ixgbe_api.h"
38#include "ixgbe_common.h"
39#include "ixgbe_phy.h"
40
41#define IXGBE_82599_MAX_TX_QUEUES 128

--- 347 unchanged lines hidden (view full) ---

389
390 /* EEPROM */
391 eeprom->ops.read = ixgbe_read_eeprom_82599;
392 eeprom->ops.read_buffer = ixgbe_read_eeprom_buffer_82599;
393
394 /* Manageability interface */
395 mac->ops.set_fw_drv_ver = ixgbe_set_fw_drv_ver_generic;
396
397 mac->ops.bypass_rw = ixgbe_bypass_rw_generic;
398 mac->ops.bypass_valid_rd = ixgbe_bypass_valid_rd_generic;
399 mac->ops.bypass_set = ixgbe_bypass_set_generic;
400 mac->ops.bypass_rd_eep = ixgbe_bypass_rd_eep_generic;
397
398 mac->ops.get_rtrup2tc = ixgbe_dcb_get_rtrup2tc_generic;
399
400 return ret_val;
401}
402
403/**
404 * ixgbe_get_link_capabilities_82599 - Determines link capabilities

--- 767 unchanged lines hidden (view full) ---

1172 hw->mac.num_rar_entries = 128;
1173 hw->mac.ops.init_rx_addrs(hw);
1174
1175 /* Store the permanent SAN mac address */
1176 hw->mac.ops.get_san_mac_addr(hw, hw->mac.san_addr);
1177
1178 /* Add the SAN MAC address to the RAR only if it's a valid address */
1179 if (ixgbe_validate_mac_addr(hw->mac.san_addr) == 0) {
401
402 mac->ops.get_rtrup2tc = ixgbe_dcb_get_rtrup2tc_generic;
403
404 return ret_val;
405}
406
407/**
408 * ixgbe_get_link_capabilities_82599 - Determines link capabilities

--- 767 unchanged lines hidden (view full) ---

1176 hw->mac.num_rar_entries = 128;
1177 hw->mac.ops.init_rx_addrs(hw);
1178
1179 /* Store the permanent SAN mac address */
1180 hw->mac.ops.get_san_mac_addr(hw, hw->mac.san_addr);
1181
1182 /* Add the SAN MAC address to the RAR only if it's a valid address */
1183 if (ixgbe_validate_mac_addr(hw->mac.san_addr) == 0) {
1180 hw->mac.ops.set_rar(hw, hw->mac.num_rar_entries - 1,
1181 hw->mac.san_addr, 0, IXGBE_RAH_AV);
1182
1183 /* Save the SAN MAC RAR index */
1184 hw->mac.san_mac_rar_index = hw->mac.num_rar_entries - 1;
1185
1184 /* Save the SAN MAC RAR index */
1185 hw->mac.san_mac_rar_index = hw->mac.num_rar_entries - 1;
1186
1187 hw->mac.ops.set_rar(hw, hw->mac.san_mac_rar_index,
1188 hw->mac.san_addr, 0, IXGBE_RAH_AV);
1189
1190 /* clear VMDq pool/queue selection for this RAR */
1191 hw->mac.ops.clear_vmdq(hw, hw->mac.san_mac_rar_index,
1192 IXGBE_CLEAR_VMDQ_ALL);
1193
1186 /* Reserve the last RAR for the SAN MAC address */
1187 hw->mac.num_rar_entries--;
1188 }
1189
1190 /* Store the alternative WWNN/WWPN prefix */
1191 hw->mac.ops.get_wwn_prefix(hw, &hw->mac.wwnn_prefix,
1192 &hw->mac.wwpn_prefix);
1193

--- 182 unchanged lines hidden (view full) ---

1376 * Send interrupt when 64 (0x4 * 16) filters are left
1377 */
1378 fdirctrl |= IXGBE_FDIRCTRL_PERFECT_MATCH |
1379 IXGBE_FDIRCTRL_REPORT_STATUS |
1380 (IXGBE_FDIR_DROP_QUEUE << IXGBE_FDIRCTRL_DROP_Q_SHIFT) |
1381 (0x6 << IXGBE_FDIRCTRL_FLEX_SHIFT) |
1382 (0xA << IXGBE_FDIRCTRL_MAX_LENGTH_SHIFT) |
1383 (4 << IXGBE_FDIRCTRL_FULL_THRESH_SHIFT);
1194 /* Reserve the last RAR for the SAN MAC address */
1195 hw->mac.num_rar_entries--;
1196 }
1197
1198 /* Store the alternative WWNN/WWPN prefix */
1199 hw->mac.ops.get_wwn_prefix(hw, &hw->mac.wwnn_prefix,
1200 &hw->mac.wwpn_prefix);
1201

--- 182 unchanged lines hidden (view full) ---

1384 * Send interrupt when 64 (0x4 * 16) filters are left
1385 */
1386 fdirctrl |= IXGBE_FDIRCTRL_PERFECT_MATCH |
1387 IXGBE_FDIRCTRL_REPORT_STATUS |
1388 (IXGBE_FDIR_DROP_QUEUE << IXGBE_FDIRCTRL_DROP_Q_SHIFT) |
1389 (0x6 << IXGBE_FDIRCTRL_FLEX_SHIFT) |
1390 (0xA << IXGBE_FDIRCTRL_MAX_LENGTH_SHIFT) |
1391 (4 << IXGBE_FDIRCTRL_FULL_THRESH_SHIFT);
1384 if ((hw->mac.type == ixgbe_mac_X550) ||
1385 (hw->mac.type == ixgbe_mac_X550EM_x))
1386 fdirctrl |= IXGBE_FDIRCTRL_DROP_NO_MATCH;
1387
1388 if (cloud_mode)
1389 fdirctrl |=(IXGBE_FDIRCTRL_FILTERMODE_CLOUD <<
1390 IXGBE_FDIRCTRL_FILTERMODE_SHIFT);
1391
1392 /* write hashes and fdirctrl register, poll for completion */
1393 ixgbe_fdir_enable_82599(hw, fdirctrl);
1394

--- 12 unchanged lines hidden (view full) ---

1407 DEBUGFUNC("ixgbe_set_fdir_drop_queue_82599");
1408 /* Clear init done bit and drop queue field */
1409 fdirctrl = IXGBE_READ_REG(hw, IXGBE_FDIRCTRL);
1410 fdirctrl &= ~(IXGBE_FDIRCTRL_DROP_Q_MASK | IXGBE_FDIRCTRL_INIT_DONE);
1411
1412 /* Set drop queue */
1413 fdirctrl |= (dropqueue << IXGBE_FDIRCTRL_DROP_Q_SHIFT);
1414 if ((hw->mac.type == ixgbe_mac_X550) ||
1392
1393 if (cloud_mode)
1394 fdirctrl |=(IXGBE_FDIRCTRL_FILTERMODE_CLOUD <<
1395 IXGBE_FDIRCTRL_FILTERMODE_SHIFT);
1396
1397 /* write hashes and fdirctrl register, poll for completion */
1398 ixgbe_fdir_enable_82599(hw, fdirctrl);
1399

--- 12 unchanged lines hidden (view full) ---

1412 DEBUGFUNC("ixgbe_set_fdir_drop_queue_82599");
1413 /* Clear init done bit and drop queue field */
1414 fdirctrl = IXGBE_READ_REG(hw, IXGBE_FDIRCTRL);
1415 fdirctrl &= ~(IXGBE_FDIRCTRL_DROP_Q_MASK | IXGBE_FDIRCTRL_INIT_DONE);
1416
1417 /* Set drop queue */
1418 fdirctrl |= (dropqueue << IXGBE_FDIRCTRL_DROP_Q_SHIFT);
1419 if ((hw->mac.type == ixgbe_mac_X550) ||
1415 (hw->mac.type == ixgbe_mac_X550EM_x))
1420 (hw->mac.type == ixgbe_mac_X550EM_x) ||
1421 (hw->mac.type == ixgbe_mac_X550EM_a))
1416 fdirctrl |= IXGBE_FDIRCTRL_DROP_NO_MATCH;
1417
1418 IXGBE_WRITE_REG(hw, IXGBE_FDIRCMD,
1419 (IXGBE_READ_REG(hw, IXGBE_FDIRCMD) |
1420 IXGBE_FDIRCMD_CLEARHT));
1421 IXGBE_WRITE_FLUSH(hw);
1422 IXGBE_WRITE_REG(hw, IXGBE_FDIRCMD,
1423 (IXGBE_READ_REG(hw, IXGBE_FDIRCMD) &

--- 309 unchanged lines hidden (view full) ---

1733 break;
1734 default:
1735 DEBUGOUT(" Error on flow type mask\n");
1736 return IXGBE_ERR_CONFIG;
1737 }
1738
1739 switch (IXGBE_NTOHS(input_mask->formatted.vlan_id) & 0xEFFF) {
1740 case 0x0000:
1422 fdirctrl |= IXGBE_FDIRCTRL_DROP_NO_MATCH;
1423
1424 IXGBE_WRITE_REG(hw, IXGBE_FDIRCMD,
1425 (IXGBE_READ_REG(hw, IXGBE_FDIRCMD) |
1426 IXGBE_FDIRCMD_CLEARHT));
1427 IXGBE_WRITE_FLUSH(hw);
1428 IXGBE_WRITE_REG(hw, IXGBE_FDIRCMD,
1429 (IXGBE_READ_REG(hw, IXGBE_FDIRCMD) &

--- 309 unchanged lines hidden (view full) ---

1739 break;
1740 default:
1741 DEBUGOUT(" Error on flow type mask\n");
1742 return IXGBE_ERR_CONFIG;
1743 }
1744
1745 switch (IXGBE_NTOHS(input_mask->formatted.vlan_id) & 0xEFFF) {
1746 case 0x0000:
1741 /* mask VLAN ID, fall through to mask VLAN priority */
1747 /* mask VLAN ID */
1742 fdirm |= IXGBE_FDIRM_VLANID;
1748 fdirm |= IXGBE_FDIRM_VLANID;
1749 /* fall through */
1743 case 0x0FFF:
1744 /* mask VLAN priority */
1745 fdirm |= IXGBE_FDIRM_VLANP;
1746 break;
1747 case 0xE000:
1750 case 0x0FFF:
1751 /* mask VLAN priority */
1752 fdirm |= IXGBE_FDIRM_VLANP;
1753 break;
1754 case 0xE000:
1748 /* mask VLAN ID only, fall through */
1755 /* mask VLAN ID only */
1749 fdirm |= IXGBE_FDIRM_VLANID;
1756 fdirm |= IXGBE_FDIRM_VLANID;
1757 /* fall through */
1750 case 0xEFFF:
1751 /* no VLAN fields masked */
1752 break;
1753 default:
1754 DEBUGOUT(" Error on VLAN mask\n");
1755 return IXGBE_ERR_CONFIG;
1756 }
1757
1758 switch (input_mask->formatted.flex_bytes & 0xFFFF) {
1759 case 0x0000:
1758 case 0xEFFF:
1759 /* no VLAN fields masked */
1760 break;
1761 default:
1762 DEBUGOUT(" Error on VLAN mask\n");
1763 return IXGBE_ERR_CONFIG;
1764 }
1765
1766 switch (input_mask->formatted.flex_bytes & 0xFFFF) {
1767 case 0x0000:
1760 /* Mask Flex Bytes, fall through */
1768 /* Mask Flex Bytes */
1761 fdirm |= IXGBE_FDIRM_FLEX;
1769 fdirm |= IXGBE_FDIRM_FLEX;
1770 /* fall through */
1762 case 0xFFFF:
1763 break;
1764 default:
1765 DEBUGOUT(" Error on flexible byte mask\n");
1766 return IXGBE_ERR_CONFIG;
1767 }
1768
1769 if (cloud_mode) {

--- 34 unchanged lines hidden (view full) ---

1804 case 0xFFFF:
1805 break;
1806 default:
1807 DEBUGOUT(" Error on tunnel type byte mask\n");
1808 return IXGBE_ERR_CONFIG;
1809 }
1810 IXGBE_WRITE_REG_BE32(hw, IXGBE_FDIRIP6M, fdirip6m);
1811
1771 case 0xFFFF:
1772 break;
1773 default:
1774 DEBUGOUT(" Error on flexible byte mask\n");
1775 return IXGBE_ERR_CONFIG;
1776 }
1777
1778 if (cloud_mode) {

--- 34 unchanged lines hidden (view full) ---

1813 case 0xFFFF:
1814 break;
1815 default:
1816 DEBUGOUT(" Error on tunnel type byte mask\n");
1817 return IXGBE_ERR_CONFIG;
1818 }
1819 IXGBE_WRITE_REG_BE32(hw, IXGBE_FDIRIP6M, fdirip6m);
1820
1812 /* Set all bits in FDIRTCPM, FDIRUDPM, FDIRSIP4M and
1813 * FDIRDIP4M in cloud mode to allow L3/L3 packets to
1814 * tunnel.
1821 /* Set all bits in FDIRTCPM, FDIRUDPM, FDIRSCTPM,
1822 * FDIRSIP4M and FDIRDIP4M in cloud mode to allow
1823 * L3/L3 packets to tunnel.
1815 */
1816 IXGBE_WRITE_REG(hw, IXGBE_FDIRTCPM, 0xFFFFFFFF);
1817 IXGBE_WRITE_REG(hw, IXGBE_FDIRUDPM, 0xFFFFFFFF);
1818 IXGBE_WRITE_REG_BE32(hw, IXGBE_FDIRDIP4M, 0xFFFFFFFF);
1819 IXGBE_WRITE_REG_BE32(hw, IXGBE_FDIRSIP4M, 0xFFFFFFFF);
1824 */
1825 IXGBE_WRITE_REG(hw, IXGBE_FDIRTCPM, 0xFFFFFFFF);
1826 IXGBE_WRITE_REG(hw, IXGBE_FDIRUDPM, 0xFFFFFFFF);
1827 IXGBE_WRITE_REG_BE32(hw, IXGBE_FDIRDIP4M, 0xFFFFFFFF);
1828 IXGBE_WRITE_REG_BE32(hw, IXGBE_FDIRSIP4M, 0xFFFFFFFF);
1829 switch (hw->mac.type) {
1830 case ixgbe_mac_X550:
1831 case ixgbe_mac_X550EM_x:
1832 case ixgbe_mac_X550EM_a:
1833 IXGBE_WRITE_REG(hw, IXGBE_FDIRSCTPM, 0xFFFFFFFF);
1834 break;
1835 default:
1836 break;
1837 }
1820 }
1821
1822 /* Now mask VM pool and destination IPv6 - bits 5 and 2 */
1823 IXGBE_WRITE_REG(hw, IXGBE_FDIRM, fdirm);
1824
1825 if (!cloud_mode) {
1826 /* store the TCP/UDP port masks, bit reversed from port
1827 * layout */
1828 fdirtcpm = ixgbe_get_fdirtcpm_82599(input_mask);
1829
1830 /* write both the same so that UDP and TCP use the same mask */
1831 IXGBE_WRITE_REG(hw, IXGBE_FDIRTCPM, ~fdirtcpm);
1832 IXGBE_WRITE_REG(hw, IXGBE_FDIRUDPM, ~fdirtcpm);
1833 /* also use it for SCTP */
1834 switch (hw->mac.type) {
1835 case ixgbe_mac_X550:
1836 case ixgbe_mac_X550EM_x:
1838 }
1839
1840 /* Now mask VM pool and destination IPv6 - bits 5 and 2 */
1841 IXGBE_WRITE_REG(hw, IXGBE_FDIRM, fdirm);
1842
1843 if (!cloud_mode) {
1844 /* store the TCP/UDP port masks, bit reversed from port
1845 * layout */
1846 fdirtcpm = ixgbe_get_fdirtcpm_82599(input_mask);
1847
1848 /* write both the same so that UDP and TCP use the same mask */
1849 IXGBE_WRITE_REG(hw, IXGBE_FDIRTCPM, ~fdirtcpm);
1850 IXGBE_WRITE_REG(hw, IXGBE_FDIRUDPM, ~fdirtcpm);
1851 /* also use it for SCTP */
1852 switch (hw->mac.type) {
1853 case ixgbe_mac_X550:
1854 case ixgbe_mac_X550EM_x:
1855 case ixgbe_mac_X550EM_a:
1837 IXGBE_WRITE_REG(hw, IXGBE_FDIRSCTPM, ~fdirtcpm);
1838 break;
1839 default:
1840 break;
1841 }
1842
1843 /* store source and destination IP masks (big-enian) */
1844 IXGBE_WRITE_REG_BE32(hw, IXGBE_FDIRSIP4M,

--- 163 unchanged lines hidden (view full) ---

2008 }
2009 break;
2010 case IXGBE_ATR_FLOW_TYPE_SCTPV4:
2011 case IXGBE_ATR_FLOW_TYPE_TUNNELED_SCTPV4:
2012 if (input->formatted.dst_port || input->formatted.src_port) {
2013 DEBUGOUT(" Error on src/dst port\n");
2014 return IXGBE_ERR_CONFIG;
2015 }
1856 IXGBE_WRITE_REG(hw, IXGBE_FDIRSCTPM, ~fdirtcpm);
1857 break;
1858 default:
1859 break;
1860 }
1861
1862 /* store source and destination IP masks (big-enian) */
1863 IXGBE_WRITE_REG_BE32(hw, IXGBE_FDIRSIP4M,

--- 163 unchanged lines hidden (view full) ---

2027 }
2028 break;
2029 case IXGBE_ATR_FLOW_TYPE_SCTPV4:
2030 case IXGBE_ATR_FLOW_TYPE_TUNNELED_SCTPV4:
2031 if (input->formatted.dst_port || input->formatted.src_port) {
2032 DEBUGOUT(" Error on src/dst port\n");
2033 return IXGBE_ERR_CONFIG;
2034 }
2035 /* fall through */
2016 case IXGBE_ATR_FLOW_TYPE_TCPV4:
2017 case IXGBE_ATR_FLOW_TYPE_TUNNELED_TCPV4:
2018 case IXGBE_ATR_FLOW_TYPE_UDPV4:
2019 case IXGBE_ATR_FLOW_TYPE_TUNNELED_UDPV4:
2020 input_mask->formatted.flow_type = IXGBE_ATR_L4TYPE_IPV6_MASK |
2021 IXGBE_ATR_L4TYPE_MASK;
2022 break;
2023 default:

--- 129 unchanged lines hidden (view full) ---

2153}
2154
2155/**
2156 * ixgbe_get_supported_physical_layer_82599 - Returns physical layer type
2157 * @hw: pointer to hardware structure
2158 *
2159 * Determines physical layer capabilities of the current configuration.
2160 **/
2036 case IXGBE_ATR_FLOW_TYPE_TCPV4:
2037 case IXGBE_ATR_FLOW_TYPE_TUNNELED_TCPV4:
2038 case IXGBE_ATR_FLOW_TYPE_UDPV4:
2039 case IXGBE_ATR_FLOW_TYPE_TUNNELED_UDPV4:
2040 input_mask->formatted.flow_type = IXGBE_ATR_L4TYPE_IPV6_MASK |
2041 IXGBE_ATR_L4TYPE_MASK;
2042 break;
2043 default:

--- 129 unchanged lines hidden (view full) ---

2173}
2174
2175/**
2176 * ixgbe_get_supported_physical_layer_82599 - Returns physical layer type
2177 * @hw: pointer to hardware structure
2178 *
2179 * Determines physical layer capabilities of the current configuration.
2180 **/
2161u32 ixgbe_get_supported_physical_layer_82599(struct ixgbe_hw *hw)
2181u64 ixgbe_get_supported_physical_layer_82599(struct ixgbe_hw *hw)
2162{
2182{
2163 u32 physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN;
2183 u64 physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN;
2164 u32 autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC);
2165 u32 autoc2 = IXGBE_READ_REG(hw, IXGBE_AUTOC2);
2166 u32 pma_pmd_10g_serial = autoc2 & IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK;
2167 u32 pma_pmd_10g_parallel = autoc & IXGBE_AUTOC_10G_PMA_PMD_MASK;
2168 u32 pma_pmd_1g = autoc & IXGBE_AUTOC_1G_PMA_PMD_MASK;
2169 u16 ext_ability = 0;
2170
2171 DEBUGFUNC("ixgbe_get_support_physical_layer_82599");

--- 439 unchanged lines hidden ---
2184 u32 autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC);
2185 u32 autoc2 = IXGBE_READ_REG(hw, IXGBE_AUTOC2);
2186 u32 pma_pmd_10g_serial = autoc2 & IXGBE_AUTOC2_10G_SERIAL_PMA_PMD_MASK;
2187 u32 pma_pmd_10g_parallel = autoc & IXGBE_AUTOC_10G_PMA_PMD_MASK;
2188 u32 pma_pmd_1g = autoc & IXGBE_AUTOC_1G_PMA_PMD_MASK;
2189 u16 ext_ability = 0;
2190
2191 DEBUGFUNC("ixgbe_get_support_physical_layer_82599");

--- 439 unchanged lines hidden ---