diff options
| -rw-r--r-- | drivers/mtd/nand/mxc_nand.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index 45204e41a02..20e1241bd09 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c @@ -530,12 +530,23 @@ static void send_page_v1(struct mtd_info *mtd, unsigned int ops)  static void send_read_id_v3(struct mxc_nand_host *host)  { +	struct nand_chip *this = &host->nand; +  	/* Read ID into main buffer */  	writel(NFC_ID, NFC_V3_LAUNCH);  	wait_op_done(host, true);  	memcpy32_fromio(host->data_buf, host->main_area0, 16); + +	if (this->options & NAND_BUSWIDTH_16) { +		/* compress the ID info */ +		host->data_buf[1] = host->data_buf[2]; +		host->data_buf[2] = host->data_buf[4]; +		host->data_buf[3] = host->data_buf[6]; +		host->data_buf[4] = host->data_buf[8]; +		host->data_buf[5] = host->data_buf[10]; +	}  }  /* Request the NANDFC to perform a read of the NAND device ID. */  |