forked from mirrors/linux
		
	ACPI: Export FADT pm_profile integer value to userspace
There are a lot userspace approaches to detect the usage of the platform (laptop, workstation, server, ...) and adjust kernel tunables accordingly (io/process scheduler, power management, ...). These approaches need constant maintaining and are ugly to implement (detect PCMCIA controller -> laptop, does not work on recent systems anymore, ...) On ACPI systems there is an easy and reliable way (if implemented in BIOS and most recent platforms have this value set). -> export it to userspace. Signed-off-by: Thomas Renninger <trenn@suse.de> Acked-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
		
							parent
							
								
									c3b92c8787
								
							
						
					
					
						commit
						362b646062
					
				
					 2 changed files with 35 additions and 1 deletions
				
			
		
							
								
								
									
										22
									
								
								Documentation/ABI/stable/sysfs-acpi-pmprofile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								Documentation/ABI/stable/sysfs-acpi-pmprofile
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| What: 		/sys/firmware/acpi/pm_profile | ||||
| Date:		03-Nov-2011 | ||||
| KernelVersion:	v3.2 | ||||
| Contact:	linux-acpi@vger.kernel.org | ||||
| Description: 	The ACPI pm_profile sysfs interface exports the platform | ||||
| 		power management (and performance) requirement expectations | ||||
| 		as provided by BIOS. The integer value is directly passed as | ||||
| 		retrieved from the FADT ACPI table. | ||||
| Values:         For possible values see ACPI specification: | ||||
| 		5.2.9 Fixed ACPI Description Table (FADT) | ||||
| 		Field: Preferred_PM_Profile | ||||
| 
 | ||||
| 		Currently these values are defined by spec: | ||||
| 		0 Unspecified | ||||
| 		1 Desktop | ||||
| 		2 Mobile | ||||
| 		3 Workstation | ||||
| 		4 Enterprise Server | ||||
| 		5 SOHO Server | ||||
| 		6 Appliance PC | ||||
| 		7 Performance Server | ||||
| 		>7 Reserved | ||||
|  | @ -706,11 +706,23 @@ static void __exit interrupt_stats_exit(void) | |||
| 	return; | ||||
| } | ||||
| 
 | ||||
| static ssize_t | ||||
| acpi_show_profile(struct device *dev, struct device_attribute *attr, | ||||
| 		  char *buf) | ||||
| { | ||||
| 	return sprintf(buf, "%d\n", acpi_gbl_FADT.preferred_profile); | ||||
| } | ||||
| 
 | ||||
| static const struct device_attribute pm_profile_attr = | ||||
| 	__ATTR(pm_profile, S_IRUGO, acpi_show_profile, NULL); | ||||
| 
 | ||||
| int __init acpi_sysfs_init(void) | ||||
| { | ||||
| 	int result; | ||||
| 
 | ||||
| 	result = acpi_tables_sysfs_init(); | ||||
| 
 | ||||
| 	if (result) | ||||
| 		return result; | ||||
| 	result = sysfs_create_file(acpi_kobj, &pm_profile_attr.attr); | ||||
| 	return result; | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Thomas Renninger
						Thomas Renninger