mfd: lpc_ich: Do not create iTCO watchdog when WDAT table exists
authorMika Westerberg <mika.westerberg@linux.intel.com>
Tue, 20 Sep 2016 12:30:52 +0000 (15:30 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 28 Sep 2016 21:07:20 +0000 (23:07 +0200)
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 ACPI WDAT table.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/mfd/lpc_ich.c

index bd3aa45783460e983add77ab46d32124f46c37a0..c8dee47b45d96f6e4aca9862cfaad7555de41082 100644 (file)
@@ -984,6 +984,10 @@ static int lpc_ich_init_wdt(struct pci_dev *dev)
        int ret;
        struct resource *res;
 
+       /* If we have ACPI based watchdog use that instead */
+       if (acpi_has_watchdog())
+               return -ENODEV;
+
        /* Setup power management base register */
        pci_read_config_dword(dev, priv->abase, &base_addr_cfg);
        base_addr = base_addr_cfg & 0x0000ff80;