diff options
author | Colin Ian King <colin.king@canonical.com> | 2016-01-21 12:05:47 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-03-09 17:46:07 -0500 |
commit | b2ca5dae31d61c4610ea3228f43f7cc66312897c (patch) | |
tree | f51780882162e90706be785ca9b7057854577e0f | |
parent | 75829dcf10862966f52716f2d67ac1c1b1eb486b (diff) |
ACPI: Add acpi_force_32bit_fadt_addr option to force 32 bit FADT addresses
Some HP laptops seem to have invalid 64 bit FADT X_PM* addresses
which are causing various boot issues. In these cases, it would
be useful to force ACPI to use the valid legacy 32 bit equivalent
PM addresses. Add a acpi_force_32bit_fadt_addr to set the ACPICA
acpi_gbl_use32_bit_fadt_addresses to TRUE to force this override.
Link: https://bugs.launchpad.net/bugs/1529381
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | Documentation/kernel-parameters.txt | 6 | ||||
-rw-r--r-- | drivers/acpi/tables.c | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 9a53c929f017..64b5431904c3 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -193,6 +193,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
193 | (e.g. thinkpad_acpi, sony_acpi, etc.) instead | 193 | (e.g. thinkpad_acpi, sony_acpi, etc.) instead |
194 | of the ACPI video.ko driver. | 194 | of the ACPI video.ko driver. |
195 | 195 | ||
196 | acpi_force_32bit_fadt_addr | ||
197 | force FADT to use 32 bit addresses rather than the | ||
198 | 64 bit X_* addresses. Some firmware have broken 64 | ||
199 | bit addresses for force ACPI ignore these and use | ||
200 | the older legacy 32 bit addresses. | ||
201 | |||
196 | acpica_no_return_repair [HW, ACPI] | 202 | acpica_no_return_repair [HW, ACPI] |
197 | Disable AML predefined validation mechanism | 203 | Disable AML predefined validation mechanism |
198 | This mechanism can repair the evaluation result to make | 204 | This mechanism can repair the evaluation result to make |
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c index 6c0f0794aa82..ebdf5643cd8e 100644 --- a/drivers/acpi/tables.c +++ b/drivers/acpi/tables.c | |||
@@ -484,3 +484,13 @@ static int __init acpi_force_table_verification_setup(char *s) | |||
484 | } | 484 | } |
485 | 485 | ||
486 | early_param("acpi_force_table_verification", acpi_force_table_verification_setup); | 486 | early_param("acpi_force_table_verification", acpi_force_table_verification_setup); |
487 | |||
488 | static int __init acpi_force_32bit_fadt_addr(char *s) | ||
489 | { | ||
490 | pr_info("Forcing 32 Bit FADT addresses\n"); | ||
491 | acpi_gbl_use32_bit_fadt_addresses = TRUE; | ||
492 | |||
493 | return 0; | ||
494 | } | ||
495 | |||
496 | early_param("acpi_force_32bit_fadt_addr", acpi_force_32bit_fadt_addr); | ||