Deleted Added
full compact
if_em.c (155911) if_em.c (157566)
1/**************************************************************************
2
3Copyright (c) 2001-2005, Intel Corporation
4All rights reserved.
5
6Redistribution and use in source and binary forms, with or without
7modification, are permitted provided that the following conditions are met:
8

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

26SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30POSSIBILITY OF SUCH DAMAGE.
31
32***************************************************************************/
33
1/**************************************************************************
2
3Copyright (c) 2001-2005, Intel Corporation
4All rights reserved.
5
6Redistribution and use in source and binary forms, with or without
7modification, are permitted provided that the following conditions are met:
8

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

26SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30POSSIBILITY OF SUCH DAMAGE.
31
32***************************************************************************/
33
34/*$FreeBSD: head/sys/dev/em/if_em.c 155911 2006-02-22 14:11:16Z glebius $*/
34/*$FreeBSD: head/sys/dev/em/if_em.c 157566 2006-04-06 17:09:03Z glebius $*/
35
36#ifdef HAVE_KERNEL_OPTION_HEADERS
37#include "opt_device_polling.h"
38#endif
39
40#include <sys/param.h>
41#include <sys/systm.h>
42#include <sys/bus.h>

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

80 * Set this to one to display debug statistics
81 *********************************************************************/
82int em_display_debug_stats = 0;
83
84/*********************************************************************
85 * Driver version
86 *********************************************************************/
87
35
36#ifdef HAVE_KERNEL_OPTION_HEADERS
37#include "opt_device_polling.h"
38#endif
39
40#include <sys/param.h>
41#include <sys/systm.h>
42#include <sys/bus.h>

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

80 * Set this to one to display debug statistics
81 *********************************************************************/
82int em_display_debug_stats = 0;
83
84/*********************************************************************
85 * Driver version
86 *********************************************************************/
87
88char em_driver_version[] = "Version - 3.2.18";
88char em_driver_version[] = "Version - 5.1.5";
89
90
91/*********************************************************************
92 * PCI Device ID Table
93 *
94 * Used by probe to select devices to load on
95 * Last field stores an index into em_strings
96 * Last entry must be all 0s

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

134 { 0x8086, E1000_DEV_ID_82546EB_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
135 { 0x8086, E1000_DEV_ID_82546EB_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
136 { 0x8086, E1000_DEV_ID_82546EB_QUAD_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
137 { 0x8086, E1000_DEV_ID_82546GB_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
138 { 0x8086, E1000_DEV_ID_82546GB_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
139 { 0x8086, E1000_DEV_ID_82546GB_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
140 { 0x8086, E1000_DEV_ID_82546GB_PCIE, PCI_ANY_ID, PCI_ANY_ID, 0},
141 { 0x8086, E1000_DEV_ID_82546GB_QUAD_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
89
90
91/*********************************************************************
92 * PCI Device ID Table
93 *
94 * Used by probe to select devices to load on
95 * Last field stores an index into em_strings
96 * Last entry must be all 0s

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

134 { 0x8086, E1000_DEV_ID_82546EB_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
135 { 0x8086, E1000_DEV_ID_82546EB_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
136 { 0x8086, E1000_DEV_ID_82546EB_QUAD_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
137 { 0x8086, E1000_DEV_ID_82546GB_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
138 { 0x8086, E1000_DEV_ID_82546GB_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
139 { 0x8086, E1000_DEV_ID_82546GB_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
140 { 0x8086, E1000_DEV_ID_82546GB_PCIE, PCI_ANY_ID, PCI_ANY_ID, 0},
141 { 0x8086, E1000_DEV_ID_82546GB_QUAD_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
142 { 0x8086, E1000_DEV_ID_82546GB_QUAD_COPPER_KSP3,
143 PCI_ANY_ID, PCI_ANY_ID, 0},
142
143 { 0x8086, E1000_DEV_ID_82547EI, PCI_ANY_ID, PCI_ANY_ID, 0},
144 { 0x8086, E1000_DEV_ID_82547EI_MOBILE, PCI_ANY_ID, PCI_ANY_ID, 0},
145 { 0x8086, E1000_DEV_ID_82547GI, PCI_ANY_ID, PCI_ANY_ID, 0},
146
147 { 0x8086, E1000_DEV_ID_82571EB_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
148 { 0x8086, E1000_DEV_ID_82571EB_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
149 { 0x8086, E1000_DEV_ID_82571EB_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
150
151 { 0x8086, E1000_DEV_ID_82572EI_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
152 { 0x8086, E1000_DEV_ID_82572EI_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
153 { 0x8086, E1000_DEV_ID_82572EI_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
144
145 { 0x8086, E1000_DEV_ID_82547EI, PCI_ANY_ID, PCI_ANY_ID, 0},
146 { 0x8086, E1000_DEV_ID_82547EI_MOBILE, PCI_ANY_ID, PCI_ANY_ID, 0},
147 { 0x8086, E1000_DEV_ID_82547GI, PCI_ANY_ID, PCI_ANY_ID, 0},
148
149 { 0x8086, E1000_DEV_ID_82571EB_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
150 { 0x8086, E1000_DEV_ID_82571EB_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
151 { 0x8086, E1000_DEV_ID_82571EB_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
152
153 { 0x8086, E1000_DEV_ID_82572EI_COPPER, PCI_ANY_ID, PCI_ANY_ID, 0},
154 { 0x8086, E1000_DEV_ID_82572EI_FIBER, PCI_ANY_ID, PCI_ANY_ID, 0},
155 { 0x8086, E1000_DEV_ID_82572EI_SERDES, PCI_ANY_ID, PCI_ANY_ID, 0},
156 { 0x8086, E1000_DEV_ID_82572EI, PCI_ANY_ID, PCI_ANY_ID, 0},
154
155 { 0x8086, E1000_DEV_ID_82573E, PCI_ANY_ID, PCI_ANY_ID, 0},
156 { 0x8086, E1000_DEV_ID_82573E_IAMT, PCI_ANY_ID, PCI_ANY_ID, 0},
157 { 0x8086, E1000_DEV_ID_82573L, PCI_ANY_ID, PCI_ANY_ID, 0},
157
158 { 0x8086, E1000_DEV_ID_82573E, PCI_ANY_ID, PCI_ANY_ID, 0},
159 { 0x8086, E1000_DEV_ID_82573E_IAMT, PCI_ANY_ID, PCI_ANY_ID, 0},
160 { 0x8086, E1000_DEV_ID_82573L, PCI_ANY_ID, PCI_ANY_ID, 0},
161 { 0x8086, E1000_DEV_ID_80003ES2LAN_COPPER_DPT,
162 PCI_ANY_ID, PCI_ANY_ID, 0},
163 { 0x8086, E1000_DEV_ID_80003ES2LAN_SERDES_DPT,
164 PCI_ANY_ID, PCI_ANY_ID, 0},
158
159 /* required last entry */
160 { 0, 0, 0, 0, 0}
161};
162
163/*********************************************************************
164 * Table of branding strings for all supported NICs.
165 *********************************************************************/

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

