Loading arch/powerpc/sysdev/tsi108_pci.c +19 −22 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading Loading @@ -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); } Loading
arch/powerpc/sysdev/tsi108_pci.c +19 −22 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading Loading @@ -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); }