Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://www.linux-watchdog.org/linux-watchdog

Pull watchdog fixes from Wim Van Sebroeck:
- a null pointer dereference fix for omap_wdt
- some clock related fixes for pnx4008
- an underflow fix in wdt_set_timeout() for w83977f_wdt
- restart fix for tegra wdt
- Kconfig change to support Freescale Layerscape platforms
- fix for stopping the mtk_wdt watchdog

* git://www.linux-watchdog.org/linux-watchdog:
watchdog: mtk_wdt: Use MODE_KEY when stopping the watchdog
watchdog: Add support for Freescale Layerscape platforms
watchdog: tegra: Stop watchdog first if restarting
watchdog: w83977f_wdt: underflow in wdt_set_timeout()
watchdog: pnx4008: make global wdt_clk static
watchdog: pnx4008: fix warnings caused by enabling unprepared clock
watchdog: omap_wdt: fix null pointer dereference

+11 -8
+1 -1
drivers/watchdog/Kconfig
··· 446 446 447 447 config IMX2_WDT 448 448 tristate "IMX2+ Watchdog" 449 - depends on ARCH_MXC 449 + depends on ARCH_MXC || ARCH_LAYERSCAPE 450 450 select REGMAP_MMIO 451 451 select WATCHDOG_CORE 452 452 help
+1
drivers/watchdog/mtk_wdt.c
··· 123 123 124 124 reg = readl(wdt_base + WDT_MODE); 125 125 reg &= ~WDT_MODE_EN; 126 + reg |= WDT_MODE_KEY; 126 127 iowrite32(reg, wdt_base + WDT_MODE); 127 128 128 129 return 0;
+1 -1
drivers/watchdog/omap_wdt.c
··· 205 205 206 206 static unsigned int omap_wdt_get_timeleft(struct watchdog_device *wdog) 207 207 { 208 - struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); 208 + struct omap_wdt_dev *wdev = to_omap_wdt_dev(wdog); 209 209 void __iomem *base = wdev->base; 210 210 u32 value; 211 211
+4 -4
drivers/watchdog/pnx4008_wdt.c
··· 80 80 81 81 static DEFINE_SPINLOCK(io_lock); 82 82 static void __iomem *wdt_base; 83 - struct clk *wdt_clk; 83 + static struct clk *wdt_clk; 84 84 85 85 static int pnx4008_wdt_start(struct watchdog_device *wdd) 86 86 { ··· 161 161 if (IS_ERR(wdt_clk)) 162 162 return PTR_ERR(wdt_clk); 163 163 164 - ret = clk_enable(wdt_clk); 164 + ret = clk_prepare_enable(wdt_clk); 165 165 if (ret) 166 166 return ret; 167 167 ··· 184 184 return 0; 185 185 186 186 disable_clk: 187 - clk_disable(wdt_clk); 187 + clk_disable_unprepare(wdt_clk); 188 188 return ret; 189 189 } 190 190 ··· 192 192 { 193 193 watchdog_unregister_device(&pnx4008_wdd); 194 194 195 - clk_disable(wdt_clk); 195 + clk_disable_unprepare(wdt_clk); 196 196 197 197 return 0; 198 198 }
+3 -1
drivers/watchdog/tegra_wdt.c
··· 140 140 { 141 141 wdd->timeout = timeout; 142 142 143 - if (watchdog_active(wdd)) 143 + if (watchdog_active(wdd)) { 144 + tegra_wdt_stop(wdd); 144 145 return tegra_wdt_start(wdd); 146 + } 145 147 146 148 return 0; 147 149 }
+1 -1
drivers/watchdog/w83977f_wdt.c
··· 224 224 225 225 static int wdt_set_timeout(int t) 226 226 { 227 - int tmrval; 227 + unsigned int tmrval; 228 228 229 229 /* 230 230 * Convert seconds to watchdog counter time units, rounding up.