diff options
author | Mark Gross <mgross@linux.intel.com> | 2010-05-05 19:59:26 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2010-05-10 17:08:19 -0400 |
commit | ed77134bfccf5e75b6cbadab268e559dbe6a4ebb (patch) | |
tree | dae087a617ab3d9af8673d1905dbca3bcd57e89e /drivers/net/e1000e/netdev.c | |
parent | 0fef8b1e83c4ab08cf1304dbebcfd749caf4f187 (diff) |
PM QOS update
This patch changes the string based list management to a handle base
implementation to help with the hot path use of pm-qos, it also renames
much of the API to use "request" as opposed to "requirement" that was
used in the initial implementation. I did this because request more
accurately represents what it actually does.
Also, I added a string based ABI for users wanting to use a string
interface. So if the user writes 0xDDDDDDDD formatted hex it will be
accepted by the interface. (someone asked me for it and I don't think
it hurts anything.)
This patch updates some documentation input I got from Randy.
Signed-off-by: markgross <mgross@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'drivers/net/e1000e/netdev.c')
-rw-r--r-- | drivers/net/e1000e/netdev.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index dbf81788bb40..d5d55c6a373f 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
@@ -2524,12 +2524,12 @@ static void e1000_configure_rx(struct e1000_adapter *adapter) | |||
2524 | * excessive C-state transition latencies result in | 2524 | * excessive C-state transition latencies result in |
2525 | * dropped transactions. | 2525 | * dropped transactions. |
2526 | */ | 2526 | */ |
2527 | pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, | 2527 | pm_qos_update_request( |
2528 | adapter->netdev->name, 55); | 2528 | adapter->netdev->pm_qos_req, 55); |
2529 | } else { | 2529 | } else { |
2530 | pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY, | 2530 | pm_qos_update_request( |
2531 | adapter->netdev->name, | 2531 | adapter->netdev->pm_qos_req, |
2532 | PM_QOS_DEFAULT_VALUE); | 2532 | PM_QOS_DEFAULT_VALUE); |
2533 | } | 2533 | } |
2534 | } | 2534 | } |
2535 | 2535 | ||
@@ -2824,8 +2824,8 @@ int e1000e_up(struct e1000_adapter *adapter) | |||
2824 | 2824 | ||
2825 | /* DMA latency requirement to workaround early-receive/jumbo issue */ | 2825 | /* DMA latency requirement to workaround early-receive/jumbo issue */ |
2826 | if (adapter->flags & FLAG_HAS_ERT) | 2826 | if (adapter->flags & FLAG_HAS_ERT) |
2827 | pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, | 2827 | adapter->netdev->pm_qos_req = |
2828 | adapter->netdev->name, | 2828 | pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY, |
2829 | PM_QOS_DEFAULT_VALUE); | 2829 | PM_QOS_DEFAULT_VALUE); |
2830 | 2830 | ||
2831 | /* hardware has been reset, we need to reload some things */ | 2831 | /* hardware has been reset, we need to reload some things */ |
@@ -2887,9 +2887,11 @@ void e1000e_down(struct e1000_adapter *adapter) | |||
2887 | e1000_clean_tx_ring(adapter); | 2887 | e1000_clean_tx_ring(adapter); |
2888 | e1000_clean_rx_ring(adapter); | 2888 | e1000_clean_rx_ring(adapter); |
2889 | 2889 | ||
2890 | if (adapter->flags & FLAG_HAS_ERT) | 2890 | if (adapter->flags & FLAG_HAS_ERT) { |
2891 | pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, | 2891 | pm_qos_remove_request( |
2892 | adapter->netdev->name); | 2892 | adapter->netdev->pm_qos_req); |
2893 | adapter->netdev->pm_qos_req = NULL; | ||
2894 | } | ||
2893 | 2895 | ||
2894 | /* | 2896 | /* |
2895 | * TODO: for power management, we could drop the link and | 2897 | * TODO: for power management, we could drop the link and |