Lines Matching refs:req
144 struct pm_qos_request *req; in pm_qos_debug_show() local
181 plist_for_each_entry(req, &c->list, node) { in pm_qos_debug_show()
184 if ((req->node).prio != c->default_value) { in pm_qos_debug_show()
190 (req->node).prio, state); in pm_qos_debug_show()
273 struct pm_qos_flags_request *req) in pm_qos_flags_remove_req() argument
277 list_del(&req->node); in pm_qos_flags_remove_req()
278 list_for_each_entry(req, &pqf->list, node) in pm_qos_flags_remove_req()
279 val |= req->flags; in pm_qos_flags_remove_req()
296 struct pm_qos_flags_request *req, in pm_qos_update_flags() argument
308 pm_qos_flags_remove_req(pqf, req); in pm_qos_update_flags()
311 pm_qos_flags_remove_req(pqf, req); in pm_qos_update_flags()
314 req->flags = val; in pm_qos_update_flags()
315 INIT_LIST_HEAD(&req->node); in pm_qos_update_flags()
316 list_add_tail(&req->node, &pqf->list); in pm_qos_update_flags()
344 int pm_qos_request_active(struct pm_qos_request *req) in pm_qos_request_active() argument
346 return req->pm_qos_class != 0; in pm_qos_request_active()
350 static void __pm_qos_update_request(struct pm_qos_request *req, in __pm_qos_update_request() argument
353 trace_pm_qos_update_request(req->pm_qos_class, new_value); in __pm_qos_update_request()
355 if (new_value != req->node.prio) in __pm_qos_update_request()
357 pm_qos_array[req->pm_qos_class]->constraints, in __pm_qos_update_request()
358 &req->node, PM_QOS_UPDATE_REQ, new_value); in __pm_qos_update_request()
369 struct pm_qos_request *req = container_of(to_delayed_work(work), in pm_qos_work_fn() local
373 __pm_qos_update_request(req, PM_QOS_DEFAULT_VALUE); in pm_qos_work_fn()
389 void pm_qos_add_request(struct pm_qos_request *req, in pm_qos_add_request() argument
392 if (!req) /*guard against callers passing in null */ in pm_qos_add_request()
395 if (pm_qos_request_active(req)) { in pm_qos_add_request()
399 req->pm_qos_class = pm_qos_class; in pm_qos_add_request()
400 INIT_DELAYED_WORK(&req->work, pm_qos_work_fn); in pm_qos_add_request()
403 &req->node, PM_QOS_ADD_REQ, value); in pm_qos_add_request()
417 void pm_qos_update_request(struct pm_qos_request *req, in pm_qos_update_request() argument
420 if (!req) /*guard against callers passing in null */ in pm_qos_update_request()
423 if (!pm_qos_request_active(req)) { in pm_qos_update_request()
428 cancel_delayed_work_sync(&req->work); in pm_qos_update_request()
429 __pm_qos_update_request(req, new_value); in pm_qos_update_request()
441 void pm_qos_update_request_timeout(struct pm_qos_request *req, s32 new_value, in pm_qos_update_request_timeout() argument
444 if (!req) in pm_qos_update_request_timeout()
446 if (WARN(!pm_qos_request_active(req), in pm_qos_update_request_timeout()
450 cancel_delayed_work_sync(&req->work); in pm_qos_update_request_timeout()
452 trace_pm_qos_update_request_timeout(req->pm_qos_class, in pm_qos_update_request_timeout()
454 if (new_value != req->node.prio) in pm_qos_update_request_timeout()
456 pm_qos_array[req->pm_qos_class]->constraints, in pm_qos_update_request_timeout()
457 &req->node, PM_QOS_UPDATE_REQ, new_value); in pm_qos_update_request_timeout()
459 schedule_delayed_work(&req->work, usecs_to_jiffies(timeout_us)); in pm_qos_update_request_timeout()
470 void pm_qos_remove_request(struct pm_qos_request *req) in pm_qos_remove_request() argument
472 if (!req) /*guard against callers passing in null */ in pm_qos_remove_request()
476 if (!pm_qos_request_active(req)) { in pm_qos_remove_request()
481 cancel_delayed_work_sync(&req->work); in pm_qos_remove_request()
483 trace_pm_qos_remove_request(req->pm_qos_class, PM_QOS_DEFAULT_VALUE); in pm_qos_remove_request()
484 pm_qos_update_target(pm_qos_array[req->pm_qos_class]->constraints, in pm_qos_remove_request()
485 &req->node, PM_QOS_REMOVE_REQ, in pm_qos_remove_request()
487 memset(req, 0, sizeof(*req)); in pm_qos_remove_request()
563 struct pm_qos_request *req = kzalloc(sizeof(*req), GFP_KERNEL); in pm_qos_power_open() local
564 if (!req) in pm_qos_power_open()
567 pm_qos_add_request(req, pm_qos_class, PM_QOS_DEFAULT_VALUE); in pm_qos_power_open()
568 filp->private_data = req; in pm_qos_power_open()
577 struct pm_qos_request *req; in pm_qos_power_release() local
579 req = filp->private_data; in pm_qos_power_release()
580 pm_qos_remove_request(req); in pm_qos_power_release()
581 kfree(req); in pm_qos_power_release()
592 struct pm_qos_request *req = filp->private_data; in pm_qos_power_read() local
594 if (!req) in pm_qos_power_read()
596 if (!pm_qos_request_active(req)) in pm_qos_power_read()
600 value = pm_qos_get_value(pm_qos_array[req->pm_qos_class]->constraints); in pm_qos_power_read()
610 struct pm_qos_request *req; in pm_qos_power_write() local
623 req = filp->private_data; in pm_qos_power_write()
624 pm_qos_update_request(req, value); in pm_qos_power_write()
720 int freq_qos_apply(struct freq_qos_request *req, in freq_qos_apply() argument
725 switch(req->type) { in freq_qos_apply()
727 ret = pm_qos_update_target(&req->qos->min_freq, &req->pnode, in freq_qos_apply()
731 ret = pm_qos_update_target(&req->qos->max_freq, &req->pnode, in freq_qos_apply()
756 struct freq_qos_request *req, in freq_qos_add_request() argument
761 if (IS_ERR_OR_NULL(qos) || !req) in freq_qos_add_request()
764 if (WARN(freq_qos_request_active(req), in freq_qos_add_request()
768 req->qos = qos; in freq_qos_add_request()
769 req->type = type; in freq_qos_add_request()
770 ret = freq_qos_apply(req, PM_QOS_ADD_REQ, value); in freq_qos_add_request()
772 req->qos = NULL; in freq_qos_add_request()
773 req->type = 0; in freq_qos_add_request()
791 int freq_qos_update_request(struct freq_qos_request *req, s32 new_value) in freq_qos_update_request() argument
793 if (!req) in freq_qos_update_request()
796 if (WARN(!freq_qos_request_active(req), in freq_qos_update_request()
800 if (req->pnode.prio == new_value) in freq_qos_update_request()
803 return freq_qos_apply(req, PM_QOS_UPDATE_REQ, new_value); in freq_qos_update_request()
817 int freq_qos_remove_request(struct freq_qos_request *req) in freq_qos_remove_request() argument
821 if (!req) in freq_qos_remove_request()
824 if (WARN(!freq_qos_request_active(req), in freq_qos_remove_request()
828 ret = freq_qos_apply(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE); in freq_qos_remove_request()
829 req->qos = NULL; in freq_qos_remove_request()
830 req->type = 0; in freq_qos_remove_request()