aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/power/qos.c13
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}
294EXPORT_SYMBOL_GPL(pm_qos_request_active); 294EXPORT_SYMBOL_GPL(pm_qos_request_active);
295 295
296static 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}
369EXPORT_SYMBOL_GPL(pm_qos_update_request); 380EXPORT_SYMBOL_GPL(pm_qos_update_request);
370 381