mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	PM / QoS: Update Documentation/power/pm_qos_interface.txt
Update PM QoS documentation after recent changes. [rjw: Changelog] Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
		
							parent
							
								
									bb177fedd3
								
							
						
					
					
						commit
						d30b82a469
					
				
					 1 changed files with 43 additions and 7 deletions
				
			
		|  | @ -7,7 +7,7 @@ one of the parameters. | |||
| Two different PM QoS frameworks are available: | ||||
| 1. PM QoS classes for cpu_dma_latency, network_latency, network_throughput. | ||||
| 2. the per-device PM QoS framework provides the API to manage the per-device latency | ||||
| constraints. | ||||
| constraints and PM QoS flags. | ||||
| 
 | ||||
| Each parameters have defined units: | ||||
|  * latency: usec | ||||
|  | @ -86,13 +86,17 @@ To remove the user mode request for a target value simply close the device | |||
| node. | ||||
| 
 | ||||
| 
 | ||||
| 2. PM QoS per-device latency framework | ||||
| 2. PM QoS per-device latency and flags framework | ||||
| 
 | ||||
| For each device, there are two lists of PM QoS requests. One is maintained | ||||
| along with the aggregated target of latency value and the other is for PM QoS | ||||
| flags. Values are updated in response to changes of the request list. | ||||
| 
 | ||||
| Target latency value is simply the minimum of the request values held in the | ||||
| parameter list elements.  The PM QoS flags aggregate value is a gather (bitwise | ||||
| OR) of all list elements' values. Two device PM QoS flags are defined currently: | ||||
| PM_QOS_FLAG_NO_POWER_OFF and PM_QOS_FLAG_REMOTE_WAKEUP. | ||||
| 
 | ||||
| For each device a list of performance requests is maintained along with | ||||
| an aggregated target value.  The aggregated target value is updated with | ||||
| changes to the request list or elements of the list.  Typically the | ||||
| aggregated target value is simply the max or min of the request values held | ||||
| in the parameter list elements. | ||||
| Note: the aggregated target value is implemented as an atomic variable so that | ||||
| reading the aggregated value does not require any locking mechanism. | ||||
| 
 | ||||
|  | @ -119,6 +123,38 @@ the request. | |||
| s32 dev_pm_qos_read_value(device): | ||||
| Returns the aggregated value for a given device's constraints list. | ||||
| 
 | ||||
| enum pm_qos_flags_status dev_pm_qos_flags(device, mask) | ||||
| Check PM QoS flags of the given device against the given mask of flags. | ||||
| The meaning of the return values is as follows: | ||||
| 	PM_QOS_FLAGS_ALL: All flags from the mask are set | ||||
| 	PM_QOS_FLAGS_SOME: Some flags from the mask are set | ||||
| 	PM_QOS_FLAGS_NONE: No flags from the mask are set | ||||
| 	PM_QOS_FLAGS_UNDEFINED: The device's PM QoS structure has not been | ||||
| 			initialized or the list of requests is empty. | ||||
| 
 | ||||
| int dev_pm_qos_add_ancestor_request(dev, handle, value) | ||||
| Add a PM QoS request for the first direct ancestor of the given device whose | ||||
| power.ignore_children flag is unset. | ||||
| 
 | ||||
| int dev_pm_qos_expose_latency_limit(device, value) | ||||
| Add a request to the device's PM QoS list of latency constraints and create | ||||
| a sysfs attribute pm_qos_resume_latency_us under the device's power directory | ||||
| allowing user space to manipulate that request. | ||||
| 
 | ||||
| void dev_pm_qos_hide_latency_limit(device) | ||||
| Drop the request added by dev_pm_qos_expose_latency_limit() from the device's | ||||
| PM QoS list of latency constraints and remove sysfs attribute pm_qos_resume_latency_us | ||||
| from the device's power directory. | ||||
| 
 | ||||
| int dev_pm_qos_expose_flags(device, value) | ||||
| Add a request to the device's PM QoS list of flags and create sysfs attributes | ||||
| pm_qos_no_power_off and pm_qos_remote_wakeup under the device's power directory | ||||
| allowing user space to change these flags' value. | ||||
| 
 | ||||
| void dev_pm_qos_hide_flags(device) | ||||
| Drop the request added by dev_pm_qos_expose_flags() from the device's PM QoS list | ||||
| of flags and remove sysfs attributes pm_qos_no_power_off and pm_qos_remote_wakeup | ||||
| under the device's power directory. | ||||
| 
 | ||||
| Notification mechanisms: | ||||
| The per-device PM QoS framework has 2 different and distinct notification trees: | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 lan,Tianyu
						lan,Tianyu