forked from Minki/linux
parisc: convert gsc and dino pci interrupts to flow handlers
Signed-off-by: Kyle McMartin <kyle@redhat.com>
This commit is contained in:
parent
14ff626a64
commit
7998b3bd15
@ -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)
|
|||||||
__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)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
.ack = no_ack_irq,
|
||||||
.disable = dino_disable_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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
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,
|
.ack = no_ack_irq,
|
||||||
.disable = gsc_asic_disable_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)
|
|||||||
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++;
|
||||||
|
Loading…
Reference in New Issue
Block a user