Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a77fa85 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'watchdog-for-linus-v4.10' of...

Merge tag 'watchdog-for-linus-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull watchdog updates from Wim Van Sebroeck and Guenter Roeck:

 - new driver for Add Loongson1 SoC

 - minor cleanup and fixes in various drivers

* tag 'watchdog-for-linus-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
  watchdog: it87_wdt: add IT8620E ID
  watchdog: mpc8xxx: Remove unneeded linux/miscdevice.h include
  watchdog: octeon: Remove unneeded linux/miscdevice.h include
  watchdog: bcm2835_wdt: set WDOG_HW_RUNNING bit when appropriate
  watchdog: loongson1: Add Loongson1 SoC watchdog driver
  watchdog: cpwd: remove memory allocate failure message
  watchdog: da9062/61: watchdog driver
  intel-mid_wdt: Error code is just an integer
  intel-mid_wdt: make sure watchdog is not running at startup
  watchdog: mei_wdt: request stop on reboot to prevent false positive event
  watchdog: hpwdt: changed maintainer information
  watchdog: jz4740: Fix modular build
  watchdog: qcom: fix kernel panic due to external abort on non-linefetch
  watchdog: davinci: add support for deferred probing
  watchdog: meson: Remove unneeded platform MODULE_ALIAS
  watchdog: Standardize leading tabs and spaces in Kconfig file
  watchdog: max77620_wdt: fix module autoload
  watchdog: bcm7038_wdt: fix module autoload
parents 01e0d603 06716128
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -5735,7 +5735,7 @@ S: Maintained
F:	drivers/media/dvb-frontends/hd29l2*

HEWLETT PACKARD ENTERPRISE ILO NMI WATCHDOG DRIVER
M:	Brian Boylston <brian.boylston@hpe.com>
M:	Jimmy Vance <jimmy.vance@hpe.com>
S:	Supported
F:	Documentation/watchdog/hpwdt.txt
F:	drivers/watchdog/hpwdt.c
+28 −21
Original line number Diff line number Diff line
@@ -104,11 +104,11 @@ config DA9063_WATCHDOG
	  This driver can be built as a module. The module name is da9063_wdt.

config DA9062_WATCHDOG
	tristate "Dialog DA9062 Watchdog"
	tristate "Dialog DA9062/61 Watchdog"
	depends on MFD_DA9062
	select WATCHDOG_CORE
	help
	  Support for the watchdog in the DA9062 PMIC.
	  Support for the watchdog in the DA9062 and DA9061 PMICs.

	  This driver can be built as a module. The module name is da9062_wdt.

@@ -1008,8 +1008,8 @@ config IT87_WDT
	tristate "IT87 Watchdog Timer"
	depends on X86
	---help---
	  This is the driver for the hardware watchdog on the ITE IT8702,
	  IT8712, IT8716, IT8718, IT8720, IT8721, IT8726 and IT8728
	  This is the driver for the hardware watchdog on the ITE IT8620,
	  IT8702, IT8712, IT8716, IT8718, IT8720, IT8721, IT8726 and IT8728
	  Super I/O chips.

	  If the driver does not work, then make sure that the game port in
@@ -1514,6 +1514,13 @@ config LANTIQ_WDT
	help
	  Hardware driver for the Lantiq SoC Watchdog Timer.

config LOONGSON1_WDT
	tristate "Loongson1 SoC hardware watchdog"
	depends on MACH_LOONGSON32
	select WATCHDOG_CORE
	help
	  Hardware driver for the Loongson1 SoC Watchdog Timer.

config RALINK_WDT
	tristate "Ralink SoC watchdog"
	select WATCHDOG_CORE
+1 −0
Original line number Diff line number Diff line
@@ -163,6 +163,7 @@ obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
obj-$(CONFIG_OCTEON_WDT) += octeon-wdt.o
octeon-wdt-y := octeon-wdt-main.o octeon-wdt-nmi.o
obj-$(CONFIG_LANTIQ_WDT) += lantiq_wdt.o
obj-$(CONFIG_LOONGSON1_WDT) += loongson1_wdt.o
obj-$(CONFIG_RALINK_WDT) += rt2880_wdt.o
obj-$(CONFIG_IMGPDC_WDT) += imgpdc_wdt.o
obj-$(CONFIG_MT7621_WDT) += mt7621_wdt.o
+20 −0
Original line number Diff line number Diff line
@@ -55,6 +55,15 @@ struct bcm2835_wdt {
static unsigned int heartbeat;
static bool nowayout = WATCHDOG_NOWAYOUT;

static bool bcm2835_wdt_is_running(struct bcm2835_wdt *wdt)
{
	uint32_t cur;

	cur = readl(wdt->base + PM_RSTC);

	return !!(cur & PM_RSTC_WRCFG_FULL_RESET);
}

static int bcm2835_wdt_start(struct watchdog_device *wdog)
{
	struct bcm2835_wdt *wdt = watchdog_get_drvdata(wdog);
@@ -181,6 +190,17 @@ static int bcm2835_wdt_probe(struct platform_device *pdev)
	watchdog_init_timeout(&bcm2835_wdt_wdd, heartbeat, dev);
	watchdog_set_nowayout(&bcm2835_wdt_wdd, nowayout);
	bcm2835_wdt_wdd.parent = &pdev->dev;
	if (bcm2835_wdt_is_running(wdt)) {
		/*
		 * The currently active timeout value (set by the
		 * bootloader) may be different from the module
		 * heartbeat parameter or the value in device
		 * tree. But we just need to set WDOG_HW_RUNNING,
		 * because then the framework will "immediately" ping
		 * the device, updating the timeout.
		 */
		set_bit(WDOG_HW_RUNNING, &bcm2835_wdt_wdd.status);
	}
	err = watchdog_register_device(&bcm2835_wdt_wdd);
	if (err) {
		dev_err(dev, "Failed to register watchdog device");
+1 −0
Original line number Diff line number Diff line
@@ -216,6 +216,7 @@ static const struct of_device_id bcm7038_wdt_match[] = {
	{ .compatible = "brcm,bcm7038-wdt" },
	{},
};
MODULE_DEVICE_TABLE(of, bcm7038_wdt_match);

static struct platform_driver bcm7038_wdt_driver = {
	.probe		= bcm7038_wdt_probe,
Loading