Lines Matching refs:req

141 static int apply_constraint(struct dev_pm_qos_request *req,  in apply_constraint()  argument
144 struct dev_pm_qos *qos = req->dev->power.qos; in apply_constraint()
147 switch(req->type) { in apply_constraint()
150 &req->data.pnode, action, value); in apply_constraint()
155 req); in apply_constraint()
160 &req->data.pnode, action, value); in apply_constraint()
163 req->dev->power.set_latency_tolerance(req->dev, value); in apply_constraint()
167 ret = pm_qos_update_flags(&qos->flags, &req->data.flr, in apply_constraint()
237 struct dev_pm_qos_request *req, *tmp; in dev_pm_qos_constraints_destroy() local
261 plist_for_each_entry_safe(req, tmp, &c->list, data.pnode) { in dev_pm_qos_constraints_destroy()
266 apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE); in dev_pm_qos_constraints_destroy()
267 memset(req, 0, sizeof(*req)); in dev_pm_qos_constraints_destroy()
270 plist_for_each_entry_safe(req, tmp, &c->list, data.pnode) { in dev_pm_qos_constraints_destroy()
271 apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE); in dev_pm_qos_constraints_destroy()
272 memset(req, 0, sizeof(*req)); in dev_pm_qos_constraints_destroy()
275 list_for_each_entry_safe(req, tmp, &f->list, data.flr.node) { in dev_pm_qos_constraints_destroy()
276 apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE); in dev_pm_qos_constraints_destroy()
277 memset(req, 0, sizeof(*req)); in dev_pm_qos_constraints_destroy()
294 struct dev_pm_qos_request *req) in dev_pm_qos_invalid_request() argument
296 return !req || (req->type == DEV_PM_QOS_LATENCY_TOLERANCE in dev_pm_qos_invalid_request()
301 struct dev_pm_qos_request *req, in __dev_pm_qos_add_request() argument
306 if (!dev || dev_pm_qos_invalid_request(dev, req)) in __dev_pm_qos_add_request()
309 if (WARN(dev_pm_qos_request_active(req), in __dev_pm_qos_add_request()
320 req->dev = dev; in __dev_pm_qos_add_request()
321 req->type = type; in __dev_pm_qos_add_request()
322 ret = apply_constraint(req, PM_QOS_ADD_REQ, value); in __dev_pm_qos_add_request()
349 int dev_pm_qos_add_request(struct device *dev, struct dev_pm_qos_request *req, in dev_pm_qos_add_request() argument
355 ret = __dev_pm_qos_add_request(dev, req, type, value); in dev_pm_qos_add_request()
366 static int __dev_pm_qos_update_request(struct dev_pm_qos_request *req, in __dev_pm_qos_update_request() argument
372 if (!req) /*guard against callers passing in null */ in __dev_pm_qos_update_request()
375 if (WARN(!dev_pm_qos_request_active(req), in __dev_pm_qos_update_request()
379 if (IS_ERR_OR_NULL(req->dev->power.qos)) in __dev_pm_qos_update_request()
382 switch(req->type) { in __dev_pm_qos_update_request()
385 curr_value = req->data.pnode.prio; in __dev_pm_qos_update_request()
388 curr_value = req->data.flr.flags; in __dev_pm_qos_update_request()
394 trace_dev_pm_qos_update_request(dev_name(req->dev), req->type, in __dev_pm_qos_update_request()
397 ret = apply_constraint(req, PM_QOS_UPDATE_REQ, new_value); in __dev_pm_qos_update_request()
420 int dev_pm_qos_update_request(struct dev_pm_qos_request *req, s32 new_value) in dev_pm_qos_update_request() argument
425 ret = __dev_pm_qos_update_request(req, new_value); in dev_pm_qos_update_request()
431 static int __dev_pm_qos_remove_request(struct dev_pm_qos_request *req) in __dev_pm_qos_remove_request() argument
435 if (!req) /*guard against callers passing in null */ in __dev_pm_qos_remove_request()
438 if (WARN(!dev_pm_qos_request_active(req), in __dev_pm_qos_remove_request()
442 if (IS_ERR_OR_NULL(req->dev->power.qos)) in __dev_pm_qos_remove_request()
445 trace_dev_pm_qos_remove_request(dev_name(req->dev), req->type, in __dev_pm_qos_remove_request()
447 ret = apply_constraint(req, PM_QOS_REMOVE_REQ, PM_QOS_DEFAULT_VALUE); in __dev_pm_qos_remove_request()
448 memset(req, 0, sizeof(*req)); in __dev_pm_qos_remove_request()
467 int dev_pm_qos_remove_request(struct dev_pm_qos_request *req) in dev_pm_qos_remove_request() argument
472 ret = __dev_pm_qos_remove_request(req); in dev_pm_qos_remove_request()
576 struct dev_pm_qos_request *req, in dev_pm_qos_add_ancestor_request() argument
597 ret = dev_pm_qos_add_request(ancestor, req, type, value); in dev_pm_qos_add_ancestor_request()
600 req->dev = NULL; in dev_pm_qos_add_ancestor_request()
609 struct dev_pm_qos_request *req = NULL; in __dev_pm_qos_drop_user_request() local
613 req = dev->power.qos->resume_latency_req; in __dev_pm_qos_drop_user_request()
617 req = dev->power.qos->latency_tolerance_req; in __dev_pm_qos_drop_user_request()
621 req = dev->power.qos->flags_req; in __dev_pm_qos_drop_user_request()
625 __dev_pm_qos_remove_request(req); in __dev_pm_qos_drop_user_request()
626 kfree(req); in __dev_pm_qos_drop_user_request()
644 struct dev_pm_qos_request *req; in dev_pm_qos_expose_latency_limit() local
650 req = kzalloc(sizeof(*req), GFP_KERNEL); in dev_pm_qos_expose_latency_limit()
651 if (!req) in dev_pm_qos_expose_latency_limit()
654 ret = dev_pm_qos_add_request(dev, req, DEV_PM_QOS_RESUME_LATENCY, value); in dev_pm_qos_expose_latency_limit()
656 kfree(req); in dev_pm_qos_expose_latency_limit()
670 __dev_pm_qos_remove_request(req); in dev_pm_qos_expose_latency_limit()
671 kfree(req); in dev_pm_qos_expose_latency_limit()
675 dev->power.qos->resume_latency_req = req; in dev_pm_qos_expose_latency_limit()
720 struct dev_pm_qos_request *req; in dev_pm_qos_expose_flags() local
726 req = kzalloc(sizeof(*req), GFP_KERNEL); in dev_pm_qos_expose_flags()
727 if (!req) in dev_pm_qos_expose_flags()
730 ret = dev_pm_qos_add_request(dev, req, DEV_PM_QOS_FLAGS, val); in dev_pm_qos_expose_flags()
732 kfree(req); in dev_pm_qos_expose_flags()
747 __dev_pm_qos_remove_request(req); in dev_pm_qos_expose_flags()
748 kfree(req); in dev_pm_qos_expose_flags()
752 dev->power.qos->flags_req = req; in dev_pm_qos_expose_flags()
856 struct dev_pm_qos_request *req; in dev_pm_qos_update_user_latency_tolerance() local
862 req = kzalloc(sizeof(*req), GFP_KERNEL); in dev_pm_qos_update_user_latency_tolerance()
863 if (!req) { in dev_pm_qos_update_user_latency_tolerance()
867 ret = __dev_pm_qos_add_request(dev, req, DEV_PM_QOS_LATENCY_TOLERANCE, val); in dev_pm_qos_update_user_latency_tolerance()
869 kfree(req); in dev_pm_qos_update_user_latency_tolerance()
872 dev->power.qos->latency_tolerance_req = req; in dev_pm_qos_update_user_latency_tolerance()