diff options
author | davem <davem> | 2001-12-11 01:57:16 +0000 |
---|---|---|
committer | davem <davem> | 2001-12-11 01:57:16 +0000 |
commit | a190194a9dcbbd6b2d87b15682209454fb7d42e9 (patch) | |
tree | 9b40a865119c53e5d80a2ec1c7ff565559baba25 | |
parent | 20cd52fe3d2a344e7f01af0123af04eac4cdd84a (diff) | |
download | netdev-vger-cvs-a190194a9dcbbd6b2d87b15682209454fb7d42e9.tar.gz |
Use PCI_IRQ_NONE, only run powerd if IRQ is
present.
-rw-r--r-- | arch/sparc64/kernel/power.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/arch/sparc64/kernel/power.c b/arch/sparc64/kernel/power.c index ae925f87a..f6bb660ee 100644 --- a/arch/sparc64/kernel/power.c +++ b/arch/sparc64/kernel/power.c @@ -1,4 +1,4 @@ -/* $Id: power.c,v 1.9 2001-06-08 02:28:22 davem Exp $ +/* $Id: power.c,v 1.10 2001-12-11 01:57:16 davem Exp $ * power.c: Power management driver. * * Copyright (C) 1999 David S. Miller (davem@redhat.com) @@ -61,7 +61,7 @@ static int powerd(void *__unused) sprintf(current->comm, "powerd"); again: - while(button_pressed == 0) { + while (button_pressed == 0) { spin_lock_irq(¤t->sigmask_lock); flush_signals(current); spin_unlock_irq(¤t->sigmask_lock); @@ -98,16 +98,19 @@ void __init power_init(void) found: power_reg = (unsigned long)ioremap(edev->resource[0].start, 0x4); printk("power: Control reg at %016lx ... ", power_reg); - if (kernel_thread(powerd, 0, CLONE_FS) < 0) { - printk("Failed to start power daemon.\n"); - return; - } - printk("powerd running.\n"); - if (edev->irqs[0] != 0) { + if (edev->irqs[0] != PCI_IRQ_NONE) { + if (kernel_thread(powerd, 0, CLONE_FS) < 0) { + printk("Failed to start power daemon.\n"); + return; + } + printk("powerd running.\n"); + if (request_irq(edev->irqs[0], power_handler, SA_SHIRQ, "power", (void *) power_reg) < 0) printk("power: Error, cannot register IRQ handler.\n"); + } else { + printk("not using powerd.\n"); } } #endif /* CONFIG_PCI */ |