Lines Matching full:qos

3  * Power Management Quality of Service (PM QoS) support base.
11 * Provided here is an interface for specifying PM QoS dependencies. It allows
12 * entities depending on QoS constraints to register their requests which are
18 * global CPU latency QoS requests and frequency QoS requests are provided.
51 * @c: List of PM QoS constraint requests.
71 WARN(1, "Unknown PM QoS type in %s\n", __func__); in pm_qos_get_value()
82 * pm_qos_update_target - Update a list of PM QoS constraint requests.
83 * @c: List of PM QoS requests.
88 * Update the given list of PM QoS constraint requests, @c, by carrying an
149 * pm_qos_flags_remove_req - Remove device PM QoS flags request.
150 * @pqf: Device PM QoS flags set to remove the request from.
166 * pm_qos_update_flags - Update a set of PM QoS flags.
167 * @pqf: Set of PM QoS flags to update.
213 /* Definitions related to the CPU latency QoS. */
224 * cpu_latency_qos_limit - Return current system-wide CPU latency QoS limit.
232 * cpu_latency_qos_request_active - Check the given PM QoS request.
233 * @req: PM QoS request to check.
235 * Return: 'true' if @req has been added to the CPU latency QoS list, 'false'
240 return req->qos == &cpu_latency_constraints; in cpu_latency_qos_request_active()
247 int ret = pm_qos_update_target(req->qos, &req->node, action, value); in cpu_latency_qos_apply()
253 * cpu_latency_qos_add_request - Add new CPU latency QoS request.
258 * a new entry to the CPU latency QoS list and recompute the effective QoS
262 * QoS request represented by it.
276 req->qos = &cpu_latency_constraints; in cpu_latency_qos_add_request()
282 * cpu_latency_qos_update_request - Modify existing CPU latency QoS request.
283 * @req : QoS request to update.
286 * Use @new_value to update the QoS request represented by @req in the CPU
287 * latency QoS list along with updating the effective constraint value for that
310 * cpu_latency_qos_remove_request - Remove existing CPU latency QoS request.
311 * @req: QoS request to remove.
313 * Remove the CPU latency QoS request represented by @req from the CPU latency
314 * QoS list along with updating the effective constraint value for that list.
333 /* User space interface to the CPU latency QoS via misc device. */
427 /* Definitions related to the frequency QoS below. */
430 * freq_constraints_init - Initialize frequency QoS constraints.
431 * @qos: Frequency QoS constraints to initialize.
433 void freq_constraints_init(struct freq_constraints *qos) in freq_constraints_init() argument
437 c = &qos->min_freq; in freq_constraints_init()
443 c->notifiers = &qos->min_freq_notifiers; in freq_constraints_init()
446 c = &qos->max_freq; in freq_constraints_init()
452 c->notifiers = &qos->max_freq_notifiers; in freq_constraints_init()
457 * freq_qos_read_value - Get frequency QoS constraint for a given list.
458 * @qos: Constraints to evaluate.
459 * @type: QoS request type.
461 s32 freq_qos_read_value(struct freq_constraints *qos, in freq_qos_read_value() argument
468 ret = IS_ERR_OR_NULL(qos) ? in freq_qos_read_value()
470 pm_qos_read_value(&qos->min_freq); in freq_qos_read_value()
473 ret = IS_ERR_OR_NULL(qos) ? in freq_qos_read_value()
475 pm_qos_read_value(&qos->max_freq); in freq_qos_read_value()
486 * freq_qos_apply - Add/modify/remove frequency QoS request.
489 * @value: Value to assign to the QoS request.
500 ret = pm_qos_update_target(&req->qos->min_freq, &req->pnode, in freq_qos_apply()
504 ret = pm_qos_update_target(&req->qos->max_freq, &req->pnode, in freq_qos_apply()
515 * freq_qos_add_request - Insert new frequency QoS request into a given list.
516 * @qos: Constraints to update.
521 * Insert a new entry into the @qos list of requests, recompute the effective
522 * QoS constraint value for that list and initialize the @req object. The
528 int freq_qos_add_request(struct freq_constraints *qos, in freq_qos_add_request() argument
534 if (IS_ERR_OR_NULL(qos) || !req) in freq_qos_add_request()
541 req->qos = qos; in freq_qos_add_request()
545 req->qos = NULL; in freq_qos_add_request()
554 * freq_qos_update_request - Modify existing frequency QoS request.
558 * Update an existing frequency QoS request along with the effective constraint
581 * freq_qos_remove_request - Remove frequency QoS request from its list.
584 * Remove the given frequency QoS request from the list of constraints it
602 req->qos = NULL; in freq_qos_remove_request()
610 * freq_qos_add_notifier - Add frequency QoS change notifier.
611 * @qos: List of requests to add the notifier to.
615 int freq_qos_add_notifier(struct freq_constraints *qos, in freq_qos_add_notifier() argument
621 if (IS_ERR_OR_NULL(qos) || !notifier) in freq_qos_add_notifier()
626 ret = blocking_notifier_chain_register(qos->min_freq.notifiers, in freq_qos_add_notifier()
630 ret = blocking_notifier_chain_register(qos->max_freq.notifiers, in freq_qos_add_notifier()
643 * freq_qos_remove_notifier - Remove frequency QoS change notifier.
644 * @qos: List of requests to remove the notifier from.
648 int freq_qos_remove_notifier(struct freq_constraints *qos, in freq_qos_remove_notifier() argument
654 if (IS_ERR_OR_NULL(qos) || !notifier) in freq_qos_remove_notifier()
659 ret = blocking_notifier_chain_unregister(qos->min_freq.notifiers, in freq_qos_remove_notifier()
663 ret = blocking_notifier_chain_unregister(qos->max_freq.notifiers, in freq_qos_remove_notifier()