mtd: add read_byte support to plat_nand

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Mon May 28 07:59:09 EDT 2012


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=b4f7aa84d6ff44327ab91a2973ebf0c2a7797d24
Commit:     b4f7aa84d6ff44327ab91a2973ebf0c2a7797d24
Parent:     a4f203512be974dbd7425f8f1d3d40720bf36997
Author:     John Crispin <blogic at openwrt.org>
AuthorDate: Mon Apr 30 19:30:47 2012 +0200
Committer:  David Woodhouse <David.Woodhouse at intel.com>
CommitDate: Sun May 13 23:16:53 2012 -0500

    mtd: add read_byte support to plat_nand
    
    Lantiq SoCs have a External Bus Unit (EBU) that is used to attach MTD media.
    As we need to co-exist with PCI on the same bus, certain swapping settings must
    be applied. Similar to the NOR map driver we need to apply a fix to make NAND
    work. The easiest way is to use byte reads.
    
    Signed-off-by: John Crispin <blogic at openwrt.org>
    Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
    Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
---
 drivers/mtd/nand/plat_nand.c |    1 +
 include/linux/mtd/nand.h     |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/mtd/nand/plat_nand.c b/drivers/mtd/nand/plat_nand.c
index fd2d2a1..1bcb520 100644
--- a/drivers/mtd/nand/plat_nand.c
+++ b/drivers/mtd/nand/plat_nand.c
@@ -79,6 +79,7 @@ static int __devinit plat_nand_probe(struct platform_device *pdev)
 	data->chip.select_chip = pdata->ctrl.select_chip;
 	data->chip.write_buf = pdata->ctrl.write_buf;
 	data->chip.read_buf = pdata->ctrl.read_buf;
+	data->chip.read_byte = pdata->ctrl.read_byte;
 	data->chip.chip_delay = pdata->chip.chip_delay;
 	data->chip.options |= pdata->chip.options;
 	data->chip.bbt_options |= pdata->chip.bbt_options;
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
index 627f0c5..94a6679 100644
--- a/include/linux/mtd/nand.h
+++ b/include/linux/mtd/nand.h
@@ -654,6 +654,7 @@ struct platform_nand_ctrl {
 	void (*cmd_ctrl)(struct mtd_info *mtd, int dat, unsigned int ctrl);
 	void (*write_buf)(struct mtd_info *mtd, const uint8_t *buf, int len);
 	void (*read_buf)(struct mtd_info *mtd, uint8_t *buf, int len);
+	unsigned char (*read_byte)(struct mtd_info *mtd);
 	void *priv;
 };
 



More information about the linux-mtd-cvs mailing list