Skip to content

Commit

Permalink
powerpc: sysdev/tsi108_pci irq_data conversion.
Browse files Browse the repository at this point in the history
Signed-off-by: Lennert Buytenhek <[email protected]>
Signed-off-by: Benjamin Herrenschmidt <[email protected]>
  • Loading branch information
buytenh authored and ozbenh committed Mar 10, 2011
1 parent 3a0adfa commit 11afe2b
Showing 1 changed file with 19 additions and 22 deletions.
41 changes: 19 additions & 22 deletions arch/powerpc/sysdev/tsi108_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -343,24 +343,9 @@ static inline unsigned int get_pci_source(void)
* Linux descriptor level callbacks
*/

static void tsi108_pci_irq_enable(u_int irq)
static void tsi108_pci_irq_unmask(struct irq_data *d)
{
tsi108_pci_int_unmask(irq);
}

static void tsi108_pci_irq_disable(u_int irq)
{
tsi108_pci_int_mask(irq);
}

static void tsi108_pci_irq_ack(u_int irq)
{
tsi108_pci_int_mask(irq);
}

static void tsi108_pci_irq_end(u_int irq)
{
tsi108_pci_int_unmask(irq);
tsi108_pci_int_unmask(d->irq);

/* Enable interrupts from PCI block */
tsi108_write_reg(TSI108_PCI_OFFSET + TSI108_PCI_IRP_ENABLE,
Expand All @@ -370,16 +355,25 @@ static void tsi108_pci_irq_end(u_int irq)
mb();
}

static void tsi108_pci_irq_mask(struct irq_data *d)
{
tsi108_pci_int_mask(d->irq);
}

static void tsi108_pci_irq_ack(struct irq_data *d)
{
tsi108_pci_int_mask(d->irq);
}

/*
* Interrupt controller descriptor for cascaded PCI interrupt controller.
*/

static struct irq_chip tsi108_pci_irq = {
.name = "tsi108_PCI_int",
.mask = tsi108_pci_irq_disable,
.ack = tsi108_pci_irq_ack,
.end = tsi108_pci_irq_end,
.unmask = tsi108_pci_irq_enable,
.irq_mask = tsi108_pci_irq_mask,
.irq_ack = tsi108_pci_irq_ack,
.irq_unmask = tsi108_pci_irq_unmask,
};

static int pci_irq_host_xlate(struct irq_host *h, struct device_node *ct,
Expand Down Expand Up @@ -437,8 +431,11 @@ void __init tsi108_pci_int_init(struct device_node *node)

void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc)
{
struct irq_chip *chip = get_irq_desc_chip(desc);
unsigned int cascade_irq = get_pci_source();

if (cascade_irq != NO_IRQ)
generic_handle_irq(cascade_irq);
desc->chip->eoi(irq);

chip->irq_eoi(&desc->irq_data);
}

0 comments on commit 11afe2b

Please sign in to comment.