Skip to content

Commit

Permalink
[WATCHDOG] w83697hf/hg WDT driver - patch 14
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Samuel Tardieu authored and Wim Van Sebroeck committed Oct 4, 2006
1 parent 089d813 commit fa69afd
Showing 1 changed file with 6 additions and 21 deletions.
27 changes: 6 additions & 21 deletions drivers/char/watchdog/w83697hf_wdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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
Expand Down Expand Up @@ -412,15 +397,15 @@ 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);
printk (KERN_INFO PFX "timeout value must be 1<=timeout<=255, using %d\n",
WATCHDOG_TIMEOUT);
}

w83697hf_init();

ret = register_reboot_notifier(&wdt_notifier);
if (ret != 0) {
printk (KERN_ERR PFX "cannot register reboot notifier (err=%d)\n",
Expand Down

0 comments on commit fa69afd

Please sign in to comment.