Commit 7998b3bd authored by Kyle McMartin's avatar Kyle McMartin

parisc: convert gsc and dino pci interrupts to flow handlers

Signed-off-by: default avatarKyle McMartin <kyle@redhat.com>
parent 14ff626a
...@@ -296,7 +296,7 @@ static struct pci_port_ops dino_port_ops = { ...@@ -296,7 +296,7 @@ static struct pci_port_ops dino_port_ops = {
.outl = dino_out32 .outl = dino_out32
}; };
static void dino_disable_irq(unsigned int irq) static void dino_mask_irq(unsigned int irq)
{ {
struct dino_device *dino_dev = get_irq_chip_data(irq); struct dino_device *dino_dev = get_irq_chip_data(irq);
int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS); int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS);
...@@ -308,7 +308,7 @@ static void dino_disable_irq(unsigned int irq) ...@@ -308,7 +308,7 @@ static void dino_disable_irq(unsigned int irq)
__raw_writel(dino_dev->imr, dino_dev->hba.base_addr+DINO_IMR); __raw_writel(dino_dev->imr, dino_dev->hba.base_addr+DINO_IMR);
} }
static void dino_enable_irq(unsigned int irq) static void dino_unmask_irq(unsigned int irq)
{ {
struct dino_device *dino_dev = get_irq_chip_data(irq); struct dino_device *dino_dev = get_irq_chip_data(irq);
int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS); int local_irq = gsc_find_local_irq(irq, dino_dev->global_irq, DINO_LOCAL_IRQS);
...@@ -345,20 +345,11 @@ static void dino_enable_irq(unsigned int irq) ...@@ -345,20 +345,11 @@ static void dino_enable_irq(unsigned int irq)
} }
} }
static unsigned int dino_startup_irq(unsigned int irq)
{
dino_enable_irq(irq);
return 0;
}
static struct irq_chip dino_interrupt_type = { static struct irq_chip dino_interrupt_type = {
.name = "GSC-PCI", .name = "GSC-PCI",
.startup = dino_startup_irq, .unmask = dino_unmask_irq,
.shutdown = dino_disable_irq, .mask = dino_mask_irq,
.enable = dino_enable_irq,
.disable = dino_disable_irq,
.ack = no_ack_irq, .ack = no_ack_irq,
.end = no_end_irq,
}; };
......
...@@ -105,7 +105,7 @@ int gsc_find_local_irq(unsigned int irq, int *global_irqs, int limit) ...@@ -105,7 +105,7 @@ int gsc_find_local_irq(unsigned int irq, int *global_irqs, int limit)
return NO_IRQ; return NO_IRQ;
} }
static void gsc_asic_disable_irq(unsigned int irq) static void gsc_asic_mask_irq(unsigned int irq)
{ {
struct gsc_asic *irq_dev = get_irq_chip_data(irq); struct gsc_asic *irq_dev = get_irq_chip_data(irq);
int local_irq = gsc_find_local_irq(irq, irq_dev->global_irq, 32); int local_irq = gsc_find_local_irq(irq, irq_dev->global_irq, 32);
...@@ -120,7 +120,7 @@ static void gsc_asic_disable_irq(unsigned int irq) ...@@ -120,7 +120,7 @@ static void gsc_asic_disable_irq(unsigned int irq)
gsc_writel(imr, irq_dev->hpa + OFFSET_IMR); gsc_writel(imr, irq_dev->hpa + OFFSET_IMR);
} }
static void gsc_asic_enable_irq(unsigned int irq) static void gsc_asic_unmask_irq(unsigned int irq)
{ {
struct gsc_asic *irq_dev = get_irq_chip_data(irq); struct gsc_asic *irq_dev = get_irq_chip_data(irq);
int local_irq = gsc_find_local_irq(irq, irq_dev->global_irq, 32); int local_irq = gsc_find_local_irq(irq, irq_dev->global_irq, 32);
...@@ -139,20 +139,11 @@ static void gsc_asic_enable_irq(unsigned int irq) ...@@ -139,20 +139,11 @@ static void gsc_asic_enable_irq(unsigned int irq)
*/ */
} }
static unsigned int gsc_asic_startup_irq(unsigned int irq)
{
gsc_asic_enable_irq(irq);
return 0;
}
static struct irq_chip gsc_asic_interrupt_type = { static struct irq_chip gsc_asic_interrupt_type = {
.name = "GSC-ASIC", .name = "GSC-ASIC",
.startup = gsc_asic_startup_irq, .unmask = gsc_asic_unmask_irq,
.shutdown = gsc_asic_disable_irq, .mask = gsc_asic_mask_irq,
.enable = gsc_asic_enable_irq,
.disable = gsc_asic_disable_irq,
.ack = no_ack_irq, .ack = no_ack_irq,
.end = no_end_irq,
}; };
int gsc_assign_irq(struct irq_chip *type, void *data) int gsc_assign_irq(struct irq_chip *type, void *data)
...@@ -162,7 +153,7 @@ int gsc_assign_irq(struct irq_chip *type, void *data) ...@@ -162,7 +153,7 @@ int gsc_assign_irq(struct irq_chip *type, void *data)
if (irq > GSC_IRQ_MAX) if (irq > GSC_IRQ_MAX)
return NO_IRQ; return NO_IRQ;
set_irq_chip_and_handler(irq, type, parisc_do_IRQ); set_irq_chip_and_handler(irq, type, handle_level_irq);
set_irq_chip_data(irq, data); set_irq_chip_data(irq, data);
return irq++; return irq++;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment