[U-Boot] [PATCH 6/6] EA20: do not use subpage write for NAND

Scott Wood
2011-04-11T19:16:47Z

On Sat, Apr 09, 2011 at 08:05:35PM +0200, Stefano Babic wrote:
> diff --git a/README b/README
> index 21cd71b..8d664eb 100644
> --- a/README
> +++ b/README
> @@ -2907,6 +2907,10 @@ Low Level (hardware related) configuration options:
> that is executed before the actual U-Boot. E.g. when
> compiling a NAND SPL.
>
> +- CONFIG_SYS_NAND_NO_SUBPAGE
> + Some drivers (davinci) do not support access to NAND subpage.

This only controls the davinci driver, so it should be
CONFIG_SYS_DAVINCI_NAND_NO_SUBPAGE.

Is this really board-specific? Does the davinci driver ever support
subpage?

> diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
> index 987a2ec..215e781 100644
> --- a/include/linux/mtd/nand.h
> +++ b/include/linux/mtd/nand.h
> @@ -193,7 +193,8 @@ typedef enum {
> && (chip->page_shift > 9))
>
> /* Mask to zero out the chip options, which come from the id table */
> -#define NAND_CHIPOPTIONS_MSK (0x0000ffff & ~NAND_NO_AUTOINCR)
> +#define NAND_CHIPOPTIONS_MSK (0x0000ffff & ~NAND_NO_AUTOINCR & \
> + ~NAND_NO_SUBPAGE_WRITE)

I wonder what we really need CHIPOPTIONS_MSK for? Silently ignoring what
the driver asked for doesn't seem right. Can't we just OR the two
sources? And it would be a driver error to specify a flag that doesn't
make sense to be set this way (i.e. only do it with the "doesn't support
X" flags).

-Scott