diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/e1000e/netdev.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index afd01295fbec..464c9a28f1ba 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
@@ -3218,12 +3218,6 @@ int e1000e_up(struct e1000_adapter *adapter) | |||
3218 | { | 3218 | { |
3219 | struct e1000_hw *hw = &adapter->hw; | 3219 | struct e1000_hw *hw = &adapter->hw; |
3220 | 3220 | ||
3221 | /* DMA latency requirement to workaround early-receive/jumbo issue */ | ||
3222 | if (adapter->flags & FLAG_HAS_ERT) | ||
3223 | adapter->netdev->pm_qos_req = | ||
3224 | pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY, | ||
3225 | PM_QOS_DEFAULT_VALUE); | ||
3226 | |||
3227 | /* hardware has been reset, we need to reload some things */ | 3221 | /* hardware has been reset, we need to reload some things */ |
3228 | e1000_configure(adapter); | 3222 | e1000_configure(adapter); |
3229 | 3223 | ||
@@ -3287,12 +3281,6 @@ void e1000e_down(struct e1000_adapter *adapter) | |||
3287 | e1000_clean_tx_ring(adapter); | 3281 | e1000_clean_tx_ring(adapter); |
3288 | e1000_clean_rx_ring(adapter); | 3282 | e1000_clean_rx_ring(adapter); |
3289 | 3283 | ||
3290 | if (adapter->flags & FLAG_HAS_ERT) { | ||
3291 | pm_qos_remove_request( | ||
3292 | adapter->netdev->pm_qos_req); | ||
3293 | adapter->netdev->pm_qos_req = NULL; | ||
3294 | } | ||
3295 | |||
3296 | /* | 3284 | /* |
3297 | * TODO: for power management, we could drop the link and | 3285 | * TODO: for power management, we could drop the link and |
3298 | * pci_disable_device here. | 3286 | * pci_disable_device here. |
@@ -3527,6 +3515,12 @@ static int e1000_open(struct net_device *netdev) | |||
3527 | E1000_MNG_DHCP_COOKIE_STATUS_VLAN)) | 3515 | E1000_MNG_DHCP_COOKIE_STATUS_VLAN)) |
3528 | e1000_update_mng_vlan(adapter); | 3516 | e1000_update_mng_vlan(adapter); |
3529 | 3517 | ||
3518 | /* DMA latency requirement to workaround early-receive/jumbo issue */ | ||
3519 | if (adapter->flags & FLAG_HAS_ERT) | ||
3520 | adapter->netdev->pm_qos_req = | ||
3521 | pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY, | ||
3522 | PM_QOS_DEFAULT_VALUE); | ||
3523 | |||
3530 | /* | 3524 | /* |
3531 | * before we allocate an interrupt, we must be ready to handle it. | 3525 | * before we allocate an interrupt, we must be ready to handle it. |
3532 | * Setting DEBUG_SHIRQ in the kernel makes it fire an interrupt | 3526 | * Setting DEBUG_SHIRQ in the kernel makes it fire an interrupt |
@@ -3631,6 +3625,11 @@ static int e1000_close(struct net_device *netdev) | |||
3631 | if (adapter->flags & FLAG_HAS_AMT) | 3625 | if (adapter->flags & FLAG_HAS_AMT) |
3632 | e1000_release_hw_control(adapter); | 3626 | e1000_release_hw_control(adapter); |
3633 | 3627 | ||
3628 | if (adapter->flags & FLAG_HAS_ERT) { | ||
3629 | pm_qos_remove_request(adapter->netdev->pm_qos_req); | ||
3630 | adapter->netdev->pm_qos_req = NULL; | ||
3631 | } | ||
3632 | |||
3634 | pm_runtime_put_sync(&pdev->dev); | 3633 | pm_runtime_put_sync(&pdev->dev); |
3635 | 3634 | ||
3636 | return 0; | 3635 | return 0; |