From: Ezequiel Garcia Date: Mon, 12 Aug 2013 17:14:49 +0000 (-0300) Subject: mtd: nand: pxa3xx: Allow to set/clear the 'spare enable' field X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=5bb653e890ca7a5b4ba9042cb60d02f7ddef8c21;p=linux-beck.git mtd: nand: pxa3xx: Allow to set/clear the 'spare enable' field Some commands (such as the ONFI parameter page read) need to clear the 'spare enable' bit. This commit allows to set/clear depending on the prepared command, instead of having it always set. Signed-off-by: Ezequiel Garcia Tested-by: Daniel Mack Signed-off-by: Brian Norris Signed-off-by: David Woodhouse --- diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c index 1dcda6badfdc..6e28121d3118 100644 --- a/drivers/mtd/nand/pxa3xx_nand.c +++ b/drivers/mtd/nand/pxa3xx_nand.c @@ -185,6 +185,7 @@ struct pxa3xx_nand_info { int cs; int use_ecc; /* use HW ECC ? */ int use_dma; /* use DMA ? */ + int use_spare; /* use spare ? */ int is_ready; unsigned int page_size; /* page size of attached chip */ @@ -325,6 +326,11 @@ static void pxa3xx_nand_start(struct pxa3xx_nand_info *info) else ndcr &= ~NDCR_DMA_EN; + if (info->use_spare) + ndcr |= NDCR_SPARE_EN; + else + ndcr &= ~NDCR_SPARE_EN; + ndcr |= NDCR_ND_RUN; /* clear status bits and run */ @@ -526,6 +532,7 @@ static int prepare_command_pool(struct pxa3xx_nand_info *info, int command, info->buf_count = 0; info->oob_size = 0; info->use_ecc = 0; + info->use_spare = 1; info->use_dma = (use_dma) ? 1 : 0; info->is_ready = 0; info->retcode = ERR_NONE;