aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavem <davem>2001-12-11 01:57:16 +0000
committerdavem <davem>2001-12-11 01:57:16 +0000
commita190194a9dcbbd6b2d87b15682209454fb7d42e9 (patch)
tree9b40a865119c53e5d80a2ec1c7ff565559baba25
parent20cd52fe3d2a344e7f01af0123af04eac4cdd84a (diff)
downloadnetdev-vger-cvs-a190194a9dcbbd6b2d87b15682209454fb7d42e9.tar.gz
Use PCI_IRQ_NONE, only run powerd if IRQ is
present.
-rw-r--r--arch/sparc64/kernel/power.c19
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(&current->sigmask_lock);
flush_signals(current);
spin_unlock_irq(&current->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 */