Skip to content

Commit 511514f

Browse files
committed
Merge branches 'acpi-tables', 'acpi-debug', 'acpi-ec' and 'acpi-dptf'
* acpi-tables: ACPI/PPTT: Add acpi_pptt_warn_missing() to consolidate logs ACPI / tables: table override from built-in initrd * acpi-debug: ACPI: debug: Clean up acpi_aml_init() ACPI: no need to check return value of debugfs_create functions * acpi-ec: Revert "ACPI / EC: Remove old CLEAR_ON_RESUME quirk" ACPI: EC: Simplify boot EC checks in acpi_ec_add() ACPI: EC: Eliminate acpi_config_boot_ec() ACPI: EC: Make acpi_ec_dsdt_probe() more straightforward ACPI: EC: Make acpi_ec_ecdt_probe() more straightforward ACPI: EC: Declare boot_ec as static ACPI: EC: Clean up probing for early EC * acpi-dptf: ACPI / DPTF: remove header search path to the parent directory
5 parents 7db52b5 + 6cafe70 + 6010ce3 + b6a3e14 + 580d038 commit 511514f

File tree

13 files changed

+190
-226
lines changed

13 files changed

+190
-226
lines changed

Documentation/acpi/initrd_table_override.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ upgrade the ACPI execution environment that is defined by the ACPI tables
1414
via upgrading the ACPI tables provided by the BIOS with an instrumented,
1515
modified, more recent version one, or installing brand new ACPI tables.
1616

17+
When building initrd with kernel in a single image, option
18+
ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD should also be true for this
19+
feature to work.
20+
1721
For a full list of ACPI tables that can be upgraded/installed, take a look
1822
at the char *table_sigs[MAX_ACPI_SIGNATURE]; definition in
1923
drivers/acpi/tables.c.

drivers/acpi/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,16 @@ config ACPI_TABLE_UPGRADE
357357
initrd, therefore it's safe to say Y.
358358
See Documentation/acpi/initrd_table_override.txt for details
359359

360+
config ACPI_TABLE_OVERRIDE_VIA_BUILTIN_INITRD
361+
bool "Override ACPI tables from built-in initrd"
362+
depends on ACPI_TABLE_UPGRADE
363+
depends on INITRAMFS_SOURCE!="" && INITRAMFS_COMPRESSION=""
364+
help
365+
This option provides functionality to override arbitrary ACPI tables
366+
from built-in uncompressed initrd.
367+
368+
See Documentation/acpi/initrd_table_override.txt for details
369+
360370
config ACPI_DEBUG
361371
bool "Debug Statements"
362372
help

