On Tuesday, September 20, 2016 03:30:50 PM Mika Westerberg wrote: > Hi, > > The WDAT (Watchdog Action Table) is a special ACPI table introduced by > Microsoft [1] that abstracts the watchdog hardware from the OS. Windows > uses this table for its watchdog implementation instead of a native iTCO > driver. > > Microsoft re-licensed the WDAT specification to be under Microsoft > Community Promise license [2] so it should be fine to use it in Linux. > > This series brings WDAT table support to Linux. > > When the driver is enabled and we find out that there is a WDAT table, the > driver will take over the native iTCO watchdog driver. Main advantage in > this is that we do not need to change the native iTCO driver whenever the > hardware changes. For example in Skylake iTCO moved to sit behind SMBus and > the NO_REBOOT bit was hidden behind P2SB (Primary to Sideband). In addition > we can expect this to be tested much better by OEMs who typically validate > that Windows works fine on their hardware/firmware. > > Patch [1/4] adds ACPI enumeration support and the driver itself. It also > introduces acpi_has_watchdog() which can be used to check if we should use > ACPI watchdog or native one. > > Patches [2-4/4] prevent creation of the native iTCO platform device if we > detect that the ACPI watchdog (WDAT) should be used instead. > > The previous version of the series can be found in [3]. > > Changes from v1: > * Moved wdat_wdt.c to live under drivers/watchdog > * Added checks for timer_period, min_count and max_count > * Use min_hw_heartbeat_ms and max_hw_heartbeat_ms instead of > min/max_timeout > * Instead of stopping the watchdog set WDOG_HW_RUNNING > * Switched to use devm_watchdog_register_device() and dropped > wdat_wdt_remove() > * Do not ping watchdog in resume() > * Added review tag from Guenter Roeck to patches [2-4/4]. > > [1] http://msdn.microsoft.com/en-us/windows/hardware/gg463320.aspx > [2] https://msdn.microsoft.com/en-us/openspecifications/dn646766.aspx > [3] http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1230607.html > > Mika Westerberg (4): > ACPI / watchdog: Add support for WDAT hardware watchdog > mfd: lpc_ich: Do not create iTCO watchdog when WDAT table exists > i2c: i801: Do not create iTCO watchdog when WDAT table exists > platform/x86: intel_pmc_ipc: Do not create iTCO watchdog when WDAT > table exists > > drivers/acpi/Kconfig | 3 + > drivers/acpi/Makefile | 1 + > drivers/acpi/acpi_watchdog.c | 123 ++++++++ > drivers/acpi/internal.h | 10 + > drivers/acpi/scan.c | 1 + > drivers/i2c/busses/i2c-i801.c | 4 +- > drivers/mfd/lpc_ich.c | 4 + > drivers/platform/x86/intel_pmc_ipc.c | 12 +- > drivers/watchdog/Kconfig | 13 + > drivers/watchdog/Makefile | 1 + > drivers/watchdog/wdat_wdt.c | 525 > +++++++++++++++++++++++++++++++++++ > include/linux/acpi.h | 6 + > 12 files changed, 698 insertions(+), 5 deletions(-) > create mode 100644 drivers/acpi/acpi_watchdog.c > create mode 100644 drivers/watchdog/wdat_wdt.c
I'm queing up this series for 4.9. Please let me know if there are any objections. Thanks, Rafael