diff options
| author | David S. Miller <davem@nuts.ninka.net> | 2003-05-05 17:34:39 -0700 |
|---|---|---|
| committer | David S. Miller <davem@nuts.ninka.net> | 2003-05-05 17:34:39 -0700 |
| commit | df608e6ae34d6599ac10cf582f19161e0efdb2ad (patch) | |
| tree | 5220fe69ab91cc6fd1b69dd7705668d516308240 | |
| parent | d210257e8b4184e3014f4afcedb185d3aa685b27 (diff) | |
[SPARC64]: Only use power interrupt when button property exists.
| -rw-r--r-- | arch/sparc64/kernel/power.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c index 862fa9d6ba61..93132adbec08 100644 --- a/arch/sparc64/kernel/power.c +++ b/arch/sparc64/kernel/power.c @@ -84,6 +84,16 @@ again: return 0; } +static int __init has_button_interrupt(struct linux_ebus_device *edev) +{ + if (edev->irqs[0] == PCI_IRQ_NONE) + return 0; + if (!prom_node_has_property(edev->prom_node, "button")) + return 0; + + return 1; +} + void __init power_init(void) { struct linux_ebus *ebus; @@ -106,7 +116,7 @@ found: power_reg = (unsigned long)ioremap(edev->resource[0].start, 0x4); printk("power: Control reg at %016lx ... ", power_reg); poweroff_method = machine_halt; /* able to use the standard halt */ - if (edev->irqs[0] != PCI_IRQ_NONE) { + if (has_button_interrupt(edev)) { if (kernel_thread(powerd, 0, CLONE_FS) < 0) { printk("Failed to start power daemon.\n"); return; |
