[PATCH v3 1/4] omap3: nand: prefetch in irq mode support

Tony Lindgren tony at atomide.com
Mon Aug 2 09:03:07 EDT 2010


* Sukumar Ghorai <s-ghorai at ti.com> [100713 07:39]:
> This patch enable prefetch-irq mode for NAND.

<snip>

> --- a/arch/arm/mach-omap2/board-flash.c
> +++ b/arch/arm/mach-omap2/board-flash.c
> @@ -133,6 +133,7 @@ static struct omap_nand_platform_data board_nand_data = {
>  	.nand_setup	= NULL,
>  	.gpmc_t		= &nand_timings,
>  	.dma_channel	= -1,		/* disable DMA in OMAP NAND driver */
> +	.gpmc_irq	= GPMC_IRQ_NUMBER,
>  	.dev_ready	= NULL,
>  	.devsize	= 0,	/* '0' for 8-bit, '1' for 16-bit device */
>  };
> --- a/arch/arm/mach-omap2/include/mach/board-flash.h
> +++ b/arch/arm/mach-omap2/include/mach/board-flash.h
> @@ -19,6 +19,9 @@
>  #define PDC_ONENAND	3
>  #define DBG_MPDB	4
>  
> +/* Interrupt number to the MPU Subsystem for GPMC */
> +#define GPMC_IRQ_NUMBER	20
> +

This does not look right for the IRQ. Please add it to the irqs.h and 34xx,
then set it dynamically during the init just like we handle the other
interrupt numbers.

This is because the irq numbers can change between omaps, like irqs-44xx.h
already has

#define OMAP44XX_IRQ_GPMC                       (20 + OMAP44XX_IRQ_GIC_START)

> @@ -130,6 +141,13 @@ struct omap_nand_info {
>  	unsigned long			phys_base;
>  	struct completion		comp;
>  	int				dma_ch;
> +	int				gpmc_irq;
> +	enum {
> +		NAND_IO_READ = 0,	/* read */
> +		NAND_IO_WRITE,		/* write */
> +	} iomode;
> +	u_char				*buf;
> +	int					buf_len;
>  };

These should probably be OMAP_NAND_IO_READ and OMAP_NAND_IO_WRITE?

Regards,

Tony



More information about the linux-arm-kernel mailing list