531 em_allocate_intr(sc);
532
533 /* Initialize statistics */
534 em_clear_hw_cntrs(&sc->hw);
535 em_update_stats_counters(sc);
536 sc->hw.get_link_status = 1;
537 em_update_link_status(sc);
538
165
166 /* required last entry */
167 { 0, 0, 0, 0, 0}
168};
169
170/*********************************************************************
171 * Table of branding strings for all supported NICs.
172 *********************************************************************/

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

538 em_allocate_intr(sc);
539
540 /* Initialize statistics */
541 em_clear_hw_cntrs(&sc->hw);
542 em_update_stats_counters(sc);
543 sc->hw.get_link_status = 1;
544 em_update_link_status(sc);
545
546 /* Indicate SOL/IDER usage */
547 if (em_check_phy_reset_block(&sc->hw))
548 device_printf(dev,
549 "PHY reset is blocked due to SOL/IDER session.\n");
550
539 /* Identify 82544 on PCIX */
540 em_get_bus_info(&sc->hw);
541 if(sc->hw.bus_type == em_bus_type_pcix && sc->hw.mac_type == em_82544)
542 sc->pcix_82544 = TRUE;
543 else
544 sc->pcix_82544 = FALSE;
545
546 INIT_DEBUGOUT("em_attach: end");

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

