mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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