linux/drivers/watchdog
Paolo Bonzini 1fccb73011 iTCO_wdt: all versions count down twice
The ICH9 is listed as having TCO v2, and indeed the behavior in the
datasheet corresponds to v2 (for example the NO_REBOOT flag is
accessible via the 16KiB-aligned Root Complex Base Address).

However, the TCO counts twice just like in v1; the documentation
of the SECOND_TO_STS bit says: "ICH9 sets this bit to 1 to indicate
that the TIMEOUT bit had been (or is currently) set and a second
timeout occurred before the TCO_RLD register was written. If this
bit is set and the NO_REBOOT config bit is 0, then the ICH9 will
reboot the system after the second timeout.  The same can be found
in the BayTrail (Atom E3800) datasheet, and even HOWTOs around
the Internet say that it will reboot after _twice_ the specified
heartbeat.

I did not find the Apollo Lake datasheet, but because v4/v5 has
a SECOND_TO_STS bit just like the previous version I'm enabling
this for Apollo Lake as well.

Cc: linux-watchdog@vger.kernel.org
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2017-05-19 10:42:11 +02:00
..
acquirewdt.c
advantechwdt.c
alim1535_wdt.c
alim7101_wdt.c
ar7_wdt.c
asm9260_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
aspeed_wdt.c watchdog: aspeed_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08:00
at32ap700x_wdt.c
at91rm9200_wdt.c Merge git://www.linux-watchdog.org/linux-watchdog 2015-09-11 15:12:59 -07:00
at91sam9_wdt.c watchdog: at91sam9: get and use slow clock 2015-09-09 21:38:52 +02:00
at91sam9_wdt.h watchdog: add a driver to support SAMA5D4 watchdog timer 2015-09-09 21:38:29 +02:00
ath79_wdt.c mips: separate extable.h, switch module.h to it 2016-10-05 18:36:18 -04:00
atlas7_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
bcm47xx_wdt.c watchdog: bcm47xx_wdt: Don't validate platform data on remove 2017-02-24 14:00:23 -08:00
bcm63xx_wdt.c
bcm2835_wdt.c scripts/spelling.txt: add "partiton" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
bcm7038_wdt.c watchdog: constify watchdog_info structures 2017-02-24 14:00:23 -08:00
bcm_kona_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
bfin_wdt.c
booke_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
cadence_wdt.c watchdog: cadence_wdt: fix timeout setting 2017-05-18 18:51:38 +02:00
coh901327_wdt.c watchdog: coh901327_wdt: Use dev variable instead of pdev->dev 2017-02-24 14:00:23 -08:00
cpu5wdt.c Annotate hardware config module parameters in drivers/watchdog/ 2017-04-20 12:02:32 +01:00
cpwd.c watchdog: cpwd: remove memory allocate failure message 2016-12-16 06:53:55 -08:00
da9052_wdt.c watchdog: da9052_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08:00
da9055_wdt.c watchdog: da9055_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08:00
da9062_wdt.c watchdog: da9062_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08:00
da9063_wdt.c watchdog: da9063_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08:00
davinci_wdt.c watchdog: davinci: add support for deferred probing 2016-12-16 06:53:53 -08:00
diag288_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
digicolor_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
dw_wdt.c watchdog: dw_wdt: Use watchdog core to install restart handler 2017-02-24 14:00:23 -08:00
ebc-c384_wdt.c watchdog: ebc-c384_wdt: Utilize devm_ functions in driver probe callback 2017-02-24 14:00:23 -08:00
ep93xx_wdt.c watchdog: ep93xx_wdt: cleanup and let the core handle the heartbeat 2017-02-24 14:00:23 -08:00
eurotechwdt.c Annotate hardware config module parameters in drivers/watchdog/ 2017-04-20 12:02:32 +01:00
f71808e_wdt.c watchdog: f71808e_wdt: Add F81866 support 2016-07-17 21:00:55 +02:00
gef_wdt.c watchdog: Fix module autoload for OF platform driver 2015-09-28 10:56:01 +02:00
gemini_wdt.c watchdog: add driver for Cortina Gemini watchdog 2017-02-24 14:00:23 -08:00
geodewdt.c
gpio_wdt.c watchdog: gpio_wdt: Fix missing platform_set_drvdata() in gpio_wdt_probe() 2016-07-27 10:47:43 +02:00
hpwdt.c drivers/watchdog/hpwdt.c: use set_memory.h header 2017-05-08 17:15:14 -07:00
i6300esb.c
ib700wdt.c
ibmasr.c
ie6xx_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
imgpdc_wdt.c watchdog: constify watchdog_info structures 2017-02-24 14:00:23 -08:00
imx2_wdt.c watchdog: imx2_wdt: add pretimeout function support 2016-10-08 10:27:30 +02:00
indydog.c
intel_scu_watchdog.c
intel_scu_watchdog.h
intel-mid_wdt.c watchdog: intel-mid_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08:00
iop_wdt.c
it87_wdt.c watchdog: it87_wdt: add IT8620E ID 2016-12-16 06:53:56 -08:00
it8712f_wdt.c
iTCO_vendor_support.c
iTCO_vendor.h
iTCO_wdt.c iTCO_wdt: all versions count down twice 2017-05-19 10:42:11 +02:00
ixp4xx_wdt.c
jz4740_wdt.c watchdog: jz4740: Fix modular build 2016-12-16 06:53:54 -08:00
Kconfig watchdog: orion: fix compile-test dependencies 2017-05-18 18:51:15 +02:00
kempld_wdt.c watchdog: kempld: fix gcc-4.3 build 2017-03-01 06:15:10 -08:00
ks8695_wdt.c char: make misc_deregister a void function 2015-08-05 10:35:49 -07:00
lantiq_wdt.c watchdog: update my email address 2017-02-24 14:00:23 -08:00
loongson1_wdt.c watchdog: loongson1: Add Loongson1 SoC watchdog driver 2016-12-16 06:53:55 -08:00
lpc18xx_wdt.c watchdog: constify watchdog_info structures 2017-02-24 14:00:23 -08:00
m54xx_wdt.c
machzwd.c
Makefile watchdog: zx2967: add watchdog controller driver for ZTE's zx2967 family 2017-02-24 14:00:23 -08:00
max63xx_wdt.c watchdog: max63xx: make module's license marker match the header 2016-01-31 16:51:56 +01:00
max77620_wdt.c watchdog: max77620_wdt: fix module autoload 2016-12-16 06:53:53 -08:00
mei_wdt.c Watchdog updates for v4.10 2016-12-24 11:27:45 -08:00
mena21_wdt.c watchdog: mena21_wdt: Convert to use device managed functions and other improvements 2017-02-24 14:00:23 -08:00
menf21bmc_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
meson_gxbb_wdt.c watchdog: meson: Remove unneeded platform MODULE_ALIAS 2016-12-16 06:53:53 -08:00
meson_wdt.c watchdog: meson_wdt: Convert to use device managed functions and other improvements 2017-02-24 14:00:23 -08:00
mixcomwd.c
moxart_wdt.c watchdog: Add 'action' and 'data' parameters to restart handler callback 2016-03-01 15:36:35 +01:00
mpc8xxx_wdt.c watchdog: mpc8xxx: Remove unneeded linux/miscdevice.h include 2016-12-16 06:53:55 -08:00
mt7621_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
mtk_wdt.c watchdog: Add 'action' and 'data' parameters to restart handler callback 2016-03-01 15:36:35 +01:00
mtx-1_wdt.c
mv64x60_wdt.c
ni903x_wdt.c watchdog: ni903x_wdt: Add NI 903x/913x watchdog driver 2016-03-01 16:25:39 +01:00
nic7018_wdt.c watchdog: nic7018_wdt: Add NIC7018 watchdog driver 2017-02-24 14:00:23 -08:00
nuc900_wdt.c
nv_tco.c watchdog: add support for MCP78S chipset in nv_tco 2016-07-17 21:04:13 +02:00
nv_tco.h
octeon-wdt-main.c Watchdog updates for v4.10 2016-12-24 11:27:45 -08:00
octeon-wdt-nmi.S
of_xilinx_wdt.c watchdog: xilinx: Add clock support 2016-09-23 22:04:09 +02:00
omap_wdt.c watchdog: omap: don't disable the timer when it should be enabled early 2015-12-27 21:09:40 +01:00
omap_wdt.h watchdog: omap_wdt: implement get_timeleft 2015-06-22 15:54:35 +02:00
orion_wdt.c watchdog: orion: fix spelling mistake: "harcoded" -> "hardcoded" 2017-02-24 14:00:23 -08:00
pc87413_wdt.c Annotate hardware config module parameters in drivers/watchdog/ 2017-04-20 12:02:32 +01:00
pcwd_pci.c
pcwd_usb.c watchdog: pcwd_usb: fix NULL-deref at probe 2017-05-18 18:51:34 +02:00
pcwd.c watchdog: pcwd: Utilize the module_isa_driver macro 2016-07-17 20:59:23 +02:00
pic32-dmt.c watchdog: pic32-dmt: Remove .owner field for driver 2016-07-25 12:02:32 +02:00
pic32-wdt.c watchdog: pic32-wdt: Fix return value check in pic32_wdt_drv_probe() 2016-07-25 12:02:43 +02:00
pika_wdt.c watchdog: pika_wdt: add __ro_after_init to ident 2017-02-24 14:00:23 -08:00
pnx833x_wdt.c
pnx4008_wdt.c watchdog: pnx4008: restart: support "cmd" from userspace 2016-03-16 21:09:42 +01:00
pretimeout_noop.c watchdog: pretimeout: add noop pretimeout governor 2016-10-08 10:27:13 +02:00
pretimeout_panic.c watchdog: pretimeout: add panic pretimeout governor 2016-10-08 10:27:17 +02:00
qcom-wdt.c watchdog: qcom: fix kernel panic due to external abort on non-linefetch 2016-12-16 06:53:54 -08:00
rc32434_wdt.c watchdog: rc32434_wdt: fix ioctl error handling 2016-03-01 15:29:42 +01:00
rdc321x_wdt.c
renesas_wdt.c watchdog: renesas-wdt: add driver 2016-05-14 18:15:40 +02:00
retu_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
riowd.c
rn5t618_wdt.c watchdog: constify watchdog_info structures 2017-02-24 14:00:23 -08:00
rt2880_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
s3c2410_wdt.c watchdog: s3c2410: Add prefix to local function 2017-02-24 14:00:23 -08:00
sa1100_wdt.c watchdog: sa11x0/pxa: fix error path of driver initialization 2017-02-24 14:00:23 -08:00
sama5d4_wdt.c watchdog: sama5d4: fix race condition 2017-05-18 18:51:24 +02:00
sb_wdog.c
sbc60xxwdt.c
sbc7240_wdt.c
sbc8360.c
sbc_epx_c3.c
sbc_fitpc2_wdt.c
sbsa_gwdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
sc520_wdt.c
sc1200wdt.c Annotate hardware config module parameters in drivers/watchdog/ 2017-04-20 12:02:32 +01:00
sch311x_wdt.c
scx200_wdt.c
shwdt.c watchdog: shwdt: Use setup_timer() 2016-05-14 18:25:56 +02:00
sirfsoc_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
smsc37b787_wdt.c
softdog.c watchdog: softdog: fire watchdog even if softirqs do not get to run 2017-03-01 06:15:10 -08:00
sp805_wdt.c watchdog: sp805: ping fails to abort wdt reset 2016-01-31 16:52:08 +01:00
sp5100_tco.c watchdog: sp5100_tco: properly check for new register layouts 2016-05-14 16:16:04 +02:00
sp5100_tco.h
st_lpc_wdt.c watchdog: st_wdt: Remove support for obsolete platforms 2016-09-24 08:59:49 +02:00
stmp3xxx_rtc_wdt.c watchdog: stmp3xxx: Remove unused variables 2016-01-11 21:51:28 +01:00
sun4v_wdt.c watchdog: constify watchdog_ops structures 2017-02-24 14:00:23 -08:00
sunxi_wdt.c watchdog: sunxi_wdt: Convert to use device managed functions and other improvements 2017-02-24 14:00:23 -08:00
tangox_wdt.c watchdog: tangox: Use watchdog core to install restart handler 2017-02-24 14:00:23 -08:00
tegra_wdt.c watchdog: tegra_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08:00
ts72xx_wdt.c watchdog: ts72xx_wdt: convert driver to watchdog core 2017-02-24 14:00:23 -08:00
ts4800_wdt.c watchdog: ts4800: add driver for TS-4800 watchdog 2015-12-28 22:29:35 +01:00
twl4030_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
txx9wdt.c watchdog: txx9wdt: Add missing clock (un)prepare calls for CCF 2016-09-23 22:36:32 +02:00
ux500_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
via_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
w83627hf_wdt.c watchdog: constify watchdog_info structures 2017-02-24 14:00:23 -08:00
w83877f_wdt.c
w83977f_wdt.c watchdog: w83977f_wdt: underflow in wdt_set_timeout() 2015-11-23 08:59:30 +01:00
wafer5823wdt.c
watchdog_core.c watchdog: core: Fix devres_alloc() allocation size 2016-09-23 08:37:14 +02:00
watchdog_core.h watchdog: Create watchdog device in watchdog_dev.c 2015-12-29 20:36:01 +01:00
watchdog_dev.c watchdog: Introduce watchdog_stop_on_unregister helper 2017-02-24 14:00:23 -08:00
watchdog_pretimeout.c watchdog: pretimeout: add pretimeout_available_governors attribute 2016-10-08 10:27:24 +02:00
watchdog_pretimeout.h watchdog: pretimeout: add pretimeout_available_governors attribute 2016-10-08 10:27:24 +02:00
wd501p.h
wdat_wdt.c watchdog: wdat_wdt: Ping the watchdog on resume 2016-10-21 01:28:33 +02:00
wdrtas.c
wdt285.c
wdt977.c
wdt_pci.c watchdog: wdt_pci: fix build error if define SOFTWARE_REBOOT 2017-05-18 18:51:44 +02:00
wdt.c Annotate hardware config module parameters in drivers/watchdog/ 2017-04-20 12:02:32 +01:00
wm831x_wdt.c watchdog: wm831x_wdt: Convert to use device managed functions 2017-02-24 14:00:23 -08:00
wm8350_wdt.c Watchdog: Fix parent of watchdog_devices 2015-09-09 21:39:22 +02:00
xen_wdt.c
ziirave_wdt.c watchdog: ziirave_wdt: Add support to upload the firmware. 2016-09-23 22:34:24 +02:00
zx2967_wdt.c watchdog: zx2967: add watchdog controller driver for ZTE's zx2967 family 2017-02-24 14:00:23 -08:00