Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 6913
b: refs/heads/master
c: 39cdc4b
h: refs/heads/master
i:
  6911: ff99ccf
v: v3
  • Loading branch information
Kumar Gala authored and Linus Torvalds committed Sep 5, 2005
1 parent 090d29d commit 06b0032
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b0531b9b3299f3066b1db78f1693edabbba08b5c
refs/heads/master: 39cdc4bfb5c587c617ab6a28083c19101154e149
8 changes: 2 additions & 6 deletions trunk/arch/ppc/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -623,21 +623,17 @@ machine_init(unsigned long r3, unsigned long r4, unsigned long r5,
/* Checks wdt=x and wdt_period=xx command-line option */
int __init early_parse_wdt(char *p)
{
extern u32 wdt_enable;

if (p && strncmp(p, "0", 1) != 0)
wdt_enable = 1;
booke_wdt_enabled = 1;

return 0;
}
early_param("wdt", early_parse_wdt);

int __init early_parse_wdt_period (char *p)
{
extern u32 wdt_period;

if (p)
wdt_period = simple_strtoul(p, NULL, 0);
booke_wdt_period = simple_strtoul(p, NULL, 0);

return 0;
}
Expand Down
3 changes: 3 additions & 0 deletions trunk/drivers/char/watchdog/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,9 @@ config 8xx_WDT
config BOOKE_WDT
tristate "PowerPC Book-E Watchdog Timer"
depends on WATCHDOG && (BOOKE || 4xx)
---help---
Please see Documentation/watchdog/watchdog-api.txt for
more information.

# MIPS Architecture

Expand Down
23 changes: 12 additions & 11 deletions trunk/drivers/char/watchdog/booke_wdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

#include <asm/reg_booke.h>
#include <asm/uaccess.h>
#include <asm/system.h>

/* If the kernel parameter wdt_enable=1, the watchdog will be enabled at boot.
* Also, the wdt_period sets the watchdog timer period timeout.
Expand All @@ -38,8 +39,8 @@
#define WDT_PERIOD_DEFAULT 4 /* Refer to the PPC40x and PPC4xx manuals */
#endif /* for timing information */

u32 wdt_enable = 0;
u32 wdt_period = WDT_PERIOD_DEFAULT;
u32 booke_wdt_enabled = 0;
u32 booke_wdt_period = WDT_PERIOD_DEFAULT;

#ifdef CONFIG_FSL_BOOKE
#define WDTP(x) ((((63-x)&0x3)<<30)|(((63-x)&0x3c)<<15))
Expand All @@ -55,7 +56,7 @@ static __inline__ void booke_wdt_enable(void)
u32 val;

val = mfspr(SPRN_TCR);
val |= (TCR_WIE|TCR_WRC(WRC_CHIP)|WDTP(wdt_period));
val |= (TCR_WIE|TCR_WRC(WRC_CHIP)|WDTP(booke_wdt_period));

mtspr(SPRN_TCR, val);
}
Expand Down Expand Up @@ -108,12 +109,12 @@ static int booke_wdt_ioctl (struct inode *inode, struct file *file,
booke_wdt_ping();
return 0;
case WDIOC_SETTIMEOUT:
if (get_user(wdt_period, (u32 *) arg))
if (get_user(booke_wdt_period, (u32 *) arg))
return -EFAULT;
mtspr(SPRN_TCR, (mfspr(SPRN_TCR)&~WDTP(0))|WDTP(wdt_period));
mtspr(SPRN_TCR, (mfspr(SPRN_TCR)&~WDTP(0))|WDTP(booke_wdt_period));
return 0;
case WDIOC_GETTIMEOUT:
return put_user(wdt_period, (u32 *) arg);
return put_user(booke_wdt_period, (u32 *) arg);
case WDIOC_SETOPTIONS:
if (get_user(tmp, (u32 *) arg))
return -EINVAL;
Expand All @@ -134,11 +135,11 @@ static int booke_wdt_ioctl (struct inode *inode, struct file *file,
*/
static int booke_wdt_open (struct inode *inode, struct file *file)
{
if (wdt_enable == 0) {
wdt_enable = 1;
if (booke_wdt_enabled == 0) {
booke_wdt_enabled = 1;
booke_wdt_enable();
printk (KERN_INFO "PowerPC Book-E Watchdog Timer Enabled (wdt_period=%d)\n",
wdt_period);
booke_wdt_period);
}

return 0;
Expand Down Expand Up @@ -180,9 +181,9 @@ static int __init booke_wdt_init(void)
return ret;
}

if (wdt_enable == 1) {
if (booke_wdt_enabled == 1) {
printk (KERN_INFO "PowerPC Book-E Watchdog Timer Enabled (wdt_period=%d)\n",
wdt_period);
booke_wdt_period);
booke_wdt_enable();
}

Expand Down
4 changes: 4 additions & 0 deletions trunk/include/asm-ppc/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ extern void cacheable_memzero(void *p, unsigned int nb);
extern int do_page_fault(struct pt_regs *, unsigned long, unsigned long);
extern void bad_page_fault(struct pt_regs *, unsigned long, int);
extern void die(const char *, struct pt_regs *, long);
#ifdef CONFIG_BOOKE_WDT
extern u32 booke_wdt_enabled;
extern u32 booke_wdt_period;
#endif /* CONFIG_BOOKE_WDT */

struct device_node;
extern void note_scsi_host(struct device_node *, void *);
Expand Down

0 comments on commit 06b0032

Please sign in to comment.