mtd: pxa3xx_nand: Increase the initial chunk size
authorEzequiel García <ezequiel@vanguardiasur.com.ar>
Wed, 4 Nov 2015 16:13:41 +0000 (13:13 -0300)
committerBrian Norris <computersforpeace@gmail.com>
Mon, 16 Nov 2015 22:56:36 +0000 (14:56 -0800)
The chunk size represents the size of the data chunks, which
is used by the controllers that allow to split transfered data.

However, the initial chunk size is used in a non-splitted way,
during device identification. Therefore, it must be large enough
for all the NAND commands issued during device identification.
This includes NAND_CMD_PARAM which was recently changed to
transfer up to 2048 bytes (for the redundant parameter pages).

Thus, the initial chunk size should be 2048 as well.

On Armada 370/XP platforms (NFCv2) booted without the keep-config
devicetree property, this commit fixes a timeout on the NAND_CMD_PARAM
command:

  [..]
  pxa3xx-nand f10d0000.nand: This platform can't do DMA on this device
  pxa3xx-nand f10d0000.nand: Wait time out!!!
  nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x38
  nand: Micron MT29F8G08ABABAWP
  nand: 1024 MiB, SLC, erase size: 512 KiB, page size: 4096, OOB size: 224

Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/pxa3xx_nand.c

index 37df51df422e9e783583d1d00c4d53bc3af49b06..d3da5ef5faa4c6ad57f13dde45b13312e1788280 100644 (file)
@@ -1592,7 +1592,7 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)
                goto KEEP_CONFIG;
 
        /* Set a default chunk size */
-       info->chunk_size = 512;
+       info->chunk_size = PAGE_CHUNK_SIZE;
 
        ret = pxa3xx_nand_config_flash(info);
        if (ret)