Re: [PATCH] mtd: pxa3xx-nand: handle PIO in threaded interrupt

From: Ezequiel Garcia
Date: Wed Feb 18 2015 - 06:45:24 EST


On 02/17/2015 05:06 PM, 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@xxxxxxx>
> ---
> drivers/mtd/nand/pxa3xx_nand.c | 23 ++++++++++++++++++++---
> 1 file changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c
> index 96b0b1d..237c92c 100644
> --- a/drivers/mtd/nand/pxa3xx_nand.c
> +++ b/drivers/mtd/nand/pxa3xx_nand.c
> @@ -569,11 +569,25 @@ static void start_data_dma(struct pxa3xx_nand_info *info)
> {}
> #endif
>
> +static irqreturn_t pxa3xx_nand_irq_thread(int irq, void *data)
> +{
> + struct pxa3xx_nand_info *info = data;
> +
> + handle_data_pio(info);
> +
> + info->state = STATE_CMD_DONE;

Are you sure you need to set the state here?
--
Ezequiel García, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/