aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/platform/x86/intel_pmc_ipc.c
diff options
context:
space:
mode:
authorMika Westerberg <mika.westerberg@linux.intel.com>2016-09-20 08:30:54 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-09-28 17:08:08 -0400
commitbba6529ea039925ed422696be5d52677bd16643c (patch)
tree22498f3ca01ce681e19c58c68193fc6e6e6f8c0f /drivers/platform/x86/intel_pmc_ipc.c
parent1f6dbb022bd477239bfbb52ef868f694b5f1d36a (diff)
platform/x86: intel_pmc_ipc: Do not create iTCO watchdog when WDAT table exists
ACPI WDAT table is the preferred way to use hardware watchdog over the native iTCO_wdt. Windows only uses this table for its hardware watchdog implementation so we should be relatively safe to trust it has been validated by OEMs. Prevent iTCO watchdog creation if we detect that there is an ACPI WDAT table. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/platform/x86/intel_pmc_ipc.c')
-rw-r--r--drivers/platform/x86/intel_pmc_ipc.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/platform/x86/intel_pmc_ipc.c b/drivers/platform/x86/intel_pmc_ipc.c
index b86e1bcaa055..a511d518206b 100644
--- a/drivers/platform/x86/intel_pmc_ipc.c
+++ b/drivers/platform/x86/intel_pmc_ipc.c
@@ -651,11 +651,15 @@ static int ipc_create_pmc_devices(void)
651{ 651{
652 int ret; 652 int ret;
653 653
654 ret = ipc_create_tco_device(); 654 /* If we have ACPI based watchdog use that instead */
655 if (ret) { 655 if (!acpi_has_watchdog()) {
656 dev_err(ipcdev.dev, "Failed to add tco platform device\n"); 656 ret = ipc_create_tco_device();
657 return ret; 657 if (ret) {
658 dev_err(ipcdev.dev, "Failed to add tco platform device\n");
659 return ret;
660 }
658 } 661 }
662
659 ret = ipc_create_punit_device(); 663 ret = ipc_create_punit_device();
660 if (ret) { 664 if (ret) {
661 dev_err(ipcdev.dev, "Failed to add punit platform device\n"); 665 dev_err(ipcdev.dev, "Failed to add punit platform device\n");