Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\power\qos.c Create Date:2022-07-28 09:56:05
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:pm_qos_update_target - manages the constraints list and calls the notifiers* if needed*@c: constraints data struct*@node: request to add to the list, to update or to remove*@action: action to take on the constraints list*@value: value of the request to

Proto:int pm_qos_update_target(struct pm_qos_constraints *c, struct plist_node *node, enum pm_qos_req_action action, int value)

Type:int

Parameter:

TypeParameterName
struct pm_qos_constraints *c
struct plist_node *node
enum pm_qos_req_actionaction
intvalue
221  spin_lock_irqsave( & pm_qos_lock, flags)
222  prev_value = locked internal variant
223  If value == PM_QOS_DEFAULT_VALUE Then new_value = default_value
225  Else new_value = value
229  Case action == PM_QOS_REMOVE_REQ
230  plist_del - Remove a @node from plist.*@node: &struct plist_node pointer - entry to be removed*@head: &struct plist_head pointer - list head
231  Break
232  Case action == Update an existing request
238  plist_del - Remove a @node from plist.*@node: &struct plist_node pointer - entry to be removed*@head: &struct plist_head pointer - list head
240  Case action == Add a new request
241  plist_node_init - Dynamic struct plist_node initializer*@node: &struct plist_node pointer*@prio: initial node priority
242  plist_add - add @node to @head*@node: &struct plist_node pointer*@head: &struct plist_head pointer
243  Break
244  Default
249  curr_value = locked internal variant
250  pm_qos_set_value(c, curr_value)
252  spin_unlock_irqrestore( & pm_qos_lock, flags)
254  trace_pm_qos_update_target(action, prev_value, curr_value)
255  If prev_value != curr_value Then
256  ret = 1
257  If notifiers Then blocking_notifier_call_chain(notifiers, (unsignedlong)curr_value, NULL)
261  Else
262  ret = 0
264  Return ret
Caller
NameDescribe
__pm_qos_update_request
pm_qos_add_requestpm_qos_add_request - inserts new qos request into the list*@req: pointer to a preallocated handle*@pm_qos_class: identifies which list of qos request to use*@value: defines the qos request* This function inserts a new entry in the pm_qos_class list of
pm_qos_update_request_timeoutpm_qos_update_request_timeout - modifies an existing qos request temporarily.*@req : handle to list element holding a pm_qos request to use*@new_value: defines the temporal qos request*@timeout_us: the effective duration of this qos request in usecs.
pm_qos_remove_requestpm_qos_remove_request - modifies an existing qos request*@req: handle to request list element* Will remove pm qos request from the list of constraints and* recompute the current target value for the pm_qos_class. Call this* on slow code paths.
freq_qos_applyq_qos_apply - Add/modify/remove frequency QoS request.*@req: Constraint request to apply.*@action: Action to perform (add/update/remove).*@value: Value to assign to the QoS request.* This is only meant to be called from inside pm_qos, not drivers.