Commit 2818cc74 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

Merge branches 'acpi-debug', 'acpi-reboot', 'acpi-processor', 'acpi-dptf' and 'acpi-utils'

* acpi-debug:
  ACPI: debug: don't allow debugging when ACPI is disabled

* acpi-reboot:
  ACPI: reboot: Avoid racing after writing to ACPI RESET_REG

* acpi-processor:
  ACPI: processor: remove comment regarding string _UID support

* acpi-dptf:
  ACPI: DPTF: Add ACPI_DPTF Kconfig menu
  ACPI: DPTF: Fix participant driver names

* acpi-utils:
  ACPI: utils: remove unreachable breaks
...@@ -749,6 +749,9 @@ static int __init acpi_aml_init(void) ...@@ -749,6 +749,9 @@ static int __init acpi_aml_init(void)
{ {
int ret; int ret;
if (acpi_disabled)
return -ENODEV;
/* Initialize AML IO interface */ /* Initialize AML IO interface */
mutex_init(&acpi_aml_io.lock); mutex_init(&acpi_aml_io.lock);
init_waitqueue_head(&acpi_aml_io.wait); init_waitqueue_head(&acpi_aml_io.wait);
......
...@@ -264,7 +264,6 @@ static int acpi_processor_get_info(struct acpi_device *device) ...@@ -264,7 +264,6 @@ static int acpi_processor_get_info(struct acpi_device *device)
} else { } else {
/* /*
* Declared with "Device" statement; match _UID. * Declared with "Device" statement; match _UID.
* Note that we don't handle string _UIDs yet.
*/ */
status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID, status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID,
NULL, &value); NULL, &value);
......
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
config DPTF_POWER
tristate "DPTF Platform Power Participant" menuconfig ACPI_DPTF
bool "Intel DPTF (Dynamic Platform and Thermal Framework) Support"
depends on X86 depends on X86
help
Intel Dynamic Platform and Thermal Framework (DPTF) is a platform
level hardware/software solution for power and thermal management.
As a container for multiple power/thermal technologies, DPTF provides
a coordinated approach for different policies to effect the hardware
state of a system.
For more information see:
<https://01.org/intel%C2%AE-dynamic-platform-and-thermal-framework-dptf-chromium-os/overview>
if ACPI_DPTF
config DPTF_POWER
tristate "Platform Power DPTF Participant"
default m
help help
This driver adds support for Dynamic Platform and Thermal Framework This driver adds support for Dynamic Platform and Thermal Framework
(DPTF) Platform Power Participant device (INT3407) support. (DPTF) Platform Power Participant device (INT3407) support.
...@@ -16,15 +33,17 @@ config DPTF_POWER ...@@ -16,15 +33,17 @@ config DPTF_POWER
the module will be called dptf_power. the module will be called dptf_power.
config DPTF_PCH_FIVR config DPTF_PCH_FIVR
tristate "DPTF PCH FIVR Participant" tristate "PCH FIVR DPTF Participant"
depends on X86 default m
help help
This driver adds support for Dynamic Platform and Thermal Framework This driver adds support for Dynamic Platform and Thermal Framework
(DPTF) PCH FIVR Participant device support. This driver allows to (DPTF) PCH FIVR Participant device support. This driver allows to
switch PCH FIVR (Fully Integrated Voltage Regulator) frequency. switch the PCH FIVR (Fully Integrated Voltage Regulator) frequency.
This participant is responsible for exposing: This participant is responsible for exposing:
freq_mhz_low_clock freq_mhz_low_clock
freq_mhz_high_clock freq_mhz_high_clock
To compile this driver as a module, choose M here: To compile this driver as a module, choose M here:
the module will be called dptf_pch_fivr. the module will be called dptf_pch_fivr.
endif
...@@ -114,7 +114,7 @@ static struct platform_driver pch_fivr_driver = { ...@@ -114,7 +114,7 @@ static struct platform_driver pch_fivr_driver = {
.probe = pch_fivr_add, .probe = pch_fivr_add,
.remove = pch_fivr_remove, .remove = pch_fivr_remove,
.driver = { .driver = {
.name = "DPTF PCH FIVR", .name = "dptf_pch_fivr",
.acpi_match_table = pch_fivr_device_ids, .acpi_match_table = pch_fivr_device_ids,
}, },
}; };
......
...@@ -237,7 +237,7 @@ static struct platform_driver dptf_power_driver = { ...@@ -237,7 +237,7 @@ static struct platform_driver dptf_power_driver = {
.probe = dptf_power_add, .probe = dptf_power_add,
.remove = dptf_power_remove, .remove = dptf_power_remove,
.driver = { .driver = {
.name = "DPTF Platform Power", .name = "dptf_power",
.acpi_match_table = int3407_device_ids, .acpi_match_table = int3407_device_ids,
}, },
}; };
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/acpi.h> #include <linux/acpi.h>
#include <acpi/reboot.h> #include <acpi/reboot.h>
#include <linux/delay.h>
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
static void acpi_pci_reboot(struct acpi_generic_address *rr, u8 reset_value) static void acpi_pci_reboot(struct acpi_generic_address *rr, u8 reset_value)
...@@ -66,4 +67,14 @@ void acpi_reboot(void) ...@@ -66,4 +67,14 @@ void acpi_reboot(void)
acpi_reset(); acpi_reset();
break; break;
} }
/*
* Some platforms do not shut down immediately after writing to the
* ACPI reset register, and this results in racing with the
* subsequent reboot mechanism.
*
* The 15ms delay has been found to be long enough for the system
* to reboot on the affected platforms.
*/
mdelay(15);
} }
...@@ -104,7 +104,6 @@ acpi_extract_package(union acpi_object *package, ...@@ -104,7 +104,6 @@ acpi_extract_package(union acpi_object *package,
" [%c]\n", " [%c]\n",
i, format_string[i]); i, format_string[i]);
return AE_BAD_DATA; return AE_BAD_DATA;
break;
} }
break; break;
...@@ -129,7 +128,6 @@ acpi_extract_package(union acpi_object *package, ...@@ -129,7 +128,6 @@ acpi_extract_package(union acpi_object *package,
" expecting [%c]\n", " expecting [%c]\n",
i, format_string[i]); i, format_string[i]);
return AE_BAD_DATA; return AE_BAD_DATA;
break;
} }
break; break;
case ACPI_TYPE_LOCAL_REFERENCE: case ACPI_TYPE_LOCAL_REFERENCE:
...@@ -144,7 +142,6 @@ acpi_extract_package(union acpi_object *package, ...@@ -144,7 +142,6 @@ acpi_extract_package(union acpi_object *package,
" expecting [%c]\n", " expecting [%c]\n",
i, format_string[i]); i, format_string[i]);
return AE_BAD_DATA; return AE_BAD_DATA;
break;
} }
break; break;
...@@ -155,7 +152,6 @@ acpi_extract_package(union acpi_object *package, ...@@ -155,7 +152,6 @@ acpi_extract_package(union acpi_object *package,
i)); i));
/* TBD: handle nested packages... */ /* TBD: handle nested packages... */
return AE_SUPPORT; return AE_SUPPORT;
break;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment