| .. | .. |
|---|
| 5294 | 5294 | ew32(TARC(0), tarc0); |
|---|
| 5295 | 5295 | } |
|---|
| 5296 | 5296 | |
|---|
| 5297 | | - /* disable TSO for pcie and 10/100 speeds, to avoid |
|---|
| 5298 | | - * some hardware issues |
|---|
| 5299 | | - */ |
|---|
| 5300 | | - if (!(adapter->flags & FLAG_TSO_FORCE)) { |
|---|
| 5301 | | - switch (adapter->link_speed) { |
|---|
| 5302 | | - case SPEED_10: |
|---|
| 5303 | | - case SPEED_100: |
|---|
| 5304 | | - e_info("10/100 speed: disabling TSO\n"); |
|---|
| 5305 | | - netdev->features &= ~NETIF_F_TSO; |
|---|
| 5306 | | - netdev->features &= ~NETIF_F_TSO6; |
|---|
| 5307 | | - break; |
|---|
| 5308 | | - case SPEED_1000: |
|---|
| 5309 | | - netdev->features |= NETIF_F_TSO; |
|---|
| 5310 | | - netdev->features |= NETIF_F_TSO6; |
|---|
| 5311 | | - break; |
|---|
| 5312 | | - default: |
|---|
| 5313 | | - /* oops */ |
|---|
| 5314 | | - break; |
|---|
| 5315 | | - } |
|---|
| 5316 | | - if (hw->mac.type == e1000_pch_spt) { |
|---|
| 5317 | | - netdev->features &= ~NETIF_F_TSO; |
|---|
| 5318 | | - netdev->features &= ~NETIF_F_TSO6; |
|---|
| 5319 | | - } |
|---|
| 5320 | | - } |
|---|
| 5321 | | - |
|---|
| 5322 | 5297 | /* enable transmits in the hardware, need to do this |
|---|
| 5323 | 5298 | * after setting TARC(0) |
|---|
| 5324 | 5299 | */ |
|---|
| .. | .. |
|---|
| 7477 | 7452 | NETIF_F_RXCSUM | |
|---|
| 7478 | 7453 | NETIF_F_HW_CSUM); |
|---|
| 7479 | 7454 | |
|---|
| 7455 | + /* disable TSO for pcie and 10/100 speeds to avoid |
|---|
| 7456 | + * some hardware issues and for i219 to fix transfer |
|---|
| 7457 | + * speed being capped at 60% |
|---|
| 7458 | + */ |
|---|
| 7459 | + if (!(adapter->flags & FLAG_TSO_FORCE)) { |
|---|
| 7460 | + switch (adapter->link_speed) { |
|---|
| 7461 | + case SPEED_10: |
|---|
| 7462 | + case SPEED_100: |
|---|
| 7463 | + e_info("10/100 speed: disabling TSO\n"); |
|---|
| 7464 | + netdev->features &= ~NETIF_F_TSO; |
|---|
| 7465 | + netdev->features &= ~NETIF_F_TSO6; |
|---|
| 7466 | + break; |
|---|
| 7467 | + case SPEED_1000: |
|---|
| 7468 | + netdev->features |= NETIF_F_TSO; |
|---|
| 7469 | + netdev->features |= NETIF_F_TSO6; |
|---|
| 7470 | + break; |
|---|
| 7471 | + default: |
|---|
| 7472 | + /* oops */ |
|---|
| 7473 | + break; |
|---|
| 7474 | + } |
|---|
| 7475 | + if (hw->mac.type == e1000_pch_spt) { |
|---|
| 7476 | + netdev->features &= ~NETIF_F_TSO; |
|---|
| 7477 | + netdev->features &= ~NETIF_F_TSO6; |
|---|
| 7478 | + } |
|---|
| 7479 | + } |
|---|
| 7480 | + |
|---|
| 7480 | 7481 | /* Set user-changeable features (subset of all device features) */ |
|---|
| 7481 | 7482 | netdev->hw_features = netdev->features; |
|---|
| 7482 | 7483 | netdev->hw_features |= NETIF_F_RXFCS; |
|---|