Merge git://www.linux-watchdog.org/linux-watchdog
* git://www.linux-watchdog.org/linux-watchdog: watchdog: iTCO_wdt.c - problems with newer hardware due to SMI clearing (part 2) watchdog: hpwdt: Changes to handle NX secure bit in 32bit path watchdog: sp805: Fix section mismatch in ID table. watchdog: move coh901327 state holders
This commit is contained in:
commit
995b4103a7
@ -76,8 +76,6 @@ static int irq;
|
|||||||
static void __iomem *virtbase;
|
static void __iomem *virtbase;
|
||||||
static unsigned long coh901327_users;
|
static unsigned long coh901327_users;
|
||||||
static unsigned long boot_status;
|
static unsigned long boot_status;
|
||||||
static u16 wdogenablestore;
|
|
||||||
static u16 irqmaskstore;
|
|
||||||
static struct device *parent;
|
static struct device *parent;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -461,6 +459,10 @@ out:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
|
|
||||||
|
static u16 wdogenablestore;
|
||||||
|
static u16 irqmaskstore;
|
||||||
|
|
||||||
static int coh901327_suspend(struct platform_device *pdev, pm_message_t state)
|
static int coh901327_suspend(struct platform_device *pdev, pm_message_t state)
|
||||||
{
|
{
|
||||||
irqmaskstore = readw(virtbase + U300_WDOG_IMR) & 0x0001U;
|
irqmaskstore = readw(virtbase + U300_WDOG_IMR) & 0x0001U;
|
||||||
|
@ -231,6 +231,7 @@ static int __devinit cru_detect(unsigned long map_entry,
|
|||||||
|
|
||||||
cmn_regs.u1.reax = CRU_BIOS_SIGNATURE_VALUE;
|
cmn_regs.u1.reax = CRU_BIOS_SIGNATURE_VALUE;
|
||||||
|
|
||||||
|
set_memory_x((unsigned long)bios32_entrypoint, (2 * PAGE_SIZE));
|
||||||
asminline_call(&cmn_regs, bios32_entrypoint);
|
asminline_call(&cmn_regs, bios32_entrypoint);
|
||||||
|
|
||||||
if (cmn_regs.u1.ral != 0) {
|
if (cmn_regs.u1.ral != 0) {
|
||||||
@ -248,9 +249,11 @@ static int __devinit cru_detect(unsigned long map_entry,
|
|||||||
if ((physical_bios_base + physical_bios_offset)) {
|
if ((physical_bios_base + physical_bios_offset)) {
|
||||||
cru_rom_addr =
|
cru_rom_addr =
|
||||||
ioremap(cru_physical_address, cru_length);
|
ioremap(cru_physical_address, cru_length);
|
||||||
if (cru_rom_addr)
|
if (cru_rom_addr) {
|
||||||
|
set_memory_x((unsigned long)cru_rom_addr, cru_length);
|
||||||
retval = 0;
|
retval = 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
printk(KERN_DEBUG "hpwdt: CRU Base Address: 0x%lx\n",
|
printk(KERN_DEBUG "hpwdt: CRU Base Address: 0x%lx\n",
|
||||||
physical_bios_base);
|
physical_bios_base);
|
||||||
|
@ -384,10 +384,10 @@ MODULE_PARM_DESC(nowayout,
|
|||||||
"Watchdog cannot be stopped once started (default="
|
"Watchdog cannot be stopped once started (default="
|
||||||
__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
|
__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
|
||||||
|
|
||||||
static int turn_SMI_watchdog_clear_off = 0;
|
static int turn_SMI_watchdog_clear_off = 1;
|
||||||
module_param(turn_SMI_watchdog_clear_off, int, 0);
|
module_param(turn_SMI_watchdog_clear_off, int, 0);
|
||||||
MODULE_PARM_DESC(turn_SMI_watchdog_clear_off,
|
MODULE_PARM_DESC(turn_SMI_watchdog_clear_off,
|
||||||
"Turn off SMI clearing watchdog (default=0)");
|
"Turn off SMI clearing watchdog (depends on TCO-version)(default=1)");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Some TCO specific functions
|
* Some TCO specific functions
|
||||||
@ -813,7 +813,7 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev,
|
|||||||
ret = -EIO;
|
ret = -EIO;
|
||||||
goto out_unmap;
|
goto out_unmap;
|
||||||
}
|
}
|
||||||
if (turn_SMI_watchdog_clear_off) {
|
if (turn_SMI_watchdog_clear_off >= iTCO_wdt_private.iTCO_version) {
|
||||||
/* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */
|
/* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */
|
||||||
val32 = inl(SMI_EN);
|
val32 = inl(SMI_EN);
|
||||||
val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */
|
val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */
|
||||||
|
@ -351,7 +351,7 @@ static int __devexit sp805_wdt_remove(struct amba_device *adev)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct amba_id sp805_wdt_ids[] __initdata = {
|
static struct amba_id sp805_wdt_ids[] = {
|
||||||
{
|
{
|
||||||
.id = 0x00141805,
|
.id = 0x00141805,
|
||||||
.mask = 0x00ffffff,
|
.mask = 0x00ffffff,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user