From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759326AbcIMPXy (ORCPT ); Tue, 13 Sep 2016 11:23:54 -0400 Received: from mga06.intel.com ([134.134.136.31]:37037 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758565AbcIMPXm (ORCPT ); Tue, 13 Sep 2016 11:23:42 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,329,1470726000"; d="scan'208";a="1049682792" From: Mika Westerberg To: "Rafael J. Wysocki" Cc: Len Brown , Jean Delvare , Wolfram Sang , Peter Tyser , Lee Jones , Zha Qipeng , Darren Hart , Wim Van Sebroeck , Guenter Roeck , Mika Westerberg , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 0/4] ACPI: Add support for WDAT (Watchdog Action Table) Date: Tue, 13 Sep 2016 18:23:32 +0300 Message-Id: <20160913152336.75405-1-mika.westerberg@linux.intel.com> X-Mailer: git-send-email 2.9.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi all, 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. [1] http://msdn.microsoft.com/en-us/windows/hardware/gg463320.aspx [2] https://msdn.microsoft.com/en-us/openspecifications/dn646766.aspx 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 | 16 ++ drivers/acpi/Makefile | 2 + drivers/acpi/acpi_watchdog.c | 123 ++++++++ drivers/acpi/internal.h | 10 + drivers/acpi/scan.c | 1 + drivers/acpi/wdat_wdt.c | 524 +++++++++++++++++++++++++++++++++++ drivers/i2c/busses/i2c-i801.c | 4 +- drivers/mfd/lpc_ich.c | 4 + drivers/platform/x86/intel_pmc_ipc.c | 12 +- include/linux/acpi.h | 6 + 10 files changed, 697 insertions(+), 5 deletions(-) create mode 100644 drivers/acpi/acpi_watchdog.c create mode 100644 drivers/acpi/wdat_wdt.c -- 2.9.3