linux-sg2042/drivers/watchdog
Lokesh Vutla 41814eed41 Watchdog: OMAP: Fix the runtime pm code to avoid module getting stuck intransition state.
OMAP watchdog driver is adapted to runtime PM like a general device
driver but it is not appropriate. It is causing couple of functional
issues.

1. On OMAP4 SYSCLK can't be gated, because of issue with WDTIMER2 module,
which constantly stays in "in transition" state. Value of register
CM_WKUP_WDTIMER2_CLKCTRL is always 0x00010000 in this case.
Issue occurs immediately after first idle, when hwmod framework tries
to disable WDTIMER2 functional clock - "wd_timer2_fck". After this
module falls to "in transition" state, and SYSCLK gating is blocked.

2. Due to runtime PM, watchdog timer may be completely disabled.
In current code base watchdog timer is not disabled only because of
issue 1. Otherwise state of WDTIMER2 module will be "Disabled", and there
will be no interrupts from omap_wdt. In other words watchdog will not
work at all.

Watchdong is a special IP and it should not be disabled otherwise
purpose of it itself is defeated. Watchdog functional clock should
never be disabled. This patch updates the runtime PM handling in
driver so that runtime PM is limited only during probe/shutdown
and suspend/resume.

The patch fixes issue 1 and 2

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2012-07-23 12:50:11 +02:00
..
Kconfig watchdog: iTCO_wdt.c: convert to watchdog core 2012-07-23 12:48:41 +02:00
Makefile Watchdog: DA9052/53 PMIC watchdog support 2012-05-30 07:56:12 +02:00
acquirewdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
advantechwdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
alim1535_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
alim7101_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
ar7_wdt.c watchdog: ar7_wdt.c: use devm_request_and_ioremap 2012-05-23 16:16:43 +02:00
at32ap700x_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
at91rm9200_wdt.c Merge git://www.linux-watchdog.org/linux-watchdog 2012-03-28 13:03:26 -07:00
at91sam9_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
at91sam9_wdt.h ARM: at91: make watchdog drivers soc independent 2011-11-28 22:50:39 +08:00
ath79_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
bcm47xx_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
bcm63xx_wdt.c watchdog: bcm63xx_wdt: fix driver section mismatch 2012-07-23 12:49:24 +02:00
bfin_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
booke_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
coh901327_wdt.c watchdog: coh901327_wdt: use clk_prepare/unprepare 2012-07-23 12:46:49 +02:00
cpu5wdt.c watchdog: Use pr_<fmt> and pr_<level> 2012-03-27 19:59:26 +02:00
cpwd.c watchdog: Use pr_<fmt> and pr_<level> 2012-03-27 19:59:26 +02:00
da9052_wdt.c Watchdog: DA9052/53 PMIC watchdog support 2012-05-30 07:56:12 +02:00
davinci_wdt.c watchdog: convert drivers/watchdog/* to use module_platform_driver() 2012-01-06 15:17:25 +01:00
dw_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
ep93xx_wdt.c watchdog: ep93xx_wdt: timeout is an unsigned int value. 2012-03-27 20:15:24 +02:00
eurotechwdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
f71808e_wdt.c watchdog: f71808e_wdt: Add support for Jetway JNF99 motherboard 2012-07-23 12:46:38 +02:00
gef_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
geodewdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
hpwdt.c watchdog: hpwdt: Unregister NMI events on exit. 2012-06-28 20:40:31 +02:00
i6300esb.c watchdog: Use module_pci_driver 2012-05-23 16:23:53 +02:00
iTCO_vendor.h watchdog: Convert iTCO_wdt driver to mfd model 2012-05-09 17:20:09 +02:00
iTCO_vendor_support.c watchdog: Convert iTCO_wdt driver to mfd model 2012-05-09 17:20:09 +02:00
iTCO_wdt.c watchdog: iTCO_wdt.c: convert to watchdog core 2012-07-23 12:48:41 +02:00
ib700wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
ibmasr.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
ie6xx_wdt.c watchdog: ie6xx_wdt: section mismatch in ie6xx_wdt_probe() 2012-07-23 12:49:44 +02:00
imx2_wdt.c watchdog imx2: prepare clk before enabling it 2012-04-25 17:03:42 +02:00
indydog.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
intel_scu_watchdog.c watchdog: Use pr_<fmt> and pr_<level> 2012-03-27 19:59:26 +02:00
intel_scu_watchdog.h watchdog: Use pr_<fmt> and pr_<level> 2012-03-27 19:59:26 +02:00
iop_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
it87_wdt.c watchdog: it87_wdt: Add support for IT8728F watchdog. 2012-05-23 16:24:43 +02:00
it8712f_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
ixp4xx_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
jz4740_wdt.c watchdog: fix set_timeout operations 2012-03-27 20:08:09 +02:00
ks8695_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
lantiq_wdt.c watchdog: MIPS: lantiq: implement OF support and minor fixes 2012-05-21 14:31:54 +01:00
m54xx_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
machzwd.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
max63xx_wdt.c watchdog: Convert max63xx_wdt driver to watchdog framework 2012-03-27 20:06:59 +02:00
mixcomwd.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
mpc8xxx_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
mpcore_wdt.c watchdog: mpcore_wdt: Allow platform_get_irq() to fail 2012-03-27 20:14:20 +02:00
mtx-1_wdt.c watchdog: convert drivers/watchdog/* to use module_platform_driver() 2012-01-06 15:17:25 +01:00
mv64x60_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
nuc900_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
nv_tco.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
nv_tco.h watchdog: Add TCO support for nVidia chipsets 2011-01-12 13:51:23 +00:00
octeon-wdt-main.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
octeon-wdt-nmi.S WATCHDOG: Add watchdog driver for OCTEON SOCs 2010-08-05 13:26:22 +01:00
of_xilinx_wdt.c watchdog: xilinx: Read clock frequency directly from DT node 2012-07-23 12:47:00 +02:00
omap_wdt.c Watchdog: OMAP: Fix the runtime pm code to avoid module getting stuck intransition state. 2012-07-23 12:50:11 +02:00
omap_wdt.h watchdog: cleanup spaces before tabs 2011-03-15 16:02:27 +00:00
orion_wdt.c ARM: Orion: WDT: Add clk/clkdev support 2012-05-08 16:33:57 -07:00
pc87413_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
pcwd.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
pcwd_pci.c watchdog: Use module_pci_driver 2012-05-23 16:23:53 +02:00
pcwd_usb.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
pika_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
pnx833x_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
pnx4008_wdt.c watchdog: Device tree support for pnx4008-wdt 2012-05-23 16:16:55 +02:00
rc32434_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
rdc321x_wdt.c watchdog: convert drivers/watchdog/* to use module_platform_driver() 2012-01-06 15:17:25 +01:00
riowd.c watchdog: Use pr_<fmt> and pr_<level> 2012-03-27 19:59:26 +02:00
s3c2410_wdt.c watchdog: s3c2410_wdt: Set timeout to actually achieved timeout 2012-05-23 16:26:20 +02:00
sa1100_wdt.c ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
sb_wdog.c watchdog: Use pr_<fmt> and pr_<level> 2012-03-27 19:59:26 +02:00
sbc60xxwdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
sbc7240_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
sbc8360.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
sbc_epx_c3.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
sbc_fitpc2_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
sc520_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
sc1200wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
sch311x_wdt.c watchdog: sch311x_wdt.c: Remove RESGEN 2012-05-23 16:17:51 +02:00
scx200_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
shwdt.c watchdog: shwdt: Use finer grained clock control. 2012-05-10 16:14:40 +09:00
smsc37b787_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
softdog.c watchdog: softdog: convert to watchdog core 2012-03-27 20:07:21 +02:00
sp805_wdt.c Viresh has moved 2012-06-20 14:39:36 -07:00
sp5100_tco.c watchdog: sp5100_tco.c: quiet sparse noise about using plain integer was NULL pointer 2012-05-23 16:16:21 +02:00
sp5100_tco.h watchdog: Add support for sp5100 chipset TCO 2011-01-12 13:51:16 +00:00
stmp3xxx_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
ts72xx_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
twl4030_wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
txx9wdt.c watchdog: txx9wdt: fix timeout 2012-03-27 20:16:13 +02:00
via_wdt.c watchdog: Add watchdog_active() routine 2012-05-30 07:53:46 +02:00
w83627hf_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
w83697hf_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
w83697ug_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
w83877f_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
w83977f_wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
wafer5823wdt.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
watchdog_core.c watchdog: Add Locking support 2012-05-30 07:55:23 +02:00
watchdog_core.h watchdog: Add multiple device support 2012-05-30 07:54:25 +02:00
watchdog_dev.c watchdog: core: fix WDIOC_GETSTATUS return value 2012-06-28 20:40:56 +02:00
wd501p.h [WATCHDOG] More coding-style and trivial clean-up 2009-03-25 09:07:04 +00:00
wdrtas.c watchdog: nowayout is bool 2012-03-27 20:06:02 +02:00
wdt.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
wdt285.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
wdt977.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
wdt_pci.c watchdog: Use module_pci_driver 2012-05-23 16:23:53 +02:00
wm831x_wdt.c watchdog: wm831x: Convert to gpio_request_one() 2012-05-23 16:26:07 +02:00
wm8350_wdt.c watchdog: fix set_timeout operations 2012-03-27 20:08:09 +02:00
xen_wdt.c watchdog: xen: don't clear is_active when xen_wdt_stop() failed 2012-03-27 20:13:55 +02:00