summaryrefslogtreecommitdiff
path: root/drivers/hotplug
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2003-04-20 20:32:35 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-04-20 20:32:35 -0700
commitc0177fe9eaf4935c42ff04500583738d0f8824c3 (patch)
tree76faaf1e869491cb2ce506f43e1fa8e4f6d67342 /drivers/hotplug
parent607ace4b5b979e876e4b81555ab73a1665ed616e (diff)
[PATCH] irqs: hotplug drivers
Update hotplug and pcmcia drivers to the new IRQ API.
Diffstat (limited to 'drivers/hotplug')
-rw-r--r--drivers/hotplug/cpci_hotplug_core.c5
-rw-r--r--drivers/hotplug/cpqphp.h3
-rw-r--r--drivers/hotplug/cpqphp_core.c3
-rw-r--r--drivers/hotplug/cpqphp_ctrl.c7
4 files changed, 10 insertions, 8 deletions
diff --git a/drivers/hotplug/cpci_hotplug_core.c b/drivers/hotplug/cpci_hotplug_core.c
index e8981f780b62..d1f99032c56d 100644
--- a/drivers/hotplug/cpci_hotplug_core.c
+++ b/drivers/hotplug/cpci_hotplug_core.c
@@ -446,7 +446,7 @@ cpci_find_slot(struct pci_bus *bus, unsigned int devfn)
}
/* This is the interrupt mode interrupt handler */
-void
+irqreturn_t
cpci_hp_intr(int irq, void *data, struct pt_regs *regs)
{
dbg("entered cpci_hp_intr");
@@ -455,7 +455,7 @@ cpci_hp_intr(int irq, void *data, struct pt_regs *regs)
if((controller->irq_flags & SA_SHIRQ) &&
!controller->ops->check_irq(controller->dev_id)) {
dbg("exited cpci_hp_intr, not our interrupt");
- return;
+ return IRQ_NONE;
}
/* Disable ENUM interrupt */
@@ -465,6 +465,7 @@ cpci_hp_intr(int irq, void *data, struct pt_regs *regs)
dbg("Signal event_semaphore");
up(&event_semaphore);
dbg("exited cpci_hp_intr");
+ return IRQ_HANDLED;
}
/*
diff --git a/drivers/hotplug/cpqphp.h b/drivers/hotplug/cpqphp.h
index f44704f38884..758efd88411e 100644
--- a/drivers/hotplug/cpqphp.h
+++ b/drivers/hotplug/cpqphp.h
@@ -29,6 +29,7 @@
#define _CPQPHP_H
#include "pci_hotplug.h"
+#include <linux/interrupt.h>
#include <asm/io.h> /* for read? and write? functions */
@@ -408,7 +409,7 @@ extern void cpqhp_create_ctrl_files (struct controller *ctrl);
/* controller functions */
extern void cpqhp_pushbutton_thread (unsigned long event_pointer);
-extern void cpqhp_ctrl_intr (int IRQ, struct controller *ctrl_input, struct pt_regs *regs);
+extern irqreturn_t cpqhp_ctrl_intr (int IRQ, void *data, struct pt_regs *regs);
extern int cpqhp_find_available_resources (struct controller *ctrl, void *rom_start);
extern int cpqhp_event_start_thread (void);
extern void cpqhp_event_stop_thread (void);
diff --git a/drivers/hotplug/cpqphp_core.c b/drivers/hotplug/cpqphp_core.c
index 2555d43eeb94..af9f62e63e47 100644
--- a/drivers/hotplug/cpqphp_core.c
+++ b/drivers/hotplug/cpqphp_core.c
@@ -1148,8 +1148,7 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
/* set up the interrupt */
dbg("HPC interrupt = %d \n", ctrl->interrupt);
- if (request_irq(ctrl->interrupt,
- (void (*)(int, void *, struct pt_regs *)) &cpqhp_ctrl_intr,
+ if (request_irq(ctrl->interrupt, cpqhp_ctrl_intr,
SA_SHIRQ, MY_NAME, ctrl)) {
err("Can't get irq %d for the hotplug pci controller\n", ctrl->interrupt);
rc = -ENODEV;
diff --git a/drivers/hotplug/cpqphp_ctrl.c b/drivers/hotplug/cpqphp_ctrl.c
index b9a8432487f4..ba6b48bd8895 100644
--- a/drivers/hotplug/cpqphp_ctrl.c
+++ b/drivers/hotplug/cpqphp_ctrl.c
@@ -916,8 +916,9 @@ int cpqhp_resource_sort_and_combine(struct pci_resource **head)
}
-void cpqhp_ctrl_intr(int IRQ, struct controller * ctrl, struct pt_regs *regs)
+irqreturn_t cpqhp_ctrl_intr(int IRQ, void *data, struct pt_regs *regs)
{
+ struct controller *ctrl = data;
u8 schedule_flag = 0;
u16 misc;
u32 Diff;
@@ -929,7 +930,7 @@ void cpqhp_ctrl_intr(int IRQ, struct controller * ctrl, struct pt_regs *regs)
// Check to see if it was our interrupt
//*********************************
if (!(misc & 0x000C)) {
- return;
+ return IRQ_NONE;
}
if (misc & 0x0004) {
@@ -974,7 +975,7 @@ void cpqhp_ctrl_intr(int IRQ, struct controller * ctrl, struct pt_regs *regs)
up(&event_semaphore);
dbg("Signal event_semaphore\n");
}
-
+ return IRQ_HANDLED;
}