diff options
-rw-r--r-- | kernel/power/qos.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/power/qos.c b/kernel/power/qos.c index 587dddeebf15..25cf89bc659e 100644 --- a/kernel/power/qos.c +++ b/kernel/power/qos.c | |||
@@ -293,6 +293,15 @@ int pm_qos_request_active(struct pm_qos_request *req) | |||
293 | } | 293 | } |
294 | EXPORT_SYMBOL_GPL(pm_qos_request_active); | 294 | EXPORT_SYMBOL_GPL(pm_qos_request_active); |
295 | 295 | ||
296 | static void __pm_qos_update_request(struct pm_qos_request *req, | ||
297 | s32 new_value) | ||
298 | { | ||
299 | if (new_value != req->node.prio) | ||
300 | pm_qos_update_target( | ||
301 | pm_qos_array[req->pm_qos_class]->constraints, | ||
302 | &req->node, PM_QOS_UPDATE_REQ, new_value); | ||
303 | } | ||
304 | |||
296 | /** | 305 | /** |
297 | * pm_qos_work_fn - the timeout handler of pm_qos_update_request_timeout | 306 | * pm_qos_work_fn - the timeout handler of pm_qos_update_request_timeout |
298 | * @work: work struct for the delayed work (timeout) | 307 | * @work: work struct for the delayed work (timeout) |
@@ -305,7 +314,7 @@ static void pm_qos_work_fn(struct work_struct *work) | |||
305 | struct pm_qos_request, | 314 | struct pm_qos_request, |
306 | work); | 315 | work); |
307 | 316 | ||
308 | pm_qos_update_request(req, PM_QOS_DEFAULT_VALUE); | 317 | __pm_qos_update_request(req, PM_QOS_DEFAULT_VALUE); |
309 | } | 318 | } |
310 | 319 | ||
311 | /** | 320 | /** |
@@ -365,6 +374,8 @@ void pm_qos_update_request(struct pm_qos_request *req, | |||
365 | pm_qos_update_target( | 374 | pm_qos_update_target( |
366 | pm_qos_array[req->pm_qos_class]->constraints, | 375 | pm_qos_array[req->pm_qos_class]->constraints, |
367 | &req->node, PM_QOS_UPDATE_REQ, new_value); | 376 | &req->node, PM_QOS_UPDATE_REQ, new_value); |
377 | |||
378 | __pm_qos_update_request(req, new_value); | ||
368 | } | 379 | } |
369 | EXPORT_SYMBOL_GPL(pm_qos_update_request); | 380 | EXPORT_SYMBOL_GPL(pm_qos_update_request); |
370 | 381 | ||