ARC: [intc-compact] setup TIMER as percpu_dev
authorVineet Gupta <vgupta@synopsys.com>
Thu, 28 Jan 2016 07:22:33 +0000 (12:52 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Mon, 9 May 2016 04:02:28 +0000 (09:32 +0530)
This removes the quirk from arc_request_percpu_irq() and paves way for
future simplifications

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/kernel/intc-compact.c
arch/arc/kernel/irq.c

index 224d1c3..4195eed 100644 (file)
@@ -79,8 +79,9 @@ static struct irq_chip onchip_intc = {
 static int arc_intc_domain_map(struct irq_domain *d, unsigned int irq,
                               irq_hw_number_t hw)
 {
-       switch (irq) {
+       switch (hw) {
        case TIMER0_IRQ:
+               irq_set_percpu_devid(irq);
                irq_set_chip_and_handler(irq, &onchip_intc, handle_percpu_irq);
                break;
        default:
index ba17f85..88074b5 100644 (file)
@@ -72,18 +72,6 @@ void arc_request_percpu_irq(int irq, int cpu,
        if (!cpu) {
                int rc;
 
-#ifdef CONFIG_ISA_ARCOMPACT
-               /*
-                * A subsequent request_percpu_irq() fails if percpu_devid is
-                * not set. That in turns sets NOAUTOEN, meaning each core needs
-                * to call enable_percpu_irq()
-                *
-                * For ARCv2, this is done in irq map function since we know
-                * which irqs are strictly per cpu
-                */
-               irq_set_percpu_devid(irq);
-#endif
-
                rc = request_percpu_irq(irq, isr, irq_nm, percpu_dev);
                if (rc)
                        panic("Percpu IRQ request failed for %d\n", irq);