diff options
| author | Andrew Morton <akpm@digeo.com> | 2003-04-20 20:32:35 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-04-20 20:32:35 -0700 |
| commit | c0177fe9eaf4935c42ff04500583738d0f8824c3 (patch) | |
| tree | 76faaf1e869491cb2ce506f43e1fa8e4f6d67342 /drivers/hotplug | |
| parent | 607ace4b5b979e876e4b81555ab73a1665ed616e (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.c | 5 | ||||
| -rw-r--r-- | drivers/hotplug/cpqphp.h | 3 | ||||
| -rw-r--r-- | drivers/hotplug/cpqphp_core.c | 3 | ||||
| -rw-r--r-- | drivers/hotplug/cpqphp_ctrl.c | 7 |
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; } |
