aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Ian King <colin.king@canonical.com>2016-01-21 12:05:47 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-03-09 17:46:07 -0500
commitb2ca5dae31d61c4610ea3228f43f7cc66312897c (patch)
treef51780882162e90706be785ca9b7057854577e0f
parent75829dcf10862966f52716f2d67ac1c1b1eb486b (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.txt6
-rw-r--r--drivers/acpi/tables.c10
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
486early_param("acpi_force_table_verification", acpi_force_table_verification_setup); 486early_param("acpi_force_table_verification", acpi_force_table_verification_setup);
487
488static 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
496early_param("acpi_force_32bit_fadt_addr", acpi_force_32bit_fadt_addr);