Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754514AbbL3KIq (ORCPT ); Wed, 30 Dec 2015 05:08:46 -0500 Received: from us01smtprelay-2.synopsys.com ([198.182.60.111]:35627 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754192AbbL3KIn (ORCPT ); Wed, 30 Dec 2015 05:08:43 -0500 Subject: Re: [PATCH v5 05/20] irqchip: add nps Internal and external irqchips To: Noam Camus , References: <1451222619-3610-1-git-send-email-noamc@ezchip.com> <1451222619-3610-6-git-send-email-noamc@ezchip.com> CC: , , , , Thomas Gleixner , Jason Cooper Newsgroups: gmane.linux.kernel,gmane.linux.kernel.arc From: Vineet Gupta Message-ID: <5683AD18.7090603@synopsys.com> Date: Wed, 30 Dec 2015 15:38:24 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <1451222619-3610-6-git-send-email-noamc@ezchip.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.12.197.208] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1975 Lines: 70 On Sunday 27 December 2015 06:53 PM, Noam Camus wrote: > From: Noam Camus [snip..] > + > +static int nps400_irq_map(struct irq_domain *d, unsigned int virq, > + irq_hw_number_t hw) > +{ > + switch (hw) { > + case TIMER0_IRQ: > + irq_set_percpu_devid(virq); > + irq_set_chip_and_handler(virq, &nps400_irq_chip_percpu, > + handle_percpu_devid_irq); > + break; > + default: > + irq_set_chip_and_handler(virq, &nps400_irq_chip_fasteoi, > + handle_fasteoi_irq); > + break; > + } > + > + return 0; > +} > + > +static const struct irq_domain_ops nps400_irq_ops = { > + .xlate = irq_domain_xlate_onecell, > + .map = nps400_irq_map, > +}; > + > +static struct irq_domain *nps400_root_domain; > + > +static void nps400_handle_irq(unsigned int hwirq, struct pt_regs *regs) > +{ > + handle_domain_irq(nps400_root_domain, hwirq, regs); > +} > + > +static int __init nps400_of_init(struct device_node *node, > + struct device_node *parent) > +{ > + if (parent) > + panic("DeviceTree incore ic not a root irq controller\n"); > + > + nps400_root_domain = irq_domain_add_linear(node, NR_CPU_IRQS, > + &nps400_irq_ops, NULL); > + > + if (!nps400_root_domain) > + panic("nps400 root irq domain not avail\n"); > + > + set_handle_irq(nps400_handle_irq); Your series is NOT bisectable - u introduce this call later in series. But do you need this song and dance anyways. Will handle_domain_irq() NOT work for ARC in general for the core intc which are instantiated in legacy domain ! I'm ok with extra cost per int handling - given it is the right thing to do which we've been missing so far ! > + > + return 0; > +} > +IRQCHIP_DECLARE(ezchip_nps400_ic, "ezchip,nps400-ic", nps400_of_init); > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/