Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 468a903c authored by Jason Cooper's avatar Jason Cooper
Browse files

Merge branch 'irqchip/handle_domain' into irqchip/core

parents ce92bfe8 087fe000
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ config ARM
	select GENERIC_SMP_IDLE_THREAD
	select GENERIC_STRNCPY_FROM_USER
	select GENERIC_STRNLEN_USER
	select HANDLE_DOMAIN_IRQ
	select HARDIRQS_SW_RESEND
	select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
	select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
+1 −18
Original line number Diff line number Diff line
@@ -65,24 +65,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)
 */
void handle_IRQ(unsigned int irq, struct pt_regs *regs)
{
	struct pt_regs *old_regs = set_irq_regs(regs);

	irq_enter();

	/*
	 * Some hardware gives randomly wrong interrupts.  Rather
	 * than crashing, do something sensible.
	 */
	if (unlikely(irq >= nr_irqs)) {
		if (printk_ratelimit())
			printk(KERN_WARNING "Bad IRQ%u\n", irq);
		ack_bad_irq(irq);
	} else {
		generic_handle_irq(irq);
	}

	irq_exit();
	set_irq_regs(old_regs);
	__handle_domain_irq(NULL, irq, false, regs);
}

/*
+1 −1
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ static void __exception_irq_entry avic_handle_irq(struct pt_regs *regs)
		if (nivector == 0xffff)
			break;

		handle_IRQ(irq_find_mapping(domain, nivector), regs);
		handle_domain_irq(domain, nivector, regs);
	} while (1);
}

+1 −2
Original line number Diff line number Diff line
@@ -141,8 +141,7 @@ static void __exception_irq_entry tzic_handle_irq(struct pt_regs *regs)
			while (stat) {
				handled = 1;
				irqofs = fls(stat) - 1;
				handle_IRQ(irq_find_mapping(domain,
						irqofs + i * 32), regs);
				handle_domain_irq(domain, irqofs + i * 32, regs);
				stat &= ~(1 << irqofs);
			}
		}
+1 −2
Original line number Diff line number Diff line
@@ -248,8 +248,7 @@ static inline void omap_intc_handle_irq(void __iomem *base_addr, struct pt_regs
		irqnr &= ACTIVEIRQ_MASK;

		if (irqnr) {
			irqnr = irq_find_mapping(domain, irqnr);
			handle_IRQ(irqnr, regs);
			handle_domain_irq(domain, irqnr, regs);
			handled_irq = 1;
		}
	} while (irqnr);
Loading