drivers/acpi/acpi_dbg.c

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -750,48 +750,36 @@ static const struct acpi_debugger_ops acpi_aml_debugger = {
750750

751751
int __init acpi_aml_init(void)
752752
{
753-
int ret = 0;
754-
755-
if (!acpi_debugfs_dir) {
756-
ret = -ENOENT;
757-
goto err_exit;
758-
}
753+
int ret;
759754

760755
/* Initialize AML IO interface */
761756
mutex_init(&acpi_aml_io.lock);
762757
init_waitqueue_head(&acpi_aml_io.wait);
763758
acpi_aml_io.out_crc.buf = acpi_aml_io.out_buf;
764759
acpi_aml_io.in_crc.buf = acpi_aml_io.in_buf;
760+
765761
acpi_aml_dentry = debugfs_create_file("acpidbg",
766762
S_IFREG | S_IRUGO | S_IWUSR,
767763
acpi_debugfs_dir, NULL,
768764
&acpi_aml_operations);
769-
if (acpi_aml_dentry == NULL) {
770-
ret = -ENODEV;
771-
goto err_exit;
772-
}
773-
ret = acpi_register_debugger(THIS_MODULE, &acpi_aml_debugger);
774-
if (ret)
775-
goto err_fs;
776-
acpi_aml_initialized = true;
777765

778-
err_fs:
766+
ret = acpi_register_debugger(THIS_MODULE, &acpi_aml_debugger);
779767
if (ret) {
780768
debugfs_remove(acpi_aml_dentry);
781769
acpi_aml_dentry = NULL;
770+
return ret;
782771
}
783-
err_exit:
784-
return ret;
772+
773+
acpi_aml_initialized = true;
774+
return 0;
785775
}
786776

787777
void __exit acpi_aml_exit(void)
788778
{
789779
if (acpi_aml_initialized) {
790780
acpi_unregister_debugger(&acpi_aml_debugger);
791-
if (acpi_aml_dentry) {
792-
debugfs_remove(acpi_aml_dentry);
793-
acpi_aml_dentry = NULL;
794-
}
781+
debugfs_remove(acpi_aml_dentry);
782+
acpi_aml_dentry = NULL;
795783
acpi_aml_initialized = false;
796784
}
797785
}

drivers/acpi/apei/einj.c

Lines changed: 22 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -679,7 +679,6 @@ static int __init einj_init(void)
679679
{
680680
int rc;
681681
acpi_status status;
682-
struct dentry *fentry;
683682
struct apei_exec_context ctx;
684683

685684
if (acpi_disabled) {
@@ -707,25 +706,13 @@ static int __init einj_init(void)
707706

708707
rc = -ENOMEM;
709708
einj_debug_dir = debugfs_create_dir("einj", apei_get_debugfs_dir());
710-
if (!einj_debug_dir) {
711-
pr_err("Error creating debugfs node.\n");
712-
goto err_cleanup;
713-
}
714709

715-
fentry = debugfs_create_file("available_error_type", S_IRUSR,
716-
einj_debug_dir, NULL,
717-
&available_error_type_fops);
718-
if (!fentry)
719-
goto err_cleanup;
720-
721-
fentry = debugfs_create_file("error_type", S_IRUSR | S_IWUSR,
722-
einj_debug_dir, NULL, &error_type_fops);
723-
if (!fentry)
724-
goto err_cleanup;
725-
fentry = debugfs_create_file("error_inject", S_IWUSR,
726-
einj_debug_dir, NULL, &error_inject_fops);
727-
if (!fentry)
728-
goto err_cleanup;
710+
debugfs_create_file("available_error_type", S_IRUSR, einj_debug_dir,
711+
NULL, &available_error_type_fops);
712+
debugfs_create_file("error_type", S_IRUSR | S_IWUSR, einj_debug_dir,
713+
NULL, &error_type_fops);
714+
debugfs_create_file("error_inject", S_IWUSR, einj_debug_dir,
715+
NULL, &error_inject_fops);
729716

730717
apei_resources_init(&einj_resources);
731718
einj_exec_ctx_init(&ctx);
@@ -750,66 +737,37 @@ static int __init einj_init(void)
750737
rc = -ENOMEM;
751738
einj_param = einj_get_parameter_address();
752739
if ((param_extension || acpi5) && einj_param) {
753-
fentry = debugfs_create_x32("flags", S_IRUSR | S_IWUSR,
754-
einj_debug_dir, &error_flags);
755-
if (!fentry)
756-
goto err_unmap;
757-
fentry = debugfs_create_x64("param1", S_IRUSR | S_IWUSR,
758-
einj_debug_dir, &error_param1);
759-
if (!fentry)
760-
goto err_unmap;
761-
fentry = debugfs_create_x64("param2", S_IRUSR | S_IWUSR,
762-
einj_debug_dir, &error_param2);
763-
if (!fentry)
764-
goto err_unmap;
765-
fentry = debugfs_create_x64("param3", S_IRUSR | S_IWUSR,
766-
einj_debug_dir, &error_param3);
767-
if (!fentry)
768-
goto err_unmap;
769-
fentry = debugfs_create_x64("param4", S_IRUSR | S_IWUSR,
770-
einj_debug_dir, &error_param4);
771-
if (!fentry)
772-
goto err_unmap;
773-
774-
fentry = debugfs_create_x32("notrigger", S_IRUSR | S_IWUSR,
775-
einj_debug_dir, &notrigger);
776-
if (!fentry)
777-
goto err_unmap;
740+
debugfs_create_x32("flags", S_IRUSR | S_IWUSR, einj_debug_dir,
741+
&error_flags);
742+
debugfs_create_x64("param1", S_IRUSR | S_IWUSR, einj_debug_dir,
743+
&error_param1);
744+
debugfs_create_x64("param2", S_IRUSR | S_IWUSR, einj_debug_dir,
745+
&error_param2);
746+
debugfs_create_x64("param3", S_IRUSR | S_IWUSR, einj_debug_dir,
747+
&error_param3);
748+
debugfs_create_x64("param4", S_IRUSR | S_IWUSR, einj_debug_dir,
749+
&error_param4);
750+
debugfs_create_x32("notrigger", S_IRUSR | S_IWUSR,
751+
einj_debug_dir, &notrigger);
778752
}
779753

780754
if (vendor_dev[0]) {
781755
vendor_blob.data = vendor_dev;
782756
vendor_blob.size = strlen(vendor_dev);
783-
fentry = debugfs_create_blob("vendor", S_IRUSR,
784-
einj_debug_dir, &vendor_blob);
785-
if (!fentry)
786-
goto err_unmap;
787-
fentry = debugfs_create_x32("vendor_flags", S_IRUSR | S_IWUSR,
788-
einj_debug_dir, &vendor_flags);
789-
if (!fentry)
790-
goto err_unmap;
757+
debugfs_create_blob("vendor", S_IRUSR, einj_debug_dir,
758+
&vendor_blob);
759+
debugfs_create_x32("vendor_flags", S_IRUSR | S_IWUSR,
760+
einj_debug_dir, &vendor_flags);
791761
}
792762

793763
pr_info("Error INJection is initialized.\n");
794764

795765
return 0;
796766

797-
err_unmap:
798-
if (einj_param) {
799-
acpi_size size = (acpi5) ?
800-
sizeof(struct set_error_type_with_address) :
801-
sizeof(struct einj_parameter);
802-
803-
acpi_os_unmap_iomem(einj_param, size);
804-
pr_err("Error creating param extension debugfs nodes.\n");
805-
}
806-
apei_exec_post_unmap_gars(&ctx);
807767
err_release:
808768
apei_resources_release(&einj_resources);
809769
err_fini:
810770
apei_resources_fini(&einj_resources);
811-
err_cleanup:
812-
pr_err("Error creating primary debugfs nodes.\n");
813771
debugfs_remove_recursive(einj_debug_dir);
814772

815773
return rc;

drivers/acpi/custom_method.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,8 @@ static const struct file_operations cm_fops = {
7979

8080
static int __init acpi_custom_method_init(void)
8181
{
82-
if (acpi_debugfs_dir == NULL)
83-
return -ENOENT;
84-
8582
cm_dentry = debugfs_create_file("custom_method", S_IWUSR,
8683
acpi_debugfs_dir, NULL, &cm_fops);
87-
if (cm_dentry == NULL)
88-
return -ENODEV;
89-
9084
return 0;
9185
}
9286

drivers/acpi/dptf/Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
obj-$(CONFIG_ACPI) += int340x_thermal.o
22
obj-$(CONFIG_DPTF_POWER) += dptf_power.o
3-
4-
ccflags-y += -Idrivers/acpi

drivers/acpi/dptf/int340x_thermal.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include <linux/acpi.h>
1313
#include <linux/module.h>
1414

15-
#include "internal.h"
15+
#include "../internal.h"
1616

1717
#define INT3401_DEVICE 0X01
1818
static const struct acpi_device_id int340x_thermal_device_ids[] = {

0 commit comments

Comments
 (0)