Lines Matching refs:req
137 static int apply_constraint(struct dev_pm_qos_request *req, in apply_constraint() argument
140 struct dev_pm_qos *qos = req->dev->power.qos; in apply_constraint()
143 switch(req->type) { in apply_constraint()
146 &req->data.pnode, action, value); in apply_constraint()
151 req); in apply_constraint()
156 &req->data.pnode, action, value); in apply_constraint()
159 req->dev->power.set_latency_tolerance(req->dev, value); in apply_constraint()
163 ret = pm_qos_update_flags(&qos->flags, &req->data.flr, in apply_constraint()
233 struct dev_pm_qos_request *req, *tmp; in dev_pm_qos_constraints_destroy() local
257 plist_for_each_entry_safe(req, tmp, &c->list, data.pnode) { in dev_pm_qos_constraints_destroy()
262 apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE); in dev_pm_qos_constraints_destroy()
263 memset(req, 0, sizeof(*req)); in dev_pm_qos_constraints_destroy()
266 plist_for_each_entry_safe(req, tmp, &c->list, data.pnode) { in dev_pm_qos_constraints_destroy()
267 apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE); in dev_pm_qos_constraints_destroy()
268 memset(req, 0, sizeof(*req)); in dev_pm_qos_constraints_destroy()
271 list_for_each_entry_safe(req, tmp, &f->list, data.flr.node) { in dev_pm_qos_constraints_destroy()
272 apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE); in dev_pm_qos_constraints_destroy()
273 memset(req, 0, sizeof(*req)); in dev_pm_qos_constraints_destroy()
290 struct dev_pm_qos_request *req) in dev_pm_qos_invalid_request() argument
292 return !req || (req->type == DEV_PM_QOS_LATENCY_TOLERANCE in dev_pm_qos_invalid_request()
297 struct dev_pm_qos_request *req, in __dev_pm_qos_add_request() argument
302 if (!dev || dev_pm_qos_invalid_request(dev, req)) in __dev_pm_qos_add_request()
305 if (WARN(dev_pm_qos_request_active(req), in __dev_pm_qos_add_request()
316 req->dev = dev; in __dev_pm_qos_add_request()
317 req->type = type; in __dev_pm_qos_add_request()
318 ret = apply_constraint(req, PM_QOS_ADD_REQ, value); in __dev_pm_qos_add_request()
345 int dev_pm_qos_add_request(struct device *dev, struct dev_pm_qos_request *req, in dev_pm_qos_add_request() argument
351 ret = __dev_pm_qos_add_request(dev, req, type, value); in dev_pm_qos_add_request()
362 static int __dev_pm_qos_update_request(struct dev_pm_qos_request *req, in __dev_pm_qos_update_request() argument
368 if (!req) /*guard against callers passing in null */ in __dev_pm_qos_update_request()
371 if (WARN(!dev_pm_qos_request_active(req), in __dev_pm_qos_update_request()
375 if (IS_ERR_OR_NULL(req->dev->power.qos)) in __dev_pm_qos_update_request()
378 switch(req->type) { in __dev_pm_qos_update_request()
381 curr_value = req->data.pnode.prio; in __dev_pm_qos_update_request()
384 curr_value = req->data.flr.flags; in __dev_pm_qos_update_request()
390 trace_dev_pm_qos_update_request(dev_name(req->dev), req->type, in __dev_pm_qos_update_request()
393 ret = apply_constraint(req, PM_QOS_UPDATE_REQ, new_value); in __dev_pm_qos_update_request()
416 int dev_pm_qos_update_request(struct dev_pm_qos_request *req, s32 new_value) in dev_pm_qos_update_request() argument
421 ret = __dev_pm_qos_update_request(req, new_value); in dev_pm_qos_update_request()
427 static int __dev_pm_qos_remove_request(struct dev_pm_qos_request *req) in __dev_pm_qos_remove_request() argument
431 if (!req) /*guard against callers passing in null */ in __dev_pm_qos_remove_request()
434 if (WARN(!dev_pm_qos_request_active(req), in __dev_pm_qos_remove_request()
438 if (IS_ERR_OR_NULL(req->dev->power.qos)) in __dev_pm_qos_remove_request()
441 trace_dev_pm_qos_remove_request(dev_name(req->dev), req->type, in __dev_pm_qos_remove_request()
443 ret = apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE); in __dev_pm_qos_remove_request()
444 memset(req, 0, sizeof(*req)); in __dev_pm_qos_remove_request()
463 int dev_pm_qos_remove_request(struct dev_pm_qos_request *req) in dev_pm_qos_remove_request() argument
468 ret = __dev_pm_qos_remove_request(req); in dev_pm_qos_remove_request()
572 struct dev_pm_qos_request *req, in dev_pm_qos_add_ancestor_request() argument
593 ret = dev_pm_qos_add_request(ancestor, req, type, value); in dev_pm_qos_add_ancestor_request()
596 req->dev = NULL; in dev_pm_qos_add_ancestor_request()
606 struct dev_pm_qos_request *req = NULL; in __dev_pm_qos_drop_user_request() local
610 req = dev->power.qos->resume_latency_req; in __dev_pm_qos_drop_user_request()
614 req = dev->power.qos->latency_tolerance_req; in __dev_pm_qos_drop_user_request()
618 req = dev->power.qos->flags_req; in __dev_pm_qos_drop_user_request()
622 __dev_pm_qos_remove_request(req); in __dev_pm_qos_drop_user_request()
623 kfree(req); in __dev_pm_qos_drop_user_request()
641 struct dev_pm_qos_request *req; in dev_pm_qos_expose_latency_limit() local
647 req = kzalloc(sizeof(*req), GFP_KERNEL); in dev_pm_qos_expose_latency_limit()
648 if (!req) in dev_pm_qos_expose_latency_limit()
651 ret = dev_pm_qos_add_request(dev, req, DEV_PM_QOS_RESUME_LATENCY, value); in dev_pm_qos_expose_latency_limit()
653 kfree(req); in dev_pm_qos_expose_latency_limit()
667 __dev_pm_qos_remove_request(req); in dev_pm_qos_expose_latency_limit()
668 kfree(req); in dev_pm_qos_expose_latency_limit()
672 dev->power.qos->resume_latency_req = req; in dev_pm_qos_expose_latency_limit()
717 struct dev_pm_qos_request *req; in dev_pm_qos_expose_flags() local
723 req = kzalloc(sizeof(*req), GFP_KERNEL); in dev_pm_qos_expose_flags()
724 if (!req) in dev_pm_qos_expose_flags()
727 ret = dev_pm_qos_add_request(dev, req, DEV_PM_QOS_FLAGS, val); in dev_pm_qos_expose_flags()
729 kfree(req); in dev_pm_qos_expose_flags()
744 __dev_pm_qos_remove_request(req); in dev_pm_qos_expose_flags()
745 kfree(req); in dev_pm_qos_expose_flags()
749 dev->power.qos->flags_req = req; in dev_pm_qos_expose_flags()
853 struct dev_pm_qos_request *req; in dev_pm_qos_update_user_latency_tolerance() local
859 req = kzalloc(sizeof(*req), GFP_KERNEL); in dev_pm_qos_update_user_latency_tolerance()
860 if (!req) { in dev_pm_qos_update_user_latency_tolerance()
864 ret = __dev_pm_qos_add_request(dev, req, DEV_PM_QOS_LATENCY_TOLERANCE, val); in dev_pm_qos_update_user_latency_tolerance()
866 kfree(req); in dev_pm_qos_update_user_latency_tolerance()
869 dev->power.qos->latency_tolerance_req = req; in dev_pm_qos_update_user_latency_tolerance()