[WATCHDOG] w83697hf/hg WDT driver - patch 14
This is patch 14 in the series of patches that converts Marcus Junker's w83697hf watchdog driver to Samuel Tardieau's w83697hf/hg watchdog driver. This patch contains following changes: - Clean-up initialization code (part 1: remove w83697hf_select_wd_register() and w83697hf_unselect_wd_register() functions). - Make sure that the watchdog device is stopped as soon as we found it. Signed-off-by: Samuel Tardieu <sam@rfc1149.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
parent
089d8139f4
commit
fa69afd3c2
1 changed files with 6 additions and 21 deletions
|
@ -120,29 +120,14 @@ w83697hf_deselect_wdt(void)
|
|||
w83697hf_lock();
|
||||
}
|
||||
|
||||
static void
|
||||
w83697hf_select_wd_register(void)
|
||||
{
|
||||
w83697hf_unlock();
|
||||
|
||||
w83697hf_set_reg(0x29, 0x20); /* Set pin 119 to WDTO# mode (= CR29, WDT0) */
|
||||
|
||||
w83697hf_set_reg(0x07, 0x08); /* Switch to logic device 8 (GPIO2) */
|
||||
w83697hf_set_reg(0x30, 0x01); /* Enable timer/activate GPIO2 via bit 0 */
|
||||
}
|
||||
|
||||
static void
|
||||
w83697hf_unselect_wd_register(void)
|
||||
{
|
||||
w83697hf_lock();
|
||||
}
|
||||
|
||||
static void
|
||||
w83697hf_init(void)
|
||||
{
|
||||
unsigned char t;
|
||||
|
||||
w83697hf_select_wd_register();
|
||||
w83697hf_select_wdt();
|
||||
|
||||
w83697hf_set_reg(0x29, 0x20); /* Set pin 119 to WDTO# mode (= CR29, WDT0) */
|
||||
|
||||
t = w83697hf_get_reg(0xF3); /* Read CRF3 */
|
||||
if (t != 0) {
|
||||
|
@ -153,7 +138,7 @@ w83697hf_init(void)
|
|||
t&=~0x0C; /* set second mode & disable keyboard turning off watchdog */
|
||||
w83697hf_set_reg(0xF4, t); /* Write back to CRF4 */
|
||||
|
||||
w83697hf_unselect_wd_register();
|
||||
w83697hf_deselect_wdt();
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -412,6 +397,8 @@ wdt_init(void)
|
|||
goto out;
|
||||
|
||||
found:
|
||||
w83697hf_init();
|
||||
wdt_disable(); /* Disable watchdog until first use */
|
||||
|
||||
if (wdt_set_heartbeat(timeout)) {
|
||||
wdt_set_heartbeat(WATCHDOG_TIMEOUT);
|
||||
|
@ -419,8 +406,6 @@ wdt_init(void)
|
|||
WATCHDOG_TIMEOUT);
|
||||
}
|
||||
|
||||
w83697hf_init();
|
||||
|
||||
ret = register_reboot_notifier(&wdt_notifier);
|
||||
if (ret != 0) {
|
||||
printk (KERN_ERR PFX "cannot register reboot notifier (err=%d)\n",
|
||||
|
|
Loading…
Reference in a new issue