diff options
Diffstat (limited to 'kernel/power/qos.c')
-rw-r--r-- | kernel/power/qos.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/kernel/power/qos.c b/kernel/power/qos.c index 8dff9b48075a..884b77058864 100644 --- a/kernel/power/qos.c +++ b/kernel/power/qos.c | |||
@@ -66,6 +66,7 @@ static struct pm_qos_constraints cpu_dma_constraints = { | |||
66 | .list = PLIST_HEAD_INIT(cpu_dma_constraints.list), | 66 | .list = PLIST_HEAD_INIT(cpu_dma_constraints.list), |
67 | .target_value = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE, | 67 | .target_value = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE, |
68 | .default_value = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE, | 68 | .default_value = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE, |
69 | .no_constraint_value = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE, | ||
69 | .type = PM_QOS_MIN, | 70 | .type = PM_QOS_MIN, |
70 | .notifiers = &cpu_dma_lat_notifier, | 71 | .notifiers = &cpu_dma_lat_notifier, |
71 | }; | 72 | }; |
@@ -79,6 +80,7 @@ static struct pm_qos_constraints network_lat_constraints = { | |||
79 | .list = PLIST_HEAD_INIT(network_lat_constraints.list), | 80 | .list = PLIST_HEAD_INIT(network_lat_constraints.list), |
80 | .target_value = PM_QOS_NETWORK_LAT_DEFAULT_VALUE, | 81 | .target_value = PM_QOS_NETWORK_LAT_DEFAULT_VALUE, |
81 | .default_value = PM_QOS_NETWORK_LAT_DEFAULT_VALUE, | 82 | .default_value = PM_QOS_NETWORK_LAT_DEFAULT_VALUE, |
83 | .no_constraint_value = PM_QOS_NETWORK_LAT_DEFAULT_VALUE, | ||
82 | .type = PM_QOS_MIN, | 84 | .type = PM_QOS_MIN, |
83 | .notifiers = &network_lat_notifier, | 85 | .notifiers = &network_lat_notifier, |
84 | }; | 86 | }; |
@@ -93,6 +95,7 @@ static struct pm_qos_constraints network_tput_constraints = { | |||
93 | .list = PLIST_HEAD_INIT(network_tput_constraints.list), | 95 | .list = PLIST_HEAD_INIT(network_tput_constraints.list), |
94 | .target_value = PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE, | 96 | .target_value = PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE, |
95 | .default_value = PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE, | 97 | .default_value = PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE, |
98 | .no_constraint_value = PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE, | ||
96 | .type = PM_QOS_MAX, | 99 | .type = PM_QOS_MAX, |
97 | .notifiers = &network_throughput_notifier, | 100 | .notifiers = &network_throughput_notifier, |
98 | }; | 101 | }; |
@@ -128,7 +131,7 @@ static const struct file_operations pm_qos_power_fops = { | |||
128 | static inline int pm_qos_get_value(struct pm_qos_constraints *c) | 131 | static inline int pm_qos_get_value(struct pm_qos_constraints *c) |
129 | { | 132 | { |
130 | if (plist_head_empty(&c->list)) | 133 | if (plist_head_empty(&c->list)) |
131 | return c->default_value; | 134 | return c->no_constraint_value; |
132 | 135 | ||
133 | switch (c->type) { | 136 | switch (c->type) { |
134 | case PM_QOS_MIN: | 137 | case PM_QOS_MIN: |
@@ -170,6 +173,7 @@ int pm_qos_update_target(struct pm_qos_constraints *c, struct plist_node *node, | |||
170 | { | 173 | { |
171 | unsigned long flags; | 174 | unsigned long flags; |
172 | int prev_value, curr_value, new_value; | 175 | int prev_value, curr_value, new_value; |
176 | int ret; | ||
173 | 177 | ||
174 | spin_lock_irqsave(&pm_qos_lock, flags); | 178 | spin_lock_irqsave(&pm_qos_lock, flags); |
175 | prev_value = pm_qos_get_value(c); | 179 | prev_value = pm_qos_get_value(c); |
@@ -205,13 +209,15 @@ int pm_qos_update_target(struct pm_qos_constraints *c, struct plist_node *node, | |||
205 | 209 | ||
206 | trace_pm_qos_update_target(action, prev_value, curr_value); | 210 | trace_pm_qos_update_target(action, prev_value, curr_value); |
207 | if (prev_value != curr_value) { | 211 | if (prev_value != curr_value) { |
208 | blocking_notifier_call_chain(c->notifiers, | 212 | ret = 1; |
209 | (unsigned long)curr_value, | 213 | if (c->notifiers) |
210 | NULL); | 214 | blocking_notifier_call_chain(c->notifiers, |
211 | return 1; | 215 | (unsigned long)curr_value, |
216 | NULL); | ||
212 | } else { | 217 | } else { |
213 | return 0; | 218 | ret = 0; |
214 | } | 219 | } |
220 | return ret; | ||
215 | } | 221 | } |
216 | 222 | ||
217 | /** | 223 | /** |