From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754196AbbBRRQ2 (ORCPT ); Wed, 18 Feb 2015 12:16:28 -0500 Received: from smtp11.smtpout.orange.fr ([80.12.242.133]:49684 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754138AbbBRRQZ (ORCPT ); Wed, 18 Feb 2015 12:16:25 -0500 X-ME-Helo: beldin X-ME-Date: Wed, 18 Feb 2015 18:16:24 +0100 X-ME-IP: 90.16.210.142 From: Robert Jarzmik To: Maxime Ripard Cc: Ezequiel Garcia , David Woodhouse , Brian Norris , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mtd: pxa3xx-nand: handle PIO in threaded interrupt References: <1424203617-29431-1-git-send-email-robert.jarzmik@free.fr> <20150218101646.GO25269@lukather> X-URL: http://belgarath.falguerolles.org/ Date: Wed, 18 Feb 2015 18:16:17 +0100 In-Reply-To: <20150218101646.GO25269@lukather> (Maxime Ripard's message of "Wed, 18 Feb 2015 11:16:46 +0100") Message-ID: <87vbiz87j2.fsf@free.fr> User-Agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/24.3.92 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Maxime Ripard writes: > On Tue, Feb 17, 2015 at 09:06:57PM +0100, Robert Jarzmik wrote: >> Change the handling of the data stage in the driver : don't pump data in >> the top-half interrupt, but rather schedule a thread for non dma cases. >> >> This will enable latencies in the data pumping, especially if delays are >> required. Moreover platform shall be more reactive as other interrupts >> can be served while pumping data. >> >> No throughput degradation was observed, at least on the zylonite >> platform, while a slight degradation was being expected. >> >> Signed-off-by: Robert Jarzmik > > Tested-by: Maxime Ripard > > On a sidenote... Thanks. >> @@ -1672,7 +1688,8 @@ static int alloc_nand_resource(struct platform_device *pdev) >> /* initialize all interrupts to be disabled */ >> disable_int(info, NDSR_MASK); >> >> - ret = request_irq(irq, pxa3xx_nand_irq, 0, pdev->name, info); >> + ret = request_threaded_irq(irq, pxa3xx_nand_irq, >> + pxa3xx_nand_irq_thread, 0, pdev->name, info); > > Using IRQF_ONESHOT would allow you not to do the interrupt enable / > disable dance. Yes, that's a very good point. Would your Tested-by still hold with this change ? Cheers. -- Robert