From patchwork Tue May 10 14:56:46 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 774572 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.3) with ESMTP id p4AEuKdW016436 for ; Tue, 10 May 2011 14:56:20 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932457Ab1EJO4A (ORCPT ); Tue, 10 May 2011 10:56:00 -0400 Received: from perceval.ideasonboard.com ([95.142.166.194]:37788 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754062Ab1EJOz7 (ORCPT ); Tue, 10 May 2011 10:55:59 -0400 Received: from localhost.localdomain (business-89-133-214-82.business.broadband.hu [89.133.214.82]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 37FB53599C; Tue, 10 May 2011 14:55:58 +0000 (UTC) From: Laurent Pinchart To: tony@atomide.com Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, dacohen@gmail.com, Hiroshi.DOYU@nokia.com Subject: [PATCH v2 FOR 2.6.39] omap: iommu: Return IRQ_HANDLED in fault handler when no fault occured Date: Tue, 10 May 2011 16:56:46 +0200 Message-Id: <1305039406-11251-1-git-send-email-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <20110510131944.GH30958@atomide.com> References: <20110510131944.GH30958@atomide.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Tue, 10 May 2011 14:56:21 +0000 (UTC) Commit d594f1f31afe13edd8c02f3854a65cc58cfb3b74 (omap: IOMMU: add support to callback during fault handling) broke interrupt line sharing between the OMAP3 ISP and its IOMMU. Because of this, every interrupt generated by the OMAP3 ISP is handled by the IOMMU driver instead of being passed to the OMAP3 ISP driver. Signed-off-by: Laurent Pinchart Acked-by: Hiroshi DOYU --- arch/arm/plat-omap/iommu.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c index 8a51fd5..34fc31e 100644 --- a/arch/arm/plat-omap/iommu.c +++ b/arch/arm/plat-omap/iommu.c @@ -793,6 +793,8 @@ static irqreturn_t iommu_fault_handler(int irq, void *data) clk_enable(obj->clk); errs = iommu_report_fault(obj, &da); clk_disable(obj->clk); + if (errs == 0) + return IRQ_HANDLED; /* Fault callback or TLB/PTE Dynamic loading */ if (obj->isr && !obj->isr(obj, da, errs, obj->isr_priv))