Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e751b759 authored by Len Brown's avatar Len Brown
Browse files

Merge branches 'atomic-io', 'lockdep', 'misc', 'pm-profile' and 'pnp-cleanup' into acpi

Loading
Loading
Loading
Loading
+22 −0
Original line number Original line Diff line number Diff line
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
+6 −5
Original line number Original line Diff line number Diff line
@@ -269,16 +269,17 @@ acpi_status acpi_hw_clear_acpi_status(void)


	status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS,
	status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS,
					ACPI_BITMASK_ALL_FIXED_STATUS);
					ACPI_BITMASK_ALL_FIXED_STATUS);
	if (ACPI_FAILURE(status)) {

		goto unlock_and_exit;
	acpi_os_release_lock(acpi_gbl_hardware_lock, lock_flags);
	}

	if (ACPI_FAILURE(status))
		goto exit;


	/* Clear the GPE Bits in all GPE registers in all GPE blocks */
	/* Clear the GPE Bits in all GPE registers in all GPE blocks */


	status = acpi_ev_walk_gpe_list(acpi_hw_clear_gpe_block, NULL);
	status = acpi_ev_walk_gpe_list(acpi_hw_clear_gpe_block, NULL);


      unlock_and_exit:
exit:
	acpi_os_release_lock(acpi_gbl_hardware_lock, lock_flags);
	return_ACPI_STATUS(status);
	return_ACPI_STATUS(status);
}
}


+2 −6
Original line number Original line Diff line number Diff line
@@ -911,10 +911,7 @@ void __init acpi_early_init(void)
	}
	}
#endif
#endif


	status =
	status = acpi_enable_subsystem(~ACPI_NO_ACPI_ENABLE);
	    acpi_enable_subsystem(~
				  (ACPI_NO_HARDWARE_INIT |
				   ACPI_NO_ACPI_ENABLE));
	if (ACPI_FAILURE(status)) {
	if (ACPI_FAILURE(status)) {
		printk(KERN_ERR PREFIX "Unable to enable ACPI\n");
		printk(KERN_ERR PREFIX "Unable to enable ACPI\n");
		goto error0;
		goto error0;
@@ -935,8 +932,7 @@ static int __init acpi_bus_init(void)


	acpi_os_initialize1();
	acpi_os_initialize1();


	status =
	status = acpi_enable_subsystem(ACPI_NO_ACPI_ENABLE);
	    acpi_enable_subsystem(ACPI_NO_HARDWARE_INIT | ACPI_NO_ACPI_ENABLE);
	if (ACPI_FAILURE(status)) {
	if (ACPI_FAILURE(status)) {
		printk(KERN_ERR PREFIX
		printk(KERN_ERR PREFIX
		       "Unable to start the ACPI Interpreter\n");
		       "Unable to start the ACPI Interpreter\n");
+1 −2
Original line number Original line Diff line number Diff line
@@ -1062,13 +1062,12 @@ static void acpi_add_id(struct acpi_device *device, const char *dev_id)
	if (!id)
	if (!id)
		return;
		return;


	id->id = kmalloc(strlen(dev_id) + 1, GFP_KERNEL);
	id->id = kstrdup(dev_id, GFP_KERNEL);
	if (!id->id) {
	if (!id->id) {
		kfree(id);
		kfree(id);
		return;
		return;
	}
	}


	strcpy(id->id, dev_id);
	list_add_tail(&id->list, &device->pnp.ids);
	list_add_tail(&id->list, &device->pnp.ids);
}
}


+13 −1
Original line number Original line Diff line number Diff line
@@ -706,11 +706,23 @@ static void __exit interrupt_stats_exit(void)
	return;
	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 __init acpi_sysfs_init(void)
{
{
	int result;
	int result;


	result = acpi_tables_sysfs_init();
	result = acpi_tables_sysfs_init();

	if (result)
		return result;
	result = sysfs_create_file(acpi_kobj, &pm_profile_attr.attr);
	return result;
	return result;
}
}
Loading