725 *
726 * return 0 on success, positive on failure
727 **********************************************************************/
728
729static int
730em_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
731{
732 struct em_softc *sc = ifp->if_softc;
551 /* Identify 82544 on PCIX */
552 em_get_bus_info(&sc->hw);
553 if(sc->hw.bus_type == em_bus_type_pcix && sc->hw.mac_type == em_82544)
554 sc->pcix_82544 = TRUE;
555 else
556 sc->pcix_82544 = FALSE;
557
558 INIT_DEBUGOUT("em_attach: end");

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

737 *
738 * return 0 on success, positive on failure
739 **********************************************************************/
740
741static int
742em_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
743{
744 struct em_softc *sc = ifp->if_softc;
733 struct ifreq *ifr = (struct ifreq *)data;
745 struct ifreq *ifr = (struct ifreq *)data;
734 int error = 0;
735
736 if (sc->in_detach)
737 return (error);
738
739 switch (command) {
740 case SIOCSIFADDR:
741 case SIOCGIFADDR:
742 IOCTL_DEBUGOUT("ioctl rcv'd: SIOCxIFADDR (Get/Set Interface Addr)");
743 ether_ioctl(ifp, command, data);
744 break;
745 case SIOCSIFMTU:
746 {
747 int max_frame_size;
746 int error = 0;
747
748 if (sc->in_detach)
749 return (error);
750
751 switch (command) {
752 case SIOCSIFADDR:
753 case SIOCGIFADDR:
754 IOCTL_DEBUGOUT("ioctl rcv'd: SIOCxIFADDR (Get/Set Interface Addr)");
755 ether_ioctl(ifp, command, data);
756 break;
757 case SIOCSIFMTU:
758 {
759 int max_frame_size;
760 uint16_t eeprom_data = 0;
748
749 IOCTL_DEBUGOUT("ioctl rcv'd: SIOCSIFMTU (Set Interface MTU)");
750
751 switch (sc->hw.mac_type) {
761
762 IOCTL_DEBUGOUT("ioctl rcv'd: SIOCSIFMTU (Set Interface MTU)");
763
764 switch (sc->hw.mac_type) {
765 case em_82573:
766 /*
767 * 82573 only supports jumbo frames
768 * if ASPM is disabled.
769 */
770 em_read_eeprom(&sc->hw, EEPROM_INIT_3GIO_3, 1,
771 &eeprom_data);
772 if (eeprom_data & EEPROM_WORD1A_ASPM_MASK) {
773 max_frame_size = ETHER_MAX_LEN;
774 break;
775 }
776 /* Allow Jumbo frames - fall thru */
752 case em_82571:
753 case em_82572:
777 case em_82571:
778 case em_82572:
754 max_frame_size = 10500;
779 case em_80003es2lan: /* Limit Jumbo Frame size */
780 max_frame_size = 9234;
755 break;
781 break;
756 case em_82573:
757 /* 82573 does not support jumbo frames. */
758 max_frame_size = ETHER_MAX_LEN;
759 break;
760 default:
761 max_frame_size = MAX_JUMBO_FRAME_SIZE;
762 }
763 if (ifr->ifr_mtu > max_frame_size - ETHER_HDR_LEN -
764 ETHER_CRC_LEN) {
765 error = EINVAL;
766 break;
767 }

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

928 if (sc->hw.max_frame_size > EM_RXBUFFER_8192)
929 pba = E1000_PBA_22K; /* 22K for Rx, 18K for Tx */
930 else
931 pba = E1000_PBA_30K; /* 30K for Rx, 10K for Tx */
932 sc->tx_fifo_head = 0;
933 sc->tx_head_addr = pba << EM_TX_HEAD_ADDR_SHIFT;
934 sc->tx_fifo_size = (E1000_PBA_40K - pba) << EM_PBA_BYTES_SHIFT;
935 break;
782 default:
783 max_frame_size = MAX_JUMBO_FRAME_SIZE;
784 }
785 if (ifr->ifr_mtu > max_frame_size - ETHER_HDR_LEN -
786 ETHER_CRC_LEN) {
787 error = EINVAL;
788 break;
789 }

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

950 if (sc->hw.max_frame_size > EM_RXBUFFER_8192)
951 pba = E1000_PBA_22K; /* 22K for Rx, 18K for Tx */
952 else
953 pba = E1000_PBA_30K; /* 30K for Rx, 10K for Tx */
954 sc->tx_fifo_head = 0;
955 sc->tx_head_addr = pba << EM_TX_HEAD_ADDR_SHIFT;
956 sc->tx_fifo_size = (E1000_PBA_40K - pba) << EM_PBA_BYTES_SHIFT;
957 break;
958 case em_80003es2lan: /* 80003es2lan: Total Packet Buffer is 48K */
936 case em_82571: /* 82571: Total Packet Buffer is 48K */
937 case em_82572: /* 82572: Total Packet Buffer is 48K */
938 pba = E1000_PBA_32K; /* 32K for Rx, 16K for Tx */
939 break;
940 case em_82573: /* 82573: Total Packet Buffer is 32K */
941 /* Jumbo frames not supported */
942 pba = E1000_PBA_12K; /* 12K for Rx, 20K for Tx */
943 break;

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

2073 * by 1500.
2074 * - The pause time is fairly large at 1000 x 512ns = 512 usec.
2075 */
2076 rx_buffer_size = ((E1000_READ_REG(&sc->hw, PBA) & 0xffff) << 10 );
2077
2078 sc->hw.fc_high_water = rx_buffer_size -
2079 roundup2(sc->hw.max_frame_size, 1024);
2080 sc->hw.fc_low_water = sc->hw.fc_high_water - 1500;
959 case em_82571: /* 82571: Total Packet Buffer is 48K */
960 case em_82572: /* 82572: Total Packet Buffer is 48K */
961 pba = E1000_PBA_32K; /* 32K for Rx, 16K for Tx */
962 break;
963 case em_82573: /* 82573: Total Packet Buffer is 32K */
964 /* Jumbo frames not supported */
965 pba = E1000_PBA_12K; /* 12K for Rx, 20K for Tx */
966 break;

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

2096 * by 1500.
2097 * - The pause time is fairly large at 1000 x 512ns = 512 usec.
2098 */
2099 rx_buffer_size = ((E1000_READ_REG(&sc->hw, PBA) & 0xffff) << 10 );
2100
2101 sc->hw.fc_high_water = rx_buffer_size -
2102 roundup2(sc->hw.max_frame_size, 1024);
2103 sc->hw.fc_low_water = sc->hw.fc_high_water - 1500;
2081 sc->hw.fc_pause_time = 0x1000;
2104 if (sc->hw.mac_type == em_80003es2lan)
2105 sc->hw.fc_pause_time = 0xFFFF;
2106 else
2107 sc->hw.fc_pause_time = 0x1000;
2082 sc->hw.fc_send_xon = TRUE;
2083 sc->hw.fc = em_fc_full;
2084
2085 if (em_init_hw(&sc->hw) < 0) {
2086 device_printf(dev, "Hardware Initialization Failed");
2087 return (EIO);
2088 }
2089

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

2397/*********************************************************************
2398 *
2399 * Enable transmit unit.
2400 *
2401 **********************************************************************/
2402static void
2403em_initialize_transmit_unit(struct em_softc *sc)
2404{
2108 sc->hw.fc_send_xon = TRUE;
2109 sc->hw.fc = em_fc_full;
2110
2111 if (em_init_hw(&sc->hw) < 0) {
2112 device_printf(dev, "Hardware Initialization Failed");
2113 return (EIO);
2114 }
2115

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

2423/*********************************************************************
2424 *
2425 * Enable transmit unit.
2426 *
2427 **********************************************************************/
2428static void
2429em_initialize_transmit_unit(struct em_softc *sc)
2430{
2405 uint32_t reg_tctl;
2431 uint32_t reg_tctl, tarc;
2406 uint32_t reg_tipg = 0;
2407 uint64_t bus_addr;
2408
2409 INIT_DEBUGOUT("em_initialize_transmit_unit: begin");
2410 /* Setup the Base and Length of the Tx Descriptor Ring */
2411 bus_addr = sc->txdma.dma_paddr;
2412 E1000_WRITE_REG(&sc->hw, TDBAL, (uint32_t)bus_addr);
2413 E1000_WRITE_REG(&sc->hw, TDBAH, (uint32_t)(bus_addr >> 32));

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

2425 /* Set the default values for the Tx Inter Packet Gap timer */
2426 switch (sc->hw.mac_type) {
2427 case em_82542_rev2_0:
2428 case em_82542_rev2_1:
2429 reg_tipg = DEFAULT_82542_TIPG_IPGT;
2430 reg_tipg |= DEFAULT_82542_TIPG_IPGR1 << E1000_TIPG_IPGR1_SHIFT;
2431 reg_tipg |= DEFAULT_82542_TIPG_IPGR2 << E1000_TIPG_IPGR2_SHIFT;
2432 break;
2432 uint32_t reg_tipg = 0;
2433 uint64_t bus_addr;
2434
2435 INIT_DEBUGOUT("em_initialize_transmit_unit: begin");
2436 /* Setup the Base and Length of the Tx Descriptor Ring */
2437 bus_addr = sc->txdma.dma_paddr;
2438 E1000_WRITE_REG(&sc->hw, TDBAL, (uint32_t)bus_addr);
2439 E1000_WRITE_REG(&sc->hw, TDBAH, (uint32_t)(bus_addr >> 32));

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

2451 /* Set the default values for the Tx Inter Packet Gap timer */
2452 switch (sc->hw.mac_type) {
2453 case em_82542_rev2_0:
2454 case em_82542_rev2_1:
2455 reg_tipg = DEFAULT_82542_TIPG_IPGT;
2456 reg_tipg |= DEFAULT_82542_TIPG_IPGR1 << E1000_TIPG_IPGR1_SHIFT;
2457 reg_tipg |= DEFAULT_82542_TIPG_IPGR2 << E1000_TIPG_IPGR2_SHIFT;
2458 break;
2459 case em_80003es2lan:
2460 reg_tipg = DEFAULT_82543_TIPG_IPGR1;
2461 reg_tipg |= DEFAULT_80003ES2LAN_TIPG_IPGR2 <<
2462 E1000_TIPG_IPGR2_SHIFT;
2463 break;
2433 default:
2434 if (sc->hw.media_type == em_media_type_fiber)
2435 reg_tipg = DEFAULT_82543_TIPG_IPGT_FIBER;
2436 else
2437 reg_tipg = DEFAULT_82543_TIPG_IPGT_COPPER;
2438 reg_tipg |= DEFAULT_82543_TIPG_IPGR1 << E1000_TIPG_IPGR1_SHIFT;
2439 reg_tipg |= DEFAULT_82543_TIPG_IPGR2 << E1000_TIPG_IPGR2_SHIFT;
2440 }

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

2451 reg_tctl |= E1000_TCTL_MULR;
2452 if (sc->link_duplex == 1) {
2453 reg_tctl |= E1000_FDX_COLLISION_DISTANCE << E1000_COLD_SHIFT;
2454 } else {
2455 reg_tctl |= E1000_HDX_COLLISION_DISTANCE << E1000_COLD_SHIFT;
2456 }
2457 E1000_WRITE_REG(&sc->hw, TCTL, reg_tctl);
2458
2464 default:
2465 if (sc->hw.media_type == em_media_type_fiber)
2466 reg_tipg = DEFAULT_82543_TIPG_IPGT_FIBER;
2467 else
2468 reg_tipg = DEFAULT_82543_TIPG_IPGT_COPPER;
2469 reg_tipg |= DEFAULT_82543_TIPG_IPGR1 << E1000_TIPG_IPGR1_SHIFT;
2470 reg_tipg |= DEFAULT_82543_TIPG_IPGR2 << E1000_TIPG_IPGR2_SHIFT;
2471 }

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

2482 reg_tctl |= E1000_TCTL_MULR;
2483 if (sc->link_duplex == 1) {
2484 reg_tctl |= E1000_FDX_COLLISION_DISTANCE << E1000_COLD_SHIFT;
2485 } else {
2486 reg_tctl |= E1000_HDX_COLLISION_DISTANCE << E1000_COLD_SHIFT;
2487 }
2488 E1000_WRITE_REG(&sc->hw, TCTL, reg_tctl);
2489
2490 if (sc->hw.mac_type == em_82571 || sc->hw.mac_type == em_82572) {
2491 tarc = E1000_READ_REG(&sc->hw, TARC0);
2492 tarc |= ((1 << 25) | (1 << 21));
2493 E1000_WRITE_REG(&sc->hw, TARC0, tarc);
2494 tarc = E1000_READ_REG(&sc->hw, TARC1);
2495 tarc |= (1 << 25);
2496 if (reg_tctl & E1000_TCTL_MULR)
2497 tarc &= ~(1 << 28);
2498 else
2499 tarc |= (1 << 28);
2500 E1000_WRITE_REG(&sc->hw, TARC1, tarc);
2501 } else if (sc->hw.mac_type == em_80003es2lan) {
2502 tarc = E1000_READ_REG(&sc->hw, TARC0);
2503 tarc |= 1;
2504 if (sc->hw.media_type == em_media_type_internal_serdes)
2505 tarc |= (1 << 20);
2506 E1000_WRITE_REG(&sc->hw, TARC0, tarc);
2507 tarc = E1000_READ_REG(&sc->hw, TARC1);
2508 tarc |= 1;
2509 E1000_WRITE_REG(&sc->hw, TARC1, tarc);
2510 }
2511
2459 /* Setup Transmit Descriptor Settings for this adapter */
2460 sc->txd_cmd = E1000_TXD_CMD_IFCS | E1000_TXD_CMD_RS;
2461
2462 if (sc->tx_int_delay.value > 0)
2463 sc->txd_cmd |= E1000_TXD_CMD_IDE;
2464}
2465
2466/*********************************************************************

--- 1159 unchanged lines hidden ---
2512 /* Setup Transmit Descriptor Settings for this adapter */
2513 sc->txd_cmd = E1000_TXD_CMD_IFCS | E1000_TXD_CMD_RS;
2514
2515 if (sc->tx_int_delay.value > 0)
2516 sc->txd_cmd |= E1000_TXD_CMD_IDE;
2517}
2518
2519/*********************************************************************

--- 1159 unchanged lines hidden ---