From patchwork Fri May 9 12:54:55 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nishanth Menon X-Patchwork-Id: 4143081 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 2E3F39F1E1 for ; Fri, 9 May 2014 12:55:22 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5BF06201FA for ; Fri, 9 May 2014 12:55:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 461202017E for ; Fri, 9 May 2014 12:55:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752029AbaEIMzT (ORCPT ); Fri, 9 May 2014 08:55:19 -0400 Received: from comal.ext.ti.com ([198.47.26.152]:41211 "EHLO comal.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751623AbaEIMzS (ORCPT ); Fri, 9 May 2014 08:55:18 -0400 Received: from dflxv15.itg.ti.com ([128.247.5.124]) by comal.ext.ti.com (8.13.7/8.13.7) with ESMTP id s49CstHW011316; Fri, 9 May 2014 07:54:55 -0500 Received: from DLEE70.ent.ti.com (dlee70.ent.ti.com [157.170.170.113]) by dflxv15.itg.ti.com (8.14.3/8.13.8) with ESMTP id s49Csto3032578; Fri, 9 May 2014 07:54:55 -0500 Received: from dflp32.itg.ti.com (10.64.6.15) by DLEE70.ent.ti.com (157.170.170.113) with Microsoft SMTP Server id 14.3.174.1; Fri, 9 May 2014 07:54:55 -0500 Received: from [128.247.91.123] (ileax41-snat.itg.ti.com [10.172.224.153]) by dflp32.itg.ti.com (8.14.3/8.13.8) with ESMTP id s49CstAB014709; Fri, 9 May 2014 07:54:55 -0500 Message-ID: <536CD01F.2070506@ti.com> Date: Fri, 9 May 2014 07:54:55 -0500 From: Nishanth Menon User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Joel Fernandes , Santosh Shilimkar CC: Joel Fernandes , "tony@atomide.com" , Rajendra Nayak , Sricharan R , Linux OMAP List , Linux ARM Kernel List Subject: Re: [PATCH 3/5] irqchip: crossbar: Skip some irqs from getting mapped to crossbar References: <1399299527-10955-1-git-send-email-r.sricharan@ti.com> <1399299527-10955-4-git-send-email-r.sricharan@ti.com> <536BD9D8.4080905@ti.com> <20140508203659.GA5620@kahuna> <536C0DC4.7090309@ti.com> <536C2071.8040502@ti.com> In-Reply-To: Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On 05/08/2014 11:22 PM, Joel Fernandes wrote: > On Thu, May 8, 2014 at 7:25 PM, Santosh Shilimkar > wrote: [...] > Ok, thanks for pointing to the post. > Yep - thanks Santosh for clarifying this. Now, we still have the issues that I pointed out in [1] - without resolving which, we should not enable crossbar for dra74x/72x. A. taking example of PMU interrupts = this wont work. instead the crossbar driver needs some sort of a hint to know that it should not map these on crossbar register instead assign GIC mapping directly. I propose doing the following #define GIC_CROSSBAR_PASSTHROUGH(irq_no) ((irq_no) | (0x1 << 31)) and dts will define the following: interrupts = This will also work for the other cases (B.2, B.3) For B.2: L3_APP_IRQ: instead of: interrupts = we do: interrupts = For B.3: NMI interrupts = xlate is easy -> goto found; But then, crossbar_domain_map and crossbar_domain_unmap need hints as well to know that there is no corresponding crossbar registers. Have'nt thought through that yet. Looking to hear about opinions here. [1] http://marc.info/?l=linux-arm-kernel&m=139958155312421&w=2 diff --git a/drivers/irqchip/irq-crossbar.c b/drivers/irqchip/irq-crossbar.c index de021638..fd09ab4 100644 --- a/drivers/irqchip/irq-crossbar.c +++ b/drivers/irqchip/irq-crossbar.c @@ -112,6 +112,10 @@ static int crossbar_domain_xlate(struct irq_domain *d, { unsigned long ret; + /* Check to see if direct GIC mapping is required */ + if (intspec[1] & BIT(31)) + return intspec[1] & ~BIT[31]; + ret = get_prev_map_irq(intspec[1]); if (!IS_ERR_VALUE(ret))