aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/e1000e/netdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/intel/e1000e/netdev.c')
-rw-r--r--drivers/net/ethernet/intel/e1000e/netdev.c51
1 files changed, 25 insertions, 26 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index a27e3bcc3249..ad5f43476924 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -1196,7 +1196,7 @@ static bool e1000_clean_tx_irq(struct e1000_ring *tx_ring)
1196 while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) && 1196 while ((eop_desc->upper.data & cpu_to_le32(E1000_TXD_STAT_DD)) &&
1197 (count < tx_ring->count)) { 1197 (count < tx_ring->count)) {
1198 bool cleaned = false; 1198 bool cleaned = false;
1199 rmb(); /* read buffer_info after eop_desc */ 1199 rmb(); /* read buffer_info after eop_desc */
1200 for (; !cleaned; count++) { 1200 for (; !cleaned; count++) {
1201 tx_desc = E1000_TX_DESC(*tx_ring, i); 1201 tx_desc = E1000_TX_DESC(*tx_ring, i);
1202 buffer_info = &tx_ring->buffer_info[i]; 1202 buffer_info = &tx_ring->buffer_info[i];
@@ -1385,7 +1385,7 @@ static bool e1000_clean_rx_irq_ps(struct e1000_ring *rx_ring, int *work_done,
1385 1385
1386 skb_put(skb, l1); 1386 skb_put(skb, l1);
1387 goto copydone; 1387 goto copydone;
1388 } /* if */ 1388 } /* if */
1389 } 1389 }
1390 1390
1391 for (j = 0; j < PS_PAGE_BUFFERS; j++) { 1391 for (j = 0; j < PS_PAGE_BUFFERS; j++) {
@@ -1800,7 +1800,7 @@ static irqreturn_t e1000_intr(int __always_unused irq, void *data)
1800 u32 rctl, icr = er32(ICR); 1800 u32 rctl, icr = er32(ICR);
1801 1801
1802 if (!icr || test_bit(__E1000_DOWN, &adapter->state)) 1802 if (!icr || test_bit(__E1000_DOWN, &adapter->state))
1803 return IRQ_NONE; /* Not our interrupt */ 1803 return IRQ_NONE; /* Not our interrupt */
1804 1804
1805 /* IMS will not auto-mask if INT_ASSERTED is not set, and if it is 1805 /* IMS will not auto-mask if INT_ASSERTED is not set, and if it is
1806 * not set, then the adapter didn't send an interrupt 1806 * not set, then the adapter didn't send an interrupt
@@ -2487,7 +2487,7 @@ static unsigned int e1000_update_itr(u16 itr_setting, int packets, int bytes)
2487 else if ((packets < 5) && (bytes > 512)) 2487 else if ((packets < 5) && (bytes > 512))
2488 retval = low_latency; 2488 retval = low_latency;
2489 break; 2489 break;
2490 case low_latency: /* 50 usec aka 20000 ints/s */ 2490 case low_latency: /* 50 usec aka 20000 ints/s */
2491 if (bytes > 10000) { 2491 if (bytes > 10000) {
2492 /* this if handles the TSO accounting */ 2492 /* this if handles the TSO accounting */
2493 if (bytes / packets > 8000) 2493 if (bytes / packets > 8000)
@@ -2502,7 +2502,7 @@ static unsigned int e1000_update_itr(u16 itr_setting, int packets, int bytes)
2502 retval = lowest_latency; 2502 retval = lowest_latency;
2503 } 2503 }
2504 break; 2504 break;
2505 case bulk_latency: /* 250 usec aka 4000 ints/s */ 2505 case bulk_latency: /* 250 usec aka 4000 ints/s */
2506 if (bytes > 25000) { 2506 if (bytes > 25000) {
2507 if (packets > 35) 2507 if (packets > 35)
2508 retval = low_latency; 2508 retval = low_latency;
@@ -2554,7 +2554,7 @@ static void e1000_set_itr(struct e1000_adapter *adapter)
2554 new_itr = 70000; 2554 new_itr = 70000;
2555 break; 2555 break;
2556 case low_latency: 2556 case low_latency:
2557 new_itr = 20000; /* aka hwitr = ~200 */ 2557 new_itr = 20000; /* aka hwitr = ~200 */
2558 break; 2558 break;
2559 case bulk_latency: 2559 case bulk_latency:
2560 new_itr = 4000; 2560 new_itr = 4000;
@@ -3104,13 +3104,13 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter)
3104 /* UPE and MPE will be handled by normal PROMISC logic 3104 /* UPE and MPE will be handled by normal PROMISC logic
3105 * in e1000e_set_rx_mode 3105 * in e1000e_set_rx_mode
3106 */ 3106 */
3107 rctl |= (E1000_RCTL_SBP | /* Receive bad packets */ 3107 rctl |= (E1000_RCTL_SBP | /* Receive bad packets */
3108 E1000_RCTL_BAM | /* RX All Bcast Pkts */ 3108 E1000_RCTL_BAM | /* RX All Bcast Pkts */
3109 E1000_RCTL_PMCF); /* RX All MAC Ctrl Pkts */ 3109 E1000_RCTL_PMCF); /* RX All MAC Ctrl Pkts */
3110 3110
3111 rctl &= ~(E1000_RCTL_VFE | /* Disable VLAN filter */ 3111 rctl &= ~(E1000_RCTL_VFE | /* Disable VLAN filter */
3112 E1000_RCTL_DPF | /* Allow filtered pause */ 3112 E1000_RCTL_DPF | /* Allow filtered pause */
3113 E1000_RCTL_CFIEN); /* Dis VLAN CFIEN Filter */ 3113 E1000_RCTL_CFIEN); /* Dis VLAN CFIEN Filter */
3114 /* Do not mess with E1000_CTRL_VME, it affects transmit as well, 3114 /* Do not mess with E1000_CTRL_VME, it affects transmit as well,
3115 * and that breaks VLANs. 3115 * and that breaks VLANs.
3116 */ 3116 */
@@ -3799,7 +3799,7 @@ void e1000e_reset(struct e1000_adapter *adapter)
3799 hwm = min(((pba << 10) * 9 / 10), 3799 hwm = min(((pba << 10) * 9 / 10),
3800 ((pba << 10) - adapter->max_frame_size)); 3800 ((pba << 10) - adapter->max_frame_size));
3801 3801
3802 fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */ 3802 fc->high_water = hwm & E1000_FCRTH_RTH; /* 8-byte granularity */
3803 fc->low_water = fc->high_water - 8; 3803 fc->low_water = fc->high_water - 8;
3804 break; 3804 break;
3805 case e1000_pchlan: 3805 case e1000_pchlan:
@@ -3808,10 +3808,10 @@ void e1000e_reset(struct e1000_adapter *adapter)
3808 */ 3808 */
3809 if (adapter->netdev->mtu > ETH_DATA_LEN) { 3809 if (adapter->netdev->mtu > ETH_DATA_LEN) {
3810 fc->high_water = 0x3500; 3810 fc->high_water = 0x3500;
3811 fc->low_water = 0x1500; 3811 fc->low_water = 0x1500;
3812 } else { 3812 } else {
3813 fc->high_water = 0x5000; 3813 fc->high_water = 0x5000;
3814 fc->low_water = 0x3000; 3814 fc->low_water = 0x3000;
3815 } 3815 }
3816 fc->refresh_time = 0x1000; 3816 fc->refresh_time = 0x1000;
3817 break; 3817 break;
@@ -4581,7 +4581,7 @@ static void e1000e_update_stats(struct e1000_adapter *adapter)
4581 adapter->stats.crcerrs += er32(CRCERRS); 4581 adapter->stats.crcerrs += er32(CRCERRS);
4582 adapter->stats.gprc += er32(GPRC); 4582 adapter->stats.gprc += er32(GPRC);
4583 adapter->stats.gorc += er32(GORCL); 4583 adapter->stats.gorc += er32(GORCL);
4584 er32(GORCH); /* Clear gorc */ 4584 er32(GORCH); /* Clear gorc */
4585 adapter->stats.bprc += er32(BPRC); 4585 adapter->stats.bprc += er32(BPRC);
4586 adapter->stats.mprc += er32(MPRC); 4586 adapter->stats.mprc += er32(MPRC);
4587 adapter->stats.roc += er32(ROC); 4587 adapter->stats.roc += er32(ROC);
@@ -4614,7 +4614,7 @@ static void e1000e_update_stats(struct e1000_adapter *adapter)
4614 adapter->stats.xofftxc += er32(XOFFTXC); 4614 adapter->stats.xofftxc += er32(XOFFTXC);
4615 adapter->stats.gptc += er32(GPTC); 4615 adapter->stats.gptc += er32(GPTC);
4616 adapter->stats.gotc += er32(GOTCL); 4616 adapter->stats.gotc += er32(GOTCL);
4617 er32(GOTCH); /* Clear gotc */ 4617 er32(GOTCH); /* Clear gotc */
4618 adapter->stats.rnbc += er32(RNBC); 4618 adapter->stats.rnbc += er32(RNBC);
4619 adapter->stats.ruc += er32(RUC); 4619 adapter->stats.ruc += er32(RUC);
4620 4620
@@ -5106,13 +5106,13 @@ static int e1000_tso(struct e1000_ring *tx_ring, struct sk_buff *skb)
5106 context_desc = E1000_CONTEXT_DESC(*tx_ring, i); 5106 context_desc = E1000_CONTEXT_DESC(*tx_ring, i);
5107 buffer_info = &tx_ring->buffer_info[i]; 5107 buffer_info = &tx_ring->buffer_info[i];
5108 5108
5109 context_desc->lower_setup.ip_fields.ipcss = ipcss; 5109 context_desc->lower_setup.ip_fields.ipcss = ipcss;
5110 context_desc->lower_setup.ip_fields.ipcso = ipcso; 5110 context_desc->lower_setup.ip_fields.ipcso = ipcso;
5111 context_desc->lower_setup.ip_fields.ipcse = cpu_to_le16(ipcse); 5111 context_desc->lower_setup.ip_fields.ipcse = cpu_to_le16(ipcse);
5112 context_desc->upper_setup.tcp_fields.tucss = tucss; 5112 context_desc->upper_setup.tcp_fields.tucss = tucss;
5113 context_desc->upper_setup.tcp_fields.tucso = tucso; 5113 context_desc->upper_setup.tcp_fields.tucso = tucso;
5114 context_desc->upper_setup.tcp_fields.tucse = 0; 5114 context_desc->upper_setup.tcp_fields.tucse = 0;
5115 context_desc->tcp_seg_setup.fields.mss = cpu_to_le16(mss); 5115 context_desc->tcp_seg_setup.fields.mss = cpu_to_le16(mss);
5116 context_desc->tcp_seg_setup.fields.hdr_len = hdr_len; 5116 context_desc->tcp_seg_setup.fields.hdr_len = hdr_len;
5117 context_desc->cmd_and_length = cpu_to_le32(cmd_length); 5117 context_desc->cmd_and_length = cpu_to_le32(cmd_length);
5118 5118
@@ -5363,7 +5363,7 @@ static void e1000_tx_queue(struct e1000_ring *tx_ring, int tx_flags, int count)
5363static int e1000_transfer_dhcp_info(struct e1000_adapter *adapter, 5363static int e1000_transfer_dhcp_info(struct e1000_adapter *adapter,
5364 struct sk_buff *skb) 5364 struct sk_buff *skb)
5365{ 5365{
5366 struct e1000_hw *hw = &adapter->hw; 5366 struct e1000_hw *hw = &adapter->hw;
5367 u16 length, offset; 5367 u16 length, offset;
5368 5368
5369 if (vlan_tx_tag_present(skb) && 5369 if (vlan_tx_tag_present(skb) &&
@@ -6259,7 +6259,7 @@ static void e1000_netpoll(struct net_device *netdev)
6259 e1000_intr_msi(adapter->pdev->irq, netdev); 6259 e1000_intr_msi(adapter->pdev->irq, netdev);
6260 enable_irq(adapter->pdev->irq); 6260 enable_irq(adapter->pdev->irq);
6261 break; 6261 break;
6262 default: /* E1000E_INT_MODE_LEGACY */ 6262 default: /* E1000E_INT_MODE_LEGACY */
6263 disable_irq(adapter->pdev->irq); 6263 disable_irq(adapter->pdev->irq);
6264 e1000_intr(adapter->pdev->irq, netdev); 6264 e1000_intr(adapter->pdev->irq, netdev);
6265 enable_irq(adapter->pdev->irq); 6265 enable_irq(adapter->pdev->irq);
@@ -6589,9 +6589,9 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
6589 adapter->eee_advert = MDIO_EEE_100TX | MDIO_EEE_1000T; 6589 adapter->eee_advert = MDIO_EEE_100TX | MDIO_EEE_1000T;
6590 6590
6591 /* construct the net_device struct */ 6591 /* construct the net_device struct */
6592 netdev->netdev_ops = &e1000e_netdev_ops; 6592 netdev->netdev_ops = &e1000e_netdev_ops;
6593 e1000e_set_ethtool_ops(netdev); 6593 e1000e_set_ethtool_ops(netdev);
6594 netdev->watchdog_timeo = 5 * HZ; 6594 netdev->watchdog_timeo = 5 * HZ;
6595 netif_napi_add(netdev, &adapter->napi, e1000e_poll, 64); 6595 netif_napi_add(netdev, &adapter->napi, e1000e_poll, 64);
6596 strlcpy(netdev->name, pci_name(pdev), sizeof(netdev->name)); 6596 strlcpy(netdev->name, pci_name(pdev), sizeof(netdev->name));
6597 6597
@@ -7034,7 +7034,6 @@ static void __exit e1000_exit_module(void)
7034} 7034}
7035module_exit(e1000_exit_module); 7035module_exit(e1000_exit_module);
7036 7036
7037
7038MODULE_AUTHOR("Intel Corporation, <linux.nics@intel.com>"); 7037MODULE_AUTHOR("Intel Corporation, <linux.nics@intel.com>");
7039MODULE_DESCRIPTION("Intel(R) PRO/1000 Network Driver"); 7038MODULE_DESCRIPTION("Intel(R) PRO/1000 Network Driver");
7040MODULE_LICENSE("GPL"); 7039MODULE_LICENSE("GPL");