diff options
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/acpica/hwregs.c | 11 | ||||
-rw-r--r-- | drivers/acpi/bus.c | 8 | ||||
-rw-r--r-- | drivers/acpi/scan.c | 3 | ||||
-rw-r--r-- | drivers/acpi/sysfs.c | 14 |
4 files changed, 22 insertions, 14 deletions
diff --git a/drivers/acpi/acpica/hwregs.c b/drivers/acpi/acpica/hwregs.c index 55accb7018bb..cc70f3fdcdd1 100644 --- a/drivers/acpi/acpica/hwregs.c +++ b/drivers/acpi/acpica/hwregs.c | |||
@@ -269,16 +269,17 @@ acpi_status acpi_hw_clear_acpi_status(void) | |||
269 | 269 | ||
270 | status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS, | 270 | status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS, |
271 | ACPI_BITMASK_ALL_FIXED_STATUS); | 271 | ACPI_BITMASK_ALL_FIXED_STATUS); |
272 | if (ACPI_FAILURE(status)) { | 272 | |
273 | goto unlock_and_exit; | 273 | acpi_os_release_lock(acpi_gbl_hardware_lock, lock_flags); |
274 | } | 274 | |
275 | if (ACPI_FAILURE(status)) | ||
276 | goto exit; | ||
275 | 277 | ||
276 | /* Clear the GPE Bits in all GPE registers in all GPE blocks */ | 278 | /* Clear the GPE Bits in all GPE registers in all GPE blocks */ |
277 | 279 | ||
278 | status = acpi_ev_walk_gpe_list(acpi_hw_clear_gpe_block, NULL); | 280 | status = acpi_ev_walk_gpe_list(acpi_hw_clear_gpe_block, NULL); |
279 | 281 | ||
280 | unlock_and_exit: | 282 | exit: |
281 | acpi_os_release_lock(acpi_gbl_hardware_lock, lock_flags); | ||
282 | return_ACPI_STATUS(status); | 283 | return_ACPI_STATUS(status); |
283 | } | 284 | } |
284 | 285 | ||
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 437ddbf0c49a..9ecec98bc76e 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
@@ -911,10 +911,7 @@ void __init acpi_early_init(void) | |||
911 | } | 911 | } |
912 | #endif | 912 | #endif |
913 | 913 | ||
914 | status = | 914 | status = acpi_enable_subsystem(~ACPI_NO_ACPI_ENABLE); |
915 | acpi_enable_subsystem(~ | ||
916 | (ACPI_NO_HARDWARE_INIT | | ||
917 | ACPI_NO_ACPI_ENABLE)); | ||
918 | if (ACPI_FAILURE(status)) { | 915 | if (ACPI_FAILURE(status)) { |
919 | printk(KERN_ERR PREFIX "Unable to enable ACPI\n"); | 916 | printk(KERN_ERR PREFIX "Unable to enable ACPI\n"); |
920 | goto error0; | 917 | goto error0; |
@@ -935,8 +932,7 @@ static int __init acpi_bus_init(void) | |||
935 | 932 | ||
936 | acpi_os_initialize1(); | 933 | acpi_os_initialize1(); |
937 | 934 | ||
938 | status = | 935 | status = acpi_enable_subsystem(ACPI_NO_ACPI_ENABLE); |
939 | acpi_enable_subsystem(ACPI_NO_HARDWARE_INIT | ACPI_NO_ACPI_ENABLE); | ||
940 | if (ACPI_FAILURE(status)) { | 936 | if (ACPI_FAILURE(status)) { |
941 | printk(KERN_ERR PREFIX | 937 | printk(KERN_ERR PREFIX |
942 | "Unable to start the ACPI Interpreter\n"); | 938 | "Unable to start the ACPI Interpreter\n"); |
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 449c556274c0..8ab80bafe3f1 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
@@ -1062,13 +1062,12 @@ static void acpi_add_id(struct acpi_device *device, const char *dev_id) | |||
1062 | if (!id) | 1062 | if (!id) |
1063 | return; | 1063 | return; |
1064 | 1064 | ||
1065 | id->id = kmalloc(strlen(dev_id) + 1, GFP_KERNEL); | 1065 | id->id = kstrdup(dev_id, GFP_KERNEL); |
1066 | if (!id->id) { | 1066 | if (!id->id) { |
1067 | kfree(id); | 1067 | kfree(id); |
1068 | return; | 1068 | return; |
1069 | } | 1069 | } |
1070 | 1070 | ||
1071 | strcpy(id->id, dev_id); | ||
1072 | list_add_tail(&id->list, &device->pnp.ids); | 1071 | list_add_tail(&id->list, &device->pnp.ids); |
1073 | } | 1072 | } |
1074 | 1073 | ||
diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c index c538d0ef10ff..9f66181c814e 100644 --- a/drivers/acpi/sysfs.c +++ b/drivers/acpi/sysfs.c | |||
@@ -706,11 +706,23 @@ static void __exit interrupt_stats_exit(void) | |||
706 | return; | 706 | return; |
707 | } | 707 | } |
708 | 708 | ||
709 | static ssize_t | ||
710 | acpi_show_profile(struct device *dev, struct device_attribute *attr, | ||
711 | char *buf) | ||
712 | { | ||
713 | return sprintf(buf, "%d\n", acpi_gbl_FADT.preferred_profile); | ||
714 | } | ||
715 | |||
716 | static const struct device_attribute pm_profile_attr = | ||
717 | __ATTR(pm_profile, S_IRUGO, acpi_show_profile, NULL); | ||
718 | |||
709 | int __init acpi_sysfs_init(void) | 719 | int __init acpi_sysfs_init(void) |
710 | { | 720 | { |
711 | int result; | 721 | int result; |
712 | 722 | ||
713 | result = acpi_tables_sysfs_init(); | 723 | result = acpi_tables_sysfs_init(); |
714 | 724 | if (result) | |
725 | return result; | ||
726 | result = sysfs_create_file(acpi_kobj, &pm_profile_attr.attr); | ||
715 | return result; | 727 | return result; |
716 | } | 728 | } |