[PATCH] mtd: pxa3xx-nand: handle PIO in threaded interrupt
robert.jarzmik at free.fr
Wed Feb 18 09:16:17 PST 2015
Maxime Ripard <maxime.ripard at free-electrons.com> 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 <robert.jarzmik at free.fr>
> Tested-by: Maxime Ripard <maxime.ripard at free-electrons.com>
> On a sidenote...
>> @@ -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 ?
More information about the linux-mtd