linux-stable/drivers/watchdog
Linus Walleij 580b8e2899 watchdog: ixp4xx: Rewrite driver to use core
This rewrites the IXP4xx watchdog driver as follows:

- Spawn the watchdog driver as a platform device from the timer
  driver. It's one device in the hardware, and the fact that
  Linux splits the handling into two different devices is
  a Linux pecularity, and thus it becomes a Linux pecularity
  to spawn a separate watchdog driver.

- Spawn the watchdog driver from the timer driver at probe().
  This is well after the timer driver as actually registered and
  started and we know the register base is available.

- Instead of looping back callbacks to the timer drivers for all
  watchdog calls, pass the register base to the watchdog driver
  and manage the registers there. The two drivers aren't even
  interested in the same register so the spinlock is totally
  surplus, delete it.

- Replace pretty much all of the content in the watchdog driver
  with a simple, modern watchdog driver utilizing the watchdog
  core instead of registering its own misc device and ioctl()
  handling.

- Drop module parameters as the same already exist in the
  watchdog core.

What remains is a slim elegant (IMO) watchdog driver using the
watchdog core, spawning from device tree or boardfile alike.

Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20210726121214.2572836-1-linus.walleij@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
2021-08-22 10:28:12 +02:00
..
acquirewdt.c
advantechwdt.c
alim1535_wdt.c
alim7101_wdt.c
ar7_wdt.c
arm_smc_wdt.c
armada_37xx_wdt.c treewide: change my e-mail address, fix my name 2021-04-09 14:54:23 -07:00
asm9260_wdt.c
aspeed_wdt.c watchdog: aspeed: fix hardware timeout calculation 2021-06-21 08:49:04 +02:00
at91rm9200_wdt.c
at91sam9_wdt.c
at91sam9_wdt.h
ath79_wdt.c
bcm47xx_wdt.c
bcm63xx_wdt.c
bcm2835_wdt.c watchdog: bcm2835_wdt: consider system-power-controller property 2021-08-22 10:28:08 +02:00
bcm7038_wdt.c watchdog: bcm7038_wdt: add big endian support 2021-06-21 08:49:09 +02:00
bcm_kona_wdt.c
bd9576_wdt.c wdt: Support wdt on ROHM BD9576MUF and BD9573MUF 2021-03-10 10:58:44 +00:00
booke_wdt.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
cadence_wdt.c watchdog: cadence: Simplify with dev_err_probe() 2020-10-14 15:02:24 +02:00
cpu5wdt.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
cpwd.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
da9052_wdt.c
da9055_wdt.c
da9062_wdt.c
da9063_wdt.c
davinci_wdt.c watchdog: davinci: Simplify with dev_err_probe() 2020-10-14 15:02:25 +02:00
diag288_wdt.c watchdog: diag288_wdt: Remove redundant assignment 2021-06-21 08:49:14 +02:00
digicolor_wdt.c
dw_wdt.c watchdog: dw_wdt: Fix duplicate included linux/kernel.h 2021-06-21 08:48:59 +02:00
ebc-c384_wdt.c
ep93xx_wdt.c
eurotechwdt.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
f71808e_wdt.c
ftwdt010_wdt.c
gef_wdt.c
geodewdt.c watchdog: geodewdt: remove unneeded break 2020-12-13 16:17:41 +01:00
gpio_wdt.c
hpwdt.c watchdog/hpwdt: New PCI IDs 2021-06-21 08:49:00 +02:00
i6300esb.c
ib700wdt.c
ibmasr.c
ie6xx_wdt.c
imgpdc_wdt.c
imx2_wdt.c watchdog: imx2_wdg: notify wdog core to stop ping worker on suspend 2021-08-22 10:28:08 +02:00
imx7ulp_wdt.c watchdog: imx7ulp: Watchdog should continue running for wait/stop mode 2020-10-14 15:02:26 +02:00
imx_sc_wdt.c watchdog: imx_sc_wdt: fix pretimeout 2021-06-21 08:49:14 +02:00
indydog.c
intel-mid_wdt.c watchdog: intel-mid_wdt: Postpone IRQ handler registration till SCU is ready 2021-01-25 20:05:32 +02:00
iop_wdt.c
it87_wdt.c watchdog: it87_wdt: remove useless function 2021-06-21 08:49:04 +02:00
it8712f_wdt.c watchdog: it8712f_wdt: remove definition of DEBUG 2021-02-07 14:41:18 +01:00
iTCO_vendor.h
iTCO_vendor_support.c
iTCO_wdt.c watchdog: iTCO_wdt: Fix detection of SMI-off case 2021-08-22 10:28:09 +02:00
ixp4xx_wdt.c watchdog: ixp4xx: Rewrite driver to use core 2021-08-22 10:28:12 +02:00
jz4740_wdt.c watchdog: jz4740: Fix return value check in jz4740_wdt_probe() 2021-06-21 08:49:11 +02:00
Kconfig watchdog: ixp4xx: Rewrite driver to use core 2021-08-22 10:28:12 +02:00
keembay_wdt.c watchdog: keembay: Typo corrections and other blank operations 2021-06-21 08:48:57 +02:00
kempld_wdt.c
lantiq_wdt.c
loongson1_wdt.c
lpc18xx_wdt.c watchdog: Fix possible use-after-free by calling del_timer_sync() 2021-06-21 08:49:03 +02:00
m54xx_wdt.c
machzwd.c watchdog: Fix fall-through warnings for Clang 2021-05-17 18:56:23 -05:00
Makefile watchdog: bd70528 drop bd70528 support 2021-08-22 10:28:06 +02:00
max63xx_wdt.c watchdog: max63xx_wdt: Add device tree probing 2021-08-22 10:28:11 +02:00
max77620_wdt.c
mei_wdt.c mei: fix kdoc in the driver 2021-06-22 12:40:31 +02:00
mena21_wdt.c
menf21bmc_wdt.c
menz69_wdt.c
meson_gxbb_wdt.c
meson_wdt.c watchdog: meson_wdt: Use device_get_match_data() helper 2021-06-21 08:49:05 +02:00
mixcomwd.c
mlx_wdt.c
moxart_wdt.c
mpc8xxx_wdt.c watchdog: mpc8xxx_wdt: Constify static struct watchdog_ops 2021-08-22 10:28:10 +02:00
msc313e_wdt.c watchdog: Add Mstar MSC313e WDT driver 2021-06-21 08:49:19 +02:00
mt7621_wdt.c
mtk_wdt.c watchdog: mediatek: mt8195: add wdt support 2021-08-22 10:28:11 +02:00
mtx-1_wdt.c watchdog: mtx-1: drop au1000.h header file 2021-06-21 08:48:58 +02:00
ni903x_wdt.c
nic7018_wdt.c
npcm_wdt.c watchdog: npcm: Add support for WPCM450 2021-04-09 14:11:24 +09:30
nv_tco.c
nv_tco.h
octeon-wdt-main.c linux-watchdog 5.14-rc1 tag 2021-07-07 12:57:46 -07:00
octeon-wdt-nmi.S
of_xilinx_wdt.c watchdog: of_xilinx_wdt: Skip printing pointer value 2021-06-21 08:49:08 +02:00
omap_wdt.c
omap_wdt.h
orion_wdt.c watchdog: Fix a typo in the file orion_wdt.c 2021-06-21 08:49:12 +02:00
pc87413_wdt.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
pcwd.c isa: Make the remove callback for isa drivers return void 2021-01-26 07:42:27 +01:00
pcwd_pci.c
pcwd_usb.c watchdog: pcwd_usb: Avoid GFP_ATOMIC where it is not needed 2020-10-14 15:02:22 +02:00
pic32-dmt.c
pic32-wdt.c
pika_wdt.c
pm8916_wdt.c
pnx4008_wdt.c
pretimeout_noop.c
pretimeout_panic.c
qcom-wdt.c watchdog: qcom: Move suspend/resume to suspend_late/resume_early 2021-06-21 08:49:12 +02:00
rave-sp-wdt.c
rc32434_wdt.c
rdc321x_wdt.c drivers: watchdog: rdc321x_wdt: Fix race condition bugs 2020-10-14 15:02:21 +02:00
renesas_wdt.c watchdog: renesas_wdt: add grace period before rebooting 2021-02-07 14:41:22 +01:00
retu_wdt.c watchdog: retu_wdt: Clean-up by using managed work init 2021-03-23 15:22:40 +01:00
riowd.c module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
rn5t618_wdt.c
rt2880_wdt.c
rtd119x_wdt.c
rti_wdt.c watchdog: rti-wdt: fix reference leak in rti_wdt_probe 2020-12-13 16:17:40 +01:00
rza_wdt.c
s3c2410_wdt.c
sa1100_wdt.c
sama5d4_wdt.c watchdog: sama5d4_wdt: add support for sama7g5-wdt 2021-06-21 08:49:16 +02:00
sb_wdog.c
sbc60xxwdt.c watchdog: Fix possible use-after-free in wdt_startup() 2021-06-21 08:48:59 +02:00
sbc7240_wdt.c
sbc8360.c
sbc_epx_c3.c
sbc_fitpc2_wdt.c watchdog: sbc_fitpc2_wdt: add __user annotations 2020-12-13 16:17:41 +01:00
sbsa_gwdt.c watchdog: sbsa: Support architecture version 1 2021-06-21 08:48:58 +02:00
sc520_wdt.c watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff() 2021-06-21 08:49:02 +02:00
sc1200wdt.c
sch311x_wdt.c
scx200_wdt.c
shwdt.c
sl28cpld_wdt.c watchdog: sl28cpld_wdt: Constify static struct watchdog_ops 2021-08-22 10:28:09 +02:00
smsc37b787_wdt.c
softdog.c
sp805_wdt.c watchdog: sp805: Fix kernel doc description 2021-06-21 08:49:01 +02:00
sp5100_tco.c watchdog: sp5100_tco: Enable watchdog on Family 17h devices if disabled 2020-10-14 15:22:57 +02:00
sp5100_tco.h watchdog: sp5100: Fix definition of EFCH_PM_DECODEEN3 2020-10-14 15:22:57 +02:00
sprd_wdt.c watchdog: sprd: change to use usleep_range() instead of busy loop 2020-12-13 16:17:39 +01:00
st_lpc_wdt.c
stm32_iwdg.c watchdog: stm32_iwdg: don't print an error on probe deferral 2020-12-13 16:17:39 +01:00
stmp3xxx_rtc_wdt.c
stpmic1_wdt.c
sun4v_wdt.c
sunxi_wdt.c
tegra_wdt.c
tqmx86_wdt.c watchdog: tqmx86: Constify static struct watchdog_ops 2021-08-22 10:28:10 +02:00
ts72xx_wdt.c
ts4800_wdt.c
twl4030_wdt.c
txx9wdt.c
uniphier_wdt.c
ux500_wdt.c
via_wdt.c
visconti_wdt.c watchdog: Add Toshiba Visconti watchdog driver 2020-10-14 15:22:58 +02:00
w83627hf_wdt.c
w83877f_wdt.c watchdog: Fix possible use-after-free by calling del_timer_sync() 2021-06-21 08:49:03 +02:00
w83977f_wdt.c
wafer5823wdt.c
watchdog_core.c watchdog: introduce watchdog_dev_suspend/resume 2021-08-22 10:28:08 +02:00
watchdog_core.h watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_dev.c watchdog: Start watchdog in watchdog_set_last_hw_keepalive only if appropriate 2021-08-22 10:28:12 +02:00
watchdog_hrtimer_pretimeout.c watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_pretimeout.c watchdog: Add hrtimer-based pretimeout feature 2021-06-21 08:49:13 +02:00
watchdog_pretimeout.h
wd501p.h
wdat_wdt.c watchdog: wdat_wdg: fix typo 2021-06-21 08:49:09 +02:00
wdrtas.c
wdt.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
wdt285.c
wdt977.c
wdt_pci.c watchdog: fix syntactic kernel-doc issues 2021-06-21 08:49:09 +02:00
wm831x_wdt.c
wm8350_wdt.c
xen_wdt.c
ziirave_wdt.c watchdog: ziirave_wdt: Remove VERSION_FMT defines and add sysfs newlines 2021-06-21 08:49:15 +02:00